From 1a3f54065f677b5c160054d4961c74bef7411c42 Mon Sep 17 00:00:00 2001 From: Aditya Mishra Date: Sat, 12 Jul 2025 22:51:19 +0530 Subject: [PATCH 01/16] Delete src/test/resources/docker/grafanaAndInfluxDb directory --- .../grafanaAndInfluxDb/docker-compose.yaml | 36 - .../grafana_data/grafana.db | Bin 1187840 -> 0 bytes .../plugins/grafana-exploretraces-app/142.js | 2 - .../grafana-exploretraces-app/142.js.map | 1 - .../plugins/grafana-exploretraces-app/327.js | 8 - .../grafana-exploretraces-app/327.js.map | 1 - .../plugins/grafana-exploretraces-app/389.js | 8 - .../grafana-exploretraces-app/389.js.map | 1 - .../plugins/grafana-exploretraces-app/67.js | 2 - .../grafana-exploretraces-app/67.js.map | 1 - .../plugins/grafana-exploretraces-app/746.js | 3 - .../746.js.LICENSE.txt | 14 - .../grafana-exploretraces-app/746.js.map | 1 - .../grafana-exploretraces-app/CHANGELOG.md | 71 - .../plugins/grafana-exploretraces-app/LICENSE | 661 -- .../grafana-exploretraces-app/MANIFEST.txt | 54 - .../grafana-exploretraces-app/README.md | 107 - .../states/EmptyState/img/grot-404-dark.svg | 67 - .../states/EmptyState/img/grot-404-light.svg | 68 - .../img/1382cadfeb81ccdaa67d.svg | 2 - .../img/944c737f589d02ecf603.svg | 67 - .../img/e79edcfbe2068fae2364.svg | 68 - .../img/errors-metric-flow.png | Bin 943127 -> 0 bytes .../img/errors-root-cause.png | Bin 1090307 -> 0 bytes .../img/histogram-breakdown.png | Bin 464856 -> 0 bytes .../grafana-exploretraces-app/img/logo.svg | 2 - .../grafana-exploretraces-app/module.js | 2 - .../grafana-exploretraces-app/module.js.map | 1 - .../grafana-exploretraces-app/plugin.json | 101 - .../test-responses/service-struct.json | 6143 ----------------- .../plugins/grafana-lokiexplore-app/115.js | 3 - .../115.js.LICENSE.txt | 14 - .../grafana-lokiexplore-app/115.js.map | 1 - .../1759fd27b2c9f73dea05.wasm | Bin 190779 -> 0 bytes .../plugins/grafana-lokiexplore-app/328.js | 92 - .../grafana-lokiexplore-app/328.js.map | 1 - .../3d96a93cfcb32df74eef.svg | 1 - .../plugins/grafana-lokiexplore-app/470.js | 3 - .../470.js.LICENSE.txt | 10 - .../grafana-lokiexplore-app/470.js.map | 1 - .../plugins/grafana-lokiexplore-app/546.js | 2 - .../grafana-lokiexplore-app/546.js.map | 1 - .../649058283f564041551d.wasm | Bin 201435 -> 0 bytes .../plugins/grafana-lokiexplore-app/82.js | 2 - .../plugins/grafana-lokiexplore-app/82.js.map | 1 - .../plugins/grafana-lokiexplore-app/826.js | 8 - .../grafana-lokiexplore-app/826.js.map | 1 - .../plugins/grafana-lokiexplore-app/854.js | 2 - .../grafana-lokiexplore-app/854.js.map | 1 - .../plugins/grafana-lokiexplore-app/919.js | 2 - .../grafana-lokiexplore-app/919.js.map | 1 - .../plugins/grafana-lokiexplore-app/944.js | 2 - .../grafana-lokiexplore-app/944.js.map | 1 - .../grafana-lokiexplore-app/CHANGELOG.md | 448 -- .../plugins/grafana-lokiexplore-app/LICENSE | 661 -- .../grafana-lokiexplore-app/MANIFEST.txt | 66 - .../plugins/grafana-lokiexplore-app/README.md | 38 - .../img/drilldown-features.png | Bin 208476 -> 0 bytes .../img/explore-logs-features.jpeg | Bin 996518 -> 0 bytes .../grafana-lokiexplore-app/img/fields.png | Bin 2825845 -> 0 bytes .../grafana-lokiexplore-app/img/grot_err.svg | 78 - .../img/grot_err_light.svg | 78 - .../grafana-lokiexplore-app/img/grot_loki.svg | 272 - .../grafana-lokiexplore-app/img/logo.svg | 1 - .../grafana-lokiexplore-app/img/patterns.png | Bin 597876 -> 0 bytes .../img/service_logs.jpg | Bin 311278 -> 0 bytes .../grafana-lokiexplore-app/img/table.png | Bin 2719883 -> 0 bytes .../plugins/grafana-lokiexplore-app/module.js | 3 - .../grafana-lokiexplore-app/module.js.map | 1 - .../grafana-lokiexplore-app/plugin.json | 99 - .../grafana-metricsdrilldown-app/256.js | 3 - .../256.js.LICENSE.txt | 14 - .../grafana-metricsdrilldown-app/256.js.map | 1 - .../grafana-metricsdrilldown-app/513.js | 64 - .../grafana-metricsdrilldown-app/513.js.map | 1 - .../5e493d758066ba82f810.wasm | Bin 203253 -> 0 bytes .../grafana-metricsdrilldown-app/601.js | 2 - .../grafana-metricsdrilldown-app/601.js.map | 1 - .../grafana-metricsdrilldown-app/78.js | 2 - .../grafana-metricsdrilldown-app/78.js.map | 1 - .../grafana-metricsdrilldown-app/871.js | 2 - .../grafana-metricsdrilldown-app/871.js.map | 1 - .../grafana-metricsdrilldown-app/944.js | 2 - .../grafana-metricsdrilldown-app/944.js.map | 1 - .../grafana-metricsdrilldown-app/CHANGELOG.md | 53 - .../grafana-metricsdrilldown-app/LICENSE | 661 -- .../grafana-metricsdrilldown-app/MANIFEST.txt | 52 - .../grafana-metricsdrilldown-app/README.md | 29 - .../ac01ecbc64128d2f3e68.svg | 1 - .../img/breakdown.png | Bin 1046098 -> 0 bytes .../img/homepage.png | Bin 792297 -> 0 bytes .../grafana-metricsdrilldown-app/img/logo.svg | 1 - .../img/metricselect.png | Bin 231210 -> 0 bytes .../grafana-metricsdrilldown-app/module.js | 3 - .../module.js.map | 1 - .../grafana-metricsdrilldown-app/plugin.json | 83 - .../grafana-piechart-panel/CHANGELOG.md | 81 - .../plugins/grafana-piechart-panel/LICENSE | 21 - .../grafana-piechart-panel/MANIFEST.txt | 51 - .../plugins/grafana-piechart-panel/README.md | 63 - .../plugins/grafana-piechart-panel/dark.js | 2 - .../grafana-piechart-panel/dark.js.map | 1 - .../grafana-piechart-panel/editor.html | 100 - .../img/piechart-donut.png | Bin 38209 -> 0 bytes .../img/piechart-legend-on-graph.png | Bin 37972 -> 0 bytes .../img/piechart-legend-rhs.png | Bin 41450 -> 0 bytes .../img/piechart-legend-under.png | Bin 34314 -> 0 bytes .../img/piechart-options.png | Bin 48400 -> 0 bytes .../img/piechart_logo_large.png | Bin 3723 -> 0 bytes .../img/piechart_logo_large.svg | 1 - .../img/piechart_logo_small.png | Bin 2629 -> 0 bytes .../img/piechart_logo_small.svg | 1 - .../plugins/grafana-piechart-panel/light.js | 2 - .../grafana-piechart-panel/light.js.map | 1 - .../grafana-piechart-panel/module.html | 5 - .../plugins/grafana-piechart-panel/module.js | 3 - .../module.js.LICENSE.txt | 20 - .../grafana-piechart-panel/module.js.map | 1 - .../grafana-piechart-panel/plugin.json | 70 - .../grafana-piechart-panel/styles/dark.css | 1 - .../grafana-piechart-panel/styles/light.css | 1 - .../plugins/grafana-pyroscope-app/350.js | 3 - .../grafana-pyroscope-app/350.js.LICENSE.txt | 30 - .../plugins/grafana-pyroscope-app/350.js.map | 1 - .../plugins/grafana-pyroscope-app/36.js | 963 --- .../plugins/grafana-pyroscope-app/36.js.map | 1 - .../944c737f589d02ecf603.svg | 67 - .../grafana-pyroscope-app/CHANGELOG.md | 471 -- .../plugins/grafana-pyroscope-app/LICENSE | 661 -- .../grafana-pyroscope-app/MANIFEST.txt | 55 - .../plugins/grafana-pyroscope-app/README.md | 58 - .../e6c722427cfa8715e19d.svg | 15 - .../e79edcfbe2068fae2364.svg | 68 - .../img/58f0b0e1cfa063e4b662.png | Bin 307262 -> 0 bytes .../img/61b4cf746a6f58780f27.png | Bin 3599 -> 0 bytes .../img/8cdf4d2e2df8326311ab.gif | Bin 174077 -> 0 bytes .../img/9c9cdd5175734d579007.png | Bin 4262 -> 0 bytes .../img/bafee50693eb02088442.png | Bin 3256 -> 0 bytes .../img/decrease-latency.png | Bin 3599 -> 0 bytes .../img/diff-view-how-to.gif | Bin 174077 -> 0 bytes .../grafana-pyroscope-app/img/hero-image.png | Bin 307262 -> 0 bytes .../grafana-pyroscope-app/img/logo.svg | 15 - .../img/reduce-costs.png | Bin 4262 -> 0 bytes .../img/resolve-incidents.png | Bin 3256 -> 0 bytes .../plugins/grafana-pyroscope-app/module.js | 3 - .../grafana-pyroscope-app/module.js.map | 1 - .../SceneEmptyState/ui/img/grot-404-dark.svg | 67 - .../SceneEmptyState/ui/img/grot-404-light.svg | 68 - .../plugins/grafana-pyroscope-app/plugin.json | 81 - .../profile-metrics/profile-metrics.json | 142 - .../data/33434738b30976b8/_series/00/0000 | Bin 4194304 -> 0 bytes .../data/33434738b30976b8/_series/01/0000 | Bin 4194304 -> 0 bytes .../data/33434738b30976b8/_series/02/0000 | Bin 4194304 -> 0 bytes .../data/33434738b30976b8/_series/03/0000 | Bin 4194304 -> 0 bytes .../data/33434738b30976b8/_series/04/0000 | Bin 4194304 -> 0 bytes .../data/33434738b30976b8/_series/05/0000 | Bin 4194304 -> 0 bytes .../data/33434738b30976b8/_series/06/0000 | Bin 4194304 -> 0 bytes .../data/33434738b30976b8/_series/07/0000 | Bin 4194304 -> 0 bytes .../33434738b30976b8/autogen/3/fields.idx | Bin 35 -> 0 bytes .../autogen/3/index/0/L0-00000001.tsl | 0 .../autogen/3/index/0/MANIFEST | 37 - .../autogen/3/index/1/L0-00000001.tsl | 0 .../autogen/3/index/1/MANIFEST | 37 - .../autogen/3/index/2/L0-00000001.tsl | Bin 9 -> 0 bytes .../autogen/3/index/2/MANIFEST | 37 - .../autogen/3/index/3/L0-00000001.tsl | Bin 9 -> 0 bytes .../autogen/3/index/3/MANIFEST | 37 - .../autogen/3/index/4/L0-00000001.tsl | Bin 9 -> 0 bytes .../autogen/3/index/4/MANIFEST | 37 - .../autogen/3/index/5/L0-00000001.tsl | Bin 9 -> 0 bytes .../autogen/3/index/5/MANIFEST | 37 - .../autogen/3/index/6/L0-00000001.tsl | 0 .../autogen/3/index/6/MANIFEST | 37 - .../autogen/3/index/7/L0-00000001.tsl | Bin 9 -> 0 bytes .../autogen/3/index/7/MANIFEST | 37 - .../wal/33434738b30976b8/autogen/3/_00001.wal | Bin 2059 -> 0 bytes .../influxHostVolume/influxd.bolt | Bin 65536 -> 0 bytes .../influxHostVolume/influxd.sqlite | Bin 122880 -> 0 bytes .../init_influxDb/init_influx.sh | 34 - 179 files changed, 13891 deletions(-) delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/docker-compose.yaml delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/grafana.db delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/142.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/142.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/327.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/327.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/389.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/389.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/67.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/67.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/746.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/746.js.LICENSE.txt delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/746.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/CHANGELOG.md delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/LICENSE delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/MANIFEST.txt delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/README.md delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/components/states/EmptyState/img/grot-404-dark.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/components/states/EmptyState/img/grot-404-light.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/img/1382cadfeb81ccdaa67d.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/img/944c737f589d02ecf603.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/img/e79edcfbe2068fae2364.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/img/errors-metric-flow.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/img/errors-root-cause.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/img/histogram-breakdown.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/img/logo.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/module.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/module.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/plugin.json delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/utils/trace-merge/test-responses/service-struct.json delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/115.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/115.js.LICENSE.txt delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/115.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/1759fd27b2c9f73dea05.wasm delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/328.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/328.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/3d96a93cfcb32df74eef.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/470.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/470.js.LICENSE.txt delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/470.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/546.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/546.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/649058283f564041551d.wasm delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/82.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/82.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/826.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/826.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/854.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/854.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/919.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/919.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/944.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/944.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/CHANGELOG.md delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/LICENSE delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/MANIFEST.txt delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/README.md delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/img/drilldown-features.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/img/explore-logs-features.jpeg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/img/fields.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/img/grot_err.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/img/grot_err_light.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/img/grot_loki.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/img/logo.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/img/patterns.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/img/service_logs.jpg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/img/table.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/module.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/module.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-lokiexplore-app/plugin.json delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/256.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/256.js.LICENSE.txt delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/256.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/513.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/513.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/5e493d758066ba82f810.wasm delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/601.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/601.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/78.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/78.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/871.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/871.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/944.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/944.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/CHANGELOG.md delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/LICENSE delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/MANIFEST.txt delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/README.md delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/ac01ecbc64128d2f3e68.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/img/breakdown.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/img/homepage.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/img/logo.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/img/metricselect.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/module.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/module.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-metricsdrilldown-app/plugin.json delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/CHANGELOG.md delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/LICENSE delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/MANIFEST.txt delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/README.md delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/dark.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/dark.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/editor.html delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/img/piechart-donut.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/img/piechart-legend-on-graph.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/img/piechart-legend-rhs.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/img/piechart-legend-under.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/img/piechart-options.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/img/piechart_logo_large.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/img/piechart_logo_large.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/img/piechart_logo_small.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/img/piechart_logo_small.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/light.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/light.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/module.html delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/module.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/module.js.LICENSE.txt delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/module.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/plugin.json delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/styles/dark.css delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-piechart-panel/styles/light.css delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/350.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/350.js.LICENSE.txt delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/350.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/36.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/36.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/944c737f589d02ecf603.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/CHANGELOG.md delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/LICENSE delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/MANIFEST.txt delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/README.md delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/e6c722427cfa8715e19d.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/e79edcfbe2068fae2364.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/img/58f0b0e1cfa063e4b662.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/img/61b4cf746a6f58780f27.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/img/8cdf4d2e2df8326311ab.gif delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/img/9c9cdd5175734d579007.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/img/bafee50693eb02088442.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/img/decrease-latency.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/img/diff-view-how-to.gif delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/img/hero-image.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/img/logo.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/img/reduce-costs.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/img/resolve-incidents.png delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/module.js delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/module.js.map delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneEmptyState/ui/img/grot-404-dark.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/pages/ProfilesExplorerView/components/SceneByVariableRepeaterGrid/components/SceneEmptyState/ui/img/grot-404-light.svg delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/plugin.json delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-pyroscope-app/shared/infrastructure/profile-metrics/profile-metrics.json delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/_series/00/0000 delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/_series/01/0000 delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/_series/02/0000 delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/_series/03/0000 delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/_series/04/0000 delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/_series/05/0000 delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/_series/06/0000 delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/_series/07/0000 delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/fields.idx delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/0/L0-00000001.tsl delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/0/MANIFEST delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/1/L0-00000001.tsl delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/1/MANIFEST delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/2/L0-00000001.tsl delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/2/MANIFEST delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/3/L0-00000001.tsl delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/3/MANIFEST delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/4/L0-00000001.tsl delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/4/MANIFEST delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/5/L0-00000001.tsl delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/5/MANIFEST delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/6/L0-00000001.tsl delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/6/MANIFEST delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/7/L0-00000001.tsl delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/data/33434738b30976b8/autogen/3/index/7/MANIFEST delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/engine/wal/33434738b30976b8/autogen/3/_00001.wal delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/influxd.bolt delete mode 100644 src/test/resources/docker/grafanaAndInfluxDb/influxHostVolume/influxd.sqlite delete mode 100755 src/test/resources/docker/grafanaAndInfluxDb/init_influxDb/init_influx.sh diff --git a/src/test/resources/docker/grafanaAndInfluxDb/docker-compose.yaml b/src/test/resources/docker/grafanaAndInfluxDb/docker-compose.yaml deleted file mode 100644 index b0ef174..0000000 --- a/src/test/resources/docker/grafanaAndInfluxDb/docker-compose.yaml +++ /dev/null @@ -1,36 +0,0 @@ -services: - influxdb_service: - image: influxdb:2.7 - container_name: influxdb_container - ports: - - "8086:8086" - volumes: - - ./influxHostVolume:/var/lib/influxdb2 - environment: - - DOCKER_INFLUXDB_INIT_MODE=setup - - DOCKER_INFLUXDB_INIT_USERNAME=admin - - DOCKER_INFLUXDB_INIT_PASSWORD=admin123 - - DOCKER_INFLUXDB_INIT_ORG=qa-org - - DOCKER_INFLUXDB_INIT_BUCKET=qa-tests - - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=mysecrettoken - - influx_init_service: - image: influxdb:2.7 - container_name: influx_init_container - entrypoint: ["/bin/sh", "-c", "/init/init-influx.sh"] - depends_on: - - influxdb_service - volumes: - - ./init_influxDb/init_influx.sh:/init/init-influx.sh - - grafana_service: - image: grafana/grafana - container_name: grafana - ports: - - "3000:3000" - environment: - - GF_SECURITY_ADMIN_USER=admin - - GF_SECURITY_ADMIN_PASSWORD=admin123 - - GF_INSTALL_PLUGINS=grafana-piechart-panel - volumes: - - ./grafana_data:/var/lib/grafana \ No newline at end of file diff --git a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/grafana.db b/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/grafana.db deleted file mode 100644 index 981e4456ee7688fc72b86b22ac6c38aa734a8d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1187840 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 z zs@exwo7s}X)Jjc5D|p4|HN|1aix^ygP}qEQa2?W8qN|*3mL#io8RqCaAk>0Zt*>cH zKt0&1qo!6her=MU&#<20#c#nSm2{gZI_dR5P2onn#WnRZQ^)*lc0TXT z@12E!TzOc+Fh-pXH{BFm6)ifsi8A)R;Zf#N8r z@)<@OP<#fA95EYoV%m=4I0lAkywiEGCgTcgr%&$Oz^x(O?65H73lJ*WqrLWfux5We z0xfnY|8~t~b3ux=%bN|zZ0*emZ8C$}e+L!@?nDPm3clt3T+StEH{Y&lh6yI0(-tmM zlU_=c3o58rXnKWO9rScYb9&Ux(7se*x7@aGfnlser-2VR)y`sm$ zkN^@u0!RP}AOR$R1dsp{Kmter2_S)IhX7vxKRbPak{|&jfCP{L5MA`{7mZ3T-0n>r+ZQouUD>G{e5**7+pHSSog)cm?G`p8xp7pN z6Z`f>J{qU)LP>h^zaDTJS|mX`bP4LTD&%k5ah)pm%IP>Z1sAi#HEu3DlLBN1g#`!=e?q*5Gs;XBwH@8Xq+^U>VPekmy zUT6EB%bCN_f*%6@U|FCa#sXH`>O&~0ut29PLurY6`hfsqxaj&ZP1>)n$ccFn{-UQn zeo~R}q1ctMc7@Ueq}{5N$wzyZ<-~~-k;n5?2ScTX0+xf?8H(Sbs`}*+B@+3IZK#G; zv)q0ar!h3ssvBClux!*}(1?n0dqo)8S^HURVQF1lbX7A=bw%WuzK!#FwW0g%afT`A ze{$olCMOOaj66;;yI@+-xy0u^`{Mf9cH9bsg<#=3WDkbY&`T+9y!F8tbVA2kLa9IP z!jisH0MFPQ29TR%a-z%i=28VXEM(Ht)Je7j)_l_uZ|C+o`CIvhx{T@re}fcYwXCC?_rh>=PZD!lpML z^3qnM_9n$}XM1qnG$2P|b2*ry@#T1DD{^?otAiYFnxuXFJvs4CGGc3#2U(~2)fFst zh5rfDDGAZb!6Yh^DnFZ@&u74(PGxQ=#Vr=q+MlEbIzGJ70`)=vITb?(p1ma}lF7)% z2sMf=lK7cOF-$II9)n4DXd}5o+D%YQ((uHR{NRS1NQ3Sj?x1_tdPDOo`QlbOoMdUm zNDz8jM-wFN=yf@fh3dyURPUN4Uxb@m5y8#YQ4B9p@}u{!$%#XUBHw$lr4#*XZ?x;Y z9d;ap5$+Y3tvtc}ST>I}P0b+s7m5g2now**t!WiuK5#{^t<;TmVWiWMp>?{YTVxgu zhr_yB5bR9YZUk#c!_d|WFzs2Qf@<2mwsCEiEFI=zLtBB>e5irSROV7TKb=!XfjEp2 zlamlaT#FQ78OY<>&h{z%smo8p772byNjs946O&-_xM5h)469%?E3kebCXfCEGZzTH zE*J=b1YSNi3IdVTrm=FtiY0R}=U<4}SNyR^BVnzfFYBNs1R?D&uT)2xaDs()a)pz6 zW$_Y*lLckv_W$2~cJ4}`BuD@WAOR$R1dsp{Kmter2_OL^fCP}hlO#a)|MyG3C&jM~ z{?OpSz{CEZ-u<8V{Z-!&_wA4UU~G5vuKauQ=X!sw_l;fuY}bdoVm-^CQlGU_4tRH=j&R@$Q2urFx}VttnPrsc5woYgIWps=$2`rPi!e z#zw~`Mn)$_#z&RZ__?vvxv^7kZw$y%HBgp+!)?2TUD)WCrNuyD!f*n^AOo*NaP@7YVa#qfeF| z-UV3}v}%1#W8yfsW8Hlsvav_@X%wP9ps*@+FJ6Tu#3mGXC^U8WzmA)U(X z*eX7wyYUv>gcCOM;D$^ZX~){A3SVr&y}|A@cBg97p-7Pm-QDN~i*c)sd{hT_Dv5JD zU7)tPC+&&Ada(Q157p zcb8nTRyD2!p}iMspRCv5(21pJ_jS{P-s3Qvj^3DBsa`9aqnYvXmj_xNOuLYzX^3KzH)i#^~a~IRTKp zq-1Vn7jujJKxfHB_TD~bzaNz{b`z>7)f?+vyGSl&ZH)B!+IV($F|&{(*ydVGraNi= zItq4@$q^{B#|U4O%3@|ZGnory3MNr5EzHdX;z{1MF`>Bk>~)wyb$f-#3oBaa4`)zs z@hFBeq7Vz&tm$`~Zq^{r=H;^BsUKPqK6u0YEtotATwlD?vA zT<9w%sizRLV8+EtvBPr)T)ohh{#fD)*4%bVw##0Vr3Yk4&{4Nt1!Dtpn`eXsqu>6V-Hb|2 zs_Z+_+P`s?{fupa%2N6NfA-!4zLD%a@GF1^j&3%lXEZ~NM&qgGXogKS$p#4Cqt*yb zqSwEwAz3;uczVA?# z9Xg@PK6C{n=l|R@kLzhX%7p}w01`j~NB{{S0VIF~kN^@u0!RP}JPZQ1=l>r@byx=y zKmter2_OL^fCP{L5``O|3k-2 z`){?cw}sum_etXO(eTo5hLgXCp$r&0!~T!rSb3a%`*ms)vge8YCcb>doeL_nb}bHZ<4}*`C$Zr>Z?( zZif2t7wUfeZCx0o-z75&xXnYpEmP9Sq`PdlB@oxNW*W=!=$Q6K^@5jEsE10@zQZr9 zts>J2zfoDzh?&~b!RFCLnX=Zs=9@zIr_AWAO!4=tJaOK89!82yPp{Arvjse(QJy%A zw#iM{8A;5xt3B0Myxf)AHZ*Q{;w7bdyJ8;Z*3;RPKV|nMdvhr^A6Z)GXQS(UWF@f> zi$hKG(RhLU{yXw!}?*A_k6Q?e*3j zSvRLLDeYCi#mg;d9nQHVDale<-jNiDfGU#c6?9G?F`b-+j-JJ(>dPK(_MWq4(~cx7 z(sA3h7qP{&WzA+VULW>y^Oo;$yPIV?B>I?<)(@XMRz7Q@*fbL61#vFT@RK~IR9}Kf z0PjGz4S(IFr-l{X5%LvLF?kyvx~bNZ7yyv*N~tUr)y<2&>TAJ?Y;V7m?K2#8lUicS zRQFh|ezN)@4>ut>VUse)8(YYE6xz1xi$s%Nf+pCO%0NcECm)L~$=CueO=8l`R6pq9 z#)xZVr@E4=*o}SMP@AH& zjLgF|6`H&H0&#dx;wVI5EfPx7EwM~Y1PyFs1@eFh3*@N7Tr{ORmtv?ZX%ss`&t|I6 zd$=5l!lKvTRPi8*mQD5n1u-jC3M!Zfekattix{nWs~-Sg?XGu;?|emo$R72m5cNuV zS{cld`Vmu1)0=t7?s>i`m;a*QXC0KX{eGX(P54$4%3@J9D})1OQBmcxm`#!pJn-8X zKkHjEy$?SMqM`^n5xx=W{C$4ig}tq%LE2Ki;X$j-lOHoy6liT~Au<L<&4>I-kQn{3^v@DdfbTItXfquOZ!#s@^tIv73MKTb}5T~G?l{W+@!x=IHYXl9m zXk{X{(ad-S^68NatRt+z1=?HHXJPPrHHBzWdb_52HsAG=RoaunrgvnUGuB zwx$wE>j*gVH>%N%kd;zDd@*Gm1Z&)%GE-OST7!20RasY+SFQoju}juCbg;5DebFOkA0_S-&;B7t8Ig0 z+w(c5FguGmZl~DY83qBS8@p=5GMFaRCKs_3jfdIe@@zHWqmzgj?&FiGA%(IkD_YhVHDDnvvLJQPVr08$XtD6 zt|x8gWdX`DQkeCTxGs9AD_dJO!ZaNyiAnOU#rB+Lq92MX6iTdI%u(rpbNTkbpTeiB zC-Bw4Uj_ax{qac7@Uha*-*lhld_J!$?CbiwZ@=ueZyrV_!=cHMk$XK>j0dG>@?H-_ zic)(fZ{O=lSERfeEA~u=`g_QvQRGTFBa$rYehL2VfgoXsg^5Zf6tbbt$&vwHr14zm&;JBoJ$KAgZ=zaC0Rv>xEpj?AZ z8u^|Va}YMMXL3`>D==QF*=OVTj&xw8-G?d)La79C$0z~#3Gw90WvI*ior51YWhxI~ z9PjVh1!zP4J$n@4K72wUgQQHyissEqN+~bw&k1QUPpayn77qGLwc%}`Zpa8-*0av* zoupa|Bas&}VgWXz(C@UYl1}#bC|mOGoKa3!MOv#VYDp3kx>LCdRcaZpMhoj)2Jo?UGbtrWv-9sGdGIV3uUIKpAKOh(`;14$D+P zbq zM)vqCDlVnCl#~H)b{CxXw{`0Ox;r}CU2wkN-r4SRx!T(3KW=w>yU*uC z|9?-dl3>S?01`j~NB{{S0VIF~kN^@u0!ZK~B7pJ#o}$6Vt|9>>fCP{L5A&;Os=p~sFR0VIF~kN^@u0!RP}AOR$R1dzZ}L;%nKpQ6FWt|9>>fCP{L z5A-~WGVhaNkQ1dsp{Kmter2_OL^fCP{L5Y>JP?6VaLI5`S|kHXm79=Vznq zd}JlD5Q{_E`Di@B#~0xLD|2)Hem*6a#Im4DaxqyUg%i;=XF3R>K&n-(y>MPo)TFp4 zW-6oxMxMTH&E@GHd&RAtk&0PyFE+iFtbou-p`vc--=u8)09P}57mH6v*Z34OcZy$# z^Qn3n=(hd?r0>(tYn-Qh0h)W0(Hw2FAZIIiQE%VgboH>N86_EF*m9-%Q}h=RYAf&Q z4nObGo~I(MEJl;6C=`-%IhT~OggW_|H=19G#}-$jFoqNWBeUKvDMEU#R|2h(!Ry=J z_H>UxOD{58DhdUWl-oX5QzUnbwrEmc?S*$d-LJgjdT@{GYkffKUp{TLW2kEV_$d{Y zmM1D|>bG4H?dY3z*c^)HluTI^R1qqjhDnu(%}1ScLst_alMxjqsmj|T=(s*ZVD^y7 zqh~0Kn`KeiIwS`zn^gBpz?4yexL1Pj{r( zt-Vs80(m(n6_bLhiiMI&XB`W|Kj+fA ztm!4>lH1~ba!1HlL{-S$Z#}i_IgNQGo6S1|Hr$PxlN+ak+&Qh7~Q#dC^hP!BJw^3bv4=Zd*y^slJ0YqwT$;+O8W^vYtAMl2I^I`?QZ%Jl*TiaiOmE zj?78x7qL@hX=|XcYe>?(wpm4qMp?hCidvAdXNB2Q2c>;fJ%O++Y&)kB)`Ug3CYEf_ zDT2~E0LvFF)nxxemTS$Yc)DYUD7U?!^&M)h95uF9Zn9!B2iTFNubL`Tqy6qX)bLn| z(3<0iYBX)E>W;Kink8eRF&B2L{#HxBiPI`>>}*Y?XiBgd7%R$7-M|}d+UKTR^mI>vtN|t5ytF`U(^}R52){^}$oLs-q ze15fbr?dOg^Df0Xe%8R1N;uPdA_ z%O&3Nh;C9Xl#+LM#j?6Ty|i%CcqJirjgPLymJ`c-s#WgPP;h8uAUHA*4)US!ZnaTc-TytK(iy)GiSD=|kl_ee#4S?=Uz)nBwsR z(4pq1P}rIE2bdgbq{n7mslGQ@P)pS@FZV{xX9?w~!D?TBpa{l}JXFsdzf(S7R2Q(} z`C{kDG$+;{vpej8Y-XRktD`0zZ8u};8lSp9kkWK(vj`zh=&tygIshn9Y;SxbY|IJhjB<^J(JHG{Eq6dmz$>= z2@k#->gXsxXpYXK)xtZ~u$PNecN?^jH(p54hsW_`+vBK+&Cjwi=bTaF;zbTh_{a}`_KLM=pLNNUW22Cx}Jl)m%y)Hk1j>6Qt+fT zHEOXqf6*}iaKu@zkB`KsokcEO;RiyDSylaD^|F`C)doOpMc5HR%uS(^S8c*eMO#%w zB5Hp8_NB`qvEO&m@AK);9rnXFD^bdl-`0bV(|hb>bbs`snCutj)4riQV5uGdQ~D>b2pD9pWT zJv&(gPPtb#AN_9Ja+1>stN!CZ5&xLJhr-l~4^?0Hav5!eH6N)xVZNo(tQ@WL>dIkD zH_u+be8m+$NP`Tt*Vfqx(Pizlap*b^jx1dsp{Kmter2_OL^fCP{L5R9qBtsZJf*9*2ekt=l}8i|0&f2>^2fW0!RP} zAOR$R1dsp{Kmter2|U>Z8qWX!hztBt;NLyjUB=!a0VIF~kN^@u0!RP}AOR$R1dsp{ zc;X41ZFjxs`nn!2zqv&r3Km>lZq%7la3rj zOeQ(4tGeLjR<&MZ6e~sPZbdW(Gb3cS#AH@bg+cx6wz%JNFs;nVdS-nvtrRkvRw7%V zwQAhUy-{7ahSDmpkL6(lY2}5s{I-t~!QQ+$%|CQDLJ#bST(; zJ71mma)S1n0bATt#d1-|!+ zpIVq(nTJ`!sLv)k=m5`{JKFi`oR?eCLWWTKJZ@-buq^I?ELqShgT671W7BKNhP+8D zuRi__=|l-^S=gl7sHL<|U(XEShuZ66VArEE>%#PF{k9q*P+0S?$s_#WrDV>l=Hufkm+_tFRIio53!4 zr~!rYl@gfcR^^$)sXbr4=H-^PHw=w4_9S9?2P|q{&TJ3LC9y21#MU0VF|kS{9VK){ z0}U}NB*x5{gDu$IYShbJseylHQ_pOb9Ia!v%%{{Zr;yER039Mr5PPKPu0q@sGZli4 zk%!soo$9ogo7Fm?&%}mPE!3@6<3h(?;#w?jw*6F#C2hYtMH)V1G`tWY%S3EiUnv|b z>~R{Fbwes;_2t-{CN0|5+NxK*+}m20(YUUH=Bf@0d`8Y!3PspqS?l~^OKRONkZrL( zk)bz4?aUM=`~7Of%gty32LigC**`4+y>yD7hRu8;HXo%MT-J`_e)SV%(R8*=S7~0| zFNvpZpVp8hH5@$zZ;~C&^N!A!#ZB1C8QX=^%3xG-JWX&_KTeF1xrfo!P{?Fpvj^?N zrscF!=ye=Rh&QWOJlrZ#MqSnG8Z=04yT0Mfi^UwwkkCYswLiRA{g{_iv%^vt%V5HkNa8 z9%xK8=1E|k%_&W+IU$*6f%aZBTVJzR%_+trX`goH+RL2yc>n+8mol&f5?%`dy0E&>MQ>y@OkdSgtuK0;rV%$FGxB4tuJ`fO4;VOrqBHTh0YG{imzUe zoQFD!a*@x9I}*I1u{H5Oe(l5U9o%Jidsa}k(y~y_4j7HP{&;Kp?1x_M=-}RTwP(e= z2(O!y@_9K2Z}kYODi%tr(!DkHwSN=%9qz-IAyZ=&?`%!{+F)A;x8iEoWfS?x%@_~w zSCdymc=EazNWsI49&)9qD(ysK7^v5$EQuLC-G$z>fyr4g7Lo z?tM1IC@vB}0!RP}AOR$R1dsp{Kmter2_S)QD1i^PO}N-s5d0r*yW%phK{Q@F=zO{D zO;^k70v*q{U3N8H5NN;Hw&FU@rGU0?X`AwyEilMYQxh(R$N6i0?fCPEXV!OgMk z#K`!jI6OKs5#G#XM#JHep|qHu7#Z5kX42p!JR8nzhJ&Gy5DJOog=Kz?4+WEpq(A1Rgc;;NXQmDI~4;jzK+D1UMG zdSZUApU+F%B0nQ$w&gy4YO5?4#LJ=Z=wOiik6#uxg|cK635^X6h9=;62p&ZU(Em^U z^$T0@e{%l+40ng?oI7{6t8(_AoV|YLm;GP$|GGcw8}$B6`?y#3e1GTfL5BDI_t_iT zv!3n?7u=tJo4VK+@*=qYFM|U}>l^p|4u^{=E9I0v7L8Z{Oc#r)q~`0sK}{!#;72$k z7qgP?xVFjrvF`Z2>9FB?nB{d5Duf}12Q;YPc2YOPKRiDjy%t%SOYoyX5+0zXbKQDA zn$70f))3#BUK9$VQW7$v9w?znYQjF5E6Wv@FXy66J^3dU;*{C+pxW3>Z(N=RSNOd| zXyWfTDVEDel!%aFmx?)BW>YRVdk3~U0ksOnB5?~1ZiE4w-UINY3ki84E#@1J)i0CT zJFI6f2}LmveuQn!=?NADNZqp~H}*9IjY>+gB!J&edo_*uf{+hnmNun~?m1c!Rnp-G zS<7NZE<-)`J{3e&uxpquq3PF}#CWjh&K)xTy}cmCwkVd8n^GAXPaaLWAVE+8$O#V< zNurVzL17i}84K?D6*<2HDqx1VAb~3S-hD;D&;cqY0gr0 zQmrFB36L^&8n%jbzt?1@t5Tsw9%p4@@hDX?^Fx>th4|98YXA&QC9lE|7jt5{1mj$H z*ly^yK6DK()%7$Z@&|O=;cuNL+QVL4G}s%1({GJLzY}X;pLSMj^K{R=>eeQx%U>F^ z#qxdbbd7FvQO-Ru^n(%drB(6ccvjcOwDX>BvCpk-Q+bF7Vtqw1b&oDTW;7X-G*ts< zKJITD659L{J9D(INte`_oA@cVsXX{8b~K*q(-PVvpz<+xaxtb)4MSt(@t=)d3z*i_%J=I`vDxzI|f zta8ba^_}}JZ9?gFMIU6f#DP3d4l|Jn` ztwSHYD=np@F5c-lHZ;q9+pz_->S!sOElXdmq_umxFI{qf_IWxX8X9i+$$iF z$#j0$_uKZl(K<33t;Jr{Qs+5;H$Q(@hcKQ0!RP}AOR$R1dsp{ zKmter2_OL^@T3rEZ}YkE{QpTAP3#8}Kmter2_OL^fCP{L5Qg(nk6$=dzZ&(ANNVXsq z#r+#w>6whQAlcsHKgm*l4Vf-=0gvcIWS`sPoh7>c-mqemt=*%}w11 zifa*4=598;C~Yndl4`Q6i{#KwrjQw(UnbRD3uR}v^6BDIX?^HgaAS38N?e9&i&wWY z;dnS5zOfyXcBPHg(3Y^eOUiC-%!Eqm?W;<9C=Oz6?PQ>OXf7{ahvx1?!}00u{e|h3 zAp9Td&u?Wx%=ttnxR8hq$ES0{@#S4fSY4uRZWQwQj6}L|BcCp0!f<>)UdVBB*GHAdlLH__|RZ5Z}rr#*)i3dz;GAT4eg##>PPn0KR(q-Q4Xtgr6L>2N$q)njdI7t;6Q z2a6-~ceZ!qiR}@R3YR9fZpGyA)WKYK zb}6>Fza!omPj6*sgN5PP#??EE`K|ep^=L3Oez1CXZS&Ur&9Q^9TpGwOBv)^hmLmG# zllTAKfq%>e{&C=so|MH7`+)?I01`j~NB{{S0VIF~kN^@u0!ZLVAn;<_n2UKG_r(vk zjnq@@SMS^(Y#Z}2i{SbHlb{jU2PA+5kN^@u0!RP}AOR$R1dsp{coGRb%=3Tp{6F{1 zlSm2sganWP5D_s{Hqo8-hkhhOH3i)cr!!2*a7-Y+G z$ru3`RH-Pbl3Yygh-C%-)yHCbY2hYc9|`9uG?z&+20dL(dpYeTs^oc9EFaMzpA}TW z&|zMc`GT00Dg{;CQ_0LI>??Qkj7F;MRRQMG8`aC~xzsGGHLG+LwB<0Tl?lQ*p;qFt z#g+QJT3L)5^U79%QLs6I%rPU;KD(NWl6l6G3&z?k&m7yTtC|816V*!(frDXP9zKTm zM1dNcLm|}mt4S|+`!n}|L0NPdnr70+H95^CVT}AKkfuJN?K3p8l30kv!II5Ks=A(6kO8TZsY96eY!_boB8M&CH#)Xka<~!rCR0LZ=45A{E(qNmLY&&xX6sw=~ zaI4h1iFvWU!ZZ)x!?JI0Rp0h-Q@2~0(~~sAGN0PH>RVoJRqKNWBCtu&jS*iG!0R2^ zGBlY}ff`wT&(Nf7DLyhi%}*`Nt<1yPu2<4b)>12;VQaOq>TR$wK5fRZG2p`KZbfX| zzF5S`)cV=9|sgw$ZjS98;qQt1Dja9W8P~ zSslZ1d};LoIa*#lA5(>EFIE#?ZuY?}NZfLDKKZJA%GKDg8O@8!!(GiPCD25%)v|f? zT35Hoqx5v8=4`L;^?v2_OL^fCP{L5i+H^zA#UF&#v;kU(3k?t@>S^P0kTgF<>| zxy0$`i$XzEN`fL%5s3>$mOqqMp591prkfn2rVOnKocB@xSC)q#9jnbXkt08Nb34RQ z$~)CP;ws~9>L;Zj?})s^(GqdsWgAm__Z*$E``WR*)!F-?%fN7{QL65GxLM*xjku>Y zd~)a>28k<<6DpL`$6||-yjR`vaw~N;Hrf=5MHzfsf>%Q26b;)-AE8H|s#d&QRO@#3 zcvCK)qE#qmn>vPHH_JZ@Ya%UIRS)-$3(O84`*vRoT_fb{z0jK*!8A+%g@<4CzzY=9j5SNIeIWW;Q^v30B z$ka<5F^YR)CMlN7N0f*V2gFh_*Xw60jCQ^%d%11xB}1>lsbnRuCc%SjPAr$o;GfA{ zEb6O->CBk1^)Qp1+mGft&HlAmIkac0MK5<(d(IHb^t}syh81u?Xsje5^XR$WgcNK@ayt?o?sMo)i}S zEzrh*Mz%?1v4uPa?uRItQDcKDvIOL-IWH$^Zy2-1bY*Av(Vi5^DTld(HkIkbHi*u1 zQrAg0n%d3kCO~{qBW^rT?0ViYMuuT+xhpg~XLmR6sGyadvefH%QyBgKJvkRMuqQ|W z2_OL^fCP{L5^!Vd0EK9eTC-h;ASrU=19`~sb5aAeqBuIH&6Og^<#{C z8o=h-b6zf4J#VmS62|N{6{;lX^M?y%5Nr^xE~PUHoGF>v2Dwb%B(>FndSP})UU=5a z6|`5KgIp?$JCa;cnj|=(+O@35b_tSsg9Zq{e%{O7*TSa|%mi}+g?ul9dY&QAAiNBM z8n;9BASLx-O6TQtKY)X9os)d%5Y;3Zll72kCC1Y3@N!+YW2Uln2xRKek{bRs{qcca|>4;aq(J(50xRv z9mH)Vv27X!V3NJn<>9WZ09P8hlcAOLMoXQk8Lrdpq&~Dw_bgy)_MU}+iP~z*5iTMZC8Z2OguGIq>F$^A)fEGCeD`@qVqa;0+dReXe4GnJ|X|q3#;{ys} zCe`h6a}+6NAKvoY0|qvXq9M}}18GXm8p|FZ8O!;WgbY(qAIrlGm}xeeyXr7zMmBnT z*;u^mP?!j`+g=c|`sT5PJch!VvexIVp?c(ZT^jm`OuaWYx$C74v3AE@f~&VZprr3E zAJw~KDXAqRC@D3A)ab|!HcedTj zjlDb7O6KF}83=&-1yRbwp}95>7bejO8H?=UdX-}6)3DpaMaZ)XF%n)|$V&&Jb%H}} zzrrY04Z6JCa_z1)qV;)QkaA`EC~Pt>=Z=n($Sy}m+a7q>ZcbXqF1Ffk3PnsT3&iF& zXRmE$E0s(}R9FFgp$I&SMxK*x+DVZx=dbn@csWscGUtaMgm9x z2_OL^fCP{L5G&Dv#Rz%Pj@Kf{=#|sc8cYL+@@%ik9RB{Y;o!UJJ(-ML%))y`;nL=GeS;dkdx_sXKr2lnl-a7ac?h_-WJ6Y zc-aOA+qvY?=n9gekerHGmP92f!jLOTRi+*w@;mUtc`TlY&Vc*kILOwgy`eqt>6R|I zwO#7iz;e?|Wz!w~(iayYaE1}?!kRPIjOTvPum!RBbaahRova?aGgwkPc`Z_J8eYqF zPGNW%*K&>Cr@6Ebc)H&N@dv2*>_`^?*e2=UF(hq%iQUR%#`&N_b4XkdlHRB7YZpA- zufFQ8joECcR1k9D(FHuJC+S!2@3X8WO**BSROM}vWdKTox@GE_&C*oLtk?8R)fC_j z-04Unnuvk-YP*FL_ev7HO_*e7=+ka$yr)~flN8Ik<)_)@-$nq)q5%^Kb88bE+j=qlWZpuV~-m>7E~RYti~h7IV4=!-}yf zX?A(9U((p8AKD6!=_LOV^`ctM>_Gu$px2Ic#9f`~uSzWsze2Xnu8f-}Qm}{1x z+z%Z(dWY81D8J2s_NN>TgWP7*sXjP6{UuL#5(K}?8Wp2SrvlQ`6PwgOaGWt{UDKhG zJ6ZiU&46aG*5dcD8t9rygC=Odk;?)cq~?`l`uey1(v z{!KUUN3q>28Tx?3DIVXVh$|$g)9s zKZ+%#(Z2$?#TXjbK2`%~WECw3eDrW|_MHH+d}fTDdSDBOy>|F+(^bWh?(`?a_Gklm2@uWrgG4*g>=OR zHJOi2$5!U)FKLr6?1KZ5CTA!xaxc`t=~t4DoXu~gv5L1C!jmC6#*To+r22f#@8#xe z5zA&UM(1dY!60Y~QKqvyP7pD{h%+^Cu_aP3 zxcWkpuN1(nwTkh1DoJd$nTiirxtQXdt%3Kf6|L9Fg!rC)@56P(RXUbDZ`Ins&IWWl z3s-7eP86P8UbJaeLCi{(f-3H*#3Z&brek2T+z|R{wn}UkolL}ysbxg%s%I^O^r*gW z^y@Lm9J??YyV6okL#UQ9q3mrm@4y{3+fHp7H-)BNkZr9^KJy&IQH^;}zrfEjSz}tI z<^nLGsu|U=VS`{7`YJ0321%-uq( zUBZ}luKH=RaVDOxkKQF5x;b#Jxu@L}jA_qS?~~tV4ZvFn0&2(FHr^RyX6v$c6 z2{!>_+H&<%VCcFv;$5)C3Sh-e?uTW@c8P+THuG9RgKcA9VA5BO78g1itr@Z9#_7pn zmnc|f4CDVfE@$8mB!C2v01`j~NB{{S0VIF~kN^@u0#76Xa{ll4rMbZTxp3Df&;FCM zV`skL|3m*reg6y&;vW(~0!RP}AOR$R1dzZf2q+KEdAQ|$xNB4v3-DqGPoKObj}90S zj4MUyZbgIx@I(QPlx5rzV!w>zxIv%PpWH?2>ddDPTHLTRlbtv2 zj%dhsCy)8C3W=fn03Lv7A5>X>pKi(o@VCzk8X19;{wr#)xzV?2#wJ%vKzLN?rtJ@i2n zJ&t7a>umHm;}$(&T72MvIrE~n-C7<~=PkMP8`VTOp_t|0>k~0VIaqlSx5aD zD5wR#*I!g%k(-i>HjJPuhMj`a`}!>XhIzf&yfSOf_m z0VIF~kN^@u0!RP}AOR$R1dzb{i~za+?>e{2!GHLN1dsp{Kmter2_OL^fCP{L5USvTd#aQrl)L3pb~?}-Tan>m z;%!Q~N?9O0l3S9Z%H@5Ae`sbtr^{`7JI#~uFfZ0%*FRGGu-)6XWATxTWE#e%TS(n< zBI;3zosyesY59(Jq}wJRldV{L34+^q5O3}fr@jmh+x1xE`YVZL@L_Gk$s0I{+=^Hd z05bTT7t(q02p8`|A)l$_iB;*P>z|{B zy2WU+qUJg&sLfMUw~m`aCC^B#OAur)r&nv;9`0@8Zd<98N^)7{^KvmKmid*XIfcYn z&<8>)2svXCFw{?4VmFOtNl+X0gbZP&e8>WpBm>XfL5X`M30`k*k%5Uu`(*6{up2*9bvpS6b4LeG z+T7KY`**0^v?x3= z> zV3kM!2_OL^fCP{L50N($9%mxI-K>|ns2_OL^ zfCP{L5!14?#-WX_qE^i`+68YNqZ)FNb&WQ<%%jAKj4>`5hZXU3I}>}Wnoh&3Ikb@dIlX3 z3xbsI>4!o-NRuli@LLS|ZkrjCx_9TEeqL{n_-*ca8?xUgW$INcqzq}=*F$q0*%Fl^ zse4q-5-*TcLc_JHRhzE|+(#3+brG%FsocZ`rQS2z0bdVsBS~`Gdgbd;L{*iFIZ`Q= z5M%^zq~IJ=5y`QhkBNIip_CUtK}!v0)9AS@^i`zwZ~b!HLjjIy0Ub z4NqjVpQ4fZ^0F54bWdDxYXRCAiSknt%LPeMNE9hrla#fNaR1O~H5Q+auJI{$e!WGj z6b;)!x#uMfPL#i4HXd?fIl zxDR@8MjP~Wzx=YhmZN%LmNNh4{!^z8n8#140cN-`GhmMyd4wo{C0lb?6(Vc%(H$XQ zX&fL@)2TJ1uiBvvc)DMD$z9VUVJRZirNVVe`VaSuP8i1FZ!imTiS;NL&M1y8A`~4m zMf!%c{?6{`D{hXeta3LmsbW&7s51SXgz$R;QB@@ws(RP zY30et@d1h6nG5a~)m5v%h`jC;gxHpYeUC@1pl-yGMhFSnq*;t}1lkk z;Y;5eL&2euf#AqMILL>>lS84&q47*@!o!VK3?Z!62X&V$M#DC@g0>c!jWJuv*2bZg zU89wZoUas$ydK+vbWg~uVwtB7KKPU_d}Ml>pIVq(nUC`+E2HVs1-zE>BkS7F~-iCzj3b zoys2)^{wUf9!9*1FnrV)-rgX<2=N!mc8+$K&mFc?ox@!w9p*farFmL!ZN$s1YPXHy zYMub#G)eaXnWT=~T22DX4W;QB(@{=WQ!5jh8B~kGHB`UpWwJk|JBwqgug2Aez1*^P zo+YYP@t{#_^Q5uzm=Yc)6jO%k2Ww$3_eO2qQaG#Dqt(vJdrA*CCNZWHrf;09P9~dA z*M_{D*7i1_(Y27z3d&Ym7Rp)TA&(b|S-vC`#XLB0<2TE4ffx5Ag+!o%q@t_}#L+1D zbW{&3SCAl356Q?dJlbouke9oyEgK4=+fmasreRA5$o!=~JqN&1VoPl{OPNmj>ZOQ# zMO|&oEKN3^)^2+8WKFv21>t z$i7kDK3T{rwaXsvHd!IdB9Rev#Bg=VgEkp!Sz5?!^Qz2~43W7+bcr`y)MmzH8REYt=(Trx&9 zL@w)n`~JY_Q*;d!#!#BN->u$W)<&UJyX4^(nPX}f1$rlCPYf0YmeJ#CZ|$RAZlrdf za4n01D)NT6*rSd26YN%&HRGy%wLUL5VMkRT`J-Xgvr-#n(~bAN2U+IYw_3aC;kNsT zR^{cQ$QR@tVxo-YkEedr6k?iSe+7Q2VKK~upFCLlGIADjAGWA1)_T3%ZZ%*`QhiZt z@CV83CVjy2EJ&BR0pe+~zLoSdOf-nZER=Ir~#G{ zdj;?_5}$6$tb=ys)DJO?&3^4QVqUw9k!uj&kemle9p<$mo72czy*1b87AIj-wU5B^ zL7S$hbq%$Gf@Z}$QOJUrl_~{Q+*27nxLJD@R^3a`0SP=Zi-H2WD(vyLa~(b}7IW$r zsc9%UJU%c$jsH?~aV54Con};t_x~Tsg$%3|2_OL^fCP{L5}`MfeTy0w*oCoWsdCuU}*rmpVY`h}PO>5J#~{`xQeR_wPvcjp&B_<*~6 zweP?9m7lx4`+Y-S_=CUN_}kTm785H4c%CX&IYf~%#W%!w>B2l{kvi|EQGH{#+Rm6@^|iD zU0KW*##UG6#%^5O%H7IuZ_8KrZmz7Uv!&Q_c<$0cc6;JRF?(~pP$=FVzcW8^N7%b` zXF5~JC^Nb8jj2l;dpive0)!`nqs~L&k;##GGhR|hZ$lm6N)dcaWpsCn$E!$!)z>@m{6aX) zMj)y}t|ugn4}|s?%KO30*znca$U$c8>PmVe8^0A))}>63vnd+~Q)YSy#&wg@ZqZaT zZBjg;d&&(DwWjT8rFOr=2R$12%-gNHWDIiB9Oc{hdg9=fuV=F7Ch<`@rIzzO{qUXY zK*Q0*eu-p+O`9r6MWyF{f4%UOT-=m$O{E=&4=FB`N|*H^P%bOkZHENSX@^u4(RG+# zE{PeU4g9rAk?t>@RqDA0B_&=dq{Z?@NIj&|3_yX|VfyNHRMnhzNJWbkvAo{|>GoSa zy>Hi(=r2p2vX~S1dhWk{JS|&o2Zg>cb|D5Xl~=PvtT+x-`?g1&AmMG-P?>NpqYU&aX1^y zj0$7H@$u17acqG6U5(Df;{45-oBYj{t8=j_em1(!U!7Z+nx)D9Te=V8Nq(Uu79rc< z9fjW+9t;HsL;fkbP!NmiB)_GqC1vvRWf}66a-};8ahdA(`S(im(X~=yZEbJ<+U#&N z8kw4p#&#F4N((ECTRSu9>A9U^HX7WFt_e%QiQxF|+QH44Yo*QL&ESUr`i&y!_3Ndv)kOTpt>}iD*_GGlGB=lI1Yu%f@osu$Wi)&>y1$XlMYeAy4#G>Sb&#IUjs%1IiCuB8T#A*mvEuI3^{b_%jLb-sKf9^2U+pApxJ;w5=S_QwwnB2(F&&AV%njcDoe^=tEsTT`=}QF(Rd zMsz$ov|iXvPfZxy!dQ{?PKs{91JR&Os?-jCag2-s<(W z%gfUvi-qvc@U4lVyCosEv6xd6Ye6O9&s@8CXMHtt{jRbYlA`hQdi?TEF0{K6j!fs* zBZ-~;?84&u&URuyaam1I@9Yg-Q^fI`bK}GFixL0&?Cj!bEex*?Ty8a?Yr57p|Z4)-(QZ$CZ=Y>@_J#%FBk5tMAU;^Bv+iuRLYw( za~s>+^LzQi`uKEYQNFQzcQHD1b$&Jy*}fLZkFJD5<5M%cyOF8f_M(4tJ2)>Cr(zqG zOz=(wsNUKg+RM(Bhc_1Q-dx$Lq{}P&*D`nWtMcl2c2Qmwa=Q!T%6KJRNbmb+D|3;F zYpXZ5H!GE;#qy049cL0FKK!q`FK#?`yA1t~l(#3Q*oH^OOoG%qeM58YY1 z?B5%S-<4)>N#kKvTARLE%uFw?-`p=O6z8{AgZZ(kTamHdJ7Xi)%hz^x@=LMH!}F1H zKCNsFsaK2scqlWnGqH1dcx&{o7`bxAe`PwJUh>n)9tF3Btt~;bnPXX@H5V~+;TOZ< zVvg=l2J1d50WrA3RU?K2OJe2c#GH`XZ>~AWI7FWR_nrG0c>h1}+kx=8KMwcP#r5!0-aeF?Me666_a z&cnI}>F$HPVc&7C6?DKzx&mJ%pDzWzdhTpj_Ux~m^`1%if6DLjt$M%g^?FjB|FH9! zj?MP}y#4vMg8SFqA9n3<|MNFV0gh}|d-a2U&UZ-(hc7(0Qjb5OOhUATtnDX6d6*2R zL!r>9I5IFgn#m3fZ^E_P@v%&JU|1Xt4`(Mb*@^M6{ff!R(79s=3KJR z`NvL218g0I06MBoWxwfD{v3#D*w8jR&&O;oz1C%u)5hnWq*eUL79U!Q=2G|4@vIU3;_}J`HKGjZm#=_xOpX-BNpZVasG6^x*%lq~N zWKqo!Z+6Ap$mmcyvn$w7lpu@clH=K_dUAGDO zjp_M;3mP|iZg2b%cN|XnKLjVs95;CGFS)?i0$&Ln1S)~jxv!u5_vijH@NWZu68Oo$ zj|KjN!1o9KR^W4i2Z472gMo{Ip1_9#F9e=}=LFgVe;D}vz&{WCuYvz5@ZSdh%fPP$ zelhT~fjfb0;FE#1z*1l?a4qnOz+_JpKFt{d|soK1)B()6Zw*=Oh0AKE(YX7uYb%ph7<~&?06ZiPo^cwhQfR`Tf^p(maTn^#~_?@AtrD!A(+}`2i#+X0zbSgZ zL%KdDNbOuL@8#~%fm{-c@KPtQ3h;s-Z^x<1_Mb_$P)gq270c>A8QM@}E&+IS(#`=~ zipC@JQ9iNYU~Vg)VhrteZQH{Mw_#wjWx3Qstt{+Rgz2S)o2_)q%F1f(?b;m=w>*D% zYlaes4r_)CGNU(gP4aLv_o04x!o^MzzLU{}fAW<=QOLvF(*}7b!^reBKeaHoGEZkm zg97l37PZdWmX}-5E*Nd<^U^k)%Akeh@M&q~W6n-nGE=wi)^c7hLRE`&o*@W8J6r-f zbxvRy#;cy%rk9(lU54HphRN1-gYZtsX!Sjq2V3VK^~7h+aeMpBsXczXCVDxotBdG? zO}*&tg5;K@sB(Efsep}2!s}{=9`Y4MEQ8tORd`d4hk2it;3a>xSqna35JUOLwQw!t<&xUAL-`$T4H{h>(2rUwxDt;o zuGE*PmBnb%QBFr?6gHCT>e-x=E?+v#RKL+%lASeE#n5{zv6|rF7W$|j!m1$^ zbG-fOPu_OpH6v$5zW(+kL+x(VQXX!R)J0bZ-4jHX-<0!NFrdba7wF6T@VfdDm0hnT zJ={F4%)HHK7lw!4^H56(R^_9rx>Eb3hZ}2I)sf|=YHxeEDN0_|??Htg%FGE`x}bZS%Xj(0J z9+R(FXGQEEcL%CR6_j32EK0saTIG|@^7``aC`0U%VPpGKRza{;4MmyAs-LW_dAXT) z*IVex$@SxudcihOtricmV{hnQ^WtrTQMZ|O0|ynD>4N(IxA!jKZDiSDW&t1xfX`NU ztI_IijjE|uQ)rPAL5Lznjod?#kOYYji3IiP)&NDI2$ontK~)7xl=?9RqG#7}X7-D{ zNu1b;lh~7ulZo1_B-Ua7s~N%+y`%^ukj=|dxx^O0^9r%>OQt-A?$*z)R+$Y1OVa|=MuGZhCQCsppG$>}R)PMS?HbI~ z7vPCndv0?n#H?w@jKDz=w_yRLg8pU-qRB@PH`v5 z23nbjO*jsONjyA(A6r+-|MLudx&O<3pKp{0uOk5@fCP{L z5W z1A%DR{gr_3|F6pQReL|v+u3uy`FU+5eRzZ&|1(23yp1YhdNb_CkLyY2Ve zCIUYi_>}*D@{jobG4p3kb+=lvzL^R#e8F}^VSk;$8m<;t-QkYzE63Xlg`FvFWJ>Fq z($v9@hwHR)?ZoCH@#REZ!4bzPb`kFSOd+U$v4-9z?A)%3O=)xwDRv^_TS6BQJWA*y z+MXr6y-4^s7edTc?Qp%gLXI!0!ioSMikw0^oFUp3gC7_(v6oDayWUc?ZC)o*5btkx zp{$+F_O9geU16tnJFl=a)_5&x;<-ZeZ(a*AN$rSR4o+2NVY#e2oIJH8hLvx7Qas$8 z4>7N62i-!fK__ez1Iem zz_6F+5N&jGmbhnAjQYz(0ld%X>c<)wo_1JLCTrKPQ!}LX^x#)7M5kMddZ#}Yg_>UO z^c-cYn^%L(>kquxl7dcxSE7bAX-(8^5piZi{vwdb1<$JPZeB4QR4y2PfSf%^3p2bw zK@qjSe`;=fTG`RfWQdWpv{z%CU1xgfp=Am=syq!F*({^3EY4IeXFf(9hPHTvd291B zc%Y(V+jgtvEYa|)Wyt6-w$4OGtG1NKvtP9C%}Zo}5koskU3)tH9}>@r`uB#ElgB`J z-gXc8M$W6Y9`Ng%7s2nPM!h{+&NiKuoOF!wMlc9>Zxr;7Cx~}96U5LTGW3T|aIVIm zGRCA%B1+hyvt(5K)(_D8M@@(Hbn1__cz!}s%gn_tCR&2`VB=Jw{cFbo9+|Ybj zDO|S0y6P}wp8Zr|Ha`_&&TbOdYKFFwye+D#vzndgX(Qu8Jmb-_8!4+f0=IIBw+&r= zyWreA>T0u$9#UGm zYKq%bSI^h$s#R}8UA0oUbk(}rg06nDMpsGR7IoEG&2H-|E&D^!)s4+_WDgN>&2Mxx zm=?{_)OssclTKFzeXel0-)y+}Bl~~msomPiV>w6w2_OL^fCP{L5Ale;mCKwqT^H;9Z&~L7r zX(Mcl=SAihU8m~1R!~iFsJ#(6rYT4B)X=MSDX_1|u6s z{FNvjSgizGsgG%59q2P(-SM-K`cie>u*!Dng?Y?xpE!F)O3_}{E(arvFZ;FIR`cw) zL_A-jv2Qc~N5jV0i9E~DCASk1(Hp;r^H94KjJysqzG&GtJFDYW8v7#i3-#m9zU#>1 zC5Yo~nCNwFx+8MzpucR(Q{7jQdb^PRkr!yOAI=vHppnWPBIS&;^8dnHPf*fIa+61C9IDxAMFKV?*BL|}E^gLdr1JnK;E?6WD_b{_$f zM~jUgX2ab^hTneUA-bl08+7~;XUALC&3tfeU0}Xa-vic7GqsN2x=gy9{sA2mUDZAr zjEq8U_L9j;Xy~c+H}jKQRc1D=?vc82gLLz`VC2XV|0YMf*(%rih56sy9cWD?PjTee{2eF|eSUCu+OddWvX1^R+H8KT%KKx@o4?yV<%-x|#k#x>-A_ zodt6X{cM|CE2U{9jnw8tVCz2fWux}`r+!wN24#52WOT})C7eAwgEo%WYGZ8;*5AyJ zZ^gvydZLY17J|goMlGX_>Dt&swb4ps{lfe&Zf&$~d;r==%ii^eyrMP=I1l=@L)IKi zHCtzpCa+16znL#J?BCktdVi9u4wi!%{Uygm?Q}=v#6iDeO(2f!w4xuY?=nXc&%&dX zk`@m}4j%NsH%U8+WT1upsJnZ}wH@{h6~F$KCXX29MpW~4@ZL`&mwQMzW>MP|MVCG|3Lys00|%gB!C2v01`j~NB{{S0VJ?* z3E=*J-*zoF3<)3sB!C2v01`j~NB{{S0VIF~kbp%1_x~0O`~?Xh0VIF~kN^@u0!RP} zAOR$R1dzbKB|yIa_w{|9f&cIa2_OL^fCP{L5-$p%{=*+6fCP{L52_OL^ zfCP{L5|ns2_OL^fCP{L5==Xd*Y^4?P1>`pWk@;-_;%tJD>k!{J$qg5wM|100|%gB!C2v01`j~ zNB{{S0VME*5+LvY@d;jO&zt&smo$h_H=UY8L)$@0H9`wxh9P9qm?tk6=54*MQTYcZ``&!>u z`hKMQRCh<$uXp{^uJ7nt?mFA`ROfGX{>#q4+9`HUb-ob(z3^AU-xppF&xT)t!tnZZ+Y7RueweYQnx&6ZW>6u&338-K{3< zYBgbJs|mxcCJeQjFxYCsj#d-4KOKnrvV1W=R?Lr{8ClLg;M(dh1?n&P4+NrNcSgGZ z_kV%u{N3)q2x#rU-u20znZVBndqTez{&M#b|2Nz6!8={w-t#xwUhH_S_mjat?fK2% z7kdBi(D!!s_I_vE4|lA0{h#gM6^?a&q5DVtUuaK;7Q&ALlvJLr@S`EJ`Y;3Q}>$ zB@NYyv<^WxcOcT>OnXf6xkSoB>r{RRW%*Ck7nb8ierJWfcD4OfjbsmGVP|DUuK;*= zD|gt1{^Pn>4m>+=;(#ueqpTgb@YN*fsBaf^)PJn5Bp#x`I%I5B+x@T9tHX|UD{yr8 z)FIHndwm#qdDr?dz}EBHv2F#9?3&64K5?Tx;nJ;>C0;HFib5^ePE|H=c&UA=aj`ob zpMjU^)OV*Py;#??T&^G#cQ6tHFSKO%TiUPG8GeuEwNlXYbp?6MAgvS>X-UyqDarp_ zYvZz|vJTeuo|mGwRMfMrs8mZOJySozJuPBOg*{zgn5VgDsjvgBnb(%eda90>#|+X^ zNqxJfTY=tP(}zG$UHf)81_RyoUASX?2z1pKwqtz=bnc!$1j5^%KUz_aKxn)3M@yv! zch3d|I_h-JYX)gatoAeQr;=oSr*eu^mb1Jvalg#V8_o-4Vdmal``bp_hibCvx@s5W zkt;9?m5~jPovM|};!syO?9A1?F0%jk_5Be8|KSf3Kmter2_OL^fCP{L5YC60VIF~kN^@u0!RP}AOR$R1dsp{@F37bu07>(11})~ zB!C2v01`j~NB{{S0VIF~kN^@u0{eyl+5bP|`yR&s#lA@I-R^(W{r9^++4ZHaE1i!+ z=YoF}%ys;|_TO)NyY0EacleL_zQ=cjneM(_+j#A!mJ3EsobXq&Dz_~13eV@#9DJUb zFBbTsTJtCKJ5vjZ$y9<(OCc+``P22;V=t7LXJ(&r4pAC3+%Ope^;xx;?#7<_ohKU}(=NS8!zLlhJ>Ey?+`kW0h&8|EeE zKN?M2noC|^N`Uy&iCb)@L9PrtKgVXwycza5)K5yx3}&FrOjPU8GQr5y5x+KSRlXvC z)CFGU(j`t^O|QZy@#!^w!@A7;hlUbZY1~N+Qu`P%DI?T$7RjEs%>E7z$U^rM*c zDs+YPZ zMrIHCwK3Y?$?02Z%CW@BFpSbGl9=OVyZ6XF=C_P?8LHMSkKNmPM|&2WiRQGs!AJ}w z>2YhGr5UvDZ)~k=R^r-94aLnwE3)=xFmmvq|Gk8zSG45cboUmyW+{>fSVv7{_`7jB5?HW?WIZS|Ad&0u6`$p2qQ z>FBLZQTsRZE3Q%PC0i$*`Sj_)Ip;eS+b)*2vTnc|z2G@0R5B%$z7v^~~ z5rN%?xfm#{bFx5}F*ONXYFR&J83Q%F4D*@SfHa1=`@T`PnU_-=jB_)yJAsi~P||#n zNbH!pOk(VG;^O4eOo|;QZFG3PX(bDxq7xH&x|(V+ld=jkmPyZ;DJ?+;bp08KYFD)z z!N{>={>n|NKVW+WbtBEM!!OR?nO}D4O~!d|hf}sugy$?x>-V&rfWxxJbv+y{X-mP# z*`t1~&oWb4NtSugDX{y-YSD3p`8V};$Z^}qpwFF->txy$T@)3+YFVH z^StU@4H`pQ~*aAVbQ^Bv#(ls?~i`ORv-Z+fCP{L5|-l z50@k8$Ur=tuwwAOR$R1dsp{Kmter2_OL^ zfCO43K;Hj9$lPW6)_Q-V=a+kw?%(Zx*!3Nqm&3mhj)#6c_;$xv+yAKjGi_gQ`;7kw zeShwI1(LS@qfJ!EAyPnvqCY)KV+A#C(=1iSzVSmIhQV#mqj6)&Pv4< zA)n^5Szb}nsdtOZKoxroA(X=pr@(CrNn|OuPPMyw8E>ZP|PbCmeynDQ~5$kgb|Wn=VXCf z7Wvu)E=4u+I_lMt@bG%TlSP8&y*1^uqi#*6PP*edslO4{g2! z!?#BZLM=H`i*AFqJM!q@rPAzl=z0iO-h4aAtnqHiS{Z##L7Jq`c+{)i*nDgEY+B4P z(K`jx%qncprfojnsZBH6@gdo?%H-xFuxZt2p!?;fHq8{y8Vh^araA1A%&*A2vYM8` z`fOnz;={zaZfyiTEl6>5BgovgEQloL*hbUBuGy1^yJb&e&SAV=gXA@?%bO2&WKUdz z?7*H>Uf)~~G4oWFn@!HB$exO<37h2*Gg&EvH82qJMO9EY()>F7qOeqb4NL231f0oX zY1^403odg;cCKe8ms0b|IVfs2F$XIb$7nT*AQ|=5iSr&2Bduw)oG?ox{eO9TS zja4_*5OYF%8QRL_ax5tn7H?v?P~=3Fm-V)?nXDwsJgkZYshD9Wr>EJe`I)6zSkQY& zVJ$TV?w5IaV}SLV_Lxm2#GKQjM!h9jS{D>39TsHUs^7}E^`gg1hUHB;$V`zf5nYTp znwVA#rS$y=ysU0`uX?=Gdf9|$ajF_mI> zt3dYR!u+gDS_d^R5?cFaDa72>4iFN~Jt#4^4k~GVk$x!{5uCSOUxCfkL&%Z-V;6F-E*k> z+dIG6SqgtCd@%Iwp_vd9{2zmF1S1{a*Kwx(i|v`VKW_U6ZLbA>C=l`eD_<{Uw0^Wt zRgZ)it`aa@YnF=w_~A5sZ7-Jv5uBc zjy5bocY9cqocLmN<^Xs2dadvat+#H=ajerEtW;_^C|L^Gb!*?ultm(&FApCO5Bs$ z#oU-&n7TZuK-@IH9z-CCrtd!%~f{+KV znV31k53t}wMs1me(-F-8=&WUASaY|!Y1G5V7 z2%I7r&X;7NsID9zIF=h26mp&wm8;K!OKh#jXz)^U+M#h~fi68aFS-?+cqVrHthOxH zu$Qt=R-XwnuajG2YO){hlyvn6Xt?5;W zER=@y`s8ZeB)VU+5%#JZk0hhB!gFf)I_?U!HW@*eeOx$G)W0%xhPZt%LV59V}E zP)d>_=zjF;>eZ(vu#ldye{@id?kd6~kFXv@y9*@Pk%yoD2D;o`4F{Qb--Vtb%WCLk zk%fpz>ISQpW{UyBBx1mX_YI&>cfb2W!0=qgNuDwZd1?r)>X6ddQ0ugWT`-6GbHEO<=J>Lt<()ea(3(m-Mavl4lIJ72?-zpB!C2v01`j~NB{{S0VIF~kU$LqeEwep1ph<=NB{{S z0VIF~kN^@u0!RP}AOR$>4+-G@e;;-#HVFwJ0VIF~kN^@u0!RP}AOR$R1du=t0rLL; zAzzB=`=@-^81KhzlrZ-#y@_)j{1tRvO_lkL-OpKJR> z;Cub|eZLM_@TUO*2-7tlVrI3MjX)WCm@cjeF%NV6x{&2h8Ua_*oEfRh5qQUuE^VjN z!`wLTk;pra+aBR=;=|fg)v*wBTRUM0;tFBsDC?vyR$9n4jIiWLZ8QQ>dkSThHr0K;nw$=S(;+w9fEZFX`gHJ_Y= z_RJ>cQm#-sSy3Q?k%UrBTow|u#)x$T9n&Bfj@`QYKtGP|@Q$QYR(LrLq2`KEx;qGu zNB51KeYZLqWH#1l+>rVZgd~!n5!^|V^Uxa*#n3OwLW)QG8D7 zjkHr3f4dV2iZQ4lohq04XlK|X3RC6z>Pd*8wn?HeEp8OEb}bO{$ckZUwKO@mm{=ge zo**EQ(bD4}>>xywA~s`?rCK(~8isGs2w9qg%EMthJXF*4-hiAQIQe?`=Ow5W}C}7C@jmIyup?rmLNz&gZC-hh-iGT`U;7R-K3TVfs@D-Q|*U<#YAQj8&HykJjA1gKzk*zOn$2gj@>l+ z?&Ipq&REz+c}4(aD7L0NS1`nyd+vCVdP(Le0M%qY`Z-x;gUr0y7>J@=ApHr!WJ!zc z;tPPQX-n|?{|1|Qyo>~p01`j~NB{{S0VIF~kN^@u0!UyV5$I`KWDfYg%C!IOwl4?1 ztM5whYd!z0`v<#^b^ZO$|E_Z={JGHQLMeFq{{keb|LM@)?VwjTIqjWbWNgg;*))Cf zKp%9PCthgW{_W z@0lzd4X+4AL0RR2+Vo^9kxI@ctW)E1NtC!;x-5&1gEq*bsGM3>%xlImGh7#?EGMRO zg3M=CN!~CMfRJ!AUr=0~?!LgDms#he(dgaWb}2jG@oYB#mq z`>2oSb7>9?RGyOUXOF|PMHYVG;g4w*8opODNSg){ZZ8M1@mu^nX8^nAV zPg(|bJEDC;dlZaZJ?GaZt;#LtGDn`Rn3mns*y%=}`SXS{ZBbYQQ>PbcTe@ep4Zw5G z|K52|O)(5hgL;@hb17b?L9$&lb96dUr8U0j80_RBmIBWp%u9}ETVRc{YYk^Ena|S> z@XiYl(G_^ylx|S;j-Pc=B_;0-)X$jgbmHRV(oBktMbBtzMn6G>~=JqHt-ELqfOk2Q&ChJW*%t{HZ=Ww$6cCJ7#r19lGOILtiI9I-g2jYVlfYQ?aAKV` zh`yy2gON!9f5g%Y$9s^D*F+sxnQztWgX6X%lTO}okB~Psn#dT{7_AVDybkq8t&Vpj zw_gZ#Tx5Q?Vc$Da*;ze>u-~?fR>GR7Yrsva0ggf(zcRn))&R$?9csXyd|ULswg%g+ zL(YL{3|D;)Clj)Mf%#7jyP+YYAABiuvEYx~%D%-72ny z1-q3tiqHS+k2UZL5Tpn0VIF~kN^@u0!RP}AOR$R1dsp{a1g-f{|*@VD-u8gNB{{S0VIF~kN^@u0!RP} zAc1{KfIR>AcR$bccEdmTg9MNO5hkrxJU2F;pIuTfCyM#A<>KkW=CEIhiswmQczjjG(Gvv+32`aWNp zzERE&-zjj3d$;FrJY2bwy;u@c(^nD@8)RkmUhdvnDseM^Y5eM)sf~m*a&Mkr&1Fw1 zr^jzzU7qH1@mr_HPp3{zEnF_CW2cAbCU0El=VIBoczbf{VqTe=yMLLxE{$Hhb!Khk z_Nmw%F+cuj=0YKvJ@w#z{^3UIYT@!sae7Kx96i0V#;?tvxHk3R_8tC$SiC%T@vNMh zkxyM3&dp9=lQ&XAdFsTZv~eweXD%+qXM_hUT#i@njI7Jj_|@qXCq|S)eD=|q8z+WG zCMS#c7KcYqaO0!*E-uTbW|KEBPv7RI#EsMpzcI4DqHxOPv7)$oEjANdUrt@vm>+w1 z`a)T_IXN=6aerPAS7Mh>+(})&H?CZH#AUe$cjg{0q|QvAP^K?DymK*kV|*pPaR1)i z%KFWftMO~=*Yl&J53*Rq*AGgKfXowi5V%19G6v|Je8YzPFg)hHQ;~w5O_zA?CUk5BJ0;b2+wL6z-RK zmIg*(?Pz&&xky4)c*Q%QVXJCmG8yUhKouT0Y2XqPFXmhgqS!=ySnH`Sgcwdc3^Fa1 zauB_Rg}T|SB$f+BcAXQ;yuz+XvMnDA^(|c^@#9#J%Gkw3ij;63V!;&EmE!~DW5Z{2 z1A{^?%HF)3SV+*~lZ!O&oR>gq^?Ha&XhDz%0>-$jb%@4^5XyPacw6^Jdv!j<+|~}Z+#lY3 z@xJ?EtvVNE&c9pN4bUn>JGSbA?c#q}oeeSPv_nR9&QM+3uFaXbCY+U5&#zZ!Ld;n$ zVpQ#jA-3(B9eG=*SgBqOF>$M6Gql;ZYc(@^gwgU)^vY=UN{Ct9d<^Z?L!NmKV|`?; z$6O(7k{4;Xr^Kz~VrsEYuhVqc9p6cGn_5HS9a(O<-TJh4@5-%47 z8r)W4xnfa*0HP3;&xnVq*cLr2<#_uq4^>^LUJ5cCsf5e~%g`_u!hFgbbUuPOOfbs~ z8wG#>dZ5y#gD6sfo%5rXZ~f zDnxXJfPs1lt?7mNYY;MUI&q7o3!-gg&3LGpcB(oRV(x3#sdTzJ=xegAIt`9j+w4R>sOemN-_RG`-WvlGX~EI7p&D8u8FP z4GdSE3^MPMQ94ayMD9RenvPm6Q2kVpd0W~+C1&Ths)=TLFZKI$_4OdLL7KX=j%?b_ znd-L%nI%%eHK|k<$r9h{C@`fWMExY4W2`%x7I(jTo-ELPhQN*jTzcnP9a{Cd*M)Xo zbH-}0Ixkc|3G>ZC(guB>#Iq20T9R|Dw89!I0HY}in=6yx(X7blx$K5L!4QjXSo@}J zOjXYX8J<)JFOy7_6{pQE1fha2yKmter z2_OL^fCP{L5axVi zIsXfgek`2g6&2nkAupG*vz#gm57`?r^#8Z-wFMi91dsp{Kmter2_OL^fCP{L519{pX@r<`Hwmeg+CuY5UPX*ga5Amx7+_g`*ORltr++n|8Mw@`2Gg- z$IK5w*2X_`@3jS)+a$I`$qdIKmqnhW`Y(42K%R!H=v){4?zdJiI;7PM1FfC^d!70d_-2r)FMd>)0n0)Esda!3BK z3N{0O%%^BXKz2HDadK%U#SRR3#A=Ia{`Vjn=OT@cM*?Ux6ish$1CiXKkTSL@#p~}e z5Phdzd&9t_M+EC7xZ8rGgIQB!qPnR)j3|ucDlUU_87) zOwEK|MN^wKRecOm*m|JFLXl)qcvj(Q%(%1_i3sBE6!YpT>44bq$m#mXU9nG9AAu=# zl~Uvi5Gl+IX4Jfh&2n`EVzPerZ4gD5oh>U65Q%>X@kNWAm^Q>}J|H}^?Qm4kvS^Gy zVw=3i22IiECe2xpa$s)Ej&=+=E}I3^X;oU|Axx?sP!UvnTgyM!7SI&4_@=`qiQ+GykP}{-Ab4(h1gN$5H(AM=wC^~coJCX zw#YQg4J{E^l^mUQsr7D@?4-hj@~FxLN#3-xwce^ix`jmNCEX%&iV7B@sDfJ7b&XJj zxw{AoK-XR#hT2Tvrs6EqG4>lx9^F+r#0b{p0YgL**LgAp?v_A~B3qCrSiK)&@>-Wc z$OzN6+sj89{H=-7u2)Mz<|c`AOS)@u1l(GFEt$+~;Y7@oDo8>@$t#_p*Ffs7n( zc^YjmtbJz8Yq}%*|7V%cFnzNj=E% zKkEB?zULv~F8^rHR`X<2$S zJ9Y+Ur8HJ={ia(Fcxv{HBcDF%74V)}%$v83mAOgPt4PoNxYkk4hL~CHsG<920j#r< zR+Qb$=r#z>QXHasSpluHx(r)GZJdP8F-zKsT50kH zC2h9Vak#XlAu!Xs+0>TQOrq{;h8)J3>jJY-n9Q=Uan8YZEeo;L-v^+Yf||(lPBjfj zTGl*giKDCS&b!G|?L8D`So2pu9b%I85|m4##O2auS=_l4b{Sh^7=F8Ym)K|$pE)N> zrG|Dctrkk@`wt+d@dmYcx>ZbGWD~cNi>XC6Q)|ymppJ~0ddoOmIbVG<#N4iuVDGRN zh3*%naxQHxI4xxbi%6C}>m$jz#l%929COS!u9X~annw!c#MZE9;J26lYMcPj-;I+u z`umDd6qHq7Pj6%+*`w@YVkR+_s;_Vt3TH1a%+J=B+#*2jwdxxr9{nW(5VoaojI19p zFI`Wh8^NR_e+XbUJX78(r+%K?CN#!`NxY`LVeM@7Hte#F(MK-} zJY7K1bA!6!L!4Q|uxSL@F*;e$hnRE8Q#YictPH!5n45%S@~sA+qfoCQ|EPM)I3Du0 zI0pA^8=Sg)UX@p*>dg>yv%1#M-sr`&Xm0exMCBdUf*2b`Ea$07f%zc224~D$+8ufX ztDmLnmMTw{3sxCfv8=!Wvwp$0MYUCunm(918=0tsn~l?0R&@+xk|Y*QI?Px9Ow z+jKNFYFit$y7IhC3V#2;%Lf`*91=hRNB{{S0VIF~kN^@u0!RP}Ab~wd!14Y69+VD6 zLIOwt2_OL^fCP{L5SKF^LeRq1k8vcW@ zKXfB_tK)BXoNVvuzS;Jx{{O!3V6W8k<(?P1zUCWb?(ag4+F0eOU?e@@*A(hVBRPG` z@&K1!6^OIQ4eI4jDRJQTF)vHy68+oq*tRT6%f17K^PlA0bmA79X}J{Ly@snS;sAv> zp`jIK1~aru_MF?L(BJ8d!|fi!aG+^8D7D>p%o)Cd z^!C>K#xN!F@D*g^s?SDQ)nBImKh2_ynsqT;XOYFB zrd?nvlHCi&6GF`uku=@ zJs3HB*k3*7QX#WaUx&BKJejI8T&#L9}kYP0;b68YMFY!_a0uRRBY%a)pwYOPpw- z5(q}(FZ;Cv*3hv7Mx==~vj6n8HykB)BAQ1Z4)#SdAgE=F!dUeOBX?tdP4KGFFll;( z7LvpC{BD+}+M|ju6w!h)emzjoWJ@x;v}UmNJf(MEdT z=WnHjo<-F)gr*{WRo{ZBR?^<36Z7T)I_PWVsQuf=7;+gCbM5^d4sk;=Zx>f4?)ss> zv*<9Joc2yIGB)P_Y?`*&GoXj(MdmNut@li{Lj<%e>Kx2zA)SjEnxfH7niE5TnDYWz zE4>wr3=H_IarbOS7NpiBMpvhO?oM^xq@7u&Ufh!2SOo?;sQp2_OL^fCP{L5s1n~L)E^cEWsT>SN zwBV4xa!x4b_=m~qTWOhBq_Ujl)2o7_O7cd!$Q5{{#KD!kER{=k0&*jr=Zn0|se)9j z&FDKcwUC%hCD`QLbmA79d0&NR*!ej&Q(HxbJ)W_|%M50yfbjojI{1~`CU-0`GttfQ zN+=i^8uEYkWtCeNc{8=y;@ZD`VWT0b$qO?HPboSx`LdA9u&KnY6nkwUIXk&beQU0n>PB!#9}JD@A)n8Y_n`PKeL7w2C1Qa_P{lz%|stp4g@2w z5BRkg>zlqTO3Uf2%yTNAv)V;2`kvmRQO;a75|dj*T%*iPR2!>26^x{zdZoVlMs&!q zbBl9e3vsq8rGa?%m~U+Iq7#+Aj>znQpP_;)_eDYF(_C4V=->93r8r`4d7rABtMmpV z0|WkQ+^yv#wL5K}(Y9LSXt3G5qsRh-z?dvtT zF3lycFIkgl3nkSkjb)R)teJMa(oL;d#pmwlT5DlS)zhH2?OI?eB+CR3WM&h$xMhv| zx;daTs`Xd8f{~j5^=jj>Xx3pCWc_UnGhcTLL($4)wW`tLqb_As%U3#s5eaPd`TDNk zYOFVuxU0D$v{G)3S{PYcFwS%p;bodXRS9zp-N)EFGPt~VRw3pH1=EemqDpjEAk;`9Gq-_&7&NB{{S0VIF~kN^@u0!RP} zAOR$R1oj*O-2d;nE^cDw|L-~G3rz3N_5StV zWcQzRU+Ve~o!=4uVmK7~hrw?IKiTo`+W%79FScC?{M|sv|GMvoeMcejhyC-`b0OxE zb}-x%pUmahtR$8TMOJ^Ml@*Gt`3?mqs=Un7*I4X#eKYLj^fWs)KeIFo?=Lrd50)Jn z9vK}P9vzAgv$6QZNNge=)4C6an48+MX4RXoTY8FN-rNOoI-d_X{!gZ;#Zy_Yytl#pdEOAtqfp&`21w*;J^KB#K)LWxlB77Ow6M zAh)z;9ps&tI;rg!ckH)yJR9=d(;=py9d&nd!xyZ#sdf#^alG#h?}2-2->U~g%-dRg z2ZEVkwxN*kN6_F?A!bQC41(%!lNuw@9Gz+MKI$NVgU=i$*w_}TNnePy-bi)5`DeV- zYQG=s*_ZJ?B1yS5NrtzO#MH;yH?Qa$dF~G)Ov$XI-m;J_D4Z#)Ww(sCRLS4X<+gHdVeM@DXO-vKy2=|tP}1sRv(~kw zq&C|p@5?Yxx^H%DF?UQz72oLP8TmTJG|B;Q1-0(>c~ zas~MKr~X4O&u%08|F)iInLe?%+Vd^=1%HqL5?QY_qb09n53TP|h`FxC>Rac0h-kEH8;_1`O!a$K z%hS-X=OZru`4E$>ki!GQyY7jm`5cQrM9lLltIFUKWBS6S**ik(SbO|Xyq*C2iWL_aN_&*`Q2AM-de!T0~4Aj5`DMFL0w2_OL^fCP{L z55r7;eW}u4jK07k9PF= zP9}UpiN{}lW+?}+i7ZQ;oKq$sMp4f3Cq%@Vh%d)tu`~SW(3vyY+|cP2er#xbEE^v> z&7X;%&YjKX&W^{OZ%m9%jKnA6BOaIRf}z}2iq(!rJf&P0_y=}j6Cbsd$DZqCd_y`* zKUXYDDvdL@=V-oq5ac{%$m!shBX8I6jtd_-&}SV$9dbR8AvTob?~hu}SDpbmjX~sh z$hF5t(ZJInX3RrB4d(&&@c*cR4jgD8>7G;3SDyk&&9USh^LtK5`@D6O&k3qSWk2ek zKh_Ik8a6cG9LTM;TCryM)I90?DIxUF&RVK9I`&upcv;?hx|BY55}v!x%PN z?yUU7XgKx%2OIjn+r9s!x3lMF_xE@GN!Rtx9|VbRhQ1i;2&Oy!c}Fko{=d}rOhE8| zneP7g=-&V1BbIjbr04$M!@%aoW4Td&WqD{kw!#ga9?1<4jSpvshvK=|=<@g&Kbl<` zb&j+%6Q_qKhFu32#wFX(zzAxkSnZV|qL})e&}8Y_N_iiYm`4XaVR{^+DY0+sh_XB;w`4fVai7-=D<-9)3Bkg9pIj`p|AFX zq^<5%KT4#pzU&axF_8A&h-X1ik4@BG8}S228tCZWBl-yk(LKDriya0zcW|8YQ4Xu& zmq6z2AE$hjBERw?h-^$%j#DeIN2ed9n8#jlXsyFwc^#&FlybgusO8O5E02two2OlT z5>591eqWIZ{jcy3{(Qg$K7Y;M&4j}tAGmY>-n)nW?oN%zCPqge_d6_c|HR{dQBc(W zi8mhiFP8;TO&0qnVuStmF%e0kZj^ZN_5dC(SGXeAKiCf&eE554h`pp=VuyzM-yZDe zi`=pZDOI`55B9GLIqP>JD;1|CQIa8>oL}aS4-c{N ztTdg{tq4k%6L0gJyr^=rIx7{`)&7a$LDI_7YD$tsRVdL5q^*DiLJO=Z0P5~we~Byd zBKiHXHz=XFB9c?uU34 zgzMw}f<%CWbnsS!$`55l4xR;MNp0D(qDlplhIGnBS^r(+!KVr|ZiN#S=r7f5v+?)3 z@W{CLHWX3dN+k%cKncK~68O57p)B+7Jp6G@qVfR7@xlHF0BvNj{~<-V0slfKgQP_J zil)s8N=f84X1HY?Xg~Eb0_~;Ra2Kc>GD4H}q_cV>sn$YIh+LL0@I}zz{$)uejU4P( zR;33sMm}8?X{n~DC4o=r3Z0XRWfd~We6F13=WVe-GqN*v%d7PLxb$JiXVp$xKI?jEQX%PDM;=W~3{S>g(q6J9>PQk-Cq%Te~cS<%UK zf#;O6O#6*Je;#Ba0u^|5Rm!E;M`{FXPz?VN?3TjHCrMs?yc3Z@K&dEhuq8<-!foog zhBNJf%H^E`Qs?r=^>8oB1p9_AhhEm3{dZk>vQoLI8fgi|G}QwTwT2SZPm`Jgz#}=M zc4y5pSjqx#SN+&-1SuSPK`lcE4YGPQbNB{{S z0VIF~o^S$xB_DuIrH`J|et-C|Kj7Y0#>Xc{@SxT>Ms9su`7uAJ9a`QPqQ{zaq4`hgRBaWXkWPLN9w+7eFT1$yB7n4aVs2hYYn zj-KQQ4|zDG){psf;BtBhPFA5%;}~>>+=g>cIQ-d$1lJ}P7k4Is!WV=gDn?%Bd2)*W zz64pkn!L6%L8uHHyeQHmt~w#eVc3U#ey%?YaUY<|LVlGThkq#N=j6IsEH zOCjbk6CjW0VJ|~oDjI^V6TDP3v>r>rMf1%9>rEqk7`)ww!MJO0@inV$?3r=b4rdzr zMgn*3@X8`Nz}c0z-f-8BFTFjfPwMymOK|ns2_OL^(44?`P5WUpo=*S3k=o5TxHJ%l$jjqHTp2$2pe{p) z-sCV|&{2d(^y8j>Lk611V5ScmXe55=hF`jYS4#FH`qFKVf56hOc0s3&58RgF6HBg~ zhYvA9=RXD?xNT<=*FSn|#XA8RyQL8%^EU>JRu1 z`(4gfVW%0JI335G=5FjX$rl3nVgYdl+VW@n_+kOXz_Y#qz!wX^>ny%lP?odQ;i&Nd zxCJlG=t37==&HmOFl@KIUFhQe-wYDxe3QU-pR2$B|I+e&6M^4>tVd)i~VnU)x3^#*c5{a.r(t),a.d(t,{default:()=>h});var l=a(5959),n=a.n(l),r=a(7781),o=a(1159),c=a(1454);const u=(0,l.lazy)((()=>Promise.all([a.e(746),a.e(389)]).then(a.bind(a,9677)))),p=()=>n().createElement(o.Routes,null,n().createElement(o.Route,{path:c.bw.Explore,element:n().createElement(u,null)}),n().createElement(o.Route,{path:"/",element:n().createElement(o.Navigate,{replace:!0,to:c.bw.Explore})}));var s=a(8531);const m=n().createContext(null);class E extends n().PureComponent{render(){return n().createElement(m.Provider,{value:this.props},n().createElement(s.PluginPage,{layout:r.PageLayoutType.Custom},n().createElement(p,null)))}}const h=E}}]); -//# sourceMappingURL=142.js.map \ No newline at end of file diff --git a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/142.js.map b/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/142.js.map deleted file mode 100644 index 406e5af..0000000 --- a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/142.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"142.js","mappings":"wNAIA,MAAMA,GAAuBC,EAAAA,EAAAA,OAAK,IAAM,wDAE3BC,EAAY,IAErB,kBAACC,EAAAA,OAAMA,KACL,kBAACC,EAAAA,MAAKA,CAACC,KAAMC,EAAAA,GAAOC,QAASC,QAAS,kBAACR,EAAAA,QAEvC,kBAACI,EAAAA,MAAKA,CAACC,KAAM,IAAKG,QAAS,kBAACC,EAAAA,SAAQA,CAACC,SAAAA,EAAQC,GAAIL,EAAAA,GAAOC,a,cCL9D,MAAMK,EAAqBC,IAAAA,cAAyC,MAEpE,MAAMC,UAAYD,IAAAA,cAChBE,MAAAA,GACE,OACE,kBAACH,EAAmBI,SAAQ,CAACC,MAAOC,KAAKC,OACvC,kBAACC,EAAAA,WAAUA,CAACC,OAAQC,EAAAA,eAAeC,QACjC,kBAACrB,EAASA,OAIlB,EAGF,S","sources":["webpack://grafana-exploretraces-app/./components/Routes/Routes.tsx","webpack://grafana-exploretraces-app/./components/App/App.tsx"],"sourcesContent":["import React, { lazy } from 'react';\nimport { Navigate, Route, Routes } from 'react-router-dom';\nimport { ROUTES } from 'utils/shared';\n\nconst TraceExplorationPage = lazy(() => import('../../pages/Explore/TraceExplorationPage'));\n\nexport const AppRoutes = () => {\n return (\n \n } />\n {/* } /> */}\n } />\n \n );\n};\n","import React from 'react';\nimport { AppRootProps, PageLayoutType } from '@grafana/data';\nimport { AppRoutes } from '../Routes';\nimport { PluginPage } from '@grafana/runtime';\n\n// This is used to be able to retrieve the root plugin props anywhere inside the app.\nconst PluginPropsContext = React.createContext(null);\n\nclass App extends React.PureComponent {\n render() {\n return (\n \n \n \n \n \n );\n }\n}\n\nexport default App;\n"],"names":["TraceExplorationPage","lazy","AppRoutes","Routes","Route","path","ROUTES","Explore","element","Navigate","replace","to","PluginPropsContext","React","App","render","Provider","value","this","props","PluginPage","layout","PageLayoutType","Custom"],"sourceRoot":""} \ No newline at end of file diff --git a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/327.js b/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/327.js deleted file mode 100644 index b5e2a86..0000000 --- a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/327.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[327],{8327:(e,t,a)=>{a.r(t),a.d(t,{default:()=>v,updatePlugin:()=>f});var n=a(5959),r=a.n(n),i=a(2007),l=a(8531),o=a(6089),c=a(1269);function s(e,t,a,n,r,i,l){try{var o=e[i](l),c=o.value}catch(e){return void a(e)}o.done?t(c):Promise.resolve(c).then(n,r)}function p(e){return function(){var t=this,a=arguments;return new Promise((function(n,r){var i=e.apply(t,a);function l(e){s(i,n,r,l,o,"next",e)}function o(e){s(i,n,r,l,o,"throw",e)}l(void 0)}))}}function u(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function d(e){for(var t=1;t({colorWeak:o.css` - color: ${e.colors.text.secondary}; - `,marginTop:o.css` - margin-top: ${e.spacing(3)}; - `,marginTopXl:o.css` - margin-top: ${e.spacing(6)}; - `}),b=function(){var e=p((function*(e,t){try{yield f(e,t),l.locationService.reload()}catch(e){console.error("Error while updating the plugin",e)}}));return function(t,a){return e.apply(this,arguments)}}(),g={container:"data-testid ac-container",apiKey:"data-testid ac-api-key",apiUrl:"data-testid ac-api-url",submit:"data-testid ac-submit-form"},f=function(){var e=p((function*(e,t){const a=(0,l.getBackendSrv)().fetch({url:`/api/plugins/${e}/settings`,method:"POST",data:t});return(yield(0,c.lastValueFrom)(a)).data}));return function(t,a){return e.apply(this,arguments)}}(),v=({plugin:e})=>{const t=(0,i.useStyles2)(y),{enabled:a,pinned:l,jsonData:o}=e.meta,[c,s]=(0,n.useState)({apiUrl:(null==o?void 0:o.apiUrl)||"",apiKey:"",isApiKeySet:Boolean(null==o?void 0:o.isApiKeySet)});return r().createElement("div",{"data-testid":g.container},r().createElement(i.FieldSet,{label:"Enable / Disable"},!a&&r().createElement(r().Fragment,null,r().createElement("div",{className:t.colorWeak},"The plugin is currently not enabled."),r().createElement(i.Button,{className:t.marginTop,variant:"primary",onClick:()=>b(e.meta.id,{enabled:!0,pinned:!0,jsonData:o})},"Enable plugin")),a&&r().createElement(r().Fragment,null,r().createElement("div",{className:t.colorWeak},"The plugin is currently enabled."),r().createElement(i.Button,{className:t.marginTop,variant:"destructive",onClick:()=>b(e.meta.id,{enabled:!1,pinned:!1,jsonData:o})},"Disable plugin"))),r().createElement(i.FieldSet,{label:"API Settings",className:t.marginTopXl},r().createElement(i.Field,{label:"API Key",description:"A secret key for authenticating to our custom API"},r().createElement(i.SecretInput,{width:60,"data-testid":g.apiKey,id:"api-key",value:null==c?void 0:c.apiKey,isConfigured:c.isApiKeySet,placeholder:"Your secret API key",onChange:e=>{s(m(d({},c),{apiKey:e.target.value.trim()}))},onReset:()=>s(m(d({},c),{apiKey:"",isApiKeySet:!1}))})),r().createElement(i.Field,{label:"API Url",description:"",className:t.marginTop},r().createElement(i.Input,{width:60,id:"api-url","data-testid":g.apiUrl,label:"API Url",value:null==c?void 0:c.apiUrl,placeholder:"E.g.: http://mywebsite.com/api/v1",onChange:e=>{s(m(d({},c),{apiUrl:e.target.value.trim()}))}})),r().createElement("div",{className:t.marginTop},r().createElement(i.Button,{type:"submit","data-testid":g.submit,onClick:()=>b(e.meta.id,{enabled:a,pinned:l,jsonData:{apiUrl:c.apiUrl,isApiKeySet:!0},secureJsonData:c.isApiKeySet?void 0:{apiKey:c.apiKey}}),disabled:Boolean(!c.apiUrl||!c.isApiKeySet&&!c.apiKey)},"Save API settings"))))}}}]); -//# sourceMappingURL=327.js.map \ No newline at end of file diff --git a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/327.js.map b/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/327.js.map deleted file mode 100644 index 9e45f47..0000000 --- a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/327.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"327.js","mappings":"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","sources":["webpack://grafana-exploretraces-app/./components/AppConfig/AppConfig.tsx"],"sourcesContent":["import React, { useState, ChangeEvent } from 'react';\nimport { Button, Field, Input, useStyles2, FieldSet, SecretInput } from '@grafana/ui';\nimport { PluginConfigPageProps, AppPluginMeta, PluginMeta, GrafanaTheme2 } from '@grafana/data';\nimport { FetchResponse, getBackendSrv, locationService } from '@grafana/runtime';\nimport { css } from '@emotion/css';\nimport { lastValueFrom, Observable } from 'rxjs';\n\nexport type JsonData = {\n apiUrl?: string;\n isApiKeySet?: boolean;\n};\n\ntype State = {\n // The URL to reach our custom API.\n apiUrl: string;\n // Tells us if the API key secret is set.\n // Set to `true` ONLY if it has already been set and haven't been changed.\n // (We unfortunately need an auxiliary variable for this, as `secureJsonData` is never exposed to the browser after it is set)\n isApiKeySet: boolean;\n // An secret key for our custom API.\n apiKey: string;\n};\n\ninterface Props extends PluginConfigPageProps> {}\n\nconst AppConfig = ({ plugin }: Props) => {\n const s = useStyles2(getStyles);\n const { enabled, pinned, jsonData } = plugin.meta;\n const [state, setState] = useState({\n apiUrl: jsonData?.apiUrl || '',\n apiKey: '',\n isApiKeySet: Boolean(jsonData?.isApiKeySet),\n });\n\n const onResetApiKey = () =>\n setState({\n ...state,\n apiKey: '',\n isApiKeySet: false,\n });\n\n const onChangeApiKey = (event: ChangeEvent) => {\n setState({\n ...state,\n apiKey: event.target.value.trim(),\n });\n };\n\n const onChangeApiUrl = (event: ChangeEvent) => {\n setState({\n ...state,\n apiUrl: event.target.value.trim(),\n });\n };\n\n return (\n
\n {/* ENABLE / DISABLE PLUGIN */}\n
\n {!enabled && (\n <>\n
The plugin is currently not enabled.
\n \n updatePluginAndReload(plugin.meta.id, {\n enabled: true,\n pinned: true,\n jsonData,\n })\n }\n >\n Enable plugin\n \n \n )}\n\n {/* Disable the plugin */}\n {enabled && (\n <>\n
The plugin is currently enabled.
\n \n updatePluginAndReload(plugin.meta.id, {\n enabled: false,\n pinned: false,\n jsonData,\n })\n }\n >\n Disable plugin\n \n \n )}\n
\n\n {/* CUSTOM SETTINGS */}\n
\n {/* API Key */}\n \n \n \n\n {/* API Url */}\n \n \n \n\n
\n \n updatePluginAndReload(plugin.meta.id, {\n enabled,\n pinned,\n jsonData: {\n apiUrl: state.apiUrl,\n isApiKeySet: true,\n },\n // This cannot be queried later by the frontend.\n // We don't want to override it in case it was set previously and left untouched now.\n secureJsonData: state.isApiKeySet\n ? undefined\n : {\n apiKey: state.apiKey,\n },\n })\n }\n disabled={Boolean(!state.apiUrl || (!state.isApiKeySet && !state.apiKey))}\n >\n Save API settings\n \n
\n
\n
\n );\n};\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n colorWeak: css`\n color: ${theme.colors.text.secondary};\n `,\n marginTop: css`\n margin-top: ${theme.spacing(3)};\n `,\n marginTopXl: css`\n margin-top: ${theme.spacing(6)};\n `,\n});\n\nconst updatePluginAndReload = async (pluginId: string, data: Partial>) => {\n try {\n await updatePlugin(pluginId, data);\n\n // Reloading the page as the changes made here wouldn't be propagated to the actual plugin otherwise.\n // This is not ideal, however unfortunately currently there is no supported way for updating the plugin state.\n locationService.reload();\n } catch (e) {\n console.error('Error while updating the plugin', e);\n }\n};\n\nconst testIds = {\n appConfig: {\n container: 'data-testid ac-container',\n apiKey: 'data-testid ac-api-key',\n apiUrl: 'data-testid ac-api-url',\n submit: 'data-testid ac-submit-form',\n },\n};\n\nexport const updatePlugin = async (pluginId: string, data: Partial) => {\n const response = getBackendSrv().fetch({\n url: `/api/plugins/${pluginId}/settings`,\n method: 'POST',\n data,\n }) as unknown as Observable;\n\n const dataResponse = await lastValueFrom(response);\n\n return dataResponse.data;\n};\n\nexport default AppConfig;\n"],"names":["getStyles","theme","colorWeak","css","colors","text","secondary","marginTop","spacing","marginTopXl","updatePluginAndReload","pluginId","data","updatePlugin","locationService","reload","e","console","error","testIds","container","apiKey","apiUrl","submit","response","getBackendSrv","fetch","url","method","lastValueFrom","plugin","s","useStyles2","enabled","pinned","jsonData","meta","state","setState","useState","isApiKeySet","Boolean","div","data-testid","FieldSet","label","className","Button","variant","onClick","id","Field","description","SecretInput","width","value","isConfigured","placeholder","onChange","event","target","trim","onReset","Input","type","secureJsonData","undefined","disabled"],"sourceRoot":""} \ No newline at end of file diff --git a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/389.js b/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/389.js deleted file mode 100644 index bb143dc..0000000 --- a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/389.js +++ /dev/null @@ -1,8 +0,0 @@ -(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[389],{1738:(e,t,n)=>{var a={"./af":9805,"./af.js":9805,"./ar":4449,"./ar-dz":4468,"./ar-dz.js":4468,"./ar-kw":3480,"./ar-kw.js":3480,"./ar-ly":4197,"./ar-ly.js":4197,"./ar-ma":2180,"./ar-ma.js":2180,"./ar-ps":9343,"./ar-ps.js":9343,"./ar-sa":230,"./ar-sa.js":230,"./ar-tn":2808,"./ar-tn.js":2808,"./ar.js":4449,"./az":5865,"./az.js":5865,"./be":6627,"./be.js":6627,"./bg":901,"./bg.js":901,"./bm":3179,"./bm.js":3179,"./bn":1966,"./bn-bd":969,"./bn-bd.js":969,"./bn.js":1966,"./bo":6317,"./bo.js":6317,"./br":6474,"./br.js":6474,"./bs":5961,"./bs.js":5961,"./ca":7270,"./ca.js":7270,"./cs":1564,"./cs.js":1564,"./cv":3239,"./cv.js":3239,"./cy":2366,"./cy.js":2366,"./da":2453,"./da.js":2453,"./de":6601,"./de-at":5027,"./de-at.js":5027,"./de-ch":8101,"./de-ch.js":8101,"./de.js":6601,"./dv":6080,"./dv.js":6080,"./el":2655,"./el.js":2655,"./en-au":6836,"./en-au.js":6836,"./en-ca":2086,"./en-ca.js":2086,"./en-gb":2103,"./en-gb.js":2103,"./en-ie":5964,"./en-ie.js":5964,"./en-il":4379,"./en-il.js":4379,"./en-in":765,"./en-in.js":765,"./en-nz":1502,"./en-nz.js":1502,"./en-sg":1152,"./en-sg.js":1152,"./eo":50,"./eo.js":50,"./es":3350,"./es-do":9338,"./es-do.js":9338,"./es-mx":1326,"./es-mx.js":1326,"./es-us":9947,"./es-us.js":9947,"./es.js":3350,"./et":8231,"./et.js":8231,"./eu":8512,"./eu.js":8512,"./fa":9083,"./fa.js":9083,"./fi":5059,"./fi.js":5059,"./fil":2607,"./fil.js":2607,"./fo":3369,"./fo.js":3369,"./fr":7390,"./fr-ca":6711,"./fr-ca.js":6711,"./fr-ch":6152,"./fr-ch.js":6152,"./fr.js":7390,"./fy":2419,"./fy.js":2419,"./ga":3002,"./ga.js":3002,"./gd":4914,"./gd.js":4914,"./gl":6557,"./gl.js":6557,"./gom-deva":8944,"./gom-deva.js":8944,"./gom-latn":5387,"./gom-latn.js":5387,"./gu":7462,"./gu.js":7462,"./he":9237,"./he.js":9237,"./hi":9617,"./hi.js":9617,"./hr":6544,"./hr.js":6544,"./hu":341,"./hu.js":341,"./hy-am":1388,"./hy-am.js":1388,"./id":5251,"./id.js":5251,"./is":1146,"./is.js":1146,"./it":7891,"./it-ch":7,"./it-ch.js":7,"./it.js":7891,"./ja":3727,"./ja.js":3727,"./jv":5198,"./jv.js":5198,"./ka":8974,"./ka.js":8974,"./kk":7308,"./kk.js":7308,"./km":7786,"./km.js":7786,"./kn":4807,"./kn.js":4807,"./ko":1584,"./ko.js":1584,"./ku":1906,"./ku-kmr":5305,"./ku-kmr.js":5305,"./ku.js":1906,"./ky":9190,"./ky.js":9190,"./lb":7396,"./lb.js":7396,"./lo":8503,"./lo.js":8503,"./lt":3010,"./lt.js":3010,"./lv":5192,"./lv.js":5192,"./me":1944,"./me.js":1944,"./mi":6492,"./mi.js":6492,"./mk":2934,"./mk.js":2934,"./ml":1463,"./ml.js":1463,"./mn":8377,"./mn.js":8377,"./mr":8733,"./mr.js":8733,"./ms":8030,"./ms-my":9445,"./ms-my.js":9445,"./ms.js":8030,"./mt":5887,"./mt.js":5887,"./my":7228,"./my.js":7228,"./nb":8294,"./nb.js":8294,"./ne":9559,"./ne.js":9559,"./nl":600,"./nl-be":8796,"./nl-be.js":8796,"./nl.js":600,"./nn":9570,"./nn.js":9570,"./oc-lnc":5662,"./oc-lnc.js":5662,"./pa-in":7101,"./pa-in.js":7101,"./pl":6118,"./pl.js":6118,"./pt":9198,"./pt-br":7203,"./pt-br.js":7203,"./pt.js":9198,"./ro":5565,"./ro.js":5565,"./ru":3315,"./ru.js":3315,"./sd":8473,"./sd.js":8473,"./se":1258,"./se.js":1258,"./si":8798,"./si.js":8798,"./sk":6404,"./sk.js":6404,"./sl":7057,"./sl.js":7057,"./sq":5718,"./sq.js":5718,"./sr":5363,"./sr-cyrl":478,"./sr-cyrl.js":478,"./sr.js":5363,"./ss":7260,"./ss.js":7260,"./sv":2231,"./sv.js":2231,"./sw":7104,"./sw.js":7104,"./ta":7493,"./ta.js":7493,"./te":7705,"./te.js":7705,"./tet":4457,"./tet.js":4457,"./tg":2727,"./tg.js":2727,"./th":2206,"./th.js":2206,"./tk":3419,"./tk.js":3419,"./tl-ph":7243,"./tl-ph.js":7243,"./tlh":16,"./tlh.js":16,"./tr":7020,"./tr.js":7020,"./tzl":8026,"./tzl.js":8026,"./tzm":8537,"./tzm-latn":7899,"./tzm-latn.js":7899,"./tzm.js":8537,"./ug-cn":818,"./ug-cn.js":818,"./uk":8478,"./uk.js":8478,"./ur":7893,"./ur.js":7893,"./uz":9133,"./uz-latn":311,"./uz-latn.js":311,"./uz.js":9133,"./vi":2179,"./vi.js":2179,"./x-pseudo":2455,"./x-pseudo.js":2455,"./yo":3310,"./yo.js":3310,"./zh-cn":7244,"./zh-cn.js":7244,"./zh-hk":76,"./zh-hk.js":76,"./zh-mo":2305,"./zh-mo.js":2305,"./zh-tw":8588,"./zh-tw.js":8588};function r(e){var t=i(e);return n(t)}function i(e){if(!n.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}r.keys=function(){return Object.keys(a)},r.resolve=i,e.exports=r,r.id=1738},9677:(e,t,n)=>{"use strict";n.r(t),n.d(t,{TraceExplorationView:()=>hr,default:()=>gr});var a=n(5959),r=n.n(a),i=n(3726),s=n(7781),o=n(7286),l=n(6089),c=n(8531),u=n(2007),d=n(1454),m=n(1575),p=n(3241);const f=({width:e="auto",height:t,show404:n=!1})=>{const i=(0,u.useTheme2)(),{x:s,y:o}=((e=50)=>{const[t,n]=(0,a.useState)({x:null,y:null});return(0,a.useEffect)((()=>{const t=(0,p.throttle)((e=>{n({x:e.clientX,y:e.clientY})}),e);return window.addEventListener("mousemove",t),()=>{window.removeEventListener("mousemove",t)}}),[e]),t})(),l=(0,u.useStyles2)(v,s,o,n);return r().createElement(m.A,{src:i.isDark?"public/plugins/grafana-exploretraces-app/img/944c737f589d02ecf603.svg":"public/plugins/grafana-exploretraces-app/img/e79edcfbe2068fae2364.svg",className:l.svg,height:t,width:e})};f.displayName="GrotNotFound";const v=(e,t,n,a)=>{const{innerWidth:r,innerHeight:i}=window,s=n&&n/i,o=t&&t/r,c=null!==s?g(s,-20,5):0,u=null!==o?g(o,-5,5):0;return{svg:(0,l.css)({"#grot-404-arm, #grot-404-magnifier":{transform:`rotate(${c}deg) translateX(${u}%)`,transformOrigin:"center",transition:"transform 50ms linear"},"#grot-404-text":{display:a?"block":"none"}})}},g=(e,t,n)=>e*(n-t)+t,h=({message:e,remedyMessage:t,imgWidth:n,padding:a})=>{const i=(0,u.useStyles2)(b,a);return r().createElement("div",{className:i.container,"data-testid":"data-testid empty-state"},r().createElement(u.Stack,{direction:"column",alignItems:"center",gap:3},r().createElement(f,{width:null!=n?n:300}),"string"==typeof e&&r().createElement(u.Text,{textAlignment:"center",variant:"h5"},e),"string"!=typeof e&&e,t&&r().createElement("div",{className:i.remedy},r().createElement(u.Stack,{gap:.5,alignItems:"center"},r().createElement(u.Icon,{name:"info-circle"}),r().createElement(u.Text,{textAlignment:"center",variant:"body"},t)))))};function b(e,t){return{container:(0,l.css)({width:"100%",display:"flex",justifyContent:"space-evenly",flexDirection:"column",padding:t||0}),remedy:(0,l.css)({marginBottom:e.spacing(4)})}}h.displayName="EmptyState";class y extends o.Bs{}var w,S,x;x=({model:e})=>{const{message:t,remedyMessage:n,imgWidth:a,padding:i}=e.useState();return r().createElement(h,{message:t,remedyMessage:n,imgWidth:a,padding:i})},(S="Component")in(w=y)?Object.defineProperty(w,S,{value:x,enumerable:!0,configurable:!0,writable:!0}):w[S]=x;var j=n(3049);class O extends o.Bs{}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(O,"Component",(({model:e})=>{const t=(0,u.useTheme2)(),n=(0,u.useStyles2)(k),{component:a}=e.useState();return r().createElement("div",{className:n.container,"data-testid":"data-testid loading-state"},r().createElement(j.z,{baseColor:t.colors.emphasize(t.colors.background.secondary),highlightColor:t.colors.emphasize(t.colors.background.secondary,.1),borderRadius:t.shape.radius.default},a()))}));const E=(0,l.keyframes)({"0%":{opacity:0},"100%":{opacity:1}});function k(){return{container:(0,l.css)({label:"loading-state-scene",animationName:E,animationDelay:"100ms",animationTimingFunction:"ease-in",animationDuration:"100ms",animationFillMode:"backwards"})}}class C extends o.Bs{}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(C,"Component",(({model:e})=>{const{message:t}=e.useState();return r().createElement(u.Alert,{title:"Query error",severity:"error","data-testid":"data-testid error-state"},t)}));const P=e=>{const t=(0,u.useStyles2)(_),{searchQuery:n,onSearchQueryChange:a}=e;return r().createElement(u.Field,{className:t.searchField},r().createElement(u.Input,{placeholder:"Search",prefix:r().createElement(u.Icon,{name:"search"}),value:n,onChange:a,id:"searchFieldInput"}))};function _(e){return{searchField:(0,l.css)({marginBottom:e.spacing(1)})}}function D(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function N(e){for(var t=1;t0?this.performRepeat(e):this.state.body.setState({children:[new o.vA({body:new y({message:"No data for search term",padding:"32px"})})]})}groupSeriesBy(e,t){const n=e.series.reduce(((e,n)=>{var a,r;const i=null===(r=n.fields.find((e=>e.type===s.FieldType.number)))||void 0===r||null===(a=r.labels)||void 0===a?void 0:a[t];return i?(e[i]||(e[i]=[]),e[i].push(n),e):e}),{}),a=[];for(const e in n){const t=n[e].sort(((e,t)=>{var n;return(null===(n=e.name)||void 0===n?void 0:n.localeCompare(t.name))||0})),i=T(N({},r=t[0]),{fields:r.fields.map((e=>T(N({},e),{values:e.values})))});t.slice(1,t.length).forEach((e=>i.fields.push(e.fields[1]))),a.push((0,s.sortDataFrame)(i,0))}var r;return a}performRepeat(e){const t=[];let n=e.series;this.state.groupBy&&(n=this.groupSeriesBy(e,ar(this).getValueText()));for(let a=0;ae.type===s.FieldType.number)).reduce(((e,t)=>e+t.values.reduce(((e,t)=>e+(t||0)),0)||0),0))continue;const r=this.state.getLayoutChild(e,n[a],a);t.push(r)}this.state.body.setState({children:t})}constructor(e){super(e),I(this,"onSearchQueryChange",(e=>{this.setState({searchQuery:e.currentTarget.value})})),I(this,"onSearchQueryChangeDebounced",(0,p.debounce)((e=>{var t;const n=o.jh.getData(this),a=$(A({},n.state.data),{series:null===(t=n.state.data)||void 0===t?void 0:t.series.filter(z(e))});this.renderFilteredData(a)}),250)),this.addActivationHandler((()=>{const e=o.jh.getData(this);this._subs.add(e.subscribeToState((e=>{var t,n,a,r,i;if((null===(t=e.data)||void 0===t?void 0:t.state)===s.LoadingState.Done||(null===(n=e.data)||void 0===n?void 0:n.state)===s.LoadingState.Streaming){if(0===e.data.series.length&&(null===(r=e.data)||void 0===r?void 0:r.state)!==s.LoadingState.Streaming)this.state.body.setState({children:[new o.vA({body:new y({message:d.PL,remedyMessage:d.a5,padding:"32px"})})]});else if((null===(i=e.data)||void 0===i?void 0:i.state)===s.LoadingState.Done){var l;const t=$(A({},e.data),{series:null===(l=e.data)||void 0===l?void 0:l.series.filter(z(this.state.searchQuery))});this.renderFilteredData(t),this.publishEvent(new d.sv({series:e.data.series}),!0)}}else if((null===(a=e.data)||void 0===a?void 0:a.state)===s.LoadingState.Error){var c,u,m;this.state.body.setState({children:[new o.gF({children:[new C({message:null!==(m=null===(u=e.data.errors)||void 0===u||null===(c=u[0])||void 0===c?void 0:c.message)&&void 0!==m?m:"An error occurred in the query"})]})]})}else this.state.body.setState({children:[new o.gF({children:[new O({component:()=>B(8)})]})]})}))),this.subscribeToState(((e,t)=>{var n;e.searchQuery!==t.searchQuery&&this.onSearchQueryChangeDebounced(null!==(n=e.searchQuery)&&void 0!==n?n:"")})),e.state.data&&this.performRepeat(e.state.data)}))}}function V(){return{container:(0,l.css)({display:"flex",flexDirection:"column",flexGrow:1})}}I(L,"Component",(({model:e})=>{const{body:t,searchQuery:n}=e.useState(),a=(0,u.useStyles2)(V);return r().createElement("div",{className:a.container},r().createElement(P,{searchQuery:null!=n?n:"",onSearchQueryChange:e.onSearchQueryChange}),r().createElement(t.Component,{model:t}))}));const B=e=>{const t=(0,u.useStyles2)(R);return r().createElement("div",{className:t.container},[...Array(e)].map(((e,n)=>r().createElement("div",{className:t.itemContainer,key:n},r().createElement("div",{className:t.header},r().createElement("div",{className:t.title},r().createElement(j.A,{count:1})),r().createElement("div",{className:t.action},r().createElement(j.A,{count:1}))),r().createElement("div",{className:t.yAxis},[...Array(2)].map(((e,n)=>r().createElement("div",{className:t.yAxisItem,key:n},r().createElement(j.A,{count:1}))))),r().createElement("div",{className:t.xAxis},[...Array(2)].map(((e,n)=>r().createElement("div",{className:t.xAxisItem,key:n},r().createElement(j.A,{count:1})))))))))};function R(e){return{container:(0,l.css)({display:"grid",gridTemplateColumns:d.MV,gridAutoRows:"200px",rowGap:e.spacing(1),columnGap:e.spacing(1)}),itemContainer:(0,l.css)({backgroundColor:e.colors.background.primary,border:`1px solid ${e.colors.background.secondary}`,padding:"5px"}),header:(0,l.css)({display:"flex",justifyContent:"space-between"}),title:(0,l.css)({width:"100px"}),action:(0,l.css)({width:"60px"}),yAxis:(0,l.css)({display:"flex",flexDirection:"column",justifyContent:"space-around",marginTop:"35px"}),yAxisItem:(0,l.css)({width:"60px",height:"55px"}),xAxis:(0,l.css)({display:"flex",justifyContent:"space-evenly"}),xAxisItem:(0,l.css)({width:"55px"})}}const z=e=>t=>{const n=null==e?void 0:e.trim();if(!n)return!0;const a=new RegExp(n,"i");return t.fields.some((e=>!!e.labels&&Object.values(e.labels).find((e=>a.test(e)))))},F=()=>o.d0.timeseries().setOption("legend",{showLegend:!1}).setCustomFieldConfig("drawStyle",u.DrawStyle.Bars).setCustomFieldConfig("stacking",{mode:u.StackingMode.Normal}).setCustomFieldConfig("fillOpacity",75).setCustomFieldConfig("lineWidth",0).setCustomFieldConfig("pointSize",0).setCustomFieldConfig("axisLabel","Rate").setOverrides((e=>{e.matchFieldsWithNameByRegex('(^error$|.*status="error".*)').overrideColor({mode:"fixed",fixedColor:"semi-dark-red"}),e.matchFieldsWithNameByRegex('(^unset$|.*status="unset".*)').overrideColor({mode:"fixed",fixedColor:"green"}),e.matchFieldsWithNameByRegex('(^ok$|.*status="ok".*)').overrideColor({mode:"fixed",fixedColor:"dark-green"})})).setOption("tooltip",{mode:u.TooltipDisplayMode.Multi});function M({metric:e,groupByKey:t,extraFilters:n,groupByStatus:a}){let r=`${d.ui}`;"rate"===e?r+=" && status!=error":"errors"===e&&(r+=" && status=error"),n&&(r+=` && ${n}`),t&&t!==d.y2&&(r+=` && ${t} != nil`);let i="rate()";switch(e){case"errors":i="rate()";break;case"duration":i="quantile_over_time(duration, 0.9)"}let s=[];return t&&t!==d.y2&&s.push(t),"duration"!==e&&a&&s.push("status"),`{${r}} | ${i} ${s.length?`by(${s.join(", ")})`:""}`}function q(e,t){return{refId:"A",query:M({metric:e,groupByKey:t,groupByStatus:!0}),queryType:"traceql",tableType:"spans",limit:100,spss:10,filters:[]}}var H=n(2689);const W=(Math.log10(1e3),[{unit:"d",microseconds:864e8,ofPrevious:24},{unit:"h",microseconds:36e8,ofPrevious:60},{unit:"m",microseconds:6e7,ofPrevious:60},{unit:"s",microseconds:1e6,ofPrevious:1e3},{unit:"ms",microseconds:1e3,ofPrevious:1e3},{unit:"μs",microseconds:1,ofPrevious:1e3}]),U=e=>{const[t,n]=(0,p.dropWhile)(W,(({microseconds:t},n)=>ne));if(1e3===t.ofPrevious)return`${(0,p.round)(e/t.microseconds,2)}${t.unit}`;const a=`${Math.floor(e/t.microseconds)}${t.unit}`,r=Math.round(e/n.microseconds%t.ofPrevious),i=`${r}${n.unit}`;return 0===r?a:`${a} ${i}`},G=(e,t)=>{const n=o.jh.getTimeRange(e),a=n.state.value.from.unix(),r=n.state.value.to.unix(),i=(0,H.duration)(r-a,"s");return`${Math.floor(i.asSeconds()/(null!=t?t:50))||1}s`};function K(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Q(e){for(var t=1;tZ(Q({},t),{step:e})))}),o.jh.getTimeRange(this).subscribeToState(((e,t)=>{if(e.value.from!==t.value.from||e.value.to!==t.value.to){const e=G(this,this.state.maxDataPoints);this.setState({queries:this.state.queries.map((t=>Z(Q({},t),{step:e})))})}}))}constructor(e){super(e),this.addActivationHandler(this._onActivateStep.bind(this))}}const X=({isStreaming:e,iconSize:t=14})=>{const n=(0,u.useStyles2)(Y,t);return e?r().createElement(u.Tooltip,{content:"Streaming"},r().createElement(u.Icon,{name:"circle-mono",size:"md",className:n.streamingIndicator})):null},Y=(e,t)=>({streamingIndicator:(0,l.css)({width:`${t}px`,height:`${t}px`,backgroundColor:e.colors.success.text,fill:e.colors.success.text,borderRadius:"50%",display:"inline-block"})});var ee=n(2533);const te=(e,t,n)=>{(0,c.reportInteraction)(((e,t)=>`${ee.id.replace(/-/g,"_")}_${e}_${t}`)(e,t),n)},ne={analyse_traces:"analyse_traces",home:"home",common:"common"},ae={[ne.analyse_traces]:{action_view_changed:"action_view_changed",breakdown_group_by_changed:"breakdown_group_by_changed",breakdown_add_to_filters_clicked:"breakdown_add_to_filters_clicked",comparison_add_to_filters_clicked:"comparison_add_to_filters_clicked",select_attribute_in_comparison_clicked:"select_attribute_in_comparison_clicked",layout_type_changed:"layout_type_changed",start_investigation:"start_investigation",stop_investigation:"stop_investigation",open_trace:"open_trace",open_in_explore_clicked:"open_in_explore_clicked",add_to_investigation_clicked:"add_to_investigation_clicked",add_to_investigation_trace_view_clicked:"add_to_investigation_trace_view_clicked",span_list_columns_changed:"span_list_columns_changed",toggle_bookmark_clicked:"toggle_bookmark_clicked"},[ne.home]:{homepage_initialized:"homepage_initialized",panel_row_clicked:"panel_row_clicked",explore_traces_clicked:"explore_traces_clicked",read_documentation_clicked:"read_documentation_clicked",filter_changed:"filter_changed",go_to_bookmark_clicked:"go_to_bookmark_clicked"},[ne.common]:{metric_changed:"metric_changed",new_filter_added_manually:"new_filter_added_manually",app_initialized:"app_initialized",global_docs_link_clicked:"global_docs_link_clicked",metric_docs_link_clicked:"metric_docs_link_clicked",feedback_link_clicked:"feedback_link_clicked"}},re=()=>o.d0.heatmap().setOption("legend",{show:!1}).setOption("yAxis",{unit:"s",axisLabel:"duration"}).setOption("color",{scheme:"Blues",steps:16}).setOption("rowsFrame",{value:"Spans"});function ie(e,t,n){if(!t)return"";if(e<0)return"0";const a=t[Math.floor(e)]*(n||1);return!a||isNaN(a)?"":a>=1?`${a.toFixed(0)}s`:`${(1e3*a).toFixed(0)}ms`}var se=n(3321);const oe=[{label:"Root spans",value:"nestedSetParent<0",filter:{key:"nestedSetParent",operator:"<",value:"0"},description:"Focus your analysis on the root span of each trace"},{label:"All spans",value:"true",filter:{key:"",operator:"",value:!0},description:"View and analyse raw span data. This option may result in long query times."}];function le(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class ce extends o.Bs{constructor(...e){super(...e),le(this,"onClick",(()=>{var e;const t=sr(this);var n;const a=null!==(n=null===(e=this.state.frame.fields.find((e=>e.labels)))||void 0===e?void 0:e.labels)&&void 0!==n?n:{};if(this.state.labelKey){if(!a[this.state.labelKey])return}else if(1!==Object.keys(a).length)return;var r;const i=null!==(r=this.state.labelKey)&&void 0!==r?r:Object.keys(a)[0],s=nr(this.state.frame,this.state.labelKey);ue(t,i,s),this.state.onClick({labelName:i})}))}}le(ce,"Component",(({model:e})=>{var t,n,a,i,s;const o=null!==(s=null===(t=e.state)||void 0===t?void 0:t.labelKey)&&void 0!==s?s:"",l=null===(n=e.state)||void 0===n?void 0:n.frame.fields.filter((e=>"time"!==e.type));var c;const d=null!==(c=null==l||null===(i=l[0])||void 0===i||null===(a=i.labels)||void 0===a?void 0:a[o])&&void 0!==c?c:"";return de(sr(e),o,d.replace(/"/g,""))?r().createElement(r().Fragment,null):r().createElement(u.Button,{variant:"primary",size:"sm",fill:"text",onClick:e.onClick,icon:"search-plus"},"Add to filters")}));const ue=(e,t,n)=>{const a=e.state.filters.filter((e=>"span.db.name"===e.key||e.key!==t));history.pushState(null,""),e.setState({filters:[...a,{key:t,operator:"=",value:n}]})},de=(e,t,n)=>sr(e).state.filters.find((e=>e.key===t&&e.value===n)),me=e=>{var t;const n=e.fields.find((e=>"Baseline"===e.name)),a=e.fields.find((e=>"Selection"===e.name));let r=0,i=0;for(let e=0;e<((null==n||null===(t=n.values)||void 0===t?void 0:t.length)||0);e++){const t=((null==a?void 0:a.values[e])||0)-((null==n?void 0:n.values[e])||0);Math.abs(t)>Math.abs(r||0)&&(r=t,i=e)}return{maxDifference:r,maxDifferenceIndex:i}},pe=e=>{if("duration"!==e)return{query:"status = error",type:"auto"}};function fe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ve(e){for(var t=1;t{if(e.frame!==t.frame){const{frame:t}=e;this.setState(ve({},me(t)))}})))}getAttribute(){return this.state.frame.name}getValue(){const e=this.state.frame.fields.find((e=>"Value"===e.name));return null==e?void 0:e.values[this.state.maxDifferenceIndex||0]}onAddToFilters(){const e=sr(this),t=this.getAttribute();t&&ue(e,t,this.getValue())}constructor(e){super(ve({},e)),this.addActivationHandler((()=>this._onActivate()))}}function he(e){return{container:(0,l.css)({display:"flex",flexDirection:"column",flexGrow:1,height:"100%"}),differenceContainer:(0,l.css)({display:"flex",flexDirection:"column",flexGrow:1,border:`1px solid ${e.colors.secondary.border}`,background:e.colors.background.primary,padding:"8px",marginBottom:e.spacing(2),fontSize:"12px",height:"116px"}),differenceValue:(0,l.css)({fontSize:"36px",fontWeight:"bold",textAlign:"center"}),value:(0,l.css)({textAlign:"center",color:e.colors.secondary.text,textWrap:"nowrap",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}),title:(0,l.css)({fontWeight:500})}}function be(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ye(e){for(var t=1;t{const{maxDifference:t,maxDifferenceIndex:n,panel:a}=e.useState(),i=(0,u.useStyles2)(he),s=e.getValue();var o;const l=null!==(o=e.state.frame.name)&&void 0!==o?o:"",c=de(sr(e),l,s.replace(/"/g,""));return r().createElement("div",{className:i.container},r().createElement(a.Component,{model:a}),r().createElement("div",{className:i.differenceContainer},void 0!==t&&void 0!==n&&r().createElement(r().Fragment,null,r().createElement(u.Stack,{gap:1,justifyContent:"space-between",alignItems:"center"},r().createElement("div",{className:i.title},"Highest difference"),!c&&r().createElement(u.Button,{size:"sm",variant:"primary",icon:"search-plus",fill:"text",onClick:()=>e.onAddToFilters()},"Add to filters")),r().createElement("div",{className:i.differenceValue},(100*Math.abs(t)).toFixed(0===t?0:2),"%"),r().createElement("div",{className:i.value},s))))}));const we="#5794F299",Se="#FF9930",xe=e=>e.name||"No name available";function je(e,t,n,a){return(r,i)=>{const s=i.name?e[i.name]:void 0,l=new o.Zv({data:(c=ye({},r),u={series:[ye({},i)]},u=null!=u?u:{},Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(u)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(u)).forEach((function(e){Object.defineProperty(c,e,Object.getOwnPropertyDescriptor(u,e))})),c)});var c,u;if(s){const e=s.state.body;return e.setState({frame:i}),e.state.panel.setState({$data:l}),s}const d=Oe(a).setTitle(t(i)).setData(l),m=n(i);m&&d.setHeaderActions(m);const p=new o.xK({body:new ge({frame:i,panel:d.build()})});return i.name&&(e[i.name]=p),p}}function Oe(e){return o.d0.barchart().setOption("legend",{showLegend:!1}).setOption("tooltip",{mode:se.$N.Multi}).setMax(1).setOverrides((t=>{t.matchFieldsWithName("Value").overrideCustomFieldConfig("axisPlacement",u.AxisPlacement.Hidden),t.matchFieldsWithName("Baseline").overrideColor({mode:"fixed",fixedColor:"duration"===e?we:"semi-dark-green"}).overrideUnit("percentunit"),t.matchFieldsWithName("Selection").overrideColor({mode:"fixed",fixedColor:"duration"===e?Se:"semi-dark-red"}).overrideUnit("percentunit")}))}function Ee(){return{refId:"A",query:`{${d.ui}} | histogram_over_time(duration)`,queryType:"traceql",tableType:"spans",limit:1e3,spss:10,filters:[]}}function ke(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class Ce extends o.Bs{constructor({selection:e}){super({selection:e}),ke(this,"startInvestigation",(()=>{const e=Xa(this);e.setState({selection:this.state.selection}),ur(e.state.actionView)||e.setActionView("comparison"),te(ne.analyse_traces,ae.analyse_traces.start_investigation,{selection:this.state.selection,metric:ir(this).useState().value})}))}}function Pe(e){return{wrapper:(0,l.css)({display:"flex",gap:"16px",alignItems:"center"}),placeholder:(0,l.css)({color:e.colors.text.secondary,fontSize:e.typography.bodySmall.fontSize,display:"flex",gap:e.spacing.x0_5})}}ke(Ce,"Component",(({model:e})=>{const{selection:t}=Xa(e).useState(),n=(0,u.useStyles2)(Pe),a="auto"===(null==t?void 0:t.type),i=a?"Slowest traces are selected, navigate to the Comparison or Slow Traces tab for more details.":void 0;return r().createElement("div",{className:n.wrapper},r().createElement(u.Button,{variant:"secondary",size:"sm",fill:"solid",disabled:a,icon:"bolt",onClick:e.startInvestigation,tooltip:i},a?"Slowest traces selected":"Select slowest traces"))}));var _e=n(1269);const De=e=>[{topic:s.DataTopic.Annotations,operator:()=>t=>t.pipe((0,_e.map)((t=>t.map((t=>{if("exemplar"===t.name){const n=t.fields.find((e=>"traceId"===e.name));n&&(n.config.links=[{title:"View trace",url:"#${__value.raw}",onClick:t=>{var n,a,r;t.e.stopPropagation();const i=null===(r=t.e.target)||void 0===r||null===(a=r.parentElement)||void 0===a||null===(n=a.parentElement)||void 0===n?void 0:n.href;if(!i||-1===i.indexOf("#"))return;const s=i.split("#")[1];s&&""!==s&&(null==e||e(s))}}])}return t})))))}],Ne=()=>[{topic:s.DataTopic.Annotations,operator:()=>e=>e.pipe((0,_e.map)((e=>e.filter((e=>"exemplar"!==e.name)))))}];function Te(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ie(e){for(var t=1;t{a.onSelectRange=e=>{var a,r,i,s;if(0===e.length)return void n.setState({selection:void 0});const o=e[0],l={type:"manual",raw:o};if(l.timeRange={from:Math.round(((null===(a=o.x)||void 0===a?void 0:a.from)||0)/1e3),to:Math.round(((null===(r=o.x)||void 0===r?void 0:r.to)||0)/1e3)},l.timeRange.from===l.timeRange.to)return;const c=ie(((null===(i=e[0].y)||void 0===i?void 0:i.from)||0)-1,t),u=ie((null===(s=e[0].y)||void 0===s?void 0:s.to)||0,t);l.duration={from:c,to:u},n.onUserUpdateSelection(l),ur(n.state.actionView)||n.setActionView("comparison"),te(ne.analyse_traces,ae.analyse_traces.start_investigation,{selection:l,metric:"duration"})}}}),new o.G1({direction:"row",children:[new o.vA({body:a})]})}(this,null!==(t=this.state.yBuckets)&&void 0!==t?t:[]):this.getRateOrErrorVizPanel(e)}getRateOrErrorVizPanel(e){const t=F().setHoverHeader(!0).setDisplayMode("transparent");return"rate"===e?t.setCustomFieldConfig("axisLabel","span/s"):"errors"===e&&t.setCustomFieldConfig("axisLabel","error/s").setColor({fixedColor:"semi-dark-red",mode:"fixed"}),new o.G1({direction:"row",children:[new o.vA({body:t.build()})]})}buildSelectionAnnotation(e){var t,n,a,r;if(!ur(e.actionView))return;const i=null===(n=e.selection)||void 0===n||null===(t=n.raw)||void 0===t?void 0:t.x,o=null===(r=e.selection)||void 0===r||null===(a=r.raw)||void 0===a?void 0:a.y,l=(0,s.arrayToDataFrame)([{time:(null==i?void 0:i.from)||0,xMin:(null==i?void 0:i.from)||0,xMax:(null==i?void 0:i.to)||0,timeEnd:(null==i?void 0:i.to)||0,yMin:null==o?void 0:o.from,yMax:null==o?void 0:o.to,isRegion:!0,fillOpacity:.15,lineWidth:1,lineStyle:"solid",color:Se,text:"Comparison selection"}]);return l.name="xymark",[l]}constructor(e){super(Ie({yBuckets:[],actions:[],isStreaming:!1},e)),this.addActivationHandler((()=>{this._onActivate();const e=o.jh.getData(this),t=Xa(this),n=o.jh.getTimeRange(this);this._subs.add(e.subscribeToState((a=>{var r,i,l;if(this.setState({isStreaming:(null===(r=a.data)||void 0===r?void 0:r.state)===s.LoadingState.Streaming}),(null===(i=a.data)||void 0===i?void 0:i.state)===s.LoadingState.Done)if(0===a.data.series.length||0===a.data.series[0].length||dr(a))this.setState({panel:new o.G1({children:[new o.vA({body:new y({message:d.PL,imgWidth:150})})]})});else{let r=[];if(this.isDuration()){var c,u;if(r=Le((null===(c=e.state.data)||void 0===c?void 0:c.series)||[]),t.state.selection&&(null===(u=a.data)||void 0===u?void 0:u.state)===s.LoadingState.Done){var m,p;const n=this.buildSelectionAnnotation(t.state);n&&!(null===(p=e.state.data)||void 0===p||null===(m=p.annotations)||void 0===m?void 0:m.length)&&e.setState({data:Ae(Ie({},e.state.data),{annotations:n})})}if(null==r?void 0:r.length){var f;const{minDuration:e,minBucket:a}=Ve(r),i={type:"auto"};(function(e){const t=o.jh.lookupVariable(d.pf,e);if(!(t instanceof o.yP))throw new Error("Latency threshold variable not found");return t})(this).changeValueTo(e),function(e){const t=o.jh.lookupVariable(d.xc,e);if(!(t instanceof o.yP))throw new Error("Partial latency threshold variable not found");return t}(this).changeValueTo(ie(a-1,r,.3)),i.duration={from:e,to:""},i.raw={x:{from:1e3*n.state.value.from.unix(),to:1e3*n.state.value.to.unix()},y:{from:a-.5,to:r.length-.5}},this.setState({actions:[new Ce({selection:i})]}),(null===(f=t.state.selection)||void 0===f?void 0:f.duration)&&"auto"!==t.state.selection.type||t.setState({selection:i})}}this.setState({yBuckets:r,panel:this.getVizPanel()})}else(null===(l=a.data)||void 0===l?void 0:l.state)===s.LoadingState.Loading&&this.setState({panel:new o.G1({direction:"column",children:[new O({component:()=>B(1)})]})})}))),this._subs.add(t.subscribeToState(((t,n)=>{var a;if((null===(a=e.state.data)||void 0===a?void 0:a.state)===s.LoadingState.Done&&(!(0,p.isEqual)(t.selection,n.selection)||t.actionView!==n.actionView)&&this.isDuration()){const n=this.buildSelectionAnnotation(t);e.setState({data:Ae(Ie({},e.state.data),{annotations:n})})}})))}))}}Te($e,"Component",(({model:e})=>{const{panel:t,actions:n,isStreaming:a}=e.useState(),{value:i}=ir(e).useState(),s=(0,u.useStyles2)(Be);if(!t)return;const o="duration"===i?"Click and drag to compare selection with baseline.":"";return r().createElement("div",{className:s.container},r().createElement("div",{className:s.headerContainer},r().createElement("div",{className:s.titleContainer},r().createElement("div",{className:s.titleRadioWrapper},r().createElement(u.RadioButtonList,{name:`metric-${i}`,options:[{title:"",value:"selected"}],value:"selected"}),r().createElement("span",null,(()=>{switch(i){case"errors":return"Errors rate";case"rate":return"Span rate";case"duration":return"Histogram by duration";default:return""}})())),o&&r().createElement("div",{className:s.subtitle},o)),r().createElement("div",{className:s.actions},a&&r().createElement(X,{isStreaming:!0,iconSize:10}),null==n?void 0:n.map((e=>r().createElement(e.Component,{model:e,key:e.state.key}))))),r().createElement(t.Component,{model:t}))}));const Le=e=>e.map((e=>parseFloat(e.fields[1].name))).sort(((e,t)=>e-t)),Ve=e=>{const t=Math.floor(e.length/4);let n=e.length-t-1;return n<0&&(n=0),{minDuration:ie(n-1,e),minBucket:n}};function Be(e){return{container:(0,l.css)({width:"100%",display:"flex",flexDirection:"column",border:`1px solid ${e.colors.border.weak}`,borderRadius:"2px",background:e.colors.background.primary,".show-on-hover":{display:"none"},"section, section:hover":{borderColor:"transparent"},"& .u-select":{border:"1px solid #ffffff75"}}),headerContainer:(0,l.css)({width:"100%",display:"flex",flexDirection:"row",padding:"8px",gap:"8px",justifyContent:"space-between",alignItems:"flex-start",fontWeight:e.typography.fontWeightBold}),titleContainer:(0,l.css)({display:"flex",flexDirection:"column",gap:"4px"}),titleRadioWrapper:(0,l.css)({display:"flex",alignItems:"center"}),actions:(0,l.css)({display:"flex",gap:"8px",alignItems:"center"}),subtitle:(0,l.css)({display:"flex",color:e.colors.text.secondary,fontSize:"12px",fontWeight:400,"& svg":{margin:"0 2px"}})}}var Re=n(940);const ze=({exploration:e})=>{const{origin:t}=(0,Re.A)(),[n,i]=(0,a.useState)("Copy url");return r().createElement(u.ToolbarButton,{variant:"canvas",icon:"share-alt",tooltip:n,onClick:()=>{navigator.clipboard&&(navigator.clipboard.writeText(t+function(e){return t=o.Go.getUrlState(e),s.urlUtil.renderUrl(d.D5,t);var t}(e)),i("Copied!"),setTimeout((()=>{i("Copy url")}),2e3))}})};function Fe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Me(e){for(var t=1;tObject.values(e.reduce(((e,t)=>{if(t.label){const s=t.label.slice(t.label.indexOf(".")+1);if(He.includes(t.label)){var n;const a=null!==(n=e.recommended)&&void 0!==n?n:{label:"Recommended",options:[]};a.options.push(qe(Me({},t),{label:s})),e.recommended=a}else if(t.label.startsWith("resource.")){var a;const n=null!==(a=e.resource)&&void 0!==a?a:{label:"Resource",options:[]};n.options.push(qe(Me({},t),{label:s})),e.resource=n}else if(t.label.startsWith("span.")){var r;const n=null!==(r=e.span)&&void 0!==r?r:{label:"Span",options:[]};n.options.push(qe(Me({},t),{label:s})),e.span=n}else{var i;const n=null!==(i=e.other)&&void 0!==i?i:{label:"Other",options:[]};n.options.push(t),e.other=n}}return e}),{})).sort(((e,t)=>We.indexOf(e.label)-We.indexOf(t.label)))),[e]);var l;return r().createElement("div",{className:s.container},r().createElement(u.Field,{label:"Add extra columns"},r().createElement(u.Select,{value:""!==(null==t?void 0:t.toString())&&null!==(l=null==t||null===(i=t.toString())||void 0===i?void 0:i.split(","))&&void 0!==l?l:"",placeholder:"Select an attribute",options:o,onChange:e=>n(e.map((e=>e.value)).join(",")),isMulti:!0,isClearable:!0,virtualized:!0,prefix:r().createElement(u.Icon,{name:"columns"})})))}const Ge=()=>({container:(0,l.css)({display:"flex",minWidth:"300px","& > div":{width:"100%"}})});function Ke(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Qe(e){for(var t=1;te=>e.pipe((0,_e.map)((e=>e.map((e=>{var t;const n=e.fields,a=n.find((e=>"traceName"===e.name)),i={type:u.TableCellDisplayMode.Custom,cellComponent:e=>{const t=e.frame,n=null==t?void 0:t.fields.find((e=>"traceIdHidden"===e.name)),a=null==t?void 0:t.fields.find((e=>"spanID"===e.name)),i=null==n?void 0:n.values[e.rowIndex],s=null==a?void 0:a.values[e.rowIndex];if(!i)return e.value;const o=e.value?e.value:"";return r().createElement("div",{className:"cell-link-wrapper"},r().createElement("div",{className:"cell-link",title:o,onClick:()=>{this.publishEvent(new d.vR({traceId:i,spanId:s}),!0)}},o),r().createElement(u.Link,{href:this.getLinkToExplore(i,s),target:"_blank",title:"Open in new tab"},r().createElement(u.Icon,{name:"external-link-alt",size:"sm"})))}};return(null==a||null===(t=a.config)||void 0===t?void 0:t.custom)&&(a.config.custom.cellOptions=i),function(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})),e}(Qe({},e),{fields:n})})))))]}updatePanel(e){var t,n;if((null==e?void 0:e.state)!==s.LoadingState.Loading&&(null==e?void 0:e.state)!==s.LoadingState.NotStarted&&(null==e?void 0:e.state)&&((null==e?void 0:e.state)!==s.LoadingState.Streaming||(null===(n=e.series)||void 0===n||null===(t=n[0])||void 0===t?void 0:t.length))){if((null==e?void 0:e.state)===s.LoadingState.Done||(null==e?void 0:e.state)===s.LoadingState.Streaming)if(0===e.series.length||0===e.series[0].length){if("empty"===this.state.dataState&&this.state.panel)return;this.setState({dataState:"empty",panel:new o.G1({children:[new o.vA({body:new y({message:d.PL,remedyMessage:d.a5,padding:"32px"})})]})})}else"done"!==this.state.dataState&&this.setState({dataState:"done",panel:new o.G1({direction:"row",children:[new o.vA({body:o.d0.table().setHoverHeader(!0).setOverrides((e=>e.matchFieldsWithName("spanID").overrideCustomFieldConfig("hidden",!0).matchFieldsWithName("traceService").overrideCustomFieldConfig("width",350).matchFieldsWithName("traceName").overrideCustomFieldConfig("width",350))).build()})]})})}else{if("loading"===this.state.dataState)return;this.setState({dataState:"loading",panel:new o.G1({direction:"row",children:[new O({component:Xe})]})})}}constructor(e){super(Qe({dataState:"empty"},e)),Ke(this,"getLinkToExplore",((e,t)=>{const n=er(Ja(this)),a=o.jh.getTimeRange(this).state.value,r=JSON.stringify({"explore-traces":{range:(0,s.toURLRange)(a.raw),queries:[{refId:"traceId",queryType:"traceql",query:e,datasource:n}],panelsState:{trace:{spanId:t}},datasource:n}});var i;const l=null!==(i=c.config.appSubUrl)&&void 0!==i?i:"";return s.urlUtil.renderUrl(`${l}/explore`,{panes:r,schemaVersion:1})})),Ke(this,"onChange",(e=>{const t=rr(this);t.getValue()!==e&&(t.changeValueTo(e),te(ne.analyse_traces,ae.analyse_traces.span_list_columns_changed,{columns:e}))})),this.addActivationHandler((()=>{this.setState({$data:new o.Es({transformations:this.setupTransformations()})});const e=o.jh.getData(this);this.updatePanel(e.state.data),this._subs.add(e.subscribeToState((e=>{this.updatePanel(e.data)})))}))}}Ke(Ze,"Component",(({model:e})=>{const{panel:t}=e.useState(),n=Je((0,u.useTheme2)()),a=rr(e),{attributes:i}=Xa(e).useState();var o;if(t)return r().createElement("div",{className:n.container},r().createElement("div",{className:n.header},r().createElement("div",{className:n.description},"View a list of spans for the current set of filters."),r().createElement(Ue,{options:null!==(o=null==i?void 0:i.map((e=>(0,s.toOption)(e))))&&void 0!==o?o:[],value:a.getValue(),onChange:e.onChange})),r().createElement(t.Component,{model:t}))}));const Je=e=>({container:(0,l.css)({display:"contents",'[role="cell"] > div':{display:"flex",width:"100%"},".cell-link-wrapper":{display:"flex",gap:"4px",justifyContent:"space-between",alignItems:"center",width:"100%",a:{padding:4,fontSize:0,":hover":{background:e.colors.background.secondary}}},".cell-link":{color:e.colors.text.link,cursor:"pointer",maxWidth:"300px",overflow:"hidden",textOverflow:"ellipsis",":hover":{textDecoration:"underline"}}}),description:(0,l.css)({fontSize:e.typography.h6.fontSize,padding:`${e.spacing(1)} 0 ${e.spacing(2)} 0`}),header:(0,l.css)({display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"10px"})}),Xe=()=>{const e=(0,u.useStyles2)(Ye);return r().createElement("div",{className:e.container},r().createElement("div",{className:e.title},r().createElement(j.A,{count:1,width:80})),[...Array(3)].map(((t,n)=>r().createElement("div",{className:e.row,key:n},[...Array(6)].map(((t,n)=>r().createElement("span",{className:e.rowItem,key:n},r().createElement(j.A,{count:1}))))))))};function Ye(e){return{container:(0,l.css)({height:"100%",width:"100%",position:"absolute",backgroundColor:e.colors.background.primary,border:`1px solid ${e.colors.border.weak}`,padding:"5px"}),title:(0,l.css)({marginBottom:"20px"}),row:(0,l.css)({marginBottom:"5px",display:"flex",justifyContent:"space-around"}),rowItem:(0,l.css)({width:"14%"})}}function et(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class tt extends o.Bs{_onActivate(){var e;this._subs.add(null===(e=Xa(this).state.$data)||void 0===e?void 0:e.subscribeToState((()=>{this.updateBody()}))),this._subs.add(Xa(this).subscribeToState(((e,t)=>{var n,a;(null===(n=e.$data)||void 0===n?void 0:n.state.key)!==(null===(a=t.$data)||void 0===a?void 0:a.state.key)&&this.updateBody()}))),this._subs.add(ir(this).subscribeToState(((e,t)=>{e.value!==t.value&&this.updateBody()}))),this.updateBody()}updateBody(){this.setState({body:new Ze({})})}constructor(e){super(function(e){for(var t=1;t{const{body:t}=e.useState();return t&&r().createElement(t.Component,{model:t})}));class it{addSpan(e){this.left=Math.min(nt(e),this.left),this.right=Math.max(at(e),this.right),this.spans.push(e)}addChild(e){e.parent=this,this.children.push(e)}isChild(e){return nt(e)>this.left&&at(e)"service.name"===e.key));var i,s,o,l;return new it({left:nt(e),right:at(e),name:ot(e),serviceName:null!==(s=null!==(i=null==r?void 0:r.value.stringValue)&&void 0!==i?i:null==r||null===(a=r.value)||void 0===a||null===(n=a.Value)||void 0===n?void 0:n.string_value)&&void 0!==s?s:"",operationName:null!==(o=e.name)&&void 0!==o?o:"",spans:[e],traceID:null!==(l=e.traceId)&&void 0!==l?l:""})}function ot(e){let t="";for(const n of e.attributes||[])"service.name"===n.key&&n.value.stringValue&&(t=n.value.stringValue);return`${t}:${e.name}`}function lt(e){e.left=Number.MAX_SAFE_INTEGER,e.right=Number.MIN_SAFE_INTEGER;for(const t of e.children)lt(t)}function ct(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ut(e){for(var t=1;t{var t,n,a,r;if((null===(t=e.data)||void 0===t?void 0:t.state)!==s.LoadingState.Loading&&(null===(n=e.data)||void 0===n?void 0:n.state)!==s.LoadingState.Streaming){if((null===(a=e.data)||void 0===a?void 0:a.state)===s.LoadingState.Done&&(null===(r=e.data)||void 0===r?void 0:r.series.length)){var i;const t=null===(i=e.data)||void 0===i?void 0:i.series[0].fields[0].values[0];if(t){const e=function(e){const t=new it({name:"root",serviceName:"",operationName:"",left:Number.MIN_SAFE_INTEGER,right:Number.MAX_SAFE_INTEGER,spans:[],traceID:""});if(e&&e.length>0)for(const a of e){var n;if(1!==(null===(n=a.spanSets)||void 0===n?void 0:n.length))throw new Error("there should be only 1 spanset!");const e=parseInt(a.startTimeUnixNano||"0",10),r=a.spanSets[0];r.spans.sort(((e,t)=>nt(e)-nt(t)));let i=t;lt(t);for(const t of r.spans){for(t.traceId=a.traceID,t.startTimeUnixNano=""+(parseInt(t.startTimeUnixNano,10)-e);null!==i.parent&&!i.isChild(t);)i=i.parent;const n=i.findMatchingChild(t);if(n){n.addSpan(t),i=n;continue}const r=st(t);r.traceID=a.traceID,i.addChild(r),i=r}}return t}(JSON.parse(t));e.children.sort(((e,t)=>vt(t)-vt(e))),this.setState({loading:!1,tree:e,panel:new o.G1({height:"100%",wrap:"wrap",children:this.getPanels(e)})})}}}else this.setState({loading:!0})})))}getPanels(e){return e.children.map((e=>new o.vA({height:150,width:"100%",minHeight:"400px",body:this.getPanel(e)})))}getPanel(e){const t=o.jh.getTimeRange(this),n=t.state.value.from,a=t.state.value.to,r=vr(this);return o.d0.traces().setTitle(`Structure for ${e.serviceName} [${vt(e)} spans used]`).setOption("createFocusSpanLink",((e,t)=>({title:"Open trace",href:"#",onClick:()=>r(e,t),origin:{},target:"_self"}))).setData(new o.Zv({data:{state:s.LoadingState.Done,timeRange:{from:n,to:a,raw:{from:n,to:a}},series:[ut({},this.buildData(e))]}})).build()}buildData(e){const t=this.getTrace(e,dt),n=t[0].serviceName+":"+t[0].operationName;return(0,s.createDataFrame)({name:`Trace ${n}`,refId:`trace_${n}`,fields:[{name:"references",type:s.FieldType.other,values:t.map((e=>e.references))},{name:"traceID",type:s.FieldType.string,values:t.map((e=>e.traceID))},{name:"spanID",type:s.FieldType.string,values:t.map((e=>e.spanID))},{name:"parentSpanID",type:s.FieldType.string,values:t.map((e=>e.parentSpanId))},{name:"serviceName",type:s.FieldType.string,values:t.map((e=>e.serviceName))},{name:"operationName",type:s.FieldType.string,values:t.map((e=>e.operationName))},{name:"duration",type:s.FieldType.number,values:t.map((e=>e.duration))},{name:"startTime",type:s.FieldType.number,values:t.map((e=>e.startTime))},{name:"statusCode",type:s.FieldType.number,values:t.map((e=>e.statusCode))}]})}getTrace(e,t){const n=e.spans.reduce(((e,t)=>{var n,a;return"error"===(null===(a=t.attributes)||void 0===a||null===(n=a.find((e=>"status"===e.key)))||void 0===n?void 0:n.value.stringValue)?e+1:e}),0);let a=1e-4;t!==dt&&(a=e.spans.reduce(((e,t)=>e+parseInt(t.startTimeUnixNano,10)),0)/e.spans.length/1e6);const r=[{references:e.spans.slice(-5).map((e=>({refType:"EXTERNAL",traceID:e.traceId,spanID:e.spanID}))),traceID:e.traceID,spanID:e.spans[0].spanID,parentSpanId:t,serviceName:e.serviceName,operationName:e.operationName,statusCode:n>0?2:0,duration:e.spans.reduce(((e,t)=>e+parseInt(t.durationNanos,10)),0)/e.spans.length/1e6,startTime:a}];for(const t of e.children)r.push(...this.getTrace(t,e.spans[0].spanID));return r}constructor(e){super(ut({$data:new o.Es({$data:new o.dt({datasource:d.Vl,queries:[pt(e.metric)]}),transformations:d.s9}),loading:!0},e)),this.addActivationHandler(this._onActivate.bind(this))}}function pt(e){let t,n="";switch(e){case"errors":t="status = error",n="status = error";break;case"duration":t=`duration > ${d.Ld}`,n=`duration > ${d.xT}`;break;default:t="kind = server"}return{refId:"A",query:`{${d.ui} ${n.length?`&& ${n}`:""}} &>> { ${t} } | select(status, resource.service.name, name, nestedSetParent, nestedSetLeft, nestedSetRight)`,queryType:"traceql",tableType:"raw",limit:200,spss:20,filters:[]}}ct(mt,"Component",(({model:e})=>{var t,n;const{tree:a,loading:i,panel:o,$data:l}=e.useState(),c=ft((0,u.useTheme2)()),m=(0,u.useTheme2)(),p=Ja(e),{value:f}=p.getMetricVariable().useState(),v=f;let g,b=i||!(null==a?void 0:a.children.length);(null==l||null===(t=l.state.data)||void 0===t?void 0:t.state)===s.LoadingState.Done&&(b=!1);let y="";switch(v){case"rate":g=r().createElement(r().Fragment,null,r().createElement("div",null,"Analyse the service structure of the traces that match the current filters."),r().createElement("div",null,"Each panel represents an aggregate view compiled using spans from multiple traces.")),y="server";break;case"errors":g=r().createElement(r().Fragment,null,r().createElement("div",null,"Analyse the errors structure of the traces that match the current filters."),r().createElement("div",null,"Each panel represents an aggregate view compiled using spans from multiple traces.")),y="error";break;case"duration":g=r().createElement(r().Fragment,null,r().createElement("div",null,"Analyse the structure of slow spans from the traces that match the current filters."),r().createElement("div",null,"Each panel represents an aggregate view compiled using spans from multiple traces.")),y="slow"}const w=bn(v),S=r().createElement(r().Fragment,null,r().createElement(u.Text,{textAlignment:"center",variant:"h3"},d.PL),r().createElement(u.Text,{textAlignment:"center",variant:"body"},r().createElement("div",{className:c.longText},"The structure tab shows ",y," spans beneath what you are currently investigating. Currently, there are no descendant ",y," spans beneath the spans you are investigating.")),r().createElement(u.Stack,{gap:.5,alignItems:"center"},r().createElement(u.Icon,{name:"info-circle"}),r().createElement(u.Text,{textAlignment:"center",variant:"body"},"The structure tab works best with full traces.")),r().createElement("div",{className:c.actionContainer},"Read more about",r().createElement("div",{className:c.action},r().createElement(u.LinkButton,{icon:"external-link-alt",fill:"solid",size:"sm",target:"_blank",href:"https://grafana.com/docs/grafana/next/explore/simplified-exploration/traces/concepts/#trace-structure"},`${w.toLowerCase()}`))));return r().createElement(u.Stack,{direction:"column",gap:1},r().createElement("div",{className:c.description},g),b&&r().createElement(u.Stack,{direction:"column",gap:2},r().createElement(j.A,{count:4,height:200,baseColor:m.colors.background.secondary,highlightColor:m.colors.background.primary})),!b&&a&&a.children.length>0&&r().createElement("div",{className:c.traceViewList},o&&r().createElement(o.Component,{model:o})),(null==l||null===(n=l.state.data)||void 0===n?void 0:n.state)===s.LoadingState.Done&&!(null==a?void 0:a.children.length)&&r().createElement(h,{message:S,padding:"32px"}))}));const ft=e=>({description:(0,l.css)({fontSize:e.typography.h6.fontSize,padding:`${e.spacing(1)} 0`}),traceViewList:(0,l.css)({display:"flex",flexDirection:"column",gap:e.spacing.x1,'div[class*="panel-content"] > div':{overflow:"auto",'> :not([class*="TraceTimelineViewer"])':{display:"none"}},'div[data-testid="span-detail-component"] > :nth-child(4) > :nth-child(1)':{display:"none"},".span-detail-row":{display:"none"},'div[data-testid="TimelineRowCell"]':{'button[role="switch"]':{cursor:"text"}},'div[data-testid="span-view"]':{cursor:"text !important"}}),longText:(0,l.css)({maxWidth:"800px",margin:"0 auto"}),action:(0,l.css)({marginLeft:e.spacing(1)}),actionContainer:(0,l.css)({display:"flex",justifyContent:"space-between",alignItems:"center"})});function vt(e){let t=e.spans.length;for(const n of e.children)t+=vt(n);return t}var gt=n(5540);function ht({options:e,radioAttributes:t,value:n,onChange:i,showAll:s=!1,model:o}){const l=(0,u.useStyles2)(bt),c=(0,u.useTheme2)(),{fontSize:m}=c.typography,[p,f]=(0,a.useState)(""),[v,g]=(0,a.useState)(0),h=(0,a.useRef)(null),{filters:b}=sr(o).useState(),{value:y}=ir(o).useState(),w=y;(0,gt.w)({ref:h,onResize:()=>{const e=h.current;e&&g(e.clientWidth)}});const S=(0,a.useMemo)((()=>{let n=0;return t.filter((t=>{let n=!!e.find((e=>e.value===t));return!b.find((e=>e.key===t&&("="===e.operator||"!="===e.operator)))&&(b.find((e=>"nestedSetParent"===e.key))&&(n=n&&"rootName"!==t&&"rootServiceName"!==t),"rate"!==w&&"errors"!==w||(n=n&&"status"!==t),n)})).map((e=>({label:e.replace(d.zd,"").replace(d.$d,""),text:e,value:e}))).filter((e=>{const t=e.label||e.text||"",a=(0,u.measureText)(t,m).width;return n+a+40+180{const t=e.filter((e=>!S.find((t=>{var n;return t.value===(null===(n=e.value)||void 0===n?void 0:n.toString())}))));return yt(t,p)}),[p,e,S]),j=e=>e.filter((e=>{var t;return!d.uK.includes(null===(t=e.value)||void 0===t?void 0:t.toString())})).map((e=>{var t;return{label:null===(t=e.label)||void 0===t?void 0:t.replace(d.zd,"").replace(d.$d,""),value:e.value}}));(0,a.useEffect)((()=>{var a,r;const o=null!==(r=t[0])&&void 0!==r?r:null===(a=e[0])||void 0===a?void 0:a.value;o&&(s||n&&n!==d.y2||i(o,!0))}));const O=s?[{label:d.y2,value:d.y2}]:[],E=s?d.y2:"";return r().createElement(u.Field,{label:"Group by"},r().createElement("div",{ref:h,className:l.container},S.length>0&&r().createElement(u.RadioButtonGroup,{options:[...O,...S],value:n,onChange:i}),r().createElement(u.Select,{value:n&&j(x).some((e=>e.value===n))?n:null,placeholder:"Other attributes",options:j(x),onChange:e=>{var t;const n=null!==(t=null==e?void 0:e.value)&&void 0!==t?t:E;i(n)},className:l.select,isClearable:!0,onInputChange:(e,{action:t})=>{"input-change"===t&&f(e)},onCloseMenu:()=>f(""),virtualized:!0})))}function bt(e){return{select:(0,l.css)({maxWidth:e.spacing(22)}),container:(0,l.css)({display:"flex",gap:e.spacing(1)})}}const yt=(e,t)=>{if(0===e.length)return[];if(0===t.length)return e.slice(0,d.nr);const n=t.toLowerCase();return e.filter((e=>!!(e.value&&e.value.length>0)&&e.value.toLowerCase().includes(n))).slice(0,d.nr)};function wt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class St extends o.Bs{Selector({model:e}){const{active:t,options:n}=e.useState();return r().createElement(u.Field,{label:"View"},r().createElement(u.RadioButtonGroup,{options:n,value:t,onChange:e.onLayoutChange}))}constructor(...e){super(...e),wt(this,"onLayoutChange",(e=>{this.setState({active:e}),te(ne.analyse_traces,ae.analyse_traces.layout_type_changed,{layout:e})}))}}wt(St,"Component",(({model:e})=>{const{layouts:t,options:n,active:a}=e.useState(),i=n.findIndex((e=>e.value===a));if(-1===i)return null;const s=t[i];return r().createElement(s.Component,{model:s})}));const xt=()=>o.d0.timeseries().setOption("legend",{showLegend:!1}).setOption("tooltip",{mode:u.TooltipDisplayMode.Multi}).setCustomFieldConfig("fillOpacity",15);function jt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ot(e){for(var t=1;t{this._subs.add(this.subscribeToState((()=>{this.getQueries(),this.getContext()})))})),jt(this,"getQueries",(()=>{const e=o.jh.getData(this),t=o.jh.findObject(e,Ct);if(Ct(t)){const e=t.state.queries.map((e=>Et(Ot({},e),{query:this.state.query})));JSON.stringify(e)!==JSON.stringify(this.state.queries)&&this.setState({queries:e})}})),jt(this,"getContext",(()=>{const{queries:e,dsUid:t,labelValue:n,type:a="traceMetrics"}=this.state,r=o.jh.getTimeRange(this);if(!r||!e||!t)return;const i={origin:"Explore Traces",type:a,queries:e,timeRange:Ot({},r.state.value),datasource:{uid:t},url:window.location.href,id:`${JSON.stringify(e)}`,title:`${n}`,logoPath:"public/plugins/grafana-exploretraces-app/img/1382cadfeb81ccdaa67d.svg"};JSON.stringify(i)!==JSON.stringify(this.state.context)&&this.setState({context:i})})),this.addActivationHandler(this._onActivate.bind(this))}}function Ct(e){return e instanceof o.dt}function Pt(e,t,n,a,r,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(a,r)}function _t(e){return function(){var t=this,n=arguments;return new Promise((function(a,r){var i=e.apply(t,n);function s(e){Pt(i,a,r,s,o,"next",e)}function o(e){Pt(i,a,r,s,o,"throw",e)}s(void 0)}))}}function Dt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Nt="Add to investigation",Tt="grafana-exploretraces-app/investigation/v1",It="investigations_divider",At="Investigations";class $t extends o.Bs{addItem(e){this.state.body&&this.state.body.addItem(e)}setItems(e){this.state.body&&this.state.body.setItems(e)}constructor(e){super(e),this.addActivationHandler((()=>{const e=[{text:"Navigation",type:"group"},{text:"Explore",iconClassName:"compass",href:Lt(this),onClick:()=>Vt()}];this.setState({body:new o.Lw({items:e})});const t=er(Ja(this)),n=new kt({query:this.state.query,dsUid:t});var a,r;n.activate(),this.setState({addToInvestigationButton:n}),this._subs.add(null==n?void 0:n.subscribeToState((()=>{!function(e){Rt.apply(this,arguments)}(this)}))),n.setState((a=function(e){for(var t=1;t{const{body:t}=e.useState();return t?r().createElement(t.Component,{model:t}):r().createElement(r().Fragment,null)}));const Lt=e=>{const t=er(Ja(e)),n=o.jh.getTimeRange(e).state.value,a=function(e){var t;const n=o.jh.getData(e).state.data,a=null==n||null===(t=n.request)||void 0===t?void 0:t.targets[0];return a?a.step:void 0}(e),r=JSON.stringify({"traces-explore":{range:(0,s.toURLRange)(n.raw),queries:[{refId:"A",datasource:t,query:e.state.query,step:a}]}});var i;const l=null!==(i=c.config.appSubUrl)&&void 0!==i?i:"";return s.urlUtil.renderUrl(`${l}/explore`,{panes:r,schemaVersion:1})},Vt=()=>{te(ne.analyse_traces,ae.analyse_traces.open_in_explore_clicked)},Bt=function(){var e=_t((function*(e){const t=e.state.context;return void 0!==c.getPluginLinkExtensions?(0,c.getPluginLinkExtensions)({extensionPointId:Tt,context:t}).extensions[0]:void 0!==c.getObservablePluginLinks?(yield(0,_e.firstValueFrom)((0,c.getObservablePluginLinks)({extensionPointId:Tt,context:t})))[0]:void 0}));return function(t){return e.apply(this,arguments)}}();function Rt(){return(Rt=_t((function*(e){const t=e.state.addToInvestigationButton;if(t){var n;const l=yield Bt(t);var a;const c=null!==(a=null===(n=e.state.body)||void 0===n?void 0:n.state.items)&&void 0!==a?a:[],u=c.find((e=>e.text===Nt));var r,i,s,o;l&&(u?u&&(null===(r=e.state.body)||void 0===r||r.setItems(c.filter((e=>!1===[It,At,Nt].includes(e.text))))):(null===(i=e.state.body)||void 0===i||i.addItem({text:It,type:"divider"}),null===(s=e.state.body)||void 0===s||s.addItem({text:At,type:"group"}),null===(o=e.state.body)||void 0===o||o.addItem({text:Nt,iconClassName:"plus-square",onClick:e=>{l.onClick&&l.onClick(e),te(ne.analyse_traces,ae.analyse_traces.add_to_investigation_clicked)}})))}}))).apply(this,arguments)}function zt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ft(e){for(var t=1;t{const t=new Map,n=e.subscribeToEvent(d.sv,(n=>{const a=n.payload.series;null==a||a.forEach((e=>{e.fields.slice(1).forEach((n=>{t.set(e.refId,Math.max(...n.values.filter((e=>e))))}))})),function(e,t){const n=o.jh.findAllObjects(e,(e=>e instanceof o.Eb));for(const e of n)e.clearFieldConfigCache(),e.setState({fieldConfig:(0,p.merge)((0,p.cloneDeep)(e.state.fieldConfig),{defaults:{max:t}})})}(e,Math.max(...t.values()))}));return()=>{n.unsubscribe()}}],$data:new o.Es({$data:new J({maxDataPoints:64,datasource:d.Vl,queries:[r]}),transformations:[...De(vr(e)),()=>e=>e.pipe((0,_e.map)((e=>(e.forEach((e=>(0,s.reduceField)({field:e.fields[1],reducers:[s.ReducerID.max]}))),e.sort(((e,t)=>{var n,a,r,i;return((null===(a=t.fields[1].state)||void 0===a||null===(n=a.calcs)||void 0===n?void 0:n.max)||0)-((null===(i=e.fields[1].state)||void 0===i||null===(r=i.calcs)||void 0===r?void 0:r.max)||0)}))))))]}),options:[{value:"single",label:"Single"},{value:"grid",label:"Grid"},{value:"rows",label:"Rows"}],active:"grid",layouts:[new o.G1({direction:"column",children:[new o.vA({minHeight:300,body:("duration"===a?xt().setUnit("s"):xt()).build()})]}),new L({body:new o.gF({templateColumns:d.MV,autoRows:"200px",isLazy:!0,children:[]}),groupBy:!0,getLayoutChild:Ht(i,nr,t,a,n)}),new L({body:new o.gF({templateColumns:"1fr",autoRows:"200px",isLazy:!0,children:[]}),groupBy:!0,getLayoutChild:Ht(i,nr,t,a,n)})]})}function Ht(e,t,n,a,r){return(i,s)=>{var l;const c=s.name?e[s.name]:void 0,u=new o.Zv({data:Mt(Ft({},i),{annotations:null===(l=i.annotations)||void 0===l?void 0:l.filter((e=>e.refId===s.refId)),series:[Mt(Ft({},s),{fields:s.fields.sort(((e,t)=>{var n,a,r;return(null===(r=e.labels)||void 0===r||null===(a=r.status)||void 0===a?void 0:a.localeCompare((null===(n=t.labels)||void 0===n?void 0:n.status)||""))||0}))})]})});var d;if(c)return null===(d=c.state.body)||void 0===d||d.setState({$data:u}),c;const m=o.jh.interpolate(n,M({metric:a,extraFilters:`${n.getValueText()}=${pr(nr(s))}`,groupByStatus:!0})),p=("duration"===a?xt().setUnit("s"):F()).setTitle(t(s,n.getValueText())).setMenu(new $t({query:m,labelValue:nr(s)})).setData(u),f=r(s);f&&p.setHeaderActions(f);const v=new o.xK({body:p.build()});return s.name&&(e[s.name]=v),v}}function Wt({description:e,tags:t}){const n=(a=(0,u.useTheme2)(),{infoFlex:(0,l.css)({display:"flex",gap:a.spacing(2),alignItems:"center",padding:`${a.spacing(1)} 0 ${a.spacing(2)} 0`}),tagsFlex:(0,l.css)({display:"flex",gap:a.spacing(1),alignItems:"center"}),tag:(0,l.css)({display:"inline-block",width:a.spacing(2),height:a.spacing(.5),borderRadius:a.spacing(.5)})});var a;return r().createElement("div",{className:n.infoFlex},r().createElement("div",{className:n.tagsFlex},e),t.length>0&&t.map((e=>r().createElement("div",{className:n.tagsFlex,key:e.label},r().createElement("div",{className:n.tag,style:{backgroundColor:e.color}}),r().createElement("div",null,e.label)))))}function Ut(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class Gt extends o.Bs{_onActivate(){const e=ar(this);e.subscribeToState((()=>{this.setBody(e)})),Xa(this).subscribeToState((()=>{this.setBody(e)})),this.setBody(e)}onReferencedVariableValueChanged(){const e=ar(this);e.changeValueTo(d.u0[0]),this.setBody(e)}onAddToFiltersClick(e){te(ne.analyse_traces,ae.analyse_traces.breakdown_add_to_filters_clicked,e)}constructor(e){super(function(e){for(var t=1;t{this.setState({body:qt(this,e,(t=>[new ce({frame:t,labelKey:e.getValueText(),onClick:this.onAddToFiltersClick})]))})})),Ut(this,"onChange",((e,t)=>{const n=ar(this);n.getValueText()!==e&&(n.changeValueTo(e,void 0,!t),te(ne.analyse_traces,ae.analyse_traces.breakdown_group_by_changed,{groupBy:e}))})),this.addActivationHandler(this._onActivate.bind(this))}}function Kt(e){return{container:(0,l.css)({flexGrow:1,display:"flex",minHeight:"100%",flexDirection:"column"}),content:(0,l.css)({flexGrow:1,display:"flex",paddingTop:e.spacing(0)}),controls:(0,l.css)({flexGrow:0,display:"flex",alignItems:"top",gap:e.spacing(2)}),controlsRight:(0,l.css)({flexGrow:0,display:"flex",justifyContent:"flex-end"}),scope:(0,l.css)({marginRight:e.spacing(2)}),groupBy:(0,l.css)({width:"100%"}),controlsLeft:(0,l.css)({display:"flex",justifyContent:"flex-left",justifyItems:"left",width:"100%",flexDirection:"row"})}}function Qt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Ut(Gt,"Component",(({model:e})=>{const t=ar(e).getValueText(),n=t.includes(d.zd)||d.jx.includes(t)?d.BS:d.bD,[i,s]=(0,a.useState)(n),{body:o}=e.useState(),l=(0,u.useStyles2)(Kt),{attributes:c}=Xa(e).useState(),m=i===d.bD?d.$d:d.zd;let p=null==c?void 0:c.filter((e=>e.includes(m)));i===d.BS&&(p=null==p?void 0:p.concat(d.jx));const f=Ja(e),{value:v}=f.getMetricVariable().useState(),g=(e=>{switch(e){case"rate":return"Attributes are ordered by their rate of requests per second.";case"errors":return"Attributes are ordered by their rate of errors per second.";case"duration":return"Attributes are ordered by their average duration.";default:throw new Error("Metric not supported")}})(v);return r().createElement("div",{className:l.container},r().createElement(Wt,{description:g,tags:"duration"===v?[]:[{label:"Rate",color:"green"},{label:"Error",color:"red"}]}),r().createElement("div",{className:l.controls},(null==p?void 0:p.length)&&r().createElement("div",{className:l.controlsLeft},r().createElement("div",{className:l.scope},r().createElement(u.Field,{label:"Scope"},r().createElement(u.RadioButtonGroup,{options:tr([d.bD,d.BS]),value:i,onChange:s}))),r().createElement("div",{className:l.groupBy},r().createElement(ht,{options:tr(p),radioAttributes:i===d.bD?d.u0:d.jx,value:t,onChange:e.onChange,model:e}))),o instanceof St&&r().createElement("div",{className:l.controlsRight},r().createElement(o.Selector,{model:o}))),r().createElement("div",{className:l.content},o&&r().createElement(o.Component,{model:o})))}));class Zt extends o.Bs{_onActivate(){this.updateBody()}updateBody(){this.setState({body:new Gt({})})}constructor(e){super(function(e){for(var t=1;t{const{body:t}=e.useState();return t&&r().createElement(t.Component,{model:t})}));var Jt=n(2468);function Xt(e){var t,n,a,r;let i="";if(!e)return"{}";e.query&&(i+=e.query);const s=[];(null===(t=e.duration)||void 0===t?void 0:t.from.length)&&s.push(`duration >= ${e.duration.from}`),(null===(n=e.duration)||void 0===n?void 0:n.to.length)&&s.push(`duration <= ${e.duration.to}`),s.length&&(i.length&&(i+=" && "),i+=s.join(" && "));const o=null===(a=e.timeRange)||void 0===a?void 0:a.from,l=null===(r=e.timeRange)||void 0===r?void 0:r.to;return`{${i}}, 10${o&&l?`, ${1e9*o}, ${1e9*l}`:""}`}function Yt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function en(e){for(var t=1;te.name===c)),m=[],p=null==u?void 0:u.fields.find((e=>"Value"===e.name)),f=null==u?void 0:u.fields.find((e=>"Baseline"===e.name)),v=null==u?void 0:u.fields.find((e=>"Selection"===e.name));if(p&&f&&v)for(let e=0;ee=>e.pipe((0,_e.map)((e=>(e.forEach((e=>(0,s.reduceField)({field:e.fields[2],reducers:[s.ReducerID.max]}))),e.sort(((e,t)=>{var n,a,r,i;return((null===(a=t.fields[2].state)||void 0===a||null===(n=a.calcs)||void 0===n?void 0:n.max)||0)-((null===(i=e.fields[2].state)||void 0===i||null===(r=i.calcs)||void 0===r?void 0:r.max)||0)}))))))]}),body:new o.gF({templateColumns:d.MV,autoRows:"200px",isLazy:!0,children:[]}),getLayoutChild:rn({},an,n,a)})}const an=e=>e.name||"No name available";function rn(e,t,n,a){return(r,i)=>{const s=i.name?e[i.name]:void 0,l=new o.Zv({data:tn(en({},r),{series:[en({},i)]})});var c;if(s)return null===(c=s.state.body)||void 0===c||c.setState({$data:l}),s;const u=Oe(a).setTitle(t(i)).setData(l),d=n(i);d&&u.setHeaderActions(d);const m=new o.xK({body:u.build()});return i.name&&(e[i.name]=m),m}}class sn extends o.Bs{}function on(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(sn,"Component",(({model:e})=>e.state.attribute?r().createElement(u.Button,{variant:"secondary",size:"sm",fill:"solid",onClick:()=>e.state.onClick()},"Inspect"):null));class ln extends o.Bs{_onActivate(){const e=ar(this);e.changeValueTo(d.y2),this.updateData(),e.subscribeToState(((t,n)=>{t.value!==n.value&&this.setBody(e)})),or(this).subscribeToState((()=>{this.updateData(),this.setBody(e)})),Xa(this).subscribeToState(((t,n)=>{(0,p.isEqual)(t.selection,n.selection)||(this.updateData(),this.setBody(e))})),o.jh.getTimeRange(this).subscribeToState((()=>{this.updateData()})),this.setBody(e)}updateData(){const e=Xa(this),t=o.jh.getTimeRange(this),n=t.state.value.from.unix(),a=t.state.value.to.unix(),r=or(this).state.value,i=this.getFilteredAttributes(r);this.setState({$data:new o.Es({$data:new o.dt({datasource:d.Vl,queries:[cn(n,a,Xt(e.state.selection))]}),transformations:[()=>e=>e.pipe((0,_e.map)((e=>{const t=un(e);return Object.entries(t).filter((([e,t])=>!i.includes(e))).map((([e,t])=>dn(e,t))).sort(((e,t)=>{const n=me(e),a=me(t);return Math.abs(a.maxDifference)-Math.abs(n.maxDifference)}))})))]})})}onReferencedVariableValueChanged(){const e=ar(this);e.changeValueTo(d.y2),this.setBody(e)}onAddToFiltersClick(e){te(ne.analyse_traces,ae.analyse_traces.comparison_add_to_filters_clicked,e)}constructor(e){super(function(e){for(var t=1;t"nestedSetParent<0"===e?["rootName","rootServiceName"]:[])),on(this,"setBody",(e=>{const t=Ja(this);var n,a;this.setState({body:e.hasAllValue()||e.getValue()===d.y2?(n=e=>new sn({attribute:e.name,onClick:()=>this.onChange(e.name||"")}),a=t.getMetricFunction(),new L({body:new o.gF({templateColumns:d.MV,autoRows:"320px",children:[]}),getLayoutChild:je({},xe,n,a)})):nn(this,e,(t=>[new ce({frame:t,labelKey:e.getValueText(),onClick:this.onAddToFiltersClick})]),t.getMetricFunction())})})),on(this,"onChange",((e,t)=>{ar(this).changeValueTo(e,void 0,!t),te(ne.analyse_traces,ae.analyse_traces.select_attribute_in_comparison_clicked,{value:e})})),this.addActivationHandler(this._onActivate.bind(this))}}function cn(e,t,n){const a=`${(0,Jt.duration)(t-e,"s").asSeconds()}s`;return{refId:"A",query:`{${d.ui}} | compare(${n})`,step:a,queryType:"traceql",tableType:"spans",limit:100,spss:10,filters:[]}}on(ln,"Component",(({model:e})=>{const{body:t}=e.useState(),n=ar(e),a=Ja(e),{attributes:i}=Xa(e).useState(),s=(0,u.useStyles2)(pn);return r().createElement("div",{className:s.container},r().createElement(Wt,{description:"Attributes are ordered by the difference between the baseline and selection values for each value.",tags:[{label:"Baseline",color:"duration"===a.getMetricFunction()?we:(0,u.getTheme)().visualization.getColorByName("semi-dark-green")},{label:"Selection",color:"duration"===a.getMetricFunction()?Se:(0,u.getTheme)().visualization.getColorByName("semi-dark-red")}]}),r().createElement("div",{className:s.controls},(null==i?void 0:i.length)&&r().createElement("div",{className:s.controlsLeft},r().createElement(ht,{options:tr(i),radioAttributes:d.jx,value:n.getValueText(),onChange:e.onChange,showAll:!0,model:e})),t instanceof St&&r().createElement("div",{className:s.controlsRight},r().createElement(t.Selector,{model:t}))),r().createElement("div",{className:s.content},t&&r().createElement(t.Component,{model:t})))}));const un=e=>e.reduce(((e,t)=>{const n=t.fields.find((e=>"number"===e.type)),a=Object.keys((null==n?void 0:n.labels)||{}).find((e=>!e.startsWith("__")));return a&&(e[a]=[...e[a]||[],t]),e}),{}),dn=(e,t)=>{const n={name:e,refId:e,fields:[],length:0},a={name:"Value",type:s.FieldType.string,values:[],config:{},labels:{[e]:e}},r={name:"Baseline",type:s.FieldType.number,values:[],config:{}},i={name:"Selection",type:s.FieldType.number,values:[],config:{}},o=t.reduce(((t,n)=>{var a;const r=n.fields.find((e=>"number"===e.type)),i=null==r||null===(a=r.labels)||void 0===a?void 0:a[e];return i&&(t[i]=[...t[i]||[],r]),t}),{}),l=mn(t,"baseline",o),c=mn(t,"selection",o);return n.length=Object.keys(o).length,Object.entries(o).forEach((([e,t])=>{var n,s;a.values.push(e),r.values.push((null===(n=t.find((e=>{var t;return'"baseline"'===(null===(t=e.labels)||void 0===t?void 0:t.__meta_type)})))||void 0===n?void 0:n.values[0])/l),i.values.push((null===(s=t.find((e=>{var t;return'"selection"'===(null===(t=e.labels)||void 0===t?void 0:t.__meta_type)})))||void 0===s?void 0:s.values[0])/c)})),n.fields=[a,r,i],n};function mn(e,t,n){const a=Object.values(n).reduce(((e,n)=>{const a=n.find((e=>{var n;return(null===(n=e.labels)||void 0===n?void 0:n.__meta_type)===`"${t}"`}));return e+((null==a?void 0:a.values[0])||0)}),0);let r=e.reduce(((e,n)=>{var a;const r=n.fields.find((e=>"number"===e.type));return(null==r||null===(a=r.labels)||void 0===a?void 0:a.__meta_type)===`"${t}_total"`?r.values[0]:e}),1);return r{const{body:t}=e.useState();return t&&r().createElement(t.Component,{model:t})}));const gn=[{displayName:function(e){return"Breakdown"},value:"breakdown",getScene:function(){return new o.vA({body:new Zt({})})}},{displayName:bn,value:"structure",getScene:function(e){return new o.vA({body:new mt({metric:e})})}},{displayName:function(e){return"Comparison"},value:"comparison",getScene:function(){return new o.vA({body:new vn({})})}},{displayName:function(e){return"errors"===e?"Errored traces":"duration"===e?"Slow traces":"Traces"},value:"traceList",getScene:function(){return new o.vA({body:new tt({})})}}];class hn extends o.Bs{}function bn(e){switch(e){case"rate":return"Service structure";case"errors":return"Root cause errors";case"duration":return"Root cause latency"}}function yn(e){return{actions:(0,l.css)({[e.breakpoints.up(e.breakpoints.values.md)]:{position:"absolute",right:0,top:5,zIndex:2}})}}function wn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(hn,"Component",(({model:e})=>{var t,n,a;const i=Xa(e),s=(0,u.useStyles2)(yn),l=Ja(e),{actionView:c}=i.useState(),{value:d}=l.getMetricVariable().useState(),m=null===(a=o.jh.getData(e).useState().data)||void 0===a||null===(n=a.series)||void 0===n||null===(t=n[0])||void 0===t?void 0:t.length;return r().createElement(u.Box,null,r().createElement("div",{className:s.actions},r().createElement(u.Stack,{gap:1},r().createElement(ze,{exploration:l}))),r().createElement(u.TabsBar,null,gn.map(((e,t)=>r().createElement(u.Tab,{key:t,label:e.displayName(d),active:c===e.value,onChangeTab:()=>i.setActionView(e.value),counter:"traceList"===e.value?m:void 0})))))}));class Sn extends o.Bs{_onActivate(){this.setState({$data:new o.Es({$data:new J({maxDataPoints:"duration"===this.state.metric?24:64,datasource:d.Vl,queries:["duration"===this.state.metric?Ee():q(this.state.metric)]}),transformations:"duration"===this.state.metric?[...Ne()]:[...De(vr(this))]}),panel:this.getVizPanel(this.state.metric)})}getVizPanel(e){return new o.G1({direction:"row",children:[new o.vA({body:"duration"===e?this.getDurationVizPanel():this.getRateOrErrorPanel(e)})]})}getRateOrErrorPanel(e){const t=F().setHoverHeader(!0).setDisplayMode("transparent");return"rate"===e?t.setCustomFieldConfig("axisLabel","span/s"):"errors"===e&&t.setTitle("Errors rate").setCustomFieldConfig("axisLabel","error/s").setColor({fixedColor:"semi-dark-red",mode:"fixed"}),t.build()}getDurationVizPanel(){return re().setTitle("Histogram by duration").setHoverHeader(!0).setDisplayMode("transparent").build()}constructor(e){super(function(e){for(var t=1;t{this._onActivate();const e=o.jh.getData(this);this._subs.add(e.subscribeToState((e=>{var t,n,a;this.setState({isStreaming:(null===(t=e.data)||void 0===t?void 0:t.state)===s.LoadingState.Streaming}),(null===(n=e.data)||void 0===n?void 0:n.state)===s.LoadingState.Done?0===e.data.series.length||0===e.data.series[0].length||dr(e)?this.setState({panel:new o.G1({children:[new o.vA({body:new y({imgWidth:110})})]})}):this.setState({panel:this.getVizPanel(this.state.metric)}):(null===(a=e.data)||void 0===a?void 0:a.state)===s.LoadingState.Loading&&this.setState({panel:new o.G1({direction:"column",maxHeight:Dn,height:Dn,children:[new O({component:()=>B(1)})]})})})))}))}}function xn(e){return{container:(0,l.css)({flex:1,width:"100%",display:"flex",flexDirection:"column",border:`1px solid ${e.colors.border.weak}`,borderRadius:"2px",background:e.colors.background.primary,paddingTop:"8px","section, section:hover":{borderColor:"transparent"},"& .show-on-hover":{display:"none"}}),headerWrapper:(0,l.css)({display:"flex",alignItems:"center",position:"absolute",top:"4px",left:"8px",zIndex:2}),clickable:(0,l.css)({cursor:"pointer",maxHeight:Dn,'[class*="loading-state-scene"]':{height:Dn,overflow:"hidden"},":hover":{background:e.colors.background.secondary,input:{backgroundColor:"#ffffff",border:"5px solid #3D71D9",cursor:"pointer"}}}),radioButton:(0,l.css)({display:"block"}),indicatorWrapper:(0,l.css)({position:"absolute",top:"4px",right:"8px",zIndex:2})}}function jn(e,t,n,a,r,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(a,r)}function On(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function En(e){for(var t=1;t{const{panel:t,isStreaming:n}=e.useState(),a=(0,u.useStyles2)(xn),i=Ja(e),s=()=>{te(ne.common,ae.common.metric_changed,{metric:e.state.metric,location:"panel"}),i.onChangeMetricFunction(e.state.metric)};if(t)return r().createElement("div",{className:(0,l.css)([a.container,a.clickable]),onClick:s},r().createElement("div",{className:a.headerWrapper},r().createElement(u.RadioButtonList,{className:a.radioButton,name:`metric-${e.state.metric}`,options:[{title:"",value:"selected"}],onChange:()=>s(),value:"not-selected"})),n&&r().createElement("div",{className:a.indicatorWrapper},r().createElement(X,{isStreaming:!0,iconSize:10})),r().createElement(t.Component,{model:t}))}));class kn extends o.Bs{_onActivate(){const e=new URLSearchParams(window.location.search).get("actionView");e&&gn.find((t=>t.value===e))&&this.setState({actionView:e}),this.updateBody();const t=Ja(this).getMetricVariable();this._subs.add(t.subscribeToState(((e,t)=>{if(e.value!==t.value){const t=pe(e.value);t&&this.setState({selection:t}),this.updateQueryRunner(e.value),this.updateBody()}}))),this._subs.add(this.subscribeToState(((e,n)=>{var a,r;const i=o.jh.getTimeRange(this),s=null===(r=e.selection)||void 0===r||null===(a=r.timeRange)||void 0===a?void 0:a.from;s&&s{this.updateAttributes()}))),this._subs.add(rr(this).subscribeToState((()=>{this.updateQueryRunner(t.getValue())}))),this.updateQueryRunner(t.getValue()),this.updateAttributes()}updateBody(){const e=Ja(this).getMetricVariable().getValue(),t=gn.find((e=>e.value===this.state.actionView));this.setState({body:In(e,t?[null==t?void 0:t.getScene(e)]:void 0)}),void 0===this.state.actionView&&this.setActionView("breakdown")}updateAttributes(){var e,t=this;return(e=function*(){var e;const n=yield(0,c.getDataSourceSrv)().get(d.gR,{__sceneObject:{value:t}});n&&(null===(e=n.getTagKeys)||void 0===e||e.call(n).then((e=>{let n=[];n="data"in e?e.data:e;const a=n.map((e=>e.text));a!==t.state.attributes&&t.setState({attributes:a})})))},function(){var t=this,n=arguments;return new Promise((function(a,r){var i=e.apply(t,n);function s(e){jn(i,a,r,s,o,"next",e)}function o(e){jn(i,a,r,s,o,"throw",e)}s(void 0)}))})()}getUrlState(){return{actionView:this.state.actionView,selection:this.state.selection?JSON.stringify(this.state.selection):void 0}}updateFromUrl(e){if("string"==typeof e.actionView){if(this.state.actionView!==e.actionView){const t=gn.find((t=>t.value===e.actionView));t&&this.setActionView(t.value)}}else null===e.actionView&&this.setActionView("breakdown");if("string"==typeof e.selection){const t=JSON.parse(e.selection);(0,p.isEqual)(t,this.state.selection)||this.setState({selection:t})}}onUserUpdateSelection(e){this._urlSync.performBrowserHistoryAction((()=>{this.setState({selection:e})}))}setActionView(e){const{body:t}=this.state,n=gn.find((t=>t.value===e)),a=Ja(this).getMetricVariable().getValue();t.state.children.length>1&&n&&(t.setState({children:[...t.state.children.slice(0,2),n.getScene(a)]}),te(ne.analyse_traces,ae.analyse_traces.action_view_changed,{oldAction:this.state.actionView,newAction:e}),this.setState({actionView:n.value}))}updateQueryRunner(e){var t;const n=this.state.selection;var a;const r=null!==(a=null===(t=rr(this).getValue())||void 0===t?void 0:t.toString())&&void 0!==a?a:"";this.setState({$data:new o.Es({$data:new o.dt({datasource:d.Vl,queries:[Nn(e,r,n)],$timeRange:Tn(n)}),transformations:[...d.s9,...An]})})}constructor(e){var t;super(En({body:null!==(t=e.body)&&void 0!==t?t:new o.G1({children:[]})},e)),On(this,"_urlSync",new o.So(this,{keys:["actionView","selection"]})),this.addActivationHandler(this._onActivate.bind(this))}}On(kn,"Component",(({model:e})=>{const{body:t}=e.useState(),n=(0,u.useStyles2)(Pn);return r().createElement(r().Fragment,null,r().createElement("div",{className:n.title},r().createElement(u.Tooltip,{content:r().createElement(Cn,null),placement:"right-start",interactive:!0},r().createElement("span",{className:n.hand},"Select metric type ",r().createElement(u.Icon,{name:"info-circle"})))),r().createElement(t.Component,{model:t}))}));const Cn=()=>{const e=(0,u.useStyles2)(Pn);return r().createElement(u.Stack,{direction:"column",gap:1},r().createElement("div",{className:e.tooltip.title},"RED metrics for traces"),r().createElement("span",{className:e.tooltip.subtitle},"Explore rate, errors, and duration (RED) metrics generated from traces by Tempo."),r().createElement("div",{className:e.tooltip.text},r().createElement("div",null,r().createElement("span",{className:e.tooltip.emphasize},"Rate")," - Spans per second that match your filter, useful to find unusual spikes in activity"),r().createElement("div",null,r().createElement("span",{className:e.tooltip.emphasize},"Errors")," -Spans that are failing, overall issues in tracing ecosystem"),r().createElement("div",null,r().createElement("span",{className:e.tooltip.emphasize},"Duration")," - Amount of time those spans take, represented as a heat map (responds time, latency)")),r().createElement("div",{className:e.tooltip.button},r().createElement(u.LinkButton,{icon:"external-link-alt",fill:"solid",size:"sm",target:"_blank",href:"https://grafana.com/docs/grafana-cloud/visualizations/simplified-exploration/traces/concepts/#rate-error-and-duration-metrics",onClick:()=>te(ne.common,ae.common.metric_docs_link_clicked)},"Read documentation")))};function Pn(e){return{title:(0,l.css)({label:"title",display:"flex",gap:e.spacing.x0_5,fontSize:e.typography.bodySmall.fontSize,paddingBottom:e.spacing.x0_5,alignItems:"center"}),hand:(0,l.css)({label:"hand",cursor:"pointer"}),tooltip:{label:"tooltip",title:(0,l.css)({fontSize:"14px",fontWeight:500}),subtitle:(0,l.css)({marginBottom:e.spacing.x1}),text:(0,l.css)({label:"text",color:e.colors.text.secondary,div:{marginBottom:e.spacing.x0_5}}),emphasize:(0,l.css)({label:"emphasize",color:e.colors.text.primary}),button:(0,l.css)({marginBottom:e.spacing.x0_5})}}}const _n=240,Dn=(_n-8)/2;function Nn(e,t,n){const a=""!==t?` | select(${t})`:"";let r="";switch(e){case"errors":r=" && status = error";break;case"duration":if(n){var i,s;const e=[];(null===(i=n.duration)||void 0===i?void 0:i.from.length)&&e.push(`duration >= ${n.duration.from}`),(null===(s=n.duration)||void 0===s?void 0:s.to.length)&&e.push(`duration <= ${n.duration.to}`),e.length&&(r+="&& "+e.join(" && "))}r.length||(r=`&& duration > ${d.xT}`)}return{refId:"A",query:`{${d.ui}${r}}${a}`,queryType:"traceql",tableType:"spans",limit:200,spss:10,filters:[]}}function Tn(e){var t,n;const a=1e3*((null==e||null===(t=e.timeRange)||void 0===t?void 0:t.from)||0),r=1e3*((null==e||null===(n=e.timeRange)||void 0===n?void 0:n.to)||0);return a&&r?new o.JZ({from:a.toFixed(0),to:r.toFixed(0),value:{from:(0,s.dateTime)(a),to:(0,s.dateTime)(r),raw:{from:(0,s.dateTime)(a),to:(0,s.dateTime)(r)}}}):void 0}function In(e,t){const n=new Sn("rate"===e?{metric:"errors"}:{metric:"rate"}),a=new Sn("duration"===e?{metric:"errors"}:{metric:"duration"});return new o.G1({direction:"column",$behaviors:[new o.Gg.K2({key:"metricCrosshairSync",sync:s.DashboardCursorSync.Crosshair})],children:[new o.G1({direction:"row",ySizing:"content",children:[new o.vA({minHeight:_n,maxHeight:_n,width:"60%",body:new $e({})}),new o.G1({direction:"column",minHeight:_n,maxHeight:_n,children:[new o.vA({minHeight:Dn,maxHeight:Dn,height:Dn,body:n}),new o.vA({minHeight:Dn,maxHeight:Dn,height:Dn,ySizing:"fill",body:a})]})]}),new o.vA({ySizing:"content",body:new hn({})}),...t||[]]})}const An=[()=>e=>e.pipe((0,_e.map)((e=>e.map((e=>function(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})),e}(En({},e),{fields:e.fields.filter((e=>!e.name.startsWith("nestedSet")))})))))),{id:"sortBy",options:{fields:{},sort:[{field:"Duration",desc:!0}]}},{id:"organize",options:{indexByName:{"Start time":0,status:1,"Trace Service":2,"Trace Name":3,Duration:4,"Span ID":5,"span.http.method":6,"span.http.request.method":7,"span.http.path":8,"span.http.route":9,"span.http.status_code":10,"span.http.response.status_code":11}}}];function $n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class Ln extends o.Bs{getVizPanel(){const e=o.d0.traces().setHoverHeader(!0);return this.state.spanId&&e.setOption("focusedSpanId",this.state.spanId),e}constructor(e){super(function(e){for(var t=1;t{const e=o.jh.getData(this);this._subs.add(e.subscribeToState((e=>{var t,n;(null===(t=e.data)||void 0===t?void 0:t.state)===s.LoadingState.Done?this.setState({panel:this.getVizPanel().build()}):(null===(n=e.data)||void 0===n?void 0:n.state)===s.LoadingState.Loading&&this.setState({panel:new O({component:Vn})})})))}))}}$n(Ln,"Component",(({model:e})=>{const{panel:t}=e.useState(),n=(0,u.useStyles2)(Bn);if(t)return r().createElement("div",{className:n.panelContainer},r().createElement(t.Component,{model:t}))}));const Vn=()=>{const e=(0,u.useStyles2)(Bn);return r().createElement("div",{className:e.container},r().createElement("div",{className:e.header},r().createElement(j.A,{count:1,width:60}),r().createElement(j.A,{count:1,width:60})),r().createElement(j.A,{count:2,width:"80%"}),r().createElement("div",{className:e.map},r().createElement(j.A,{count:1}),r().createElement(j.A,{count:1,height:70})),r().createElement("div",{className:e.span},r().createElement("span",{className:e.service1},r().createElement(j.A,{count:1})),r().createElement("span",{className:e.bar1},r().createElement(j.A,{count:1}))),r().createElement("div",{className:e.span},r().createElement("span",{className:e.service2},r().createElement(j.A,{count:1})),r().createElement("span",{className:e.bar2},r().createElement(j.A,{count:1}))),r().createElement("div",{className:e.span},r().createElement("span",{className:e.service3},r().createElement(j.A,{count:1})),r().createElement("span",{className:e.bar3},r().createElement(j.A,{count:1}))),r().createElement("div",{className:e.span},r().createElement("span",{className:e.service4},r().createElement(j.A,{count:1})),r().createElement("span",{className:e.bar4},r().createElement(j.A,{count:1}))),r().createElement("div",{className:e.span},r().createElement("span",{className:e.service5},r().createElement(j.A,{count:1})),r().createElement("span",{className:e.bar5},r().createElement(j.A,{count:1}))),r().createElement("div",{className:e.span},r().createElement("span",{className:e.service6},r().createElement(j.A,{count:1})),r().createElement("span",{className:e.bar6},r().createElement(j.A,{count:1}))))};function Bn(e){return{panelContainer:(0,l.css)({display:"flex",height:"100%","& .show-on-hover":{display:"none"}}),container:(0,l.css)({height:"calc(100% - 32px)",width:"calc(100% - 32px)",position:"absolute",backgroundColor:e.colors.background.primary,border:`1px solid ${e.colors.border.weak}`,padding:"5px"}),header:(0,l.css)({marginBottom:"20px",display:"flex",justifyContent:"space-between"}),map:(0,l.css)({marginTop:"20px",marginBottom:"20px"}),span:(0,l.css)({display:"flex"}),service1:(0,l.css)({width:"25%"}),bar1:(0,l.css)({marginLeft:"5%",width:"70%"}),service2:(0,l.css)({width:"25%"}),bar2:(0,l.css)({marginLeft:"10%",width:"15%"}),service3:(0,l.css)({width:"20%",marginLeft:"5%"}),bar3:(0,l.css)({marginLeft:"10%",width:"65%"}),service4:(0,l.css)({width:"20%",marginLeft:"5%"}),bar4:(0,l.css)({marginLeft:"15%",width:"60%"}),service5:(0,l.css)({width:"15%",marginLeft:"10%"}),bar5:(0,l.css)({marginLeft:"20%",width:"35%"}),service6:(0,l.css)({width:"15%",marginLeft:"10%"}),bar6:(0,l.css)({marginLeft:"30%",width:"15%"})}}function Rn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class zn extends o.Bs{_onActivate(){this.updateBody(),Ja(this).subscribeToState(((e,t)=>{e.traceId===t.traceId&&e.spanId===t.spanId||(this.updateBody(),te(ne.analyse_traces,ae.analyse_traces.open_trace,{traceId:e.traceId,spanId:e.spanId}))}))}updateBody(){const e=Ja(this);e.state.traceId?this.setState({body:new Ln({traceId:e.state.traceId,spanId:e.state.spanId})}):this.setState({body:new y({message:"No trace selected"})})}constructor(e){super(function(e){for(var t=1;t{const{body:t}=e.useState();return t&&r().createElement(t.Component,{model:t})}));var Fn=n(5435),Mn=n(3518);class qn extends o.yP{}function Hn(e){const t=e.filter((e=>e.key&&e.operator&&e.value)).map((e=>function(e){let t=e.value;return(["span.messaging.destination.partition.id","span.network.protocol.version"].includes(e.key)||!function(e){return null!=e&&""!==e&&!isNaN(Number(e.toString().trim()))}(t)&&!["status","kind","span:status","span:kind","duration","span:duration","trace:duration","event:timeSinceStart"].includes(e.key))&&("string"!=typeof t||t.startsWith('"')||t.endsWith('"')||(t=`"${t}"`)),`${e.key}${e.operator}${t}`}(e))).join("&&");return t.length?t:"true"}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(qn,"Component",(({model:e})=>{const{value:t}=e.useState();return(0,Mn.A)((()=>{t||e.changeValueTo(oe[0].value)})),r().createElement(u.RadioButtonGroup,{options:oe,value:t,onChange:t=>e.changeValueTo(t,void 0,!0)})}));class Wn extends o.Bs{_onActivate(){this.runIssueDetectionQuery();const e=cr(this);this._subs.add(e.subscribeToState(((e,t)=>{e.value!==t.value&&(this.resetIssues(),this.runIssueDetectionQuery())})))}runIssueDetectionQuery(){const e=cr(this),t=(0,s.dateTime)(),n=(0,s.dateTime)(t).subtract(1,"minute"),a=new o.JZ({from:n.toISOString(),to:t.toISOString()}),r=new o.dt({maxDataPoints:1,datasource:{uid:String(e.state.value)},$timeRange:a,queries:[{refId:"issueDetectorQuery",query:"{} | rate()",queryType:"traceql",tableType:"spans",limit:1,spss:1,filters:[]}]});this._subs.add(r.subscribeToState((e=>{var t,n,a,r;(null===(t=e.data)||void 0===t?void 0:t.state)===s.LoadingState.Error&&(((null===(r=e.data)||void 0===r||null===(a=r.errors)||void 0===a||null===(n=a[0])||void 0===n?void 0:n.message)||"").includes("localblocks processor not found")&&this.setState({hasIssue:!0}))}))),r.activate()}resetIssues(){this.setState({hasIssue:!1})}constructor(){super({hasIssue:!1}),this.addActivationHandler(this._onActivate.bind(this))}}const Un=({detector:e})=>{const{hasIssue:t}=e.useState();return t?r().createElement(u.Alert,{severity:"warning",title:"TraceQL metrics not configured"},r().createElement("p",null,'We found an error running a TraceQL metrics query: "localblocks processor not found". This typically means the "local-blocks" processor is not configured in Tempo, which is required for Grafana Traces Drilldown to work.',r().createElement(u.LinkButton,{icon:"external-link-alt",fill:"text",size:"sm",target:"_blank",href:"https://grafana.com/docs/tempo/latest/operations/traceql-metrics"},"Read documentation"))):null};function Gn(e,t,n,a,r,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(a,r)}function Kn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Qn(e){for(var t=1;t{this.setupInvestigationButton(e.payload.traceId),this.setState({traceId:e.payload.traceId,spanId:e.payload.spanId})}))),this.state.traceId&&this.setupInvestigationButton(this.state.traceId),o.jh.lookupVariable(d.EY,this).subscribeToState((e=>{e.value&&localStorage.setItem(d.cd,e.value.toString())})),this.state.issueDetector&&(this.state.issueDetector.isActive||this.state.issueDetector.activate())}getUrlState(){return{traceId:this.state.traceId,spanId:this.state.spanId}}updateFromUrl(e){const t={};(e.traceId||e.spanId)&&(t.traceId=e.traceId?e.traceId:void 0,t.spanId=e.spanId?e.spanId:void 0),this.setState(t)}getMetricVariable(){const e=o.jh.lookupVariable(d.PU,this);if(!(e instanceof o.yP))throw new Error("Metric variable not found");return e.getValue()||e.changeValueTo("rate"),e}getMetricFunction(){return this.getMetricVariable().getValue()}closeDrawer(){this.setState({traceId:void 0,spanId:void 0})}setupInvestigationButton(e){const t=er(Ja(this)),n=new o.dt({datasource:{uid:t},queries:[{refId:"A",query:e,queryType:"traceql"}]}),a=new kt({query:e,type:"trace",dsUid:t,$data:n});a.activate(),this.setState({addToInvestigationButton:a}),this._subs.add(a.subscribeToState((()=>{this.updateInvestigationLink()}))),n.activate(),this._subs.add(n.subscribeToState((e=>{var t,n,r;if((null===(t=e.data)||void 0===t?void 0:t.state)===s.LoadingState.Done&&(null===(r=e.data)||void 0===r||null===(n=r.series)||void 0===n?void 0:n.length)>0){var i,o;const t=null===(o=e.data.series[0])||void 0===o||null===(i=o.fields)||void 0===i?void 0:i.find((e=>"serviceName"===e.name));t&&t.values[0]&&a.setState(Zn(Qn({},a.state),{labelValue:`${t.values[0]}`}))}}))),a.setState(Zn(Qn({},a.state),{labelValue:e}))}updateInvestigationLink(){var e,t=this;return(e=function*(){const{addToInvestigationButton:e}=t.state;if(!e)return;const n=yield Bt(e);n&&t.setState({investigationLink:n})},function(){var t=this,n=arguments;return new Promise((function(a,r){var i=e.apply(t,n);function s(e){Gn(i,a,r,s,o,"next",e)}function o(e){Gn(i,a,r,s,o,"throw",e)}s(void 0)}))})()}constructor(e){var t,n,a,r,i;super(Qn({$timeRange:null!==(t=e.$timeRange)&&void 0!==t?t:new o.JZ({}),$variables:null!==(n=e.$variables)&&void 0!==n?n:(r=e.initialDS,i=e.initialFilters,new o.Pj({variables:[new o.mI({name:d.EY,label:"Data source",value:r,pluginId:"tempo"}),new qn({name:d.CE,value:oe[0].value}),new o.H9({addFilterButtonText:"Add filter",hide:Fn.zL.hideLabel,name:d.Ao,datasource:d.Vl,layout:"combobox",filters:null!=i?i:[],allowCustomValue:!0,expressionBuilder:Hn}),new o.yP({name:d.PU,hide:Fn.zL.hideVariable}),new o.yP({name:d.z,defaultToAll:!1}),new o.yP({name:d.gP,defaultToAll:!1}),new o.yP({name:d.pf,defaultToAll:!1,hide:Fn.zL.hideVariable}),new o.yP({name:d.xc,defaultToAll:!1,hide:Fn.zL.hideVariable})]})),controls:null!==(a=e.controls)&&void 0!==a?a:[new o.KE({}),new o.WM({})],body:new Yn({}),drawerScene:new zn({}),issueDetector:new Wn},e)),Kn(this,"_urlSync",new o.So(this,{keys:["primarySignal","traceId","spanId","metric"]})),Kn(this,"onChangeMetricFunction",(e=>{const t=this.getMetricVariable();e&&t.getValue()!==e&&t.changeValueTo(e,void 0,!0)})),this.addActivationHandler(this._onActivate.bind(this))}}Kn(Xn,"Component",(({model:e})=>{const{body:t}=e.useState(),n=(0,u.useStyles2)(ea);return r().createElement("div",{className:n.bodyContainer}," ",t&&r().createElement(t.Component,{model:t})," ")}));class Yn extends o.Bs{}function ea(e){return{bodyContainer:(0,l.css)({label:"bodyContainer",flexGrow:1,display:"flex",minHeight:"100%",flexDirection:"column"}),container:(0,l.css)({label:"container",flexGrow:1,display:"flex",gap:e.spacing(1),minHeight:"100%",flexDirection:"column",padding:`0 ${e.spacing(2)} ${e.spacing(2)} ${e.spacing(2)}`,overflow:"auto",maxHeight:"100%"}),drawerHeader:(0,l.css)({display:"flex",justifyContent:"space-between",alignItems:"center",borderBottom:`1px solid ${e.colors.border.weak}`,paddingBottom:e.spacing(2),marginBottom:e.spacing(2),h3:{margin:0}}),drawerHeaderButtons:(0,l.css)({display:"flex",justifyContent:"flex-end",gap:e.spacing(1.5)}),body:(0,l.css)({label:"body",flexGrow:1,display:"flex",flexDirection:"column",gap:e.spacing(1)}),headerContainer:(0,l.css)({label:"headerContainer",backgroundColor:e.colors.background.canvas,display:"flex",flexDirection:"column",position:"sticky",top:0,zIndex:3,padding:`${e.spacing(1.5)} 0`,gap:e.spacing(1)}),datasourceLabel:(0,l.css)({label:"datasourceLabel",fontSize:"12px",padding:`0 ${e.spacing(1)}`,height:"32px",display:"flex",alignItems:"center",justifyContent:"flex-start",fontWeight:e.typography.fontWeightMedium,position:"relative",right:-1,width:"90px"}),controls:(0,l.css)({label:"controls",display:"flex",gap:e.spacing(1),zIndex:3,flexWrap:"wrap"}),menu:(0,l.css)({label:"menu","svg, span":{color:e.colors.text.link}}),menuHeader:l.css` - padding: ${e.spacing(.5,1)}; - white-space: nowrap; - `,menuHeaderSubtitle:l.css` - color: ${e.colors.text.secondary}; - font-size: ${e.typography.bodySmall.fontSize}; - `,tooltip:(0,l.css)({label:"tooltip",fontSize:"14px",lineHeight:"22px",width:"180px",textAlign:"center"}),helpIcon:(0,l.css)({label:"helpIcon",marginLeft:e.spacing(1)}),filters:(0,l.css)({label:"filters",marginTop:e.spacing(1),display:"flex",gap:e.spacing(1)})}}Kn(Yn,"Component",(({model:e})=>{const t=Ja(e),{controls:n,topScene:a,drawerScene:i,traceId:s,issueDetector:l,investigationLink:m,addToInvestigationButton:p}=t.useState(),{hasIssue:f}=(null==l?void 0:l.useState())||{hasIssue:!1},v=(0,u.useStyles2)(ea),[g,h]=r().useState(!1),b=o.jh.lookupVariable(d.EY,t),y=sr(t),w=or(t);function S(){const e=(0,u.useStyles2)(ea);return r().createElement("div",{className:e.menuHeader},r().createElement("h5",null,"Grafana Traces Drilldown v","1.0.0"),r().createElement("div",{className:e.menuHeaderSubtitle},"Last update: ",Jn))}const x=r().createElement(u.Menu,{header:r().createElement(S,null)},r().createElement("div",{className:v.menu},c.config.feedbackLinksEnabled&&r().createElement(u.Menu.Item,{label:"Give feedback",ariaLabel:"Give feedback",icon:"comment-alt-message",url:"https://grafana.qualtrics.com/jfe/form/SV_9LUZ21zl3x4vUcS",target:"_blank",onClick:()=>te(ne.common,ae.common.global_docs_link_clicked)}),r().createElement(u.Menu.Item,{label:"Documentation",ariaLabel:"Documentation",icon:"external-link-alt",url:"https://grafana.com/docs/grafana/next/explore/simplified-exploration/traces/",target:"_blank",onClick:()=>te(ne.common,ae.common.feedback_link_clicked)})));return r().createElement(r().Fragment,null,r().createElement("div",{className:v.container},r().createElement("div",{className:v.headerContainer},f&&l&&r().createElement(Un,{detector:l}),r().createElement(u.Stack,{gap:1,justifyContent:"space-between",wrap:"wrap"},r().createElement(u.Stack,{gap:1,alignItems:"center",wrap:"wrap"},b&&r().createElement(u.Stack,{gap:0,alignItems:"center"},r().createElement("div",{className:v.datasourceLabel},"Data source"),r().createElement(b.Component,{model:b}))),r().createElement("div",{className:v.controls},r().createElement(u.Dropdown,{overlay:x,onVisibleChange:()=>h(!g)},r().createElement(u.Button,{variant:"secondary",icon:"info-circle"},"Need help",r().createElement(u.Icon,{className:v.helpIcon,name:g?"angle-up":"angle-down",size:"lg"}))),n.map((e=>r().createElement(e.Component,{key:e.state.key,model:e}))))),r().createElement(u.Stack,{gap:1,alignItems:"center",wrap:"wrap"},r().createElement(u.Stack,{gap:0,alignItems:"center"},r().createElement("div",{className:v.datasourceLabel},"Filters"),w&&r().createElement(w.Component,{model:w})),y&&r().createElement("div",null,r().createElement(y.Component,{model:y})))),r().createElement("div",{className:v.body},a&&r().createElement(a.Component,{model:a}))),i&&s&&r().createElement(u.Drawer,{size:"lg",onClose:()=>t.closeDrawer()},r().createElement("div",{className:v.drawerHeader},r().createElement("h3",null,"View trace ",s),r().createElement("div",{className:v.drawerHeaderButtons},p&&m&&r().createElement(u.Button,{variant:"secondary",size:"sm",icon:"plus-square",onClick:e=>{(null==m?void 0:m.onClick)&&m.onClick(e),te(ne.analyse_traces,ae.analyse_traces.add_to_investigation_trace_view_clicked),setTimeout((()=>t.closeDrawer()),100)}},Nt),r().createElement(u.IconButton,{name:"times",onClick:()=>t.closeDrawer(),tooltip:"Close drawer",size:"lg"}))),r().createElement(i.Component,{model:i})))}));const ta=e=>{const{index:t,type:n,label:a,labelTitle:i,value:s,valueTitle:o,url:l}=e,d=(0,u.useStyles2)(na);return r().createElement("div",{key:t},0===t&&r().createElement("div",{className:d.rowHeader},r().createElement("span",null,i),r().createElement("span",{className:d.valueTitle},o)),r().createElement("div",{className:d.row,key:t,onClick:()=>{te(ne.home,ae.home.panel_row_clicked,{type:n,index:t,value:s}),c.locationService.push(l)}},r().createElement("div",{className:"rowLabel"},a),r().createElement("div",{className:d.action},r().createElement("span",{className:d.actionText},s),r().createElement(u.Icon,{className:d.actionIcon,name:"arrow-right",size:"xl"}))))};function na(e){return{rowHeader:(0,l.css)({color:e.colors.text.secondary,display:"flex",justifyContent:"space-between",alignItems:"center",padding:`0 ${e.spacing(2)} ${e.spacing(1)} ${e.spacing(2)}`}),valueTitle:(0,l.css)({margin:"0 45px 0 0"}),row:(0,l.css)({display:"flex",justifyContent:"space-between",alignItems:"center",gap:e.spacing(2),padding:`${e.spacing(.75)} ${e.spacing(2)}`,"&:hover":{backgroundColor:e.isDark?e.colors.background.secondary:e.colors.background.primary,cursor:"pointer",".rowLabel":{textDecoration:"underline"}}}),action:(0,l.css)({display:"flex",alignItems:"center"}),actionText:(0,l.css)({color:"#d5983c",padding:`0 ${e.spacing(1)}`,width:"max-content"}),actionIcon:(0,l.css)({cursor:"pointer",margin:`0 ${e.spacing(.5)} 0 ${e.spacing(1)}`})}}const aa=e=>{var t;const{series:n,type:a}=e,i=(0,u.useStyles2)(ra),o=e=>{var t;const n=e.fields.find((e=>"time"!==e.name));var a;return null!==(a=null==n||null===(t=n.labels)||void 0===t?void 0:t["resource.service.name"].replace(/"/g,""))&&void 0!==a?a:"Service name not found"},l=e=>{const t={"var-filters":`resource.service.name|=|${o(e)}`,"var-metric":"errors"};return s.urlUtil.renderUrl(d.D5,t)},c=e=>{var t;const n=e.fields.find((e=>"time"!==e.name));var a;return null!==(a=null==n||null===(t=n.values)||void 0===t?void 0:t.reduce(((e,t)=>"number"!=typeof e||isNaN(e)?t:e+t),0))&&void 0!==a?a:1};return r().createElement("div",{className:i.container},null===(t=n.sort(((e,t)=>c(t)-c(e))).slice(0,10))||void 0===t?void 0:t.map(((e,t)=>r().createElement("span",{key:t},r().createElement(ta,{type:a,index:t,label:o(e),labelTitle:"Service",value:c(e),valueTitle:"Total errors",url:l(e)})))))};function ra(e){return{container:(0,l.css)({padding:`${e.spacing(2)} 0`})}}function ia(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const sa=e=>{const{series:t,type:n}=e,a=(0,u.useStyles2)(oa),i=t[0].fields.find((e=>"duration"===e.name));if(i&&i.values){var o,l;const e=null==i||null===(o=i.values.map(((e,t)=>t)))||void 0===o?void 0:o.sort(((e,t)=>(null==i?void 0:i.values[t])-(null==i?void 0:i.values[e]))),c=t[0].fields.map((t=>{return n=function(e){for(var t=1;tt.values[e]))})?a:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(a)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(a)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(a,e))})),n;var n,a})),u=(e,t,n)=>{let a="";return(null==e?void 0:e.values[n])&&(a=e.values[n]),(null==t?void 0:t.values[n])&&(a=0===a.length?t.values[n]:`${a}: ${t.values[n]}`),0===a.length?"Trace service & name not found":a},m=(e,t,n,a)=>{if(!(t&&t.values[a]&&n&&n.values[a]))return console.error("SpanId or traceService not found"),d.bw.Explore;const r={traceId:e,spanId:t.values[a],"var-filters":`resource.service.name|=|${n.values[a]}`,"var-metric":"duration"};return s.urlUtil.renderUrl(d.D5,r)},p=(e,t)=>e&&e.values?U(e.values[t]/1e3):"Duration not found",f=c.find((e=>"traceIdHidden"===e.name)),v=c.find((e=>"spanID"===e.name)),g=c.find((e=>"traceName"===e.name)),h=c.find((e=>"traceService"===e.name)),b=c.find((e=>"duration"===e.name));return r().createElement("div",{className:a.container},null==f||null===(l=f.values)||void 0===l?void 0:l.map(((e,t)=>r().createElement("span",{key:t},r().createElement(ta,{type:n,index:t,label:u(h,g,t),labelTitle:"Trace",value:p(b,t),valueTitle:"Duration",url:m(e,v,h,t)})))))}return null};function oa(e){return{container:(0,l.css)({padding:`${e.spacing(2)} 0`})}}const la=e=>{var t;const{series:n,type:a}=e,i=(0,u.useStyles2)(ca),o=e=>{var t;const n=e.fields.find((e=>"time"!==e.name));var a;return null!==(a=null==n||null===(t=n.labels)||void 0===t?void 0:t["resource.service.name"].replace(/"/g,""))&&void 0!==a?a:"Service name not found"},l=e=>{const t={"var-filters":`resource.service.name|=|${o(e)}`,"var-metric":"duration"};return s.urlUtil.renderUrl(d.D5,t)},c=e=>{var t;const n=e.fields.find((e=>"time"!==e.name));var a;return null!==(a=null==n||null===(t=n.values)||void 0===t?void 0:t.reduce(((e,t)=>"number"!=typeof e||isNaN(e)?t:e+t),0))&&void 0!==a?a:1};return r().createElement("div",{className:i.container},null===(t=n.sort(((e,t)=>c(t)-c(e))).slice(0,10))||void 0===t?void 0:t.map(((e,t)=>r().createElement("span",{key:t},r().createElement(ta,{type:a,index:t,label:o(e),labelTitle:"Service",value:U(1e6*c(e)),valueTitle:"p90",url:l(e)})))))};function ca(e){return{container:(0,l.css)({padding:`${e.spacing(2)} 0`})}}const ua=e=>{const{series:t,type:n,message:a}=e,i=(0,u.useStyles2)(da);if(a)return r().createElement("div",{className:i.container},r().createElement("div",{className:i.message},r().createElement(u.Icon,{className:i.icon,name:"exclamation-circle",size:"xl"}),a));if(t&&t.length>0)switch(n){case"slowest-traces":return r().createElement(sa,{series:t,type:n});case"errored-services":return r().createElement(aa,{series:t,type:n});case"slowest-services":return r().createElement(la,{series:t,type:n})}return r().createElement("div",{className:i.container},"No series data")};function da(e){return{container:(0,l.css)({padding:`${e.spacing(2)} 0`}),icon:(0,l.css)({margin:`0 ${e.spacing(.5)} 0 ${e.spacing(1)}`}),message:(0,l.css)({display:"flex",gap:e.spacing(1.5),margin:`${e.spacing(2)} auto`,width:"60%"})}}class ma extends o.Bs{}function pa(e){switch(e){case"slowest-services":return"clock-nine";case"slowest-traces":return"crosshair";default:return"exclamation-triangle"}}function fa(e){return{container:(0,l.css)({border:`1px solid ${e.isDark?e.colors.border.medium:e.colors.border.weak}`,borderRadius:e.spacing(.5),marginBottom:e.spacing(4),width:"100%"}),title:(0,l.css)({color:e.isDark?e.colors.text.secondary:e.colors.text.primary,backgroundColor:e.isDark?e.colors.background.secondary:e.colors.background.primary,borderTopLeftRadius:e.spacing(.5),borderTopRightRadius:e.spacing(.5),display:"flex",justifyContent:"center",alignItems:"center",fontSize:"1.3rem",padding:`${e.spacing(1.5)} ${e.spacing(2)}`}),titleText:(0,l.css)({marginLeft:e.spacing(1)})}}function va(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ga(e){for(var t=1;t{const{series:t,title:n,type:a,message:i}=e.useState(),s=(0,u.useStyles2)(fa);return r().createElement("div",{className:s.container},r().createElement("div",{className:s.title},r().createElement(u.Icon,{name:pa(a),size:"lg"}),r().createElement("span",{className:s.titleText},n)),r().createElement(ua,{series:t,type:a,message:i}))}));class ha extends o.Bs{constructor(e){var t,n;super(ga({$data:new o.dt({datasource:d.Vl,queries:[(t=ga({refId:"A",queryType:"traceql",tableType:"spans",limit:10},e.query),n={exemplars:0},n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})),t)]})},e)),this.addActivationHandler((()=>{const t=o.jh.getData(this);this._subs.add(t.subscribeToState((t=>{var n,a,r,i,l;if((null===(n=t.data)||void 0===n?void 0:n.state)===s.LoadingState.Done||(null===(a=t.data)||void 0===a?void 0:a.state)===s.LoadingState.Streaming)if((null===(i=t.data)||void 0===i?void 0:i.state)!==s.LoadingState.Done||0!==t.data.series.length&&0!==t.data.series[0].length){if(t.data.series.length>0){var c;if("slowest-traces"!==e.type||e.renderDurationPanel)this.setState({panel:new o.G1({children:[new ma({series:t.data.series,title:e.title,type:e.type})]})});else if((null===(c=t.data)||void 0===c?void 0:c.state)===s.LoadingState.Done){var u,d;let n=Le(null!==(d=null===(u=t.data)||void 0===u?void 0:u.series)&&void 0!==d?d:[]);if(null==n?void 0:n.length){const{minDuration:t}=Ve(n);var m;this.setState({panel:new o.G1({children:[new ha({query:{query:`{nestedSetParent<0 && duration > ${t} ${null!==(m=e.filter)&&void 0!==m?m:""}}`},title:e.title,type:e.type,renderDurationPanel:!0})]})})}}}}else this.setState({panel:new o.G1({children:[new ma({message:(l=e.title.toLowerCase(),`No data for selected data source and filter. Select another to see ${l}.`),title:e.title,type:e.type})]})});else(null===(r=t.data)||void 0===r?void 0:r.state)===s.LoadingState.Error?this.setState({panel:new o.G1({children:[new ma({message:Ya(t),title:e.title,type:e.type})]})}):this.setState({panel:new o.G1({direction:"column",maxHeight:Dn,height:Dn,children:[new O({component:()=>ya()})]})})})))}))}}function ba(){return{container:(0,l.css)({minWidth:"350px",width:"-webkit-fill-available"})}}va(ha,"Component",(({model:e})=>{const{panel:t}=e.useState(),n=(0,u.useStyles2)(ba);if(t)return r().createElement("div",{className:n.container},r().createElement(t.Component,{model:t}))}));const ya=()=>{const e=(0,u.useStyles2)(wa);return r().createElement("div",{className:e.container},r().createElement("div",{className:e.title},r().createElement(j.A,{count:1,width:200})),r().createElement("div",{className:e.tracesContainer},[...Array(11)].map(((t,n)=>r().createElement("div",{className:e.row,key:n},r().createElement("div",{className:e.rowLeft},r().createElement(j.A,{count:1})),r().createElement("div",{className:e.rowRight},r().createElement(j.A,{count:1})))))))};function wa(e){return{container:(0,l.css)({border:`1px solid ${e.isDark?e.colors.border.medium:e.colors.border.weak}`,borderRadius:e.spacing(.5),marginBottom:e.spacing(4),width:"100%"}),title:(0,l.css)({color:e.colors.text.secondary,backgroundColor:e.colors.background.secondary,fontSize:"1.3rem",padding:`${e.spacing(1.5)} ${e.spacing(2)}`,textAlign:"center"}),tracesContainer:(0,l.css)({padding:`13px ${e.spacing(2)}`}),row:(0,l.css)({display:"flex",justifyContent:"space-between"}),rowLeft:(0,l.css)({margin:"7px 0",width:"150px"}),rowRight:(0,l.css)({width:"50px"})}}const Sa=()=>r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"73",height:"72",viewBox:"0 0 73 72",fill:"none"},r().createElement("path",{d:"M65.3 8.09993C65.3 7.49993 64.7 7.19993 64.1 6.89993C52.7 3.89993 40.4 7.79993 32.9 16.7999L29 21.2999L20.9 19.1999C17.6 17.9999 14.3 19.4999 12.8 22.4999L6.49999 33.5999C6.49999 33.5999 6.49999 33.8999 6.19999 33.8999C5.89999 34.7999 6.49999 35.3999 7.39999 35.6999L17.6 37.7999C16.7 40.4999 15.8 43.1999 15.5 45.8999C15.5 46.4999 15.5 46.7999 15.8 47.0999L24.8 55.7999C25.1 56.0999 25.4 56.0999 26 56.0999C28.7 55.7999 31.7 55.1999 34.4 54.2999L36.5 64.1999C36.5 64.7999 37.4 65.3999 38 65.3999C38.3 65.3999 38.6 65.3999 38.6 65.0999L49.7 58.7999C52.4 57.2999 53.6 53.9999 53 50.9999L50.9 42.2999L55.1 38.3999C64.4 31.4999 68.3 19.4999 65.3 8.09993ZM10.1 33.2999L15.2 23.9999C16.1 22.1999 17.9 21.5999 19.7 22.1999L26.6 23.9999L23.6 27.5999C21.8 29.9999 20 32.3999 18.8 35.0999L10.1 33.2999ZM48.5 56.9999L39.2 62.3999L37.4 53.6999C40.1 52.4999 42.5 50.6999 44.9 48.8999L48.8 45.2999L50.6 52.1999C50.6 53.9999 50 56.0999 48.5 56.9999ZM53.3 36.8999L42.8 46.4999C38.3 50.3999 32.6 52.7999 26.6 53.3999L18.8 45.5999C19.7 39.5999 22.1 33.8999 26 29.3999L30.8 23.9999L31.1 23.6999L35.3 18.8999C41.9 11.0999 52.7 7.49993 62.6 9.59993C64.7 19.7999 61.4 30.2999 53.3 36.8999ZM49.7 16.7999C46.4 16.7999 44 19.4999 44 22.4999C44 25.4999 46.7 28.1999 49.7 28.1999C53 28.1999 55.4 25.4999 55.4 22.4999C55.4 19.4999 53 16.7999 49.7 16.7999ZM49.7 25.4999C48.2 25.4999 47 24.2999 47 22.7999C47 21.2999 48.2 20.0999 49.7 20.0999C51.2 20.0999 52.4 21.2999 52.4 22.7999C52.4 24.2999 51.2 25.4999 49.7 25.4999Z",fill:"#24292E",fillOpacity:"0.75"})),xa=()=>r().createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"73",height:"72",viewBox:"0 0 73 72",fill:"none"},r().createElement("path",{d:"M65.3 8.09993C65.3 7.49993 64.7 7.19993 64.1 6.89993C52.7 3.89993 40.4 7.79993 32.9 16.7999L29 21.2999L20.9 19.1999C17.6 17.9999 14.3 19.4999 12.8 22.4999L6.49999 33.5999C6.49999 33.5999 6.49999 33.8999 6.19999 33.8999C5.89999 34.7999 6.49999 35.3999 7.39999 35.6999L17.6 37.7999C16.7 40.4999 15.8 43.1999 15.5 45.8999C15.5 46.4999 15.5 46.7999 15.8 47.0999L24.8 55.7999C25.1 56.0999 25.4 56.0999 26 56.0999C28.7 55.7999 31.7 55.1999 34.4 54.2999L36.5 64.1999C36.5 64.7999 37.4 65.3999 38 65.3999C38.3 65.3999 38.6 65.3999 38.6 65.0999L49.7 58.7999C52.4 57.2999 53.6 53.9999 53 50.9999L50.9 42.2999L55.1 38.3999C64.4 31.4999 68.3 19.4999 65.3 8.09993ZM10.1 33.2999L15.2 23.9999C16.1 22.1999 17.9 21.5999 19.7 22.1999L26.6 23.9999L23.6 27.5999C21.8 29.9999 20 32.3999 18.8 35.0999L10.1 33.2999ZM48.5 56.9999L39.2 62.3999L37.4 53.6999C40.1 52.4999 42.5 50.6999 44.9 48.8999L48.8 45.2999L50.6 52.1999C50.6 53.9999 50 56.0999 48.5 56.9999ZM53.3 36.8999L42.8 46.4999C38.3 50.3999 32.6 52.7999 26.6 53.3999L18.8 45.5999C19.7 39.5999 22.1 33.8999 26 29.3999L30.8 23.9999L31.1 23.6999L35.3 18.8999C41.9 11.0999 52.7 7.49993 62.6 9.59993C64.7 19.7999 61.4 30.2999 53.3 36.8999ZM49.7 16.7999C46.4 16.7999 44 19.4999 44 22.4999C44 25.4999 46.7 28.1999 49.7 28.1999C53 28.1999 55.4 25.4999 55.4 22.4999C55.4 19.4999 53 16.7999 49.7 16.7999ZM49.7 25.4999C48.2 25.4999 47 24.2999 47 22.7999C47 21.2999 48.2 20.0999 49.7 20.0999C51.2 20.0999 52.4 21.2999 52.4 22.7999C52.4 24.2999 51.2 25.4999 49.7 25.4999Z",fill:"#CCCCDC",fillOpacity:"0.65"}));var ja=n(1159);function Oa(e,t,n,a,r,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(a,r)}function Ea(e){return function(){var t=this,n=arguments;return new Promise((function(a,r){var i=e.apply(t,n);function s(e){Oa(i,a,r,s,o,"next",e)}function o(e){Oa(i,a,r,s,o,"throw",e)}s(void 0)}))}}function ka(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Ca=e=>(e.delete(d.$V),e.delete(`var-${d.pf}`),e.delete(`var-${d.xc}`),e),Pa=()=>{const e=(0,c.usePluginUserStorage)();return{getBookmarks:()=>Na(e),removeBookmark:t=>Aa(e,t),bookmarkExists:t=>$a(e,t),toggleBookmark:()=>Ta(e)}},_a=e=>{if(!e||!e.params)return d.D5;const t=new URLSearchParams(e.params),n=Object.fromEntries(t.entries()),a=t.getAll(`var-${d.Ao}`),r=s.urlUtil.renderUrl(d.D5,(i=function(e){for(var t=1;t!La(t,e)));yield Da(e,n)}));return function(t,n){return e.apply(this,arguments)}}(),$a=function(){var e=Ea((function*(e,t){return(yield Na(e)).some((e=>La(t,e)))}));return function(t,n){return e.apply(this,arguments)}}(),La=(e,t)=>{const n=Ca(new URLSearchParams(e.params)),a=Ca(new URLSearchParams(t.params)),r=`var-${d.Ao}`,i=Array.from(n.keys()).filter((e=>e!==r)),s=Array.from(a.keys()).filter((e=>e!==r));if(i.length!==s.length)return!1;const o=i.every((e=>a.has(e)&&n.get(e)===a.get(e)));if(!o)return!1;const l=n.getAll(r),c=a.getAll(r);return l.length===c.length&&l.every((e=>c.includes(e)))},Va=({bookmark:e})=>{let{actionView:t,primarySignal:n,metric:a,filters:i}=(e=>{if(!e||!e.params)return{actionView:"",primarySignal:"",filters:"",metric:""};const t=new URLSearchParams(e.params);var n,a,r;return{actionView:null!==(n=t.get(d.V2))&&void 0!==n?n:"",primarySignal:null!==(a=t.get(d.W5))&&void 0!==a?a:"",filters:t.getAll(`var-${d.Ao}`).join(d.x5),metric:null!==(r=t.get(`var-${d.PU}`))&&void 0!==r?r:""}})(e);const s=(0,u.useStyles2)(Ba);return i=((e,t)=>{const n=(e=>{const t=(e=>oe.find((t=>t.value===e)))(e);if(!t||!t.filter)return"";const n=t.filter;return n.key&&n.operator&&void 0!==n.value?`${n.key}|${n.operator}|${n.value}`:""})(t);let a=e.split(d.x5);return a=a.filter((e=>e!==n)),a.join(d.x5)})(i,n),i=i.replace(/\|=\|/g," = "),i=i.replace(d.$d,"").replace(d.zd,"").replace(d.X0,""),r().createElement("div",{title:i},r().createElement("div",null,r().createElement("b",null,fr(a))," of ",r().createElement("b",null,n.replace("_"," "))," (",t,")"),r().createElement("div",{className:s.filters},i))};function Ba(){return{filters:(0,l.css)({textOverflow:"ellipsis",overflow:"hidden",WebkitLineClamp:2,display:"-webkit-box",WebkitBoxOrient:"vertical"})}}function Ra(e,t,n,a,r,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(a,r)}function za(e){return function(){var t=this,n=arguments;return new Promise((function(a,r){var i=e.apply(t,n);function s(e){Ra(i,a,r,s,o,"next",e)}function o(e){Ra(i,a,r,s,o,"throw",e)}s(void 0)}))}}const Fa=()=>{const e=(0,u.useStyles2)(Ma),{getBookmarks:t,removeBookmark:n}=Pa(),[i,s]=(0,a.useState)([]),[o,l]=(0,a.useState)(!0),[d,m]=(0,a.useState)(!1);(0,a.useEffect)((()=>{!function(){var e=za((function*(){l(!0);try{const e=yield t();s(e)}catch(e){console.error("Error loading bookmarks:",e),s([])}finally{l(!1)}}));return function(){return e.apply(this,arguments)}}()()}),[]);const p=function(){var e=za((function*(e,a){a.stopPropagation(),m(!0);try{yield n(e);const a=yield t();s(a)}catch(e){console.error("Error removing bookmark:",e)}finally{m(!1)}}));return function(t,n){return e.apply(this,arguments)}}();return o?r().createElement("div",null,r().createElement("div",{className:e.header},r().createElement("h4",null,"Or view bookmarks")),r().createElement("div",{className:e.loading},r().createElement(u.LoadingPlaceholder,{text:"Loading bookmarks..."}))):r().createElement("div",null,r().createElement("div",{className:e.header},r().createElement("h4",null,"Or view bookmarks")),0===i.length?r().createElement("p",{className:e.noBookmarks},"Bookmark your favorite queries to view them here."):r().createElement("div",{className:e.bookmarks},i.map(((t,n)=>r().createElement("div",{className:e.bookmark,key:n,onClick:()=>(e=>{te(ne.home,ae.home.go_to_bookmark_clicked);const t=_a(e);c.locationService.push(t)})(t)},r().createElement("div",{className:e.bookmarkItem},r().createElement(Va,{bookmark:t})),r().createElement("div",{className:e.remove},r().createElement(u.Button,{variant:"secondary",fill:"text",icon:"trash-alt",disabled:d,onClick:e=>p(t,e)})))))))};function Ma(e){return{header:(0,l.css)({textAlign:"center",h4:{margin:0}}),bookmarks:(0,l.css)({display:"flex",flexWrap:"wrap",gap:e.spacing(2),margin:`${e.spacing(4)} 0 ${e.spacing(2)} 0`,justifyContent:"center"}),bookmark:(0,l.css)({display:"flex",flexDirection:"column",justifyContent:"space-between",cursor:"pointer",width:"318px",border:`1px solid ${e.colors.border.medium}`,borderRadius:e.shape.radius.default,"&:hover":{backgroundColor:e.isDark?e.colors.background.secondary:e.colors.background.primary}}),bookmarkItem:(0,l.css)({padding:`${e.spacing(1.5)} ${e.spacing(1.5)} 0 ${e.spacing(1.5)}`,overflow:"hidden"}),filters:(0,l.css)({textOverflow:"ellipsis",overflow:"hidden",WebkitLineClamp:2,display:"-webkit-box",WebkitBoxOrient:"vertical"}),remove:(0,l.css)({display:"flex",justifyContent:"flex-end"}),noBookmarks:(0,l.css)({margin:`${e.spacing(4)} 0 ${e.spacing(2)} 0`,textAlign:"center"}),loading:(0,l.css)({display:"flex",justifyContent:"center",margin:`${e.spacing(4)} 0`})}}class qa extends o.Bs{}function Ha(e){return{container:(0,l.css)({display:"flex",gap:e.spacing(7),flexDirection:"column",margin:`0 0 ${e.spacing(4)} 0`,justifyContent:"center"}),header:(0,l.css)({display:"flex",alignItems:"center",backgroundColor:e.isDark?e.colors.background.secondary:e.colors.background.primary,borderRadius:e.spacing(.5),flexWrap:"wrap",justifyContent:"center",padding:e.spacing(3),gap:e.spacing(4)}),headerTitleContainer:(0,l.css)({display:"flex",alignItems:"center"}),title:(0,l.css)({margin:`0 0 0 ${e.spacing(2)}`}),headerActions:(0,l.css)({alignItems:"center",justifyContent:"flex-start",display:"flex",gap:e.spacing(2)}),documentationLink:(0,l.css)({textDecoration:"underline","&:hover":{textDecoration:"underline"}}),subHeader:(0,l.css)({textAlign:"center",h4:{margin:`0 0 -${e.spacing(2)} 0`}}),label:(0,l.css)({fontSize:"12px"}),variablesAndControls:(0,l.css)({alignItems:"center",gap:e.spacing(2),display:"flex",justifyContent:"space-between",width:"100%"}),variables:(0,l.css)({display:"flex",gap:e.spacing(2)}),controls:(0,l.css)({display:"flex",gap:e.spacing(1)})}}function Wa(e,t,n,a,r,i,s){try{var o=e[i](s),l=o.value}catch(e){return void n(e)}o.done?t(l):Promise.resolve(l).then(a,r)}function Ua(e){return Ga.apply(this,arguments)}function Ga(){var e;return e=function*(e){const t=o.jh.interpolate(e,d.gR),n=yield(0,c.getDataSourceSrv)().get(t);if(!(n instanceof c.DataSourceWithBackend))throw console.error(new Error("getTagKeysProvider: invalid datasource!")),new Error("getTagKeysProvider: invalid datasource!");const a=n;if(a&&a.getTagKeys){const e=yield a.getTagKeys();return Array.isArray(e)?{replace:!0,values:(r=e,[...r.filter((e=>{var t;return null===(t=e.text)||void 0===t?void 0:t.includes(d.$d)})),...r.filter((e=>{var t;return null===(t=e.text)||void 0===t?void 0:t.includes(d.zd)})),...r.filter((e=>{var t,n,a,r;return!((null===(t=e.text)||void 0===t?void 0:t.includes(d.$d))||(null===(n=e.text)||void 0===n?void 0:n.includes(d.zd))||(null===(a=e.text)||void 0===a?void 0:a.includes(d.X0))||(null===(r=e.text)||void 0===r?void 0:r.includes(d.ZV))||-1!==d.uK.concat(d.ZM).indexOf(e.text))}))])}:(console.error(new Error("getTagKeysProvider: invalid tagKeys!")),{values:[]})}var r;return console.error(new Error("getTagKeysProvider: missing or invalid datasource!")),{values:[]}},Ga=function(){var t=this,n=arguments;return new Promise((function(a,r){var i=e.apply(t,n);function s(e){Wa(i,a,r,s,o,"next",e)}function o(e){Wa(i,a,r,s,o,"throw",e)}s(void 0)}))},Ga.apply(this,arguments)}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(qa,"Component",(({model:e})=>{const t=function(e){return o.jh.getAncestor(e,Qa)}(e),n=(0,ja.useNavigate)(),{controls:a}=t.useState(),i=(0,u.useStyles2)(Ha),s=(0,u.useTheme2)(),l=cr(t),c=lr(t);return r().createElement("div",{className:i.container},r().createElement("div",{className:i.header},r().createElement("div",{className:i.headerTitleContainer},s.isDark?r().createElement(xa,null):r().createElement(Sa,null),r().createElement("h2",{className:i.title},"Start your traces exploration!")),r().createElement("div",null,r().createElement("p",null,"Drilldown and visualize your trace data without writing a query."),r().createElement("div",{className:i.headerActions},r().createElement(u.Button,{variant:"primary",onClick:()=>{te(ne.home,ae.home.explore_traces_clicked),n(d.D5)}},"Let’s start",r().createElement(u.Icon,{name:"arrow-right",size:"lg"})),r().createElement(u.LinkButton,{icon:"external-link-alt",fill:"text",size:"md",target:"_blank",href:"https://grafana.com/docs/grafana-cloud/visualizations/simplified-exploration/traces",className:i.documentationLink,onClick:()=>te(ne.home,ae.home.read_documentation_clicked)},"Read documentation")))),r().createElement(Fa,null),r().createElement("div",{className:i.subHeader},r().createElement("h4",null,"Or quick-start into your tracing data")),r().createElement(u.Stack,{gap:2},r().createElement("div",{className:i.variablesAndControls},r().createElement("div",{className:i.variables},l&&r().createElement(u.Stack,{gap:1,alignItems:"center"},r().createElement("div",{className:i.label},"Data source"),r().createElement(l.Component,{model:l})),c&&r().createElement(u.Stack,{gap:1,alignItems:"center"},r().createElement("div",{className:i.label},"Filter"),r().createElement(c.Component,{model:c}))),r().createElement("div",{className:i.controls},null==a?void 0:a.map((e=>r().createElement(e.Component,{key:e.state.key,model:e})))))))}));function Ka(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class Qa extends o.Bs{_onActivate(){const e=o.jh.getTimeRange(this),t=lr(this);t.setState({getTagKeysProvider:Ua}),cr(this).subscribeToState((e=>{e.value&&localStorage.setItem(d.cd,e.value.toString())})),lr(this).subscribeToState(((t,n)=>{if(t.filters!==n.filters){this.buildPanels(e,t.filters),localStorage.setItem(d.$U,JSON.stringify(t.filters));const a=t.filters.filter((e=>!n.filters.find((t=>t.key===e.key))));a.length>0&&te(ne.home,ae.home.filter_changed,{key:a[0].key})}})),e.subscribeToState(((n,a)=>{n.value.from===a.value.from&&n.value.to===a.value.to||this.buildPanels(e,t.state.filters)})),this.buildPanels(e,t.state.filters)}buildPanels(e,t){const n=e.state.value.from.unix(),a=e.state.value.to.unix(),r=`${(0,Jt.duration)(a-n,"s").asSeconds()}s`,i=function(e){const t=e.filter((e=>e.key&&e.operator&&e.value)).map((e=>(e=>{if(!e)return"";let t=e.value;return null==t||""===t?"":(mr.test(t)||["kind"].includes(e.key)||"string"!=typeof t||t.startsWith('"')||t.endsWith('"')||(t=`"${t}"`),`${e.key}${e.operator}${t}`)})(e))).join(d.x5);return t.length?`&& ${t}`:""}(t);this.setState({body:new o.gF({children:[new o.gF({autoRows:"min-content",columnGap:2,rowGap:2,children:[new o.xK({body:new ha({query:{query:`{nestedSetParent < 0 && status = error ${i}} | count_over_time() by (resource.service.name)`,step:r},title:"Errored services",type:"errored-services"})}),new o.xK({body:new ha({query:{query:`{nestedSetParent < 0 ${i}} | quantile_over_time(duration, 0.9) by (resource.service.name)`,step:r},title:"Slow services",type:"slowest-services"})}),new o.xK({body:new ha({query:{query:`{nestedSetParent<0 ${i}} | histogram_over_time(duration)`},title:"Slow traces",type:"slowest-traces",filter:i})})]})]})})}constructor(e){var t,n,a,r,i;super(function(e){for(var t=1;t({label:e,value:e})))}function nr(e,t){var n;const a=null===(n=e.fields.find((e=>"number"===e.type)))||void 0===n?void 0:n.labels;if(!a)return"No labels";const r=Object.keys(a).filter((e=>"p"!==e));return 0===r.length?"No labels":a[t||r[0]].replace(/"/g,"")}function ar(e){const t=o.jh.lookupVariable(d.z,e);if(!(t instanceof o.yP))throw new Error("Group by variable not found");return t}function rr(e){const t=o.jh.lookupVariable(d.gP,e);if(!(t instanceof o.yP))throw new Error("Span list columns variable not found");return t}function ir(e){const t=o.jh.lookupVariable(d.PU,e);if(!(t instanceof o.yP))throw new Error("Metric variable not found");return t}function sr(e){const t=o.jh.lookupVariable(d.Ao,e);if(!(t instanceof o.H9))throw new Error("Filters variable not found");return t}function or(e){const t=o.jh.lookupVariable(d.CE,e);if(!(t instanceof qn))throw new Error("Primary signal variable not found");return t}function lr(e){const t=o.jh.lookupVariable(d.zM,e);if(!(t instanceof o.H9))throw new Error("Home filter variable not found");return t}function cr(e){const t=o.jh.lookupVariable(d.EY,e);if(!(t instanceof o.mI))throw new Error("Datasource variable not found");return t}function ur(e){return"comparison"===e||"traceList"===e}function dr(e){var t,n,a;return null!==(a=null==e||null===(n=e.data)||void 0===n||null===(t=n.series[0].fields)||void 0===t?void 0:t.some((e=>e.values.every((e=>void 0===e)))))&&void 0!==a&&a}Ka(Qa,"Component",(({model:e})=>{const{body:t}=e.useState(),n=(0,u.useStyles2)(Za);return r().createElement("div",{className:n.container},r().createElement(qa.Component,{model:e}),t&&r().createElement(t.Component,{model:t}))}));const mr=/^-?\d+\.?\d*$/,pr=e=>mr.test(e)||"string"!=typeof e||e.startsWith('"')||e.endsWith('"')?e:`"${e}"`,fr=e=>{var t;return(null==e||null===(t=e[0])||void 0===t?void 0:t.toUpperCase())+(null==e?void 0:e.slice(1))||""},vr=e=>(t,n)=>{e.publishEvent(new d.vR({traceId:t,spanId:n}),!0)},gr=()=>{var e;const t=null!==(e=null===c.useSidecar_EXPERIMENTAL||void 0===c.useSidecar_EXPERIMENTAL?void 0:(0,c.useSidecar_EXPERIMENTAL)())&&void 0!==e?e:{},n=localStorage.getItem(d.cd)||"",[i]=(0,a.useState)((s=n,l=function(e){const t=yr.safeParse(e);if(t.success)return t.data.filters}(t.initialContext),new Xn({initialDS:s,initialFilters:null!=l?l:[],$timeRange:new o.JZ({from:"now-30m",to:"now"})})));var s,l;return r().createElement(hr,{exploration:i})};function hr({exploration:e}){const[t,n]=r().useState(!1);return(0,a.useEffect)((()=>{t||(n(!0),te(ne.common,ae.common.app_initialized))}),[e,t]),t?r().createElement(o.$L,{scene:e,updateUrlOnInit:!0,createBrowserHistorySteps:!0},r().createElement(e.Component,{model:e})):null}const br=i.Ay.object({key:i.Ay.string(),operator:i.Ay.string(),value:i.Ay.string()}),yr=i.Ay.object({filters:i.Ay.array(br)})}}]); -//# sourceMappingURL=389.js.map \ No newline at end of file diff --git a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/389.js.map b/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/389.js.map deleted file mode 100644 index 97ba2eb..0000000 --- a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/389.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"389.js","mappings":"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","sources":["webpack://grafana-exploretraces-app/../node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://grafana-exploretraces-app/./components/states/EmptyState/useMousePosition.ts","webpack://grafana-exploretraces-app/./components/states/EmptyState/GrotNotFound.tsx","webpack://grafana-exploretraces-app/./components/states/EmptyState/EmptyState.tsx","webpack://grafana-exploretraces-app/./utils/testIds.ts","webpack://grafana-exploretraces-app/./components/states/EmptyState/EmptyStateScene.tsx","webpack://grafana-exploretraces-app/./components/states/LoadingState/LoadingStateScene.tsx","webpack://grafana-exploretraces-app/./components/states/ErrorState/ErrorStateScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/Search.tsx","webpack://grafana-exploretraces-app/./components/Explore/ByFrameRepeater.tsx","webpack://grafana-exploretraces-app/./utils/frames.ts","webpack://grafana-exploretraces-app/./components/Explore/panels/barsPanel.ts","webpack://grafana-exploretraces-app/./components/Explore/queries/generateMetricsQuery.ts","webpack://grafana-exploretraces-app/./utils/dates.ts","webpack://grafana-exploretraces-app/./components/Explore/queries/StepQueryRunner.ts","webpack://grafana-exploretraces-app/./components/Explore/StreamingIndicator.tsx","webpack://grafana-exploretraces-app/./utils/analytics.ts","webpack://grafana-exploretraces-app/./components/Explore/panels/histogram.ts","webpack://grafana-exploretraces-app/./pages/Explore/primary-signals.ts","webpack://grafana-exploretraces-app/./components/Explore/actions/AddToFiltersAction.tsx","webpack://grafana-exploretraces-app/./utils/comparison.ts","webpack://grafana-exploretraces-app/./components/Explore/layouts/HighestDifferencePanel.tsx","webpack://grafana-exploretraces-app/./components/Explore/layouts/allComparison.ts","webpack://grafana-exploretraces-app/./components/Explore/queries/histogram.ts","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/DurationComparisonControl.tsx","webpack://grafana-exploretraces-app/./utils/utils.ts","webpack://grafana-exploretraces-app/./utils/exemplars.ts","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/REDPanel.tsx","webpack://grafana-exploretraces-app/./components/Explore/actions/ShareExplorationAction.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Spans/SpanListColumnsSelector.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Spans/SpanListScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Spans/SpansScene.tsx","webpack://grafana-exploretraces-app/./utils/trace-merge/utils.ts","webpack://grafana-exploretraces-app/./utils/trace-merge/tree-node.ts","webpack://grafana-exploretraces-app/./utils/trace-merge/merge.ts","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Structure/StructureScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/GroupBySelector.tsx","webpack://grafana-exploretraces-app/./components/Explore/LayoutSwitcher.tsx","webpack://grafana-exploretraces-app/./components/Explore/panels/linesPanel.ts","webpack://grafana-exploretraces-app/./components/Explore/actions/AddToInvestigationButton.tsx","webpack://grafana-exploretraces-app/./components/Explore/panels/PanelMenu.tsx","webpack://grafana-exploretraces-app/./components/Explore/layouts/attributeBreakdown.ts","webpack://grafana-exploretraces-app/./components/Explore/behaviors/syncYaxis.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Breakdown/AttributesDescription.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Breakdown/AttributesBreakdownScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Breakdown/BreakdownScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/queries/comparisonQuery.ts","webpack://grafana-exploretraces-app/./components/Explore/layouts/attributeComparison.ts","webpack://grafana-exploretraces-app/./components/Explore/actions/InspectAttributeAction.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Comparison/AttributesComparisonScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/Comparison/ComparisonScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/Tabs/TabsBarScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/MiniREDPanel.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/TracesByServiceScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/panels/TraceViewPanelScene.tsx","webpack://grafana-exploretraces-app/./components/Explore/TracesByService/TraceDrawerScene.tsx","webpack://grafana-exploretraces-app/./pages/Explore/PrimarySignalVariable.tsx","webpack://grafana-exploretraces-app/./utils/filters-renderer.ts","webpack://grafana-exploretraces-app/./components/Explore/TraceQLIssueDetector.tsx","webpack://grafana-exploretraces-app/./pages/Explore/TraceExploration.tsx","webpack://grafana-exploretraces-app/./components/Home/AttributePanelRow.tsx","webpack://grafana-exploretraces-app/./components/Home/ErroredServicesRows.tsx","webpack://grafana-exploretraces-app/./components/Home/SlowestTracesRows.tsx","webpack://grafana-exploretraces-app/./components/Home/SlowestServicesRows.tsx","webpack://grafana-exploretraces-app/./components/Home/AttributePanelRows.tsx","webpack://grafana-exploretraces-app/./components/Home/AttributePanelScene.tsx","webpack://grafana-exploretraces-app/./components/Home/AttributePanel.tsx","webpack://grafana-exploretraces-app/./utils/rockets.tsx","webpack://grafana-exploretraces-app/./pages/Home/bookmarks/utils.ts","webpack://grafana-exploretraces-app/./pages/Home/bookmarks/BookmarkItem.tsx","webpack://grafana-exploretraces-app/./pages/Home/bookmarks/Bookmarks.tsx","webpack://grafana-exploretraces-app/./components/Home/HeaderScene.tsx","webpack://grafana-exploretraces-app/./pages/Home/utils.ts","webpack://grafana-exploretraces-app/./pages/Home/Home.tsx","webpack://grafana-exploretraces-app/./pages/Explore/TraceExplorationPage.tsx"],"sourcesContent":["var map = {\n\t\"./af\": 9805,\n\t\"./af.js\": 9805,\n\t\"./ar\": 4449,\n\t\"./ar-dz\": 4468,\n\t\"./ar-dz.js\": 4468,\n\t\"./ar-kw\": 3480,\n\t\"./ar-kw.js\": 3480,\n\t\"./ar-ly\": 4197,\n\t\"./ar-ly.js\": 4197,\n\t\"./ar-ma\": 2180,\n\t\"./ar-ma.js\": 2180,\n\t\"./ar-ps\": 9343,\n\t\"./ar-ps.js\": 9343,\n\t\"./ar-sa\": 230,\n\t\"./ar-sa.js\": 230,\n\t\"./ar-tn\": 2808,\n\t\"./ar-tn.js\": 2808,\n\t\"./ar.js\": 4449,\n\t\"./az\": 5865,\n\t\"./az.js\": 5865,\n\t\"./be\": 6627,\n\t\"./be.js\": 6627,\n\t\"./bg\": 901,\n\t\"./bg.js\": 901,\n\t\"./bm\": 3179,\n\t\"./bm.js\": 3179,\n\t\"./bn\": 1966,\n\t\"./bn-bd\": 969,\n\t\"./bn-bd.js\": 969,\n\t\"./bn.js\": 1966,\n\t\"./bo\": 6317,\n\t\"./bo.js\": 6317,\n\t\"./br\": 6474,\n\t\"./br.js\": 6474,\n\t\"./bs\": 5961,\n\t\"./bs.js\": 5961,\n\t\"./ca\": 7270,\n\t\"./ca.js\": 7270,\n\t\"./cs\": 1564,\n\t\"./cs.js\": 1564,\n\t\"./cv\": 3239,\n\t\"./cv.js\": 3239,\n\t\"./cy\": 2366,\n\t\"./cy.js\": 2366,\n\t\"./da\": 2453,\n\t\"./da.js\": 2453,\n\t\"./de\": 6601,\n\t\"./de-at\": 5027,\n\t\"./de-at.js\": 5027,\n\t\"./de-ch\": 8101,\n\t\"./de-ch.js\": 8101,\n\t\"./de.js\": 6601,\n\t\"./dv\": 6080,\n\t\"./dv.js\": 6080,\n\t\"./el\": 2655,\n\t\"./el.js\": 2655,\n\t\"./en-au\": 6836,\n\t\"./en-au.js\": 6836,\n\t\"./en-ca\": 2086,\n\t\"./en-ca.js\": 2086,\n\t\"./en-gb\": 2103,\n\t\"./en-gb.js\": 2103,\n\t\"./en-ie\": 5964,\n\t\"./en-ie.js\": 5964,\n\t\"./en-il\": 4379,\n\t\"./en-il.js\": 4379,\n\t\"./en-in\": 765,\n\t\"./en-in.js\": 765,\n\t\"./en-nz\": 1502,\n\t\"./en-nz.js\": 1502,\n\t\"./en-sg\": 1152,\n\t\"./en-sg.js\": 1152,\n\t\"./eo\": 50,\n\t\"./eo.js\": 50,\n\t\"./es\": 3350,\n\t\"./es-do\": 9338,\n\t\"./es-do.js\": 9338,\n\t\"./es-mx\": 1326,\n\t\"./es-mx.js\": 1326,\n\t\"./es-us\": 9947,\n\t\"./es-us.js\": 9947,\n\t\"./es.js\": 3350,\n\t\"./et\": 8231,\n\t\"./et.js\": 8231,\n\t\"./eu\": 8512,\n\t\"./eu.js\": 8512,\n\t\"./fa\": 9083,\n\t\"./fa.js\": 9083,\n\t\"./fi\": 5059,\n\t\"./fi.js\": 5059,\n\t\"./fil\": 2607,\n\t\"./fil.js\": 2607,\n\t\"./fo\": 3369,\n\t\"./fo.js\": 3369,\n\t\"./fr\": 7390,\n\t\"./fr-ca\": 6711,\n\t\"./fr-ca.js\": 6711,\n\t\"./fr-ch\": 6152,\n\t\"./fr-ch.js\": 6152,\n\t\"./fr.js\": 7390,\n\t\"./fy\": 2419,\n\t\"./fy.js\": 2419,\n\t\"./ga\": 3002,\n\t\"./ga.js\": 3002,\n\t\"./gd\": 4914,\n\t\"./gd.js\": 4914,\n\t\"./gl\": 6557,\n\t\"./gl.js\": 6557,\n\t\"./gom-deva\": 8944,\n\t\"./gom-deva.js\": 8944,\n\t\"./gom-latn\": 5387,\n\t\"./gom-latn.js\": 5387,\n\t\"./gu\": 7462,\n\t\"./gu.js\": 7462,\n\t\"./he\": 9237,\n\t\"./he.js\": 9237,\n\t\"./hi\": 9617,\n\t\"./hi.js\": 9617,\n\t\"./hr\": 6544,\n\t\"./hr.js\": 6544,\n\t\"./hu\": 341,\n\t\"./hu.js\": 341,\n\t\"./hy-am\": 1388,\n\t\"./hy-am.js\": 1388,\n\t\"./id\": 5251,\n\t\"./id.js\": 5251,\n\t\"./is\": 1146,\n\t\"./is.js\": 1146,\n\t\"./it\": 7891,\n\t\"./it-ch\": 7,\n\t\"./it-ch.js\": 7,\n\t\"./it.js\": 7891,\n\t\"./ja\": 3727,\n\t\"./ja.js\": 3727,\n\t\"./jv\": 5198,\n\t\"./jv.js\": 5198,\n\t\"./ka\": 8974,\n\t\"./ka.js\": 8974,\n\t\"./kk\": 7308,\n\t\"./kk.js\": 7308,\n\t\"./km\": 7786,\n\t\"./km.js\": 7786,\n\t\"./kn\": 4807,\n\t\"./kn.js\": 4807,\n\t\"./ko\": 1584,\n\t\"./ko.js\": 1584,\n\t\"./ku\": 1906,\n\t\"./ku-kmr\": 5305,\n\t\"./ku-kmr.js\": 5305,\n\t\"./ku.js\": 1906,\n\t\"./ky\": 9190,\n\t\"./ky.js\": 9190,\n\t\"./lb\": 7396,\n\t\"./lb.js\": 7396,\n\t\"./lo\": 8503,\n\t\"./lo.js\": 8503,\n\t\"./lt\": 3010,\n\t\"./lt.js\": 3010,\n\t\"./lv\": 5192,\n\t\"./lv.js\": 5192,\n\t\"./me\": 1944,\n\t\"./me.js\": 1944,\n\t\"./mi\": 6492,\n\t\"./mi.js\": 6492,\n\t\"./mk\": 2934,\n\t\"./mk.js\": 2934,\n\t\"./ml\": 1463,\n\t\"./ml.js\": 1463,\n\t\"./mn\": 8377,\n\t\"./mn.js\": 8377,\n\t\"./mr\": 8733,\n\t\"./mr.js\": 8733,\n\t\"./ms\": 8030,\n\t\"./ms-my\": 9445,\n\t\"./ms-my.js\": 9445,\n\t\"./ms.js\": 8030,\n\t\"./mt\": 5887,\n\t\"./mt.js\": 5887,\n\t\"./my\": 7228,\n\t\"./my.js\": 7228,\n\t\"./nb\": 8294,\n\t\"./nb.js\": 8294,\n\t\"./ne\": 9559,\n\t\"./ne.js\": 9559,\n\t\"./nl\": 600,\n\t\"./nl-be\": 8796,\n\t\"./nl-be.js\": 8796,\n\t\"./nl.js\": 600,\n\t\"./nn\": 9570,\n\t\"./nn.js\": 9570,\n\t\"./oc-lnc\": 5662,\n\t\"./oc-lnc.js\": 5662,\n\t\"./pa-in\": 7101,\n\t\"./pa-in.js\": 7101,\n\t\"./pl\": 6118,\n\t\"./pl.js\": 6118,\n\t\"./pt\": 9198,\n\t\"./pt-br\": 7203,\n\t\"./pt-br.js\": 7203,\n\t\"./pt.js\": 9198,\n\t\"./ro\": 5565,\n\t\"./ro.js\": 5565,\n\t\"./ru\": 3315,\n\t\"./ru.js\": 3315,\n\t\"./sd\": 8473,\n\t\"./sd.js\": 8473,\n\t\"./se\": 1258,\n\t\"./se.js\": 1258,\n\t\"./si\": 8798,\n\t\"./si.js\": 8798,\n\t\"./sk\": 6404,\n\t\"./sk.js\": 6404,\n\t\"./sl\": 7057,\n\t\"./sl.js\": 7057,\n\t\"./sq\": 5718,\n\t\"./sq.js\": 5718,\n\t\"./sr\": 5363,\n\t\"./sr-cyrl\": 478,\n\t\"./sr-cyrl.js\": 478,\n\t\"./sr.js\": 5363,\n\t\"./ss\": 7260,\n\t\"./ss.js\": 7260,\n\t\"./sv\": 2231,\n\t\"./sv.js\": 2231,\n\t\"./sw\": 7104,\n\t\"./sw.js\": 7104,\n\t\"./ta\": 7493,\n\t\"./ta.js\": 7493,\n\t\"./te\": 7705,\n\t\"./te.js\": 7705,\n\t\"./tet\": 4457,\n\t\"./tet.js\": 4457,\n\t\"./tg\": 2727,\n\t\"./tg.js\": 2727,\n\t\"./th\": 2206,\n\t\"./th.js\": 2206,\n\t\"./tk\": 3419,\n\t\"./tk.js\": 3419,\n\t\"./tl-ph\": 7243,\n\t\"./tl-ph.js\": 7243,\n\t\"./tlh\": 16,\n\t\"./tlh.js\": 16,\n\t\"./tr\": 7020,\n\t\"./tr.js\": 7020,\n\t\"./tzl\": 8026,\n\t\"./tzl.js\": 8026,\n\t\"./tzm\": 8537,\n\t\"./tzm-latn\": 7899,\n\t\"./tzm-latn.js\": 7899,\n\t\"./tzm.js\": 8537,\n\t\"./ug-cn\": 818,\n\t\"./ug-cn.js\": 818,\n\t\"./uk\": 8478,\n\t\"./uk.js\": 8478,\n\t\"./ur\": 7893,\n\t\"./ur.js\": 7893,\n\t\"./uz\": 9133,\n\t\"./uz-latn\": 311,\n\t\"./uz-latn.js\": 311,\n\t\"./uz.js\": 9133,\n\t\"./vi\": 2179,\n\t\"./vi.js\": 2179,\n\t\"./x-pseudo\": 2455,\n\t\"./x-pseudo.js\": 2455,\n\t\"./yo\": 3310,\n\t\"./yo.js\": 3310,\n\t\"./zh-cn\": 7244,\n\t\"./zh-cn.js\": 7244,\n\t\"./zh-hk\": 76,\n\t\"./zh-hk.js\": 76,\n\t\"./zh-mo\": 2305,\n\t\"./zh-mo.js\": 2305,\n\t\"./zh-tw\": 8588,\n\t\"./zh-tw.js\": 8588\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1738;","import { throttle } from 'lodash';\nimport { useState, useEffect } from 'react';\n\ninterface MousePosition {\n x: number | null;\n y: number | null;\n}\n\n// For performance reasons, we throttle the mouse position updates\nconst DEFAULT_THROTTLE_INTERVAL_MS = 50;\n\nconst useMousePosition = (throttleInterval = DEFAULT_THROTTLE_INTERVAL_MS) => {\n const [mousePosition, setMousePosition] = useState({ x: null, y: null });\n\n useEffect(() => {\n const updateMousePosition = throttle((event: MouseEvent) => {\n setMousePosition({ x: event.clientX, y: event.clientY });\n }, throttleInterval);\n window.addEventListener('mousemove', updateMousePosition);\n\n return () => {\n window.removeEventListener('mousemove', updateMousePosition);\n };\n }, [throttleInterval]);\n\n return mousePosition;\n};\n\nexport default useMousePosition;\n","import { css } from '@emotion/css';\nimport React, { SVGProps } from 'react';\nimport SVG from 'react-inlinesvg';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2, useTheme2 } from '@grafana/ui';\n\nimport dark404 from './img/grot-404-dark.svg';\nimport light404 from './img/grot-404-light.svg';\n\nimport useMousePosition from './useMousePosition';\n\nconst MIN_ARM_ROTATION = -20;\nconst MAX_ARM_ROTATION = 5;\nconst MIN_ARM_TRANSLATION = -5;\nconst MAX_ARM_TRANSLATION = 5;\n\nexport interface Props {\n width?: SVGProps['width'];\n height?: SVGProps['height'];\n show404?: boolean;\n}\n\nexport const GrotNotFound = ({ width = 'auto', height, show404 = false }: Props) => {\n const theme = useTheme2();\n const { x, y } = useMousePosition();\n const styles = useStyles2(getStyles, x, y, show404);\n return ;\n};\n\nGrotNotFound.displayName = 'GrotNotFound';\n\nconst getStyles = (theme: GrafanaTheme2, xPos: number | null, yPos: number | null, show404: boolean) => {\n const { innerWidth, innerHeight } = window;\n const heightRatio = yPos && yPos / innerHeight;\n const widthRatio = xPos && xPos / innerWidth;\n const rotation = heightRatio !== null ? getIntermediateValue(heightRatio, MIN_ARM_ROTATION, MAX_ARM_ROTATION) : 0;\n const translation =\n widthRatio !== null ? getIntermediateValue(widthRatio, MIN_ARM_TRANSLATION, MAX_ARM_TRANSLATION) : 0;\n\n return {\n svg: css({\n '#grot-404-arm, #grot-404-magnifier': {\n transform: `rotate(${rotation}deg) translateX(${translation}%)`,\n transformOrigin: 'center',\n transition: 'transform 50ms linear',\n },\n '#grot-404-text': {\n display: show404 ? 'block' : 'none',\n },\n }),\n };\n};\n\n/**\n * Given a start value, end value, and a ratio, return the intermediate value\n * Works with negative and inverted start/end values\n */\nconst getIntermediateValue = (ratio: number, start: number, end: number) => {\n const value = ratio * (end - start) + start;\n return value;\n};\n","import React from 'react';\n\nimport { Icon, Stack, Text, useStyles2 } from '@grafana/ui';\nimport { GrafanaTheme2 } from '@grafana/data';\n\nimport { GrotNotFound } from './GrotNotFound';\nimport { css } from '@emotion/css';\nimport { testIds } from 'utils/testIds';\n\nexport interface Props {\n message?: string | React.ReactNode;\n remedyMessage?: string;\n imgWidth?: number;\n padding?: string;\n}\n\nexport const EmptyState = ({ message, remedyMessage, imgWidth, padding }: Props) => {\n const styles = useStyles2(getStyles, padding);\n\n return (\n
\n \n \n {typeof message === 'string' && {message}}\n {typeof message !== 'string' && message}\n\n {remedyMessage && (\n
\n \n \n \n {remedyMessage}\n \n \n
\n )}\n
\n
\n );\n};\n\nEmptyState.displayName = 'EmptyState';\n\nfunction getStyles(theme: GrafanaTheme2, padding?: string) {\n return {\n container: css({\n width: '100%',\n display: 'flex',\n justifyContent: 'space-evenly',\n flexDirection: 'column',\n padding: padding ? padding : 0,\n }),\n remedy: css({\n marginBottom: theme.spacing(4),\n })\n };\n}\n","export const testIds = {\n emptyState: 'data-testid empty-state',\n errorState: 'data-testid error-state',\n loadingState: 'data-testid loading-state',\n};\n","import { SceneObjectState, SceneObjectBase, SceneComponentProps } from '@grafana/scenes';\nimport React from 'react';\nimport { EmptyState } from './EmptyState';\n\ninterface EmptyStateSceneState extends SceneObjectState {\n message?: string;\n remedyMessage?: string;\n imgWidth?: number;\n padding?: string;\n}\n\nexport class EmptyStateScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const { message, remedyMessage, imgWidth, padding } = model.useState();\n return ;\n };\n}\n","import { css, keyframes } from '@emotion/css';\nimport { SceneObjectState, SceneObjectBase, SceneComponentProps } from '@grafana/scenes';\nimport { useStyles2, useTheme2 } from '@grafana/ui';\nimport React from 'react';\nimport { SkeletonTheme } from 'react-loading-skeleton';\nimport { testIds } from 'utils/testIds';\n\ninterface LoadingStateSceneState extends SceneObjectState {\n component: () => React.JSX.Element;\n}\n\nexport class LoadingStateScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const theme = useTheme2();\n const styles = useStyles2(getStyles);\n const { component } = model.useState();\n\n return (\n
\n \n {component()}\n \n
\n );\n };\n}\n\nconst fadeIn = keyframes({\n '0%': {\n opacity: 0,\n },\n '100%': {\n opacity: 1,\n },\n});\n\nfunction getStyles() {\n return {\n container: css({\n label: 'loading-state-scene',\n // animation prevents flickering when loading\n animationName: fadeIn,\n animationDelay: '100ms',\n animationTimingFunction: 'ease-in',\n animationDuration: '100ms',\n animationFillMode: 'backwards',\n }),\n };\n}\n","import { SceneObjectState, SceneObjectBase, SceneComponentProps } from '@grafana/scenes';\nimport React from 'react';\nimport { Alert } from '@grafana/ui';\nimport { testIds } from 'utils/testIds';\n\ninterface ErrorStateSceneState extends SceneObjectState {\n message: string;\n}\n\nexport class ErrorStateScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const { message } = model.useState();\n return (\n \n {message}\n \n );\n };\n}\n","import { Field, Input, Icon, useStyles2 } from \"@grafana/ui\"\nimport React from \"react\"\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { css } from \"@emotion/css\";\n\ntype Props = {\n searchQuery: string;\n onSearchQueryChange: (event: React.ChangeEvent) => void;\n}\n\nexport const Search = (props: Props) => {\n const styles = useStyles2(getStyles);\n const { searchQuery, onSearchQueryChange } = props;\n\n return (\n \n }\n value={searchQuery}\n onChange={onSearchQueryChange}\n id='searchFieldInput'\n />\n \n )\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n searchField: css({\n marginBottom: theme.spacing(1),\n }),\n };\n}\n","import React from 'react';\n\nimport { DataFrame, FieldType, GrafanaTheme2, LoadingState, PanelData, sortDataFrame } from '@grafana/data';\nimport {\n SceneComponentProps,\n SceneCSSGridLayout,\n SceneFlexItem,\n sceneGraph,\n SceneLayout,\n SceneObjectBase,\n SceneObjectState,\n} from '@grafana/scenes';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { css } from '@emotion/css';\nimport { useStyles2 } from '@grafana/ui';\nimport Skeleton from 'react-loading-skeleton';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { ErrorStateScene } from 'components/states/ErrorState/ErrorStateScene';\nimport { debounce } from 'lodash';\nimport { Search } from './Search';\nimport { getGroupByVariable } from 'utils/utils';\nimport {\n EMPTY_STATE_ERROR_MESSAGE,\n EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n EventTimeseriesDataReceived,\n GRID_TEMPLATE_COLUMNS,\n} from '../../utils/shared';\nimport { cloneDataFrame } from '../../utils/frames';\n\ninterface ByFrameRepeaterState extends SceneObjectState {\n body: SceneLayout;\n groupBy?: boolean;\n\n getLayoutChild(data: PanelData, frame: DataFrame, frameIndex: number): SceneFlexItem;\n\n searchQuery?: string;\n}\n\nexport class ByFrameRepeater extends SceneObjectBase {\n public constructor(state: ByFrameRepeaterState) {\n super(state);\n\n this.addActivationHandler(() => {\n const data = sceneGraph.getData(this);\n\n this._subs.add(\n data.subscribeToState((data) => {\n if (data.data?.state === LoadingState.Done || data.data?.state === LoadingState.Streaming) {\n if (data.data.series.length === 0 && data.data?.state !== LoadingState.Streaming) {\n this.state.body.setState({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n message: EMPTY_STATE_ERROR_MESSAGE,\n remedyMessage: EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n padding: '32px',\n }),\n }),\n ],\n });\n } else if (data.data?.state === LoadingState.Done) {\n const filtered = {\n ...data.data,\n series: data.data?.series.filter(doesQueryMatchDataFrameLabels(this.state.searchQuery)),\n };\n this.renderFilteredData(filtered as PanelData);\n this.publishEvent(new EventTimeseriesDataReceived({ series: data.data.series }), true);\n }\n } else if (data.data?.state === LoadingState.Error) {\n this.state.body.setState({\n children: [\n new SceneCSSGridLayout({\n children: [\n new ErrorStateScene({\n message: data.data.errors?.[0]?.message ?? 'An error occurred in the query',\n }),\n ],\n }),\n ],\n });\n } else {\n this.state.body.setState({\n children: [\n new SceneCSSGridLayout({\n children: [\n new LoadingStateScene({\n component: () => SkeletonComponent(8),\n }),\n ],\n }),\n ],\n });\n }\n })\n );\n\n this.subscribeToState((newState, prevState) => {\n if (newState.searchQuery !== prevState.searchQuery) {\n this.onSearchQueryChangeDebounced(newState.searchQuery ?? '');\n }\n });\n\n if (data.state.data) {\n this.performRepeat(data.state.data);\n }\n });\n }\n\n private onSearchQueryChange = (evt: React.SyntheticEvent) => {\n this.setState({ searchQuery: evt.currentTarget.value });\n };\n\n private onSearchQueryChangeDebounced = debounce((searchQuery: string) => {\n const data = sceneGraph.getData(this);\n const filtered = {\n ...data.state.data,\n series: data.state.data?.series.filter(doesQueryMatchDataFrameLabels(searchQuery)),\n };\n this.renderFilteredData(filtered as PanelData);\n }, 250);\n\n private renderFilteredData(filtered: PanelData) {\n if (filtered.series && filtered.series.length > 0) {\n this.performRepeat(filtered as PanelData);\n } else {\n this.state.body.setState({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n message: 'No data for search term',\n padding: '32px',\n }),\n }),\n ],\n });\n }\n }\n\n private groupSeriesBy(data: PanelData, groupBy: string) {\n const groupedData = data.series.reduce(\n (acc, series) => {\n const key = series.fields.find((f) => f.type === FieldType.number)?.labels?.[groupBy];\n if (!key) {\n return acc;\n }\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(series);\n return acc;\n },\n {} as Record\n );\n\n const newSeries = [];\n for (const key in groupedData) {\n const frames = groupedData[key].sort((a, b) => a.name?.localeCompare(b.name!) || 0);\n const mainFrame = cloneDataFrame(frames[0]);\n frames.slice(1, frames.length).forEach((frame) => mainFrame.fields.push(frame.fields[1]));\n newSeries.push(sortDataFrame(mainFrame, 0));\n }\n return newSeries;\n }\n\n private performRepeat(data: PanelData) {\n const newChildren: SceneFlexItem[] = [];\n let frames = data.series;\n\n if (this.state.groupBy) {\n frames = this.groupSeriesBy(data, getGroupByVariable(this).getValueText());\n }\n\n for (let frameIndex = 0; frameIndex < frames.length; frameIndex++) {\n const currentFrame = frames[frameIndex];\n // Skip frames with no data\n const sum = currentFrame.fields\n .filter((f) => f.type === FieldType.number)\n .reduce((sum, f) => sum + f.values.reduce((vSum, v) => vSum + (v || 0), 0) || 0, 0);\n if (sum === 0) {\n continue;\n }\n // Build the layout child\n const layoutChild = this.state.getLayoutChild(data, frames[frameIndex], frameIndex);\n newChildren.push(layoutChild);\n }\n\n this.state.body.setState({ children: newChildren });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body, searchQuery } = model.useState();\n const styles = useStyles2(getStyles);\n\n return (\n
\n \n \n
\n );\n };\n}\n\nfunction getStyles() {\n return {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n }),\n };\n}\n\nexport const SkeletonComponent = (repeat: number) => {\n const styles = useStyles2(getSkeletonStyles);\n\n return (\n
\n {[...Array(repeat)].map((_, i) => (\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n {[...Array(2)].map((_, i) => (\n
\n \n
\n ))}\n
\n
\n {[...Array(2)].map((_, i) => (\n
\n \n
\n ))}\n
\n
\n ))}\n
\n );\n};\n\nfunction getSkeletonStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n display: 'grid',\n gridTemplateColumns: GRID_TEMPLATE_COLUMNS,\n gridAutoRows: '200px',\n rowGap: theme.spacing(1),\n columnGap: theme.spacing(1),\n }),\n itemContainer: css({\n backgroundColor: theme.colors.background.primary,\n border: `1px solid ${theme.colors.background.secondary}`,\n padding: '5px',\n }),\n header: css({\n display: 'flex',\n justifyContent: 'space-between',\n }),\n title: css({\n width: '100px',\n }),\n action: css({\n width: '60px',\n }),\n yAxis: css({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-around',\n marginTop: '35px',\n }),\n yAxisItem: css({\n width: '60px',\n height: '55px',\n }),\n xAxis: css({\n display: 'flex',\n justifyContent: 'space-evenly',\n }),\n xAxisItem: css({\n width: '55px',\n }),\n };\n}\n\nexport const doesQueryMatchDataFrameLabels = (searchQuery?: string) => (dataFrame: DataFrame) => {\n const pattern = searchQuery?.trim();\n if (!pattern) {\n return true;\n }\n\n const regex = new RegExp(pattern, 'i');\n\n return dataFrame.fields.some((f) => (!f.labels ? false : Object.values(f.labels).find((label) => regex.test(label))));\n};\n","import { DataQueryResponseData, Field } from '@grafana/data';\n\nexport function cloneDataFrame(frame: DataQueryResponseData): DataQueryResponseData {\n return {\n ...frame,\n fields: frame.fields.map((field: Field) => ({\n ...field,\n values: field.values,\n })),\n };\n}\n","import { PanelBuilders } from '@grafana/scenes';\nimport { DrawStyle, StackingMode, TooltipDisplayMode } from '@grafana/ui';\n\nexport const barsPanelConfig = () => {\n return PanelBuilders.timeseries()\n .setOption('legend', { showLegend: false })\n .setCustomFieldConfig('drawStyle', DrawStyle.Bars)\n .setCustomFieldConfig('stacking', { mode: StackingMode.Normal })\n .setCustomFieldConfig('fillOpacity', 75)\n .setCustomFieldConfig('lineWidth', 0)\n .setCustomFieldConfig('pointSize', 0)\n .setCustomFieldConfig('axisLabel', 'Rate')\n .setOverrides((overrides) => {\n overrides.matchFieldsWithNameByRegex('(^error$|.*status=\"error\".*)').overrideColor({\n mode: 'fixed',\n fixedColor: 'semi-dark-red',\n });\n overrides.matchFieldsWithNameByRegex('(^unset$|.*status=\"unset\".*)').overrideColor({\n mode: 'fixed',\n fixedColor: 'green',\n });\n overrides.matchFieldsWithNameByRegex('(^ok$|.*status=\"ok\".*)').overrideColor({\n mode: 'fixed',\n fixedColor: 'dark-green',\n });\n })\n .setOption('tooltip', { mode: TooltipDisplayMode.Multi });\n};\n","import { ALL, MetricFunction, VAR_FILTERS_EXPR } from '../../../utils/shared';\n\ninterface QueryOptions {\n metric: MetricFunction;\n extraFilters?: string;\n groupByKey?: string;\n groupByStatus?: boolean;\n}\n\nexport function generateMetricsQuery({ metric, groupByKey, extraFilters, groupByStatus }: QueryOptions) {\n // Generate span set filters\n let filters = `${VAR_FILTERS_EXPR}`;\n\n if (metric === 'rate') {\n filters += ' && status!=error';\n } else if (metric === 'errors') {\n filters += ' && status=error';\n }\n\n if (extraFilters) {\n filters += ` && ${extraFilters}`;\n }\n\n if (groupByKey && groupByKey !== ALL) {\n filters += ` && ${groupByKey} != nil`;\n }\n\n // Generate metrics function\n let metricFn = 'rate()';\n switch (metric) {\n case 'errors':\n metricFn = 'rate()';\n break;\n case 'duration':\n metricFn = 'quantile_over_time(duration, 0.9)';\n break;\n }\n\n // Generate group by section\n let groupByAttrs = [];\n if (groupByKey && groupByKey !== ALL) {\n groupByAttrs.push(groupByKey);\n }\n\n if (metric !== 'duration' && groupByStatus) {\n groupByAttrs.push('status');\n }\n\n const groupBy = groupByAttrs.length ? `by(${groupByAttrs.join(', ')})` : '';\n\n return `{${filters}} | ${metricFn} ${groupBy}`;\n}\n\nexport function metricByWithStatus(metric: MetricFunction, tagKey?: string) {\n return {\n refId: 'A',\n query: generateMetricsQuery({ metric, groupByKey: tagKey, groupByStatus: true }),\n queryType: 'traceql',\n tableType: 'spans',\n limit: 100,\n spss: 10,\n filters: [],\n };\n}\n","import { dropWhile as _dropWhile, round as _round } from 'lodash';\nimport { sceneGraph, SceneObject } from '@grafana/scenes';\nimport { duration } from 'moment/moment';\n\nexport const ONE_MILLISECOND = 1000;\nexport const ONE_SECOND = 1000 * ONE_MILLISECOND;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\nexport const ONE_DAY = 24 * ONE_HOUR;\nexport const DEFAULT_MS_PRECISION = Math.log10(ONE_MILLISECOND);\n\nconst UNIT_STEPS: Array<{ unit: string; microseconds: number; ofPrevious: number }> = [\n { unit: 'd', microseconds: ONE_DAY, ofPrevious: 24 },\n { unit: 'h', microseconds: ONE_HOUR, ofPrevious: 60 },\n { unit: 'm', microseconds: ONE_MINUTE, ofPrevious: 60 },\n { unit: 's', microseconds: ONE_SECOND, ofPrevious: 1000 },\n { unit: 'ms', microseconds: ONE_MILLISECOND, ofPrevious: 1000 },\n { unit: 'μs', microseconds: 1, ofPrevious: 1000 },\n];\n\n/**\n * Humanizes the duration for display.\n *\n * Example:\n * 5000ms => 5s\n * 1000μs => 1ms\n * 183840s => 2d 3h\n *\n * @param {number} duration (in microseconds)\n * @return {string} formatted duration\n */\nexport const formatDuration = (duration: number): string => {\n // Drop all units that are too large except the last one\n const [primaryUnit, secondaryUnit] = _dropWhile(\n UNIT_STEPS,\n ({ microseconds }, index) => index < UNIT_STEPS.length - 1 && microseconds > duration\n );\n\n if (primaryUnit.ofPrevious === 1000) {\n // If the unit is decimal based, display as a decimal\n return `${_round(duration / primaryUnit.microseconds, 2)}${primaryUnit.unit}`;\n }\n\n const primaryValue = Math.floor(duration / primaryUnit.microseconds);\n const primaryUnitString = `${primaryValue}${primaryUnit.unit}`;\n const secondaryValue = Math.round((duration / secondaryUnit.microseconds) % primaryUnit.ofPrevious);\n const secondaryUnitString = `${secondaryValue}${secondaryUnit.unit}`;\n return secondaryValue === 0 ? primaryUnitString : `${primaryUnitString} ${secondaryUnitString}`;\n}\n\nexport const getStepForTimeRange = (scene: SceneObject, dataPoints?: number) => {\n const sceneTimeRange = sceneGraph.getTimeRange(scene);\n const from = sceneTimeRange.state.value.from.unix();\n const to = sceneTimeRange.state.value.to.unix();\n\n const dur = duration(to - from, 's');\n const finalDur = Math.floor(dur.asSeconds() / (dataPoints ?? 50)) || 1;\n return `${finalDur}s`;\n}\n","import { QueryRunnerState, sceneGraph, SceneQueryRunner } from '@grafana/scenes';\nimport { getStepForTimeRange } from '../../../utils/dates';\n\nexport class StepQueryRunner extends SceneQueryRunner {\n constructor(state: QueryRunnerState) {\n super(state);\n this.addActivationHandler(this._onActivateStep.bind(this));\n }\n\n private _onActivateStep() {\n const step = getStepForTimeRange(this, this.state.maxDataPoints);\n this.setState({\n queries: this.state.queries.map((query) => {\n return {\n ...query,\n step,\n };\n }),\n });\n\n const sceneTimeRange = sceneGraph.getTimeRange(this);\n sceneTimeRange.subscribeToState((newState, prevState) => {\n if (newState.value.from !== prevState.value.from || newState.value.to !== prevState.value.to) {\n const newStep = getStepForTimeRange(this, this.state.maxDataPoints);\n this.setState({\n queries: this.state.queries.map((query) => {\n return {\n ...query,\n step: newStep,\n };\n }),\n });\n }\n });\n }\n}\n","import React from 'react';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Icon, Tooltip, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\n\ninterface StreamingIndicatorProps {\n isStreaming: boolean;\n iconSize?: number;\n}\n\nexport const StreamingIndicator = ({ \n isStreaming, \n iconSize = 14,\n}: StreamingIndicatorProps) => {\n const styles = useStyles2(getStyles, iconSize);\n\n if (!isStreaming) {\n return null;\n }\n\n return (\n \n \n \n );\n};\n\nconst getStyles = (theme: GrafanaTheme2, iconSize: number) => {\n return {\n streamingIndicator: css({\n width: `${iconSize}px`,\n height: `${iconSize}px`,\n backgroundColor: theme.colors.success.text,\n fill: theme.colors.success.text,\n borderRadius: '50%',\n display: 'inline-block',\n }),\n };\n}; \n","import { reportInteraction } from '@grafana/runtime';\nimport pluginJson from '../plugin.json';\n\n// Helper function to create a unique interaction name for analytics\nconst createInteractionName = (page: UserEventPagesType, action: string) => {\n return `${pluginJson.id.replace(/-/g, '_')}_${page}_${action}`;\n};\n\n// Runs reportInteraction with a standardized interaction name\nexport const reportAppInteraction = (\n page: UserEventPagesType,\n action: UserEventActionType,\n properties?: Record\n) => {\n reportInteraction(createInteractionName(page, action), properties);\n};\n\nexport const USER_EVENTS_PAGES = {\n analyse_traces: 'analyse_traces',\n home: 'home',\n common: 'common',\n} as const;\n\nexport type UserEventPagesType = keyof typeof USER_EVENTS_PAGES;\ntype UserEventActionType =\n | keyof (typeof USER_EVENTS_ACTIONS)['analyse_traces']\n | keyof (typeof USER_EVENTS_ACTIONS)['home']\n | keyof (typeof USER_EVENTS_ACTIONS)['common'];\n\nexport const USER_EVENTS_ACTIONS = {\n [USER_EVENTS_PAGES.analyse_traces]: {\n action_view_changed: 'action_view_changed',\n breakdown_group_by_changed: 'breakdown_group_by_changed',\n breakdown_add_to_filters_clicked: 'breakdown_add_to_filters_clicked',\n comparison_add_to_filters_clicked: 'comparison_add_to_filters_clicked',\n select_attribute_in_comparison_clicked: 'select_attribute_in_comparison_clicked',\n layout_type_changed: 'layout_type_changed',\n start_investigation: 'start_investigation',\n stop_investigation: 'stop_investigation',\n open_trace: 'open_trace',\n open_in_explore_clicked: 'open_in_explore_clicked',\n add_to_investigation_clicked: 'add_to_investigation_clicked',\n add_to_investigation_trace_view_clicked: 'add_to_investigation_trace_view_clicked',\n span_list_columns_changed: 'span_list_columns_changed',\n toggle_bookmark_clicked: 'toggle_bookmark_clicked',\n },\n [USER_EVENTS_PAGES.home]: {\n homepage_initialized: 'homepage_initialized',\n panel_row_clicked: 'panel_row_clicked',\n explore_traces_clicked: 'explore_traces_clicked',\n read_documentation_clicked: 'read_documentation_clicked',\n filter_changed: 'filter_changed',\n go_to_bookmark_clicked: 'go_to_bookmark_clicked',\n },\n [USER_EVENTS_PAGES.common]: {\n metric_changed: 'metric_changed',\n new_filter_added_manually: 'new_filter_added_manually',\n app_initialized: 'app_initialized',\n global_docs_link_clicked: 'global_docs_link_clicked',\n metric_docs_link_clicked: 'metric_docs_link_clicked',\n feedback_link_clicked: 'feedback_link_clicked',\n },\n} as const;\n","import { getTraceByServiceScene, shouldShowSelection } from '../../../utils/utils';\nimport { ComparisonSelection } from '../../../utils/shared';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../utils/analytics';\nimport { PanelBuilders, SceneFlexItem, SceneFlexLayout, SceneObject } from '@grafana/scenes';\n\nexport function getHistogramVizPanel(scene: SceneObject, yBuckets: number[]) {\n const parent = getTraceByServiceScene(scene);\n const panel = histogramPanelConfig()\n .setHoverHeader(true)\n // @ts-ignore\n .setOption('selectionMode', 'xy')\n .build();\n panel.setState({\n extendPanelContext: (vizPanel, context) => {\n // TODO remove when we the Grafana version with #88107 is released\n // @ts-ignore\n context.onSelectRange = (args) => {\n if (args.length === 0) {\n parent.setState({ selection: undefined });\n return;\n }\n const rawSelection = args[0];\n // @ts-ignore\n const newSelection: ComparisonSelection = { type: 'manual', raw: rawSelection };\n\n newSelection.timeRange = {\n from: Math.round((rawSelection.x?.from || 0) / 1000),\n to: Math.round((rawSelection.x?.to || 0) / 1000),\n };\n\n // Ignore selection and return if the selection is invalid\n if (newSelection.timeRange.from === newSelection.timeRange.to) {\n return;\n }\n\n const yFrom = yBucketToDuration((args[0].y?.from || 0) - 1, yBuckets);\n const yTo = yBucketToDuration(args[0].y?.to || 0, yBuckets);\n newSelection.duration = { from: yFrom, to: yTo };\n\n parent.onUserUpdateSelection(newSelection);\n if (!shouldShowSelection(parent.state.actionView)) {\n parent.setActionView('comparison');\n }\n\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.start_investigation, {\n selection: newSelection,\n metric: 'duration',\n });\n };\n },\n });\n return new SceneFlexLayout({\n direction: 'row',\n children: [\n new SceneFlexItem({\n body: panel,\n }),\n ],\n });\n}\n\nexport const histogramPanelConfig = () => {\n return PanelBuilders.heatmap()\n .setOption('legend', { show: false })\n .setOption('yAxis', {\n unit: 's',\n axisLabel: 'duration',\n })\n .setOption('color', {\n scheme: 'Blues',\n steps: 16,\n })\n .setOption('rowsFrame', { value: 'Spans' });\n};\n\nexport function yBucketToDuration(yValue: number, buckets?: number[], multiplier?: number) {\n if (!buckets) {\n return '';\n }\n if (yValue < 0) {\n return '0';\n }\n\n const rawValue = buckets[Math.floor(yValue)] * (multiplier || 1);\n if (!rawValue || isNaN(rawValue)) {\n return '';\n }\n if (rawValue >= 1) {\n return `${rawValue.toFixed(0)}s`;\n }\n return `${(rawValue * 1000).toFixed(0)}ms`;\n}\n","import { SelectableValue } from '@grafana/data';\n\nexport const DATABASE_CALLS_KEY = 'span.db.name';\n\nexport const primarySignalOptions: Array> = [\n {\n label: 'Root spans',\n value: 'nestedSetParent<0',\n filter: { key: 'nestedSetParent', operator: '<', value: '0' },\n description: 'Focus your analysis on the root span of each trace',\n },\n {\n label: 'All spans',\n value: 'true',\n filter: { key: '', operator: '', value: true },\n description: 'View and analyse raw span data. This option may result in long query times.',\n },\n];\n\nexport const getSignalForKey = (key?: string) => {\n return primarySignalOptions.find((option) => option.value === key);\n};\n","import React from 'react';\n\nimport { DataFrame } from '@grafana/data';\nimport { SceneObjectState, SceneObjectBase, SceneComponentProps, AdHocFiltersVariable } from '@grafana/scenes';\nimport { Button } from '@grafana/ui';\nimport { getFiltersVariable, getLabelValue } from '../../../utils/utils';\nimport { DATABASE_CALLS_KEY } from 'pages/Explore/primary-signals';\n\nexport interface AddToFiltersActionState extends SceneObjectState {\n frame: DataFrame;\n onClick: (payload: any) => void;\n labelKey?: string;\n}\n\nexport class AddToFiltersAction extends SceneObjectBase {\n public onClick = () => {\n const variable = getFiltersVariable(this);\n\n const labels = this.state.frame.fields.find((f) => f.labels)?.labels ?? {};\n if (this.state.labelKey) {\n if (!labels[this.state.labelKey]) {\n return;\n }\n } else {\n if (Object.keys(labels).length !== 1) {\n return;\n }\n }\n\n const labelName = this.state.labelKey ?? Object.keys(labels)[0];\n const value = getLabelValue(this.state.frame, this.state.labelKey);\n\n addToFilters(variable, labelName, value);\n\n this.state.onClick({ labelName });\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const key = model.state?.labelKey ?? '';\n const field = model.state?.frame.fields.filter(x => x.type !== 'time');\n const value = field?.[0]?.labels?.[key] ?? '';\n const filterExists = filterExistsForKey(getFiltersVariable(model), key, value.replace(/\"/g, ''));\n\n if (!filterExists) {\n return (\n \n );\n }\n return <>;\n };\n}\n\nexport const addToFilters = (variable: AdHocFiltersVariable, label: string, value: string) => {\n // ensure we set the new filter with latest value\n // and remove any existing filter for the same key\n // and also keep span.db.name as it is a primary filter\n const filtersWithoutNew = variable.state.filters.filter((f) => f.key === DATABASE_CALLS_KEY || f.key !== label);\n\n // TODO: Replace it with new API introduced in https://github.com/grafana/scenes/issues/1103\n // At the moment AdHocFiltersVariable doesn't support pushing new history entry on change\n history.pushState(null, '');\n\n variable.setState({\n filters: [\n ...filtersWithoutNew,\n {\n key: label,\n operator: '=',\n value: value,\n },\n ],\n });\n};\n\nexport const filterExistsForKey = (model: AdHocFiltersVariable, key: string, value: string) => {\n const variable = getFiltersVariable(model);\n return variable.state.filters.find((f) => f.key === key && f.value === value);\n}\n","import { DataFrame } from '@grafana/data';\nimport { ComparisonSelection, MetricFunction } from './shared';\n\nexport const computeHighestDifference = (frame: DataFrame) => {\n const baselineField = frame.fields.find((f) => f.name === 'Baseline');\n const selectionField = frame.fields.find((f) => f.name === 'Selection');\n\n let maxDifference = 0;\n let maxDifferenceIndex = 0;\n\n for (let i = 0; i < (baselineField?.values?.length || 0); i++) {\n const diff = (selectionField?.values[i] || 0) - (baselineField?.values[i] || 0);\n if (Math.abs(diff) > Math.abs(maxDifference || 0)) {\n maxDifference = diff;\n maxDifferenceIndex = i;\n }\n }\n\n return { maxDifference, maxDifferenceIndex };\n};\n\nexport const getDefaultSelectionForMetric = (metric: MetricFunction): ComparisonSelection | undefined => {\n if (metric === 'duration') {\n return undefined;\n }\n return { query: 'status = error', type: 'auto' };\n};\n","import { SceneComponentProps, SceneObjectBase, SceneObjectState, VizPanel } from '@grafana/scenes';\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport { Button, Stack, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport React from 'react';\nimport { getFiltersVariable } from '../../../utils/utils';\nimport { addToFilters, filterExistsForKey } from '../actions/AddToFiltersAction';\nimport { computeHighestDifference } from '../../../utils/comparison';\n\nexport interface HighestDifferencePanelState extends SceneObjectState {\n frame: DataFrame;\n panel: VizPanel;\n maxDifference?: number;\n maxDifferenceIndex?: number;\n}\n\nexport class HighestDifferencePanel extends SceneObjectBase {\n constructor(state: HighestDifferencePanelState) {\n super({\n ...state,\n });\n\n this.addActivationHandler(() => this._onActivate());\n }\n\n private _onActivate() {\n const { frame } = this.state;\n this.setState({ ...computeHighestDifference(frame) });\n\n this._subs.add(\n this.subscribeToState((newState, prevState) => {\n if (newState.frame !== prevState.frame) {\n const { frame } = newState;\n this.setState({ ...computeHighestDifference(frame) });\n }\n })\n );\n }\n\n private getAttribute() {\n return this.state.frame.name;\n }\n\n private getValue() {\n const valueField = this.state.frame.fields.find((f) => f.name === 'Value');\n return valueField?.values[this.state.maxDifferenceIndex || 0];\n }\n\n private onAddToFilters() {\n const variable = getFiltersVariable(this);\n const attribute = this.getAttribute();\n if (attribute) {\n addToFilters(variable, attribute, this.getValue());\n }\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { maxDifference, maxDifferenceIndex, panel } = model.useState();\n const styles = useStyles2(getStyles);\n const value = model.getValue();\n const key = model.state.frame.name ?? '';\n const filterExists = filterExistsForKey(getFiltersVariable(model), key, value.replace(/\"/g, ''));\n\n return (\n
\n {}\n
\n {maxDifference !== undefined && maxDifferenceIndex !== undefined && (\n <>\n \n
Highest difference
\n {!filterExists && (\n model.onAddToFilters()}\n >\n Add to filters\n \n )}\n
\n
\n {(Math.abs(maxDifference) * 100).toFixed(maxDifference === 0 ? 0 : 2)}%\n
\n
{value}
\n \n )}\n
\n
\n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n height: '100%',\n }),\n differenceContainer: css({\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n border: `1px solid ${theme.colors.secondary.border}`,\n background: theme.colors.background.primary,\n padding: '8px',\n marginBottom: theme.spacing(2),\n fontSize: '12px',\n height: '116px',\n }),\n differenceValue: css({\n fontSize: '36px',\n fontWeight: 'bold',\n textAlign: 'center',\n }),\n value: css({\n textAlign: 'center',\n color: theme.colors.secondary.text,\n textWrap: 'nowrap',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }),\n title: css({\n fontWeight: 500,\n }),\n };\n}\n","import { PanelBuilders, SceneCSSGridItem, SceneCSSGridLayout, SceneDataNode, VizPanelState } from '@grafana/scenes';\nimport { ByFrameRepeater } from '../ByFrameRepeater';\nimport { DataFrame, PanelData } from '@grafana/data';\nimport { AxisPlacement } from '@grafana/ui';\nimport { TooltipDisplayMode } from '@grafana/schema';\nimport { HighestDifferencePanel } from './HighestDifferencePanel';\nimport { GRID_TEMPLATE_COLUMNS, MetricFunction } from '../../../utils/shared';\n\nexport const BaselineColor = '#5794F299';\nexport const SelectionColor = '#FF9930';\n\nexport function buildAllComparisonLayout(\n actionsFn: (df: DataFrame) => VizPanelState['headerActions'],\n metric: MetricFunction\n) {\n const panels: Record = {};\n\n return new ByFrameRepeater({\n body: new SceneCSSGridLayout({\n templateColumns: GRID_TEMPLATE_COLUMNS,\n autoRows: '320px',\n children: [],\n }),\n getLayoutChild: getLayoutChild(panels, getFrameName, actionsFn, metric),\n });\n}\n\nconst getFrameName = (df: DataFrame) => {\n return df.name || 'No name available';\n};\n\nfunction getLayoutChild(\n panels: Record,\n getTitle: (df: DataFrame) => string,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions'],\n metric: MetricFunction\n) {\n return (data: PanelData, frame: DataFrame) => {\n const existingGridItem = frame.name ? panels[frame.name] : undefined;\n\n const dataNode = new SceneDataNode({\n data: {\n ...data,\n series: [\n {\n ...frame,\n },\n ],\n },\n });\n\n if (existingGridItem) {\n const body = existingGridItem.state.body as HighestDifferencePanel;\n body.setState({ frame });\n body.state.panel.setState({ $data: dataNode });\n return existingGridItem;\n }\n\n const panel = getPanelConfig(metric).setTitle(getTitle(frame)).setData(dataNode);\n\n const actions = actionsFn(frame);\n if (actions) {\n panel.setHeaderActions(actions);\n }\n\n const gridItem = new SceneCSSGridItem({\n body: new HighestDifferencePanel({ frame, panel: panel.build() }),\n });\n if (frame.name) {\n panels[frame.name] = gridItem;\n }\n\n return gridItem;\n };\n}\n\nexport function getPanelConfig(metric: MetricFunction) {\n return PanelBuilders.barchart()\n .setOption('legend', { showLegend: false })\n .setOption('tooltip', { mode: TooltipDisplayMode.Multi })\n .setMax(1)\n .setOverrides((overrides) => {\n overrides.matchFieldsWithName('Value').overrideCustomFieldConfig('axisPlacement', AxisPlacement.Hidden);\n overrides\n .matchFieldsWithName('Baseline')\n .overrideColor({\n mode: 'fixed',\n fixedColor: metric === 'duration' ? BaselineColor : 'semi-dark-green',\n })\n .overrideUnit('percentunit');\n overrides\n .matchFieldsWithName('Selection')\n .overrideColor({\n mode: 'fixed',\n fixedColor: metric === 'duration' ? SelectionColor : 'semi-dark-red',\n })\n .overrideUnit('percentunit');\n });\n}\n","import { VAR_FILTERS_EXPR } from '../../../utils/shared';\n\nexport function buildHistogramQuery() {\n return {\n refId: 'A',\n query: `{${VAR_FILTERS_EXPR}} | histogram_over_time(duration)`,\n queryType: 'traceql',\n tableType: 'spans',\n limit: 1000,\n spss: 10,\n filters: [],\n };\n}\n","import React from 'react';\n\nimport { SceneObjectBase, SceneComponentProps, SceneObjectState } from '@grafana/scenes';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { Button, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport { getMetricValue, getTraceByServiceScene, shouldShowSelection } from 'utils/utils';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../utils/analytics';\nimport { ComparisonSelection } from '../../../utils/shared';\n\nexport interface ComparisonControlState extends SceneObjectState {\n selection?: ComparisonSelection;\n}\n\nexport class DurationComparisonControl extends SceneObjectBase {\n public constructor({ selection }: ComparisonControlState) {\n super({ selection });\n }\n\n public startInvestigation = () => {\n const byServiceScene = getTraceByServiceScene(this);\n byServiceScene.setState({ selection: this.state.selection });\n if (!shouldShowSelection(byServiceScene.state.actionView)) {\n byServiceScene.setActionView('comparison');\n }\n\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.start_investigation, {\n selection: this.state.selection,\n metric: getMetricValue(this),\n });\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { selection } = getTraceByServiceScene(model).useState();\n const styles = useStyles2(getStyles);\n\n const isDisabled = selection?.type === 'auto';\n const tooltip = isDisabled\n ? 'Slowest traces are selected, navigate to the Comparison or Slow Traces tab for more details.'\n : undefined;\n\n return (\n
\n \n {isDisabled ? 'Slowest traces selected' : 'Select slowest traces'}\n \n
\n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n wrapper: css({\n display: 'flex',\n gap: '16px',\n alignItems: 'center',\n }),\n placeholder: css({\n color: theme.colors.text.secondary,\n fontSize: theme.typography.bodySmall.fontSize,\n display: 'flex',\n gap: theme.spacing.x0_5,\n }),\n };\n}\n","import { AdHocVariableFilter, DataFrame, urlUtil } from '@grafana/data';\nimport {\n AdHocFiltersVariable,\n CustomVariable,\n DataSourceVariable,\n SceneDataQuery,\n SceneDataState,\n sceneGraph,\n SceneObject,\n SceneObjectUrlValues,\n SceneTimeRange,\n sceneUtils,\n} from '@grafana/scenes';\n\nimport { TraceExploration } from '../pages/Explore';\nimport {\n EventTraceOpened,\n EXPLORATIONS_ROUTE,\n VAR_DATASOURCE,\n VAR_DATASOURCE_EXPR,\n VAR_FILTERS,\n VAR_GROUPBY,\n VAR_HOME_FILTER,\n VAR_LATENCY_PARTIAL_THRESHOLD,\n VAR_LATENCY_THRESHOLD,\n VAR_METRIC,\n VAR_PRIMARY_SIGNAL,\n VAR_SPAN_LIST_COLUMNS,\n} from './shared';\nimport { TracesByServiceScene } from 'components/Explore/TracesByService/TracesByServiceScene';\nimport { ActionViewType } from '../components/Explore/TracesByService/Tabs/TabsBarScene';\nimport { Home } from 'pages/Home/Home';\nimport { PrimarySignalVariable } from 'pages/Explore/PrimarySignalVariable';\n\nexport function getTraceExplorationScene(model: SceneObject): TraceExploration {\n return sceneGraph.getAncestor(model, TraceExploration);\n}\n\nexport function getHomeScene(model: SceneObject): Home {\n return sceneGraph.getAncestor(model, Home);\n}\n\nexport function getTraceByServiceScene(model: SceneObject): TracesByServiceScene {\n return sceneGraph.getAncestor(model, TracesByServiceScene);\n}\n\nexport function newTracesExploration(initialDS?: string, initialFilters?: AdHocVariableFilter[]): TraceExploration {\n return new TraceExploration({\n initialDS,\n initialFilters: initialFilters ?? [],\n $timeRange: new SceneTimeRange({ from: 'now-30m', to: 'now' }),\n });\n}\n\nexport function newHome(initialFilters: AdHocVariableFilter[], initialDS?: string): Home {\n return new Home({\n initialDS,\n initialFilters,\n $timeRange: new SceneTimeRange({ from: 'now-30m', to: 'now' }),\n });\n}\n\nexport function getErrorMessage(data: SceneDataState) {\n return data?.data?.error?.message ?? 'There are no Tempo data sources';\n}\n\nexport function getNoDataMessage(context: string) {\n return `No data for selected data source and filter. Select another to see ${context}.`;\n}\n\nexport function getUrlForExploration(exploration: TraceExploration) {\n const params = sceneUtils.getUrlState(exploration);\n return getUrlForValues(params);\n}\n\nexport function getUrlForValues(values: SceneObjectUrlValues) {\n return urlUtil.renderUrl(EXPLORATIONS_ROUTE, values);\n}\n\nexport function getDataSource(exploration: TraceExploration) {\n return sceneGraph.interpolate(exploration, VAR_DATASOURCE_EXPR);\n}\n\nexport const getFilterSignature = (filter: AdHocVariableFilter) => {\n return `${filter.key}${filter.operator}${filter.value}`;\n};\n\nexport function getAttributesAsOptions(attributes: string[]) {\n return attributes.map((attribute) => ({ label: attribute, value: attribute }));\n}\n\nexport function getLabelKey(frame: DataFrame) {\n const labels = frame.fields.find((f) => f.type === 'number')?.labels;\n\n if (!labels) {\n return 'No labels';\n }\n\n const keys = Object.keys(labels);\n if (keys.length === 0) {\n return 'No labels';\n }\n\n return keys[0].replace(/\"/g, '');\n}\n\nexport function getLabelValue(frame: DataFrame, labelName?: string) {\n const labels = frame.fields.find((f) => f.type === 'number')?.labels;\n\n if (!labels) {\n return 'No labels';\n }\n\n const keys = Object.keys(labels).filter((k) => k !== 'p'); // remove the percentile label\n if (keys.length === 0) {\n return 'No labels';\n }\n\n return labels[labelName || keys[0]].replace(/\"/g, '');\n}\n\nexport function getGroupByVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_GROUPBY, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Group by variable not found');\n }\n return variable;\n}\n\nexport function getSpanListColumnsVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_SPAN_LIST_COLUMNS, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Span list columns variable not found');\n }\n return variable;\n}\n\nexport function getLatencyThresholdVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_LATENCY_THRESHOLD, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Latency threshold variable not found');\n }\n return variable;\n}\n\nexport function getLatencyPartialThresholdVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_LATENCY_PARTIAL_THRESHOLD, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Partial latency threshold variable not found');\n }\n return variable;\n}\n\nexport function getMetricVariable(scene: SceneObject): CustomVariable {\n const variable = sceneGraph.lookupVariable(VAR_METRIC, scene);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Metric variable not found');\n }\n return variable;\n}\n\nexport function getFiltersVariable(scene: SceneObject): AdHocFiltersVariable {\n const variable = sceneGraph.lookupVariable(VAR_FILTERS, scene);\n if (!(variable instanceof AdHocFiltersVariable)) {\n throw new Error('Filters variable not found');\n }\n return variable;\n}\n\nexport function getPrimarySignalVariable(scene: SceneObject): PrimarySignalVariable {\n const variable = sceneGraph.lookupVariable(VAR_PRIMARY_SIGNAL, scene);\n if (!(variable instanceof PrimarySignalVariable)) {\n throw new Error('Primary signal variable not found');\n }\n return variable;\n}\n\nexport function getHomeFilterVariable(scene: SceneObject): AdHocFiltersVariable {\n const variable = sceneGraph.lookupVariable(VAR_HOME_FILTER, scene);\n if (!(variable instanceof AdHocFiltersVariable)) {\n throw new Error('Home filter variable not found');\n }\n return variable;\n}\n\nexport function getDatasourceVariable(scene: SceneObject): DataSourceVariable {\n const variable = sceneGraph.lookupVariable(VAR_DATASOURCE, scene);\n if (!(variable instanceof DataSourceVariable)) {\n throw new Error('Datasource variable not found');\n }\n return variable;\n}\n\nexport function getCurrentStep(scene: SceneObject): number | undefined {\n const data = sceneGraph.getData(scene).state.data;\n const targetQuery = data?.request?.targets[0];\n return targetQuery ? (targetQuery as SceneDataQuery).step : undefined;\n}\n\nexport function shouldShowSelection(tab?: ActionViewType): boolean {\n return tab === 'comparison' || tab === 'traceList';\n}\n\nexport function getMetricValue(scene: SceneObject) {\n return getMetricVariable(scene).useState().value;\n}\n\nexport function fieldHasEmptyValues(data: SceneDataState) {\n return data?.data?.series[0].fields?.some((v) => v.values.every((e) => e === undefined)) ?? false;\n}\n\nexport const isNumber = /^-?\\d+\\.?\\d*$/;\n\nexport const formatLabelValue = (value: string) => {\n if (!isNumber.test(value) && typeof value === 'string' && !value.startsWith('\"') && !value.endsWith('\"')) {\n return `\"${value}\"`;\n }\n return value;\n};\n\nexport const capitalizeFirstChar = (str: string) => str?.[0]?.toUpperCase() + str?.slice(1) || '';\n\nexport const getOpenTrace = (scene: SceneObject) => {\n return (traceId: string, spanId?: string) => {\n scene.publishEvent(new EventTraceOpened({ traceId, spanId }), true);\n };\n};\n","import { map, Observable } from 'rxjs';\nimport { DataFrame, DataTopic, Field } from '@grafana/data';\nimport { CustomTransformerDefinition } from '@grafana/scenes';\n\nexport const exemplarsTransformations = (\n openTrace?: (traceId: string, spanId?: string) => void\n): CustomTransformerDefinition[] => [\n {\n topic: DataTopic.Annotations,\n operator: () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n return data.map((frame) => {\n if (frame.name === 'exemplar') {\n const traceIDField = frame.fields.find((field: Field) => field.name === 'traceId');\n if (traceIDField) {\n // The traceID will be interpolated in the url\n // Then, onClick we retrieve the traceId from the url and navigate to the trace exploration scene by setting the state\n traceIDField.config.links = [\n {\n title: 'View trace',\n url: '#${__value.raw}',\n onClick: (event) => {\n event.e.stopPropagation(); // Prevent the click event from propagating to the parent anchor\n const parentAnchorHref = event.e.target?.parentElement?.parentElement?.href;\n if (!parentAnchorHref || parentAnchorHref.indexOf('#') === -1) {\n return;\n }\n const traceId = parentAnchorHref.split('#')[1];\n if (!traceId || traceId === '') {\n return;\n }\n openTrace?.(traceId);\n },\n },\n ];\n }\n }\n\n return frame;\n });\n })\n );\n },\n },\n];\n\nexport const removeExemplarsTransformation = (): CustomTransformerDefinition[] => [\n {\n topic: DataTopic.Annotations,\n operator: () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n return data.filter((frame) => frame.name !== 'exemplar');\n })\n );\n },\n },\n];\n\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n} from '@grafana/scenes';\nimport { arrayToDataFrame, DataFrame, GrafanaTheme2, LoadingState } from '@grafana/data';\nimport { ComparisonSelection, EMPTY_STATE_ERROR_MESSAGE, explorationDS, MetricFunction } from 'utils/shared';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { SkeletonComponent } from '../ByFrameRepeater';\nimport { barsPanelConfig } from '../panels/barsPanel';\nimport { metricByWithStatus } from '../queries/generateMetricsQuery';\nimport { StepQueryRunner } from '../queries/StepQueryRunner';\nimport { css } from '@emotion/css';\nimport { RadioButtonList, useStyles2 } from '@grafana/ui';\nimport { StreamingIndicator } from '../StreamingIndicator';\nimport {\n fieldHasEmptyValues,\n getLatencyPartialThresholdVariable,\n getLatencyThresholdVariable,\n getMetricVariable,\n getOpenTrace,\n getTraceByServiceScene,\n shouldShowSelection,\n} from '../../../utils/utils';\nimport { getHistogramVizPanel, yBucketToDuration } from '../panels/histogram';\nimport { TraceSceneState } from './TracesByServiceScene';\nimport { SelectionColor } from '../layouts/allComparison';\nimport { buildHistogramQuery } from '../queries/histogram';\nimport { isEqual } from 'lodash';\nimport { DurationComparisonControl } from './DurationComparisonControl';\nimport { exemplarsTransformations, removeExemplarsTransformation } from '../../../utils/exemplars';\n\nexport interface RateMetricsPanelState extends SceneObjectState {\n panel?: SceneFlexLayout;\n actions?: SceneObject[];\n yBuckets?: number[];\n isStreaming?: boolean;\n}\n\nexport class REDPanel extends SceneObjectBase {\n constructor(state: RateMetricsPanelState) {\n super({\n yBuckets: [],\n actions: [],\n isStreaming: false,\n ...state,\n });\n\n this.addActivationHandler(() => {\n this._onActivate();\n const data = sceneGraph.getData(this);\n const parent = getTraceByServiceScene(this);\n const timeRange = sceneGraph.getTimeRange(this);\n\n this._subs.add(\n data.subscribeToState((newData) => {\n this.setState({ isStreaming: newData.data?.state === LoadingState.Streaming });\n\n if (newData.data?.state === LoadingState.Done) {\n if (\n newData.data.series.length === 0 ||\n newData.data.series[0].length === 0 ||\n fieldHasEmptyValues(newData)\n ) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n message: EMPTY_STATE_ERROR_MESSAGE,\n imgWidth: 150,\n }),\n }),\n ],\n }),\n });\n } else {\n let yBuckets: number[] | undefined = [];\n if (this.isDuration()) {\n yBuckets = getYBuckets(data.state.data?.series || []);\n if (parent.state.selection && newData.data?.state === LoadingState.Done) {\n // set selection annotation if it exists\n const annotations = this.buildSelectionAnnotation(parent.state);\n\n if (annotations && !data.state.data?.annotations?.length) {\n data.setState({\n data: {\n ...data.state.data!,\n annotations: annotations,\n },\n });\n }\n }\n\n if (yBuckets?.length) {\n const { minDuration, minBucket } = getMinimumsForDuration(yBuckets);\n const selection: ComparisonSelection = { type: 'auto' };\n\n getLatencyThresholdVariable(this).changeValueTo(minDuration);\n getLatencyPartialThresholdVariable(this).changeValueTo(\n yBucketToDuration(minBucket - 1, yBuckets, 0.3)\n );\n\n selection.duration = { from: minDuration, to: '' };\n selection.raw = {\n x: {\n from: timeRange.state.value.from.unix() * 1000,\n to: timeRange.state.value.to.unix() * 1000,\n },\n y: { from: minBucket - 0.5, to: yBuckets.length - 0.5 },\n };\n\n this.setState({\n actions: [\n new DurationComparisonControl({\n selection,\n }),\n ],\n });\n if (!parent.state.selection?.duration || parent.state.selection.type === 'auto') {\n parent.setState({ selection });\n }\n }\n }\n\n // update panel\n this.setState({\n yBuckets,\n panel: this.getVizPanel(),\n });\n }\n } else if (newData.data?.state === LoadingState.Loading) {\n this.setState({\n panel: new SceneFlexLayout({\n direction: 'column',\n children: [\n new LoadingStateScene({\n component: () => SkeletonComponent(1),\n }),\n ],\n }),\n });\n }\n })\n );\n\n this._subs.add(\n parent.subscribeToState((newState, prevState) => {\n if (data.state.data?.state === LoadingState.Done) {\n if (!isEqual(newState.selection, prevState.selection) || newState.actionView !== prevState.actionView) {\n if (this.isDuration()) {\n const annotations = this.buildSelectionAnnotation(newState);\n data.setState({\n data: {\n ...data.state.data!,\n annotations: annotations,\n },\n });\n }\n }\n }\n })\n );\n });\n }\n\n private isDuration() {\n return getMetricVariable(this).state.value === 'duration';\n }\n\n private _onActivate() {\n const metric = getMetricVariable(this).state.value as MetricFunction;\n\n this.setState({\n $data: new SceneDataTransformer({\n $data: new StepQueryRunner({\n maxDataPoints: this.isDuration() ? 24 : 64,\n datasource: explorationDS,\n queries: [this.isDuration() ? buildHistogramQuery() : metricByWithStatus(metric)],\n }),\n transformations: this.isDuration()\n ? [...removeExemplarsTransformation()]\n : [...exemplarsTransformations(getOpenTrace(this))],\n }),\n panel: this.getVizPanel(),\n });\n }\n\n private getVizPanel() {\n const metric = getMetricVariable(this).state.value as MetricFunction;\n if (this.isDuration()) {\n return getHistogramVizPanel(this, this.state.yBuckets ?? []);\n }\n\n return this.getRateOrErrorVizPanel(metric);\n }\n\n private getRateOrErrorVizPanel(type: MetricFunction) {\n const panel = barsPanelConfig().setHoverHeader(true).setDisplayMode('transparent');\n if (type === 'rate') {\n panel.setCustomFieldConfig('axisLabel', 'span/s');\n } else if (type === 'errors') {\n panel.setCustomFieldConfig('axisLabel', 'error/s').setColor({\n fixedColor: 'semi-dark-red',\n mode: 'fixed',\n });\n }\n return new SceneFlexLayout({\n direction: 'row',\n children: [\n new SceneFlexItem({\n body: panel.build(),\n }),\n ],\n });\n }\n\n private buildSelectionAnnotation(state: TraceSceneState) {\n if (!shouldShowSelection(state.actionView)) {\n return undefined;\n }\n\n const xSel = state.selection?.raw?.x;\n const ySel = state.selection?.raw?.y;\n\n const frame = arrayToDataFrame([\n {\n time: xSel?.from || 0,\n xMin: xSel?.from || 0,\n xMax: xSel?.to || 0,\n timeEnd: xSel?.to || 0,\n yMin: ySel?.from,\n yMax: ySel?.to,\n isRegion: true,\n fillOpacity: 0.15,\n lineWidth: 1,\n lineStyle: 'solid',\n color: SelectionColor,\n text: 'Comparison selection',\n },\n ]);\n frame.name = 'xymark';\n\n return [frame];\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel, actions, isStreaming } = model.useState();\n const { value: metric } = getMetricVariable(model).useState();\n const styles = useStyles2(getStyles);\n\n if (!panel) {\n return;\n }\n\n const getTitle = () => {\n switch (metric) {\n case 'errors':\n return 'Errors rate';\n case 'rate':\n return 'Span rate';\n case 'duration':\n return 'Histogram by duration';\n default:\n return '';\n }\n };\n\n const getSubtitle = () => {\n switch (metric) {\n case 'duration':\n return 'Click and drag to compare selection with baseline.';\n default:\n return '';\n }\n };\n\n const subtitle = getSubtitle();\n\n return (\n
\n
\n
\n
\n \n {getTitle()}\n
\n {subtitle &&
{subtitle}
}\n
\n
\n {isStreaming && }\n {actions?.map((action) => )}\n
\n
\n \n
\n );\n };\n}\n\nexport const getYBuckets = (series: DataFrame[]) => {\n return series.map((s) => parseFloat(s.fields[1].name)).sort((a, b) => a - b);\n};\n\nexport const getMinimumsForDuration = (yBuckets: number[]) => {\n const slowestBuckets = Math.floor(yBuckets.length / 4);\n let minBucket = yBuckets.length - slowestBuckets - 1;\n if (minBucket < 0) {\n minBucket = 0;\n }\n\n return {\n minDuration: yBucketToDuration(minBucket - 1, yBuckets),\n minBucket,\n };\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n border: `1px solid ${theme.colors.border.weak}`,\n borderRadius: '2px',\n background: theme.colors.background.primary,\n\n '.show-on-hover': {\n display: 'none',\n },\n 'section, section:hover': {\n borderColor: 'transparent',\n },\n '& .u-select': {\n border: '1px solid #ffffff75',\n },\n }),\n headerContainer: css({\n width: '100%',\n display: 'flex',\n flexDirection: 'row',\n padding: '8px',\n gap: '8px',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n fontWeight: theme.typography.fontWeightBold,\n }),\n titleContainer: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '4px',\n }),\n titleRadioWrapper: css({\n display: 'flex',\n alignItems: 'center',\n }),\n actions: css({\n display: 'flex',\n gap: '8px',\n alignItems: 'center',\n }),\n subtitle: css({\n display: 'flex',\n color: theme.colors.text.secondary,\n fontSize: '12px',\n fontWeight: 400,\n\n '& svg': {\n margin: '0 2px',\n },\n }),\n };\n}\n","import React, { useState } from 'react';\nimport { useLocation } from 'react-use';\n\nimport { ToolbarButton } from '@grafana/ui';\n\nimport { TraceExploration } from '../../../pages/Explore';\nimport { getUrlForExploration } from '../../../utils/utils';\n\ninterface ShareExplorationActionState {\n exploration: TraceExploration;\n}\n\nexport const ShareExplorationAction = ({ exploration }: ShareExplorationActionState) => {\n const { origin } = useLocation();\n const [tooltip, setTooltip] = useState('Copy url');\n\n const onShare = () => {\n if (navigator.clipboard) {\n navigator.clipboard.writeText(origin + getUrlForExploration(exploration));\n setTooltip('Copied!');\n setTimeout(() => {\n setTooltip('Copy url');\n }, 2000);\n }\n };\n\n return ;\n};\n","import React, { useMemo } from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Icon, Select, Field, useStyles2 } from '@grafana/ui';\nimport { VariableValue } from '@grafana/scenes';\nimport { css } from '@emotion/css';\n\nconst RECOMMENDED_ATTRIBUTES = [\n 'span.http.method', \n 'span.http.request.method', \n 'span.http.route', \n 'span.http.path', \n 'span.http.status_code', \n 'span.http.response.status_code'\n]; \n\ntype Props = {\n options: Array>;\n onChange: (columns: string[]) => void;\n value?: VariableValue;\n};\n\nconst labelOrder = ['Recommended', 'Resource', 'Span', 'Other'];\n\nexport function SpanListColumnsSelector({ options, value, onChange }: Props) {\n const styles = useStyles2(getStyles);\n\n const opt = useMemo(\n () =>\n Object.values(\n options.reduce((acc, curr) => {\n if (curr.label) {\n const label = curr.label.slice(curr.label.indexOf('.') + 1);\n\n // use text until first dot as key\n if (RECOMMENDED_ATTRIBUTES.includes(curr.label)) {\n const group = acc['recommended'] ?? { label: 'Recommended', options: [] };\n group.options.push({ ...curr, label });\n acc['recommended'] = group;\n } else if (curr.label.startsWith('resource.')) {\n const group = acc['resource'] ?? { label: 'Resource', options: [] };\n group.options.push({ ...curr, label });\n acc['resource'] = group;\n } else {\n if (curr.label.startsWith('span.')) {\n const group = acc['span'] ?? { label: 'Span', options: [] };\n group.options.push({ ...curr, label });\n acc['span'] = group;\n } else {\n const group = acc['other'] ?? { label: 'Other', options: [] };\n group.options.push(curr);\n acc['other'] = group;\n }\n }\n }\n return acc;\n }, {})\n ).sort((a, b) => labelOrder.indexOf(a.label) - labelOrder.indexOf(b.label)),\n [options]\n );\n\n return (\n
\n \n onChange(x.map((x: SelectableValue) => x.value).join(','))}\n isMulti={true}\n isClearable\n virtualized\n prefix={}\n />\n \n
\n );\n}\n\nconst getStyles = () => {\n return {\n container: css({\n display: 'flex',\n minWidth: '300px',\n\n '& > div': {\n width: '100%',\n },\n }),\n };\n};\n","import React from 'react';\n\nimport {\n PanelBuilders,\n SceneComponentProps,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObjectBase,\n SceneObjectState,\n} from '@grafana/scenes';\nimport { DataFrame, GrafanaTheme2, LoadingState, PanelData, toURLRange, urlUtil, toOption } from '@grafana/data';\nimport { config } from '@grafana/runtime';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { css } from '@emotion/css';\nimport Skeleton from 'react-loading-skeleton';\nimport { Icon, Link, TableCellDisplayMode, TableCustomCellOptions, useStyles2, useTheme2 } from '@grafana/ui';\nimport { map, Observable } from 'rxjs';\nimport {\n getDataSource,\n getSpanListColumnsVariable,\n getTraceByServiceScene,\n getTraceExplorationScene,\n} from '../../../../../utils/utils';\nimport {\n EMPTY_STATE_ERROR_MESSAGE,\n EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n EventTraceOpened,\n} from '../../../../../utils/shared';\nimport { SpanListColumnsSelector } from './SpanListColumnsSelector';\nimport { reportAppInteraction, USER_EVENTS_PAGES, USER_EVENTS_ACTIONS } from 'utils/analytics';\n\nexport interface SpanListSceneState extends SceneObjectState {\n panel?: SceneFlexLayout;\n dataState: 'empty' | 'loading' | 'done';\n}\n\nexport class SpanListScene extends SceneObjectBase {\n constructor(state: Partial) {\n super({\n dataState: 'empty',\n ...state,\n });\n\n this.addActivationHandler(() => {\n this.setState({\n $data: new SceneDataTransformer({\n transformations: this.setupTransformations(),\n }),\n });\n const sceneData = sceneGraph.getData(this);\n\n this.updatePanel(sceneData.state.data);\n this._subs.add(\n sceneData.subscribeToState((data) => {\n this.updatePanel(data.data);\n })\n );\n });\n }\n\n private setupTransformations() {\n return [\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n return data.map((df) => {\n const fields = df.fields;\n const nameField = fields.find((f) => f.name === 'traceName');\n\n const options: TableCustomCellOptions = {\n type: TableCellDisplayMode.Custom,\n cellComponent: (props) => {\n const data = props.frame;\n const traceIdField = data?.fields.find((f) => f.name === 'traceIdHidden');\n const spanIdField = data?.fields.find((f) => f.name === 'spanID');\n const traceId = traceIdField?.values[props.rowIndex];\n const spanId = spanIdField?.values[props.rowIndex];\n\n if (!traceId) {\n return props.value as string;\n }\n\n const name = props.value ? (props.value as string) : '';\n return (\n
\n {\n this.publishEvent(new EventTraceOpened({ traceId, spanId }), true);\n }}\n >\n {name}\n
\n \n \n \n \n );\n },\n };\n if (nameField?.config?.custom) {\n nameField.config.custom.cellOptions = options;\n }\n return {\n ...df,\n fields,\n };\n });\n })\n );\n },\n ];\n }\n\n private getLinkToExplore = (traceId: string, spanId: string) => {\n const traceExplorationScene = getTraceExplorationScene(this);\n const datasource = getDataSource(traceExplorationScene);\n\n const timeRange = sceneGraph.getTimeRange(this).state.value;\n const exploreState = JSON.stringify({\n ['explore-traces']: {\n range: toURLRange(timeRange.raw),\n queries: [{ refId: 'traceId', queryType: 'traceql', query: traceId, datasource }],\n panelsState: {\n trace: {\n spanId,\n },\n },\n datasource,\n },\n });\n const subUrl = config.appSubUrl ?? '';\n return urlUtil.renderUrl(`${subUrl}/explore`, { panes: exploreState, schemaVersion: 1 });\n };\n\n private updatePanel(data?: PanelData) {\n if (\n data?.state === LoadingState.Loading ||\n data?.state === LoadingState.NotStarted ||\n !data?.state ||\n (data?.state === LoadingState.Streaming && !data.series?.[0]?.length)\n ) {\n if (this.state.dataState === 'loading') {\n return;\n }\n this.setState({\n dataState: 'loading',\n panel: new SceneFlexLayout({\n direction: 'row',\n children: [\n new LoadingStateScene({\n component: SkeletonComponent,\n }),\n ],\n }),\n });\n return;\n }\n if (data?.state === LoadingState.Done || data?.state === LoadingState.Streaming) {\n if (data.series.length === 0 || data.series[0].length === 0) {\n if (this.state.dataState === 'empty' && this.state.panel) {\n return;\n }\n this.setState({\n dataState: 'empty',\n panel: new SceneFlexLayout({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n message: EMPTY_STATE_ERROR_MESSAGE,\n remedyMessage: EMPTY_STATE_ERROR_REMEDY_MESSAGE,\n padding: '32px',\n }),\n }),\n ],\n }),\n });\n } else if (this.state.dataState !== 'done') {\n this.setState({\n dataState: 'done',\n panel: new SceneFlexLayout({\n direction: 'row',\n children: [\n new SceneFlexItem({\n body: PanelBuilders.table()\n .setHoverHeader(true)\n .setOverrides((builder) => {\n return builder\n .matchFieldsWithName('spanID')\n .overrideCustomFieldConfig('hidden', true)\n .matchFieldsWithName('traceService')\n .overrideCustomFieldConfig('width', 350)\n .matchFieldsWithName('traceName')\n .overrideCustomFieldConfig('width', 350);\n })\n .build(),\n }),\n ],\n }),\n });\n }\n }\n }\n\n public onChange = (columns: string[]) => {\n const variable = getSpanListColumnsVariable(this);\n if (variable.getValue() !== columns) {\n variable.changeValueTo(columns);\n\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.span_list_columns_changed,\n {\n columns,\n }\n );\n }\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel } = model.useState();\n const styles = getStyles(useTheme2());\n const variable = getSpanListColumnsVariable(model);\n const { attributes } = getTraceByServiceScene(model).useState();\n\n if (!panel) {\n return;\n }\n\n return (\n
\n
\n
View a list of spans for the current set of filters.
\n toOption(x)) ?? []}\n value={variable.getValue()}\n onChange={model.onChange}\n />\n
\n \n
\n );\n };\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n container: css({\n display: 'contents',\n\n '[role=\"cell\"] > div': {\n display: 'flex',\n width: '100%',\n },\n\n '.cell-link-wrapper': {\n display: 'flex',\n gap: '4px',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n\n a: {\n padding: 4,\n fontSize: 0,\n\n ':hover': {\n background: theme.colors.background.secondary,\n },\n },\n },\n\n '.cell-link': {\n color: theme.colors.text.link,\n cursor: 'pointer',\n maxWidth: '300px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n\n ':hover': {\n textDecoration: 'underline',\n },\n },\n }),\n description: css({\n fontSize: theme.typography.h6.fontSize,\n padding: `${theme.spacing(1)} 0 ${theme.spacing(2)} 0`,\n }),\n header: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n gap: '10px',\n }),\n };\n};\n\nconst SkeletonComponent = () => {\n const styles = useStyles2(getSkeletonStyles);\n\n return (\n
\n
\n \n
\n {[...Array(3)].map((_, i) => (\n
\n {[...Array(6)].map((_, j) => (\n \n \n \n ))}\n
\n ))}\n
\n );\n};\n\nfunction getSkeletonStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n height: '100%',\n width: '100%',\n position: 'absolute',\n backgroundColor: theme.colors.background.primary,\n border: `1px solid ${theme.colors.border.weak}`,\n padding: '5px',\n }),\n title: css({\n marginBottom: '20px',\n }),\n row: css({\n marginBottom: '5px',\n display: 'flex',\n justifyContent: 'space-around',\n }),\n rowItem: css({\n width: '14%',\n }),\n };\n}\n","import React from 'react';\n\nimport { SceneComponentProps, SceneFlexItem, SceneObject, SceneObjectBase, SceneObjectState } from '@grafana/scenes';\nimport { SpanListScene } from 'components/Explore/TracesByService/Tabs/Spans/SpanListScene';\nimport { getMetricVariable, getTraceByServiceScene } from 'utils/utils';\n\nexport interface SpansSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class SpansScene extends SceneObjectBase {\n constructor(state: Partial) {\n super({ ...state });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n this._subs.add(\n getTraceByServiceScene(this).state.$data?.subscribeToState(() => {\n this.updateBody();\n })\n );\n\n this._subs.add(\n getTraceByServiceScene(this).subscribeToState((newState, prevState) => {\n if (newState.$data?.state.key !== prevState.$data?.state.key) {\n this.updateBody();\n }\n })\n );\n\n this._subs.add(\n getMetricVariable(this).subscribeToState((newState, prevState) => {\n if (newState.value !== prevState.value) {\n this.updateBody();\n }\n })\n );\n\n this.updateBody();\n }\n\n private updateBody() {\n this.setState({ body: new SpanListScene({}) });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n return body && ;\n };\n}\n\nexport function buildSpansScene() {\n return new SceneFlexItem({\n body: new SpansScene({}),\n });\n}\n","import { Span } from '../../types';\n\nexport function nestedSetLeft(span: Span): number {\n if (span.attributes) {\n for (const a of span.attributes) {\n if (a.key === 'nestedSetLeft') {\n return parseInt(a.value.intValue || a.value.Value?.int_value || '0', 10);\n }\n }\n }\n\n throw new Error('nestedSetLeft not found!');\n}\n\nexport function nestedSetRight(span: Span): number {\n if (span.attributes) {\n for (const a of span.attributes) {\n if (a.key === 'nestedSetRight') {\n return parseInt(a.value.intValue || a.value.Value?.int_value || '0', 10);\n }\n }\n }\n\n throw new Error('nestedSetRight not found!');\n}\n","import { Span } from '../../types';\nimport { nestedSetLeft, nestedSetRight } from './utils';\n\nexport class TreeNode {\n name: string;\n serviceName: string;\n operationName: string;\n spans: Span[];\n left: number;\n right: number;\n children: TreeNode[];\n parent: TreeNode | null;\n traceID: string;\n\n constructor({\n name,\n serviceName,\n operationName,\n spans,\n left,\n right,\n traceID,\n }: {\n name: string;\n serviceName: string;\n operationName: string;\n spans: Span[];\n left: number;\n right: number;\n traceID: string;\n }) {\n this.name = name;\n this.serviceName = serviceName;\n this.operationName = operationName;\n this.spans = spans;\n this.left = left;\n this.right = right;\n this.children = [];\n this.parent = null;\n this.traceID = traceID;\n }\n\n addSpan(span: Span) {\n // expand our left/right based on this span\n this.left = Math.min(nestedSetLeft(span), this.left);\n this.right = Math.max(nestedSetRight(span), this.right);\n this.spans.push(span);\n }\n\n addChild(node: TreeNode) {\n node.parent = this;\n this.children.push(node);\n }\n\n isChild(span: Span): boolean {\n return nestedSetLeft(span) > this.left && nestedSetRight(span) < this.right;\n }\n\n findMatchingChild(span: Span): TreeNode | null {\n const name = nodeName(span);\n\n for (const child of this.children) {\n if (child.name === name) {\n return child;\n }\n }\n\n return null;\n }\n}\n\nexport function createNode(s: Span): TreeNode {\n const serviceNameAttr = s.attributes?.find((a) => a.key === 'service.name');\n return new TreeNode({\n left: nestedSetLeft(s),\n right: nestedSetRight(s),\n name: nodeName(s),\n serviceName: serviceNameAttr?.value.stringValue ?? serviceNameAttr?.value?.Value?.string_value ?? '',\n operationName: s.name ?? '',\n spans: [s],\n traceID: s.traceId ?? '',\n });\n}\n\nfunction nodeName(s: Span): string {\n let svcName = '';\n for (const a of s.attributes || []) {\n if (a.key === 'service.name' && a.value.stringValue) {\n svcName = a.value.stringValue;\n }\n }\n\n return `${svcName}:${s.name}`;\n}\n","import { TraceSearchMetadata } from '../../types';\nimport { createNode, TreeNode } from './tree-node';\nimport { nestedSetLeft } from './utils';\n\nexport function mergeTraces(traces: TraceSearchMetadata[]): TreeNode {\n const tree = new TreeNode({\n name: 'root',\n serviceName: '',\n operationName: '',\n left: Number.MIN_SAFE_INTEGER,\n right: Number.MAX_SAFE_INTEGER,\n spans: [],\n traceID: '',\n });\n\n if (traces && traces.length > 0) {\n for (const trace of traces) {\n if (trace.spanSets?.length !== 1) {\n throw new Error('there should be only 1 spanset!');\n }\n\n const traceStartTime = parseInt(trace.startTimeUnixNano || '0', 10);\n\n const ss = trace.spanSets[0];\n // sort by nestedSetLeft\n ss.spans.sort((s1, s2) => nestedSetLeft(s1) - nestedSetLeft(s2));\n\n // reset curNode to root each loop to re-overlay the next trace\n let curNode: TreeNode = tree;\n // left/right is only valid w/i a trace, so reset it each loop\n resetLeftRight(tree);\n for (const span of ss.spans) {\n // force traceID to be the same for all spans in a trace\n span.traceId = trace.traceID;\n span.startTimeUnixNano = `${parseInt(span.startTimeUnixNano, 10) - traceStartTime}`;\n\n // walk up the tree until we find a node that is a parent of this span\n while (curNode.parent !== null) {\n if (curNode.isChild(span)) {\n break;\n }\n curNode = curNode.parent;\n }\n\n // is there an already existing child that matches the span?\n const child = curNode.findMatchingChild(span);\n if (child) {\n child.addSpan(span);\n // to the next span!\n curNode = child;\n continue;\n }\n\n // if not, create a new child node and make it the cur node\n const newNode = createNode(span);\n newNode.traceID = trace.traceID;\n curNode.addChild(newNode);\n curNode = newNode;\n }\n }\n }\n\n return tree;\n}\n\nexport function dumpTree(t: TreeNode, depth: number): string {\n let result = '';\n const space = ' '.repeat(depth * 2);\n\n result += `${space}${t.name} ${t.spans.length}\\n`;\n\n for (const c of t.children) {\n result += dumpTree(c, depth + 1);\n }\n return result;\n}\n\nfunction resetLeftRight(t: TreeNode) {\n t.left = Number.MAX_SAFE_INTEGER;\n t.right = Number.MIN_SAFE_INTEGER;\n\n for (const c of t.children) {\n resetLeftRight(c);\n }\n}\n","import React from 'react';\n\nimport {\n PanelBuilders,\n SceneComponentProps,\n SceneDataNode,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObjectBase,\n SceneObjectState,\n SceneQueryRunner,\n} from '@grafana/scenes';\nimport {\n EMPTY_STATE_ERROR_MESSAGE,\n explorationDS,\n filterStreamingProgressTransformations,\n MetricFunction,\n VAR_FILTERS_EXPR,\n VAR_LATENCY_PARTIAL_THRESHOLD_EXPR,\n VAR_LATENCY_THRESHOLD_EXPR,\n} from '../../../../../utils/shared';\nimport { TraceSearchMetadata } from '../../../../../types';\nimport { mergeTraces } from '../../../../../utils/trace-merge/merge';\nimport { createDataFrame, Field, FieldType, GrafanaTheme2, LinkModel, LoadingState } from '@grafana/data';\nimport { TreeNode } from '../../../../../utils/trace-merge/tree-node';\nimport { Icon, LinkButton, Stack, Text, useTheme2 } from '@grafana/ui';\nimport Skeleton from 'react-loading-skeleton';\nimport { EmptyState } from '../../../../states/EmptyState/EmptyState';\nimport { css } from '@emotion/css';\nimport { getOpenTrace, getTraceExplorationScene } from 'utils/utils';\nimport { structureDisplayName } from '../TabsBarScene';\n\nexport interface ServicesTabSceneState extends SceneObjectState {\n panel?: SceneFlexLayout;\n loading?: boolean;\n tree?: TreeNode;\n metric?: MetricFunction;\n}\n\nconst ROOT_SPAN_ID = '0000000000000000';\n\nexport class StructureTabScene extends SceneObjectBase { \n constructor(state: Partial) {\n super({\n $data: new SceneDataTransformer({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [buildQuery(state.metric as MetricFunction)],\n }),\n transformations: filterStreamingProgressTransformations,\n }),\n loading: true,\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n public _onActivate() {\n this._subs.add(\n this.state.$data?.subscribeToState((state) => {\n if (state.data?.state === LoadingState.Loading || state.data?.state === LoadingState.Streaming) {\n this.setState({ loading: true });\n return;\n }\n \n if (state.data?.state === LoadingState.Done && state.data?.series.length) {\n const frame = state.data?.series[0].fields[0].values[0];\n if (frame) {\n const response = JSON.parse(frame) as TraceSearchMetadata[];\n const tree = mergeTraces(response);\n tree.children.sort((a, b) => countSpans(b) - countSpans(a));\n \n this.setState({\n loading: false,\n tree,\n panel: new SceneFlexLayout({\n height: '100%',\n wrap: 'wrap',\n children: this.getPanels(tree),\n }),\n });\n }\n }\n })\n );\n }\n\n private getPanels(tree: TreeNode) {\n return tree.children.map((child) => {\n return new SceneFlexItem({\n height: 150,\n width: '100%',\n minHeight: '400px',\n body: this.getPanel(child),\n });\n });\n }\n\n private getPanel(tree: TreeNode) {\n const timeRange = sceneGraph.getTimeRange(this);\n const from = timeRange.state.value.from;\n const to = timeRange.state.value.to;\n\n const openTrace = getOpenTrace(this);\n\n return PanelBuilders.traces()\n .setTitle(`Structure for ${tree.serviceName} [${countSpans(tree)} spans used]`)\n .setOption('createFocusSpanLink' as any, (traceId: string, spanId: string): LinkModel => {\n return {\n title: 'Open trace',\n href: '#',\n onClick: () => openTrace(traceId, spanId),\n origin: {} as Field,\n target: '_self',\n };\n })\n .setData(\n new SceneDataNode({\n data: {\n state: LoadingState.Done,\n timeRange: {\n from,\n to,\n raw: { from, to },\n },\n series: [\n {\n ...this.buildData(tree),\n },\n ],\n },\n })\n )\n .build();\n }\n\n private buildData(tree: TreeNode) {\n const trace = this.getTrace(tree, ROOT_SPAN_ID);\n const traceName = trace[0].serviceName + ':' + trace[0].operationName;\n\n return createDataFrame({\n name: `Trace ${traceName}`,\n refId: `trace_${traceName}`,\n fields: [\n {\n name: 'references',\n type: FieldType.other,\n values: trace.map((x) => x.references),\n },\n {\n name: 'traceID',\n type: FieldType.string,\n values: trace.map((x) => x.traceID),\n },\n {\n name: 'spanID',\n type: FieldType.string,\n values: trace.map((x) => x.spanID),\n },\n {\n name: 'parentSpanID',\n type: FieldType.string,\n values: trace.map((x) => x.parentSpanId),\n },\n {\n name: 'serviceName',\n type: FieldType.string,\n values: trace.map((x) => x.serviceName),\n },\n {\n name: 'operationName',\n type: FieldType.string,\n values: trace.map((x) => x.operationName),\n },\n {\n name: 'duration',\n type: FieldType.number,\n values: trace.map((x) => x.duration),\n },\n {\n name: 'startTime',\n type: FieldType.number,\n values: trace.map((x) => x.startTime),\n },\n {\n name: 'statusCode',\n type: FieldType.number,\n values: trace.map((x) => x.statusCode),\n },\n ],\n });\n }\n\n private getTrace(node: TreeNode, spanID: string) {\n const erroredSpans = node.spans.reduce(\n (acc, c) => (c.attributes?.find((a) => a.key === 'status')?.value.stringValue === 'error' ? acc + 1 : acc),\n 0\n );\n\n // start time needs to be different from zero otherwise for the root, otherwise the Trace View won't render it\n let startTime = 0.0001;\n if (spanID !== ROOT_SPAN_ID) {\n startTime =\n node.spans.reduce((acc, c) => acc + parseInt(c.startTimeUnixNano, 10), 0) / node.spans.length / 1000000;\n }\n\n const values = [\n {\n // Add last 5 spans of the list as external references\n // refType = 'EXTERNAL' doesn't mean anything, it's just to be different from CHILD_OF and FOLLOW_FROM\n references: node.spans.slice(-5).map((x) => ({\n refType: 'EXTERNAL',\n traceID: x.traceId,\n spanID: x.spanID,\n })),\n traceID: node.traceID,\n spanID: node.spans[0].spanID,\n parentSpanId: spanID,\n serviceName: node.serviceName,\n operationName: node.operationName,\n statusCode: erroredSpans > 0 ? 2 /*error*/ : 0 /*unset*/,\n duration: node.spans.reduce((acc, c) => acc + parseInt(c.durationNanos, 10), 0) / node.spans.length / 1000000,\n startTime,\n },\n ];\n\n for (const child of node.children) {\n values.push(...this.getTrace(child, node.spans[0].spanID));\n }\n return values;\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { tree, loading, panel, $data } = model.useState();\n const styles = getStyles(useTheme2());\n const theme = useTheme2();\n\n const exploration = getTraceExplorationScene(model);\n const { value } = exploration.getMetricVariable().useState();\n\n const metric = value as MetricFunction;\n\n let isLoading = loading || !tree?.children.length;\n if ($data?.state.data?.state === LoadingState.Done) {\n isLoading = false;\n }\n\n let description;\n let emptyMsg = '';\n switch (metric) {\n case 'rate':\n description = (\n <>\n
Analyse the service structure of the traces that match the current filters.
\n
Each panel represents an aggregate view compiled using spans from multiple traces.
\n \n );\n emptyMsg = 'server';\n break;\n case 'errors':\n description = (\n <>\n
Analyse the errors structure of the traces that match the current filters.
\n
Each panel represents an aggregate view compiled using spans from multiple traces.
\n \n );\n emptyMsg = 'error';\n break;\n case 'duration':\n description = (\n <>\n
Analyse the structure of slow spans from the traces that match the current filters.
\n
Each panel represents an aggregate view compiled using spans from multiple traces.
\n \n );\n emptyMsg = 'slow';\n break;\n }\n\n const tabName = structureDisplayName(metric);\n\n const noDataMessage = (\n <>\n \n {EMPTY_STATE_ERROR_MESSAGE}\n \n \n
\n The structure tab shows {emptyMsg} spans beneath what you are currently investigating. Currently, there are\n no descendant {emptyMsg} spans beneath the spans you are investigating.\n
\n
\n \n \n \n The structure tab works best with full traces.\n \n \n\n
\n Read more about\n
\n \n {`${tabName.toLowerCase()}`}\n \n
\n
\n \n );\n\n return (\n \n
{description}
\n {isLoading && (\n \n \n \n )}\n\n {!isLoading && tree && tree.children.length > 0 && (\n
{panel && }
\n )}\n\n {$data?.state.data?.state === LoadingState.Done && !tree?.children.length && (\n \n )}\n
\n );\n };\n}\n\nfunction buildQuery(metric: MetricFunction) {\n let metricQuery;\n let selectionQuery = '';\n switch (metric) {\n case 'errors':\n metricQuery = 'status = error';\n selectionQuery = 'status = error';\n break;\n case 'duration':\n metricQuery = `duration > ${VAR_LATENCY_PARTIAL_THRESHOLD_EXPR}`;\n selectionQuery = `duration > ${VAR_LATENCY_THRESHOLD_EXPR}`;\n break;\n default:\n metricQuery = 'kind = server';\n break;\n }\n\n return {\n refId: 'A',\n query: `{${VAR_FILTERS_EXPR} ${\n selectionQuery.length ? `&& ${selectionQuery}` : ''\n }} &>> { ${metricQuery} } | select(status, resource.service.name, name, nestedSetParent, nestedSetLeft, nestedSetRight)`,\n queryType: 'traceql',\n tableType: 'raw',\n limit: 200,\n spss: 20,\n filters: [],\n };\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n description: css({\n fontSize: theme.typography.h6.fontSize,\n padding: `${theme.spacing(1)} 0`,\n }),\n traceViewList: css({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing.x1,\n // Hide the minimap and header components\n 'div[class*=\"panel-content\"] > div': {\n overflow: 'auto',\n '> :not([class*=\"TraceTimelineViewer\"])': {\n display: 'none',\n },\n },\n // Hide the Span and Resource accordions from span details\n 'div[data-testid=\"span-detail-component\"] > :nth-child(4) > :nth-child(1)': {\n display: 'none',\n },\n\n // Hide span details row\n '.span-detail-row': {\n display: 'none',\n },\n\n // Remove cursor pointer as span details is hidden\n 'div[data-testid=\"TimelineRowCell\"]': {\n 'button[role=\"switch\"]': {\n cursor: 'text',\n },\n },\n 'div[data-testid=\"span-view\"]': {\n cursor: 'text !important',\n },\n }),\n longText: css({\n maxWidth: '800px',\n margin: '0 auto',\n }),\n action: css({\n marginLeft: theme.spacing(1),\n }),\n actionContainer: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }),\n };\n};\n\nfunction countSpans(tree: TreeNode) {\n let count = tree.spans.length;\n for (const child of tree.children) {\n count += countSpans(child);\n }\n return count;\n}\n\nexport function buildStructureScene(metric: MetricFunction) {\n return new SceneFlexItem({\n body: new StructureTabScene({ metric }),\n });\n}\n","import { css } from '@emotion/css';\nimport { useResizeObserver } from '@react-aria/utils';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { GrafanaTheme2, SelectableValue } from '@grafana/data';\nimport { Select, RadioButtonGroup, useStyles2, useTheme2, measureText, Field, InputActionMeta } from '@grafana/ui';\nimport { ALL, ignoredAttributes, maxOptions, MetricFunction, RESOURCE_ATTR, SPAN_ATTR } from 'utils/shared';\nimport { AttributesBreakdownScene } from './TracesByService/Tabs/Breakdown/AttributesBreakdownScene';\nimport { AttributesComparisonScene } from './TracesByService/Tabs/Comparison/AttributesComparisonScene';\nimport { getFiltersVariable, getMetricVariable } from 'utils/utils';\n\ntype Props = {\n options: Array>;\n radioAttributes: string[];\n value?: string;\n onChange: (label: string, ignore?: boolean) => void;\n showAll?: boolean;\n model: AttributesBreakdownScene | AttributesComparisonScene;\n};\n\nconst additionalWidthPerItem = 40;\nconst widthOfOtherAttributes = 180;\n\nexport function GroupBySelector({ options, radioAttributes, value, onChange, showAll = false, model }: Props) {\n const styles = useStyles2(getStyles);\n const theme = useTheme2();\n const { fontSize } = theme.typography;\n\n const [selectQuery, setSelectQuery] = useState('');\n\n const [availableWidth, setAvailableWidth] = useState(0);\n const controlsContainer = useRef(null);\n\n const { filters } = getFiltersVariable(model).useState();\n const { value: metric } = getMetricVariable(model).useState();\n const metricValue = metric as MetricFunction;\n\n useResizeObserver({\n ref: controlsContainer,\n onResize: () => {\n const element = controlsContainer.current;\n if (element) {\n setAvailableWidth(element.clientWidth);\n }\n },\n });\n\n const radioOptions = useMemo(() => {\n let radioOptionsWidth = 0;\n return radioAttributes\n .filter((op) => {\n // remove radio options that are in the dropdown\n let checks = !!options.find((o) => o.value === op);\n\n // remove radio options that are in the filters\n if (filters.find((f) => f.key === op && (f.operator === '=' || f.operator === '!='))) {\n return false;\n }\n\n // if filters (primary signal) has 'Full Traces' selected, then don't add rootName or rootServiceName to options\n // as you would overwrite it in the query if it's selected\n if (filters.find((f) => f.key === 'nestedSetParent')) {\n checks = checks && op !== 'rootName' && op !== 'rootServiceName';\n }\n\n // if rate or error rate metric is selected, then don't add status to options\n // as you would overwrite it in the query if it's selected\n if (metricValue === 'rate' || metricValue === 'errors') {\n checks = checks && op !== 'status';\n }\n\n return checks;\n })\n .map((attribute) => ({\n label: attribute.replace(SPAN_ATTR, '').replace(RESOURCE_ATTR, ''),\n text: attribute,\n value: attribute,\n }))\n .filter((option) => {\n const text = option.label || option.text || '';\n const textWidth = measureText(text, fontSize).width;\n if (radioOptionsWidth + textWidth + additionalWidthPerItem + widthOfOtherAttributes < availableWidth) {\n radioOptionsWidth += textWidth + additionalWidthPerItem;\n return true;\n } else {\n return false;\n }\n });\n }, [radioAttributes, options, filters, metricValue, fontSize, availableWidth]);\n\n const otherAttrOptions = useMemo(() => {\n const ops = options.filter((op) => !radioOptions.find((ro) => ro.value === op.value?.toString()));\n return filteredOptions(ops, selectQuery);\n }, [selectQuery, options, radioOptions]);\n\n const getModifiedSelectOptions = (options: Array>) => {\n return options\n .filter((op) => !ignoredAttributes.includes(op.value?.toString()!))\n .map((op) => ({ label: op.label?.replace(SPAN_ATTR, '').replace(RESOURCE_ATTR, ''), value: op.value }));\n };\n\n // Set default value as first value in options\n useEffect(() => {\n const defaultValue = radioAttributes[0] ?? options[0]?.value;\n if (defaultValue) {\n if (!showAll && (!value || value === ALL)) {\n onChange(defaultValue, true);\n }\n }\n });\n\n const showAllOption = showAll ? [{ label: ALL, value: ALL }] : [];\n const defaultOnChangeValue = showAll ? ALL : '';\n\n return (\n \n
\n {radioOptions.length > 0 && (\n \n )}\n x.value === value) ? value : null} // remove value from select when radio button clicked\n placeholder={'Other attributes'}\n options={getModifiedSelectOptions(otherAttrOptions)}\n onChange={(selected) => {\n const newSelected = selected?.value ?? defaultOnChangeValue;\n onChange(newSelected);\n }}\n className={styles.select}\n isClearable\n onInputChange={(value: string, { action }: InputActionMeta) => {\n if (action === 'input-change') {\n setSelectQuery(value);\n }\n }}\n onCloseMenu={() => setSelectQuery('')}\n virtualized\n />\n
\n
\n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n select: css({\n maxWidth: theme.spacing(22),\n }),\n container: css({\n display: 'flex',\n gap: theme.spacing(1),\n }),\n };\n}\n\nexport const filteredOptions = (options: Array>, query: string) => {\n if (options.length === 0) {\n return [];\n }\n\n if (query.length === 0) {\n return options.slice(0, maxOptions);\n }\n\n const queryLowerCase = query.toLowerCase();\n return options\n .filter((tag) => {\n if (tag.value && tag.value.length > 0) {\n return tag.value.toLowerCase().includes(queryLowerCase);\n }\n return false;\n })\n .slice(0, maxOptions);\n};\n","import React from 'react';\n\nimport { SelectableValue } from '@grafana/data';\nimport { SceneComponentProps, SceneObject, SceneObjectBase, SceneObjectState } from '@grafana/scenes';\nimport { Field, RadioButtonGroup } from '@grafana/ui';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../utils/analytics';\n\nexport interface LayoutSwitcherState extends SceneObjectState {\n active: LayoutType;\n layouts: SceneObject[];\n options: Array>;\n}\n\nexport type LayoutType = 'single' | 'grid' | 'rows';\n\nexport class LayoutSwitcher extends SceneObjectBase {\n public Selector({ model }: { model: LayoutSwitcher }) {\n const { active, options } = model.useState();\n\n return (\n \n \n \n );\n }\n\n public onLayoutChange = (active: LayoutType) => {\n this.setState({ active });\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.layout_type_changed, {\n layout: active,\n });\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { layouts, options, active } = model.useState();\n\n const index = options.findIndex((o) => o.value === active);\n if (index === -1) {\n return null;\n }\n\n const layout = layouts[index];\n\n return ;\n };\n}\n","import { PanelBuilders } from '@grafana/scenes';\nimport { TooltipDisplayMode } from '@grafana/ui';\n\nexport const linesPanelConfig = () => {\n return PanelBuilders.timeseries()\n .setOption('legend', { showLegend: false })\n .setOption('tooltip', { mode: TooltipDisplayMode.Multi })\n .setCustomFieldConfig('fillOpacity', 15);\n};\n","import { TimeRange } from '@grafana/data';\nimport { sceneGraph, SceneObject, SceneObjectBase, SceneObjectState, SceneQueryRunner } from '@grafana/scenes';\nimport { DataQuery, DataSourceRef } from '@grafana/schema';\n\nimport Logo from '../../../../src/img/logo.svg';\n\nexport interface AddToInvestigationButtonState extends SceneObjectState {\n dsUid?: string;\n query?: string;\n labelValue?: string;\n type?: string;\n context?: ExtensionContext;\n queries: DataQuery[];\n}\n\ninterface ExtensionContext {\n timeRange: TimeRange;\n queries: DataQuery[];\n datasource: DataSourceRef;\n origin: string;\n url: string;\n type: string;\n title: string;\n id: string;\n logoPath: string;\n}\n\nexport class AddToInvestigationButton extends SceneObjectBase {\n constructor(state: Omit) {\n super({ ...state, queries: [] });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate = () => {\n this._subs.add(\n this.subscribeToState(() => {\n this.getQueries();\n this.getContext();\n })\n );\n };\n\n private readonly getQueries = () => {\n const data = sceneGraph.getData(this);\n const queryRunner = sceneGraph.findObject(data, isQueryRunner);\n\n if (isQueryRunner(queryRunner)) {\n const queries = queryRunner.state.queries.map((q) => ({\n ...q,\n query: this.state.query,\n }));\n\n if (JSON.stringify(queries) !== JSON.stringify(this.state.queries)) {\n this.setState({ queries });\n }\n }\n };\n\n private readonly getContext = () => {\n const { queries, dsUid, labelValue, type = 'traceMetrics' } = this.state;\n const timeRange = sceneGraph.getTimeRange(this);\n\n if (!timeRange || !queries || !dsUid) {\n return;\n }\n const ctx = {\n origin: 'Explore Traces',\n type,\n queries,\n timeRange: { ...timeRange.state.value },\n datasource: { uid: dsUid },\n url: window.location.href,\n id: `${JSON.stringify(queries)}`,\n title: `${labelValue}`,\n logoPath: Logo,\n };\n if (JSON.stringify(ctx) !== JSON.stringify(this.state.context)) {\n this.setState({ context: ctx });\n }\n };\n}\n\nfunction isQueryRunner(o: SceneObject | null): o is SceneQueryRunner {\n return o instanceof SceneQueryRunner;\n}\n","import { PanelMenuItem, PluginExtensionLink, toURLRange, urlUtil } from '@grafana/data';\nimport {\n SceneObjectBase,\n VizPanelMenu,\n SceneObject,\n SceneComponentProps,\n sceneGraph,\n SceneObjectState,\n} from '@grafana/scenes';\nimport React from 'react';\nimport { AddToInvestigationButton } from '../actions/AddToInvestigationButton';\n// Certain imports are not available in the dependant package, but can be if the plugin is running in a different Grafana version.\n// We need both imports to support Grafana v11 and v12.\n// @ts-expect-error\nimport { config, getPluginLinkExtensions, getObservablePluginLinks } from '@grafana/runtime';\nimport { reportAppInteraction, USER_EVENTS_PAGES, USER_EVENTS_ACTIONS } from 'utils/analytics';\nimport { getCurrentStep, getDataSource, getTraceExplorationScene } from 'utils/utils';\nimport { firstValueFrom } from 'rxjs';\n\nexport const ADD_TO_INVESTIGATION_MENU_TEXT = 'Add to investigation';\nconst extensionPointId = 'grafana-exploretraces-app/investigation/v1';\nconst ADD_TO_INVESTIGATION_MENU_DIVIDER_TEXT = 'investigations_divider'; // Text won't be visible\nconst ADD_TO_INVESTIGATION_MENU_GROUP_TEXT = 'Investigations';\n\ninterface PanelMenuState extends SceneObjectState {\n body?: VizPanelMenu;\n query?: string;\n labelValue?: string;\n addToInvestigationButton?: AddToInvestigationButton;\n}\n\nexport class PanelMenu extends SceneObjectBase implements VizPanelMenu, SceneObject {\n constructor(state: Partial) {\n super(state);\n this.addActivationHandler(() => {\n const items: PanelMenuItem[] = [\n {\n text: 'Navigation',\n type: 'group',\n },\n {\n text: 'Explore',\n iconClassName: 'compass',\n href: getExploreHref(this),\n onClick: () => onExploreClick(),\n },\n ];\n\n this.setState({\n body: new VizPanelMenu({\n items,\n }),\n });\n\n const traceExploration = getTraceExplorationScene(this);\n const dsUid = getDataSource(traceExploration);\n\n const addToInvestigationButton = new AddToInvestigationButton({\n query: this.state.query,\n dsUid,\n });\n\n addToInvestigationButton.activate();\n this.setState({ addToInvestigationButton });\n this._subs.add(\n addToInvestigationButton?.subscribeToState(() => {\n subscribeToAddToInvestigation(this);\n })\n );\n \n addToInvestigationButton.setState({\n ...addToInvestigationButton.state,\n labelValue: this.state.labelValue,\n });\n });\n }\n\n addItem(item: PanelMenuItem): void {\n if (this.state.body) {\n this.state.body.addItem(item);\n }\n }\n\n setItems(items: PanelMenuItem[]): void {\n if (this.state.body) {\n this.state.body.setItems(items);\n }\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n\n if (body) {\n return ;\n }\n\n return <>;\n };\n}\n\nconst getExploreHref = (model: SceneObject) => {\n const traceExploration = getTraceExplorationScene(model);\n const datasource = getDataSource(traceExploration);\n const timeRange = sceneGraph.getTimeRange(model).state.value;\n const step = getCurrentStep(model);\n\n const exploreState = JSON.stringify({\n ['traces-explore']: {\n range: toURLRange(timeRange.raw),\n queries: [{ refId: 'A', datasource, query: model.state.query, step }],\n },\n });\n const subUrl = config.appSubUrl ?? '';\n const exploreUrl = urlUtil.renderUrl(`${subUrl}/explore`, { panes: exploreState, schemaVersion: 1 });\n return exploreUrl;\n};\n\nconst onExploreClick = () => {\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.open_in_explore_clicked);\n};\n\nexport const getInvestigationLink = async (addToInvestigations: AddToInvestigationButton) => {\n const context = addToInvestigations.state.context;\n\n // `getPluginLinkExtensions` is removed in Grafana v12\n if (getPluginLinkExtensions !== undefined) {\n const links = getPluginLinkExtensions({\n extensionPointId,\n context,\n });\n\n return links.extensions[0];\n }\n\n // `getObservablePluginLinks` is introduced in Grafana v12\n if (getObservablePluginLinks !== undefined) {\n const links: PluginExtensionLink[] = await firstValueFrom(\n getObservablePluginLinks({\n extensionPointId,\n context,\n })\n );\n\n return links[0];\n }\n\n return undefined;\n};\n\nasync function subscribeToAddToInvestigation(menu: PanelMenu) {\n const addToInvestigationButton = menu.state.addToInvestigationButton;\n if (addToInvestigationButton) {\n const link = await getInvestigationLink(addToInvestigationButton);\n const existingMenuItems = menu.state.body?.state.items ?? [];\n const existingAddToInvestigationLink = existingMenuItems.find(\n (item) => item.text === ADD_TO_INVESTIGATION_MENU_TEXT\n );\n\n if (link) {\n if (!existingAddToInvestigationLink) {\n menu.state.body?.addItem({\n text: ADD_TO_INVESTIGATION_MENU_DIVIDER_TEXT,\n type: 'divider',\n });\n menu.state.body?.addItem({\n text: ADD_TO_INVESTIGATION_MENU_GROUP_TEXT,\n type: 'group',\n });\n menu.state.body?.addItem({\n text: ADD_TO_INVESTIGATION_MENU_TEXT,\n iconClassName: 'plus-square',\n onClick: (e) => {\n if (link.onClick) {\n link.onClick(e);\n }\n\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.add_to_investigation_clicked\n );\n },\n });\n } else {\n if (existingAddToInvestigationLink) {\n menu.state.body?.setItems(\n existingMenuItems.filter(\n (item) =>\n [\n ADD_TO_INVESTIGATION_MENU_DIVIDER_TEXT,\n ADD_TO_INVESTIGATION_MENU_GROUP_TEXT,\n ADD_TO_INVESTIGATION_MENU_TEXT,\n ].includes(item.text) === false\n )\n );\n }\n }\n }\n }\n}\n","import {\n CustomVariable,\n SceneCSSGridItem,\n SceneCSSGridLayout,\n SceneDataNode,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObject,\n VizPanelState,\n} from '@grafana/scenes';\nimport { LayoutSwitcher } from '../LayoutSwitcher';\nimport { explorationDS, GRID_TEMPLATE_COLUMNS, MetricFunction } from '../../../utils/shared';\nimport { ByFrameRepeater } from '../ByFrameRepeater';\nimport { formatLabelValue, getLabelValue, getOpenTrace, getTraceExplorationScene } from '../../../utils/utils';\nimport { map, Observable } from 'rxjs';\nimport { DataFrame, PanelData, reduceField, ReducerID } from '@grafana/data';\nimport { generateMetricsQuery, metricByWithStatus } from '../queries/generateMetricsQuery';\nimport { barsPanelConfig } from '../panels/barsPanel';\nimport { linesPanelConfig } from '../panels/linesPanel';\nimport { StepQueryRunner } from '../queries/StepQueryRunner';\nimport { syncYAxis } from '../behaviors/syncYaxis';\nimport { exemplarsTransformations } from '../../../utils/exemplars';\nimport { PanelMenu } from '../panels/PanelMenu';\n\nexport function buildNormalLayout(\n scene: SceneObject,\n variable: CustomVariable,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions']\n) {\n const traceExploration = getTraceExplorationScene(scene);\n const metric = traceExploration.getMetricVariable().getValue() as MetricFunction;\n const query = metricByWithStatus(metric, variable.getValueText());\n const panels: Record = {};\n\n return new LayoutSwitcher({\n $behaviors: [syncYAxis()],\n $data: new SceneDataTransformer({\n $data: new StepQueryRunner({\n maxDataPoints: 64,\n datasource: explorationDS,\n queries: [query],\n }),\n transformations: [\n ...exemplarsTransformations(getOpenTrace(scene)),\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n data.forEach((a) => reduceField({ field: a.fields[1], reducers: [ReducerID.max] }));\n return data.sort((a, b) => {\n return (b.fields[1].state?.calcs?.max || 0) - (a.fields[1].state?.calcs?.max || 0);\n });\n })\n );\n },\n ],\n }),\n options: [\n { value: 'single', label: 'Single' },\n { value: 'grid', label: 'Grid' },\n { value: 'rows', label: 'Rows' },\n ],\n active: 'grid',\n layouts: [\n new SceneFlexLayout({\n direction: 'column',\n children: [\n new SceneFlexItem({\n minHeight: 300,\n body: (metric === 'duration' ? linesPanelConfig().setUnit('s') : linesPanelConfig()).build(),\n }),\n ],\n }),\n new ByFrameRepeater({\n body: new SceneCSSGridLayout({\n templateColumns: GRID_TEMPLATE_COLUMNS,\n autoRows: '200px',\n isLazy: true,\n children: [],\n }),\n groupBy: true,\n getLayoutChild: getLayoutChild(panels, getLabelValue, variable, metric, actionsFn),\n }),\n new ByFrameRepeater({\n body: new SceneCSSGridLayout({\n templateColumns: '1fr',\n autoRows: '200px',\n isLazy: true,\n children: [],\n }),\n groupBy: true,\n getLayoutChild: getLayoutChild(panels, getLabelValue, variable, metric, actionsFn),\n }),\n ],\n });\n}\n\nexport function getLayoutChild(\n panels: Record,\n getTitle: (df: DataFrame, labelName: string) => string,\n variable: CustomVariable,\n metric: MetricFunction,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions']\n) {\n return (data: PanelData, frame: DataFrame) => {\n const existingGridItem = frame.name ? panels[frame.name] : undefined;\n\n const dataNode = new SceneDataNode({\n data: {\n ...data,\n annotations: data.annotations?.filter((a) => a.refId === frame.refId),\n series: [\n {\n ...frame,\n fields: frame.fields.sort((a, b) => a.labels?.status?.localeCompare(b.labels?.status || '') || 0),\n },\n ],\n },\n });\n\n if (existingGridItem) {\n existingGridItem.state.body?.setState({ $data: dataNode });\n return existingGridItem;\n }\n\n const query = sceneGraph.interpolate(\n variable,\n generateMetricsQuery({\n metric,\n extraFilters: `${variable.getValueText()}=${formatLabelValue(getLabelValue(frame))}`,\n groupByStatus: true,\n })\n );\n\n const panel = (metric === 'duration' ? linesPanelConfig().setUnit('s') : barsPanelConfig())\n .setTitle(getTitle(frame, variable.getValueText()))\n .setMenu(new PanelMenu({ query, labelValue: getLabelValue(frame) }))\n .setData(dataNode);\n\n const actions = actionsFn(frame);\n if (actions) {\n panel.setHeaderActions(actions);\n }\n\n const gridItem = new SceneCSSGridItem({\n body: panel.build(),\n });\n if (frame.name) {\n panels[frame.name] = gridItem;\n }\n\n return gridItem;\n };\n}\n","import { sceneGraph, SceneObject, SceneObjectState, VizPanel } from '@grafana/scenes';\nimport { cloneDeep, merge } from 'lodash';\nimport { EventTimeseriesDataReceived } from '../../../utils/shared';\n\nexport function syncYAxis() {\n return (vizPanel: SceneObject) => {\n const maxima = new Map();\n\n const eventSub = vizPanel.subscribeToEvent(EventTimeseriesDataReceived, (event) => {\n const series = event.payload.series;\n\n series?.forEach((s) => {\n s.fields.slice(1).forEach((f) => {\n maxima.set(s.refId as string, Math.max(...f.values.filter((v) => v)));\n })\n });\n\n updateTimeseriesAxis(vizPanel, Math.max(...maxima.values()));\n });\n\n return () => {\n eventSub.unsubscribe();\n };\n };\n}\n\nfunction updateTimeseriesAxis(vizPanel: SceneObject, max: number) {\n // findAllObjects searches down the full scene graph\n const timeseries = sceneGraph.findAllObjects(vizPanel, (o) => o instanceof VizPanel) as VizPanel[];\n\n for (const t of timeseries) {\n t.clearFieldConfigCache(); // required\n\n t.setState({\n fieldConfig: merge(cloneDeep(t.state.fieldConfig), { defaults: { max } }),\n });\n }\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useTheme2 } from '@grafana/ui';\n\ntype Tag = {\n label: string;\n color: string;\n};\n\ntype Props = {\n description: string;\n tags: Tag[];\n};\n\nexport function AttributesDescription({ description, tags }: Props) {\n const theme = useTheme2();\n const styles = getStyles(theme);\n\n return (\n
\n
{description}
\n {tags.length > 0 &&\n tags.map((tag) => (\n
\n
\n
{tag.label}
\n
\n ))}\n
\n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n infoFlex: css({\n display: 'flex',\n gap: theme.spacing(2),\n alignItems: 'center',\n padding: `${theme.spacing(1)} 0 ${theme.spacing(2)} 0`,\n }),\n tagsFlex: css({\n display: 'flex',\n gap: theme.spacing(1),\n alignItems: 'center',\n }),\n tag: css({\n display: 'inline-block',\n width: theme.spacing(2),\n height: theme.spacing(0.5),\n borderRadius: theme.spacing(0.5),\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport React, { useState } from 'react';\n\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport {\n CustomVariable,\n SceneComponentProps,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n VariableDependencyConfig,\n} from '@grafana/scenes';\nimport { Field, RadioButtonGroup, useStyles2 } from '@grafana/ui';\n\nimport { GroupBySelector } from '../../../GroupBySelector';\nimport {\n MetricFunction,\n RESOURCE,\n RESOURCE_ATTR,\n SPAN,\n SPAN_ATTR,\n VAR_FILTERS,\n VAR_METRIC,\n radioAttributesResource,\n radioAttributesSpan,\n} from '../../../../../utils/shared';\n\nimport { LayoutSwitcher } from '../../../LayoutSwitcher';\nimport { AddToFiltersAction } from '../../../actions/AddToFiltersAction';\nimport { buildNormalLayout } from '../../../layouts/attributeBreakdown';\nimport {\n getAttributesAsOptions,\n getGroupByVariable,\n getTraceByServiceScene,\n getTraceExplorationScene,\n} from 'utils/utils';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../../../utils/analytics';\nimport { AttributesDescription } from './AttributesDescription';\n\nexport interface AttributesBreakdownSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class AttributesBreakdownScene extends SceneObjectBase {\n protected _variableDependency = new VariableDependencyConfig(this, {\n variableNames: [VAR_FILTERS, VAR_METRIC],\n onReferencedVariableValueChanged: this.onReferencedVariableValueChanged.bind(this),\n });\n\n constructor(state: Partial) {\n super({\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n const variable = getGroupByVariable(this);\n\n variable.subscribeToState(() => {\n this.setBody(variable);\n });\n\n getTraceByServiceScene(this).subscribeToState(() => {\n this.setBody(variable);\n });\n\n this.setBody(variable);\n }\n\n private onReferencedVariableValueChanged() {\n const variable = getGroupByVariable(this);\n variable.changeValueTo(radioAttributesResource[0]);\n this.setBody(variable);\n }\n\n private onAddToFiltersClick(payload: any) {\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.breakdown_add_to_filters_clicked,\n payload\n );\n }\n\n private setBody = (variable: CustomVariable) => {\n this.setState({\n body: buildNormalLayout(this, variable, (frame: DataFrame) => [\n new AddToFiltersAction({ frame, labelKey: variable.getValueText(), onClick: this.onAddToFiltersClick }),\n ]),\n });\n };\n\n public onChange = (value: string, ignore?: boolean) => {\n const variable = getGroupByVariable(this);\n if (variable.getValueText() !== value) {\n variable.changeValueTo(value, undefined, !ignore);\n\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.breakdown_group_by_changed,\n {\n groupBy: value,\n }\n );\n }\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const groupBy = getGroupByVariable(model).getValueText();\n const defaultScope = groupBy.includes(SPAN_ATTR) || radioAttributesSpan.includes(groupBy) ? SPAN : RESOURCE;\n const [scope, setScope] = useState(defaultScope);\n const { body } = model.useState();\n const styles = useStyles2(getStyles);\n\n const { attributes } = getTraceByServiceScene(model).useState();\n const filterType = scope === RESOURCE ? RESOURCE_ATTR : SPAN_ATTR;\n let filteredAttributes = attributes?.filter((attr) => attr.includes(filterType));\n if (scope === SPAN) {\n filteredAttributes = filteredAttributes?.concat(radioAttributesSpan);\n }\n\n const exploration = getTraceExplorationScene(model);\n const { value: metric } = exploration.getMetricVariable().useState();\n const getDescription = (metric: MetricFunction) => {\n switch (metric) {\n case 'rate':\n return 'Attributes are ordered by their rate of requests per second.';\n case 'errors':\n return 'Attributes are ordered by their rate of errors per second.';\n case 'duration':\n return 'Attributes are ordered by their average duration.';\n default:\n throw new Error('Metric not supported');\n }\n };\n const description = getDescription(metric as MetricFunction);\n\n return (\n
\n \n\n
\n {filteredAttributes?.length && (\n
\n
\n \n \n \n
\n\n
\n \n
\n
\n )}\n {body instanceof LayoutSwitcher && (\n
\n \n
\n )}\n
\n
{body && }
\n
\n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n flexGrow: 1,\n display: 'flex',\n minHeight: '100%',\n flexDirection: 'column',\n }),\n content: css({\n flexGrow: 1,\n display: 'flex',\n paddingTop: theme.spacing(0),\n }),\n controls: css({\n flexGrow: 0,\n display: 'flex',\n alignItems: 'top',\n gap: theme.spacing(2),\n }),\n controlsRight: css({\n flexGrow: 0,\n display: 'flex',\n justifyContent: 'flex-end',\n }),\n scope: css({\n marginRight: theme.spacing(2),\n }),\n groupBy: css({\n width: '100%',\n }),\n controlsLeft: css({\n display: 'flex',\n justifyContent: 'flex-left',\n justifyItems: 'left',\n width: '100%',\n flexDirection: 'row',\n }),\n };\n}\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneFlexItem,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n VariableDependencyConfig,\n} from '@grafana/scenes';\nimport { AttributesBreakdownScene } from './AttributesBreakdownScene';\nimport { VAR_METRIC } from '../../../../../utils/shared';\n\ninterface BreakdownSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class BreakdownScene extends SceneObjectBase {\n protected _variableDependency = new VariableDependencyConfig(this, {\n variableNames: [VAR_METRIC],\n });\n\n constructor(state: Partial) {\n super({ ...state });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n this.updateBody();\n }\n\n private updateBody() {\n this.setState({ body: new AttributesBreakdownScene({}) });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n return body && ;\n };\n}\n\nexport function buildBreakdownScene() {\n return new SceneFlexItem({\n body: new BreakdownScene({}),\n });\n}\n","import { ComparisonSelection } from '../../../utils/shared';\n\nexport function comparisonQuery(selection?: ComparisonSelection) {\n let selector = '';\n\n if (!selection) {\n return '{}';\n }\n\n if (selection.query) {\n selector += selection.query;\n }\n\n const duration = [];\n if (selection.duration?.from.length) {\n duration.push(`duration >= ${selection.duration.from}`);\n }\n if (selection.duration?.to.length) {\n duration.push(`duration <= ${selection.duration.to}`);\n }\n if (duration.length) {\n if (selector.length) {\n selector += ' && ';\n }\n selector += duration.join(' && ');\n }\n\n const fromTimerange = selection.timeRange?.from;\n const toTimerange = selection.timeRange?.to;\n return `{${selector}}, 10${\n fromTimerange && toTimerange ? `, ${fromTimerange * 1000000000}, ${toTimerange * 1000000000}` : ``\n }`;\n}\n","import {\n CustomVariable,\n SceneCSSGridItem,\n SceneCSSGridLayout,\n SceneDataNode,\n SceneDataTransformer,\n sceneGraph,\n SceneObject,\n VizPanelState,\n} from '@grafana/scenes';\nimport { ByFrameRepeater } from '../ByFrameRepeater';\nimport { map, Observable } from 'rxjs';\nimport { DataFrame, FieldType, LoadingState, PanelData, reduceField, ReducerID } from '@grafana/data';\nimport { getPanelConfig } from './allComparison';\nimport { GRID_TEMPLATE_COLUMNS, MetricFunction } from '../../../utils/shared';\n\nexport function buildAttributeComparison(\n scene: SceneObject,\n variable: CustomVariable,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions'],\n metric: MetricFunction\n) {\n const timeRange = sceneGraph.getTimeRange(scene);\n const data = sceneGraph.getData(scene);\n const attribute = variable.getValueText();\n const attributeSeries = data.state.data?.series.find((d) => d.name === attribute);\n const splitFrames: DataFrame[] = [];\n const nameField = attributeSeries?.fields.find((f) => f.name === 'Value');\n const baselineField = attributeSeries?.fields.find((f) => f.name === 'Baseline');\n const selectionField = attributeSeries?.fields.find((f) => f.name === 'Selection');\n\n const panels: Record = {};\n\n if (nameField && baselineField && selectionField) {\n for (let i = 0; i < nameField.values.length; i++) {\n if (!nameField.values[i] || (!baselineField.values[i] && !selectionField.values[i])) {\n continue;\n }\n\n splitFrames.push({\n name: nameField.values[i].replace(/\"/g, ''),\n length: 1,\n fields: [\n {\n name: 'Value',\n type: FieldType.string,\n values: ['Baseline', 'Comparison'],\n config: {},\n },\n {\n ...baselineField,\n values: [baselineField.values[i]],\n labels: {\n [attribute]: nameField.values[i],\n },\n config: {\n displayName: 'Baseline',\n },\n },\n {\n ...selectionField,\n values: [selectionField.values[i]],\n },\n ],\n });\n }\n }\n\n return new ByFrameRepeater({\n $data: new SceneDataTransformer({\n $data: new SceneDataNode({\n data: {\n timeRange: timeRange.state.value,\n state: LoadingState.Done,\n series: splitFrames,\n },\n }),\n transformations: [\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n data.forEach((a) => reduceField({ field: a.fields[2], reducers: [ReducerID.max] }));\n return data.sort((a, b) => {\n return (b.fields[2].state?.calcs?.max || 0) - (a.fields[2].state?.calcs?.max || 0);\n });\n })\n );\n },\n ],\n }),\n body: new SceneCSSGridLayout({\n templateColumns: GRID_TEMPLATE_COLUMNS,\n autoRows: '200px',\n isLazy: true,\n children: [],\n }),\n getLayoutChild: getLayoutChild(panels, getLabel, actionsFn, metric),\n });\n}\n\nconst getLabel = (df: DataFrame) => {\n return df.name || 'No name available';\n};\n\nfunction getLayoutChild(\n panels: Record,\n getTitle: (df: DataFrame) => string,\n actionsFn: (df: DataFrame) => VizPanelState['headerActions'],\n metric: MetricFunction\n) {\n return (data: PanelData, frame: DataFrame) => {\n const existingGridItem = frame.name ? panels[frame.name] : undefined;\n\n const dataNode = new SceneDataNode({\n data: {\n ...data,\n series: [\n {\n ...frame,\n },\n ],\n },\n });\n\n if (existingGridItem) {\n existingGridItem.state.body?.setState({ $data: dataNode });\n return existingGridItem;\n }\n\n const panel = getPanelConfig(metric).setTitle(getTitle(frame)).setData(dataNode);\n\n const actions = actionsFn(frame);\n if (actions) {\n panel.setHeaderActions(actions);\n }\n\n const gridItem = new SceneCSSGridItem({\n body: panel.build(),\n });\n if (frame.name) {\n panels[frame.name] = gridItem;\n }\n\n return gridItem;\n };\n}\n","import React from 'react';\n\nimport {\n SceneObjectState,\n SceneObjectBase,\n SceneComponentProps,\n} from '@grafana/scenes';\nimport { Button } from '@grafana/ui';\n\ninterface InspectAttributeActionState extends SceneObjectState {\n attribute?: string;\n onClick: () => void;\n}\n\nexport class InspectAttributeAction extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n if (!model.state.attribute) {\n return null;\n }\n\n return (\n \n );\n };\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { DataFrame, FieldType, GrafanaTheme2, Field } from '@grafana/data';\nimport {\n CustomVariable,\n SceneComponentProps,\n SceneDataTransformer,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n SceneQueryRunner,\n VariableDependencyConfig,\n VariableValue,\n} from '@grafana/scenes';\nimport { getTheme, useStyles2 } from '@grafana/ui';\n\nimport { GroupBySelector } from '../../../GroupBySelector';\nimport { VAR_FILTERS, VAR_PRIMARY_SIGNAL, explorationDS, VAR_FILTERS_EXPR, ALL, radioAttributesSpan } from '../../../../../utils/shared';\n\nimport { LayoutSwitcher } from '../../../LayoutSwitcher';\nimport { AddToFiltersAction } from '../../../actions/AddToFiltersAction';\nimport { map, Observable } from 'rxjs';\nimport { BaselineColor, buildAllComparisonLayout, SelectionColor } from '../../../layouts/allComparison';\n// eslint-disable-next-line no-restricted-imports\nimport { duration } from 'moment';\nimport { comparisonQuery } from '../../../queries/comparisonQuery';\nimport { buildAttributeComparison } from '../../../layouts/attributeComparison';\nimport {\n getAttributesAsOptions,\n getGroupByVariable,\n getPrimarySignalVariable,\n getTraceByServiceScene,\n getTraceExplorationScene,\n} from 'utils/utils';\nimport { InspectAttributeAction } from 'components/Explore/actions/InspectAttributeAction';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../../../utils/analytics';\nimport { computeHighestDifference } from '../../../../../utils/comparison';\nimport { AttributesDescription } from '../Breakdown/AttributesDescription';\nimport { isEqual } from 'lodash';\n\nexport interface AttributesComparisonSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class AttributesComparisonScene extends SceneObjectBase {\n protected _variableDependency = new VariableDependencyConfig(this, {\n variableNames: [VAR_FILTERS, VAR_PRIMARY_SIGNAL],\n onReferencedVariableValueChanged: this.onReferencedVariableValueChanged.bind(this),\n });\n\n constructor(state: Partial) {\n super({\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n const variable = getGroupByVariable(this);\n\n variable.changeValueTo(ALL);\n\n this.updateData();\n\n variable.subscribeToState((newState, prevState) => {\n if (newState.value !== prevState.value) {\n this.setBody(variable);\n }\n });\n\n getPrimarySignalVariable(this).subscribeToState(() => {\n this.updateData();\n this.setBody(variable);\n });\n\n getTraceByServiceScene(this).subscribeToState((newState, prevState) => {\n if (!isEqual(newState.selection, prevState.selection)) {\n this.updateData();\n this.setBody(variable);\n }\n });\n\n sceneGraph.getTimeRange(this).subscribeToState(() => {\n this.updateData();\n });\n\n this.setBody(variable);\n }\n\n private getFilteredAttributes = (primarySignal: VariableValue): string[] => {\n return primarySignal === 'nestedSetParent<0' ? ['rootName', 'rootServiceName'] : [];\n };\n\n private updateData() {\n const byServiceScene = getTraceByServiceScene(this);\n const sceneTimeRange = sceneGraph.getTimeRange(this);\n const from = sceneTimeRange.state.value.from.unix();\n const to = sceneTimeRange.state.value.to.unix();\n const primarySignal = getPrimarySignalVariable(this).state.value;\n const filteredAttributes = this.getFilteredAttributes(primarySignal);\n\n this.setState({\n $data: new SceneDataTransformer({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [buildQuery(from, to, comparisonQuery(byServiceScene.state.selection))],\n }),\n transformations: [\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n const groupedFrames = groupFrameListByAttribute(data);\n return Object.entries(groupedFrames)\n .filter(([attribute, _]) => !filteredAttributes.includes(attribute))\n .map(([attribute, frames]) => frameGroupToDataframe(attribute, frames))\n .sort((a, b) => {\n const aCompare = computeHighestDifference(a);\n const bCompare = computeHighestDifference(b);\n return Math.abs(bCompare.maxDifference) - Math.abs(aCompare.maxDifference);\n });\n })\n );\n },\n ],\n }),\n });\n }\n\n private onReferencedVariableValueChanged() {\n const variable = getGroupByVariable(this);\n variable.changeValueTo(ALL);\n this.setBody(variable);\n }\n\n private onAddToFiltersClick(payload: any) {\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.comparison_add_to_filters_clicked,\n payload\n );\n }\n\n private setBody = (variable: CustomVariable) => {\n const traceExploration = getTraceExplorationScene(this);\n this.setState({\n body:\n variable.hasAllValue() || variable.getValue() === ALL\n ? buildAllComparisonLayout(\n (frame) =>\n new InspectAttributeAction({\n attribute: frame.name,\n onClick: () => this.onChange(frame.name || ''),\n }),\n traceExploration.getMetricFunction()\n )\n : buildAttributeComparison(\n this,\n variable,\n (frame: DataFrame) => [\n new AddToFiltersAction({\n frame,\n labelKey: variable.getValueText(),\n onClick: this.onAddToFiltersClick,\n }),\n ],\n traceExploration.getMetricFunction()\n ),\n });\n };\n\n public onChange = (value: string, ignore?: boolean) => {\n const variable = getGroupByVariable(this);\n variable.changeValueTo(value, undefined, !ignore);\n\n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.select_attribute_in_comparison_clicked,\n { value }\n );\n };\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n const variable = getGroupByVariable(model);\n const traceExploration = getTraceExplorationScene(model);\n const { attributes } = getTraceByServiceScene(model).useState();\n const styles = useStyles2(getStyles);\n\n return (\n
\n \n\n
\n {attributes?.length && (\n
\n \n
\n )}\n {body instanceof LayoutSwitcher && (\n
\n \n
\n )}\n
\n
{body && }
\n
\n );\n };\n}\n\nexport function buildQuery(from: number, to: number, compareQuery: string) {\n const dur = duration(to - from, 's');\n const durString = `${dur.asSeconds()}s`;\n return {\n refId: 'A',\n query: `{${VAR_FILTERS_EXPR}} | compare(${compareQuery})`,\n step: durString,\n queryType: 'traceql',\n tableType: 'spans',\n limit: 100,\n spss: 10,\n filters: [],\n };\n}\n\nconst groupFrameListByAttribute = (frames: DataFrame[]) => {\n return frames.reduce((acc: Record, series) => {\n const numberField = series.fields.find((field) => field.type === 'number');\n const nonInternalKey = Object.keys(numberField?.labels || {}).find((key) => !key.startsWith('__'));\n if (nonInternalKey) {\n acc[nonInternalKey] = [...(acc[nonInternalKey] || []), series];\n }\n return acc;\n }, {});\n};\n\nconst frameGroupToDataframe = (attribute: string, frames: DataFrame[]): DataFrame => {\n const newFrame: DataFrame = {\n name: attribute,\n refId: attribute,\n fields: [],\n length: 0,\n };\n\n const valueNameField: Field = {\n name: 'Value',\n type: FieldType.string,\n values: [],\n config: {},\n labels: { [attribute]: attribute },\n };\n const baselineField: Field = {\n name: 'Baseline',\n type: FieldType.number,\n values: [],\n config: {},\n };\n const selectionField: Field = {\n name: 'Selection',\n type: FieldType.number,\n values: [],\n config: {},\n };\n\n const values = frames.reduce((acc: Record, frame) => {\n const numberField = frame.fields.find((field) => field.type === 'number');\n const val = numberField?.labels?.[attribute];\n if (val) {\n acc[val] = [...(acc[val] || []), numberField];\n }\n return acc;\n }, {});\n\n const baselineTotal = getTotalForMetaType(frames, 'baseline', values);\n const selectionTotal = getTotalForMetaType(frames, 'selection', values);\n\n newFrame.length = Object.keys(values).length;\n\n Object.entries(values).forEach(([value, fields]) => {\n valueNameField.values.push(value);\n baselineField.values.push(\n fields.find((field) => field.labels?.['__meta_type'] === '\"baseline\"')?.values[0] / baselineTotal\n );\n selectionField.values.push(\n fields.find((field) => field.labels?.['__meta_type'] === '\"selection\"')?.values[0] / selectionTotal\n );\n });\n newFrame.fields = [valueNameField, baselineField, selectionField];\n return newFrame;\n};\n\nfunction getTotalForMetaType(frames: DataFrame[], metaType: string, values: Record) {\n // calculate total from values so that we are properly normalizing the field values when dividing by the total\n const calculatedTotal = Object.values(values).reduce((total, fields) => {\n const field = fields.find((field) => field.labels?.['__meta_type'] === `\"${metaType}\"`);\n return total + (field?.values[0] || 0);\n }, 0);\n\n let total = frames.reduce((currentValue, frame) => {\n const field = frame.fields.find((f) => f.type === 'number');\n if (field?.labels?.['__meta_type'] === `\"${metaType}_total\"`) {\n return field.values[0];\n }\n return currentValue;\n }, 1);\n\n // if the baseline_total or selection_total field is found, but the total value is less than the calculated total\n // we need to return the calculated total otherwise the values will be skewed\n // e.g. calculatedTotal = 100, total = 80\n // if we return the total, the field values will be normalized via 80/100 = 1.25 (incorrect)\n // if we return the calculated total, the field values will be normalized via 100/100 = 1 (correct)\n if (total < calculatedTotal) {\n return calculatedTotal === 0 ? 1 : calculatedTotal; // fallback to 1 to avoid division by zero\n }\n\n // 1 if the baseline_total or selection_total field is not found\n // 0 if the baseline_total or selection_total field is found, but the total value is 0\n if (total === 1 || total === 0) {\n return calculatedTotal === 0 ? 1 : calculatedTotal;\n }\n\n return total;\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n flexGrow: 1,\n display: 'flex',\n minHeight: '100%',\n flexDirection: 'column',\n }),\n content: css({\n flexGrow: 1,\n display: 'flex',\n paddingTop: theme.spacing(0),\n }),\n controls: css({\n flexGrow: 0,\n display: 'flex',\n alignItems: 'top',\n gap: theme.spacing(2),\n }),\n controlsRight: css({\n flexGrow: 0,\n display: 'flex',\n justifyContent: 'flex-end',\n }),\n controlsLeft: css({\n display: 'flex',\n justifyContent: 'flex-left',\n justifyItems: 'left',\n width: '100%',\n flexDirection: 'column',\n }),\n };\n}\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneFlexItem,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n VariableDependencyConfig,\n} from '@grafana/scenes';\nimport { AttributesComparisonScene } from './AttributesComparisonScene';\nimport { MetricFunction, VAR_METRIC } from '../../../../../utils/shared';\nimport { getMetricVariable, getTraceByServiceScene } from '../../../../../utils/utils';\nimport { getDefaultSelectionForMetric } from '../../../../../utils/comparison';\n\ninterface ComparisonSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class ComparisonScene extends SceneObjectBase {\n protected _variableDependency = new VariableDependencyConfig(this, {\n variableNames: [VAR_METRIC],\n });\n\n constructor(state: Partial) {\n super({ ...state });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n const metricVar = getMetricVariable(this);\n const metric = metricVar.getValue() as MetricFunction;\n\n const tracesByService = getTraceByServiceScene(this);\n if (!tracesByService.state.selection) {\n const selection = getDefaultSelectionForMetric(metric);\n if (selection) {\n tracesByService.setState({ selection });\n }\n }\n\n this.updateBody();\n }\n\n private updateBody() {\n this.setState({ body: new AttributesComparisonScene({}) });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n return body && ;\n };\n}\n\nexport function buildComparisonScene() {\n return new SceneFlexItem({\n body: new ComparisonScene({}),\n });\n}\n","import { css } from '@emotion/css';\nimport { SceneObjectState, SceneObjectBase, SceneComponentProps, SceneObject, sceneGraph } from '@grafana/scenes';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2, Box, Stack, TabsBar, Tab } from '@grafana/ui';\nimport React from 'react';\nimport { getTraceExplorationScene, getTraceByServiceScene } from 'utils/utils';\nimport { ShareExplorationAction } from '../../actions/ShareExplorationAction';\nimport { buildSpansScene } from './Spans/SpansScene';\nimport { buildStructureScene } from './Structure/StructureScene';\nimport { buildBreakdownScene } from './Breakdown/BreakdownScene';\nimport { MetricFunction } from 'utils/shared';\nimport { buildComparisonScene } from './Comparison/ComparisonScene';\n\ninterface ActionViewDefinition {\n displayName: (metric: MetricFunction) => string;\n value: ActionViewType;\n getScene: (metric: MetricFunction) => SceneObject;\n}\n\nexport type ActionViewType = 'traceList' | 'breakdown' | 'structure' | 'comparison';\nexport const actionViewsDefinitions: ActionViewDefinition[] = [\n { displayName: breakdownDisplayName, value: 'breakdown', getScene: buildBreakdownScene },\n { displayName: structureDisplayName, value: 'structure', getScene: buildStructureScene },\n { displayName: comparisonDisplayName, value: 'comparison', getScene: buildComparisonScene },\n {\n displayName: tracesDisplayName,\n value: 'traceList',\n getScene: buildSpansScene,\n },\n];\n\nexport interface TabsBarSceneState extends SceneObjectState {}\n\nexport class TabsBarScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const metricScene = getTraceByServiceScene(model);\n const styles = useStyles2(getStyles);\n const exploration = getTraceExplorationScene(model);\n const { actionView } = metricScene.useState();\n const { value: metric } = exploration.getMetricVariable().useState();\n const dataState = sceneGraph.getData(model).useState();\n const tracesCount = dataState.data?.series?.[0]?.length;\n\n return (\n \n
\n \n \n \n
\n\n \n {actionViewsDefinitions.map((tab, index) => {\n return (\n metricScene.setActionView(tab.value)}\n counter={tab.value === 'traceList' ? tracesCount : undefined}\n />\n );\n })}\n \n
\n );\n };\n}\n\nfunction breakdownDisplayName(_: MetricFunction) {\n return 'Breakdown';\n}\n\nfunction comparisonDisplayName(_: MetricFunction) {\n return 'Comparison';\n}\n\nexport function structureDisplayName(metric: MetricFunction) {\n switch (metric) {\n case 'rate':\n return 'Service structure';\n case 'errors':\n return 'Root cause errors';\n case 'duration':\n return 'Root cause latency';\n }\n}\n\nfunction tracesDisplayName(metric: MetricFunction) {\n return metric === 'errors' ? 'Errored traces' : metric === 'duration' ? 'Slow traces' : 'Traces';\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n actions: css({\n [theme.breakpoints.up(theme.breakpoints.values.md)]: {\n position: 'absolute',\n right: 0,\n top: 5,\n zIndex: 2,\n },\n }),\n };\n}\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObjectBase,\n SceneObjectState,\n} from '@grafana/scenes';\nimport { GrafanaTheme2, LoadingState } from '@grafana/data';\nimport { explorationDS, MetricFunction } from 'utils/shared';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { SkeletonComponent } from '../ByFrameRepeater';\nimport { barsPanelConfig } from '../panels/barsPanel';\nimport { metricByWithStatus } from '../queries/generateMetricsQuery';\nimport { StepQueryRunner } from '../queries/StepQueryRunner';\nimport { RadioButtonList, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport { fieldHasEmptyValues, getOpenTrace, getTraceExplorationScene } from '../../../utils/utils';\nimport { MINI_PANEL_HEIGHT } from './TracesByServiceScene';\nimport { buildHistogramQuery } from '../queries/histogram';\nimport { histogramPanelConfig } from '../panels/histogram';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\nimport { exemplarsTransformations, removeExemplarsTransformation } from '../../../utils/exemplars';\nimport { StreamingIndicator } from '../StreamingIndicator';\n\nexport interface MiniREDPanelState extends SceneObjectState {\n panel?: SceneFlexLayout;\n metric: MetricFunction;\n isStreaming?: boolean;\n}\n\nexport class MiniREDPanel extends SceneObjectBase {\n constructor(state: MiniREDPanelState) {\n super({\n isStreaming: false,\n ...state,\n });\n\n this.addActivationHandler(() => {\n this._onActivate();\n const data = sceneGraph.getData(this);\n\n this._subs.add(\n data.subscribeToState((data) => {\n this.setState({ isStreaming: data.data?.state === LoadingState.Streaming });\n\n if (data.data?.state === LoadingState.Done) {\n if (data.data.series.length === 0 || data.data.series[0].length === 0 || fieldHasEmptyValues(data)) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new SceneFlexItem({\n body: new EmptyStateScene({\n imgWidth: 110,\n }),\n }),\n ],\n }),\n });\n } else {\n this.setState({\n panel: this.getVizPanel(this.state.metric),\n });\n }\n } else if (data.data?.state === LoadingState.Loading) {\n this.setState({\n panel: new SceneFlexLayout({\n direction: 'column',\n maxHeight: MINI_PANEL_HEIGHT,\n height: MINI_PANEL_HEIGHT,\n children: [\n new LoadingStateScene({\n component: () => SkeletonComponent(1),\n }),\n ],\n }),\n });\n }\n })\n );\n });\n }\n\n private _onActivate() {\n this.setState({\n $data: new SceneDataTransformer({\n $data: new StepQueryRunner({\n maxDataPoints: this.state.metric === 'duration' ? 24 : 64,\n datasource: explorationDS,\n queries: [this.state.metric === 'duration' ? buildHistogramQuery() : metricByWithStatus(this.state.metric)],\n }),\n transformations:\n this.state.metric === 'duration'\n ? [...removeExemplarsTransformation()]\n : [...exemplarsTransformations(getOpenTrace(this))],\n }),\n panel: this.getVizPanel(this.state.metric),\n });\n }\n\n private getVizPanel(metric: MetricFunction) {\n return new SceneFlexLayout({\n direction: 'row',\n children: [\n new SceneFlexItem({\n body: metric === 'duration' ? this.getDurationVizPanel() : this.getRateOrErrorPanel(metric),\n }),\n ],\n });\n }\n\n private getRateOrErrorPanel(metric: MetricFunction) {\n const panel = barsPanelConfig().setHoverHeader(true).setDisplayMode('transparent');\n if (metric === 'rate') {\n panel.setCustomFieldConfig('axisLabel', 'span/s');\n } else if (metric === 'errors') {\n panel.setTitle('Errors rate').setCustomFieldConfig('axisLabel', 'error/s').setColor({\n fixedColor: 'semi-dark-red',\n mode: 'fixed',\n });\n }\n\n return panel.build();\n }\n\n private getDurationVizPanel() {\n return histogramPanelConfig()\n .setTitle('Histogram by duration')\n .setHoverHeader(true)\n .setDisplayMode('transparent')\n .build();\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel, isStreaming } = model.useState();\n const styles = useStyles2(getStyles);\n const traceExploration = getTraceExplorationScene(model);\n\n const selectMetric = () => {\n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.metric_changed, {\n metric: model.state.metric,\n location: 'panel',\n });\n traceExploration.onChangeMetricFunction(model.state.metric);\n };\n\n if (!panel) {\n return;\n }\n\n return (\n
\n
\n selectMetric()}\n value={'not-selected'}\n />\n
\n {isStreaming && (\n
\n \n
\n )}\n \n
\n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n flex: 1,\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n border: `1px solid ${theme.colors.border.weak}`,\n borderRadius: '2px',\n background: theme.colors.background.primary,\n paddingTop: '8px',\n\n 'section, section:hover': {\n borderColor: 'transparent',\n },\n\n '& .show-on-hover': {\n display: 'none',\n },\n }),\n headerWrapper: css({\n display: 'flex',\n alignItems: 'center',\n position: 'absolute',\n top: '4px',\n left: '8px',\n zIndex: 2,\n }),\n clickable: css({\n cursor: 'pointer',\n maxHeight: MINI_PANEL_HEIGHT,\n\n ['[class*=\"loading-state-scene\"]']: {\n height: MINI_PANEL_HEIGHT,\n overflow: 'hidden',\n },\n\n ':hover': {\n background: theme.colors.background.secondary,\n input: {\n backgroundColor: '#ffffff',\n border: '5px solid #3D71D9',\n cursor: 'pointer',\n },\n },\n }),\n radioButton: css({\n display: 'block',\n }),\n indicatorWrapper: css({\n position: 'absolute',\n top: '4px',\n right: '8px',\n zIndex: 2,\n }),\n };\n}\n","import React from 'react';\n\nimport {\n DashboardCursorSync,\n GrafanaTheme2,\n MetricFindValue,\n dateTime,\n DataFrame,\n GetTagResponse,\n} from '@grafana/data';\nimport {\n behaviors,\n SceneComponentProps,\n SceneDataTransformer,\n SceneFlexItem,\n SceneFlexLayout,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n SceneObjectUrlSyncConfig,\n SceneObjectUrlValues,\n SceneQueryRunner,\n SceneTimeRange,\n} from '@grafana/scenes';\n\nimport { REDPanel } from './REDPanel';\nimport {\n MakeOptional,\n explorationDS,\n VAR_FILTERS_EXPR,\n VAR_DATASOURCE_EXPR,\n MetricFunction,\n ComparisonSelection,\n ALL,\n VAR_LATENCY_THRESHOLD_EXPR,\n filterStreamingProgressTransformations,\n} from '../../../utils/shared';\nimport { getDataSourceSrv } from '@grafana/runtime';\nimport { ActionViewType, TabsBarScene, actionViewsDefinitions } from './Tabs/TabsBarScene';\nimport { isEqual } from 'lodash';\nimport {\n getDatasourceVariable,\n getGroupByVariable,\n getSpanListColumnsVariable,\n getTraceExplorationScene,\n} from 'utils/utils';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../utils/analytics';\nimport { MiniREDPanel } from './MiniREDPanel';\nimport { Icon, LinkButton, Stack, Tooltip, useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport { getDefaultSelectionForMetric } from '../../../utils/comparison';\nimport { map, Observable } from 'rxjs';\n\nexport interface TraceSceneState extends SceneObjectState {\n body: SceneFlexLayout;\n actionView?: ActionViewType;\n\n attributes?: string[];\n selection?: ComparisonSelection;\n}\n\nexport class TracesByServiceScene extends SceneObjectBase {\n protected _urlSync = new SceneObjectUrlSyncConfig(this, { keys: ['actionView', 'selection'] });\n\n public constructor(state: MakeOptional) {\n super({\n body: state.body ?? new SceneFlexLayout({ children: [] }),\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n // Get the initial actionView from URL if it exists i.e. coming from a bookmark\n const params = new URLSearchParams(window.location.search);\n const urlActionView = params.get('actionView');\n if (urlActionView && actionViewsDefinitions.find((v) => v.value === urlActionView)) {\n this.setState({ actionView: urlActionView as ActionViewType });\n }\n\n this.updateBody();\n\n const exploration = getTraceExplorationScene(this);\n const metricVariable = exploration.getMetricVariable();\n this._subs.add(\n metricVariable.subscribeToState((newState, prevState) => {\n if (newState.value !== prevState.value) {\n const selection = getDefaultSelectionForMetric(newState.value as MetricFunction);\n if (selection) {\n this.setState({ selection });\n }\n this.updateQueryRunner(newState.value as MetricFunction);\n this.updateBody();\n }\n })\n );\n\n this._subs.add(\n this.subscribeToState((newState, prevState) => {\n const timeRange = sceneGraph.getTimeRange(this);\n const selectionFrom = newState.selection?.timeRange?.from;\n // clear selection if it's out of time range\n if (selectionFrom && selectionFrom < timeRange.state.value.from.unix()) {\n this.setState({ selection: undefined });\n }\n\n // Set group by to All when starting a comparison\n if (!isEqual(newState.selection, prevState.selection)) {\n const groupByVar = getGroupByVariable(this);\n groupByVar.changeValueTo(ALL);\n this.updateQueryRunner(metricVariable.getValue() as MetricFunction);\n }\n })\n );\n\n this._subs.add(\n getDatasourceVariable(this).subscribeToState(() => {\n this.updateAttributes();\n })\n );\n\n this._subs.add(\n getSpanListColumnsVariable(this).subscribeToState(() => {\n this.updateQueryRunner(metricVariable.getValue() as MetricFunction);\n })\n );\n\n this.updateQueryRunner(metricVariable.getValue() as MetricFunction);\n this.updateAttributes();\n }\n\n updateBody() {\n const traceExploration = getTraceExplorationScene(this);\n const metric = traceExploration.getMetricVariable().getValue();\n const actionViewDef = actionViewsDefinitions.find((v) => v.value === this.state.actionView);\n\n this.setState({\n body: buildGraphScene(\n metric as MetricFunction,\n actionViewDef ? [actionViewDef?.getScene(metric as MetricFunction)] : undefined\n ),\n });\n\n if (this.state.actionView === undefined) {\n this.setActionView('breakdown');\n }\n }\n\n private async updateAttributes() {\n const ds = await getDataSourceSrv().get(VAR_DATASOURCE_EXPR, { __sceneObject: { value: this } });\n\n if (!ds) {\n return;\n }\n\n ds.getTagKeys?.().then((tagKeys: GetTagResponse | MetricFindValue[]) => {\n let keys: MetricFindValue[] = [];\n if ('data' in tagKeys) {\n keys = (tagKeys as GetTagResponse).data;\n } else {\n keys = tagKeys;\n }\n const attributes = keys.map((l) => l.text);\n if (attributes !== this.state.attributes) {\n this.setState({ attributes });\n }\n });\n }\n\n getUrlState() {\n return {\n actionView: this.state.actionView,\n selection: this.state.selection ? JSON.stringify(this.state.selection) : undefined,\n };\n }\n\n updateFromUrl(values: SceneObjectUrlValues) {\n if (typeof values.actionView === 'string') {\n if (this.state.actionView !== values.actionView) {\n const actionViewDef = actionViewsDefinitions.find((v) => v.value === values.actionView);\n if (actionViewDef) {\n this.setActionView(actionViewDef.value);\n }\n }\n } else if (values.actionView === null) {\n this.setActionView('breakdown');\n }\n\n if (typeof values.selection === 'string') {\n const newSelection = JSON.parse(values.selection);\n if (!isEqual(newSelection, this.state.selection)) {\n this.setState({ selection: newSelection });\n }\n }\n }\n\n onUserUpdateSelection(newSelection: ComparisonSelection) {\n this._urlSync.performBrowserHistoryAction(() => {\n this.setState({ selection: newSelection });\n });\n }\n\n public setActionView(actionView?: ActionViewType) {\n const { body } = this.state;\n const actionViewDef = actionViewsDefinitions.find((v) => v.value === actionView);\n const traceExploration = getTraceExplorationScene(this);\n const metric = traceExploration.getMetricVariable().getValue();\n\n if (body.state.children.length > 1) {\n if (actionViewDef) {\n body.setState({\n children: [...body.state.children.slice(0, 2), actionViewDef.getScene(metric as MetricFunction)],\n });\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.action_view_changed, {\n oldAction: this.state.actionView,\n newAction: actionView,\n });\n this.setState({ actionView: actionViewDef.value });\n }\n }\n }\n\n private updateQueryRunner(metric: MetricFunction) {\n const selection = this.state.selection;\n const columns = getSpanListColumnsVariable(this).getValue()?.toString() ?? '';\n\n this.setState({\n $data: new SceneDataTransformer({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [buildQuery(metric, columns, selection)],\n $timeRange: timeRangeFromSelection(selection),\n }),\n transformations: [...filterStreamingProgressTransformations, ...spanListTransformations],\n }),\n });\n }\n\n static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n const styles = useStyles2(getStyles);\n\n return (\n <>\n
\n } placement={'right-start'} interactive>\n \n Select metric type \n \n \n
\n \n \n );\n };\n}\n\nconst MetricTypeTooltip = () => {\n const styles = useStyles2(getStyles);\n\n return (\n \n
RED metrics for traces
\n \n Explore rate, errors, and duration (RED) metrics generated from traces by Tempo.\n \n
\n
\n Rate - Spans per second that match your filter, useful to\n find unusual spikes in activity\n
\n
\n Errors -Spans that are failing, overall issues in tracing\n ecosystem\n
\n
\n Duration - Amount of time those spans take, represented as a\n heat map (responds time, latency)\n
\n
\n\n
\n \n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.metric_docs_link_clicked)\n }\n >\n Read documentation\n \n
\n
\n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n title: css({\n label: 'title',\n display: 'flex',\n gap: theme.spacing.x0_5,\n fontSize: theme.typography.bodySmall.fontSize,\n paddingBottom: theme.spacing.x0_5,\n alignItems: 'center',\n }),\n hand: css({\n label: 'hand',\n cursor: 'pointer',\n }),\n tooltip: {\n label: 'tooltip',\n title: css({\n fontSize: '14px',\n fontWeight: 500,\n }),\n subtitle: css({\n marginBottom: theme.spacing.x1,\n }),\n text: css({\n label: 'text',\n color: theme.colors.text.secondary,\n\n div: {\n marginBottom: theme.spacing.x0_5,\n },\n }),\n emphasize: css({\n label: 'emphasize',\n color: theme.colors.text.primary,\n }),\n button: css({\n marginBottom: theme.spacing.x0_5,\n }),\n },\n };\n}\n\nconst MAIN_PANEL_HEIGHT = 240;\nexport const MINI_PANEL_HEIGHT = (MAIN_PANEL_HEIGHT - 8) / 2;\n\nexport function buildQuery(type: MetricFunction, columns: string, selection?: ComparisonSelection) {\n const selectQuery = columns !== '' ? ` | select(${columns})` : '';\n let typeQuery = '';\n switch (type) {\n case 'errors':\n typeQuery = ' && status = error';\n break;\n case 'duration':\n if (selection) {\n const duration = [];\n if (selection.duration?.from.length) {\n duration.push(`duration >= ${selection.duration.from}`);\n }\n if (selection.duration?.to.length) {\n duration.push(`duration <= ${selection.duration.to}`);\n }\n if (duration.length) {\n typeQuery += '&& ' + duration.join(' && ');\n }\n }\n if (!typeQuery.length) {\n typeQuery = `&& duration > ${VAR_LATENCY_THRESHOLD_EXPR}`;\n }\n break;\n }\n return {\n refId: 'A',\n query: `{${VAR_FILTERS_EXPR}${typeQuery}}${selectQuery}`,\n queryType: 'traceql',\n tableType: 'spans',\n limit: 200,\n spss: 10,\n filters: [],\n };\n}\n\nfunction timeRangeFromSelection(selection?: ComparisonSelection) {\n const fromTimerange = (selection?.timeRange?.from || 0) * 1000;\n const toTimerange = (selection?.timeRange?.to || 0) * 1000;\n return fromTimerange && toTimerange\n ? new SceneTimeRange({\n from: fromTimerange.toFixed(0),\n to: toTimerange.toFixed(0),\n value: {\n from: dateTime(fromTimerange),\n to: dateTime(toTimerange),\n raw: { from: dateTime(fromTimerange), to: dateTime(toTimerange) },\n },\n })\n : undefined;\n}\n\nfunction buildGraphScene(metric: MetricFunction, children?: SceneObject[]) {\n const secondaryPanel =\n metric === 'rate'\n ? new MiniREDPanel({ metric: 'errors' })\n : new MiniREDPanel({\n metric: 'rate',\n });\n\n const tertiaryPanel =\n metric === 'duration'\n ? new MiniREDPanel({\n metric: 'errors',\n })\n : new MiniREDPanel({ metric: 'duration' });\n\n return new SceneFlexLayout({\n direction: 'column',\n $behaviors: [\n new behaviors.CursorSync({\n key: 'metricCrosshairSync',\n sync: DashboardCursorSync.Crosshair,\n }),\n ],\n children: [\n new SceneFlexLayout({\n direction: 'row',\n ySizing: 'content',\n children: [\n new SceneFlexItem({\n minHeight: MAIN_PANEL_HEIGHT,\n maxHeight: MAIN_PANEL_HEIGHT,\n width: '60%',\n body: new REDPanel({}),\n }),\n new SceneFlexLayout({\n direction: 'column',\n minHeight: MAIN_PANEL_HEIGHT,\n maxHeight: MAIN_PANEL_HEIGHT,\n children: [\n new SceneFlexItem({\n minHeight: MINI_PANEL_HEIGHT,\n maxHeight: MINI_PANEL_HEIGHT,\n height: MINI_PANEL_HEIGHT,\n\n body: secondaryPanel,\n }),\n new SceneFlexItem({\n minHeight: MINI_PANEL_HEIGHT,\n maxHeight: MINI_PANEL_HEIGHT,\n height: MINI_PANEL_HEIGHT,\n\n ySizing: 'fill',\n\n body: tertiaryPanel,\n }),\n ],\n }),\n ],\n }),\n new SceneFlexItem({\n ySizing: 'content',\n body: new TabsBarScene({}),\n }),\n ...(children || []),\n ],\n });\n}\n\nconst spanListTransformations = [\n () => (source: Observable) => {\n return source.pipe(\n map((data: DataFrame[]) => {\n return data.map((df) => ({\n ...df,\n fields: df.fields.filter((f) => !f.name.startsWith('nestedSet')),\n }));\n })\n );\n },\n {\n id: 'sortBy',\n options: {\n fields: {},\n sort: [\n {\n field: 'Duration',\n desc: true,\n },\n ],\n },\n },\n {\n id: 'organize',\n options: {\n indexByName: {\n 'Start time': 0,\n status: 1,\n 'Trace Service': 2,\n 'Trace Name': 3,\n Duration: 4,\n 'Span ID': 5,\n 'span.http.method': 6,\n 'span.http.request.method': 7,\n 'span.http.path': 8,\n 'span.http.route': 9,\n 'span.http.status_code': 10,\n 'span.http.response.status_code': 11,\n },\n },\n },\n];\n","import React from 'react';\n\nimport {\n SceneObjectState,\n SceneObjectBase,\n SceneComponentProps,\n PanelBuilders,\n SceneQueryRunner,\n sceneGraph,\n SceneObject,\n} from '@grafana/scenes';\nimport { LoadingState, GrafanaTheme2 } from '@grafana/data';\nimport { explorationDS } from 'utils/shared';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { css } from '@emotion/css';\nimport Skeleton from 'react-loading-skeleton';\nimport { useStyles2 } from '@grafana/ui';\n\nexport interface TracePanelState extends SceneObjectState {\n panel?: SceneObject;\n traceId: string;\n spanId?: string;\n}\n\nexport class TraceViewPanelScene extends SceneObjectBase {\n constructor(state: TracePanelState) {\n super({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [{ refId: 'A', query: state.traceId, queryType: 'traceql' }],\n }),\n ...state,\n });\n\n this.addActivationHandler(() => {\n const data = sceneGraph.getData(this);\n\n this._subs.add(\n data.subscribeToState((data) => {\n if (data.data?.state === LoadingState.Done) {\n this.setState({\n panel: this.getVizPanel().build(),\n });\n } else if (data.data?.state === LoadingState.Loading) {\n this.setState({\n panel: new LoadingStateScene({\n component: SkeletonComponent,\n }),\n });\n }\n })\n );\n });\n }\n\n private getVizPanel() {\n const panel = PanelBuilders.traces().setHoverHeader(true);\n if (this.state.spanId) {\n panel.setOption('focusedSpanId' as any, this.state.spanId as any);\n }\n return panel;\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel } = model.useState();\n const styles = useStyles2(getStyles);\n\n if (!panel) {\n return;\n }\n\n return (\n
\n \n
\n );\n };\n}\n\nconst SkeletonComponent = () => {\n const styles = useStyles2(getStyles);\n\n return (\n
\n
\n \n \n
\n \n
\n \n \n
\n\n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n
\n
\n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n panelContainer: css({\n display: 'flex',\n height: '100%',\n\n '& .show-on-hover': {\n display: 'none',\n },\n }),\n container: css({\n height: 'calc(100% - 32px)',\n width: 'calc(100% - 32px)',\n position: 'absolute',\n backgroundColor: theme.colors.background.primary,\n border: `1px solid ${theme.colors.border.weak}`,\n padding: '5px',\n }),\n header: css({\n marginBottom: '20px',\n display: 'flex',\n justifyContent: 'space-between',\n }),\n map: css({\n marginTop: '20px',\n marginBottom: '20px',\n }),\n span: css({\n display: 'flex',\n }),\n service1: css({\n width: '25%',\n }),\n bar1: css({\n marginLeft: '5%',\n width: '70%',\n }),\n service2: css({\n width: '25%',\n }),\n bar2: css({\n marginLeft: '10%',\n width: '15%',\n }),\n service3: css({\n width: '20%',\n marginLeft: '5%',\n }),\n bar3: css({\n marginLeft: '10%',\n width: '65%',\n }),\n service4: css({\n width: '20%',\n marginLeft: '5%',\n }),\n bar4: css({\n marginLeft: '15%',\n width: '60%',\n }),\n service5: css({\n width: '15%',\n marginLeft: '10%',\n }),\n bar5: css({\n marginLeft: '20%',\n width: '35%',\n }),\n service6: css({\n width: '15%',\n marginLeft: '10%',\n }),\n bar6: css({\n marginLeft: '30%',\n width: '15%',\n }),\n };\n}\n","import React from 'react';\n\nimport { SceneObjectState, SceneObjectBase, SceneComponentProps, SceneObject } from '@grafana/scenes';\nimport { EmptyStateScene } from 'components/states/EmptyState/EmptyStateScene';\nimport { TraceViewPanelScene } from '../panels/TraceViewPanelScene';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../../utils/analytics';\nimport { getTraceExplorationScene } from '../../../utils/utils';\n\nexport interface DetailsSceneState extends SceneObjectState {\n body?: SceneObject;\n}\n\nexport class TraceDrawerScene extends SceneObjectBase {\n constructor(state: Partial) {\n super({\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n this.updateBody();\n\n const traceExploration = getTraceExplorationScene(this);\n\n traceExploration.subscribeToState((newState, prevState) => {\n if (newState.traceId !== prevState.traceId || newState.spanId !== prevState.spanId) {\n this.updateBody();\n reportAppInteraction(USER_EVENTS_PAGES.analyse_traces, USER_EVENTS_ACTIONS.analyse_traces.open_trace, {\n traceId: newState.traceId,\n spanId: newState.spanId,\n });\n }\n });\n }\n\n private updateBody() {\n const traceExploration = getTraceExplorationScene(this);\n\n if (traceExploration.state.traceId) {\n this.setState({\n body: new TraceViewPanelScene({\n traceId: traceExploration.state.traceId,\n spanId: traceExploration.state.spanId,\n }),\n });\n } else {\n this.setState({\n body: new EmptyStateScene({\n message: 'No trace selected',\n }),\n });\n }\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState(); \n return body && ;\n };\n}\n","import React from 'react';\nimport { CustomVariable, MultiValueVariable, MultiValueVariableState, SceneComponentProps } from '@grafana/scenes';\nimport { primarySignalOptions } from './primary-signals';\nimport { RadioButtonGroup } from '@grafana/ui';\nimport { useMount } from 'react-use';\n\nexport class PrimarySignalVariable extends CustomVariable {\n static Component = ({ model }: SceneComponentProps>) => {\n const { value } = model.useState();\n\n // ensure the variable is set to the default value\n useMount(() => {\n if (!value) {\n model.changeValueTo(primarySignalOptions[0].value!);\n }\n });\n\n return (\n model.changeValueTo(v!, undefined, true)}\n />\n );\n };\n}\n","import { AdHocVariableFilter } from '@grafana/data';\n\nexport function renderTraceQLLabelFilters(filters: AdHocVariableFilter[]) {\n const expr = filters\n .filter((f) => f.key && f.operator && f.value)\n .map((filter) => renderFilter(filter))\n .join('&&');\n // Return 'true' if there are no filters to help with cases where we want to concatenate additional filters in the expression\n // and avoid invalid queries like '{ && key=value }'\n return expr.length ? expr : 'true';\n}\n\nfunction renderFilter(filter: AdHocVariableFilter) {\n let val = filter.value;\n if (['span.messaging.destination.partition.id', 'span.network.protocol.version'].includes(filter.key) || \n (!isNumber(val) && !['status', 'kind', 'span:status', 'span:kind', 'duration', 'span:duration', 'trace:duration', 'event:timeSinceStart'].includes(filter.key))\n ) {\n // Add quotes if it's coming from the filter input and it's not already quoted.\n // Adding a filter from a time series graph already has quotes. This should be handled better.\n if (typeof val === 'string' && !val.startsWith('\"') && !val.endsWith('\"')) {\n val = `\"${val}\"`;\n }\n }\n\n return `${filter.key}${filter.operator}${val}`;\n}\n\nfunction isNumber(value?: string | number): boolean {\n return value != null && value !== '' && !isNaN(Number(value.toString().trim()));\n}\n","import { LoadingState, dateTime } from '@grafana/data';\nimport {\n SceneObjectBase,\n SceneObjectState,\n SceneTimeRange,\n SceneQueryRunner,\n} from '@grafana/scenes';\nimport { getDatasourceVariable } from '../../utils/utils';\nimport { Alert, LinkButton } from '@grafana/ui';\nimport React from 'react';\n\nexport interface TraceQLIssueDetectorState extends SceneObjectState {\n hasIssue: boolean;\n}\n\nexport class TraceQLIssueDetector extends SceneObjectBase {\n constructor() {\n super({\n hasIssue: false,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() { \n this.runIssueDetectionQuery();\n\n const datasourceVar = getDatasourceVariable(this);\n this._subs.add(\n datasourceVar.subscribeToState((newState, prevState) => {\n if (newState.value !== prevState.value) {\n this.resetIssues();\n this.runIssueDetectionQuery();\n }\n })\n );\n }\n\n private runIssueDetectionQuery() {\n const datasourceVar = getDatasourceVariable(this);\n \n // Create a minimal time range to reduce resource usage\n const now = dateTime();\n const from = dateTime(now).subtract(1, 'minute');\n const minimalTimeRange = new SceneTimeRange({\n from: from.toISOString(),\n to: now.toISOString(),\n });\n \n const issueDetector = new SceneQueryRunner({\n maxDataPoints: 1,\n datasource: { uid: String(datasourceVar.state.value) },\n $timeRange: minimalTimeRange,\n queries: [{\n refId: 'issueDetectorQuery',\n query: '{} | rate()',\n queryType: 'traceql',\n tableType: 'spans',\n limit: 1,\n spss: 1,\n filters: [],\n }],\n });\n \n this._subs.add(\n issueDetector.subscribeToState((state) => {\n if (state.data?.state === LoadingState.Error) {\n const message = state.data?.errors?.[0]?.message || '';\n // This is the error message when the datasource is not configured for TraceQL metrics\n // https://grafana.com/docs/tempo/latest/operations/traceql-metrics/#activate-and-configure-the-local-blocks-processor\n if (message.includes('localblocks processor not found')) {\n this.setState({ hasIssue: true });\n }\n }\n })\n );\n \n issueDetector.activate();\n }\n\n public resetIssues() {\n this.setState({\n hasIssue: false,\n });\n }\n} \n\nconst TraceQLWarningTitle = 'TraceQL metrics not configured';\nconst TraceQLWarningMessage = 'We found an error running a TraceQL metrics query: \"localblocks processor not found\". This typically means the \"local-blocks\" processor is not configured in Tempo, which is required for Grafana Traces Drilldown to work.';\n\nexport const TraceQLConfigWarning: React.FC<{ detector: TraceQLIssueDetector }> = ({ detector }) => {\n const { hasIssue } = detector.useState();\n\n if (!hasIssue) {\n return null;\n }\n\n return (\n \n

\n {TraceQLWarningMessage}\n \n Read documentation\n \n

\n \n );\n};\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { AdHocVariableFilter, GrafanaTheme2, LoadingState, PluginExtensionLink } from '@grafana/data';\nimport {\n AdHocFiltersVariable,\n CustomVariable,\n DataSourceVariable,\n SceneComponentProps,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n SceneObjectUrlSyncConfig,\n SceneObjectUrlValues,\n SceneQueryRunner,\n SceneRefreshPicker,\n SceneTimePicker,\n SceneTimeRange,\n SceneVariableSet,\n} from '@grafana/scenes';\nimport { config } from '@grafana/runtime';\nimport { Button, Drawer, Dropdown, Icon, IconButton, Menu, Stack, useStyles2 } from '@grafana/ui';\n\nimport { TracesByServiceScene } from '../../components/Explore/TracesByService/TracesByServiceScene';\nimport {\n DATASOURCE_LS_KEY,\n EventTraceOpened,\n explorationDS,\n MetricFunction,\n VAR_DATASOURCE,\n VAR_FILTERS,\n VAR_GROUPBY,\n VAR_LATENCY_PARTIAL_THRESHOLD,\n VAR_LATENCY_THRESHOLD,\n VAR_METRIC,\n VAR_PRIMARY_SIGNAL,\n VAR_SPAN_LIST_COLUMNS,\n} from '../../utils/shared';\nimport { getTraceExplorationScene, getFiltersVariable, getPrimarySignalVariable, getDataSource } from '../../utils/utils';\nimport { TraceDrawerScene } from '../../components/Explore/TracesByService/TraceDrawerScene';\nimport { primarySignalOptions } from './primary-signals';\nimport { VariableHide } from '@grafana/schema';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\nimport { PrimarySignalVariable } from './PrimarySignalVariable';\nimport { renderTraceQLLabelFilters } from 'utils/filters-renderer';\nimport { TraceQLIssueDetector, TraceQLConfigWarning } from '../../components/Explore/TraceQLIssueDetector';\nimport { AddToInvestigationButton } from 'components/Explore/actions/AddToInvestigationButton';\nimport { ADD_TO_INVESTIGATION_MENU_TEXT, getInvestigationLink } from 'components/Explore/panels/PanelMenu';\n\nexport interface TraceExplorationState extends SceneObjectState {\n topScene?: SceneObject;\n controls: SceneObject[];\n\n body: SceneObject;\n\n drawerScene?: TraceDrawerScene;\n\n // details scene\n traceId?: string;\n spanId?: string;\n\n // just for the starting data source\n initialDS?: string;\n initialFilters?: AdHocVariableFilter[];\n\n issueDetector?: TraceQLIssueDetector;\n\n investigationLink?: PluginExtensionLink;\n addToInvestigationButton?: AddToInvestigationButton;\n}\n\nconst version = process.env.VERSION;\nconst buildTime = process.env.BUILD_TIME;\nconst commitSha = process.env.COMMIT_SHA;\nconst compositeVersion = `${buildTime?.split('T')[0]} (${commitSha})`;\n\nexport class TraceExploration extends SceneObjectBase {\n protected _urlSync = new SceneObjectUrlSyncConfig(this, { keys: ['primarySignal', 'traceId', 'spanId', 'metric'] });\n\n public constructor(state: Partial) {\n super({\n $timeRange: state.$timeRange ?? new SceneTimeRange({}),\n $variables: state.$variables ?? getVariableSet(state.initialDS, state.initialFilters),\n controls: state.controls ?? [new SceneTimePicker({}), new SceneRefreshPicker({})],\n body: new TraceExplorationScene({}),\n drawerScene: new TraceDrawerScene({}),\n issueDetector: new TraceQLIssueDetector(),\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n public _onActivate() {\n if (!this.state.topScene) {\n this.setState({ topScene: getTopScene() });\n }\n\n this._subs.add(\n this.subscribeToEvent(EventTraceOpened, (event) => {\n this.setupInvestigationButton(event.payload.traceId);\n this.setState({ traceId: event.payload.traceId, spanId: event.payload.spanId });\n })\n );\n\n if (this.state.traceId) {\n this.setupInvestigationButton(this.state.traceId);\n }\n\n const datasourceVar = sceneGraph.lookupVariable(VAR_DATASOURCE, this) as DataSourceVariable;\n datasourceVar.subscribeToState((newState) => {\n if (newState.value) {\n localStorage.setItem(DATASOURCE_LS_KEY, newState.value.toString());\n }\n });\n\n if (this.state.issueDetector) {\n if (!this.state.issueDetector.isActive) {\n this.state.issueDetector.activate();\n }\n }\n }\n\n getUrlState() {\n return { traceId: this.state.traceId, spanId: this.state.spanId };\n }\n\n updateFromUrl(values: SceneObjectUrlValues) {\n const stateUpdate: Partial = {};\n\n if (values.traceId || values.spanId) {\n stateUpdate.traceId = values.traceId ? (values.traceId as string) : undefined;\n stateUpdate.spanId = values.spanId ? (values.spanId as string) : undefined;\n }\n\n this.setState(stateUpdate);\n }\n\n public getMetricVariable() {\n const variable = sceneGraph.lookupVariable(VAR_METRIC, this);\n if (!(variable instanceof CustomVariable)) {\n throw new Error('Metric variable not found');\n }\n\n if (!variable.getValue()) {\n variable.changeValueTo('rate');\n }\n\n return variable;\n }\n\n public onChangeMetricFunction = (metric: string) => {\n const variable = this.getMetricVariable();\n if (!metric || variable.getValue() === metric) {\n return;\n }\n\n variable.changeValueTo(metric, undefined, true);\n };\n\n public getMetricFunction() {\n return this.getMetricVariable().getValue() as MetricFunction;\n }\n\n public closeDrawer() {\n this.setState({ traceId: undefined, spanId: undefined });\n }\n\n private setupInvestigationButton(traceId: string) {\n const traceExploration = getTraceExplorationScene(this);\n const dsUid = getDataSource(traceExploration);\n\n const queryRunner = new SceneQueryRunner({\n datasource: { uid: dsUid },\n queries: [{ \n refId: 'A', \n query: traceId, \n queryType: 'traceql',\n }],\n });\n\n const addToInvestigationButton = new AddToInvestigationButton({\n query: traceId,\n type: 'trace',\n dsUid,\n $data: queryRunner,\n });\n \n addToInvestigationButton.activate();\n this.setState({ addToInvestigationButton });\n this._subs.add(\n addToInvestigationButton.subscribeToState(() => {\n this.updateInvestigationLink();\n })\n );\n \n queryRunner.activate();\n \n this._subs.add(\n queryRunner.subscribeToState((state) => {\n if (state.data?.state === LoadingState.Done && state.data?.series?.length > 0) {\n const serviceNameField = state.data.series[0]?.fields?.find((f) => f.name === 'serviceName');\n \n if (serviceNameField && serviceNameField.values[0]) {\n addToInvestigationButton.setState({\n ...addToInvestigationButton.state,\n labelValue: `${serviceNameField.values[0]}`,\n });\n }\n }\n })\n );\n \n addToInvestigationButton.setState({\n ...addToInvestigationButton.state,\n labelValue: traceId,\n });\n }\n\n private async updateInvestigationLink() {\n const { addToInvestigationButton } = this.state;\n if (!addToInvestigationButton) { \n return;\n }\n\n const link = await getInvestigationLink(addToInvestigationButton);\n if (link) {\n this.setState({ investigationLink: link });\n }\n }\n\n static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n const styles = useStyles2(getStyles);\n\n return
{body && }
;\n };\n}\n\nexport class TraceExplorationScene extends SceneObjectBase {\n static Component = ({ model }: SceneComponentProps) => {\n const traceExploration = getTraceExplorationScene(model);\n const { controls, topScene, drawerScene, traceId, issueDetector, investigationLink, addToInvestigationButton } = traceExploration.useState();\n const { hasIssue } = issueDetector?.useState() || {\n hasIssue: false,\n };\n const styles = useStyles2(getStyles);\n const [menuVisible, setMenuVisible] = React.useState(false);\n\n const dsVariable = sceneGraph.lookupVariable(VAR_DATASOURCE, traceExploration);\n const filtersVariable = getFiltersVariable(traceExploration);\n const primarySignalVariable = getPrimarySignalVariable(traceExploration);\n\n function VersionHeader() {\n const styles = useStyles2(getStyles);\n \n return (\n
\n
Grafana Traces Drilldown v{version}
\n
Last update: {compositeVersion}
\n
\n );\n }\n\n const menu = (\n }>\n
\n {config.feedbackLinksEnabled && (\n \n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.global_docs_link_clicked)\n }\n />\n )}\n \n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.feedback_link_clicked)\n }\n />\n
\n
\n );\n\n const addToInvestigationClicked = (e: React.MouseEvent) => {\n if (investigationLink?.onClick) {\n investigationLink.onClick(e);\n }\n \n reportAppInteraction(\n USER_EVENTS_PAGES.analyse_traces,\n USER_EVENTS_ACTIONS.analyse_traces.add_to_investigation_trace_view_clicked\n );\n \n setTimeout(() => traceExploration.closeDrawer(), 100);\n };\n\n return (\n <>\n
\n
\n {hasIssue && issueDetector && }\n \n \n {dsVariable && (\n \n
Data source
\n \n
\n )}\n
\n\n
\n setMenuVisible(!menuVisible)}>\n \n \n {controls.map((control) => (\n \n ))}\n
\n
\n \n \n
Filters
\n {primarySignalVariable && }\n
\n {filtersVariable && (\n
\n \n
\n )}\n
\n
\n
{topScene && }
\n
\n {drawerScene && traceId && (\n traceExploration.closeDrawer()}>\n
\n

View trace {traceId}

\n
\n {addToInvestigationButton && investigationLink && (\n \n {ADD_TO_INVESTIGATION_MENU_TEXT}\n \n )}\n traceExploration.closeDrawer()} \n tooltip='Close drawer'\n size='lg'\n />\n
\n
\n \n
\n )}\n \n );\n };\n}\n\nfunction getTopScene() {\n return new TracesByServiceScene({});\n}\n\nfunction getVariableSet(initialDS?: string, initialFilters?: AdHocVariableFilter[]) {\n return new SceneVariableSet({\n variables: [\n new DataSourceVariable({\n name: VAR_DATASOURCE,\n label: 'Data source',\n value: initialDS,\n pluginId: 'tempo',\n }),\n new PrimarySignalVariable({\n name: VAR_PRIMARY_SIGNAL,\n value: primarySignalOptions[0].value,\n }),\n new AdHocFiltersVariable({\n addFilterButtonText: 'Add filter',\n hide: VariableHide.hideLabel,\n name: VAR_FILTERS,\n datasource: explorationDS,\n layout: 'combobox',\n filters: initialFilters ?? [],\n allowCustomValue: true,\n expressionBuilder: renderTraceQLLabelFilters,\n }),\n new CustomVariable({\n name: VAR_METRIC,\n hide: VariableHide.hideVariable,\n }),\n new CustomVariable({\n name: VAR_GROUPBY,\n defaultToAll: false,\n }),\n new CustomVariable({\n name: VAR_SPAN_LIST_COLUMNS,\n defaultToAll: false,\n }),\n new CustomVariable({\n name: VAR_LATENCY_THRESHOLD,\n defaultToAll: false,\n hide: VariableHide.hideVariable,\n }),\n new CustomVariable({\n name: VAR_LATENCY_PARTIAL_THRESHOLD,\n defaultToAll: false,\n hide: VariableHide.hideVariable,\n }),\n ],\n });\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n bodyContainer: css({\n label: 'bodyContainer',\n flexGrow: 1,\n display: 'flex',\n minHeight: '100%',\n flexDirection: 'column',\n }),\n container: css({\n label: 'container',\n flexGrow: 1,\n display: 'flex',\n gap: theme.spacing(1),\n minHeight: '100%',\n flexDirection: 'column',\n padding: `0 ${theme.spacing(2)} ${theme.spacing(2)} ${theme.spacing(2)}`,\n overflow: 'auto', /* Needed for sticky positioning */\n maxHeight: '100%' /* Needed for sticky positioning */\n }),\n drawerHeader: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n borderBottom: `1px solid ${theme.colors.border.weak}`,\n paddingBottom: theme.spacing(2),\n marginBottom: theme.spacing(2),\n\n 'h3': {\n margin: 0,\n },\n }),\n drawerHeaderButtons: css({\n display: 'flex',\n justifyContent: 'flex-end',\n gap: theme.spacing(1.5),\n }),\n body: css({\n label: 'body',\n flexGrow: 1,\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(1),\n }),\n headerContainer: css({\n label: 'headerContainer',\n backgroundColor: theme.colors.background.canvas,\n display: 'flex',\n flexDirection: 'column',\n position: 'sticky',\n top: 0,\n zIndex: 3,\n padding: `${theme.spacing(1.5)} 0`,\n gap: theme.spacing(1),\n }),\n datasourceLabel: css({\n label: 'datasourceLabel',\n fontSize: '12px',\n padding: `0 ${theme.spacing(1)}`,\n height: '32px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n fontWeight: theme.typography.fontWeightMedium,\n position: 'relative',\n right: -1,\n width: '90px',\n }),\n controls: css({\n label: 'controls',\n display: 'flex',\n gap: theme.spacing(1),\n zIndex: 3,\n flexWrap: 'wrap',\n }),\n menu: css({\n label: 'menu',\n 'svg, span': {\n color: theme.colors.text.link,\n },\n }),\n menuHeader: css`\n padding: ${theme.spacing(0.5, 1)};\n white-space: nowrap;\n `,\n menuHeaderSubtitle: css`\n color: ${theme.colors.text.secondary};\n font-size: ${theme.typography.bodySmall.fontSize};\n `,\n tooltip: css({\n label: 'tooltip',\n fontSize: '14px',\n lineHeight: '22px',\n width: '180px',\n textAlign: 'center',\n }),\n helpIcon: css({\n label: 'helpIcon',\n marginLeft: theme.spacing(1),\n }),\n filters: css({\n label: 'filters',\n marginTop: theme.spacing(1),\n display: 'flex',\n gap: theme.spacing(1),\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { locationService } from '@grafana/runtime';\nimport { Icon, useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\nimport { HomepagePanelType } from './AttributePanel';\n\ntype Props = {\n index: number;\n type: HomepagePanelType;\n label: string;\n labelTitle: string;\n value: string;\n valueTitle: string;\n url: string;\n};\n\nexport const AttributePanelRow = (props: Props) => {\n const { index, type, label, labelTitle, value, valueTitle, url } = props;\n const styles = useStyles2(getStyles);\n\n return (\n
\n {index === 0 && (\n
\n {labelTitle}\n {valueTitle}\n
\n )}\n\n {\n reportAppInteraction(USER_EVENTS_PAGES.home, USER_EVENTS_ACTIONS.home.panel_row_clicked, {\n type,\n index,\n value,\n });\n locationService.push(url);\n }}\n >\n
{label}
\n\n
\n {value}\n \n
\n
\n
\n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n rowHeader: css({\n color: theme.colors.text.secondary,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: `0 ${theme.spacing(2)} ${theme.spacing(1)} ${theme.spacing(2)}`,\n }),\n valueTitle: css({\n margin: '0 45px 0 0',\n }),\n row: css({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: theme.spacing(2),\n padding: `${theme.spacing(0.75)} ${theme.spacing(2)}`,\n\n '&:hover': {\n backgroundColor: theme.isDark ? theme.colors.background.secondary : theme.colors.background.primary,\n cursor: 'pointer',\n '.rowLabel': {\n textDecoration: 'underline',\n },\n },\n }),\n action: css({\n display: 'flex',\n alignItems: 'center',\n }),\n actionText: css({\n color: '#d5983c',\n padding: `0 ${theme.spacing(1)}`,\n width: 'max-content',\n }),\n actionIcon: css({\n cursor: 'pointer',\n margin: `0 ${theme.spacing(0.5)} 0 ${theme.spacing(1)}`,\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, GrafanaTheme2, urlUtil } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { EXPLORATIONS_ROUTE } from 'utils/shared';\nimport { AttributePanelRow } from './AttributePanelRow';\nimport { HomepagePanelType } from './AttributePanel';\n\ntype Props = {\n series: DataFrame[];\n type: HomepagePanelType;\n};\n\nexport const ErroredServicesRows = (props: Props) => {\n const { series, type } = props;\n const styles = useStyles2(getStyles);\n\n const getLabel = (df: DataFrame) => {\n const valuesField = df.fields.find((f) => f.name !== 'time');\n return valuesField?.labels?.['resource.service.name'].replace(/\"/g, '') ?? 'Service name not found';\n };\n\n const getUrl = (df: DataFrame) => {\n const serviceName = getLabel(df);\n const params = {\n 'var-filters': `resource.service.name|=|${serviceName}`,\n 'var-metric': 'errors',\n };\n return urlUtil.renderUrl(EXPLORATIONS_ROUTE, params);\n };\n\n const getTotalErrs = (df: DataFrame) => {\n const valuesField = df.fields.find((f) => f.name !== 'time');\n return (\n valuesField?.values?.reduce((x, acc) => {\n if (typeof x === 'number' && !isNaN(x)) {\n return x + acc;\n }\n return acc;\n }, 0) ?? 1\n );\n };\n\n return (\n
\n {series\n .sort((a, b) => getTotalErrs(b) - getTotalErrs(a))\n .slice(0, 10)\n ?.map((df, index) => (\n \n \n \n ))}\n
\n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n padding: `${theme.spacing(2)} 0`,\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, Field, GrafanaTheme2, urlUtil } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { EXPLORATIONS_ROUTE, ROUTES } from 'utils/shared';\nimport { AttributePanelRow } from './AttributePanelRow';\nimport { HomepagePanelType } from './AttributePanel';\nimport { formatDuration } from '../../utils/dates';\n\ntype Props = {\n series: DataFrame[];\n type: HomepagePanelType;\n};\n\nexport const SlowestTracesRows = (props: Props) => {\n const { series, type } = props;\n const styles = useStyles2(getStyles);\n\n const durField = series[0].fields.find((f) => f.name === 'duration');\n if (durField && durField.values) {\n const sortedByDuration = durField?.values\n .map((_, i) => i)\n ?.sort((a, b) => durField?.values[b] - durField?.values[a]);\n const sortedFields = series[0].fields.map((f) => {\n return {\n ...f,\n values: sortedByDuration?.map((i) => f.values[i]),\n };\n });\n\n const getLabel = (traceServiceField: Field | undefined, traceNameField: Field | undefined, index: number) => {\n let label = '';\n if (traceServiceField?.values[index]) {\n label = traceServiceField.values[index];\n }\n if (traceNameField?.values[index]) {\n label = label.length === 0 ? traceNameField.values[index] : `${label}: ${traceNameField.values[index]}`;\n }\n return label.length === 0 ? 'Trace service & name not found' : label;\n };\n\n const getUrl = (\n traceId: string,\n spanIdField: Field | undefined,\n traceServiceField: Field | undefined,\n index: number\n ) => {\n if (!spanIdField || !spanIdField.values[index] || !traceServiceField || !traceServiceField.values[index]) {\n console.error('SpanId or traceService not found');\n return ROUTES.Explore;\n }\n\n const params = {\n traceId,\n spanId: spanIdField.values[index],\n 'var-filters': `resource.service.name|=|${traceServiceField.values[index]}`,\n 'var-metric': 'duration',\n };\n\n return urlUtil.renderUrl(EXPLORATIONS_ROUTE, params);\n };\n\n const getDuration = (durationField: Field | undefined, index: number) => {\n if (!durationField || !durationField.values) {\n return 'Duration not found';\n }\n\n return formatDuration(durationField.values[index] / 1000);\n };\n\n const traceIdField = sortedFields.find((f) => f.name === 'traceIdHidden');\n const spanIdField = sortedFields.find((f) => f.name === 'spanID');\n const traceNameField = sortedFields.find((f) => f.name === 'traceName');\n const traceServiceField = sortedFields.find((f) => f.name === 'traceService');\n const durationField = sortedFields.find((f) => f.name === 'duration');\n\n return (\n
\n {traceIdField?.values?.map((traceId, index) => (\n \n \n \n ))}\n
\n );\n }\n return null;\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n padding: `${theme.spacing(2)} 0`,\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, GrafanaTheme2, urlUtil } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { EXPLORATIONS_ROUTE } from 'utils/shared';\nimport { AttributePanelRow } from './AttributePanelRow';\nimport { HomepagePanelType } from './AttributePanel';\nimport { formatDuration } from '../../utils/dates';\n\ntype Props = {\n series: DataFrame[];\n type: HomepagePanelType;\n};\n\nexport const SlowestServicesRows = (props: Props) => {\n const { series, type } = props;\n const styles = useStyles2(getStyles);\n\n const getLabel = (df: DataFrame) => {\n const valuesField = df.fields.find((f) => f.name !== 'time');\n return valuesField?.labels?.['resource.service.name'].replace(/\"/g, '') ?? 'Service name not found';\n };\n\n const getUrl = (df: DataFrame) => {\n const serviceName = getLabel(df);\n const params = {\n 'var-filters': `resource.service.name|=|${serviceName}`,\n 'var-metric': 'duration',\n };\n return urlUtil.renderUrl(EXPLORATIONS_ROUTE, params);\n };\n\n const getDuration = (df: DataFrame) => {\n const valuesField = df.fields.find((f) => f.name !== 'time');\n return (\n valuesField?.values?.reduce((x, acc) => {\n if (typeof x === 'number' && !isNaN(x)) {\n return x + acc;\n }\n return acc;\n }, 0) ?? 1\n );\n };\n\n return (\n
\n {series\n .sort((a, b) => getDuration(b) - getDuration(a))\n .slice(0, 10)\n ?.map((df, index) => (\n \n \n \n ))}\n
\n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n padding: `${theme.spacing(2)} 0`,\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport { Icon, useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { HomepagePanelType } from './AttributePanel';\nimport { ErroredServicesRows } from './ErroredServicesRows';\nimport { SlowestTracesRows } from './SlowestTracesRows';\nimport { SlowestServicesRows } from './SlowestServicesRows';\n\ntype Props = {\n series?: DataFrame[];\n type: HomepagePanelType;\n message?: string;\n};\n\nexport const AttributePanelRows = (props: Props) => {\n const { series, type, message } = props;\n const styles = useStyles2(getStyles);\n\n if (message) {\n return (\n
\n
\n \n {message}\n
\n
\n );\n }\n\n if (series && series.length > 0) {\n switch (type) {\n case 'slowest-traces':\n return ;\n case 'errored-services':\n return ;\n case 'slowest-services':\n return ;\n }\n }\n return
No series data
;\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n padding: `${theme.spacing(2)} 0`,\n }),\n icon: css({\n margin: `0 ${theme.spacing(0.5)} 0 ${theme.spacing(1)}`,\n }),\n message: css({\n display: 'flex',\n gap: theme.spacing(1.5),\n margin: `${theme.spacing(2)} auto`,\n width: '60%',\n }),\n };\n}\n","import { css } from '@emotion/css';\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport { SceneObjectState, SceneObjectBase, SceneComponentProps } from '@grafana/scenes';\nimport { Icon, useStyles2 } from '@grafana/ui';\nimport React from 'react';\nimport { AttributePanelRows } from './AttributePanelRows';\nimport { HomepagePanelType } from './AttributePanel';\n\ninterface AttributePanelSceneState extends SceneObjectState {\n series?: DataFrame[];\n title: string;\n type: HomepagePanelType;\n message?: string;\n}\n\nexport class AttributePanelScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const { series, title, type, message } = model.useState();\n const styles = useStyles2(getStyles);\n\n return (\n
\n
\n \n {title}\n
\n \n
\n );\n };\n}\n\nfunction getIcon(type: HomepagePanelType) {\n switch (type) {\n case 'slowest-services':\n return 'clock-nine';\n case 'slowest-traces':\n return 'crosshair';\n case 'errored-services':\n return 'exclamation-triangle';\n default:\n return 'exclamation-triangle';\n }\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n border: `1px solid ${theme.isDark ? theme.colors.border.medium : theme.colors.border.weak}`,\n borderRadius: theme.spacing(0.5),\n marginBottom: theme.spacing(4),\n width: '100%',\n }),\n title: css({\n color: theme.isDark ? theme.colors.text.secondary : theme.colors.text.primary,\n backgroundColor: theme.isDark ? theme.colors.background.secondary : theme.colors.background.primary,\n borderTopLeftRadius: theme.spacing(0.5),\n borderTopRightRadius: theme.spacing(0.5),\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n fontSize: '1.3rem',\n padding: `${theme.spacing(1.5)} ${theme.spacing(2)}`,\n }),\n titleText: css({\n marginLeft: theme.spacing(1),\n }),\n };\n}\n","import React from 'react';\n\nimport {\n SceneComponentProps,\n SceneFlexLayout,\n sceneGraph,\n SceneObjectBase,\n SceneObjectState,\n SceneQueryRunner,\n} from '@grafana/scenes';\nimport { GrafanaTheme2, LoadingState } from '@grafana/data';\nimport { explorationDS } from 'utils/shared';\nimport { LoadingStateScene } from 'components/states/LoadingState/LoadingStateScene';\nimport { useStyles2 } from '@grafana/ui';\nimport { css } from '@emotion/css';\nimport { MINI_PANEL_HEIGHT } from 'components/Explore/TracesByService/TracesByServiceScene';\nimport { AttributePanelScene } from './AttributePanelScene';\nimport Skeleton from 'react-loading-skeleton';\nimport { getErrorMessage, getNoDataMessage } from 'utils/utils';\nimport { getMinimumsForDuration, getYBuckets } from 'components/Explore/TracesByService/REDPanel';\n\nexport type HomepagePanelType = 'errored-services' | 'slowest-services' | 'slowest-traces';\n\nexport interface AttributePanelState extends SceneObjectState {\n panel?: SceneFlexLayout;\n query: {\n query: string;\n step?: string;\n };\n title: string;\n type: HomepagePanelType;\n renderDurationPanel?: boolean;\n filter?: string;\n}\n\nexport class AttributePanel extends SceneObjectBase {\n constructor(state: AttributePanelState) {\n super({\n $data: new SceneQueryRunner({\n datasource: explorationDS,\n queries: [{ refId: 'A', queryType: 'traceql', tableType: 'spans', limit: 10, ...state.query, exemplars: 0 }],\n }),\n ...state,\n });\n\n this.addActivationHandler(() => {\n const data = sceneGraph.getData(this);\n\n this._subs.add(\n data.subscribeToState((data) => {\n if (data.data?.state === LoadingState.Done || data.data?.state === LoadingState.Streaming) {\n if (\n data.data?.state === LoadingState.Done &&\n (data.data.series.length === 0 || data.data.series[0].length === 0)\n ) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new AttributePanelScene({\n message: getNoDataMessage(state.title.toLowerCase()),\n title: state.title,\n type: state.type,\n }),\n ],\n }),\n });\n } else if (data.data.series.length > 0) {\n if (state.type !== 'slowest-traces' || state.renderDurationPanel) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new AttributePanelScene({\n series: data.data.series,\n title: state.title,\n type: state.type,\n }),\n ],\n }),\n });\n } else if (data.data?.state === LoadingState.Done) {\n let yBuckets = getYBuckets(data.data?.series ?? []);\n if (yBuckets?.length) {\n const { minDuration } = getMinimumsForDuration(yBuckets);\n\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new AttributePanel({\n query: {\n query: `{nestedSetParent<0 && duration > ${minDuration} ${state.filter ?? ''}}`,\n },\n title: state.title,\n type: state.type,\n renderDurationPanel: true,\n }),\n ],\n }),\n });\n }\n }\n }\n } else if (data.data?.state === LoadingState.Error) {\n this.setState({\n panel: new SceneFlexLayout({\n children: [\n new AttributePanelScene({\n message: getErrorMessage(data),\n title: state.title,\n type: state.type,\n }),\n ],\n }),\n });\n } else {\n this.setState({\n panel: new SceneFlexLayout({\n direction: 'column',\n maxHeight: MINI_PANEL_HEIGHT,\n height: MINI_PANEL_HEIGHT,\n children: [\n new LoadingStateScene({\n component: () => SkeletonComponent(),\n }),\n ],\n }),\n });\n }\n })\n );\n });\n }\n\n public static Component = ({ model }: SceneComponentProps) => {\n const { panel } = model.useState();\n const styles = useStyles2(getStyles);\n\n if (!panel) {\n return;\n }\n\n return (\n
\n \n
\n );\n };\n}\n\nfunction getStyles() {\n return {\n container: css({\n minWidth: '350px',\n width: '-webkit-fill-available',\n }),\n };\n}\n\nexport const SkeletonComponent = () => {\n const styles = useStyles2(getSkeletonStyles);\n\n return (\n
\n
\n \n
\n
\n {[...Array(11)].map((_, i) => (\n
\n
\n \n
\n
\n \n
\n
\n ))}\n
\n
\n );\n};\n\nfunction getSkeletonStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n border: `1px solid ${theme.isDark ? theme.colors.border.medium : theme.colors.border.weak}`,\n borderRadius: theme.spacing(0.5),\n marginBottom: theme.spacing(4),\n width: '100%',\n }),\n title: css({\n color: theme.colors.text.secondary,\n backgroundColor: theme.colors.background.secondary,\n fontSize: '1.3rem',\n padding: `${theme.spacing(1.5)} ${theme.spacing(2)}`,\n textAlign: 'center',\n }),\n tracesContainer: css({\n padding: `13px ${theme.spacing(2)}`,\n }),\n row: css({\n display: 'flex',\n justifyContent: 'space-between',\n }),\n rowLeft: css({\n margin: '7px 0',\n width: '150px',\n }),\n rowRight: css({\n width: '50px',\n }),\n };\n}\n","import React from \"react\";\n\nexport const LightModeRocket = () => (\n \n \n \n);\n\nexport const DarkModeRocket = () => (\n \n \n \n);\n","import { ACTION_VIEW, PRIMARY_SIGNAL, VAR_FILTERS, FILTER_SEPARATOR, BOOKMARKS_LS_KEY, EXPLORATIONS_ROUTE, VAR_LATENCY_PARTIAL_THRESHOLD, VAR_LATENCY_THRESHOLD, SELECTION, VAR_METRIC } from \"utils/shared\";\nimport { Bookmark } from \"./Bookmarks\";\nimport { urlUtil } from \"@grafana/data\";\nimport { locationService, usePluginUserStorage } from '@grafana/runtime';\nimport { USER_EVENTS_ACTIONS, USER_EVENTS_PAGES, reportAppInteraction } from \"utils/analytics\";\n\ntype PluginStorage = ReturnType;\n\nconst cleanupParams = (params: URLSearchParams) => {\n // Remove selection, latency threshold, and latency partial threshold because\n // selection keeps changing as time moves on, so it's not a good match for bookmarking\n params.delete(SELECTION);\n params.delete(`var-${VAR_LATENCY_THRESHOLD}`);\n params.delete(`var-${VAR_LATENCY_PARTIAL_THRESHOLD}`);\n return params;\n}\n\nexport const useBookmarksStorage = () => {\n const storage = usePluginUserStorage();\n \n return {\n getBookmarks: () => getBookmarks(storage),\n removeBookmark: (bookmark: Bookmark) => removeBookmark(storage, bookmark),\n bookmarkExists: (bookmark: Bookmark) => bookmarkExists(storage, bookmark),\n toggleBookmark: () => toggleBookmark(storage),\n };\n};\n\nexport const getBookmarkParams = (bookmark: Bookmark) => {\n if (!bookmark || !bookmark.params) {\n return { actionView: '', primarySignal: '', filters: '', metric: '' };\n }\n \n const params = new URLSearchParams(bookmark.params);\n const actionView = params.get(ACTION_VIEW) ?? '';\n const primarySignal = params.get(PRIMARY_SIGNAL) ?? '';\n const filters = params.getAll(`var-${VAR_FILTERS}`).join(FILTER_SEPARATOR);\n const metric = params.get(`var-${VAR_METRIC}`) ?? '';\n return { actionView, primarySignal, filters, metric };\n}\n\nexport const getBookmarkFromURL = (): Bookmark => {\n const params = cleanupParams(new URLSearchParams(window.location.search));\n return { params: params.toString() };\n}\n\nexport const getBookmarkForUrl = (bookmark: Bookmark): string => {\n if (!bookmark || !bookmark.params) {\n return EXPLORATIONS_ROUTE;\n }\n \n const params = new URLSearchParams(bookmark.params);\n const urlQueryMap = Object.fromEntries(params.entries());\n \n const filters = params.getAll(`var-${VAR_FILTERS}`); \n \n const url = urlUtil.renderUrl(EXPLORATIONS_ROUTE, {\n ...urlQueryMap,\n [`var-${VAR_FILTERS}`]: filters // Filters need to be added as separate params in the url as there are multiple filters with the same key\n });\n \n return url;\n}\n\nconst setBookmarks = async (storage: PluginStorage, bookmarks: Bookmark[]): Promise => {\n try {\n await storage.setItem(BOOKMARKS_LS_KEY, JSON.stringify(bookmarks));\n } catch (e) {\n console.error(\"Failed to save bookmarks to storage:\", e);\n }\n};\n\nexport const getBookmarks = async (storage: PluginStorage): Promise => {\n try {\n const value = await storage.getItem(BOOKMARKS_LS_KEY);\n if (value) {\n return JSON.parse(value);\n }\n return [];\n } catch (e) {\n console.error(\"Failed to get bookmarks from storage:\", e);\n return [];\n }\n};\n\nexport const toggleBookmark = async (storage: PluginStorage): Promise => {\n const bookmark = getBookmarkFromURL();\n const exists = await bookmarkExists(storage, bookmark);\n \n if (exists) {\n await removeBookmark(storage, bookmark);\n return false;\n } else {\n await addBookmark(storage, bookmark);\n return true;\n }\n};\n\nconst addBookmark = async (storage: PluginStorage, bookmark: Bookmark): Promise => {\n const bookmarks = await getBookmarks(storage);\n bookmarks.push(bookmark);\n await setBookmarks(storage, bookmarks);\n};\n\nexport const removeBookmark = async (storage: PluginStorage, bookmark: Bookmark): Promise => {\n const storedBookmarks = await getBookmarks(storage);\n const filteredBookmarks = storedBookmarks.filter((storedBookmark) => !areBookmarksEqual(bookmark, storedBookmark));\n await setBookmarks(storage, filteredBookmarks);\n};\n\nexport const bookmarkExists = async (storage: PluginStorage, bookmark: Bookmark): Promise => {\n const bookmarks = await getBookmarks(storage);\n return bookmarks.some((b) => areBookmarksEqual(bookmark, b));\n};\n\nexport const areBookmarksEqual = (bookmark: Bookmark, storedBookmark: Bookmark) => {\n const bookmarkParams = cleanupParams(new URLSearchParams(bookmark.params));\n const storedBookmarkParams = cleanupParams(new URLSearchParams(storedBookmark.params));\n\n const filterKey = `var-${VAR_FILTERS}`;\n const bookmarkKeys = Array.from(bookmarkParams.keys()).filter(k => k !== filterKey);\n const storedKeys = Array.from(storedBookmarkParams.keys()).filter(k => k !== filterKey);\n\n // If they have different number of keys (excluding filters), they can't be equal\n if (bookmarkKeys.length !== storedKeys.length) {\n return false;\n }\n \n // Check if every key in bookmarkParams exists in storedBookmarkParams with the same value\n const allKeysMatch = bookmarkKeys.every(key => \n storedBookmarkParams.has(key) && bookmarkParams.get(key) === storedBookmarkParams.get(key)\n ); \n if (!allKeysMatch) {\n return false;\n }\n \n // Compare filters (which can have multiple values with the same key)\n const bookmarkFilters = bookmarkParams.getAll(filterKey);\n const storedFilters = storedBookmarkParams.getAll(filterKey); \n if (bookmarkFilters.length !== storedFilters.length) {\n return false;\n }\n \n // Check if every filter in bookmarkFilters exists in storedFilters\n // This handles cases where order might be different\n return bookmarkFilters.every(filter => storedFilters.includes(filter));\n}\n\nexport const goToBookmark = (bookmark: Bookmark) => {\n reportAppInteraction(USER_EVENTS_PAGES.home, USER_EVENTS_ACTIONS.home.go_to_bookmark_clicked);\n const url = getBookmarkForUrl(bookmark);\n locationService.push(url);\n}\n","import { EVENT_ATTR, FILTER_SEPARATOR, RESOURCE_ATTR, SPAN_ATTR } from \"utils/shared\";\nimport React from \"react\";\nimport { capitalizeFirstChar } from \"utils/utils\";\nimport { css } from \"@emotion/css\";\nimport { useStyles2 } from \"@grafana/ui\";\nimport { Bookmark } from \"./Bookmarks\";\nimport { getBookmarkParams } from \"./utils\";\nimport { getSignalForKey } from \"pages/Explore/primary-signals\";\n\nexport const BookmarkItem = ({ bookmark }: { bookmark: Bookmark }) => {\n let { actionView, primarySignal, metric, filters } = getBookmarkParams(bookmark);\n const styles = useStyles2(getStyles);\n\n const getPrimarySignalFilter = (primarySignal: string): string => {\n const signalData = getSignalForKey(primarySignal);\n if (!signalData || !signalData.filter) {\n return '';\n }\n const filter = signalData.filter;\n\n if (filter.key && filter.operator && filter.value !== undefined) {\n return `${filter.key}|${filter.operator}|${filter.value}`;\n }\n return '';\n }\n \n // Don't render the primary signal filter as the primary signal already represents this information\n const getFiltersWithoutPrimarySignal = (filters: string, primarySignal: string): string => {\n const primarySignalFilter = getPrimarySignalFilter(primarySignal);\n let filtersArray = filters.split(FILTER_SEPARATOR);\n filtersArray = filtersArray.filter(f => f !== primarySignalFilter);\n return filtersArray.join(FILTER_SEPARATOR);\n }\n\n filters = getFiltersWithoutPrimarySignal(filters, primarySignal);\n filters = filters.replace(/\\|=\\|/g, ' = ');\n filters = filters.replace(RESOURCE_ATTR, '').replace(SPAN_ATTR, '').replace(EVENT_ATTR, '');\n\n return (\n
\n
\n {capitalizeFirstChar(metric)} of {primarySignal.replace('_', ' ')} ({actionView})\n
\n
\n {filters}\n
\n
\n );\n}\n\nfunction getStyles() {\n return {\n filters: css({\n textOverflow: 'ellipsis', \n overflow: 'hidden',\n WebkitLineClamp: 2, \n display: '-webkit-box', \n WebkitBoxOrient: 'vertical'\n }),\n }\n}\n","import { css } from \"@emotion/css\";\nimport { GrafanaTheme2 } from \"@grafana/data\";\nimport { Button, useStyles2, LoadingPlaceholder } from \"@grafana/ui\";\nimport React, { useEffect, useState } from \"react\";\nimport { BookmarkItem } from \"./BookmarkItem\";\nimport { useBookmarksStorage, goToBookmark } from \"./utils\";\n\nexport type Bookmark = {\n params: string;\n}\n\nexport const Bookmarks = () => {\n const styles = useStyles2(getStyles);\n const { getBookmarks, removeBookmark } = useBookmarksStorage();\n const [bookmarks, setBookmarks] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n const [isRemoving, setIsRemoving] = useState(false);\n\n useEffect(() => {\n const fetchBookmarks = async () => {\n setIsLoading(true);\n try {\n const loadedBookmarks = await getBookmarks();\n setBookmarks(loadedBookmarks);\n } catch (error) {\n console.error('Error loading bookmarks:', error);\n setBookmarks([]);\n } finally {\n setIsLoading(false);\n }\n };\n \n fetchBookmarks();\n }, []);\n\n const removeBookmarkClicked = async (bookmark: Bookmark, event: React.MouseEvent) => {\n event.stopPropagation();\n setIsRemoving(true);\n \n try {\n await removeBookmark(bookmark);\n const updatedBookmarks = await getBookmarks();\n setBookmarks(updatedBookmarks);\n } catch (error) {\n console.error('Error removing bookmark:', error);\n } finally {\n setIsRemoving(false);\n }\n };\n\n if (isLoading) {\n return (\n
\n
\n

Or view bookmarks

\n
\n
\n \n
\n
\n );\n }\n\n return (\n
\n
\n

Or view bookmarks

\n
\n {bookmarks.length === 0 ? (\n

Bookmark your favorite queries to view them here.

\n ) : (\n
\n {bookmarks.map((bookmark: Bookmark, i: number) => (\n
goToBookmark(bookmark)}\n >\n
\n \n
\n
\n
\n
\n ))}\n
\n )}\n
\n );\n};\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n header: css({\n textAlign: 'center',\n 'h4': {\n margin: 0,\n }\n }),\n bookmarks: css({\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(2),\n margin: `${theme.spacing(4)} 0 ${theme.spacing(2)} 0`,\n justifyContent: 'center',\n }),\n bookmark: css({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n cursor: 'pointer',\n width: '318px',\n border: `1px solid ${theme.colors.border.medium}`,\n borderRadius: theme.shape.radius.default,\n\n '&:hover': {\n backgroundColor: theme.isDark ? theme.colors.background.secondary : theme.colors.background.primary,\n }\n }),\n bookmarkItem: css({\n padding: `${theme.spacing(1.5)} ${theme.spacing(1.5)} 0 ${theme.spacing(1.5)}`,\n overflow: 'hidden'\n }),\n filters: css({\n textOverflow: 'ellipsis', \n overflow: 'hidden',\n WebkitLineClamp: 2, \n display: '-webkit-box', \n WebkitBoxOrient: 'vertical'\n }),\n remove: css({\n display: 'flex',\n justifyContent: 'flex-end',\n }),\n noBookmarks: css({\n margin: `${theme.spacing(4)} 0 ${theme.spacing(2)} 0`,\n textAlign: 'center',\n }),\n loading: css({\n display: 'flex',\n justifyContent: 'center',\n margin: `${theme.spacing(4)} 0`,\n }),\n }\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport {\n SceneComponentProps,\n SceneObjectBase,\n} from '@grafana/scenes';\nimport { Button, Icon, LinkButton, Stack, useStyles2, useTheme2 } from '@grafana/ui';\n\nimport {\n EXPLORATIONS_ROUTE,\n} from '../../utils/shared';\nimport { getDatasourceVariable, getHomeFilterVariable, getHomeScene } from '../../utils/utils';\nimport { DarkModeRocket, LightModeRocket } from '../../utils/rockets';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from 'utils/analytics';\nimport { Home } from 'pages/Home/Home';\nimport { useNavigate } from 'react-router-dom';\nimport { Bookmarks } from 'pages/Home/bookmarks/Bookmarks';\n\nexport class HeaderScene extends SceneObjectBase {\n public static Component = ({ model }: SceneComponentProps) => {\n const home = getHomeScene(model);\n const navigate = useNavigate();\n const { controls } = home.useState();\n const styles = useStyles2(getStyles);\n const theme = useTheme2();\n\n const dsVariable = getDatasourceVariable(home);\n const filterVariable = getHomeFilterVariable(home);\n\n return (\n
\n
\n
\n {theme.isDark ? : }\n

Start your traces exploration!

\n
\n
\n

Drilldown and visualize your trace data without writing a query.

\n
\n \n reportAppInteraction(USER_EVENTS_PAGES.home, USER_EVENTS_ACTIONS.home.read_documentation_clicked)}\n >\n Read documentation\n \n
\n
\n
\n\n \n\n
\n

Or quick-start into your tracing data

\n
\n\n \n
\n
\n {dsVariable && (\n \n
Data source
\n \n
\n )}\n {filterVariable && (\n \n
Filter
\n \n
\n )}\n
\n\n
\n {controls?.map((control) => (\n \n ))}\n
\n
\n
\n
\n );\n };\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n display: 'flex',\n gap: theme.spacing(7),\n flexDirection: 'column',\n margin: `0 0 ${theme.spacing(4)} 0`,\n justifyContent: 'center',\n }),\n header: css({\n display: 'flex',\n alignItems: 'center',\n backgroundColor: theme.isDark ? theme.colors.background.secondary : theme.colors.background.primary,\n borderRadius: theme.spacing(0.5),\n flexWrap: 'wrap',\n justifyContent: 'center',\n padding: theme.spacing(3),\n gap: theme.spacing(4),\n }),\n headerTitleContainer: css({\n display: 'flex',\n alignItems: 'center',\n }),\n title: css({\n margin: `0 0 0 ${theme.spacing(2)}`,\n }),\n\n headerActions: css({\n alignItems: 'center',\n justifyContent: 'flex-start',\n display: 'flex',\n gap: theme.spacing(2),\n }),\n documentationLink: css({\n textDecoration: 'underline',\n '&:hover': {\n textDecoration: 'underline',\n },\n }),\n\n subHeader: css({\n textAlign: 'center',\n 'h4': {\n margin: `0 0 -${theme.spacing(2)} 0`,\n }\n }),\n\n label: css({\n fontSize: '12px',\n }),\n variablesAndControls: css({\n alignItems: 'center',\n gap: theme.spacing(2),\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n }),\n variables: css({\n display: 'flex',\n gap: theme.spacing(2),\n }),\n controls: css({\n display: 'flex',\n gap: theme.spacing(1),\n }),\n };\n}\n","import { AdHocVariableFilter, MetricFindValue } from \"@grafana/data\";\nimport { getDataSourceSrv, DataSourceWithBackend } from \"@grafana/runtime\";\nimport { AdHocFiltersVariable, sceneGraph } from \"@grafana/scenes\";\nimport { EVENT_ATTR, EVENT_INTRINSIC, FILTER_SEPARATOR, ignoredAttributes, ignoredAttributesHomeFilter, RESOURCE_ATTR, SPAN_ATTR, VAR_DATASOURCE_EXPR } from \"utils/shared\";\nimport { isNumber } from \"utils/utils\";\n\nexport async function getTagKeysProvider(variable: AdHocFiltersVariable): Promise<{replace?: boolean, values: MetricFindValue[]}> {\n const dsVar = sceneGraph.interpolate(variable, VAR_DATASOURCE_EXPR);\n const datasource_ = await getDataSourceSrv().get(dsVar);\n if (!(datasource_ instanceof DataSourceWithBackend)) {\n console.error(new Error('getTagKeysProvider: invalid datasource!'));\n throw new Error('getTagKeysProvider: invalid datasource!');\n }\n \n const datasource = datasource_ as DataSourceWithBackend;\n if (datasource && datasource.getTagKeys) {\n const tagKeys = await datasource.getTagKeys();\n\n if (Array.isArray(tagKeys)) {\n const filteredKeys = filterKeys(tagKeys);\n return { replace: true, values: filteredKeys };\n } else {\n console.error(new Error('getTagKeysProvider: invalid tagKeys!'));\n return { values: [] };\n }\n } else {\n console.error(new Error('getTagKeysProvider: missing or invalid datasource!'));\n return { values: [] };\n }\n}\n\nexport function filterKeys(keys: MetricFindValue[]): MetricFindValue[] {\n const resourceAttributes = keys.filter((k) => k.text?.includes(RESOURCE_ATTR));\n const spanAttributes = keys.filter((k) => k.text?.includes(SPAN_ATTR));\n const otherAttributes = keys.filter((k) => {\n return !k.text?.includes(RESOURCE_ATTR) && !k.text?.includes(SPAN_ATTR)\n && !k.text?.includes(EVENT_ATTR) && !k.text?.includes(EVENT_INTRINSIC)\n && ignoredAttributes.concat(ignoredAttributesHomeFilter).indexOf(k.text!) === -1;\n })\n return [...resourceAttributes, ...spanAttributes, ...otherAttributes];\n}\n\nexport function renderTraceQLLabelFilters(filters: AdHocVariableFilter[]) {\n const expr = filters\n .filter((f) => f.key && f.operator && f.value)\n .map((filter) => renderFilter(filter))\n .join(FILTER_SEPARATOR);\n return expr.length ? `&& ${expr}` : '';\n}\n\nconst renderFilter = (filter: AdHocVariableFilter) => {\n if (!filter) {\n return '';\n } \n \n let val = filter.value;\n if (val === undefined || val === null || val === '') {\n return '';\n }\n\n if (!isNumber.test(val) && !['kind'].includes(filter.key)) {\n if (typeof val === 'string' && !val.startsWith('\"') && !val.endsWith('\"')) {\n val = `\"${val}\"`;\n }\n }\n\n return `${filter.key}${filter.operator}${val}`;\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n// eslint-disable-next-line no-restricted-imports\nimport { duration } from 'moment';\n\nimport { AdHocVariableFilter, GrafanaTheme2 } from '@grafana/data';\nimport {\n AdHocFiltersVariable,\n DataSourceVariable,\n SceneComponentProps,\n SceneCSSGridItem,\n SceneCSSGridLayout,\n sceneGraph,\n SceneObject,\n SceneObjectBase,\n SceneObjectState,\n SceneRefreshPicker,\n SceneTimePicker,\n SceneTimeRange,\n SceneTimeRangeLike,\n SceneVariableSet,\n} from '@grafana/scenes';\nimport { useStyles2 } from '@grafana/ui';\n\nimport {\n DATASOURCE_LS_KEY,\n explorationDS,\n HOMEPAGE_FILTERS_LS_KEY,\n VAR_DATASOURCE,\n VAR_HOME_FILTER,\n} from '../../utils/shared';\nimport { AttributePanel } from 'components/Home/AttributePanel';\nimport { HeaderScene } from 'components/Home/HeaderScene';\nimport { getDatasourceVariable, getHomeFilterVariable } from 'utils/utils';\nimport { reportAppInteraction, USER_EVENTS_PAGES, USER_EVENTS_ACTIONS } from 'utils/analytics';\nimport { getTagKeysProvider, renderTraceQLLabelFilters } from './utils';\n\nexport interface HomeState extends SceneObjectState {\n controls?: SceneObject[];\n initialDS?: string;\n initialFilters: AdHocVariableFilter[];\n body?: SceneCSSGridLayout;\n}\n\nexport class Home extends SceneObjectBase {\n public constructor(state: HomeState) {\n super({\n $timeRange: state.$timeRange ?? new SceneTimeRange({}),\n $variables: state.$variables ?? getVariableSet(state.initialFilters, state.initialDS),\n controls: state.controls ?? [new SceneTimePicker({}), new SceneRefreshPicker({})],\n ...state,\n });\n\n this.addActivationHandler(this._onActivate.bind(this));\n }\n\n private _onActivate() {\n const sceneTimeRange = sceneGraph.getTimeRange(this);\n const filterVariable = getHomeFilterVariable(this);\n filterVariable.setState({\n getTagKeysProvider: getTagKeysProvider,\n });\n\n getDatasourceVariable(this).subscribeToState((newState) => {\n if (newState.value) {\n localStorage.setItem(DATASOURCE_LS_KEY, newState.value.toString());\n }\n });\n\n getHomeFilterVariable(this).subscribeToState((newState, prevState) => {\n if (newState.filters !== prevState.filters) {\n this.buildPanels(sceneTimeRange, newState.filters);\n\n // save the filters to local storage\n localStorage.setItem(HOMEPAGE_FILTERS_LS_KEY, JSON.stringify(newState.filters));\n\n const newFilters = newState.filters.filter((f) => !prevState.filters.find((pf) => pf.key === f.key));\n if (newFilters.length > 0) {\n reportAppInteraction(USER_EVENTS_PAGES.home, USER_EVENTS_ACTIONS.home.filter_changed, {\n key: newFilters[0].key,\n });\n }\n }\n });\n\n sceneTimeRange.subscribeToState((newState, prevState) => {\n if (newState.value.from !== prevState.value.from || newState.value.to !== prevState.value.to) {\n this.buildPanels(sceneTimeRange, filterVariable.state.filters);\n }\n });\n this.buildPanels(sceneTimeRange, filterVariable.state.filters);\n }\n\n buildPanels(sceneTimeRange: SceneTimeRangeLike, filters: AdHocVariableFilter[]) {\n const from = sceneTimeRange.state.value.from.unix();\n const to = sceneTimeRange.state.value.to.unix();\n const dur = duration(to - from, 's');\n const durString = `${dur.asSeconds()}s`;\n const renderedFilters = renderTraceQLLabelFilters(filters);\n\n this.setState({\n body: new SceneCSSGridLayout({\n children: [\n new SceneCSSGridLayout({\n autoRows: 'min-content',\n columnGap: 2,\n rowGap: 2,\n children: [\n new SceneCSSGridItem({\n body: new AttributePanel({\n query: {\n query: `{nestedSetParent < 0 && status = error ${renderedFilters}} | count_over_time() by (resource.service.name)`,\n step: durString,\n },\n title: 'Errored services',\n type: 'errored-services',\n }),\n }),\n new SceneCSSGridItem({\n body: new AttributePanel({\n query: {\n query: `{nestedSetParent < 0 ${renderedFilters}} | quantile_over_time(duration, 0.9) by (resource.service.name)`,\n step: durString,\n },\n title: 'Slow services',\n type: 'slowest-services',\n }),\n }),\n new SceneCSSGridItem({\n body: new AttributePanel({\n query: {\n query: `{nestedSetParent<0 ${renderedFilters}} | histogram_over_time(duration)`,\n },\n title: 'Slow traces',\n type: 'slowest-traces',\n filter: renderedFilters,\n }),\n }),\n ],\n }),\n ],\n }),\n });\n }\n\n static Component = ({ model }: SceneComponentProps) => {\n const { body } = model.useState();\n const styles = useStyles2(getStyles);\n\n return (\n
\n \n {body && }\n
\n );\n };\n}\n\nfunction getVariableSet(initialFilters: AdHocVariableFilter[], initialDS?: string) {\n return new SceneVariableSet({\n variables: [\n new DataSourceVariable({\n name: VAR_DATASOURCE,\n label: 'Data source',\n value: initialDS,\n pluginId: 'tempo',\n }),\n new AdHocFiltersVariable({\n name: VAR_HOME_FILTER,\n datasource: explorationDS,\n layout: 'combobox',\n filters: initialFilters,\n allowCustomValue: true,\n }),\n ],\n });\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n container: css({\n margin: `${theme.spacing(4)} auto`,\n width: '75%',\n\n '@media (max-width: 900px)': {\n width: '95%',\n },\n }),\n };\n}\n","import React, { useEffect, useState } from 'react';\nimport z from 'zod';\n\nimport { newTracesExploration } from '../../utils/utils';\nimport { TraceExploration } from './TraceExploration';\nimport { DATASOURCE_LS_KEY } from '../../utils/shared';\nimport { reportAppInteraction, USER_EVENTS_ACTIONS, USER_EVENTS_PAGES } from '../../utils/analytics';\nimport { UrlSyncContextProvider } from '@grafana/scenes';\nimport { AdHocVariableFilter } from '@grafana/data';\n\nimport {\n // @ts-ignore new API that is not yet in stable release\n useSidecar_EXPERIMENTAL,\n} from '@grafana/runtime';\n\nconst TraceExplorationPage = () => {\n // We are calling this conditionally, but it will depend on grafana version and should not change in runtime so we\n // can ignore the hook rule here\n const sidecarContext = useSidecar_EXPERIMENTAL?.() ?? {};\n\n const initialDs = localStorage.getItem(DATASOURCE_LS_KEY) || '';\n const [exploration] = useState(newTracesExploration(initialDs, getInitialFilters(sidecarContext.initialContext)));\n\n return ;\n};\n\nexport default TraceExplorationPage;\n\nexport function TraceExplorationView({ exploration }: { exploration: TraceExploration }) {\n const [isInitialized, setIsInitialized] = React.useState(false);\n\n useEffect(() => {\n if (!isInitialized) {\n setIsInitialized(true);\n\n reportAppInteraction(USER_EVENTS_PAGES.common, USER_EVENTS_ACTIONS.common.app_initialized);\n }\n }, [exploration, isInitialized]);\n\n if (!isInitialized) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nconst AdHocVariableFilterSchema = z.object({\n key: z.string(),\n operator: z.string(),\n value: z.string(),\n});\n\nconst InitialFiltersSchema = z.object({\n filters: z.array(AdHocVariableFilterSchema),\n});\n\n/** Because the context comes from a different app plugin we cannot really count on it being the correct type even if\n * it was typed, so it is safer to do runtime parsing here. It also can come from different app extensions and at this\n * point we don't know which, but we also have implemented only one so far it's a fair guess.\n *\n * At this point there is no smartness. What ever we got from the other app we use as is. Ideally there should be some\n * normalization of the filters or smart guesses when there are differences.\n * @param context\n */\nfunction getInitialFilters(context: unknown): AdHocVariableFilter[] | undefined {\n const result = InitialFiltersSchema.safeParse(context);\n if (!result.success) {\n return undefined;\n }\n\n return result.data.filters;\n}\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","GrotNotFound","width","height","show404","theme","useTheme2","x","y","throttleInterval","mousePosition","setMousePosition","useState","useEffect","updateMousePosition","throttle","event","clientX","clientY","window","addEventListener","removeEventListener","useMousePosition","styles","useStyles2","getStyles","SVG","src","isDark","className","svg","displayName","xPos","yPos","innerWidth","innerHeight","heightRatio","widthRatio","rotation","getIntermediateValue","translation","css","transform","transformOrigin","transition","display","ratio","start","end","EmptyState","message","remedyMessage","imgWidth","padding","div","container","data-testid","Stack","direction","alignItems","gap","Text","textAlignment","variant","remedy","Icon","name","justifyContent","flexDirection","marginBottom","spacing","EmptyStateScene","SceneObjectBase","model","Component","LoadingStateScene","component","SkeletonTheme","baseColor","colors","emphasize","background","secondary","highlightColor","borderRadius","shape","radius","default","fadeIn","keyframes","opacity","label","animationName","animationDelay","animationTimingFunction","animationDuration","animationFillMode","ErrorStateScene","Alert","title","severity","Search","props","searchQuery","onSearchQueryChange","Field","searchField","Input","placeholder","prefix","value","onChange","ByFrameRepeater","renderFilteredData","filtered","series","length","this","performRepeat","state","body","setState","children","SceneFlexItem","groupSeriesBy","data","groupBy","groupedData","reduce","acc","key","fields","find","f","type","FieldType","number","labels","push","newSeries","frames","sort","a","b","localeCompare","mainFrame","frame","field","values","slice","forEach","sortDataFrame","newChildren","getGroupByVariable","getValueText","frameIndex","filter","sum","vSum","v","layoutChild","getLayoutChild","super","evt","currentTarget","onSearchQueryChangeDebounced","debounce","sceneGraph","getData","doesQueryMatchDataFrameLabels","addActivationHandler","_subs","add","subscribeToState","LoadingState","Done","Streaming","EMPTY_STATE_ERROR_MESSAGE","EMPTY_STATE_ERROR_REMEDY_MESSAGE","publishEvent","EventTimeseriesDataReceived","SceneCSSGridLayout","errors","SkeletonComponent","newState","prevState","flexGrow","repeat","getSkeletonStyles","Array","_","i","itemContainer","header","Skeleton","count","action","yAxis","yAxisItem","xAxis","xAxisItem","gridTemplateColumns","GRID_TEMPLATE_COLUMNS","gridAutoRows","rowGap","columnGap","backgroundColor","primary","border","marginTop","dataFrame","pattern","trim","regex","RegExp","some","test","barsPanelConfig","PanelBuilders","timeseries","setOption","showLegend","setCustomFieldConfig","DrawStyle","Bars","mode","StackingMode","Normal","setOverrides","overrides","matchFieldsWithNameByRegex","overrideColor","fixedColor","TooltipDisplayMode","Multi","generateMetricsQuery","metric","groupByKey","extraFilters","groupByStatus","filters","VAR_FILTERS_EXPR","ALL","metricFn","groupByAttrs","join","metricByWithStatus","tagKey","refId","query","queryType","tableType","limit","spss","UNIT_STEPS","Math","log10","unit","microseconds","ofPrevious","formatDuration","duration","primaryUnit","secondaryUnit","_dropWhile","index","_round","primaryUnitString","floor","secondaryValue","round","secondaryUnitString","getStepForTimeRange","scene","dataPoints","sceneTimeRange","getTimeRange","from","unix","to","dur","asSeconds","StepQueryRunner","SceneQueryRunner","_onActivateStep","step","maxDataPoints","queries","newStep","constructor","bind","StreamingIndicator","isStreaming","iconSize","Tooltip","content","size","streamingIndicator","success","text","fill","reportAppInteraction","page","properties","reportInteraction","pluginJson","replace","createInteractionName","USER_EVENTS_PAGES","analyse_traces","home","common","USER_EVENTS_ACTIONS","action_view_changed","breakdown_group_by_changed","breakdown_add_to_filters_clicked","comparison_add_to_filters_clicked","select_attribute_in_comparison_clicked","layout_type_changed","start_investigation","stop_investigation","open_trace","open_in_explore_clicked","add_to_investigation_clicked","add_to_investigation_trace_view_clicked","span_list_columns_changed","toggle_bookmark_clicked","homepage_initialized","panel_row_clicked","explore_traces_clicked","read_documentation_clicked","filter_changed","go_to_bookmark_clicked","metric_changed","new_filter_added_manually","app_initialized","global_docs_link_clicked","metric_docs_link_clicked","feedback_link_clicked","histogramPanelConfig","heatmap","show","axisLabel","scheme","steps","yBucketToDuration","yValue","buckets","multiplier","rawValue","isNaN","toFixed","primarySignalOptions","operator","description","AddToFiltersAction","onClick","variable","getFiltersVariable","labelKey","labelName","getLabelValue","addToFilters","filterExistsForKey","Button","icon","filtersWithoutNew","history","pushState","computeHighestDifference","baselineField","selectionField","maxDifference","maxDifferenceIndex","diff","abs","getDefaultSelectionForMetric","HighestDifferencePanel","_onActivate","getAttribute","getValue","valueField","onAddToFilters","attribute","differenceContainer","fontSize","differenceValue","fontWeight","textAlign","color","textWrap","whiteSpace","overflow","textOverflow","panel","filterExists","undefined","BaselineColor","SelectionColor","getFrameName","df","panels","getTitle","actionsFn","existingGridItem","dataNode","SceneDataNode","$data","getPanelConfig","setTitle","setData","actions","setHeaderActions","gridItem","SceneCSSGridItem","build","barchart","setMax","matchFieldsWithName","overrideCustomFieldConfig","AxisPlacement","Hidden","overrideUnit","buildHistogramQuery","DurationComparisonControl","selection","startInvestigation","byServiceScene","getTraceByServiceScene","shouldShowSelection","actionView","setActionView","getMetricVariable","wrapper","typography","bodySmall","x0_5","isDisabled","tooltip","disabled","exemplarsTransformations","openTrace","topic","DataTopic","Annotations","source","pipe","traceIDField","config","links","url","stopPropagation","parentAnchorHref","target","parentElement","href","indexOf","traceId","split","removeExemplarsTransformation","REDPanel","isDuration","SceneDataTransformer","datasource","explorationDS","transformations","getOpenTrace","getVizPanel","yBuckets","parent","setHoverHeader","extendPanelContext","vizPanel","context","onSelectRange","args","rawSelection","newSelection","raw","timeRange","yFrom","yTo","onUserUpdateSelection","SceneFlexLayout","getHistogramVizPanel","getRateOrErrorVizPanel","setDisplayMode","setColor","buildSelectionAnnotation","xSel","ySel","arrayToDataFrame","time","xMin","xMax","timeEnd","yMin","yMax","isRegion","fillOpacity","lineWidth","lineStyle","newData","fieldHasEmptyValues","getYBuckets","annotations","minDuration","minBucket","getMinimumsForDuration","lookupVariable","VAR_LATENCY_THRESHOLD","CustomVariable","getLatencyThresholdVariable","changeValueTo","VAR_LATENCY_PARTIAL_THRESHOLD","getLatencyPartialThresholdVariable","Loading","isEqual","subtitle","headerContainer","titleContainer","titleRadioWrapper","RadioButtonList","options","span","s","parseFloat","slowestBuckets","weak","borderColor","fontWeightBold","margin","ShareExplorationAction","exploration","origin","useLocation","setTooltip","ToolbarButton","navigator","clipboard","writeText","sceneUtils","getUrlState","urlUtil","renderUrl","EXPLORATIONS_ROUTE","getUrlForExploration","setTimeout","RECOMMENDED_ATTRIBUTES","labelOrder","SpanListColumnsSelector","opt","useMemo","curr","includes","group","startsWith","Select","toString","isMulti","isClearable","virtualized","minWidth","SpanListScene","setupTransformations","nameField","TableCellDisplayMode","Custom","cellComponent","traceIdField","spanIdField","rowIndex","spanId","EventTraceOpened","Link","getLinkToExplore","custom","cellOptions","updatePanel","NotStarted","dataState","table","builder","getDataSource","getTraceExplorationScene","exploreState","JSON","stringify","range","toURLRange","panelsState","trace","subUrl","appSubUrl","panes","schemaVersion","columns","getSpanListColumnsVariable","sceneData","attributes","toOption","link","cursor","maxWidth","textDecoration","h6","row","j","rowItem","position","SpansScene","updateBody","nestedSetLeft","parseInt","intValue","Value","int_value","nestedSetRight","TreeNode","addSpan","left","min","right","max","spans","addChild","node","isChild","findMatchingChild","nodeName","child","serviceName","operationName","traceID","createNode","serviceNameAttr","stringValue","string_value","svcName","resetLeftRight","t","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","c","ROOT_SPAN_ID","StructureTabScene","tree","traces","spanSets","traceStartTime","startTimeUnixNano","ss","s1","s2","curNode","newNode","mergeTraces","parse","countSpans","loading","wrap","getPanels","minHeight","getPanel","buildData","getTrace","traceName","createDataFrame","other","references","string","spanID","parentSpanId","startTime","statusCode","erroredSpans","refType","durationNanos","buildQuery","filterStreamingProgressTransformations","metricQuery","selectionQuery","VAR_LATENCY_PARTIAL_THRESHOLD_EXPR","VAR_LATENCY_THRESHOLD_EXPR","isLoading","emptyMsg","tabName","structureDisplayName","noDataMessage","longText","actionContainer","LinkButton","toLowerCase","traceViewList","x1","marginLeft","GroupBySelector","radioAttributes","showAll","selectQuery","setSelectQuery","availableWidth","setAvailableWidth","controlsContainer","useRef","metricValue","useResizeObserver","ref","onResize","element","current","clientWidth","radioOptions","radioOptionsWidth","op","checks","SPAN_ATTR","RESOURCE_ATTR","option","textWidth","measureText","otherAttrOptions","ops","ro","filteredOptions","getModifiedSelectOptions","ignoredAttributes","defaultValue","showAllOption","defaultOnChangeValue","RadioButtonGroup","selected","newSelected","select","onInputChange","onCloseMenu","maxOptions","queryLowerCase","tag","LayoutSwitcher","Selector","active","onLayoutChange","layout","layouts","findIndex","linesPanelConfig","AddToInvestigationButton","getQueries","getContext","queryRunner","findObject","isQueryRunner","q","dsUid","labelValue","ctx","uid","location","logoPath","ADD_TO_INVESTIGATION_MENU_TEXT","extensionPointId","ADD_TO_INVESTIGATION_MENU_DIVIDER_TEXT","ADD_TO_INVESTIGATION_MENU_GROUP_TEXT","PanelMenu","addItem","item","setItems","items","iconClassName","getExploreHref","onExploreClick","VizPanelMenu","addToInvestigationButton","activate","menu","subscribeToAddToInvestigation","targetQuery","request","targets","getCurrentStep","getInvestigationLink","addToInvestigations","getPluginLinkExtensions","extensions","getObservablePluginLinks","firstValueFrom","existingMenuItems","existingAddToInvestigationLink","buildNormalLayout","$behaviors","maxima","Map","eventSub","subscribeToEvent","payload","set","findAllObjects","VizPanel","clearFieldConfigCache","fieldConfig","merge","cloneDeep","defaults","updateTimeseriesAxis","unsubscribe","reduceField","reducers","ReducerID","calcs","setUnit","templateColumns","autoRows","isLazy","status","interpolate","formatLabelValue","setMenu","AttributesDescription","tags","infoFlex","tagsFlex","style","AttributesBreakdownScene","setBody","onReferencedVariableValueChanged","radioAttributesResource","onAddToFiltersClick","_variableDependency","VariableDependencyConfig","variableNames","VAR_FILTERS","VAR_METRIC","ignore","paddingTop","controls","controlsRight","scope","marginRight","controlsLeft","justifyItems","defaultScope","radioAttributesSpan","SPAN","RESOURCE","setScope","filterType","filteredAttributes","attr","concat","getDescription","getAttributesAsOptions","BreakdownScene","comparisonQuery","selector","fromTimerange","toTimerange","buildAttributeComparison","attributeSeries","d","splitFrames","getLabel","InspectAttributeAction","AttributesComparisonScene","updateData","getPrimarySignalVariable","primarySignal","getFilteredAttributes","groupedFrames","groupFrameListByAttribute","entries","frameGroupToDataframe","aCompare","bCompare","VAR_PRIMARY_SIGNAL","traceExploration","hasAllValue","getMetricFunction","compareQuery","durString","getTheme","visualization","getColorByName","numberField","nonInternalKey","newFrame","valueNameField","val","baselineTotal","getTotalForMetaType","selectionTotal","metaType","calculatedTotal","total","currentValue","ComparisonScene","tracesByService","actionViewsDefinitions","getScene","TabsBarScene","breakpoints","up","md","top","zIndex","metricScene","tracesCount","Box","TabsBar","tab","Tab","onChangeTab","counter","MiniREDPanel","getDurationVizPanel","getRateOrErrorPanel","maxHeight","MINI_PANEL_HEIGHT","flex","headerWrapper","clickable","input","radioButton","indicatorWrapper","selectMetric","onChangeMetricFunction","TracesByServiceScene","urlActionView","URLSearchParams","search","get","metricVariable","updateQueryRunner","selectionFrom","getDatasourceVariable","updateAttributes","actionViewDef","buildGraphScene","ds","getDataSourceSrv","VAR_DATASOURCE_EXPR","__sceneObject","getTagKeys","then","tagKeys","l","updateFromUrl","_urlSync","performBrowserHistoryAction","oldAction","newAction","$timeRange","timeRangeFromSelection","spanListTransformations","SceneObjectUrlSyncConfig","MetricTypeTooltip","placement","interactive","hand","button","paddingBottom","MAIN_PANEL_HEIGHT","typeQuery","SceneTimeRange","dateTime","secondaryPanel","tertiaryPanel","behaviors","sync","DashboardCursorSync","Crosshair","ySizing","desc","indexByName","Duration","TraceViewPanelScene","panelContainer","service1","bar1","service2","bar2","service3","bar3","service4","bar4","service5","bar5","service6","bar6","TraceDrawerScene","PrimarySignalVariable","renderTraceQLLabelFilters","expr","isNumber","endsWith","renderFilter","useMount","TraceQLIssueDetector","runIssueDetectionQuery","datasourceVar","resetIssues","now","subtract","minimalTimeRange","toISOString","issueDetector","String","hasIssue","TraceQLConfigWarning","detector","p","compositeVersion","process","TraceExploration","topScene","setupInvestigationButton","VAR_DATASOURCE","localStorage","setItem","DATASOURCE_LS_KEY","isActive","stateUpdate","closeDrawer","updateInvestigationLink","serviceNameField","investigationLink","initialDS","initialFilters","$variables","SceneVariableSet","variables","DataSourceVariable","pluginId","AdHocFiltersVariable","addFilterButtonText","hide","VariableHide","hideLabel","allowCustomValue","expressionBuilder","hideVariable","VAR_GROUPBY","defaultToAll","VAR_SPAN_LIST_COLUMNS","SceneTimePicker","SceneRefreshPicker","TraceExplorationScene","drawerScene","bodyContainer","drawerHeader","borderBottom","drawerHeaderButtons","canvas","datasourceLabel","fontWeightMedium","flexWrap","menuHeader","menuHeaderSubtitle","lineHeight","helpIcon","menuVisible","setMenuVisible","React","dsVariable","filtersVariable","primarySignalVariable","VersionHeader","h5","Menu","feedbackLinksEnabled","Item","ariaLabel","Dropdown","overlay","onVisibleChange","control","Drawer","onClose","h3","IconButton","AttributePanelRow","labelTitle","valueTitle","rowHeader","locationService","actionText","actionIcon","ErroredServicesRows","valuesField","getUrl","params","getTotalErrs","SlowestTracesRows","durField","sortedByDuration","sortedFields","traceServiceField","traceNameField","console","error","ROUTES","Explore","getDuration","durationField","SlowestServicesRows","AttributePanelRows","AttributePanelScene","getIcon","medium","borderTopLeftRadius","borderTopRightRadius","titleText","AttributePanel","exemplars","renderDurationPanel","getErrorMessage","tracesContainer","rowLeft","rowRight","LightModeRocket","xmlns","viewBox","path","DarkModeRocket","cleanupParams","delete","SELECTION","useBookmarksStorage","storage","usePluginUserStorage","getBookmarks","removeBookmark","bookmark","bookmarkExists","toggleBookmark","getBookmarkForUrl","urlQueryMap","fromEntries","getAll","setBookmarks","bookmarks","BOOKMARKS_LS_KEY","getItem","addBookmark","filteredBookmarks","storedBookmark","areBookmarksEqual","bookmarkParams","storedBookmarkParams","filterKey","bookmarkKeys","k","storedKeys","allKeysMatch","every","has","bookmarkFilters","storedFilters","BookmarkItem","ACTION_VIEW","PRIMARY_SIGNAL","FILTER_SEPARATOR","getBookmarkParams","primarySignalFilter","signalData","getSignalForKey","getPrimarySignalFilter","filtersArray","getFiltersWithoutPrimarySignal","EVENT_ATTR","capitalizeFirstChar","WebkitLineClamp","WebkitBoxOrient","Bookmarks","setIsLoading","isRemoving","setIsRemoving","fetchBookmarks","loadedBookmarks","removeBookmarkClicked","updatedBookmarks","h4","LoadingPlaceholder","noBookmarks","goToBookmark","bookmarkItem","remove","HeaderScene","headerTitleContainer","headerActions","documentationLink","subHeader","variablesAndControls","getTagKeysProvider","dsVar","datasource_","DataSourceWithBackend","isArray","EVENT_INTRINSIC","ignoredAttributesHomeFilter","getAncestor","Home","getHomeScene","navigate","useNavigate","filterVariable","getHomeFilterVariable","h2","buildPanels","HOMEPAGE_FILTERS_LS_KEY","newFilters","pf","renderedFilters","VAR_HOME_FILTER","str","toUpperCase","useSidecar_EXPERIMENTAL","sidecarContext","initialDs","result","InitialFiltersSchema","safeParse","getInitialFilters","initialContext","TraceExplorationView","isInitialized","setIsInitialized","UrlSyncContextProvider","updateUrlOnInit","createBrowserHistorySteps","AdHocVariableFilterSchema","z"],"sourceRoot":""} \ No newline at end of file diff --git a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/67.js b/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/67.js deleted file mode 100644 index 413d491..0000000 --- a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/67.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[67],{67:(e,r,a)=>{a.r(r),a.d(r,{default:()=>s});var n=a(8531),t=a(2007),o=a(5959),p=a.n(o),u=a(2533);function s({datasourceUid:e,matchers:r,from:a,to:s,returnToPreviousSource:c,renderButton:l}){const i=(0,n.useReturnToPrevious)(),d=(0,o.useMemo)((()=>{let n=new URLSearchParams;return e&&n.append("var-ds",e),a&&n.append("from",a),s&&n.append("to",s),r.forEach((e=>{n.append("var-filters",`${e.name}|${e.operator}|${e.value}`)})),`a/${u.id}/explore?${n.toString()}`}),[e,a,s,r]);return d?l?l({href:d}):p().createElement(t.LinkButton,{variant:"secondary",href:d,onClick:()=>i(c||"previous")},"Open in Traces Drilldown"):null}}}]); -//# sourceMappingURL=67.js.map \ No newline at end of file diff --git a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/67.js.map b/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/67.js.map deleted file mode 100644 index b353c8b..0000000 --- a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/67.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"67.js","mappings":"qNAMe,SAASA,GAA0B,cAChDC,EAAa,SACbC,EAAQ,KACRC,EAAI,GACJC,EAAE,uBACFC,EAAsB,aACtBC,IAEA,MAAMC,GAAsBC,EAAAA,EAAAA,uBAEtBC,GAAOC,EAAAA,EAAAA,UAAQ,KACnB,IAAIC,EAAS,IAAIC,gBAkBjB,OAhBIX,GACFU,EAAOE,OAAO,SAAUZ,GAGtBE,GACFQ,EAAOE,OAAO,OAAQV,GAGpBC,GACFO,EAAOE,OAAO,KAAMT,GAGtBF,EAASY,SAASC,IAChBJ,EAAOE,OAAO,cAAe,GAAGE,EAAeC,QAAQD,EAAeE,YAAYF,EAAeG,QAAQ,IAGpG,KAAKC,EAAAA,cAAyBR,EAAOS,YAAY,GACvD,CAACnB,EAAeE,EAAMC,EAAIF,IAE7B,OAAKO,EAIDH,EACKA,EAAa,CAAEG,SAItB,kBAACY,EAAAA,WAAUA,CACTC,QAAQ,YACRb,KAAMA,EACNc,QAAS,IAAMhB,EAAoBF,GAA0B,aAC9D,4BAZM,IAgBX,C","sources":["webpack://grafana-exploretraces-app/./exposedComponents/OpenInExploreTracesButton/OpenInExploreTracesButton.tsx"],"sourcesContent":["import { useReturnToPrevious } from '@grafana/runtime';\nimport { LinkButton } from '@grafana/ui';\nimport React, { useMemo } from 'react';\nimport { OpenInExploreTracesButtonProps } from '../types';\nimport pluginJson from '../../plugin.json';\n\nexport default function OpenInExploreTracesButton({\n datasourceUid,\n matchers,\n from,\n to,\n returnToPreviousSource,\n renderButton,\n}: OpenInExploreTracesButtonProps) {\n const setReturnToPrevious = useReturnToPrevious();\n\n const href = useMemo(() => {\n let params = new URLSearchParams();\n\n if (datasourceUid) {\n params.append('var-ds', datasourceUid);\n }\n\n if (from) {\n params.append('from', from);\n }\n\n if (to) {\n params.append('to', to);\n }\n\n matchers.forEach((streamSelector) => {\n params.append('var-filters', `${streamSelector.name}|${streamSelector.operator}|${streamSelector.value}`);\n });\n\n return `a/${pluginJson.id}/explore?${params.toString()}`;\n }, [datasourceUid, from, to, matchers]);\n\n if (!href) {\n return null;\n }\n\n if (renderButton) {\n return renderButton({ href });\n }\n\n return (\n setReturnToPrevious(returnToPreviousSource || 'previous')}\n >\n Open in Traces Drilldown\n \n );\n}\n"],"names":["OpenInExploreTracesButton","datasourceUid","matchers","from","to","returnToPreviousSource","renderButton","setReturnToPrevious","useReturnToPrevious","href","useMemo","params","URLSearchParams","append","forEach","streamSelector","name","operator","value","pluginJson","toString","LinkButton","variant","onClick"],"sourceRoot":""} \ No newline at end of file diff --git a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/746.js b/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/746.js deleted file mode 100644 index 9aa7222..0000000 --- a/src/test/resources/docker/grafanaAndInfluxDb/grafana_data/plugins/grafana-exploretraces-app/746.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see 746.js.LICENSE.txt */ -(self.webpackChunkgrafana_exploretraces_app=self.webpackChunkgrafana_exploretraces_app||[]).push([[746],{7:function(e,t,n){!function(e){"use strict";e.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){return 0===this.day()?"[la scorsa] dddd [alle] LT":"[lo scorso] dddd [alle] LT"},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},16:function(e,t,n){!function(e){"use strict";var t="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(e,n,r,a){var i=function(e){var n=Math.floor(e%1e3/100),r=Math.floor(e%100/10),a=e%10,i="";return n>0&&(i+=t[n]+"vatlh"),r>0&&(i+=(""!==i?" ":"")+t[r]+"maH"),a>0&&(i+=(""!==i?" ":"")+t[a]),""===i?"pagh":i}(e);switch(r){case"ss":return i+" lup";case"mm":return i+" tup";case"hh":return i+" rep";case"dd":return i+" jaj";case"MM":return i+" jar";case"yy":return i+" DIS"}}e.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var t=e;return-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"},past:function(e){var t=e;return-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"},s:"puS lup",ss:n,m:"wa’ tup",mm:n,h:"wa’ rep",hh:n,d:"wa’ jaj",dd:n,M:"wa’ jar",MM:n,y:"wa’ DIS",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},50:function(e,t,n){!function(e){"use strict";e.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"[la] D[-an de] MMMM, YYYY",LLL:"[la] D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd[n], [la] D[-an de] MMMM, YYYY HH:mm",llll:"ddd, [la] D[-an de] MMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,n){return e>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd[n je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasintan] dddd[n je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"kelkaj sekundoj",ss:"%d sekundoj",m:"unu minuto",mm:"%d minutoj",h:"unu horo",hh:"%d horoj",d:"unu tago",dd:"%d tagoj",M:"unu monato",MM:"%d monatoj",y:"unu jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(n(2689))},76:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1200?"上午":1200===r?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2689))},230:function(e,t,n){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:0,doy:6}})}(n(2689))},311:function(e,t,n){!function(e){"use strict";e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(n(2689))},341:function(e,t,n){!function(e){"use strict";var t="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function n(e,t,n,r){var a=e;switch(n){case"s":return r||t?"néhány másodperc":"néhány másodperce";case"ss":return a+(r||t)?" másodperc":" másodperce";case"m":return"egy"+(r||t?" perc":" perce");case"mm":return a+(r||t?" perc":" perce");case"h":return"egy"+(r||t?" óra":" órája");case"hh":return a+(r||t?" óra":" órája");case"d":return"egy"+(r||t?" nap":" napja");case"dd":return a+(r||t?" nap":" napja");case"M":return"egy"+(r||t?" hónap":" hónapja");case"MM":return a+(r||t?" hónap":" hónapja");case"y":return"egy"+(r||t?" év":" éve");case"yy":return a+(r||t?" év":" éve")}return""}function r(e){return(e?"":"[múlt] ")+"["+t[this.day()]+"] LT[-kor]"}e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,n){return e<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return r.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return r.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},362:(e,t,n)=>{"use strict";var r=n(6441);function a(){}function i(){}i.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,i,s){if(s!==r){var o=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw o.name="Invariant Violation",o}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:a};return n.PropTypes=n,n}},402:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.canDragX=function(e){return"both"===e.props.axis||"x"===e.props.axis},t.canDragY=function(e){return"both"===e.props.axis||"y"===e.props.axis},t.createCoreData=function(e,t,n){const a=!(0,r.isNum)(e.lastX),s=i(e);return a?{node:s,deltaX:0,deltaY:0,lastX:t,lastY:n,x:t,y:n}:{node:s,deltaX:t-e.lastX,deltaY:n-e.lastY,lastX:e.lastX,lastY:e.lastY,x:t,y:n}},t.createDraggableData=function(e,t){const n=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/n,y:e.state.y+t.deltaY/n,deltaX:t.deltaX/n,deltaY:t.deltaY/n,lastX:e.state.x,lastY:e.state.y}},t.getBoundPosition=function(e,t,n){if(!e.props.bounds)return[t,n];let{bounds:s}=e.props;s="string"==typeof s?s:function(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}(s);const o=i(e);if("string"==typeof s){const{ownerDocument:e}=o,t=e.defaultView;let n;if(n="parent"===s?o.parentNode:e.querySelector(s),!(n instanceof t.HTMLElement))throw new Error('Bounds selector "'+s+'" could not find an element.');const i=n,l=t.getComputedStyle(o),u=t.getComputedStyle(i);s={left:-o.offsetLeft+(0,r.int)(u.paddingLeft)+(0,r.int)(l.marginLeft),top:-o.offsetTop+(0,r.int)(u.paddingTop)+(0,r.int)(l.marginTop),right:(0,a.innerWidth)(i)-(0,a.outerWidth)(o)-o.offsetLeft+(0,r.int)(u.paddingRight)-(0,r.int)(l.marginRight),bottom:(0,a.innerHeight)(i)-(0,a.outerHeight)(o)-o.offsetTop+(0,r.int)(u.paddingBottom)-(0,r.int)(l.marginBottom)}}return(0,r.isNum)(s.right)&&(t=Math.min(t,s.right)),(0,r.isNum)(s.bottom)&&(n=Math.min(n,s.bottom)),(0,r.isNum)(s.left)&&(t=Math.max(t,s.left)),(0,r.isNum)(s.top)&&(n=Math.max(n,s.top)),[t,n]},t.getControlPosition=function(e,t,n){const r="number"==typeof t?(0,a.getTouch)(e,t):null;if("number"==typeof t&&!r)return null;const s=i(n),o=n.props.offsetParent||s.offsetParent||s.ownerDocument.body;return(0,a.offsetXYFromParent)(r||e,o,n.props.scale)},t.snapToGrid=function(e,t,n){return[Math.round(t/e[0])*e[0],Math.round(n/e[1])*e[1]]};var r=n(6732),a=n(2837);function i(e){const t=e.findDOMNode();if(!t)throw new Error(": Unmounted during event!");return t}},414:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bottom=c,t.childrenEqual=function(e,t){return(0,r.default)(a.default.Children.map(e,(function(e){return null==e?void 0:e.key})),a.default.Children.map(t,(function(e){return null==e?void 0:e.key})))},t.cloneLayout=h,t.cloneLayoutItem=p,t.collides=_,t.compact=y,t.compactItem=b,t.compactType=function(e){var t=e||{},n=t.verticalCompact,r=t.compactType;return!1===n?null:r},t.correctBounds=M,t.fastPositionEqual=function(e,t){return e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height},t.fastRGLPropsEqual=void 0,t.getAllCollisions=k,t.getFirstCollision=L,t.getLayoutItem=w,t.getStatics=S,t.modifyLayout=m,t.moveElement=D,t.moveElementAwayFromCollision=Y,t.noop=void 0,t.perc=function(e){return 100*e+"%"},t.setTopLeft=function(e){var t=e.top,n=e.left,r=e.width,a=e.height;return{top:"".concat(t,"px"),left:"".concat(n,"px"),width:"".concat(r,"px"),height:"".concat(a,"px"),position:"absolute"}},t.setTransform=function(e){var t=e.top,n=e.left,r=e.width,a=e.height,i="translate(".concat(n,"px,").concat(t,"px)");return{transform:i,WebkitTransform:i,MozTransform:i,msTransform:i,OTransform:i,width:"".concat(r,"px"),height:"".concat(a,"px"),position:"absolute"}},t.sortLayoutItems=T,t.sortLayoutItemsByColRow=O,t.sortLayoutItemsByRowCol=x,t.synchronizeLayoutWithChildren=function(e,t,n,r,i){e=e||[];var s=[];a.default.Children.forEach(t,(function(t){if(null!=(null==t?void 0:t.key)){var n=w(e,String(t.key));if(n)s.push(p(n));else{!u&&t.props._grid&&console.warn("`_grid` properties on children have been deprecated as of React 15.2. Please use `data-grid` or add your properties directly to the `layout`.");var r=t.props["data-grid"]||t.props._grid;r?(u||j([r],"ReactGridLayout.children"),s.push(p(o(o({},r),{},{i:t.key})))):s.push(p({w:1,h:1,x:0,y:c(s),i:String(t.key)}))}}}));var l=M(s,{cols:n});return i?l:y(l,r,n)},t.validateLayout=j,t.withLayoutItem=function(e,t,n){var r=w(e,t);return r?[e=m(e,r=n(p(r))),r]:[e,null]};var r=i(n(7842)),a=i(n(5959));function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;tn&&(n=t);return n}function h(e){for(var t=Array(e.length),n=0,r=e.length;n=t.x+t.w||e.y+e.h<=t.y||e.y>=t.y+t.h)}function y(e,t,n){for(var r=S(e),a=T(e,t),i=Array(e.length),s=0,o=a.length;st.y+t.h)break;_(t,s)&&v(e,s,n+t[a],r)}}t[r]=n}function b(e,t,n,r,a){var i,s="horizontal"===n;if("vertical"===n)for(t.y=Math.min(c(e),t.y);t.y>0&&!L(e,t);)t.y--;else if(s)for(;t.x>0&&!L(e,t);)t.x--;for(;i=L(e,t);)s?v(a,t,i.x+i.w,"x"):v(a,t,i.y+i.h,"y"),s&&t.x+t.w>r&&(t.x=r-t.w,t.y++);return t.y=Math.max(t.y,0),t.x=Math.max(t.x,0),t}function M(e,t){for(var n=S(e),r=0,a=e.length;rt.cols&&(i.x=t.cols-i.w),i.x<0&&(i.x=0,i.w=t.cols),i.static)for(;L(n,i);)i.y++;else n.push(i)}return e}function w(e,t){for(var n=0,r=e.length;n=r:"horizontal"===s&&"number"==typeof n&&u>=n)&&(c=c.reverse());var m=k(c,t),p=m.length>0;if(p&&l)return h(e);if(p&&i)return P("Collision prevented on ".concat(t.i,", reverting.")),t.x=u,t.y=d,t.moved=!1,e;for(var f=0,_=m.length;f<_;f++){var y=m[f];P("Resolving collision between ".concat(t.i," at [").concat(t.x,",").concat(t.y,"] and ").concat(y.i," at [").concat(y.x,",").concat(y.y,"]")),y.moved||(e=y.static?Y(e,y,t,a,s,o):Y(e,t,y,a,s,o))}return e}function Y(e,t,n,r,a,i){var s="horizontal"===a,o="horizontal"!==a,l=t.static;if(r){r=!1;var u={x:s?Math.max(t.x-n.w,0):n.x,y:o?Math.max(t.y-n.h,0):n.y,w:n.w,h:n.h,i:"-1"};if(!L(e,u))return P("Doing reverse collision on ".concat(n.i," up to [").concat(u.x,",").concat(u.y,"].")),D(e,n,s?u.x:void 0,o?u.y:void 0,r,l,a,i)}return D(e,n,s?n.x+1:void 0,o?n.y+1:void 0,r,l,a,i)}function T(e,t){return"horizontal"===t?O(e):"vertical"===t?x(e):e}function x(e){return e.slice(0).sort((function(e,t){return e.y>t.y||e.y===t.y&&e.x>t.x?1:e.y===t.y&&e.x===t.x?0:-1}))}function O(e){return e.slice(0).sort((function(e,t){return e.x>t.x||e.x===t.x&&e.y>t.y?1:-1}))}function j(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Layout",n=["x","y","w","h"];if(!Array.isArray(e))throw new Error(t+" must be an array!");for(var r=0,a=e.length;r=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},translate:function(e,n,r,a){var i,s=t.words[r];return 1===r.length?"y"===r&&n?"једна година":a||n?s[0]:s[1]:(i=t.correctGrammaticalCase(e,s),"yy"===r&&n&&"годину"===i?e+" година":e+" "+i)}};e.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:t.translate,dd:t.translate,M:t.translate,MM:t.translate,y:t.translate,yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},544:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findOrGenerateResponsiveLayout=function(e,t,n,i,s,o){if(e[n])return(0,r.cloneLayout)(e[n]);for(var l=e[i],u=a(t),d=u.slice(u.indexOf(n)),c=0,h=d.length;ce[o]&&(r=o)}return r},t.getColsFromBreakpoint=function(e,t){if(!t[e])throw new Error("ResponsiveReactGridLayout: `cols` entry for breakpoint "+e+" is missing!");return t[e]},t.sortBreakpoints=a;var r=n(414);function a(e){return Object.keys(e).sort((function(t,n){return e[t]-e[n]}))}},600:function(e,t,n){!function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^(maart|mrt\.?)$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],a=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",w:"één week",ww:"%d weken",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2689))},765:function(e,t,n){!function(e){"use strict";e.defineLocale("en-in",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:6}})}(n(2689))},818:function(e,t,n){!function(e){"use strict";e.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(e,t){return 12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"يېرىم كېچە":r<900?"سەھەر":r<1130?"چۈشتىن بۇرۇن":r<1230?"چۈش":r<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}})}(n(2689))},901:function(e,t,n){!function(e){"use strict";e.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Миналата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[Миналия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",w:"седмица",ww:"%d седмици",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(2689))},906:(e,t)=>{"use strict";function n(e){var t=e.margin,n=e.containerPadding,r=e.containerWidth,a=e.cols;return(r-t[0]*(a-1)-2*n[0])/a}function r(e,t,n){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*n):e}function a(e,t,n){return Math.max(Math.min(e,n),t)}Object.defineProperty(t,"__esModule",{value:!0}),t.calcGridColWidth=n,t.calcGridItemPosition=function(e,t,a,i,s,o){var l=e.margin,u=e.containerPadding,d=e.rowHeight,c=n(e),h={};return o&&o.resizing?(h.width=Math.round(o.resizing.width),h.height=Math.round(o.resizing.height)):(h.width=r(i,c,l[0]),h.height=r(s,d,l[1])),o&&o.dragging?(h.top=Math.round(o.dragging.top),h.left=Math.round(o.dragging.left)):(h.top=Math.round((d+l[1])*a+u[1]),h.left=Math.round((c+l[0])*t+u[0])),h},t.calcGridItemWHPx=r,t.calcWH=function(e,t,r,i,s){var o=e.margin,l=e.maxRows,u=e.cols,d=e.rowHeight,c=n(e),h=Math.round((t+o[0])/(c+o[0])),m=Math.round((r+o[1])/(d+o[1]));return{w:h=a(h,0,u-i),h:m=a(m,0,l-s)}},t.calcXY=function(e,t,r,i,s){var o=e.margin,l=e.cols,u=e.rowHeight,d=e.maxRows,c=n(e),h=Math.round((r-o[0])/(c+o[0])),m=Math.round((t-o[1])/(u+o[1]));return{x:h=a(h,0,l-i),y:m=a(m,0,d-s)}},t.clamp=a},936:(e,t,n)=>{"use strict";e.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},e.exports.Resizable=n(1794).default,e.exports.ResizableBox=n(6609).default},940:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(5959);function a(e){for(var t=[],n=1;n=3?e:e+12:"বিকাল"===t||"সন্ধ্যা"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"রাত":e<6?"ভোর":e<12?"সকাল":e<15?"দুপুর":e<18?"বিকাল":e<20?"সন্ধ্যা":"রাত"},week:{dow:0,doy:6}})}(n(2689))},1060:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var s=a?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}(n(5959)),a=d(n(2688)),i=d(n(8398)),s=n(2837),o=n(402),l=n(6732),u=d(n(7988));function d(e){return e&&e.__esModule?e:{default:e}}function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}function h(e,t,n){return(t=function(e){var t=function(e){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const m={start:"touchstart",move:"touchmove",stop:"touchend"},p={start:"mousedown",move:"mousemove",stop:"mouseup"};let f=p;class _ extends r.Component{constructor(){super(...arguments),h(this,"dragging",!1),h(this,"lastX",NaN),h(this,"lastY",NaN),h(this,"touchIdentifier",null),h(this,"mounted",!1),h(this,"handleDragStart",(e=>{if(this.props.onMouseDown(e),!this.props.allowAnyClick&&"number"==typeof e.button&&0!==e.button)return!1;const t=this.findDOMNode();if(!t||!t.ownerDocument||!t.ownerDocument.body)throw new Error(" not mounted on DragStart!");const{ownerDocument:n}=t;if(this.props.disabled||!(e.target instanceof n.defaultView.Node)||this.props.handle&&!(0,s.matchesSelectorAndParentsTo)(e.target,this.props.handle,t)||this.props.cancel&&(0,s.matchesSelectorAndParentsTo)(e.target,this.props.cancel,t))return;"touchstart"===e.type&&e.preventDefault();const r=(0,s.getTouchIdentifier)(e);this.touchIdentifier=r;const a=(0,o.getControlPosition)(e,r,this);if(null==a)return;const{x:i,y:l}=a,d=(0,o.createCoreData)(this,i,l);(0,u.default)("DraggableCore: handleDragStart: %j",d),(0,u.default)("calling",this.props.onStart),!1!==this.props.onStart(e,d)&&!1!==this.mounted&&(this.props.enableUserSelectHack&&(0,s.addUserSelectStyles)(n),this.dragging=!0,this.lastX=i,this.lastY=l,(0,s.addEvent)(n,f.move,this.handleDrag),(0,s.addEvent)(n,f.stop,this.handleDragStop))})),h(this,"handleDrag",(e=>{const t=(0,o.getControlPosition)(e,this.touchIdentifier,this);if(null==t)return;let{x:n,y:r}=t;if(Array.isArray(this.props.grid)){let e=n-this.lastX,t=r-this.lastY;if([e,t]=(0,o.snapToGrid)(this.props.grid,e,t),!e&&!t)return;n=this.lastX+e,r=this.lastY+t}const a=(0,o.createCoreData)(this,n,r);if((0,u.default)("DraggableCore: handleDrag: %j",a),!1!==this.props.onDrag(e,a)&&!1!==this.mounted)this.lastX=n,this.lastY=r;else try{this.handleDragStop(new MouseEvent("mouseup"))}catch(e){const t=document.createEvent("MouseEvents");t.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(t)}})),h(this,"handleDragStop",(e=>{if(!this.dragging)return;const t=(0,o.getControlPosition)(e,this.touchIdentifier,this);if(null==t)return;let{x:n,y:r}=t;if(Array.isArray(this.props.grid)){let e=n-this.lastX||0,t=r-this.lastY||0;[e,t]=(0,o.snapToGrid)(this.props.grid,e,t),n=this.lastX+e,r=this.lastY+t}const a=(0,o.createCoreData)(this,n,r);if(!1===this.props.onStop(e,a)||!1===this.mounted)return!1;const i=this.findDOMNode();i&&this.props.enableUserSelectHack&&(0,s.removeUserSelectStyles)(i.ownerDocument),(0,u.default)("DraggableCore: handleDragStop: %j",a),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,i&&((0,u.default)("DraggableCore: Removing handlers"),(0,s.removeEvent)(i.ownerDocument,f.move,this.handleDrag),(0,s.removeEvent)(i.ownerDocument,f.stop,this.handleDragStop))})),h(this,"onMouseDown",(e=>(f=p,this.handleDragStart(e)))),h(this,"onMouseUp",(e=>(f=p,this.handleDragStop(e)))),h(this,"onTouchStart",(e=>(f=m,this.handleDragStart(e)))),h(this,"onTouchEnd",(e=>(f=m,this.handleDragStop(e))))}componentDidMount(){this.mounted=!0;const e=this.findDOMNode();e&&(0,s.addEvent)(e,m.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const e=this.findDOMNode();if(e){const{ownerDocument:t}=e;(0,s.removeEvent)(t,p.move,this.handleDrag),(0,s.removeEvent)(t,m.move,this.handleDrag),(0,s.removeEvent)(t,p.stop,this.handleDragStop),(0,s.removeEvent)(t,m.stop,this.handleDragStop),(0,s.removeEvent)(e,m.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,s.removeUserSelectStyles)(t)}}findDOMNode(){var e,t;return null!==(e=this.props)&&void 0!==e&&e.nodeRef?null===(t=this.props)||void 0===t||null===(t=t.nodeRef)||void 0===t?void 0:t.current:i.default.findDOMNode(this)}render(){return r.cloneElement(r.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}}t.default=_,h(_,"displayName","DraggableCore"),h(_,"propTypes",{allowAnyClick:a.default.bool,children:a.default.node.isRequired,disabled:a.default.bool,enableUserSelectHack:a.default.bool,offsetParent:function(e,t){if(e[t]&&1!==e[t].nodeType)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:a.default.arrayOf(a.default.number),handle:a.default.string,cancel:a.default.string,nodeRef:a.default.object,onStart:a.default.func,onDrag:a.default.func,onStop:a.default.func,onMouseDown:a.default.func,scale:a.default.number,className:l.dontSetMe,style:l.dontSetMe,transform:l.dontSetMe}),h(_,"defaultProps",{allowAnyClick:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1})},1146:function(e,t,n){!function(e){"use strict";function t(e){return e%100==11||e%10!=1}function n(e,n,r,a){var i=e+" ";switch(r){case"s":return n||a?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return t(e)?i+(n||a?"sekúndur":"sekúndum"):i+"sekúnda";case"m":return n?"mínúta":"mínútu";case"mm":return t(e)?i+(n||a?"mínútur":"mínútum"):n?i+"mínúta":i+"mínútu";case"hh":return t(e)?i+(n||a?"klukkustundir":"klukkustundum"):i+"klukkustund";case"d":return n?"dagur":a?"dag":"degi";case"dd":return t(e)?n?i+"dagar":i+(a?"daga":"dögum"):n?i+"dagur":i+(a?"dag":"degi");case"M":return n?"mánuður":a?"mánuð":"mánuði";case"MM":return t(e)?n?i+"mánuðir":i+(a?"mánuði":"mánuðum"):n?i+"mánuður":i+(a?"mánuð":"mánuði");case"y":return n||a?"ár":"ári";case"yy":return t(e)?i+(n||a?"ár":"árum"):i+(n||a?"ár":"ári")}}e.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},1152:function(e,t,n){!function(e){"use strict";e.defineLocale("en-sg",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2689))},1258:function(e,t,n){!function(e){"use strict";e.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},1326:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-mx",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:4},invalidDate:"Fecha inválida"})}(n(2689))},1388:function(e,t,n){!function(e){"use strict";e.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(e){return/^(ցերեկվա|երեկոյան)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}})}(n(2689))},1463:function(e,t,n){!function(e){"use strict";e.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&e>=4||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,n){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}})}(n(2689))},1502:function(e,t,n){!function(e){"use strict";e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2689))},1564:function(e,t,n){!function(e){"use strict";var t={standalone:"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),format:"ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince".split("_"),isFormat:/DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/},n="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),r=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],a=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;function i(e){return e>1&&e<5&&1!=~~(e/10)}function s(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"pár sekund":"pár sekundami";case"ss":return t||r?a+(i(e)?"sekundy":"sekund"):a+"sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?a+(i(e)?"minuty":"minut"):a+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?a+(i(e)?"hodiny":"hodin"):a+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?a+(i(e)?"dny":"dní"):a+"dny";case"M":return t||r?"měsíc":"měsícem";case"MM":return t||r?a+(i(e)?"měsíce":"měsíců"):a+"měsíci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?a+(i(e)?"roky":"let"):a+"lety"}}e.defineLocale("cs",{months:t,monthsShort:n,monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s,ss:s,m:s,mm:s,h:s,hh:s,d:s,dd:s,M:s,MM:s,y:s,yy:s},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},1567:(e,t,n)=>{var r;!function(){"use strict";var a=!("undefined"==typeof window||!window.document||!window.document.createElement),i={canUseDOM:a,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:a&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:a&&!!window.screen};void 0===(r=function(){return i}.call(t,n,t,e))||(e.exports=r)}()},1575:(e,t,n)=>{"use strict";n.d(t,{A:()=>b});var r=n(5959),a=["br","col","colgroup","dl","hr","iframe","img","input","link","menuitem","meta","ol","param","select","table","tbody","tfoot","thead","tr","ul","wbr"],i={"accept-charset":"acceptCharset",acceptcharset:"acceptCharset",accesskey:"accessKey",allowfullscreen:"allowFullScreen",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",class:"className",classid:"classID",classname:"className",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",controlslist:"controlsList",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",datetime:"dateTime",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",enctype:"encType",for:"htmlFor",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",innerhtml:"innerHTML",inputmode:"inputMode",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",marginwidth:"marginWidth",marginheight:"marginHeight",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",nomodule:"noModule",novalidate:"noValidate",playsinline:"playsInline",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",typemustmatch:"typeMustMatch",usemap:"useMap",accentheight:"accentHeight","accent-height":"accentHeight",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",arabicform:"arabicForm","arabic-form":"arabicForm",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",diffuseconstant:"diffuseConstant",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",edgemode:"edgeMode",enablebackground:"enableBackground","enable-background":"enableBackground",externalresourcesrequired:"externalResourcesRequired",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",imagerendering:"imageRendering","image-rendering":"imageRendering",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",vmathematical:"vMathematical","v-mathematical":"vMathematical",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan",onblur:"onBlur",onchange:"onChange",onclick:"onClick",oncontextmenu:"onContextMenu",ondoubleclick:"onDoubleClick",ondrag:"onDrag",ondragend:"onDragEnd",ondragenter:"onDragEnter",ondragexit:"onDragExit",ondragleave:"onDragLeave",ondragover:"onDragOver",ondragstart:"onDragStart",ondrop:"onDrop",onerror:"onError",onfocus:"onFocus",oninput:"onInput",oninvalid:"onInvalid",onkeydown:"onKeyDown",onkeypress:"onKeyPress",onkeyup:"onKeyUp",onload:"onLoad",onmousedown:"onMouseDown",onmouseenter:"onMouseEnter",onmouseleave:"onMouseLeave",onmousemove:"onMouseMove",onmouseout:"onMouseOut",onmouseover:"onMouseOver",onmouseup:"onMouseUp",onscroll:"onScroll",onsubmit:"onSubmit",ontouchcancel:"onTouchCancel",ontouchend:"onTouchEnd",ontouchmove:"onTouchMove",ontouchstart:"onTouchStart",onwheel:"onWheel"},s=function(){return s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=i.next()).done;)s.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(a)throw a.error}}return s},l=function(e,t,n){if(n||2===arguments.length)for(var r,a=0,i=t.length;a0)&&!(r=i.next()).done;)s.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(a)throw a.error}}return s}(t.split(/ ?: ?/),2),r=n[0],a=n[1];return r&&a&&(e[r.replace(/-(\w)/g,(function(e,t){return t.toUpperCase()}))]=Number.isNaN(Number(a))?a:Number(a)),e}),{});break;case"allowfullscreen":case"allowpaymentrequest":case"async":case"autofocus":case"autoplay":case"checked":case"controls":case"default":case"defer":case"disabled":case"formnovalidate":case"hidden":case"ismap":case"itemscope":case"loop":case"multiple":case"muted":case"nomodule":case"novalidate":case"open":case"readonly":case"required":case"reversed":case"selected":case"typemustmatch":n[i[e.name]||e.name]=!0;break;default:n[i[e.name]||e.name]=e.value}}))}return n}function d(e,t){var n;if(void 0===t&&(t={}),!(e&&e instanceof Node))return null;var i,c=t.actions,h=void 0===c?[]:c,m=t.index,p=void 0===m?0:m,f=t.level,_=void 0===f?0:f,y=t.randomKey,g=e,v="".concat(_,"-").concat(p),b=[];if(y&&0===_&&(v="".concat(function(e){void 0===e&&(e=6);for(var t="",n=e;n>0;--n)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.round(61*Math.random())];return t}(),"-").concat(v)),Array.isArray(h)&&h.forEach((function(t){t.condition(g,v,_)&&("function"==typeof t.pre&&((g=t.pre(g,v,_))instanceof Node||(g=e)),"function"==typeof t.post&&b.push(t.post(g,v,_)))})),b.length)return b;switch(g.nodeType){case 1:return r.createElement((i=g.nodeName,/[a-z]+[A-Z]+[a-z]+/.test(i)?i:i.toLowerCase()),u(g,v),function(e,t,n){var r=l([],o(e),!1).map((function(e,r){return d(e,s(s({},n),{index:r,level:t+1}))})).filter(Boolean);return r.length?r:null}(g.childNodes,_,t));case 3:var M=(null===(n=g.nodeValue)||void 0===n?void 0:n.toString())||"";if(/^\s+$/.test(M)&&!/[\u00A0\u202F]/.test(M))return null;if(!g.parentNode)return M;var w=g.parentNode.nodeName.toLowerCase();return a.includes(w)?(/\S/.test(M)&&console.warn("A textNode is not allowed inside '".concat(w,"'. Your text \"").concat(M,'" will be ignored')),null):M;default:return null}}function c(e,t){return void 0===t&&(t={}),"string"==typeof e?function(e,t){if(void 0===t&&(t={}),!e||"string"!=typeof e)return null;var n=t.nodeOnly,r=void 0!==n&&n,a=t.selector,i=void 0===a?"body > *":a,s=t.type,o=void 0===s?"text/html":s;try{var l=(new DOMParser).parseFromString(e,o).querySelector(i);if(!(l instanceof Node))throw new TypeError("Error parsing input");return r?l:d(l,t)}catch(e){}return null}(e,t):e instanceof Node?d(e,t):null}var h=n(1567),m={FAILED:"failed",LOADED:"loaded",LOADING:"loading",PENDING:"pending",READY:"ready",UNSUPPORTED:"unsupported"};function p(){return h.canUseDOM}var f,_=(f=function(e,t){return f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},f(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}f(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),y=function(){return y=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0)&&!(r=i.next()).done;)s.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(a)throw a.error}}return s},v=Object.create(null);const b=function(e){function t(t){var n=e.call(this,t)||this;return Object.defineProperty(n,"isInitialized",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(n,"isActive",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(n,"hash",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(n,"handleLoad",{enumerable:!0,configurable:!0,writable:!0,value:function(e,t){void 0===t&&(t=!1),n.isActive&&n.setState({content:e,hasCache:t,status:m.LOADED},n.getElement)}}),Object.defineProperty(n,"handleError",{enumerable:!0,configurable:!0,writable:!0,value:function(e){var t=n.props.onError,r="Browser does not support SVG"===e.message?m.UNSUPPORTED:m.FAILED;n.isActive&&n.setState({status:r},(function(){"function"==typeof t&&t(e)}))}}),Object.defineProperty(n,"request",{enumerable:!0,configurable:!0,writable:!0,value:function(){var e=n.props,t=e.cacheRequests,r=e.fetchOptions,a=e.src;try{return t&&(v[a]={content:"",status:m.LOADING}),fetch(a,r).then((function(e){var t=e.headers.get("content-type"),n=g((t||"").split(/ ?; ?/),1)[0];if(e.status>299)throw new Error("Not found");if(!["image/svg+xml","text/plain"].some((function(e){return n.includes(e)})))throw new Error("Content type isn't valid: ".concat(n));return e.text()})).then((function(e){var r=n.props.src;if(a===r){if(n.handleLoad(e),t){var i=v[a];i&&(i.content=e,i.status=m.LOADED)}}else v[a].status===m.LOADING&&delete v[a]})).catch((function(e){n.handleError(e),t&&v[a]&&delete v[a]}))}catch(e){return n.handleError(new Error(e.message))}}}),n.state={content:"",element:null,hasCache:!!t.cacheRequests&&!!v[t.src],status:m.PENDING},n.hash=t.uniqueHash||function(){for(var e,t="abcdefghijklmnopqrstuvwxyz",n="".concat(t).concat(t.toUpperCase()).concat("1234567890"),r="",a=0;a<8;a++)r+=(e=n)[Math.floor(Math.random()*e.length)];return r}(),n}return _(t,e),Object.defineProperty(t.prototype,"componentDidMount",{enumerable:!1,configurable:!0,writable:!0,value:function(){if(this.isActive=!0,p()&&!this.isInitialized){var e=this.state.status,t=this.props.src;try{if(e===m.PENDING){if(!function(){if(!document)return!1;var e=document.createElement("div");e.innerHTML="";var t=e.firstChild;return!!t&&"http://www.w3.org/2000/svg"===t.namespaceURI}()||"undefined"==typeof window||null===window)throw new Error("Browser does not support SVG");if(!t)throw new Error("Missing src");this.load()}}catch(e){this.handleError(e)}this.isInitialized=!0}}}),Object.defineProperty(t.prototype,"componentDidUpdate",{enumerable:!1,configurable:!0,writable:!0,value:function(e,t){if(p()){var n=this.state,r=n.hasCache,a=n.status,i=this.props,s=i.onLoad,o=i.src;if(t.status!==m.READY&&a===m.READY&&s&&s(o,r),e.src!==o){if(!o)return void this.handleError(new Error("Missing src"));this.load()}}}}),Object.defineProperty(t.prototype,"componentWillUnmount",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.isActive=!1}}),Object.defineProperty(t.prototype,"getNode",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this.props,t=e.description,n=e.title;try{var r=c(this.processSVG(),{nodeOnly:!0});if(!(r&&r instanceof SVGSVGElement))throw new Error("Could not convert the src to a DOM Node");var a=this.updateSVGAttributes(r);if(t){var i=a.querySelector("desc");i&&i.parentNode&&i.parentNode.removeChild(i);var s=document.createElementNS("http://www.w3.org/2000/svg","desc");s.innerHTML=t,a.prepend(s)}if(void 0!==n){var o=a.querySelector("title");if(o&&o.parentNode&&o.parentNode.removeChild(o),n){var l=document.createElementNS("http://www.w3.org/2000/svg","title");l.innerHTML=n,a.prepend(l)}}return a}catch(e){return this.handleError(e)}}}),Object.defineProperty(t.prototype,"getElement",{enumerable:!1,configurable:!0,writable:!0,value:function(){try{var e=c(this.getNode());if(!e||!r.isValidElement(e))throw new Error("Could not convert the src to a React element");this.setState({element:e,status:m.READY})}catch(e){this.handleError(new Error(e.message))}}}),Object.defineProperty(t.prototype,"load",{enumerable:!1,configurable:!0,writable:!0,value:function(){var e=this;this.isActive&&this.setState({content:"",element:null,hasCache:!1,status:m.LOADING},(function(){var t=e.props,n=t.cacheRequests,r=t.src,a=n&&v[r];if(a&&a.status===m.LOADED)e.handleLoad(a.content,!0);else{var i,s=r.match(/data:image\/svg[^,]*?(;base64)?,(.*)/);s?i=s[1]?window.atob(s[2]):decodeURIComponent(s[2]):r.includes("{"use strict";t.__esModule=!0,t.default=void 0;var r=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var s=a?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}(n(5959)),a=n(8230),i=n(9954),s=n(6333),o=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;tMath.abs(l*s)?t=e/s:e=t*s}var u=e,d=t,c=this.slack||[0,0],h=c[0],m=c[1];return e+=h,t+=m,r&&(e=Math.max(r[0],e),t=Math.max(r[1],t)),a&&(e=Math.min(a[0],e),t=Math.min(a[1],t)),this.slack=[h+(u-e),m+(d-t)],[e,t]},l.resizeHandler=function(e,t){var n=this;return function(r,a){var i=a.node,s=a.deltaX,o=a.deltaY;"onResizeStart"===e&&n.resetData();var l=("both"===n.props.axis||"x"===n.props.axis)&&"n"!==t&&"s"!==t,u=("both"===n.props.axis||"y"===n.props.axis)&&"e"!==t&&"w"!==t;if(l||u){var d=t[0],c=t[t.length-1],h=i.getBoundingClientRect();null!=n.lastHandleRect&&("w"===c&&(s+=h.left-n.lastHandleRect.left),"n"===d&&(o+=h.top-n.lastHandleRect.top)),n.lastHandleRect=h,"w"===c&&(s=-s),"n"===d&&(o=-o);var m=n.props.width+(l?s/n.props.transformScale:0),p=n.props.height+(u?o/n.props.transformScale:0),f=n.runConstraints(m,p);m=f[0],p=f[1];var _=m!==n.props.width||p!==n.props.height,y="function"==typeof n.props[e]?n.props[e]:null;y&&!("onResize"===e&&!_)&&(null==r.persist||r.persist(),y(r,{node:i,size:{width:m,height:p},handle:t})),"onResizeStop"===e&&n.resetData()}}},l.renderResizeHandle=function(e,t){var n=this.props.handle;if(!n)return r.createElement("span",{className:"react-resizable-handle react-resizable-handle-"+e,ref:t});if("function"==typeof n)return n(e,t);var a=c({ref:t},"string"==typeof n.type?{}:{handleAxis:e});return r.cloneElement(n,a)},l.render=function(){var e=this,t=this.props,n=t.children,s=t.className,l=t.draggableOpts,d=(t.width,t.height,t.handle,t.handleSize,t.lockAspectRatio,t.axis,t.minConstraints,t.maxConstraints,t.onResize,t.onResizeStop,t.onResizeStart,t.resizeHandles),h=(t.transformScale,function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r=0||(a[n]=e[n]);return a}(t,o));return(0,i.cloneElement)(n,c(c({},h),{},{className:(s?s+" ":"")+"react-resizable",children:[].concat(n.props.children,d.map((function(t){var n,i=null!=(n=e.handleRefs[t])?n:e.handleRefs[t]=r.createRef();return r.createElement(a.DraggableCore,u({},l,{nodeRef:i,key:"resizableHandle-"+t,onStop:e.resizeHandler("onResizeStop",t),onStart:e.resizeHandler("onResizeStart",t),onDrag:e.resizeHandler("onResize",t)}),e.renderResizeHandle(t,i))})))}))},s}(r.Component);t.default=p,p.propTypes=s.resizableProps,p.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1}},1906:function(e,t,n){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];e.defineLocale("ku",{months:r,monthsShort:r,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ئێواره‌|به‌یانی/,isPM:function(e){return/ئێواره‌/.test(e)},meridiem:function(e,t,n){return e<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2689))},1944:function(e,t,n){!function(e){"use strict";var t={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mjesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},1966:function(e,t,n){!function(e){"use strict";var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn",{months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&e>=4||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,n){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})}(n(2689))},2086:function(e,t,n){!function(e){"use strict";e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(2689))},2103:function(e,t,n){!function(e){"use strict";e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2689))},2179:function(e,t,n){!function(e){"use strict";e.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần trước lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",w:"một tuần",ww:"%d tuần",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2689))},2180:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n(2689))},2206:function(e,t,n){!function(e){"use strict";e.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,n){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",w:"1 สัปดาห์",ww:"%d สัปดาห์",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}(n(2689))},2231:function(e,t,n){!function(e){"use strict";e.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(\:e|\:a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?":e":1===t||2===t?":a":":e")},week:{dow:1,doy:4}})}(n(2689))},2305:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-mo",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"D/M/YYYY",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2689))},2366:function(e,t,n){!function(e){"use strict";e.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return e>20?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}})}(n(2689))},2419:function(e,t,n){!function(e){"use strict";var t="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2689))},2453:function(e,t,n){!function(e){"use strict";e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},2455:function(e,t,n){!function(e){"use strict";e.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2689))},2548:(e,t,n)=>{e.exports=n(9482).default,e.exports.utils=n(414),e.exports.Responsive=n(4636).default,e.exports.Responsive.utils=n(544),e.exports.WidthProvider=n(6805).default},2607:function(e,t,n){!function(e){"use strict";e.defineLocale("fil",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2689))},2655:function(e,t,n){!function(e){"use strict";e.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,n){return e>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){return 6===this.day()?"[το προηγούμενο] dddd [{}] LT":"[την προηγούμενη] dddd [{}] LT"},sameElse:"L"},calendar:function(e,t){var n,r=this._calendarEl[e],a=t&&t.hours();return n=r,("undefined"!=typeof Function&&n instanceof Function||"[object Function]"===Object.prototype.toString.call(n))&&(r=r.apply(t)),r.replace("{}",a%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})}(n(2689))},2688:(e,t,n)=>{e.exports=n(362)()},2689:function(e,t,n){(e=n.nmd(e)).exports=function(){"use strict";var t,r;function a(){return t.apply(null,arguments)}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function s(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function l(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(o(e,t))return!1;return!0}function u(e){return void 0===e}function d(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function c(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function h(e,t){var n,r=[],a=e.length;for(n=0;n>>0;for(t=0;t0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}var P=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,E=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,C={},H={};function R(e,t,n,r){var a=r;"string"==typeof r&&(a=function(){return this[r]()}),e&&(H[e]=a),t&&(H[t[0]]=function(){return j(a.apply(this,arguments),t[1],t[2])}),n&&(H[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function A(e,t){return e.isValid()?(t=I(t,e.localeData()),C[t]=C[t]||function(e){var t,n,r,a=e.match(P);for(t=0,n=a.length;t=0&&E.test(e);)e=e.replace(E,r),E.lastIndex=0,n-=1;return e}var F={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function N(e){return"string"==typeof e?F[e]||F[e.toLowerCase()]:void 0}function W(e){var t,n,r={};for(n in e)o(e,n)&&(t=N(n))&&(r[t]=e[n]);return r}var z={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};var V,B=/\d/,U=/\d\d/,$=/\d{3}/,q=/\d{4}/,G=/[+-]?\d{6}/,Z=/\d\d?/,J=/\d\d\d\d?/,Q=/\d\d\d\d\d\d?/,K=/\d{1,3}/,X=/\d{1,4}/,ee=/[+-]?\d{1,6}/,te=/\d+/,ne=/[+-]?\d+/,re=/Z|[+-]\d\d:?\d\d/gi,ae=/Z|[+-]\d\d(?::?\d\d)?/gi,ie=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,se=/^[1-9]\d?/,oe=/^([1-9]\d|\d)/;function le(e,t,n){V[e]=T(t)?t:function(e,r){return e&&n?n:t}}function ue(e,t){return o(V,e)?V[e](t._strict,t._locale):new RegExp(de(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,r,a){return t||n||r||a}))))}function de(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ce(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function he(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=ce(t)),n}V={};var me={};function pe(e,t){var n,r,a=t;for("string"==typeof e&&(e=[e]),d(t)&&(a=function(e,n){n[t]=he(e)}),r=e.length,n=0;n68?1900:2e3)};var Te,xe=Oe("FullYear",!0);function Oe(e,t){return function(n){return null!=n?(Pe(this,e,n),a.updateOffset(this,t),this):je(this,e)}}function je(e,t){if(!e.isValid())return NaN;var n=e._d,r=e._isUTC;switch(t){case"Milliseconds":return r?n.getUTCMilliseconds():n.getMilliseconds();case"Seconds":return r?n.getUTCSeconds():n.getSeconds();case"Minutes":return r?n.getUTCMinutes():n.getMinutes();case"Hours":return r?n.getUTCHours():n.getHours();case"Date":return r?n.getUTCDate():n.getDate();case"Day":return r?n.getUTCDay():n.getDay();case"Month":return r?n.getUTCMonth():n.getMonth();case"FullYear":return r?n.getUTCFullYear():n.getFullYear();default:return NaN}}function Pe(e,t,n){var r,a,i,s,o;if(e.isValid()&&!isNaN(n)){switch(r=e._d,a=e._isUTC,t){case"Milliseconds":return void(a?r.setUTCMilliseconds(n):r.setMilliseconds(n));case"Seconds":return void(a?r.setUTCSeconds(n):r.setSeconds(n));case"Minutes":return void(a?r.setUTCMinutes(n):r.setMinutes(n));case"Hours":return void(a?r.setUTCHours(n):r.setHours(n));case"Date":return void(a?r.setUTCDate(n):r.setDate(n));case"FullYear":break;default:return}i=n,s=e.month(),o=29!==(o=e.date())||1!==s||ye(i)?o:28,a?r.setUTCFullYear(i,s,o):r.setFullYear(i,s,o)}}function Ee(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,r=(t%(n=12)+n)%n;return e+=(t-r)/12,1===r?ye(e)?29:28:31-r%7%2}Te=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t=0?(o=new Date(e+400,t,n,r,a,i,s),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,r,a,i,s),o}function Be(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function Ue(e,t,n){var r=7+t-n;return-(7+Be(e,0,r).getUTCDay()-t)%7+r-1}function $e(e,t,n,r,a){var i,s,o=1+7*(t-1)+(7+n-r)%7+Ue(e,r,a);return o<=0?s=Ye(i=e-1)+o:o>Ye(e)?(i=e+1,s=o-Ye(e)):(i=e,s=o),{year:i,dayOfYear:s}}function qe(e,t,n){var r,a,i=Ue(e.year(),t,n),s=Math.floor((e.dayOfYear()-i-1)/7)+1;return s<1?r=s+Ge(a=e.year()-1,t,n):s>Ge(e.year(),t,n)?(r=s-Ge(e.year(),t,n),a=e.year()+1):(a=e.year(),r=s),{week:r,year:a}}function Ge(e,t,n){var r=Ue(e,t,n),a=Ue(e+1,t,n);return(Ye(e)-r+a)/7}R("w",["ww",2],"wo","week"),R("W",["WW",2],"Wo","isoWeek"),le("w",Z,se),le("ww",Z,U),le("W",Z,se),le("WW",Z,U),fe(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=he(e)}));function Ze(e,t){return e.slice(t,7).concat(e.slice(0,t))}R("d",0,"do","day"),R("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),R("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),R("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),R("e",0,0,"weekday"),R("E",0,0,"isoWeekday"),le("d",Z),le("e",Z),le("E",Z),le("dd",(function(e,t){return t.weekdaysMinRegex(e)})),le("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),le("dddd",(function(e,t){return t.weekdaysRegex(e)})),fe(["dd","ddd","dddd"],(function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:f(n).invalidWeekday=e})),fe(["d","e","E"],(function(e,t,n,r){t[r]=he(e)}));var Je="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Qe="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ke="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Xe=ie,et=ie,tt=ie;function nt(e,t,n){var r,a,i,s=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=p([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(a=Te.call(this._weekdaysParse,s))?a:null:"ddd"===t?-1!==(a=Te.call(this._shortWeekdaysParse,s))?a:null:-1!==(a=Te.call(this._minWeekdaysParse,s))?a:null:"dddd"===t?-1!==(a=Te.call(this._weekdaysParse,s))||-1!==(a=Te.call(this._shortWeekdaysParse,s))||-1!==(a=Te.call(this._minWeekdaysParse,s))?a:null:"ddd"===t?-1!==(a=Te.call(this._shortWeekdaysParse,s))||-1!==(a=Te.call(this._weekdaysParse,s))||-1!==(a=Te.call(this._minWeekdaysParse,s))?a:null:-1!==(a=Te.call(this._minWeekdaysParse,s))||-1!==(a=Te.call(this._weekdaysParse,s))||-1!==(a=Te.call(this._shortWeekdaysParse,s))?a:null}function rt(){function e(e,t){return t.length-e.length}var t,n,r,a,i,s=[],o=[],l=[],u=[];for(t=0;t<7;t++)n=p([2e3,1]).day(t),r=de(this.weekdaysMin(n,"")),a=de(this.weekdaysShort(n,"")),i=de(this.weekdays(n,"")),s.push(r),o.push(a),l.push(i),u.push(r),u.push(a),u.push(i);s.sort(e),o.sort(e),l.sort(e),u.sort(e),this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function at(){return this.hours()%12||12}function it(e,t){R(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function st(e,t){return t._meridiemParse}R("H",["HH",2],0,"hour"),R("h",["hh",2],0,at),R("k",["kk",2],0,(function(){return this.hours()||24})),R("hmm",0,0,(function(){return""+at.apply(this)+j(this.minutes(),2)})),R("hmmss",0,0,(function(){return""+at.apply(this)+j(this.minutes(),2)+j(this.seconds(),2)})),R("Hmm",0,0,(function(){return""+this.hours()+j(this.minutes(),2)})),R("Hmmss",0,0,(function(){return""+this.hours()+j(this.minutes(),2)+j(this.seconds(),2)})),it("a",!0),it("A",!1),le("a",st),le("A",st),le("H",Z,oe),le("h",Z,se),le("k",Z,se),le("HH",Z,U),le("hh",Z,U),le("kk",Z,U),le("hmm",J),le("hmmss",Q),le("Hmm",J),le("Hmmss",Q),pe(["H","HH"],Me),pe(["k","kk"],(function(e,t,n){var r=he(e);t[Me]=24===r?0:r})),pe(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),pe(["h","hh"],(function(e,t,n){t[Me]=he(e),f(n).bigHour=!0})),pe("hmm",(function(e,t,n){var r=e.length-2;t[Me]=he(e.substr(0,r)),t[we]=he(e.substr(r)),f(n).bigHour=!0})),pe("hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[Me]=he(e.substr(0,r)),t[we]=he(e.substr(r,2)),t[Le]=he(e.substr(a)),f(n).bigHour=!0})),pe("Hmm",(function(e,t,n){var r=e.length-2;t[Me]=he(e.substr(0,r)),t[we]=he(e.substr(r))})),pe("Hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[Me]=he(e.substr(0,r)),t[we]=he(e.substr(r,2)),t[Le]=he(e.substr(a))}));var ot=Oe("Hours",!0);var lt,ut={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ce,monthsShort:He,week:{dow:0,doy:6},weekdays:Je,weekdaysMin:Ke,weekdaysShort:Qe,meridiemParse:/[ap]\.?m?\.?/i},dt={},ct={};function ht(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n0;){if(r=pt(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&ht(a,n)>=t-1)break;t--}i++}return lt}(e)}function gt(e){var t,n=e._a;return n&&-2===f(e).overflow&&(t=n[ve]<0||n[ve]>11?ve:n[be]<1||n[be]>Ee(n[ge],n[ve])?be:n[Me]<0||n[Me]>24||24===n[Me]&&(0!==n[we]||0!==n[Le]||0!==n[ke])?Me:n[we]<0||n[we]>59?we:n[Le]<0||n[Le]>59?Le:n[ke]<0||n[ke]>999?ke:-1,f(e)._overflowDayOfYear&&(tbe)&&(t=be),f(e)._overflowWeeks&&-1===t&&(t=Se),f(e)._overflowWeekday&&-1===t&&(t=De),f(e).overflow=t),e}var vt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,bt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Mt=/Z|[+-]\d\d(?::?\d\d)?/,wt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Lt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],kt=/^\/?Date\((-?\d+)/i,St=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Dt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Yt(e){var t,n,r,a,i,s,o=e._i,l=vt.exec(o)||bt.exec(o),u=wt.length,d=Lt.length;if(l){for(f(e).iso=!0,t=0,n=u;t7)&&(l=!0)):(i=e._locale._week.dow,s=e._locale._week.doy,u=qe(Ht(),i,s),n=Ot(t.gg,e._a[ge],u.year),r=Ot(t.w,u.week),null!=t.d?((a=t.d)<0||a>6)&&(l=!0):null!=t.e?(a=t.e+i,(t.e<0||t.e>6)&&(l=!0)):a=i),r<1||r>Ge(n,i,s)?f(e)._overflowWeeks=!0:null!=l?f(e)._overflowWeekday=!0:(o=$e(n,r,a,i,s),e._a[ge]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(s=Ot(e._a[ge],r[ge]),(e._dayOfYear>Ye(s)||0===e._dayOfYear)&&(f(e)._overflowDayOfYear=!0),n=Be(s,0,e._dayOfYear),e._a[ve]=n.getUTCMonth(),e._a[be]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=r[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[Me]&&0===e._a[we]&&0===e._a[Le]&&0===e._a[ke]&&(e._nextDay=!0,e._a[Me]=0),e._d=(e._useUTC?Be:Ve).apply(null,o),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Me]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(f(e).weekdayMismatch=!0)}}function Pt(e){if(e._f!==a.ISO_8601)if(e._f!==a.RFC_2822){e._a=[],f(e).empty=!0;var t,n,r,i,s,o,l,u=""+e._i,d=u.length,c=0;for(l=(r=I(e._f,e._locale).match(P)||[]).length,t=0;t0&&f(e).unusedInput.push(s),u=u.slice(u.indexOf(n)+n.length),c+=n.length),H[i]?(n?f(e).empty=!1:f(e).unusedTokens.push(i),_e(i,n,e)):e._strict&&!n&&f(e).unusedTokens.push(i);f(e).charsLeftOver=d-c,u.length>0&&f(e).unusedInput.push(u),e._a[Me]<=12&&!0===f(e).bigHour&&e._a[Me]>0&&(f(e).bigHour=void 0),f(e).parsedDateParts=e._a.slice(0),f(e).meridiem=e._meridiem,e._a[Me]=function(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}(e._locale,e._a[Me],e._meridiem),null!==(o=f(e).era)&&(e._a[ge]=e._locale.erasConvertYear(o,e._a[ge])),jt(e),gt(e)}else xt(e);else Yt(e)}function Et(e){var t=e._i,n=e._f;return e._locale=e._locale||yt(e._l),null===t||void 0===n&&""===t?y({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),w(t)?new M(gt(t)):(c(t)?e._d=t:i(n)?function(e){var t,n,r,a,i,s,o=!1,l=e._f.length;if(0===l)return f(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;athis?this:e:y()}));function It(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return Ht();for(n=t[0],r=1;r=0?new Date(e+400,t,n)-pn:new Date(e,t,n).valueOf()}function yn(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-pn:Date.UTC(e,t,n)}function gn(e,t){return t.erasAbbrRegex(e)}function vn(){var e,t,n,r,a,i=[],s=[],o=[],l=[],u=this.eras();for(e=0,t=u.length;e(i=Ge(e,r,a))&&(t=i),wn.call(this,e,t,n,r,a))}function wn(e,t,n,r,a){var i=$e(e,t,n,r,a),s=Be(i.year,0,i.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}R("N",0,0,"eraAbbr"),R("NN",0,0,"eraAbbr"),R("NNN",0,0,"eraAbbr"),R("NNNN",0,0,"eraName"),R("NNNNN",0,0,"eraNarrow"),R("y",["y",1],"yo","eraYear"),R("y",["yy",2],0,"eraYear"),R("y",["yyy",3],0,"eraYear"),R("y",["yyyy",4],0,"eraYear"),le("N",gn),le("NN",gn),le("NNN",gn),le("NNNN",(function(e,t){return t.erasNameRegex(e)})),le("NNNNN",(function(e,t){return t.erasNarrowRegex(e)})),pe(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,n,r){var a=n._locale.erasParse(e,r,n._strict);a?f(n).era=a:f(n).invalidEra=e})),le("y",te),le("yy",te),le("yyy",te),le("yyyy",te),le("yo",(function(e,t){return t._eraYearOrdinalRegex||te})),pe(["y","yy","yyy","yyyy"],ge),pe(["yo"],(function(e,t,n,r){var a;n._locale._eraYearOrdinalRegex&&(a=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[ge]=n._locale.eraYearOrdinalParse(e,a):t[ge]=parseInt(e,10)})),R(0,["gg",2],0,(function(){return this.weekYear()%100})),R(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),bn("gggg","weekYear"),bn("ggggg","weekYear"),bn("GGGG","isoWeekYear"),bn("GGGGG","isoWeekYear"),le("G",ne),le("g",ne),le("GG",Z,U),le("gg",Z,U),le("GGGG",X,q),le("gggg",X,q),le("GGGGG",ee,G),le("ggggg",ee,G),fe(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=he(e)})),fe(["gg","GG"],(function(e,t,n,r){t[r]=a.parseTwoDigitYear(e)})),R("Q",0,"Qo","quarter"),le("Q",B),pe("Q",(function(e,t){t[ve]=3*(he(e)-1)})),R("D",["DD",2],"Do","date"),le("D",Z,se),le("DD",Z,U),le("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),pe(["D","DD"],be),pe("Do",(function(e,t){t[be]=he(e.match(Z)[0])}));var Ln=Oe("Date",!0);R("DDD",["DDDD",3],"DDDo","dayOfYear"),le("DDD",K),le("DDDD",$),pe(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=he(e)})),R("m",["mm",2],0,"minute"),le("m",Z,oe),le("mm",Z,U),pe(["m","mm"],we);var kn=Oe("Minutes",!1);R("s",["ss",2],0,"second"),le("s",Z,oe),le("ss",Z,U),pe(["s","ss"],Le);var Sn,Dn,Yn=Oe("Seconds",!1);for(R("S",0,0,(function(){return~~(this.millisecond()/100)})),R(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),R(0,["SSS",3],0,"millisecond"),R(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),R(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),R(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),R(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),R(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),R(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),le("S",K,B),le("SS",K,U),le("SSS",K,$),Sn="SSSS";Sn.length<=9;Sn+="S")le(Sn,te);function Tn(e,t){t[ke]=he(1e3*("0."+e))}for(Sn="S";Sn.length<=9;Sn+="S")pe(Sn,Tn);Dn=Oe("Milliseconds",!1),R("z",0,0,"zoneAbbr"),R("zz",0,0,"zoneName");var xn=M.prototype;function On(e){return e}xn.add=nn,xn.calendar=function(e,t){1===arguments.length&&(arguments[0]?sn(arguments[0])?(e=arguments[0],t=void 0):function(e){var t,n=s(e)&&!l(e),r=!1,a=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"];for(t=0;tn.valueOf():n.valueOf()9999?A(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):T(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",A(n,"Z")):A(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},xn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,r="moment",a="";return this.isLocal()||(r=0===this.utcOffset()?"moment.utc":"moment.parseZone",a="Z"),e="["+r+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=a+'[")]',this.format(e+t+"-MM-DD[T]HH:mm:ss.SSS"+n)},"undefined"!=typeof Symbol&&null!=Symbol.for&&(xn[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),xn.toJSON=function(){return this.isValid()?this.toISOString():null},xn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},xn.unix=function(){return Math.floor(this.valueOf()/1e3)},xn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},xn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},xn.eraName=function(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;ethis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},xn.isLocal=function(){return!!this.isValid()&&!this._isUTC},xn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},xn.isUtc=Gt,xn.isUTC=Gt,xn.zoneAbbr=function(){return this._isUTC?"UTC":""},xn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},xn.dates=k("dates accessor is deprecated. Use date instead.",Ln),xn.months=k("months accessor is deprecated. Use month instead",We),xn.years=k("years accessor is deprecated. Use year instead",xe),xn.zone=k("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),xn.isDSTShifted=k("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!u(this._isDSTShifted))return this._isDSTShifted;var e,t={};return b(t,this),(t=Et(t))._a?(e=t._isUTC?p(t._a):Ht(t._a),this._isDSTShifted=this.isValid()&&function(e,t,n){var r,a=Math.min(e.length,t.length),i=Math.abs(e.length-t.length),s=0;for(r=0;r0):this._isDSTShifted=!1,this._isDSTShifted}));var jn=O.prototype;function Pn(e,t,n,r){var a=yt(),i=p().set(r,t);return a[n](i,e)}function En(e,t,n){if(d(e)&&(t=e,e=void 0),e=e||"",null!=t)return Pn(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=Pn(e,r,n,"month");return a}function Cn(e,t,n,r){"boolean"==typeof e?(d(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,d(t)&&(n=t,t=void 0),t=t||"");var a,i=yt(),s=e?i._week.dow:0,o=[];if(null!=n)return Pn(t,(n+s)%7,r,"day");for(a=0;a<7;a++)o[a]=Pn(t,(a+s)%7,r,"day");return o}jn.calendar=function(e,t,n){var r=this._calendar[e]||this._calendar.sameElse;return T(r)?r.call(t,n):r},jn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(P).map((function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e})).join(""),this._longDateFormat[e])},jn.invalidDate=function(){return this._invalidDate},jn.ordinal=function(e){return this._ordinal.replace("%d",e)},jn.preparse=On,jn.postformat=On,jn.relativeTime=function(e,t,n,r){var a=this._relativeTime[n];return T(a)?a(e,t,n,r):a.replace(/%d/i,e)},jn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return T(n)?n(t):n.replace(/%s/i,t)},jn.set=function(e){var t,n;for(n in e)o(e,n)&&(T(t=e[n])?this[n]=t:this["_"+n]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},jn.eras=function(e,t){var n,r,i,s=this._eras||yt("en")._eras;for(n=0,r=s.length;n=0)return l[r]},jn.erasConvertYear=function(e,t){var n=e.since<=e.until?1:-1;return void 0===t?a(e.since).year():a(e.since).year()+(t-e.offset)*n},jn.erasAbbrRegex=function(e){return o(this,"_erasAbbrRegex")||vn.call(this),e?this._erasAbbrRegex:this._erasRegex},jn.erasNameRegex=function(e){return o(this,"_erasNameRegex")||vn.call(this),e?this._erasNameRegex:this._erasRegex},jn.erasNarrowRegex=function(e){return o(this,"_erasNarrowRegex")||vn.call(this),e?this._erasNarrowRegex:this._erasRegex},jn.months=function(e,t){return e?i(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Re).test(t)?"format":"standalone"][e.month()]:i(this._months)?this._months:this._months.standalone},jn.monthsShort=function(e,t){return e?i(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Re.test(t)?"format":"standalone"][e.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},jn.monthsParse=function(e,t,n){var r,a,i;if(this._monthsParseExact)return Fe.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(a=p([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(i="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[r]=new RegExp(i.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[r].test(e))return r;if(n&&"MMM"===t&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}},jn.monthsRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||ze.call(this),e?this._monthsStrictRegex:this._monthsRegex):(o(this,"_monthsRegex")||(this._monthsRegex=Ie),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},jn.monthsShortRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||ze.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(o(this,"_monthsShortRegex")||(this._monthsShortRegex=Ae),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},jn.week=function(e){return qe(e,this._week.dow,this._week.doy).week},jn.firstDayOfYear=function(){return this._week.doy},jn.firstDayOfWeek=function(){return this._week.dow},jn.weekdays=function(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ze(n,this._week.dow):e?n[e.day()]:n},jn.weekdaysMin=function(e){return!0===e?Ze(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},jn.weekdaysShort=function(e){return!0===e?Ze(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},jn.weekdaysParse=function(e,t,n){var r,a,i;if(this._weekdaysParseExact)return nt.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=p([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}},jn.weekdaysRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||rt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(o(this,"_weekdaysRegex")||(this._weekdaysRegex=Xe),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},jn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||rt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(o(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=et),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},jn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||rt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(o(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=tt),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},jn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},jn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},ft("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===he(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=k("moment.lang is deprecated. Use moment.locale instead.",ft),a.langData=k("moment.langData is deprecated. Use moment.localeData instead.",yt);var Hn=Math.abs;function Rn(e,t,n,r){var a=Qt(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function An(e){return e<0?Math.floor(e):Math.ceil(e)}function In(e){return 4800*e/146097}function Fn(e){return 146097*e/4800}function Nn(e){return function(){return this.as(e)}}var Wn=Nn("ms"),zn=Nn("s"),Vn=Nn("m"),Bn=Nn("h"),Un=Nn("d"),$n=Nn("w"),qn=Nn("M"),Gn=Nn("Q"),Zn=Nn("y"),Jn=Wn;function Qn(e){return function(){return this.isValid()?this._data[e]:NaN}}var Kn=Qn("milliseconds"),Xn=Qn("seconds"),er=Qn("minutes"),tr=Qn("hours"),nr=Qn("days"),rr=Qn("months"),ar=Qn("years");var ir=Math.round,sr={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function or(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}var lr=Math.abs;function ur(e){return(e>0)-(e<0)||+e}function dr(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r,a,i,s,o,l=lr(this._milliseconds)/1e3,u=lr(this._days),d=lr(this._months),c=this.asSeconds();return c?(e=ce(l/60),t=ce(e/60),l%=60,e%=60,n=ce(d/12),d%=12,r=l?l.toFixed(3).replace(/\.?0+$/,""):"",a=c<0?"-":"",i=ur(this._months)!==ur(c)?"-":"",s=ur(this._days)!==ur(c)?"-":"",o=ur(this._milliseconds)!==ur(c)?"-":"",a+"P"+(n?i+n+"Y":"")+(d?i+d+"M":"")+(u?s+u+"D":"")+(t||e||l?"T":"")+(t?o+t+"H":"")+(e?o+e+"M":"")+(l?o+r+"S":"")):"P0D"}var cr=Nt.prototype;return cr.isValid=function(){return this._isValid},cr.abs=function(){var e=this._data;return this._milliseconds=Hn(this._milliseconds),this._days=Hn(this._days),this._months=Hn(this._months),e.milliseconds=Hn(e.milliseconds),e.seconds=Hn(e.seconds),e.minutes=Hn(e.minutes),e.hours=Hn(e.hours),e.months=Hn(e.months),e.years=Hn(e.years),this},cr.add=function(e,t){return Rn(this,e,t,1)},cr.subtract=function(e,t){return Rn(this,e,t,-1)},cr.as=function(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=N(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+In(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Fn(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}},cr.asMilliseconds=Wn,cr.asSeconds=zn,cr.asMinutes=Vn,cr.asHours=Bn,cr.asDays=Un,cr.asWeeks=$n,cr.asMonths=qn,cr.asQuarters=Gn,cr.asYears=Zn,cr.valueOf=Jn,cr._bubble=function(){var e,t,n,r,a,i=this._milliseconds,s=this._days,o=this._months,l=this._data;return i>=0&&s>=0&&o>=0||i<=0&&s<=0&&o<=0||(i+=864e5*An(Fn(o)+s),s=0,o=0),l.milliseconds=i%1e3,e=ce(i/1e3),l.seconds=e%60,t=ce(e/60),l.minutes=t%60,n=ce(t/60),l.hours=n%24,s+=ce(n/24),o+=a=ce(In(s)),s-=An(Fn(a)),r=ce(o/12),o%=12,l.days=s,l.months=o,l.years=r,this},cr.clone=function(){return Qt(this)},cr.get=function(e){return e=N(e),this.isValid()?this[e+"s"]():NaN},cr.milliseconds=Kn,cr.seconds=Xn,cr.minutes=er,cr.hours=tr,cr.days=nr,cr.weeks=function(){return ce(this.days()/7)},cr.months=rr,cr.years=ar,cr.humanize=function(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,r,a=!1,i=sr;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(a=e),"object"==typeof t&&(i=Object.assign({},sr,t),null!=t.s&&null==t.ss&&(i.ss=t.s-1)),r=function(e,t,n,r){var a=Qt(e).abs(),i=ir(a.as("s")),s=ir(a.as("m")),o=ir(a.as("h")),l=ir(a.as("d")),u=ir(a.as("M")),d=ir(a.as("w")),c=ir(a.as("y")),h=i<=n.ss&&["s",i]||i0,h[4]=r,or.apply(null,h)}(this,!a,i,n=this.localeData()),a&&(r=n.pastFuture(+this,r)),n.postformat(r)},cr.toISOString=dr,cr.toString=dr,cr.toJSON=dr,cr.locale=ln,cr.localeData=dn,cr.toIsoString=k("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",dr),cr.lang=un,R("X",0,0,"unix"),R("x",0,0,"valueOf"),le("x",ne),le("X",/[+-]?\d+(\.\d{1,3})?/),pe("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e))})),pe("x",(function(e,t,n){n._d=new Date(he(e))})),a.version="2.30.1",t=Ht,a.fn=xn,a.min=function(){return It("isBefore",[].slice.call(arguments,0))},a.max=function(){return It("isAfter",[].slice.call(arguments,0))},a.now=function(){return Date.now?Date.now():+new Date},a.utc=p,a.unix=function(e){return Ht(1e3*e)},a.months=function(e,t){return En(e,t,"months")},a.isDate=c,a.locale=ft,a.invalid=y,a.duration=Qt,a.isMoment=w,a.weekdays=function(e,t,n){return Cn(e,t,n,"weekdays")},a.parseZone=function(){return Ht.apply(null,arguments).parseZone()},a.localeData=yt,a.isDuration=Wt,a.monthsShort=function(e,t){return En(e,t,"monthsShort")},a.weekdaysMin=function(e,t,n){return Cn(e,t,n,"weekdaysMin")},a.defineLocale=_t,a.updateLocale=function(e,t){if(null!=t){var n,r,a=ut;null!=dt[e]&&null!=dt[e].parentLocale?dt[e].set(x(dt[e]._config,t)):(null!=(r=pt(e))&&(a=r._config),t=x(a,t),null==r&&(t.abbr=e),(n=new O(t)).parentLocale=dt[e],dt[e]=n),ft(e)}else null!=dt[e]&&(null!=dt[e].parentLocale?(dt[e]=dt[e].parentLocale,e===ft()&&ft(e)):null!=dt[e]&&delete dt[e]);return dt[e]},a.locales=function(){return S(dt)},a.weekdaysShort=function(e,t,n){return Cn(e,t,n,"weekdaysShort")},a.normalizeUnits=N,a.relativeTimeRounding=function(e){return void 0===e?ir:"function"==typeof e&&(ir=e,!0)},a.relativeTimeThreshold=function(e,t){return void 0!==sr[e]&&(void 0===t?sr[e]:(sr[e]=t,"s"===e&&(sr.ss=t-1),!0))},a.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},a.prototype=xn,a.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},a}()},2727:function(e,t,n){!function(e){"use strict";var t={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};e.defineLocale("tg",{months:{format:"январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри".split("_"),standalone:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_")},monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Фардо соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?e>=11?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(2689))},2808:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n(2689))},2837:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addClassName=u,t.addEvent=function(e,t,n,r){if(!e)return;const a={capture:!0,...r};e.addEventListener?e.addEventListener(t,n,a):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n},t.addUserSelectStyles=function(e){if(!e)return;let t=e.getElementById("react-draggable-style-el");t||(t=e.createElement("style"),t.type="text/css",t.id="react-draggable-style-el",t.innerHTML=".react-draggable-transparent-selection *::-moz-selection {all: inherit;}\n",t.innerHTML+=".react-draggable-transparent-selection *::selection {all: inherit;}\n",e.getElementsByTagName("head")[0].appendChild(t)),e.body&&u(e.body,"react-draggable-transparent-selection")},t.createCSSTransform=function(e,t){const n=l(e,t,"px");return{[(0,a.browserPrefixToKey)("transform",a.default)]:n}},t.createSVGTransform=function(e,t){return l(e,t,"")},t.getTouch=function(e,t){return e.targetTouches&&(0,r.findInArray)(e.targetTouches,(e=>t===e.identifier))||e.changedTouches&&(0,r.findInArray)(e.changedTouches,(e=>t===e.identifier))},t.getTouchIdentifier=function(e){return e.targetTouches&&e.targetTouches[0]?e.targetTouches[0].identifier:e.changedTouches&&e.changedTouches[0]?e.changedTouches[0].identifier:void 0},t.getTranslation=l,t.innerHeight=function(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,r.int)(n.paddingTop),t-=(0,r.int)(n.paddingBottom),t},t.innerWidth=function(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,r.int)(n.paddingLeft),t-=(0,r.int)(n.paddingRight),t},t.matchesSelector=o,t.matchesSelectorAndParentsTo=function(e,t,n){let r=e;do{if(o(r,t))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1},t.offsetXYFromParent=function(e,t,n){const r=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect();return{x:(e.clientX+t.scrollLeft-r.left)/n,y:(e.clientY+t.scrollTop-r.top)/n}},t.outerHeight=function(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,r.int)(n.borderTopWidth),t+=(0,r.int)(n.borderBottomWidth),t},t.outerWidth=function(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,r.int)(n.borderLeftWidth),t+=(0,r.int)(n.borderRightWidth),t},t.removeClassName=d,t.removeEvent=function(e,t,n,r){if(!e)return;const a={capture:!0,...r};e.removeEventListener?e.removeEventListener(t,n,a):e.detachEvent?e.detachEvent("on"+t,n):e["on"+t]=null},t.removeUserSelectStyles=function(e){if(e)try{if(e.body&&d(e.body,"react-draggable-transparent-selection"),e.selection)e.selection.empty();else{const t=(e.defaultView||window).getSelection();t&&"Caret"!==t.type&&t.removeAllRanges()}}catch(e){}};var r=n(6732),a=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=a?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(r,s,o):r[s]=e[s]}return r.default=e,n&&n.set(e,r),r}(n(7350));function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}let s="";function o(e,t){return s||(s=(0,r.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],(function(t){return(0,r.isFunction)(e[t])}))),!!(0,r.isFunction)(e[s])&&e[s](t)}function l(e,t,n){let{x:r,y:a}=e,i="translate(".concat(r).concat(n,",").concat(a).concat(n,")");if(t){const e="".concat("string"==typeof t.x?t.x:t.x+n),r="".concat("string"==typeof t.y?t.y:t.y+n);i="translate(".concat(e,", ").concat(r,")")+i}return i}function u(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)")))||(e.className+=" ".concat(t))}function d(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(?:^|\\s)".concat(t,"(?!\\S)"),"g"),"")}},2934:function(e,t,n){!function(e){"use strict";e.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"за %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"една минута",mm:"%d минути",h:"еден час",hh:"%d часа",d:"еден ден",dd:"%d дена",M:"еден месец",MM:"%d месеци",y:"една година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(2689))},3002:function(e,t,n){!function(e){"use strict";e.defineLocale("ga",{months:["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Meitheamh","Iúil","Lúnasa","Meán Fómhair","Deireadh Fómhair","Samhain","Nollaig"],monthsShort:["Ean","Feabh","Márt","Aib","Beal","Meith","Iúil","Lún","M.F.","D.F.","Samh","Noll"],monthsParseExact:!0,weekdays:["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Sathairn"],weekdaysShort:["Domh","Luan","Máirt","Céad","Déar","Aoine","Sath"],weekdaysMin:["Do","Lu","Má","Cé","Dé","A","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné ag] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d míonna",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(2689))},3010:function(e,t,n){!function(e){"use strict";var t={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function n(e,t,n,r){return t?a(n)[0]:r?a(n)[1]:a(n)[2]}function r(e){return e%10==0||e>10&&e<20}function a(e){return t[e].split("_")}function i(e,t,i,s){var o=e+" ";return 1===e?o+n(0,t,i[0],s):t?o+(r(e)?a(i)[1]:a(i)[0]):s?o+a(i)[1]:o+(r(e)?a(i)[1]:a(i)[2])}e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(e,t,n,r){return t?"kelios sekundės":r?"kelių sekundžių":"kelias sekundes"},ss:i,m:n,mm:i,h:n,hh:i,d:n,dd:i,M:n,MM:i,y:n,yy:i},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}})}(n(2689))},3049:(e,t,n)=>{"use strict";n.d(t,{A:()=>o,z:()=>l});var r=n(5959);const a=r.createContext({}),i=!0;function s({baseColor:e,highlightColor:t,width:n,height:r,borderRadius:a,circle:s,direction:o,duration:l,enableAnimation:u=i,customHighlightBackground:d}){const c={};return"rtl"===o&&(c["--animation-direction"]="reverse"),"number"==typeof l&&(c["--animation-duration"]=`${l}s`),u||(c["--pseudo-element-display"]="none"),"string"!=typeof n&&"number"!=typeof n||(c.width=n),"string"!=typeof r&&"number"!=typeof r||(c.height=r),"string"!=typeof a&&"number"!=typeof a||(c.borderRadius=a),s&&(c.borderRadius="50%"),void 0!==e&&(c["--base-color"]=e),void 0!==t&&(c["--highlight-color"]=t),"string"==typeof d&&(c["--custom-highlight-background"]=d),c}function o({count:e=1,wrapper:t,className:n,containerClassName:o,containerTestId:l,circle:u=!1,style:d,...c}){var h,m,p;const f=r.useContext(a),_={...c};for(const[e,t]of Object.entries(c))void 0===t&&delete _[e];const y={...f,..._,circle:u},g={...d,...s(y)};let v="react-loading-skeleton";n&&(v+=` ${n}`);const b=null!==(h=y.inline)&&void 0!==h&&h,M=[],w=Math.ceil(e);for(let t=0;te&&t===w-1){const t=null!==(m=n.width)&&void 0!==m?m:"100%",r=e%1,a="number"==typeof t?t*r:`calc(${t} * ${r})`;n={...n,width:a}}const a=r.createElement("span",{className:v,style:n,key:t},"‌");b?M.push(a):M.push(r.createElement(r.Fragment,{key:t},a,r.createElement("br",null)))}return r.createElement("span",{className:o,"data-testid":l,"aria-live":"polite","aria-busy":null!==(p=y.enableAnimation)&&void 0!==p?p:i},t?M.map(((e,n)=>r.createElement(t,{key:n},e))):M)}function l({children:e,...t}){return r.createElement(a.Provider,{value:t},e)}},3179:function(e,t,n){!function(e){"use strict";e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(n(2689))},3239:function(e,t,n){!function(e){"use strict";e.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/сехет$/i.exec(e)?"рен":/ҫул$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})}(n(2689))},3310:function(e,t,n){!function(e){"use strict";e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})}(n(2689))},3315:function(e,t,n){!function(e){"use strict";function t(e,t,n){return"m"===n?t?"минута":"минуту":e+" "+(r=+e,a={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",ww:"неделя_недели_недель",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[n].split("_"),r%10==1&&r%100!=11?a[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?a[1]:a[2]);var r,a}var n=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];e.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:n,longMonthsParse:n,shortMonthsParse:n,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:t,m:t,mm:t,h:"час",hh:t,d:"день",dd:t,w:"неделя",ww:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}})}(n(2689))},3321:(e,t,n)=>{"use strict";n.d(t,{$N:()=>r,$m:()=>i,ob:()=>a});var r=(e=>(e.Multi="multi",e.None="none",e.Single="single",e))(r||{}),a=(e=>(e.Actions="actions",e.Auto="auto",e.BasicGauge="basic",e.ColorBackground="color-background",e.ColorBackgroundSolid="color-background-solid",e.ColorText="color-text",e.Custom="custom",e.DataLinks="data-links",e.Gauge="gauge",e.GradientGauge="gradient-gauge",e.Image="image",e.JSONView="json-view",e.LcdGauge="lcd-gauge",e.Sparkline="sparkline",e))(a||{}),i=(e=>(e.CSV="csv",e.Date="date",e.Distributed="distributed",e.DoubleQuote="doublequote",e.Glob="glob",e.HTML="html",e.JSON="json",e.Lucene="lucene",e.PercentEncode="percentencode",e.Pipe="pipe",e.QueryParam="queryparam",e.Raw="raw",e.Regex="regex",e.SQLString="sqlstring",e.SingleQuote="singlequote",e.Text="text",e.UriEncode="uriencode",e))(i||{})},3350:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4},invalidDate:"Fecha inválida"})}(n(2689))},3369:function(e,t,n){!function(e){"use strict";e.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},3419:function(e,t,n){!function(e){"use strict";var t={1:"'inji",5:"'inji",8:"'inji",70:"'inji",80:"'inji",2:"'nji",7:"'nji",20:"'nji",50:"'nji",3:"'ünji",4:"'ünji",100:"'ünji",6:"'njy",9:"'unjy",10:"'unjy",30:"'unjy",60:"'ynjy",90:"'ynjy"};e.defineLocale("tk",{months:"Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr".split("_"),monthsShort:"Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek".split("_"),weekdays:"Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe".split("_"),weekdaysShort:"Ýek_Duş_Siş_Çar_Pen_Ann_Şen".split("_"),weekdaysMin:"Ýk_Dş_Sş_Çr_Pn_An_Şn".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün sagat] LT",nextDay:"[ertir sagat] LT",nextWeek:"[indiki] dddd [sagat] LT",lastDay:"[düýn] LT",lastWeek:"[geçen] dddd [sagat] LT",sameElse:"L"},relativeTime:{future:"%s soň",past:"%s öň",s:"birnäçe sekunt",m:"bir minut",mm:"%d minut",h:"bir sagat",hh:"%d sagat",d:"bir gün",dd:"%d gün",M:"bir aý",MM:"%d aý",y:"bir ýyl",yy:"%d ýyl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'unjy";var r=e%10;return e+(t[r]||t[e%100-r]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(n(2689))},3480:function(e,t,n){!function(e){"use strict";e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})}(n(2689))},3518:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(5959);const a=function(e){var t;t=function(){e()},(0,r.useEffect)(t,[])}},3633:(e,t,n)=>{"use strict";n.d(t,{CO:()=>a,rw:()=>r,yV:()=>i});const r={allowCustomValue:!0,includeAll:!1,multi:!1,options:[],skipUrlSync:!1};var a=(e=>(e[e.never=0]="never",e[e.onDashboardLoad=1]="onDashboardLoad",e[e.onTimeRangeChanged=2]="onTimeRangeChanged",e))(a||{}),i=(e=>(e[e.Crosshair=1]="Crosshair",e[e.Off=0]="Off",e[e.Tooltip=2]="Tooltip",e))(i||{})},3726:(e,t,n)=>{"use strict";var r,a;n.d(t,{Ay:()=>Dt}),function(e){e.assertEqual=e=>e,e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const n of e)t[n]=n;return t},e.getValidEnumValues=t=>{const n=e.objectKeys(t).filter((e=>"number"!=typeof t[t[e]])),r={};for(const e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map((function(e){return t[e]})),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(const n of e)if(t(n))return n},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map((e=>"string"==typeof e?`'${e}'`:e)).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(r||(r={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(a||(a={}));const i=r.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),s=e=>{switch(typeof e){case"undefined":return i.undefined;case"string":return i.string;case"number":return isNaN(e)?i.nan:i.number;case"boolean":return i.boolean;case"function":return i.function;case"bigint":return i.bigint;case"symbol":return i.symbol;case"object":return Array.isArray(e)?i.array:null===e?i.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?i.promise:"undefined"!=typeof Map&&e instanceof Map?i.map:"undefined"!=typeof Set&&e instanceof Set?i.set:"undefined"!=typeof Date&&e instanceof Date?i.date:i.object;default:return i.unknown}},o=r.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class l extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(const a of e.issues)if("invalid_union"===a.code)a.unionErrors.map(r);else if("invalid_return_type"===a.code)r(a.returnTypeError);else if("invalid_arguments"===a.code)r(a.argumentsError);else if(0===a.path.length)n._errors.push(t(a));else{let e=n,r=0;for(;re.message){const t={},n=[];for(const r of this.issues)r.path.length>0?(t[r.path[0]]=t[r.path[0]]||[],t[r.path[0]].push(e(r))):n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}l.create=e=>new l(e);const u=(e,t)=>{let n;switch(e.code){case o.invalid_type:n=e.received===i.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case o.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,r.jsonStringifyReplacer)}`;break;case o.unrecognized_keys:n=`Unrecognized key(s) in object: ${r.joinValues(e.keys,", ")}`;break;case o.invalid_union:n="Invalid input";break;case o.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${r.joinValues(e.options)}`;break;case o.invalid_enum_value:n=`Invalid enum value. Expected ${r.joinValues(e.options)}, received '${e.received}'`;break;case o.invalid_arguments:n="Invalid function arguments";break;case o.invalid_return_type:n="Invalid function return type";break;case o.invalid_date:n="Invalid date";break;case o.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:r.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case o.too_small:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case o.too_big:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case o.custom:n="Invalid input";break;case o.invalid_intersection_types:n="Intersection results could not be merged";break;case o.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case o.not_finite:n="Number must be finite";break;default:n=t.defaultError,r.assertNever(e)}return{message:n}};let d=u;function c(){return d}const h=e=>{const{data:t,path:n,errorMaps:r,issueData:a}=e,i=[...n,...a.path||[]],s={...a,path:i};if(void 0!==a.message)return{...a,path:i,message:a.message};let o="";const l=r.filter((e=>!!e)).slice().reverse();for(const e of l)o=e(s,{data:t,defaultError:o}).message;return{...a,path:i,message:o}};function m(e,t){const n=c(),r=h({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===u?void 0:u].filter((e=>!!e))});e.common.issues.push(r)}class p{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const r of t){if("aborted"===r.status)return f;"dirty"===r.status&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const e of t){const t=await e.key,r=await e.value;n.push({key:t,value:r})}return p.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const r of t){const{key:t,value:a}=r;if("aborted"===t.status)return f;if("aborted"===a.status)return f;"dirty"===t.status&&e.dirty(),"dirty"===a.status&&e.dirty(),"__proto__"===t.value||void 0===a.value&&!r.alwaysSet||(n[t.value]=a.value)}return{status:e.value,value:n}}}const f=Object.freeze({status:"aborted"}),_=e=>({status:"dirty",value:e}),y=e=>({status:"valid",value:e}),g=e=>"aborted"===e.status,v=e=>"dirty"===e.status,b=e=>"valid"===e.status,M=e=>"undefined"!=typeof Promise&&e instanceof Promise;function w(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function L(e,t,n,r,a){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?a.call(e,n):a?a.value=n:t.set(e,n),n}var k,S,D;"function"==typeof SuppressedError&&SuppressedError,function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:null==e?void 0:e.message}(k||(k={}));class Y{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const T=(e,t)=>{if(b(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new l(e.common.issues);return this._error=t,this._error}}};function x(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:a}=e;if(t&&(n||r))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');return t?{errorMap:t,description:a}:{errorMap:(t,a)=>{var i,s;const{message:o}=e;return"invalid_enum_value"===t.code?{message:null!=o?o:a.defaultError}:void 0===a.data?{message:null!==(i=null!=o?o:r)&&void 0!==i?i:a.defaultError}:"invalid_type"!==t.code?{message:a.defaultError}:{message:null!==(s=null!=o?o:n)&&void 0!==s?s:a.defaultError}},description:a}}class O{get description(){return this._def.description}_getType(e){return s(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:s(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new p,ctx:{common:e.parent.common,data:e.data,parsedType:s(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(M(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){var n;const r={common:{issues:[],async:null!==(n=null==t?void 0:t.async)&&void 0!==n&&n,contextualErrorMap:null==t?void 0:t.errorMap},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:s(e)},a=this._parseSync({data:e,path:r.path,parent:r});return T(r,a)}"~validate"(e){var t,n;const r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:s(e)};if(!this["~standard"].async)try{const t=this._parseSync({data:e,path:[],parent:r});return b(t)?{value:t.value}:{issues:r.common.issues}}catch(e){(null===(n=null===(t=null==e?void 0:e.message)||void 0===t?void 0:t.toLowerCase())||void 0===n?void 0:n.includes("encountered"))&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then((e=>b(e)?{value:e.value}:{issues:r.common.issues}))}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:null==t?void 0:t.errorMap,async:!0},path:(null==t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:s(e)},r=this._parse({data:e,path:n.path,parent:n}),a=await(M(r)?r:Promise.resolve(r));return T(n,a)}refine(e,t){const n=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement(((t,r)=>{const a=e(t),i=()=>r.addIssue({code:o.custom,...n(t)});return"undefined"!=typeof Promise&&a instanceof Promise?a.then((e=>!!e||(i(),!1))):!!a||(i(),!1)}))}refinement(e,t){return this._refinement(((n,r)=>!!e(n)||(r.addIssue("function"==typeof t?t(n,r):t),!1)))}_refinement(e){return new Oe({schema:this,typeName:Ve.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:e=>this["~validate"](e)}}optional(){return je.create(this,this._def)}nullable(){return Pe.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ce.create(this)}promise(){return xe.create(this,this._def)}or(e){return pe.create([this,e],this._def)}and(e){return ge.create(this,e,this._def)}transform(e){return new Oe({...x(this._def),schema:this,typeName:Ve.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new Ee({...x(this._def),innerType:this,defaultValue:t,typeName:Ve.ZodDefault})}brand(){return new Ae({typeName:Ve.ZodBranded,type:this,...x(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new Ce({...x(this._def),innerType:this,catchValue:t,typeName:Ve.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return Ie.create(this,e)}readonly(){return Fe.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const j=/^c[^\s-]{8,}$/i,P=/^[0-9a-z]+$/,E=/^[0-9A-HJKMNP-TV-Z]{26}$/i,C=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,H=/^[a-z0-9_-]{21}$/i,R=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,A=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,I=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let F;const N=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,W=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,z=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,V=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,B=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,U=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,$="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",q=new RegExp(`^${$}$`);function G(e){let t="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`),t}function Z(e){let t=`${$}T${G(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function J(e,t){if(!R.test(e))return!1;try{const[n]=e.split("."),r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),a=JSON.parse(atob(r));return!("object"!=typeof a||null===a||!a.typ||!a.alg||t&&a.alg!==t)}catch(e){return!1}}function Q(e,t){return!("v4"!==t&&t||!W.test(e))||!("v6"!==t&&t||!V.test(e))}class K extends O{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==i.string){const t=this._getOrReturnCtx(e);return m(t,{code:o.invalid_type,expected:i.string,received:t.parsedType}),f}const t=new p;let n;for(const i of this._def.checks)if("min"===i.kind)e.data.lengthi.value&&(n=this._getOrReturnCtx(e,n),m(n,{code:o.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),t.dirty());else if("length"===i.kind){const r=e.data.length>i.value,a=e.data.lengthe.test(t)),{validation:t,code:o.invalid_string,...k.errToObj(n)})}_addCheck(e){return new K({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...k.errToObj(e)})}url(e){return this._addCheck({kind:"url",...k.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...k.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...k.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...k.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...k.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...k.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...k.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...k.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...k.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...k.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...k.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...k.errToObj(e)})}datetime(e){var t,n;return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===(null==e?void 0:e.precision)?null:null==e?void 0:e.precision,offset:null!==(t=null==e?void 0:e.offset)&&void 0!==t&&t,local:null!==(n=null==e?void 0:e.local)&&void 0!==n&&n,...k.errToObj(null==e?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===(null==e?void 0:e.precision)?null:null==e?void 0:e.precision,...k.errToObj(null==e?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...k.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...k.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:null==t?void 0:t.position,...k.errToObj(null==t?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...k.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...k.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...k.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...k.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...k.errToObj(t)})}nonempty(e){return this.min(1,k.errToObj(e))}trim(){return new K({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new K({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new K({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((e=>"datetime"===e.kind))}get isDate(){return!!this._def.checks.find((e=>"date"===e.kind))}get isTime(){return!!this._def.checks.find((e=>"time"===e.kind))}get isDuration(){return!!this._def.checks.find((e=>"duration"===e.kind))}get isEmail(){return!!this._def.checks.find((e=>"email"===e.kind))}get isURL(){return!!this._def.checks.find((e=>"url"===e.kind))}get isEmoji(){return!!this._def.checks.find((e=>"emoji"===e.kind))}get isUUID(){return!!this._def.checks.find((e=>"uuid"===e.kind))}get isNANOID(){return!!this._def.checks.find((e=>"nanoid"===e.kind))}get isCUID(){return!!this._def.checks.find((e=>"cuid"===e.kind))}get isCUID2(){return!!this._def.checks.find((e=>"cuid2"===e.kind))}get isULID(){return!!this._def.checks.find((e=>"ulid"===e.kind))}get isIP(){return!!this._def.checks.find((e=>"ip"===e.kind))}get isCIDR(){return!!this._def.checks.find((e=>"cidr"===e.kind))}get isBase64(){return!!this._def.checks.find((e=>"base64"===e.kind))}get isBase64url(){return!!this._def.checks.find((e=>"base64url"===e.kind))}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.valuer?n:r;return parseInt(e.toFixed(a).replace(".",""))%parseInt(t.toFixed(a).replace(".",""))/Math.pow(10,a)}K.create=e=>{var t;return new K({checks:[],typeName:Ve.ZodString,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t,...x(e)})};class ee extends O{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==i.number){const t=this._getOrReturnCtx(e);return m(t,{code:o.invalid_type,expected:i.number,received:t.parsedType}),f}let t;const n=new p;for(const a of this._def.checks)"int"===a.kind?r.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),m(t,{code:o.invalid_type,expected:"integer",received:"float",message:a.message}),n.dirty()):"min"===a.kind?(a.inclusive?e.dataa.value:e.data>=a.value)&&(t=this._getOrReturnCtx(e,t),m(t,{code:o.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),n.dirty()):"multipleOf"===a.kind?0!==X(e.data,a.value)&&(t=this._getOrReturnCtx(e,t),m(t,{code:o.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):"finite"===a.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),m(t,{code:o.not_finite,message:a.message}),n.dirty()):r.assertNever(a);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,k.toString(t))}gt(e,t){return this.setLimit("min",e,!1,k.toString(t))}lte(e,t){return this.setLimit("max",e,!0,k.toString(t))}lt(e,t){return this.setLimit("max",e,!1,k.toString(t))}setLimit(e,t,n,r){return new ee({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:k.toString(r)}]})}_addCheck(e){return new ee({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:k.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:k.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:k.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:k.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:k.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:k.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:k.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:k.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:k.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value"int"===e.kind||"multipleOf"===e.kind&&r.isInteger(e.value)))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if("finite"===n.kind||"int"===n.kind||"multipleOf"===n.kind)return!0;"min"===n.kind?(null===t||n.value>t)&&(t=n.value):"max"===n.kind&&(null===e||n.valuenew ee({checks:[],typeName:Ve.ZodNumber,coerce:(null==e?void 0:e.coerce)||!1,...x(e)});class te extends O{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch(t){return this._getInvalidInput(e)}if(this._getType(e)!==i.bigint)return this._getInvalidInput(e);let t;const n=new p;for(const a of this._def.checks)"min"===a.kind?(a.inclusive?e.dataa.value:e.data>=a.value)&&(t=this._getOrReturnCtx(e,t),m(t,{code:o.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),n.dirty()):"multipleOf"===a.kind?e.data%a.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),m(t,{code:o.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):r.assertNever(a);return{status:n.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return m(t,{code:o.invalid_type,expected:i.bigint,received:t.parsedType}),f}gte(e,t){return this.setLimit("min",e,!0,k.toString(t))}gt(e,t){return this.setLimit("min",e,!1,k.toString(t))}lte(e,t){return this.setLimit("max",e,!0,k.toString(t))}lt(e,t){return this.setLimit("max",e,!1,k.toString(t))}setLimit(e,t,n,r){return new te({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:k.toString(r)}]})}_addCheck(e){return new te({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:k.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:k.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:k.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:k.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:k.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value{var t;return new te({checks:[],typeName:Ve.ZodBigInt,coerce:null!==(t=null==e?void 0:e.coerce)&&void 0!==t&&t,...x(e)})};class ne extends O{_parse(e){if(this._def.coerce&&(e.data=Boolean(e.data)),this._getType(e)!==i.boolean){const t=this._getOrReturnCtx(e);return m(t,{code:o.invalid_type,expected:i.boolean,received:t.parsedType}),f}return y(e.data)}}ne.create=e=>new ne({typeName:Ve.ZodBoolean,coerce:(null==e?void 0:e.coerce)||!1,...x(e)});class re extends O{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==i.date){const t=this._getOrReturnCtx(e);return m(t,{code:o.invalid_type,expected:i.date,received:t.parsedType}),f}if(isNaN(e.data.getTime()))return m(this._getOrReturnCtx(e),{code:o.invalid_date}),f;const t=new p;let n;for(const a of this._def.checks)"min"===a.kind?e.data.getTime()a.value&&(n=this._getOrReturnCtx(e,n),m(n,{code:o.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),t.dirty()):r.assertNever(a);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new re({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:k.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:k.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.valuenew re({checks:[],coerce:(null==e?void 0:e.coerce)||!1,typeName:Ve.ZodDate,...x(e)});class ae extends O{_parse(e){if(this._getType(e)!==i.symbol){const t=this._getOrReturnCtx(e);return m(t,{code:o.invalid_type,expected:i.symbol,received:t.parsedType}),f}return y(e.data)}}ae.create=e=>new ae({typeName:Ve.ZodSymbol,...x(e)});class ie extends O{_parse(e){if(this._getType(e)!==i.undefined){const t=this._getOrReturnCtx(e);return m(t,{code:o.invalid_type,expected:i.undefined,received:t.parsedType}),f}return y(e.data)}}ie.create=e=>new ie({typeName:Ve.ZodUndefined,...x(e)});class se extends O{_parse(e){if(this._getType(e)!==i.null){const t=this._getOrReturnCtx(e);return m(t,{code:o.invalid_type,expected:i.null,received:t.parsedType}),f}return y(e.data)}}se.create=e=>new se({typeName:Ve.ZodNull,...x(e)});class oe extends O{constructor(){super(...arguments),this._any=!0}_parse(e){return y(e.data)}}oe.create=e=>new oe({typeName:Ve.ZodAny,...x(e)});class le extends O{constructor(){super(...arguments),this._unknown=!0}_parse(e){return y(e.data)}}le.create=e=>new le({typeName:Ve.ZodUnknown,...x(e)});class ue extends O{_parse(e){const t=this._getOrReturnCtx(e);return m(t,{code:o.invalid_type,expected:i.never,received:t.parsedType}),f}}ue.create=e=>new ue({typeName:Ve.ZodNever,...x(e)});class de extends O{_parse(e){if(this._getType(e)!==i.undefined){const t=this._getOrReturnCtx(e);return m(t,{code:o.invalid_type,expected:i.void,received:t.parsedType}),f}return y(e.data)}}de.create=e=>new de({typeName:Ve.ZodVoid,...x(e)});class ce extends O{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==i.array)return m(t,{code:o.invalid_type,expected:i.array,received:t.parsedType}),f;if(null!==r.exactLength){const e=t.data.length>r.exactLength.value,a=t.data.lengthr.maxLength.value&&(m(t,{code:o.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map(((e,n)=>r.type._parseAsync(new Y(t,e,t.path,n))))).then((e=>p.mergeArray(n,e)));const a=[...t.data].map(((e,n)=>r.type._parseSync(new Y(t,e,t.path,n))));return p.mergeArray(n,a)}get element(){return this._def.type}min(e,t){return new ce({...this._def,minLength:{value:e,message:k.toString(t)}})}max(e,t){return new ce({...this._def,maxLength:{value:e,message:k.toString(t)}})}length(e,t){return new ce({...this._def,exactLength:{value:e,message:k.toString(t)}})}nonempty(e){return this.min(1,e)}}function he(e){if(e instanceof me){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=je.create(he(r))}return new me({...e._def,shape:()=>t})}return e instanceof ce?new ce({...e._def,type:he(e.element)}):e instanceof je?je.create(he(e.unwrap())):e instanceof Pe?Pe.create(he(e.unwrap())):e instanceof ve?ve.create(e.items.map((e=>he(e)))):e}ce.create=(e,t)=>new ce({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Ve.ZodArray,...x(t)});class me extends O{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=r.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==i.object){const t=this._getOrReturnCtx(e);return m(t,{code:o.invalid_type,expected:i.object,received:t.parsedType}),f}const{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:a}=this._getCached(),s=[];if(!(this._def.catchall instanceof ue&&"strip"===this._def.unknownKeys))for(const e in n.data)a.includes(e)||s.push(e);const l=[];for(const e of a){const t=r[e],a=n.data[e];l.push({key:{status:"valid",value:e},value:t._parse(new Y(n,a,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof ue){const e=this._def.unknownKeys;if("passthrough"===e)for(const e of s)l.push({key:{status:"valid",value:e},value:{status:"valid",value:n.data[e]}});else if("strict"===e)s.length>0&&(m(n,{code:o.unrecognized_keys,keys:s}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of s){const r=n.data[t];l.push({key:{status:"valid",value:t},value:e._parse(new Y(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then((async()=>{const e=[];for(const t of l){const n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e})).then((e=>p.mergeObjectSync(t,e))):p.mergeObjectSync(t,l)}get shape(){return this._def.shape()}strict(e){return k.errToObj,new me({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,n)=>{var r,a,i,s;const o=null!==(i=null===(a=(r=this._def).errorMap)||void 0===a?void 0:a.call(r,t,n).message)&&void 0!==i?i:n.defaultError;return"unrecognized_keys"===t.code?{message:null!==(s=k.errToObj(e).message)&&void 0!==s?s:o}:{message:o}}}:{}})}strip(){return new me({...this._def,unknownKeys:"strip"})}passthrough(){return new me({...this._def,unknownKeys:"passthrough"})}extend(e){return new me({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new me({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Ve.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new me({...this._def,catchall:e})}pick(e){const t={};return r.objectKeys(e).forEach((n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])})),new me({...this._def,shape:()=>t})}omit(e){const t={};return r.objectKeys(this.shape).forEach((n=>{e[n]||(t[n]=this.shape[n])})),new me({...this._def,shape:()=>t})}deepPartial(){return he(this)}partial(e){const t={};return r.objectKeys(this.shape).forEach((n=>{const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()})),new me({...this._def,shape:()=>t})}required(e){const t={};return r.objectKeys(this.shape).forEach((n=>{if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof je;)e=e._def.innerType;t[n]=e}})),new me({...this._def,shape:()=>t})}keyof(){return De(r.objectKeys(this.shape))}}me.create=(e,t)=>new me({shape:()=>e,unknownKeys:"strip",catchall:ue.create(),typeName:Ve.ZodObject,...x(t)}),me.strictCreate=(e,t)=>new me({shape:()=>e,unknownKeys:"strict",catchall:ue.create(),typeName:Ve.ZodObject,...x(t)}),me.lazycreate=(e,t)=>new me({shape:e,unknownKeys:"strip",catchall:ue.create(),typeName:Ve.ZodObject,...x(t)});class pe extends O{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map((async e=>{const n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}}))).then((function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const n of e)if("dirty"===n.result.status)return t.common.issues.push(...n.ctx.common.issues),n.result;const n=e.map((e=>new l(e.ctx.common.issues)));return m(t,{code:o.invalid_union,unionErrors:n}),f}));{let e;const r=[];for(const a of n){const n={...t,common:{...t.common,issues:[]},parent:null},i=a._parseSync({data:t.data,path:t.path,parent:n});if("valid"===i.status)return i;"dirty"!==i.status||e||(e={result:i,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const a=r.map((e=>new l(e)));return m(t,{code:o.invalid_union,unionErrors:a}),f}}get options(){return this._def.options}}pe.create=(e,t)=>new pe({options:e,typeName:Ve.ZodUnion,...x(t)});const fe=e=>e instanceof ke?fe(e.schema):e instanceof Oe?fe(e.innerType()):e instanceof Se?[e.value]:e instanceof Ye?e.options:e instanceof Te?r.objectValues(e.enum):e instanceof Ee?fe(e._def.innerType):e instanceof ie?[void 0]:e instanceof se?[null]:e instanceof je?[void 0,...fe(e.unwrap())]:e instanceof Pe?[null,...fe(e.unwrap())]:e instanceof Ae||e instanceof Fe?fe(e.unwrap()):e instanceof Ce?fe(e._def.innerType):[];class _e extends O{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==i.object)return m(t,{code:o.invalid_type,expected:i.object,received:t.parsedType}),f;const n=this.discriminator,r=t.data[n],a=this.optionsMap.get(r);return a?t.common.async?a._parseAsync({data:t.data,path:t.path,parent:t}):a._parseSync({data:t.data,path:t.path,parent:t}):(m(t,{code:o.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),f)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const r=new Map;for(const n of t){const t=fe(n.shape[e]);if(!t.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const a of t){if(r.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);r.set(a,n)}}return new _e({typeName:Ve.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:r,...x(n)})}}function ye(e,t){const n=s(e),a=s(t);if(e===t)return{valid:!0,data:e};if(n===i.object&&a===i.object){const n=r.objectKeys(t),a=r.objectKeys(e).filter((e=>-1!==n.indexOf(e))),i={...e,...t};for(const n of a){const r=ye(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}if(n===i.array&&a===i.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let r=0;r{if(g(e)||g(r))return f;const a=ye(e.value,r.value);return a.valid?((v(e)||v(r))&&t.dirty(),{status:t.value,value:a.data}):(m(n,{code:o.invalid_intersection_types}),f)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then((([e,t])=>r(e,t))):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}ge.create=(e,t,n)=>new ge({left:e,right:t,typeName:Ve.ZodIntersection,...x(n)});class ve extends O{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==i.array)return m(n,{code:o.invalid_type,expected:i.array,received:n.parsedType}),f;if(n.data.lengththis._def.items.length&&(m(n,{code:o.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const r=[...n.data].map(((e,t)=>{const r=this._def.items[t]||this._def.rest;return r?r._parse(new Y(n,e,n.path,t)):null})).filter((e=>!!e));return n.common.async?Promise.all(r).then((e=>p.mergeArray(t,e))):p.mergeArray(t,r)}get items(){return this._def.items}rest(e){return new ve({...this._def,rest:e})}}ve.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ve({items:e,typeName:Ve.ZodTuple,rest:null,...x(t)})};class be extends O{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==i.object)return m(n,{code:o.invalid_type,expected:i.object,received:n.parsedType}),f;const r=[],a=this._def.keyType,s=this._def.valueType;for(const e in n.data)r.push({key:a._parse(new Y(n,e,n.path,e)),value:s._parse(new Y(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?p.mergeObjectAsync(t,r):p.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return new be(t instanceof O?{keyType:e,valueType:t,typeName:Ve.ZodRecord,...x(n)}:{keyType:K.create(),valueType:e,typeName:Ve.ZodRecord,...x(t)})}}class Me extends O{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==i.map)return m(n,{code:o.invalid_type,expected:i.map,received:n.parsedType}),f;const r=this._def.keyType,a=this._def.valueType,s=[...n.data.entries()].map((([e,t],i)=>({key:r._parse(new Y(n,e,n.path,[i,"key"])),value:a._parse(new Y(n,t,n.path,[i,"value"]))})));if(n.common.async){const e=new Map;return Promise.resolve().then((async()=>{for(const n of s){const r=await n.key,a=await n.value;if("aborted"===r.status||"aborted"===a.status)return f;"dirty"!==r.status&&"dirty"!==a.status||t.dirty(),e.set(r.value,a.value)}return{status:t.value,value:e}}))}{const e=new Map;for(const n of s){const r=n.key,a=n.value;if("aborted"===r.status||"aborted"===a.status)return f;"dirty"!==r.status&&"dirty"!==a.status||t.dirty(),e.set(r.value,a.value)}return{status:t.value,value:e}}}}Me.create=(e,t,n)=>new Me({valueType:t,keyType:e,typeName:Ve.ZodMap,...x(n)});class we extends O{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==i.set)return m(n,{code:o.invalid_type,expected:i.set,received:n.parsedType}),f;const r=this._def;null!==r.minSize&&n.data.sizer.maxSize.value&&(m(n,{code:o.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());const a=this._def.valueType;function s(e){const n=new Set;for(const r of e){if("aborted"===r.status)return f;"dirty"===r.status&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}const l=[...n.data.values()].map(((e,t)=>a._parse(new Y(n,e,n.path,t))));return n.common.async?Promise.all(l).then((e=>s(e))):s(l)}min(e,t){return new we({...this._def,minSize:{value:e,message:k.toString(t)}})}max(e,t){return new we({...this._def,maxSize:{value:e,message:k.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}we.create=(e,t)=>new we({valueType:e,minSize:null,maxSize:null,typeName:Ve.ZodSet,...x(t)});class Le extends O{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==i.function)return m(t,{code:o.invalid_type,expected:i.function,received:t.parsedType}),f;function n(e,n){return h({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,c(),u].filter((e=>!!e)),issueData:{code:o.invalid_arguments,argumentsError:n}})}function r(e,n){return h({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,c(),u].filter((e=>!!e)),issueData:{code:o.invalid_return_type,returnTypeError:n}})}const a={errorMap:t.common.contextualErrorMap},s=t.data;if(this._def.returns instanceof xe){const e=this;return y((async function(...t){const i=new l([]),o=await e._def.args.parseAsync(t,a).catch((e=>{throw i.addIssue(n(t,e)),i})),u=await Reflect.apply(s,this,o);return await e._def.returns._def.type.parseAsync(u,a).catch((e=>{throw i.addIssue(r(u,e)),i}))}))}{const e=this;return y((function(...t){const i=e._def.args.safeParse(t,a);if(!i.success)throw new l([n(t,i.error)]);const o=Reflect.apply(s,this,i.data),u=e._def.returns.safeParse(o,a);if(!u.success)throw new l([r(o,u.error)]);return u.data}))}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Le({...this._def,args:ve.create(e).rest(le.create())})}returns(e){return new Le({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new Le({args:e||ve.create([]).rest(le.create()),returns:t||le.create(),typeName:Ve.ZodFunction,...x(n)})}}class ke extends O{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}ke.create=(e,t)=>new ke({getter:e,typeName:Ve.ZodLazy,...x(t)});class Se extends O{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return m(t,{received:t.data,code:o.invalid_literal,expected:this._def.value}),f}return{status:"valid",value:e.data}}get value(){return this._def.value}}function De(e,t){return new Ye({values:e,typeName:Ve.ZodEnum,...x(t)})}Se.create=(e,t)=>new Se({value:e,typeName:Ve.ZodLiteral,...x(t)});class Ye extends O{constructor(){super(...arguments),S.set(this,void 0)}_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return m(t,{expected:r.joinValues(n),received:t.parsedType,code:o.invalid_type}),f}if(w(this,S,"f")||L(this,S,new Set(this._def.values),"f"),!w(this,S,"f").has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return m(t,{received:t.data,code:o.invalid_enum_value,options:n}),f}return y(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Ye.create(e,{...this._def,...t})}exclude(e,t=this._def){return Ye.create(this.options.filter((t=>!e.includes(t))),{...this._def,...t})}}S=new WeakMap,Ye.create=De;class Te extends O{constructor(){super(...arguments),D.set(this,void 0)}_parse(e){const t=r.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==i.string&&n.parsedType!==i.number){const e=r.objectValues(t);return m(n,{expected:r.joinValues(e),received:n.parsedType,code:o.invalid_type}),f}if(w(this,D,"f")||L(this,D,new Set(r.getValidEnumValues(this._def.values)),"f"),!w(this,D,"f").has(e.data)){const e=r.objectValues(t);return m(n,{received:n.data,code:o.invalid_enum_value,options:e}),f}return y(e.data)}get enum(){return this._def.values}}D=new WeakMap,Te.create=(e,t)=>new Te({values:e,typeName:Ve.ZodNativeEnum,...x(t)});class xe extends O{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==i.promise&&!1===t.common.async)return m(t,{code:o.invalid_type,expected:i.promise,received:t.parsedType}),f;const n=t.parsedType===i.promise?t.data:Promise.resolve(t.data);return y(n.then((e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap}))))}}xe.create=(e,t)=>new xe({type:e,typeName:Ve.ZodPromise,...x(t)});class Oe extends O{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Ve.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),a=this._def.effect||null,i={addIssue:e=>{m(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),"preprocess"===a.type){const e=a.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then((async e=>{if("aborted"===t.value)return f;const r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===r.status?f:"dirty"===r.status||"dirty"===t.value?_(r.value):r}));{if("aborted"===t.value)return f;const r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===r.status?f:"dirty"===r.status||"dirty"===t.value?_(r.value):r}}if("refinement"===a.type){const e=e=>{const t=a.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===n.common.async){const r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===r.status?f:("dirty"===r.status&&t.dirty(),e(r.value),{status:t.value,value:r.value})}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((n=>"aborted"===n.status?f:("dirty"===n.status&&t.dirty(),e(n.value).then((()=>({status:t.value,value:n.value}))))))}if("transform"===a.type){if(!1===n.common.async){const e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!b(e))return e;const r=a.transform(e.value,i);if(r instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:r}}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((e=>b(e)?Promise.resolve(a.transform(e.value,i)).then((e=>({status:t.value,value:e}))):e))}r.assertNever(a)}}Oe.create=(e,t,n)=>new Oe({schema:e,typeName:Ve.ZodEffects,effect:t,...x(n)}),Oe.createWithPreprocess=(e,t,n)=>new Oe({schema:t,effect:{type:"preprocess",transform:e},typeName:Ve.ZodEffects,...x(n)});class je extends O{_parse(e){return this._getType(e)===i.undefined?y(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}je.create=(e,t)=>new je({innerType:e,typeName:Ve.ZodOptional,...x(t)});class Pe extends O{_parse(e){return this._getType(e)===i.null?y(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Pe.create=(e,t)=>new Pe({innerType:e,typeName:Ve.ZodNullable,...x(t)});class Ee extends O{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===i.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}Ee.create=(e,t)=>new Ee({innerType:e,typeName:Ve.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...x(t)});class Ce extends O{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return M(r)?r.then((e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new l(n.common.issues)},input:n.data})}))):{status:"valid",value:"valid"===r.status?r.value:this._def.catchValue({get error(){return new l(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}Ce.create=(e,t)=>new Ce({innerType:e,typeName:Ve.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...x(t)});class He extends O{_parse(e){if(this._getType(e)!==i.nan){const t=this._getOrReturnCtx(e);return m(t,{code:o.invalid_type,expected:i.nan,received:t.parsedType}),f}return{status:"valid",value:e.data}}}He.create=e=>new He({typeName:Ve.ZodNaN,...x(e)});const Re=Symbol("zod_brand");class Ae extends O{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class Ie extends O{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?f:"dirty"===e.status?(t.dirty(),_(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{const e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?f:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new Ie({in:e,out:t,typeName:Ve.ZodPipeline})}}class Fe extends O{_parse(e){const t=this._def.innerType._parse(e),n=e=>(b(e)&&(e.value=Object.freeze(e.value)),e);return M(t)?t.then((e=>n(e))):n(t)}unwrap(){return this._def.innerType}}function Ne(e,t){const n="function"==typeof e?e(t):"string"==typeof e?{message:e}:e;return"string"==typeof n?{message:n}:n}function We(e,t={},n){return e?oe.create().superRefine(((r,a)=>{var i,s;const o=e(r);if(o instanceof Promise)return o.then((e=>{var i,s;if(!e){const e=Ne(t,r),o=null===(s=null!==(i=e.fatal)&&void 0!==i?i:n)||void 0===s||s;a.addIssue({code:"custom",...e,fatal:o})}}));if(!o){const e=Ne(t,r),o=null===(s=null!==(i=e.fatal)&&void 0!==i?i:n)||void 0===s||s;a.addIssue({code:"custom",...e,fatal:o})}})):oe.create()}Fe.create=(e,t)=>new Fe({innerType:e,typeName:Ve.ZodReadonly,...x(t)});const ze={object:me.lazycreate};var Ve;!function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(Ve||(Ve={}));const Be=K.create,Ue=ee.create,$e=He.create,qe=te.create,Ge=ne.create,Ze=re.create,Je=ae.create,Qe=ie.create,Ke=se.create,Xe=oe.create,et=le.create,tt=ue.create,nt=de.create,rt=ce.create,at=me.create,it=me.strictCreate,st=pe.create,ot=_e.create,lt=ge.create,ut=ve.create,dt=be.create,ct=Me.create,ht=we.create,mt=Le.create,pt=ke.create,ft=Se.create,_t=Ye.create,yt=Te.create,gt=xe.create,vt=Oe.create,bt=je.create,Mt=Pe.create,wt=Oe.createWithPreprocess,Lt=Ie.create,kt={string:e=>K.create({...e,coerce:!0}),number:e=>ee.create({...e,coerce:!0}),boolean:e=>ne.create({...e,coerce:!0}),bigint:e=>te.create({...e,coerce:!0}),date:e=>re.create({...e,coerce:!0})},St=f;var Dt=Object.freeze({__proto__:null,defaultErrorMap:u,setErrorMap:function(e){d=e},getErrorMap:c,makeIssue:h,EMPTY_PATH:[],addIssueToContext:m,ParseStatus:p,INVALID:f,DIRTY:_,OK:y,isAborted:g,isDirty:v,isValid:b,isAsync:M,get util(){return r},get objectUtil(){return a},ZodParsedType:i,getParsedType:s,ZodType:O,datetimeRegex:Z,ZodString:K,ZodNumber:ee,ZodBigInt:te,ZodBoolean:ne,ZodDate:re,ZodSymbol:ae,ZodUndefined:ie,ZodNull:se,ZodAny:oe,ZodUnknown:le,ZodNever:ue,ZodVoid:de,ZodArray:ce,ZodObject:me,ZodUnion:pe,ZodDiscriminatedUnion:_e,ZodIntersection:ge,ZodTuple:ve,ZodRecord:be,ZodMap:Me,ZodSet:we,ZodFunction:Le,ZodLazy:ke,ZodLiteral:Se,ZodEnum:Ye,ZodNativeEnum:Te,ZodPromise:xe,ZodEffects:Oe,ZodTransformer:Oe,ZodOptional:je,ZodNullable:Pe,ZodDefault:Ee,ZodCatch:Ce,ZodNaN:He,BRAND:Re,ZodBranded:Ae,ZodPipeline:Ie,ZodReadonly:Fe,custom:We,Schema:O,ZodSchema:O,late:ze,get ZodFirstPartyTypeKind(){return Ve},coerce:kt,any:Xe,array:rt,bigint:qe,boolean:Ge,date:Ze,discriminatedUnion:ot,effect:vt,enum:_t,function:mt,instanceof:(e,t={message:`Input not instance of ${e.name}`})=>We((t=>t instanceof e),t),intersection:lt,lazy:pt,literal:ft,map:ct,nan:$e,nativeEnum:yt,never:tt,null:Ke,nullable:Mt,number:Ue,object:at,oboolean:()=>Ge().optional(),onumber:()=>Ue().optional(),optional:bt,ostring:()=>Be().optional(),pipeline:Lt,preprocess:wt,promise:gt,record:dt,set:ht,strictObject:it,string:Be,symbol:Je,transformer:vt,tuple:ut,undefined:Qe,union:st,unknown:et,void:nt,NEVER:St,ZodIssueCode:o,quotelessJson:e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),ZodError:l})},3727:function(e,t,n){!function(e){"use strict";e.defineLocale("ja",{eras:[{since:"2019-05-01",offset:1,name:"令和",narrow:"㋿",abbr:"R"},{since:"1989-01-08",until:"2019-04-30",offset:1,name:"平成",narrow:"㍻",abbr:"H"},{since:"1926-12-25",until:"1989-01-07",offset:1,name:"昭和",narrow:"㍼",abbr:"S"},{since:"1912-07-30",until:"1926-12-24",offset:1,name:"大正",narrow:"㍽",abbr:"T"},{since:"1873-01-01",until:"1912-07-29",offset:6,name:"明治",narrow:"㍾",abbr:"M"},{since:"0001-01-01",until:"1873-12-31",offset:1,name:"西暦",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"紀元前",narrow:"BC",abbr:"BC"}],eraYearOrdinalRegex:/(元|\d+)年/,eraYearOrdinalParse:function(e,t){return"元"===t[1]?1:parseInt(t[1]||e,10)},months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,n){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()!==this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(e){return this.week()!==e.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(e,t){switch(t){case"y":return 1===e?"元年":e+"年";case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}(n(2689))},4197:function(e,t,n){!function(e){"use strict";var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},a=function(e){return function(t,a,i,s){var o=n(t),l=r[e][n(t)];return 2===o&&(l=l[a?0:1]),l.replace(/%d/i,t)}},i=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-ly",{months:i,monthsShort:i,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:a("s"),ss:a("s"),m:a("m"),mm:a("m"),h:a("h"),hh:a("h"),d:a("d"),dd:a("d"),M:a("M"),MM:a("M"),y:a("y"),yy:a("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2689))},4379:function(e,t,n){!function(e){"use strict";e.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(2689))},4449:function(e,t,n){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},a={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},i=function(e){return function(t,n,i,s){var o=r(t),l=a[e][r(t)];return 2===o&&(l=l[n?0:1]),l.replace(/%d/i,t)}},s=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar",{months:s,monthsShort:s,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:i("s"),ss:i("s"),m:i("m"),mm:i("m"),h:i("h"),hh:i("h"),d:i("d"),dd:i("d"),M:i("M"),MM:i("M"),y:i("y"),yy:i("y")},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(2689))},4457:function(e,t,n){!function(e){"use strict";e.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"segundu balun",ss:"segundu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2689))},4468:function(e,t,n){!function(e){"use strict";var t=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},n={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(e){return function(r,a,i,s){var o=t(r),l=n[e][t(r)];return 2===o&&(l=l[a?0:1]),l.replace(/%d/i,r)}},a=["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-dz",{months:a,monthsShort:a,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:0,doy:4}})}(n(2689))},4636:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}t.default=void 0;var a=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var a={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=i?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(a,s,o):a[s]=e[s]}return a.default=e,n&&n.set(e,a),a}(n(5959)),i=c(n(2688)),s=c(n(7842)),o=n(414),l=n(544),u=c(n(9482)),d=["breakpoint","breakpoints","cols","layouts","margin","containerPadding","onBreakpointChange","onLayoutChange","onWidthChange"];function c(e){return e&&e.__esModule?e:{default:e}}function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}function m(){return m=Object.assign||function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,d));return a.createElement(u.default,m({},r,{margin:w(t,this.state.breakpoint),containerPadding:w(n,this.state.breakpoint),onLayoutChange:this.onLayoutChange,layout:this.state.layout,cols:this.state.cols}))}}])&&_(t.prototype,n),i&&_(t,i),Object.defineProperty(t,"prototype",{writable:!1}),M}(a.Component);t.default=L,b(L,"propTypes",{breakpoint:i.default.string,breakpoints:i.default.object,allowOverlap:i.default.bool,cols:i.default.object,margin:i.default.oneOfType([i.default.array,i.default.object]),containerPadding:i.default.oneOfType([i.default.array,i.default.object]),layouts:function(e,t){if("[object Object]"!==M(e[t]))throw new Error("Layout property must be an object. Received: "+M(e[t]));Object.keys(e[t]).forEach((function(t){if(!(t in e.breakpoints))throw new Error("Each key in layouts must align with a key in breakpoints.");(0,o.validateLayout)(e.layouts[t],"layouts."+t)}))},width:i.default.number.isRequired,onBreakpointChange:i.default.func,onLayoutChange:i.default.func,onWidthChange:i.default.func}),b(L,"defaultProps",{breakpoints:{lg:1200,md:996,sm:768,xs:480,xxs:0},cols:{lg:12,md:10,sm:6,xs:4,xxs:2},containerPadding:{lg:null,md:null,sm:null,xs:null,xxs:null},layouts:{},margin:[10,10],allowOverlap:!1,onBreakpointChange:o.noop,onLayoutChange:o.noop,onWidthChange:o.noop})},4807:function(e,t,n){!function(e){"use strict";var t={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},n={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};e.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(e){return e.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ರಾತ್ರಿ"===t?e<4?e:e+12:"ಬೆಳಿಗ್ಗೆ"===t?e:"ಮಧ್ಯಾಹ್ನ"===t?e>=10?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}})}(n(2689))},4914:function(e,t,n){!function(e){"use strict";e.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(2689))},5027:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},5059:function(e,t,n){!function(e){"use strict";var t="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),n=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",t[7],t[8],t[9]];function r(e,r,a,i){var s="";switch(a){case"s":return i?"muutaman sekunnin":"muutama sekunti";case"ss":s=i?"sekunnin":"sekuntia";break;case"m":return i?"minuutin":"minuutti";case"mm":s=i?"minuutin":"minuuttia";break;case"h":return i?"tunnin":"tunti";case"hh":s=i?"tunnin":"tuntia";break;case"d":return i?"päivän":"päivä";case"dd":s=i?"päivän":"päivää";break;case"M":return i?"kuukauden":"kuukausi";case"MM":s=i?"kuukauden":"kuukautta";break;case"y":return i?"vuoden":"vuosi";case"yy":s=i?"vuoden":"vuotta"}return function(e,r){return e<10?r?n[e]:t[e]:e}(e,i)+" "+s}e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},5192:function(e,t,n){!function(e){"use strict";var t={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(e,t,n){return n?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function r(e,r,a){return e+" "+n(t[a],e,r)}function a(e,r,a){return n(t[a],e,r)}e.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(e,t){return t?"dažas sekundes":"dažām sekundēm"},ss:r,m:a,mm:r,h:a,hh:r,d:a,dd:r,M:a,MM:r,y:a,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},5198:function(e,t,n){!function(e){"use strict";e.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?e>=11?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(n(2689))},5251:function(e,t,n){!function(e){"use strict";e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?e>=11?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:0,doy:6}})}(n(2689))},5305:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["çend sanîye","çend sanîyeyan"],ss:[e+" sanîye",e+" sanîyeyan"],m:["deqîqeyek","deqîqeyekê"],mm:[e+" deqîqe",e+" deqîqeyan"],h:["saetek","saetekê"],hh:[e+" saet",e+" saetan"],d:["rojek","rojekê"],dd:[e+" roj",e+" rojan"],w:["hefteyek","hefteyekê"],ww:[e+" hefte",e+" hefteyan"],M:["mehek","mehekê"],MM:[e+" meh",e+" mehan"],y:["salek","salekê"],yy:[e+" sal",e+" salan"]};return t?a[n][0]:a[n][1]}e.defineLocale("ku-kmr",{months:"Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar".split("_"),monthsShort:"Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber".split("_"),monthsParseExact:!0,weekdays:"Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî".split("_"),weekdaysShort:"Yek_Du_Sê_Çar_Pên_În_Şem".split("_"),weekdaysMin:"Ye_Du_Sê_Ça_Pê_În_Şe".split("_"),meridiem:function(e,t,n){return e<12?n?"bn":"BN":n?"pn":"PN"},meridiemParse:/bn|BN|pn|PN/,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM[a] YYYY[an]",LLL:"Do MMMM[a] YYYY[an] HH:mm",LLLL:"dddd, Do MMMM[a] YYYY[an] HH:mm",ll:"Do MMM[.] YYYY[an]",lll:"Do MMM[.] YYYY[an] HH:mm",llll:"ddd[.], Do MMM[.] YYYY[an] HH:mm"},calendar:{sameDay:"[Îro di saet] LT [de]",nextDay:"[Sibê di saet] LT [de]",nextWeek:"dddd [di saet] LT [de]",lastDay:"[Duh di saet] LT [de]",lastWeek:"dddd[a borî di saet] LT [de]",sameElse:"L"},relativeTime:{future:"di %s de",past:"berî %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,w:t,ww:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(?:yê|ê|\.)/,ordinal:function(e,t){var n=t.toLowerCase();return n.includes("w")||n.includes("m")?e+".":e+function(e){var t=(e=""+e).substring(e.length-1),n=e.length>1?e.substring(e.length-2):"";return 12==n||13==n||"2"!=t&&"3"!=t&&"50"!=n&&"70"!=t&&"80"!=t?"ê":"yê"}(e)},week:{dow:1,doy:4}})}(n(2689))},5363:function(e,t,n){!function(e){"use strict";var t={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],d:["jedan dan","jednog dana"],dd:["dan","dana","dana"],M:["jedan mesec","jednog meseca"],MM:["mesec","meseca","meseci"],y:["jednu godinu","jedne godine"],yy:["godinu","godine","godina"]},correctGrammaticalCase:function(e,t){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?t[0]:t[1]:t[2]},translate:function(e,n,r,a){var i,s=t.words[r];return 1===r.length?"y"===r&&n?"jedna godina":a||n?s[0]:s[1]:(i=t.correctGrammaticalCase(e,s),"yy"===r&&n&&"godinu"===i?e+" godina":e+" "+i)}};e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:t.translate,dd:t.translate,M:t.translate,MM:t.translate,y:t.translate,yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},5387:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["thoddea sekondamni","thodde sekond"],ss:[e+" sekondamni",e+" sekond"],m:["eka mintan","ek minut"],mm:[e+" mintamni",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voramni",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disamni",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineamni",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsamni",e+" vorsam"]};return r?a[n][0]:a[n][1]}e.defineLocale("gom-latn",{months:{standalone:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),format:"Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Fuddlo] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fattlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){return"D"===t?e+"er":e},week:{dow:0,doy:3},meridiemParse:/rati|sokallim|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokallim"===t?e:"donparam"===t?e>12?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokallim":e<16?"donparam":e<20?"sanje":"rati"}})}(n(2689))},5435:(e,t,n)=>{"use strict";n.d(t,{zL:()=>a});var r=n(3633),a=(e=>(e[e.dontHide=0]="dontHide",e[e.hideLabel=1]="hideLabel",e[e.hideVariable=2]="hideVariable",e))(a||{});r.rw},5540:(e,t,n)=>{"use strict";n.d(t,{w:()=>a});var r=n(5959);function a(e){const{ref:t,box:n,onResize:a}=e;(0,r.useEffect)((()=>{let e=null==t?void 0:t.current;if(e){if(void 0===window.ResizeObserver)return window.addEventListener("resize",a,!1),()=>{window.removeEventListener("resize",a,!1)};{const t=new window.ResizeObserver((e=>{e.length&&a()}));return t.observe(e,{box:n}),()=>{e&&t.unobserve(e)}}}}),[a,t,n])}},5565:function(e,t,n){!function(e){"use strict";function t(e,t,n){var r=" ";return(e%100>=20||e>=100&&e%100==0)&&(r=" de "),e+r+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",ww:"săptămâni",MM:"luni",yy:"ani"}[n]}e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:t,m:"un minut",mm:t,h:"o oră",hh:t,d:"o zi",dd:t,w:"o săptămână",ww:t,M:"o lună",MM:t,y:"un an",yy:t},week:{dow:1,doy:7}})}(n(2689))},5662:function(e,t,n){!function(e){"use strict";e.defineLocale("oc-lnc",{months:{standalone:"genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre".split("_"),format:"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dm._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dm_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:"[uèi a] LT",nextDay:"[deman a] LT",nextWeek:"dddd [a] LT",lastDay:"[ièr a] LT",lastWeek:"dddd [passat a] LT",sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"unas segondas",ss:"%d segondas",m:"una minuta",mm:"%d minutas",h:"una ora",hh:"%d oras",d:"un jorn",dd:"%d jorns",M:"un mes",MM:"%d meses",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(2689))},5718:function(e,t,n){!function(e){"use strict";e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,n){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},5865:function(e,t,n){!function(e){"use strict";var t={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"bir neçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(e){return/^(gündüz|axşam)$/.test(e)},meridiem:function(e,t,n){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var n=e%10;return e+(t[n]||t[e%100-n]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(2689))},5887:function(e,t,n){!function(e){"use strict";e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},5961:function(e,t,n){!function(e){"use strict";function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"mm":return r+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return"jedan sat";case"hh":return r+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return r+(1===e?"dan":"dana");case"MM":return r+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return r+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:function(e,t,n,r){if("m"===n)return t?"jedna minuta":r?"jednu minutu":"jedne minute"},mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},5964:function(e,t,n){!function(e){"use strict";e.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(2689))},6080:function(e,t,n){!function(e){"use strict";var t=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],n=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];e.defineLocale("dv",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,n){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}})}(n(2689))},6118:function(e,t,n){!function(e){"use strict";var t="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"),r=[/^sty/i,/^lut/i,/^mar/i,/^kwi/i,/^maj/i,/^cze/i,/^lip/i,/^sie/i,/^wrz/i,/^paź/i,/^lis/i,/^gru/i];function a(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function i(e,t,n){var r=e+" ";switch(n){case"ss":return r+(a(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return r+(a(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return r+(a(e)?"godziny":"godzin");case"ww":return r+(a(e)?"tygodnie":"tygodni");case"MM":return r+(a(e)?"miesiące":"miesięcy");case"yy":return r+(a(e)?"lata":"lat")}}e.defineLocale("pl",{months:function(e,r){return e?/D MMMM/.test(r)?n[e.month()]:t[e.month()]:t},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:i,m:i,mm:i,h:i,hh:i,d:"1 dzień",dd:"%d dni",w:"tydzień",ww:i,M:"miesiąc",MM:i,y:"rok",yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},6152:function(e,t,n){!function(e){"use strict";e.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(2689))},6317:function(e,t,n){!function(e){"use strict";var t={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},n={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};e.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12".split("_"),monthsShortRegex:/^(ཟླ་\d{1,2})/,monthsParseExact:!0,weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&e>=4||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,n){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}(n(2689))},6333:(e,t,n)=>{"use strict";t.__esModule=!0,t.resizableProps=void 0;var r,a=(r=n(2688))&&r.__esModule?r:{default:r};n(8230);var i={axis:a.default.oneOf(["both","x","y","none"]),className:a.default.string,children:a.default.element.isRequired,draggableOpts:a.default.shape({allowAnyClick:a.default.bool,cancel:a.default.string,children:a.default.node,disabled:a.default.bool,enableUserSelectHack:a.default.bool,offsetParent:a.default.node,grid:a.default.arrayOf(a.default.number),handle:a.default.string,nodeRef:a.default.object,onStart:a.default.func,onDrag:a.default.func,onStop:a.default.func,onMouseDown:a.default.func,scale:a.default.number}),height:function(){for(var e=arguments.length,t=new Array(e),n=0;n1&&e<5}function a(e,t,n,a){var i=e+" ";switch(n){case"s":return t||a?"pár sekúnd":"pár sekundami";case"ss":return t||a?i+(r(e)?"sekundy":"sekúnd"):i+"sekundami";case"m":return t?"minúta":a?"minútu":"minútou";case"mm":return t||a?i+(r(e)?"minúty":"minút"):i+"minútami";case"h":return t?"hodina":a?"hodinu":"hodinou";case"hh":return t||a?i+(r(e)?"hodiny":"hodín"):i+"hodinami";case"d":return t||a?"deň":"dňom";case"dd":return t||a?i+(r(e)?"dni":"dní"):i+"dňami";case"M":return t||a?"mesiac":"mesiacom";case"MM":return t||a?i+(r(e)?"mesiace":"mesiacov"):i+"mesiacmi";case"y":return t||a?"rok":"rokom";case"yy":return t||a?i+(r(e)?"roky":"rokov"):i+"rokmi"}}e.defineLocale("sk",{months:t,monthsShort:n,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:case 4:case 5:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},6441:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6474:function(e,t,n){!function(e){"use strict";function t(e,t,n){return e+" "+function(e,t){return 2===t?function(e){var t={m:"v",b:"v",d:"z"};return void 0===t[e.charAt(0)]?e:t[e.charAt(0)]+e.substring(1)}(e):e}({mm:"munutenn",MM:"miz",dd:"devezh"}[n],e)}function n(e){return e>9?n(e%10):e}var r=[/^gen/i,/^c[ʼ\']hwe/i,/^meu/i,/^ebr/i,/^mae/i,/^(mez|eve)/i,/^gou/i,/^eos/i,/^gwe/i,/^her/i,/^du/i,/^ker/i],a=/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,i=[/^Su/i,/^Lu/i,/^Me([^r]|$)/i,/^Mer/i,/^Ya/i,/^Gw/i,/^Sa/i];e.defineLocale("br",{months:"Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParse:i,fullWeekdaysParse:[/^sul/i,/^lun/i,/^meurzh/i,/^merc[ʼ\']her/i,/^yaou/i,/^gwener/i,/^sadorn/i],shortWeekdaysParse:[/^Sul/i,/^Lun/i,/^Meu/i,/^Mer/i,/^Yao/i,/^Gwe/i,/^Sad/i],minWeekdaysParse:i,monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,monthsShortStrictRegex:/^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY HH:mm",LLLL:"dddd, D [a viz] MMMM YYYY HH:mm"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warcʼhoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Decʼh da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s ʼzo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:function(e){switch(n(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4},meridiemParse:/a.m.|g.m./,isPM:function(e){return"g.m."===e},meridiem:function(e,t,n){return e<12?"a.m.":"g.m."}})}(n(2689))},6492:function(e,t,n){!function(e){"use strict";e.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},6544:function(e,t,n){!function(e){"use strict";function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+(1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi");case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+(1===e?"minuta":2===e||3===e||4===e?"minute":"minuta");case"h":return t?"jedan sat":"jednog sata";case"hh":return r+(1===e?"sat":2===e||3===e||4===e?"sata":"sati");case"dd":return r+(1===e?"dan":"dana");case"MM":return r+(1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci");case"yy":return r+(1===e?"godina":2===e||3===e||4===e?"godine":"godina")}}e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM YYYY",LLL:"Do MMMM YYYY H:mm",LLLL:"dddd, Do MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:return"[prošlu] [nedjelju] [u] LT";case 3:return"[prošlu] [srijedu] [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},6557:function(e,t,n){!function(e){"use strict";e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},6601:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},6609:(e,t,n)=>{"use strict";t.default=void 0;var r=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var s=a?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}(n(5959)),a=l(n(2688)),i=l(n(1794)),s=n(6333),o=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function l(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,o);return r.createElement(i.default,{axis:p,draggableOpts:l,handle:t,handleSize:n,height:this.state.height,lockAspectRatio:m,maxConstraints:c,minConstraints:u,onResizeStart:a,onResize:this.onResize,onResizeStop:s,resizeHandles:f,transformScale:y,width:this.state.width},r.createElement("div",d({},g,{style:h(h({},_),{},{width:this.state.width+"px",height:this.state.height+"px"})})))},a}(r.Component);t.default=f,f.propTypes=h(h({},s.resizableProps),{},{children:a.default.element})},6627:function(e,t,n){!function(e){"use strict";function t(e,t,n){return"m"===n?t?"хвіліна":"хвіліну":"h"===n?t?"гадзіна":"гадзіну":e+" "+(r=+e,a={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:t?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[n].split("_"),r%10==1&&r%100!=11?a[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?a[1]:a[2]);var r,a}e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:t,mm:t,h:t,hh:t,d:"дзень",dd:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(e){return/^(дня|вечара)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}})}(n(2689))},6711:function(e,t,n){!function(e){"use strict";e.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}})}(n(2689))},6732:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dontSetMe=function(e,t,n){if(e[t])return new Error("Invalid prop ".concat(t," passed to ").concat(n," - do not set this, set it on the child."))},t.findInArray=function(e,t){for(let n=0,r=e.length;n{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}t.default=function(e){var t;return t=function(t){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&h(e,t)}(g,t);var n,i,l,u,y=(n=g,i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=p(n);if(i){var a=p(this).constructor;e=Reflect.construct(t,arguments,a)}else e=t.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}(this,e)});function g(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,g);for(var t=arguments.length,n=new Array(t),r=0;r=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(t,o);return n&&!this.mounted?a.createElement("div",{className:(0,s.default)(this.props.className,_),style:this.props.style,ref:this.elementRef}):a.createElement(e,d({innerRef:this.elementRef},r,this.state))}}])&&c(l.prototype,u),Object.defineProperty(l,"prototype",{writable:!1}),g}(a.Component),f(t,"defaultProps",{measureBeforeMount:!1}),f(t,"propTypes",{measureBeforeMount:i.default.bool}),t};var a=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var a={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=i?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(a,s,o):a[s]=e[s]}return a.default=e,n&&n.set(e,a),a}(n(5959)),i=l(n(2688)),s=l(n(7256)),o=["measureBeforeMount"];function l(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function d(){return d=Object.assign||function(e){for(var t=1;t=100?100:null])}},week:{dow:1,doy:7}})}(n(2689))},7057:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"nekaj sekund":"nekaj sekundami";case"ss":return a+(1===e?t?"sekundo":"sekundi":2===e?t||r?"sekundi":"sekundah":e<5?t||r?"sekunde":"sekundah":"sekund");case"m":return t?"ena minuta":"eno minuto";case"mm":return a+(1===e?t?"minuta":"minuto":2===e?t||r?"minuti":"minutama":e<5?t||r?"minute":"minutami":t||r?"minut":"minutami");case"h":return t?"ena ura":"eno uro";case"hh":return a+(1===e?t?"ura":"uro":2===e?t||r?"uri":"urama":e<5?t||r?"ure":"urami":t||r?"ur":"urami");case"d":return t||r?"en dan":"enim dnem";case"dd":return a+(1===e?t||r?"dan":"dnem":2===e?t||r?"dni":"dnevoma":t||r?"dni":"dnevi");case"M":return t||r?"en mesec":"enim mesecem";case"MM":return a+(1===e?t||r?"mesec":"mesecem":2===e?t||r?"meseca":"mesecema":e<5?t||r?"mesece":"meseci":t||r?"mesecev":"meseci");case"y":return t||r?"eno leto":"enim letom";case"yy":return a+(1===e?t||r?"leto":"letom":2===e?t||r?"leti":"letoma":e<5?t||r?"leta":"leti":t||r?"let":"leti")}}e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},7101:function(e,t,n){!function(e){"use strict";var t={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},n={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};e.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?e>=10?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})}(n(2689))},7104:function(e,t,n){!function(e){"use strict";e.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"hh:mm A",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"siku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(n(2689))},7203:function(e,t,n){!function(e){"use strict";e.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"do_2ª_3ª_4ª_5ª_6ª_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",invalidDate:"Data inválida"})}(n(2689))},7222:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.resizeHandleType=t.resizeHandleAxesType=t.default=void 0;var r=i(n(2688)),a=i(n(5959));function i(e){return e&&e.__esModule?e:{default:e}}var s=r.default.arrayOf(r.default.oneOf(["s","w","e","n","sw","nw","se","ne"]));t.resizeHandleAxesType=s;var o=r.default.oneOfType([r.default.node,r.default.func]);t.resizeHandleType=o;var l={className:r.default.string,style:r.default.object,width:r.default.number,autoSize:r.default.bool,cols:r.default.number,draggableCancel:r.default.string,draggableHandle:r.default.string,verticalCompact:function(e){e.verticalCompact},compactType:r.default.oneOf(["vertical","horizontal"]),layout:function(e){var t=e.layout;void 0!==t&&n(414).validateLayout(t,"layout")},margin:r.default.arrayOf(r.default.number),containerPadding:r.default.arrayOf(r.default.number),rowHeight:r.default.number,maxRows:r.default.number,isBounded:r.default.bool,isDraggable:r.default.bool,isResizable:r.default.bool,allowOverlap:r.default.bool,preventCollision:r.default.bool,useCSSTransforms:r.default.bool,transformScale:r.default.number,isDroppable:r.default.bool,resizeHandles:s,resizeHandle:o,onLayoutChange:r.default.func,onDragStart:r.default.func,onDrag:r.default.func,onDragStop:r.default.func,onResizeStart:r.default.func,onResize:r.default.func,onResizeStop:r.default.func,onDrop:r.default.func,droppingItem:r.default.shape({i:r.default.string.isRequired,w:r.default.number.isRequired,h:r.default.number.isRequired}),children:function(e,t){var n=e[t],r={};a.default.Children.forEach(n,(function(e){if(null!=(null==e?void 0:e.key)){if(r[e.key])throw new Error('Duplicate child key "'+e.key+'" found! This will cause problems in ReactGridLayout.');r[e.key]=!0}}))},innerRef:r.default.any};t.default=l},7228:function(e,t,n){!function(e){"use strict";var t={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},n={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};e.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(n(2689))},7243:function(e,t,n){!function(e){"use strict";e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(2689))},7244:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:function(e){return e.week()!==this.week()?"[下]dddLT":"[本]dddLT"},lastDay:"[昨天]LT",lastWeek:function(e){return this.week()!==e.week()?"[上]dddLT":"[本]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s后",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",w:"1 周",ww:"%d 周",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})}(n(2689))},7256:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta,default:()=>i});const i=a},7260:function(e,t,n){!function(e){"use strict";e.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,n){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?e>=11?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(n(2689))},7270:function(e,t,n){!function(e){"use strict";e.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(2689))},7286:(e,t,n)=>{"use strict";n.d(t,{H9:()=>Ko,yP:()=>rm,mI:()=>um,d0:()=>my,xK:()=>Hf,gF:()=>Cf,Zv:()=>Me,Es:()=>Bh,vA:()=>Yf,G1:()=>Df,Bs:()=>K,So:()=>Le,dt:()=>_l,WM:()=>lf,KE:()=>qp,JZ:()=>Ce,Pj:()=>Zh,$L:()=>Wm,Sh:()=>zl,Eb:()=>Nd,Lw:()=>Bm,Gg:()=>r,jh:()=>Lu,Go:()=>py});var r={};n.r(r),n.d(r,{K2:()=>Iu});var a=n(1159),i=n(7781),s=n(8531),o=Object.defineProperty,l=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,d=Object.prototype.propertyIsEnumerable,c=(e,t,n)=>t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function h(e,t,n){const r=((e,t)=>{for(var n in t||(t={}))u.call(t,n)&&c(e,n,t[n]);if(l)for(var n of l(t))d.call(t,n)&&c(e,n,t[n]);return e})({},t);if(n)for(const e of Object.keys(r))n.includes(e)||delete r[e];return i.urlUtil.renderUrl(i.locationUtil.assureBaseUrl(e),r)}function m(e){const t=(0,a.useParams)(),n=(0,a.useLocation)();return{params:t,isExact:null!==(0,a.matchPath)({path:e,caseSensitive:!1,end:!0},n.pathname),path:n.pathname,url:n.pathname}}var p=Object.defineProperty,f=Object.defineProperties,_=Object.getOwnPropertyDescriptors,y=Object.getOwnPropertySymbols,g=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable,b=(e,t,n)=>t in e?p(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const M=new Map;var w=n(5959),L=n.t(w,2),k=n.n(w),S=n(1269);const D={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let Y;const T=new Uint8Array(16);function x(){if(!Y&&(Y="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Y))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Y(T)}const O=[];for(let e=0;e<256;++e)O.push((e+256).toString(16).slice(1));const j=function(e,t,n){if(D.randomUUID&&!t&&!e)return D.randomUUID();const r=(e=e||{}).random||(e.rng||x)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(let e=0;e<16;++e)t[n+e]=r[e];return t}return function(e,t=0){return O[e[t+0]]+O[e[t+1]]+O[e[t+2]]+O[e[t+3]]+"-"+O[e[t+4]]+O[e[t+5]]+"-"+O[e[t+6]]+O[e[t+7]]+"-"+O[e[t+8]]+O[e[t+9]]+"-"+O[e[t+10]]+O[e[t+11]]+O[e[t+12]]+O[e[t+13]]+O[e[t+14]]+O[e[t+15]]}(r)};var P=Object.defineProperty,E=Object.defineProperties,C=Object.getOwnPropertyDescriptors,H=Object.getOwnPropertySymbols,R=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable,I=(e,t,n)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const F=k().memo((function(e){var t,n=e,{model:r}=n,a=((e,t)=>{var n={};for(var r in e)R.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&H)for(var r of H(e))t.indexOf(r)<0&&A.call(e,r)&&(n[r]=e[r]);return n})(n,["model"]);const i=null!=(t=r.constructor.Component)?t:N,[s,o]=(0,w.useState)(0);return(0,w.useEffect)((()=>{const e=r.activate();return o((e=>e+1)),e}),[r]),r.isActive||r.renderBeforeActivation?k().createElement(i,(l=((e,t)=>{for(var n in t||(t={}))R.call(t,n)&&I(e,n,t[n]);if(H)for(var n of H(t))A.call(t,n)&&I(e,n,t[n]);return e})({},a),E(l,C({model:r})))):null;var l}));function N(e){return null}class W extends i.BusEventWithPayload{}W.type="scene-object-state-change";class z extends i.BusEventWithPayload{}z.type="scene-object-user-action";var V,B=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)};class U{constructor(e){var t,n;((e,t)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,void 0)})(this,V),n=e,B(this,t=V,"write to private field"),t.set(this,n)}resolve(){return B(this,e=V,"read from private field"),e.get(this);var e}}V=new WeakMap;var $=Object.defineProperty,q=Object.getOwnPropertySymbols,G=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable,J=(e,t,n)=>t in e?$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Q=(e,t)=>{for(var n in t||(t={}))G.call(t,n)&&J(e,n,t[n]);if(q)for(var n of q(t))Z.call(t,n)&&J(e,n,t[n]);return e};class K{constructor(e){this._isActive=!1,this._activationHandlers=[],this._deactivationHandlers=new Map,this._subs=new S.Subscription,this._refCount=0,this._renderBeforeActivation=!1,e.key||(e.key=j()),this._events=new i.EventBusSrv,this._state=Object.freeze(e),this._setParent(this._state)}get state(){return this._state}get isActive(){return this._isActive}get renderBeforeActivation(){return this._renderBeforeActivation}get parent(){return this._parent}get variableDependency(){return this._variableDependency}get urlSync(){return this._urlSync}get Component(){return F}_setParent(e){ee(e,(e=>{e._parent&&e._parent!==this&&console.warn("SceneObject already has a parent set that is different from the new parent. You cannot share the same SceneObject instance in multiple scenes or in multiple different places of the same scene graph. Use SceneObject.clone() to duplicate a SceneObject or store a state key reference and use sceneGraph.findObject to locate it.",e,this),e._parent=this}))}clearParent(){this._parent=void 0}subscribeToState(e){return this._events.subscribe(W,(t=>{t.payload.changedObject===this&&e(t.payload.newState,t.payload.prevState)}))}subscribeToEvent(e,t){return this._events.subscribe(e,t)}setState(e){const t=this._state,n=Q(Q({},this._state),e);this._state=Object.freeze(n),this._setParent(e),this._handleActivationOfChangedStateProps(t,n),this.publishEvent(new W({prevState:t,newState:n,partialUpdate:e,changedObject:this}),!0)}_handleActivationOfChangedStateProps(e,t){this.isActive&&(e.$behaviors!==t.$behaviors&&this._handleChangedBehaviors(e.$behaviors,t.$behaviors),e.$data!==t.$data&&this._handleChangedStateActivation(e.$data,t.$data),e.$variables!==t.$variables&&this._handleChangedStateActivation(e.$variables,t.$variables),e.$timeRange!==t.$timeRange&&this._handleChangedStateActivation(e.$timeRange,t.$timeRange))}_handleChangedStateActivation(e,t){if(e){const t=this._deactivationHandlers.get(e);t&&(t(),this._deactivationHandlers.delete(e))}t&&this._deactivationHandlers.set(t,t.activate())}_handleChangedBehaviors(e,t){if(e)for(const n of e)if(!t||!t.includes(n)){const e=this._deactivationHandlers.get(n);e&&(e(),this._deactivationHandlers.delete(n))}if(t)for(const n of t)e&&e.includes(n)||this._activateBehavior(n)}publishEvent(e,t){this._events.publish(e),t&&this.parent&&this.parent.publishEvent(e,t)}getRoot(){return this._parent?this._parent.getRoot():this}_internalActivate(){this._isActive=!0;const{$data:e,$variables:t,$timeRange:n,$behaviors:r}=this.state;if(this._activationHandlers.forEach((e=>{const t=e();t&&this._deactivationHandlers.set(t,t)})),n&&!n.isActive&&this._deactivationHandlers.set(n,n.activate()),t&&!t.isActive&&this._deactivationHandlers.set(t,t.activate()),e&&!e.isActive&&this._deactivationHandlers.set(e,e.activate()),r)for(const e of r)this._activateBehavior(e)}_activateBehavior(e){if(e instanceof K)this._deactivationHandlers.set(e,e.activate());else if("function"==typeof e){const t=e(this);t&&this._deactivationHandlers.set(e,t)}}activate(){this.isActive||this._internalActivate(),this._refCount++;let e=!1;return()=>{if(this._refCount--,e)throw new Error("SceneObject cancelation handler returned by activate() called a second time");e=!0,0===this._refCount&&this._internalDeactivate()}}_internalDeactivate(){this._isActive=!1;for(let e of this._deactivationHandlers.values())e();this._deactivationHandlers.clear(),this._events.removeAllListeners(),this._subs.unsubscribe(),this._subs=new S.Subscription}useState(){return X(this)}forceRender(){this.setState({})}clone(e){return function(e,t){const n=le(e.state,t);return new e.constructor(n)}(this,e)}addActivationHandler(e){this._activationHandlers.push(e)}forEachChild(e){ee(this.state,e)}getRef(){return this._ref||(this._ref=new U(this)),this._ref}toJSON(){return{type:Object.getPrototypeOf(this).constructor.name,isActive:this.isActive,state:this.state}}}function X(e,t){var n;const[r,a]=(0,w.useState)(e.state),i=e.state,s=null!=(n=null==t?void 0:t.shouldActivateOrKeepAlive)&&n;return(0,w.useEffect)((()=>{let t;s&&(t=e.activate());const n=e.subscribeToState((e=>{a(e)}));return e.state!==i&&a(e.state),()=>{n.unsubscribe(),t&&t()}}),[e,s]),e.state}function ee(e,t){for(const n of Object.values(e))if(n instanceof K&&t(n),Array.isArray(n))for(const e of n)e instanceof K&&t(e)}var te=n(3241),ne=Object.defineProperty,re=Object.getOwnPropertySymbols,ae=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable,se=(e,t,n)=>t in e?ne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,oe=(e,t)=>{for(var n in t||(t={}))ae.call(t,n)&&se(e,n,t[n]);if(re)for(var n of re(t))ie.call(t,n)&&se(e,n,t[n]);return e};function le(e,t){const n=oe({},e);Object.assign(n,t);for(const e in n){if(t&&void 0!==t[e])continue;const r=n[e];if(r instanceof U)console.warn("Cloning object with SceneObjectRef");else if(r instanceof K)n[e]=r.clone();else if(Array.isArray(r)){const t=[];for(const e of r)e instanceof K?t.push(e.clone()):"object"==typeof e?t.push((0,te.cloneDeep)(e)):t.push(e);n[e]=t}else n[e]="object"==typeof r?(0,te.cloneDeep)(r):r}return n}function ue(e,t){let n,r=e;for(;r&&!n;)n=t(r),r=r.parent;return n}i.DataSourceApi;const de=new Map;function ce(e,t){const n=t.state.$variables;if(!n)return t.parent?ce(e,t.parent):null;return n.getByName(e)||(t.parent?ce(e,t.parent):null)}function he(e,t,...n){let r=!1;"undefined"!=typeof window&&(r="true"===localStorage.getItem("grafana.debug.scenes")),r&&console.log(`${e}: `,t,...n)}function me(e){let t=e;for(;t;){if(t.state.$behaviors)for(const e of t.state.$behaviors)if("isQueryController"in e)return e;t=t.parent}}new WeakMap,new WeakMap,new WeakMap,new WeakMap,Object.defineProperty,Object.defineProperties,Object.getOwnPropertyDescriptors,Object.getOwnPropertySymbols,Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable,new WeakMap,new WeakMap;var pe=n(3321);pe.ob.Auto;var fe=(e=>(e.NotStarted="NotStarted",e.Loading="Loading",e.Streaming="Streaming",e.Done="Done",e.Error="Error",e))(fe||{}),_e=Object.defineProperty,ye=Object.getOwnPropertySymbols,ge=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable,be=(e,t,n)=>t in e?_e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Me extends K{constructor(e){super(((e,t)=>{for(var n in t||(t={}))ge.call(t,n)&&be(e,n,t[n]);if(ye)for(var n of ye(t))ve.call(t,n)&&be(e,n,t[n]);return e})({data:we},e))}getResultsStream(){const e={origin:this,data:this.state.data};return(0,S.of)(e)}}const we={state:fe.Done,series:[],timeRange:(0,i.getDefaultTimeRange)()};class Le{constructor(e,t){this._sceneObject=e,this._nextChangeShouldAddHistoryStep=!1,this._keys=t.keys}getKeys(){return"function"==typeof this._keys?this._keys():this._keys}getUrlState(){return this._sceneObject.getUrlState()}updateFromUrl(e){this._sceneObject.updateFromUrl(e)}shouldCreateHistoryStep(e){return this._nextChangeShouldAddHistoryStep}performBrowserHistoryAction(e){this._nextChangeShouldAddHistoryStep=!0,e(),this._nextChangeShouldAddHistoryStep=!1}}const ke=/^\d+[yYmMsSwWhHdD]$/;function Se(e){if("string"!=typeof e)return null;if(-1!==e.indexOf("now"))return e;if(ke.test(e))return e;if(8===e.length){const t=(0,i.toUtc)(e,"YYYYMMDD");if(t.isValid())return t.toISOString()}else if(15===e.length){const t=(0,i.toUtc)(e,"YYYYMMDDTHHmmss");if(t.isValid())return t.toISOString()}else if(19===e.length){const t=(0,i.toUtc)(e,"YYYY-MM-DD HH:mm:ss");if(t.isValid())return t.toISOString()}else if(24===e.length)return(0,i.toUtc)(e).toISOString();const t=parseInt(e,10);return isNaN(t)?null:(0,i.toUtc)(t).toISOString()}function De(e,t,n,r,a,s){const o=a&&"now"===t,l=Date.now();s&&function(e){e!==Ye&&(Ye=e,(0,i.setWeekStart)(e))}(s);const u=(e,t)=>i.dateMath.toDateTime?i.dateMath.toDateTime(e,t):i.dateMath.parse(e,t.roundUp,t.timezone,t.fiscalYearStartMonth);return{to:u(o?"now-"+a:t,{roundUp:!0,timezone:n,fiscalYearStartMonth:r,now:l}),from:u(e,{roundUp:!1,timezone:n,fiscalYearStartMonth:r,now:l}),raw:{from:e,to:t}}}let Ye;function Te(e,t,n){return(0,i.isDateTime)(e)?e.isValid():i.dateMath.isMathString(e)?i.dateMath.isValid(e):(0,i.dateTimeParse)(e,{roundUp:t,timeZone:n}).isValid()}var xe=Object.defineProperty,Oe=Object.getOwnPropertySymbols,je=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable,Ee=(e,t,n)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Ce extends K{constructor(e={}){var t;const n=e.from&&Te(e.from)?e.from:"now-6h",r=e.to&&Te(e.to)?e.to:"now",a=e.timeZone;super(((e,t)=>{for(var n in t||(t={}))je.call(t,n)&&Ee(e,n,t[n]);if(Oe)for(var n of Oe(t))Pe.call(t,n)&&Ee(e,n,t[n]);return e})({from:n,to:r,timeZone:a,value:De(n,r,a||(0,i.getTimeZone)(),e.fiscalYearStartMonth,e.UNSAFE_nowDelay,e.weekStart),refreshOnActivate:null!=(t=e.refreshOnActivate)?t:{percent:10}},e)),this._urlSync=new Le(this,{keys:["from","to","timezone","time","time.window"]}),this.onTimeRangeChange=e=>{const t={};if("string"==typeof e.raw.from?t.from=e.raw.from:t.from=e.raw.from.toISOString(),"string"==typeof e.raw.to?t.to=e.raw.to:t.to=e.raw.to.toISOString(),t.value=De(t.from,t.to,this.getTimeZone(),this.state.fiscalYearStartMonth,this.state.UNSAFE_nowDelay,this.state.weekStart),t.from!==this.state.from||t.to!==this.state.to){const e=me(this);null==e||e.startProfile("SceneTimeRange"),this._urlSync.performBrowserHistoryAction((()=>{this.setState(t)}))}},this.onTimeZoneChange=e=>{this._urlSync.performBrowserHistoryAction((()=>{this.setState({timeZone:e})}))},this.onRefresh=()=>{this.refreshRange(0),this.publishEvent(new s.RefreshEvent,!0)},this.addActivationHandler(this._onActivate.bind(this))}_onActivate(){if(!this.state.timeZone){const e=this.getTimeZoneSource();e!==this&&this._subs.add(e.subscribeToState(((e,t)=>{void 0!==e.timeZone&&e.timeZone!==t.timeZone&&this.refreshRange(0)})))}return i.rangeUtil.isRelativeTimeRange(this.state.value.raw)&&this.refreshIfStale(),()=>{this.state.weekStart&&(0,i.setWeekStart)(s.config.bootData.user.weekStart)}}refreshIfStale(){var e,t,n,r;let a;void 0!==(null==(t=null==(e=this.state)?void 0:e.refreshOnActivate)?void 0:t.percent)&&(a=this.calculatePercentOfInterval(this.state.refreshOnActivate.percent)),void 0!==(null==(r=null==(n=this.state)?void 0:n.refreshOnActivate)?void 0:r.afterMs)&&(a=Math.min(this.state.refreshOnActivate.afterMs,null!=a?a:1/0)),void 0!==a&&this.refreshRange(a)}getTimeZoneSource(){if(!this.parent||!this.parent.parent)return this;return ue(this.parent.parent,(e=>{if(e.state.$timeRange&&e.state.$timeRange.state.timeZone)return e.state.$timeRange}))||this}refreshRange(e){var t;const n=De(this.state.from,this.state.to,null!=(t=this.state.timeZone)?t:(0,i.getTimeZone)(),this.state.fiscalYearStartMonth,this.state.UNSAFE_nowDelay,this.state.weekStart);n.to.diff(this.state.value.to,"milliseconds")>=e&&this.setState({value:n})}calculatePercentOfInterval(e){const t=this.state.value.to.diff(this.state.value.from,"milliseconds");return Math.ceil(t/e)}getTimeZone(){if(this.state.timeZone)return this.state.timeZone;const e=this.getTimeZoneSource();return e!==this?e.state.timeZone:(0,i.getTimeZone)()}getUrlState(){const e=s.locationService.getSearchObject(),t={from:this.state.from,to:this.state.to,timezone:this.getTimeZone()};return e.time&&e["time.window"]&&(t.time=null,t["time.window"]=null),t}updateFromUrl(e){var t,n,r;const a={};let s=Se(e.from),o=Se(e.to);if(e.time&&e["time.window"]){const t=function(e,t){const n=isNaN(Date.parse(e))?parseInt(e,10):Date.parse(e);let r;return r=t.match(/^\d+$/)&&parseInt(t,10)?parseInt(t,10):i.rangeUtil.intervalToMs(t),{from:(0,i.toUtc)(n-r/2).toISOString(),to:(0,i.toUtc)(n+r/2).toISOString()}}(Array.isArray(e.time)?e.time[0]:e.time,Array.isArray(e["time.window"])?e["time.window"][0]:e["time.window"]);t.from&&Te(t.from)&&(s=t.from),t.to&&Te(t.to)&&(o=t.to)}if(s&&Te(s)&&(a.from=s),o&&Te(o)&&(a.to=o),"string"==typeof e.timezone&&(a.timeZone=""!==e.timezone?e.timezone:void 0),0!==Object.keys(a).length)return a.value=De(null!=(t=a.from)?t:this.state.from,null!=(n=a.to)?n:this.state.to,null!=(r=a.timeZone)?r:this.getTimeZone(),this.state.fiscalYearStartMonth,this.state.UNSAFE_nowDelay,this.state.weekStart),this.setState(a)}}const He=new Me,Re=new Ce,Ae=new class extends K{constructor(){super({variables:[]})}getByName(e){}isVariableLoadingOrWaitingToUpdate(e){return!1}};function Ie(e){var t;return null!=(t=ue(e,(e=>e.state.$timeRange)))?t:Re}class Fe extends i.BusEventWithPayload{}function Ne(e){return"object"==typeof e&&"formatter"in e}Fe.type="scene-variable-changed-value";let We,ze={};function Ve(e){return ze[e]||(ze[e]=(0,te.property)(e))}class Be{constructor(e,t){this.state={name:e,value:t,type:"scopedvar"}}getValue(e){let{value:t}=this.state,n=t.value;return n=e?Ve(e)(t.value):t.value,"string"===n||"number"===n||"boolean"===n?n:String(n)}getValueText(){const{value:e}=this.state;return null!=e.text?String(e.text):String(e)}}const Ue=new i.Registry((()=>{const e=[{id:pe.$m.Lucene,name:"Lucene",description:"Values are lucene escaped and multi-valued variables generate an OR expression",formatter:e=>"string"==typeof e?$e(e):Array.isArray(e)?0===e.length?"__empty__":"("+(0,te.map)(e,(e=>'"'+$e(e)+'"')).join(" OR ")+")":$e(`${e}`)},{id:pe.$m.Raw,name:"raw",description:"Keep value as is",formatter:e=>String(e)},{id:pe.$m.Regex,name:"Regex",description:"Values are regex escaped and multi-valued variables generate a (|) expression",formatter:e=>{if("string"==typeof e)return(0,i.escapeRegex)(e);if(Array.isArray(e)){const t=e.map((e=>"string"==typeof e?(0,i.escapeRegex)(e):(0,i.escapeRegex)(String(e))));return 1===t.length?t[0]:"("+t.join("|")+")"}return(0,i.escapeRegex)(`${e}`)}},{id:pe.$m.Pipe,name:"Pipe",description:"Values are separated by | character",formatter:e=>"string"==typeof e?e:Array.isArray(e)?e.join("|"):`${e}`},{id:pe.$m.Distributed,name:"Distributed",description:"Multiple values are formatted like variable=value",formatter:(e,t,n)=>"string"==typeof e?e:Array.isArray(e)?(e=(0,te.map)(e,((e,t)=>0!==t?n.state.name+"="+e:e)),e.join(",")):`${e}`},{id:pe.$m.CSV,name:"Csv",description:"Comma-separated values",formatter:e=>"string"==typeof e?e:(0,te.isArray)(e)?e.join(","):String(e)},{id:pe.$m.HTML,name:"HTML",description:"HTML escaping of values",formatter:e=>"string"==typeof e?i.textUtil.escapeHtml(e):(0,te.isArray)(e)?i.textUtil.escapeHtml(e.join(", ")):i.textUtil.escapeHtml(String(e))},{id:pe.$m.JSON,name:"JSON",description:"JSON stringify value",formatter:e=>"string"==typeof e?e:JSON.stringify(e)},{id:pe.$m.PercentEncode,name:"Percent encode",description:"Useful for URL escaping values",formatter:e=>(0,te.isArray)(e)?qe("{"+e.join(",")+"}"):qe(e)},{id:pe.$m.SingleQuote,name:"Single quote",description:"Single quoted values",formatter:e=>{const t=new RegExp("'","g");if((0,te.isArray)(e))return(0,te.map)(e,(e=>`'${(0,te.replace)(e,t,"\\'")}'`)).join(",");let n="string"==typeof e?e:String(e);return`'${(0,te.replace)(n,t,"\\'")}'`}},{id:pe.$m.DoubleQuote,name:"Double quote",description:"Double quoted values",formatter:e=>{const t=new RegExp('"',"g");if((0,te.isArray)(e))return(0,te.map)(e,(e=>`"${(0,te.replace)(e,t,'\\"')}"`)).join(",");let n="string"==typeof e?e:String(e);return`"${(0,te.replace)(n,t,'\\"')}"`}},{id:pe.$m.SQLString,name:"SQL string",description:"SQL string quoting and commas for use in IN statements and other scenarios",formatter:Ke},{id:pe.$m.Date,name:"Date",description:"Format date in different ways",formatter:(e,t)=>{var n;let r=NaN;if("number"==typeof e?r=e:"string"==typeof e&&(r=parseInt(e,10)),isNaN(r))return"NaN";const a=null!=(n=t[0])?n:"iso";switch(a){case"ms":return String(e);case"seconds":return`${Math.round(r/1e3)}`;case"iso":return(0,i.dateTime)(r).toISOString();default:return(t||[]).length>1?(0,i.dateTime)(r).format(t.join(":")):(0,i.dateTime)(r).format(a)}}},{id:pe.$m.Glob,name:"Glob",description:"Format multi-valued variables using glob syntax, example {value1,value2}",formatter:e=>(0,te.isArray)(e)&&e.length>1?"{"+e.join(",")+"}":String(e)},{id:pe.$m.Text,name:"Text",description:"Format variables in their text representation. Example in multi-variable scenario A + B + C.",formatter:(e,t,n)=>n.getValueText?n.getValueText():String(e)},{id:pe.$m.QueryParam,name:"Query parameter",description:"Format variables as URL parameters. Example in multi-variable scenario A + B + C => var-foo=A&var-foo=B&var-foo=C.",formatter:(e,t,n)=>{if(n.urlSync){const e=n.urlSync.getUrlState();return i.urlUtil.toUrlParams(e)}return Array.isArray(e)?e.map((e=>Je(n.state.name,e))).join("&"):Je(n.state.name,e)}},{id:pe.$m.UriEncode,name:"Percent encode as URI",description:"Useful for URL escaping values, taking into URI syntax characters",formatter:e=>(0,te.isArray)(e)?Ge("{"+e.join(",")+"}"):Ge(e)}];return e}));function $e(e){return!1===isNaN(+e)?e:e.replace(/([\!\*\+\-\=<>\s\&\|\(\)\[\]\{\}\^\~\?\:\\/"])/g,"\\$1")}function qe(e){return"object"==typeof e&&(e=String(e)),Ze(encodeURIComponent(e))}const Ge=e=>Ze(encodeURI(String(e))),Ze=e=>e.replace(/[!'()*]/g,(e=>"%"+e.charCodeAt(0).toString(16).toUpperCase()));function Je(e,t){return`var-${e}=${qe(t)}`}const Qe={"'":"''",'"':'\\"'};function Ke(e){const t=new RegExp("'|\"","g");if((0,te.isArray)(e))return(0,te.map)(e,(e=>`'${(0,te.replace)(e,t,(e=>{var t;return null!=(t=Qe[e])?t:""}))}'`)).join(",");let n="string"==typeof e?e:String(e);return`'${(0,te.replace)(n,t,(e=>{var t;return null!=(t=Qe[e])?t:""}))}'`}const Xe="All",et="$__all",tt="$__auto",nt=/\$(\w+)|\[\[(\w+?)(?::(\w+))?\]\]|\${(\w+)(?:\.([^:^\}]+))?(?::([^\}]+))?}/g;class rt{constructor(e){this._value=e}formatter(){return this._value}}class at{constructor(e,t){this.state={name:e,type:"time_macro"},this._sceneObject=t}getValue(){const e=Ie(this._sceneObject);return"__from"===this.state.name?e.state.value.from.valueOf():e.state.value.to.valueOf()}getValueText(){const e=Ie(this._sceneObject);return"__from"===this.state.name?(0,i.dateTimeFormat)(e.state.value.from,{timeZone:e.getTimeZone()}):(0,i.dateTimeFormat)(e.state.value.to,{timeZone:e.getTimeZone()})}}class it{constructor(e,t,n){this.state={name:e,type:"time_macro",match:n},this._sceneObject=t}getValue(){var e;const t=gu(this._sceneObject);if(t){const n=null==(e=t.state.data)?void 0:e.request;return n?"__interval_ms"===this.state.name?n.intervalMs:n.interval:this.state.match}return this.state.match}}function st(e,t){e.setState(t)}function ot(){return s.useLocationService?(0,s.useLocationService)():s.locationService}class lt extends K{constructor(){super(...arguments),this._urlSync=new ut(this)}validateAndUpdate(){return this.getValueOptions({}).pipe((0,S.map)((e=>(this.updateValueGivenNewOptions(e),{}))))}onCancel(){this.setStateHelper({loading:!1});const e=this.parent;null==e||e.cancel(this)}updateValueGivenNewOptions(e){const{value:t,text:n,options:r}=this.state,a=this.getStateUpdateGivenNewOptions(e,t,n);this.interceptStateUpdateAfterValidation(a),this.setStateHelper(a),(a.value!==t||a.text!==n||this.hasAllValue()&&!(0,te.isEqual)(e,r))&&this.publishEvent(new Fe(this),!0)}getStateUpdateGivenNewOptions(e,t,n){const r={options:e,loading:!1,value:t,text:n};if(0===e.length)return this.state.defaultToAll||this.state.includeAll?(r.value=et,r.text=Xe):this.state.isMulti?(r.value=[],r.text=[]):(r.value="",r.text=""),r;if(this.hasAllValue())return this.state.includeAll?r.text=Xe:(r.value=e[0].value,r.text=e[0].label,this.state.isMulti&&(r.value=[r.value],r.text=[r.text])),r;if(this.state.isMulti){const a=(Array.isArray(t)?t:[t]).filter((t=>e.find((e=>e.value===t)))),i=a.map((t=>e.find((e=>e.value===t)).label));if(0===a.length){const t=this.getDefaultMultiState(e);r.value=t.value,r.text=t.text}else(0,te.isEqual)(a,t)||(r.value=a),(0,te.isEqual)(i,n)||(r.text=i);return r}let a=function(e,t,n){let r;for(const a of n){if(a.value===e)return a;a.label===t&&(r=a)}return r}(t,n,e);if(a)r.text=a.label,r.value=a.value;else{const t=this.getDefaultSingleState(e);r.value=t.value,r.text=t.text}return r}interceptStateUpdateAfterValidation(e){const t=e.value===et&&this.state.text===Xe;this.skipNextValidation&&e.value!==this.state.value&&e.text!==this.state.text&&!t&&(e.value=this.state.value,e.text=this.state.text),this.skipNextValidation=!1}getValue(){return this.hasAllValue()?this.state.allValue?new dt(this.state.allValue,this):this.state.options.map((e=>e.value)):this.state.value}getValueText(){return this.hasAllValue()?Xe:Array.isArray(this.state.text)?this.state.text.join(" + "):String(this.state.text)}hasAllValue(){const e=this.state.value;return e===et||Array.isArray(e)&&e[0]===et}getDefaultMultiState(e){return this.state.defaultToAll?{value:[et],text:[Xe]}:e.length>0?{value:[e[0].value],text:[e[0].label]}:{value:[],text:[]}}getDefaultSingleState(e){return this.state.defaultToAll?{value:et,text:Xe}:e.length>0?{value:e[0].value,text:e[0].label}:{value:"",text:""}}changeValueTo(e,t,n=!1){var r,a;if(e===this.state.value&&t===this.state.text)return;if(t||(t=Array.isArray(e)?e.map((e=>this.findLabelTextForValue(e))):this.findLabelTextForValue(e)),Array.isArray(e)){if(0===e.length){const n=this.getDefaultMultiState(this.state.options);e=n.value,t=n.text}e[e.length-1]===et?(e=[et],t=[Xe]):e[0]===et&&e.length>1&&(e.shift(),Array.isArray(t)&&t.shift())}if((0,te.isEqual)(e,this.state.value)&&(0,te.isEqual)(t,this.state.text))return;const i=()=>this.setStateHelper({value:e,text:t,loading:!1});n?null==(a=(r=this._urlSync).performBrowserHistoryAction)||a.call(r,i):i(),this.publishEvent(new Fe(this),!0)}findLabelTextForValue(e){if(e===et)return Xe;const t=this.state.options.find((t=>t.value===e));if(t)return t.label;const n=this.state.options.find((t=>t.label===e));return n?n.label:e}setStateHelper(e){st(this,e)}getOptionsForSelect(e=!0){let t=this.state.options;return this.state.includeAll&&(t=[{value:et,label:Xe},...t]),e&&!Array.isArray(this.state.value)&&(t.find((e=>e.value===this.state.value))||(t=[{value:this.state.value,label:String(this.state.text)},...t])),t}refreshOptions(){this.getValueOptions({}).subscribe((e=>{this.updateValueGivenNewOptions(e)}))}}class ut{constructor(e){this._sceneObject=e,this._nextChangeShouldAddHistoryStep=!1}getKey(){return`var-${this._sceneObject.state.name}`}getKeys(){return this._sceneObject.state.skipUrlSync?[]:[this.getKey()]}getUrlState(){if(this._sceneObject.state.skipUrlSync)return{};let e=null,t=this._sceneObject.state.value;return e=Array.isArray(t)?t.map(String):this._sceneObject.state.isMulti?[String(t)]:String(t),{[this.getKey()]:e}}updateFromUrl(e){let t=e[this.getKey()];var n;null!=t&&(this._sceneObject.state.includeAll&&(n=t,t=(0,te.isArray)(n)&&n[0]===Xe?[et]:n===Xe?et:n),this._sceneObject.state.allValue&&this._sceneObject.state.allValue===t&&(t=et),this._sceneObject.isActive||(this._sceneObject.skipNextValidation=!0),this._sceneObject.changeValueTo(t))}performBrowserHistoryAction(e){this._nextChangeShouldAddHistoryStep=!0,e(),this._nextChangeShouldAddHistoryStep=!1}shouldCreateHistoryStep(e){return this._nextChangeShouldAddHistoryStep}}class dt{constructor(e,t){this._value=e,this._variable=t}formatter(e){return e===pe.$m.Text?Xe:e===pe.$m.PercentEncode?Ue.get(pe.$m.PercentEncode).formatter(this._value,[],this._variable):e===pe.$m.QueryParam?Ue.get(pe.$m.QueryParam).formatter(Xe,[],this._variable):this._value}}function ct(e,t={}){if(e.state.$variables)for(const n of e.state.$variables.state.variables)n.state.skipUrlSync||t[n.state.name]||(t[n.state.name]=n);return e.parent&&ct(e.parent,t),t}var ht=Object.defineProperty,mt=Object.defineProperties,pt=Object.getOwnPropertyDescriptors,ft=Object.getOwnPropertySymbols,_t=Object.prototype.hasOwnProperty,yt=Object.prototype.propertyIsEnumerable,gt=(e,t,n)=>t in e?ht(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const vt=(0,i.getDisplayProcessor)();class bt{constructor(e){this._urlQueryParams=e}formatter(e){if(!e)return this._urlQueryParams;const t=e.split(":");if("exclude"===t[0]&&t.length>1){const e=new URLSearchParams(this._urlQueryParams);for(const n of t[1].split(","))e.delete(n);return`?${e}`}if("include"===t[0]&&t.length>1){const e=new URLSearchParams(this._urlQueryParams),n=t[1].split(",");for(const t of e.keys())n.includes(t)||e.delete(t);return`?${e}`}return this._urlQueryParams}}const Mt=new Map([[i.DataLinkBuiltInVars.includeVars,class{constructor(e,t){this.state={name:e,type:"url_variable"},this._sceneObject=t}getValue(){const e=ct(this._sceneObject),t=Ue.get(pe.$m.QueryParam),n=[];for(const r of Object.keys(e)){const a=e[r];if(a instanceof lt&&a.hasAllValue()&&!a.state.allValue){n.push(t.formatter(et,[],a));continue}const i=a.getValue();i&&(Ne(i)?n.push(i.formatter(pe.$m.QueryParam)):n.push(t.formatter(i,[],a)))}return new rt(n.join("&"))}getValueText(){return""}}],[i.DataLinkBuiltInVars.keepTime,class{constructor(e,t){this.state={name:e,type:"url_variable"},this._sceneObject=t}getValue(){var e;const t=null==(e=Ie(this._sceneObject).urlSync)?void 0:e.getUrlState();return"browser"===(null==t?void 0:t.timezone)&&(t.timezone=Intl.DateTimeFormat().resolvedOptions().timeZone),new rt(i.urlUtil.toUrlParams(t))}getValueText(){return""}}],["__value",class{constructor(e,t,n,r){this._match=n,this._scopedVars=r,this.state={name:e,type:"__value"}}getValue(e){var t,n;const r=null==(t=this._scopedVars)?void 0:t.__dataContext;if(!r)return this._match;const{frame:a,rowIndex:s,field:o,calculatedValue:l}=r.value;if(l)switch(e){case"numeric":case"raw":return l.numeric;case"time":return"";default:return(0,i.formattedValueToString)(l)}if(null==s)return this._match;if("time"===e){const e=a.fields.find((e=>e.type===i.FieldType.time));return e?e.values.get(s):void 0}if(!o)return this._match;const u=o.values.get(s);if("raw"===e)return u;const d=(null!=(n=o.display)?n:vt)(u);return"numeric"===e?d.numeric:(0,i.formattedValueToString)(d)}getValueText(){return""}}],["__data",class{constructor(e,t,n,r){this._match=n,this._scopedVars=r,this.state={name:e,type:"__data"}}getValue(e){var t,n;const r=null==(t=this._scopedVars)?void 0:t.__dataContext;if(!r||!e)return this._match;const{frame:a,rowIndex:s}=r.value;if(void 0===s||void 0===e)return this._match;const o={name:a.name,refId:a.refId,fields:(0,i.getFieldDisplayValuesProxy)({frame:a,rowIndex:s})};return null!=(n=Ve(e)(o))?n:""}getValueText(){return""}}],["__series",class{constructor(e,t,n,r){this._match=n,this._scopedVars=r,this.state={name:e,type:"__series"}}getValue(e){var t;const n=null==(t=this._scopedVars)?void 0:t.__dataContext;if(!n||!e)return this._match;if("name"!==e)return this._match;const{frame:r,frameIndex:a}=n.value;return(0,i.getFrameDisplayName)(r,a)}getValueText(){return""}}],["__field",class{constructor(e,t,n,r){this._match=n,this._scopedVars=r,this.state={name:e,type:"__field"}}getValue(e){var t,n;const r=null==(t=this._scopedVars)?void 0:t.__dataContext;if(!r||!e)return this._match;if(void 0===e||""===e)return this._match;const{frame:a,field:s,data:o}=r.value,l=function(e,t,n){return new Proxy({},{get:(r,a)=>{return"name"===a?e.name:"displayName"===a?(0,i.getFieldDisplayName)(e,t,n):"labels"===a||"formattedLabels"===a?e.labels?(s=((e,t)=>{for(var n in t||(t={}))_t.call(t,n)&>(e,n,t[n]);if(ft)for(var n of ft(t))yt.call(t,n)&>(e,n,t[n]);return e})({},e.labels),o={__values:Object.values(e.labels).sort().join(", "),toString:()=>(0,i.formatLabels)(e.labels,"",!0)},mt(s,pt(o))):"":void 0;var s,o}})}(s,a,o);return null!=(n=Ve(e)(l))?n:""}getValueText(){return""}}],["__url",class{constructor(e,t){this.state={name:e,type:"url_macro"}}getValue(e){var t;const n=s.locationService.getLocation(),r=null!=(t=s.config.appSubUrl)?t:"";switch(null!=e?e:""){case"params":return new bt(n.search);case"path":return r+n.pathname;default:return r+n.pathname+n.search}}getValueText(){return""}}],["__from",at],["__to",at],["__timezone",class{constructor(e,t){this.state={name:e,type:"time_macro"},this._sceneObject=t}getValue(){const e=Ie(this._sceneObject).getTimeZone();return"browser"===e?Intl.DateTimeFormat().resolvedOptions().timeZone:e}getValueText(){return this.getValue()}}],["__user",class{constructor(e,t){this.state={name:e,type:"user_macro"}}getValue(e){const t=s.config.bootData.user;switch(e){case"login":return t.login;case"email":return t.email;default:return String(t.id)}}getValueText(){return""}}],["__org",class{constructor(e,t){this.state={name:e,type:"org_macro"}}getValue(e){const t=s.config.bootData.user;return"name"===e?t.orgName:String(t.orgId)}getValueText(){return""}}],["__interval",it],["__interval_ms",it]]);function wt(e,t,n,r,a){return t&&"string"==typeof t?(nt.lastIndex=0,t.replace(nt,((t,i,s,o,l,u,d)=>{const c=i||s||l,h=o||d||r,m=function(e,t,n,r){if(n&&n.hasOwnProperty(e)){const t=n[e];if(t)return function(e,t){return We?(We.state.name=e,We.state.value=t):We=new Be(e,t),We}(e,t)}const a=ce(e,r);if(a)return a;const i=Mt.get(e);return i?new i(e,r,t,n):null}(c,t,n,e);if(!m)return a&&a.push({match:t,variableName:c,fieldPath:u,format:h,value:t,found:!1}),t;const p=function(e,t,n,r){if(null==n)return"";if(Ne(n))return wt(e,n.formatter(r));if(Array.isArray(n)||"object"!=typeof n||(n=`${n}`),"function"==typeof r)return r(n,{name:t.state.name,type:t.state.type,multi:t.state.isMulti,includeAll:t.state.includeAll});let a=[];r?(a=r.split(":"),a.length>1?(r=a[0],a=a.slice(1)):a=[]):r=pe.$m.Glob;let i=Ue.getIfExists(r);return i||(console.error(`Variable format ${r} not found. Using glob format as fallback.`),i=Ue.get(pe.$m.Glob)),i.formatter(n,a,t)}(e,m,m.getValue(u),h);return a&&a.push({match:t,variableName:c,fieldPath:u,format:h,value:p,found:p!==t}),p}))):null!=t?t:""}function Lt(e){return void 0!==e.useState}function kt(e){return"enrichDataRequest"in e}function St(e){return"isDataLayer"in e}function Dt(e){return t=>{const n=Lu.getQueryController(e.origin);return n?new S.Observable((r=>{e.cancel||(e.cancel=()=>r.complete()),n.queryStarted(e);let a=!1;const i=t.subscribe({next:t=>{a||t.state===fe.Loading||(a=!0,n.queryCompleted(e)),r.next(t)},error:e=>r.error(e),complete:()=>{r.complete()}});return()=>{i.unsubscribe(),a||n.queryCompleted(e)}})):t}}function Yt(e){return new S.Observable((t=>{t.next({state:fe.Loading}),(0,S.from)(e).pipe((0,S.map)((()=>({state:fe.Done}))),(0,S.catchError)((()=>(t.next({state:fe.Error}),[])))).subscribe({next:e=>t.next(e),complete:()=>t.complete()})}))}async function Tt(e,t){if(null==e?void 0:e.uid){const t=de.get(e.uid);if(t)return t}if(e&&e.query)return e;const n=(0,s.getDataSourceSrv)().get(e,t);if(t.__sceneObject&&t.__sceneObject.value.valueOf()){const e=Lu.getQueryController(t.__sceneObject.value.valueOf());e&&e.state.enableProfiling&&Yt(n).pipe(Dt({type:"plugin",origin:t.__sceneObject.value.valueOf()})).subscribe((()=>{}))}return await n}class xt{constructor(){this._values=new Map}recordCurrentDependencyValuesForSceneObject(e){if(this.clearValues(),e.variableDependency)for(const t of e.variableDependency.getNames()){const n=Lu.lookupVariable(t,e);n&&this._values.set(n.state.name,n.getValue())}}cloneAndRecordCurrentValuesForSceneObject(e){const t=new xt;return t.recordCurrentDependencyValuesForSceneObject(e),t}clearValues(){this._values.clear()}hasValues(){return!!this._values}recordCurrentValue(e){this._values.set(e.state.name,e.getValue())}hasRecordedValue(e){return this._values.has(e.state.name)}hasValueChanged(e){return!(!this._values.has(e.state.name)||vl(this._values.get(e.state.name),e.getValue()))}hasDependenciesChanged(e){if(!this._values)return!1;if(!e.variableDependency)return!1;for(const t of e.variableDependency.getNames()){const n=Lu.lookupVariable(t,e);if(!n)continue;const r=n.state.name;if(n&&this._values.has(r)&&!vl(this._values.get(r),n.getValue()))return!0}return!1}}function Ot(e){return"object"==typeof e&&"getExtraQueries"in e}var jt=Object.defineProperty,Pt=Object.defineProperties,Et=Object.getOwnPropertyDescriptors,Ct=Object.getOwnPropertySymbols,Ht=Object.prototype.hasOwnProperty,Rt=Object.prototype.propertyIsEnumerable,At=(e,t,n)=>t in e?jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const It=(e,t)=>(0,S.of)(t);var Ft=Object.defineProperty,Nt=Object.defineProperties,Wt=Object.getOwnPropertyDescriptors,zt=Object.getOwnPropertySymbols,Vt=Object.prototype.hasOwnProperty,Bt=Object.prototype.propertyIsEnumerable,Ut=(e,t,n)=>t in e?Ft(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$t=(e,t)=>{for(var n in t||(t={}))Vt.call(t,n)&&Ut(e,n,t[n]);if(zt)for(var n of zt(t))Bt.call(t,n)&&Ut(e,n,t[n]);return e},qt=(e,t)=>Nt(e,Wt(t));const Gt=0;function Zt(e){const t=e.getRoot();return kt(t)?t.enrichDataRequest(e):null}let Jt,Qt=new Set;const Kt=new Set;var Xt=n(2007);const en={RadioButton:{container:"data-testid radio-button"},Breadcrumbs:{breadcrumb:e=>`data-testid ${e} breadcrumb`},TimePicker:{openButton:"data-testid TimePicker Open Button",overlayContent:"data-testid TimePicker Overlay Content",fromField:"data-testid Time Range from field",toField:"data-testid Time Range to field",applyTimeRange:"data-testid TimePicker submit button",copyTimeRange:"data-testid TimePicker copy button",pasteTimeRange:"data-testid TimePicker paste button",calendar:{label:"data-testid Time Range calendar",openButton:"data-testid Open time range calendar",closeButton:"data-testid Close time range Calendar"},absoluteTimeRangeTitle:"data-testid-absolute-time-range-narrow"},DataSourcePermissions:{form:()=>'form[name="addPermission"]',roleType:"Role to add new permission to",rolePicker:"Built-in role picker",permissionLevel:"Permission Level"},DateTimePicker:{input:"data-testid date-time-input"},DataSource:{TestData:{QueryTab:{scenarioSelectContainer:"Test Data Query scenario select container",scenarioSelect:"Test Data Query scenario select",max:"TestData max",min:"TestData min",noise:"TestData noise",seriesCount:"TestData series count",spread:"TestData spread",startValue:"TestData start value",drop:"TestData drop values"}},DataSourceHttpSettings:{urlInput:"data-testid Datasource HTTP settings url"},Jaeger:{traceIDInput:"Trace ID"},Prometheus:{configPage:{connectionSettings:"Data source connection URL",manageAlerts:"prometheus-alerts-manager",scrapeInterval:"data-testid scrape interval",queryTimeout:"data-testid query timeout",defaultEditor:"data-testid default editor",disableMetricLookup:"disable-metric-lookup",prometheusType:"data-testid prometheus type",prometheusVersion:"data-testid prometheus version",cacheLevel:"data-testid cache level",incrementalQuerying:"prometheus-incremental-querying",queryOverlapWindow:"data-testid query overlap window",disableRecordingRules:"disable-recording-rules",customQueryParameters:"data-testid custom query parameters",httpMethod:"data-testid http method",exemplarsAddButton:"data-testid Add exemplar config button",internalLinkSwitch:"data-testid Internal link switch"},queryEditor:{explain:"data-testid prometheus explain switch wrapper",editorToggle:"data-testid QueryEditorModeToggle",options:"data-testid prometheus options",legend:"data-testid prometheus legend wrapper",format:"data-testid prometheus format",step:"prometheus-step",type:"data-testid prometheus type",exemplars:"prometheus-exemplars",builder:{metricSelect:"data-testid metric select",hints:"data-testid prometheus hints",metricsExplorer:"data-testid metrics explorer",queryAdvisor:"data-testid query advisor"},code:{queryField:"data-testid prometheus query field",metricsBrowser:{openButton:"data-testid open metrics browser",selectMetric:"data-testid select a metric",metricList:"data-testid metric list",labelNamesFilter:"data-testid label names filter",labelValuesFilter:"data-testid label values filter",useQuery:"data-testid use query",useAsRateQuery:"data-testid use as rate query",validateSelector:"data-testid validate selector",clear:"data-testid clear"}}},exemplarMarker:"data-testid Exemplar marker",variableQueryEditor:{queryType:"data-testid query type",labelnames:{metricRegex:"data-testid label names metric regex"},labelValues:{labelSelect:"data-testid label values label select"},metricNames:{metricRegex:"data-testid metric names metric regex"},varQueryResult:"data-testid variable query result",seriesQuery:"data-testid prometheus series query",classicQuery:"data-testid prometheus classic query"},annotations:{minStep:"prometheus-annotation-min-step",title:"data-testid prometheus annotation title",tags:"data-testid prometheus annotation tags",text:"data-testid prometheus annotation text",seriesValueAsTimestamp:"data-testid prometheus annotation series value as timestamp"}}},Menu:{MenuComponent:e=>`${e} menu`,MenuGroup:e=>`${e} menu group`,MenuItem:e=>`${e} menu item`,SubMenu:{container:"data-testid SubMenu container",icon:"data-testid SubMenu icon"}},Panels:{Panel:{title:e=>`data-testid Panel header ${e}`,headerItems:e=>`data-testid Panel header item ${e}`,menuItems:e=>`data-testid Panel menu item ${e}`,menu:e=>`data-testid Panel menu ${e}`,containerByTitle:e=>`${e} panel`,headerCornerInfo:e=>`Panel header ${e}`,status:e=>`data-testid Panel status ${e}`,loadingBar:()=>"Panel loading bar",HoverWidget:{container:"data-testid hover-header-container",dragIcon:"data-testid drag-icon"},PanelDataErrorMessage:"data-testid Panel data error message"},Visualization:{Graph:{container:"Graph container",VisualizationTab:{legendSection:"Legend section"},Legend:{legendItemAlias:e=>`gpl alias ${e}`,showLegendSwitch:"gpl show legend"},xAxis:{labels:()=>"div.flot-x-axis > div.flot-tick-label"}},BarGauge:{value:"Bar gauge value",valueV2:"data-testid Bar gauge value"},PieChart:{svgSlice:"data testid Pie Chart Slice"},Text:{container:()=>".markdown-html"},Table:{header:"table header",footer:"table-footer",body:"data-testid table body"}}},VizLegend:{seriesName:e=>`data-testid VizLegend series ${e}`},Drawer:{General:{title:e=>`Drawer title ${e}`,expand:"Drawer expand",contract:"Drawer contract",close:"data-testid Drawer close",rcContentWrapper:()=>".rc-drawer-content-wrapper",subtitle:"data-testid drawer subtitle"}},PanelEditor:{General:{content:"Panel editor content"},OptionsPane:{content:"Panel editor option pane content",select:"Panel editor option pane select",fieldLabel:e=>`${e} field property editor`},DataPane:{content:"Panel editor data pane content"},applyButton:"data-testid Apply changes and go back to dashboard",toggleVizPicker:"data-testid toggle-viz-picker",toggleVizOptions:"data-testid toggle-viz-options",toggleTableView:"toggle-table-view",showZoomField:"Map controls Show zoom control field property editor",showAttributionField:"Map controls Show attribution field property editor",showScaleField:"Map controls Show scale field property editor",showMeasureField:"Map controls Show measure tools field property editor",showDebugField:"Map controls Show debug field property editor",measureButton:"show measure tools"},PanelInspector:{Data:{content:"Panel inspector Data content"},Stats:{content:"Panel inspector Stats content"},Json:{content:"Panel inspector Json content"},Query:{content:"Panel inspector Query content",refreshButton:"Panel inspector Query refresh button",jsonObjectKeys:()=>".json-formatter-key"}},Tab:{title:e=>`Tab ${e}`,active:()=>'[class*="-activeTabStyle"]'},RefreshPicker:{runButton:"RefreshPicker run button",intervalButton:"RefreshPicker interval button",runButtonV2:"data-testid RefreshPicker run button",intervalButtonV2:"data-testid RefreshPicker interval button"},QueryTab:{content:"Query editor tab content",queryInspectorButton:"Query inspector button",queryHistoryButton:"data-testid query-history-button",addQuery:"data-testid query-tab-add-query"},QueryHistory:{queryText:"Query text"},QueryEditorRows:{rows:"Query editor row"},QueryEditorRow:{actionButton:e=>`data-testid ${e}`,title:e=>`Query editor row title ${e}`,container:e=>`Query editor row ${e}`},AlertTab:{content:"data-testid Alert editor tab content"},Alert:{alert:e=>`Alert ${e}`,alertV2:e=>`data-testid Alert ${e}`},TransformTab:{content:"data-testid Transform editor tab content",newTransform:e=>`data-testid New transform ${e}`,transformationEditor:e=>`data-testid Transformation editor ${e}`,transformationEditorDebugger:e=>`data-testid Transformation editor debugger ${e}`},Transforms:{card:e=>`data-testid New transform ${e}`,disableTransformationButton:"data-testid Disable transformation button",Reduce:{modeLabel:"data-testid Transform mode label",calculationsLabel:"data-testid Transform calculations label"},SpatialOperations:{actionLabel:"root Action field property editor",locationLabel:"root Location Mode field property editor",location:{autoOption:"Auto location option",coords:{option:"Coords location option",latitudeFieldLabel:"root Latitude field field property editor",longitudeFieldLabel:"root Longitude field field property editor"},geohash:{option:"Geohash location option",geohashFieldLabel:"root Geohash field field property editor"},lookup:{option:"Lookup location option",lookupFieldLabel:"root Lookup field field property editor",gazetteerFieldLabel:"root Gazetteer field property editor"}}},searchInput:"data-testid search transformations",noTransformationsMessage:"data-testid no transformations message",addTransformationButton:"data-testid add transformation button",removeAllTransformationsButton:"data-testid remove all transformations button"},NavBar:{Configuration:{button:"Configuration"},Toggle:{button:"data-testid Toggle menu"},Reporting:{button:"Reporting"}},NavMenu:{Menu:"data-testid navigation mega-menu",item:"data-testid Nav menu item"},NavToolbar:{container:"data-testid Nav toolbar"},PageToolbar:{container:()=>".page-toolbar",item:e=>`${e}`,itemButton:e=>`data-testid ${e}`},QueryEditorToolbarItem:{button:e=>`QueryEditor toolbar item button ${e}`},BackButton:{backArrow:"data-testid Go Back"},OptionsGroup:{group:e=>e?`Options group ${e}`:"Options group",toggle:e=>e?`Options group ${e} toggle`:"Options group toggle"},PluginVisualization:{item:e=>`Plugin visualization item ${e}`,current:()=>'[class*="-currentVisualizationItem"]'},Select:{option:"Select option",input:()=>'input[id*="time-options-input"]',singleValue:()=>'div[class*="-singleValue"]'},FieldConfigEditor:{content:"Field config editor content"},OverridesConfigEditor:{content:"Field overrides editor content"},FolderPicker:{container:"Folder picker select container",containerV2:"data-testid Folder picker select container",input:"data-testid folder-picker-input"},ReadonlyFolderPicker:{container:"data-testid Readonly folder picker select container"},DataSourcePicker:{container:"data-testid Data source picker select container",input:()=>'input[id="data-source-picker"]',inputV2:"data-testid Select a data source",dataSourceList:"data-testid Data source list dropdown",advancedModal:{dataSourceList:"data-testid Data source list",builtInDataSourceList:"data-testid Built in data source list"}},TimeZonePicker:{container:"Time zone picker select container",containerV2:"data-testid Time zone picker select container"},WeekStartPicker:{container:"Choose starting day of the week",containerV2:"data-testid Choose starting day of the week",placeholder:"Choose starting day of the week"},TraceViewer:{spanBar:"data-testid SpanBar--wrapper"},QueryField:{container:"data-testid Query field"},QueryBuilder:{queryPatterns:"data-testid Query patterns",labelSelect:"data-testid Select label",valueSelect:"data-testid Select value",matchOperatorSelect:"data-testid Select match operator"},ValuePicker:{button:e=>`data-testid Value picker button ${e}`,select:e=>`data-testid Value picker select ${e}`},Search:{section:"Search section",sectionV2:"data-testid Search section",items:"Search items",itemsV2:"data-testid Search items",cards:"data-testid Search cards",collapseFolder:e=>`data-testid Collapse folder ${e}`,expandFolder:e=>`data-testid Expand folder ${e}`,dashboardItem:e=>`${en.Search.dashboardItems} ${e}`,dashboardCard:e=>`data-testid Search card ${e}`,folderHeader:e=>`data-testid Folder header ${e}`,folderContent:e=>`data-testid Folder content ${e}`,dashboardItems:"data-testid Dashboard search item"},DashboardLinks:{container:"data-testid Dashboard link container",dropDown:"data-testid Dashboard link dropdown",link:"data-testid Dashboard link"},LoadingIndicator:{icon:"data-testid Loading indicator"},CallToActionCard:{button:e=>`Call to action button ${e}`,buttonV2:e=>`data-testid Call to action button ${e}`},DataLinksContextMenu:{singleLink:"data-testid Data link"},CodeEditor:{container:"data-testid Code editor container"},DashboardImportPage:{textarea:"data-testid-import-dashboard-textarea",submit:"data-testid-load-dashboard"},ImportDashboardForm:{name:"data-testid-import-dashboard-title",submit:"data-testid-import-dashboard-submit"},PanelAlertTabContent:{content:"data-testid Unified alert editor tab content"},VisualizationPreview:{card:e=>`data-testid suggestion-${e}`},ColorSwatch:{name:"data-testid-colorswatch"},DashboardRow:{title:e=>`data-testid dashboard-row-title-${e}`},UserProfile:{profileSaveButton:"data-testid-user-profile-save",preferencesSaveButton:"data-testid-shared-prefs-save",orgsTable:"data-testid-user-orgs-table",sessionsTable:"data-testid-user-sessions-table",extensionPointTabs:"data-testid-extension-point-tabs",extensionPointTab:e=>`data-testid-extension-point-tab-${e}`},FileUpload:{inputField:"data-testid-file-upload-input-field",fileNameSpan:"data-testid-file-upload-file-name"},DebugOverlay:{wrapper:"debug-overlay"},OrgRolePicker:{input:"Role"},AnalyticsToolbarButton:{button:"Dashboard insights"},Variables:{variableOption:"data-testid variable-option"},Annotations:{annotationsTypeInput:"annotations-type-input",annotationsChoosePanelInput:"choose-panels-input"},Tooltip:{container:"data-testid tooltip"}},tn={pages:{Login:{url:"/login",username:"data-testid Username input field",password:"data-testid Password input field",submit:"data-testid Login button",skip:"data-testid Skip change password button"},Home:{url:"/"},DataSource:{name:"data-testid Data source settings page name input field",delete:"Data source settings page Delete button",readOnly:"data-testid Data source settings page read only message",saveAndTest:"data-testid Data source settings page Save and Test button",alert:"data-testid Data source settings page Alert"},DataSources:{url:"/datasources",dataSources:e=>`Data source list item ${e}`},EditDataSource:{url:e=>`/datasources/edit/${e}`,settings:"Datasource settings page basic settings"},AddDataSource:{url:"/datasources/new",dataSourcePlugins:e=>`Data source plugin item ${e}`,dataSourcePluginsV2:e=>`Add new data source ${e}`},ConfirmModal:{delete:"data-testid Confirm Modal Danger Button"},AddDashboard:{url:"/dashboard/new",itemButton:e=>`data-testid ${e}`,addNewPanel:"Add new panel",addNewRow:"Add new row",addNewPanelLibrary:"Add new panel from panel library"},Dashboard:{url:e=>`/d/${e}`,DashNav:{nav:"Dashboard navigation",navV2:"data-testid Dashboard navigation",publicDashboardTag:"data-testid public dashboard tag",shareButton:"data-testid share-button"},SubMenu:{submenu:"Dashboard submenu",submenuItem:"data-testid template variable",submenuItemLabels:e=>`data-testid Dashboard template variables submenu Label ${e}`,submenuItemValueDropDownValueLinkTexts:e=>`data-testid Dashboard template variables Variable Value DropDown value link text ${e}`,submenuItemValueDropDownDropDown:"Variable options",submenuItemValueDropDownOptionTexts:e=>`data-testid Dashboard template variables Variable Value DropDown option text ${e}`,Annotations:{annotationsWrapper:"data-testid annotation-wrapper",annotationLabel:e=>`data-testid Dashboard annotations submenu Label ${e}`,annotationToggle:e=>`data-testid Dashboard annotations submenu Toggle ${e}`}},Settings:{Actions:{close:"data-testid dashboard-settings-close"},General:{deleteDashBoard:"Dashboard settings page delete dashboard button",sectionItems:e=>`Dashboard settings section item ${e}`,saveDashBoard:"Dashboard settings aside actions Save button",saveAsDashBoard:"Dashboard settings aside actions Save As button",timezone:"Time zone picker select container",title:"Tab General"},Annotations:{List:{addAnnotationCTA:en.CallToActionCard.button("Add annotation query"),addAnnotationCTAV2:en.CallToActionCard.buttonV2("Add annotation query"),annotations:"data-testid list-annotations"},Settings:{name:"Annotations settings name input"},NewAnnotation:{panelFilterSelect:"data-testid annotations-panel-filter",showInLabel:"show-in-label",previewInDashboard:"data-testid annotations-preview",delete:"data-testid annotations-delete",apply:"data-testid annotations-apply",enable:"data-testid annotation-enable",hide:"data-testid annotation-hide"}},Variables:{List:{addVariableCTA:en.CallToActionCard.button("Add variable"),addVariableCTAV2:en.CallToActionCard.buttonV2("Add variable"),newButton:"Variable editor New variable button",table:"Variable editor Table",tableRowNameFields:e=>`Variable editor Table Name field ${e}`,tableRowDefinitionFields:e=>`Variable editor Table Definition field ${e}`,tableRowArrowUpButtons:e=>`Variable editor Table ArrowUp button ${e}`,tableRowArrowDownButtons:e=>`Variable editor Table ArrowDown button ${e}`,tableRowDuplicateButtons:e=>`Variable editor Table Duplicate button ${e}`,tableRowRemoveButtons:e=>`Variable editor Table Remove button ${e}`},Edit:{General:{headerLink:"Variable editor Header link",modeLabelNew:"Variable editor Header mode New",modeLabelEdit:"Variable editor Header mode Edit",generalNameInput:"Variable editor Form Name field",generalNameInputV2:"data-testid Variable editor Form Name field",generalTypeSelect:"Variable editor Form Type select",generalTypeSelectV2:"data-testid Variable editor Form Type select",generalLabelInput:"Variable editor Form Label field",generalLabelInputV2:"data-testid Variable editor Form Label field",generalHideSelect:"Variable editor Form Hide select",generalHideSelectV2:"data-testid Variable editor Form Hide select",selectionOptionsMultiSwitch:"data-testid Variable editor Form Multi switch",selectionOptionsIncludeAllSwitch:"data-testid Variable editor Form IncludeAll switch",selectionOptionsCustomAllInput:"data-testid Variable editor Form IncludeAll field",previewOfValuesOption:"data-testid Variable editor Preview of Values option",submitButton:"data-testid Variable editor Run Query button",applyButton:"data-testid Variable editor Apply button"},QueryVariable:{queryOptionsDataSourceSelect:en.DataSourcePicker.inputV2,queryOptionsRefreshSelect:"Variable editor Form Query Refresh select",queryOptionsRefreshSelectV2:"data-testid Variable editor Form Query Refresh select",queryOptionsRegExInput:"Variable editor Form Query RegEx field",queryOptionsRegExInputV2:"data-testid Variable editor Form Query RegEx field",queryOptionsSortSelect:"Variable editor Form Query Sort select",queryOptionsSortSelectV2:"data-testid Variable editor Form Query Sort select",queryOptionsQueryInput:"data-testid Variable editor Form Default Variable Query Editor textarea",valueGroupsTagsEnabledSwitch:"Variable editor Form Query UseTags switch",valueGroupsTagsTagsQueryInput:"Variable editor Form Query TagsQuery field",valueGroupsTagsTagsValuesQueryInput:"Variable editor Form Query TagsValuesQuery field"},ConstantVariable:{constantOptionsQueryInput:"Variable editor Form Constant Query field",constantOptionsQueryInputV2:"data-testid Variable editor Form Constant Query field"},DatasourceVariable:{datasourceSelect:"data-testid datasource variable datasource type"},TextBoxVariable:{textBoxOptionsQueryInput:"Variable editor Form TextBox Query field",textBoxOptionsQueryInputV2:"data-testid Variable editor Form TextBox Query field"},CustomVariable:{customValueInput:"data-testid custom-variable-input"},IntervalVariable:{intervalsValueInput:"data-testid interval variable intervals input",autoEnabledCheckbox:"data-testid interval variable auto value checkbox",stepCountIntervalSelect:"data-testid interval variable step count input",minIntervalInput:"data-testid interval variable mininum interval input"},GroupByVariable:{dataSourceSelect:en.DataSourcePicker.inputV2,infoText:"data-testid group by variable info text",modeToggle:"data-testid group by variable mode toggle"},AdHocFiltersVariable:{datasourceSelect:en.DataSourcePicker.inputV2,infoText:"data-testid ad-hoc filters variable info text"}}}},Annotations:{marker:"data-testid annotation-marker"},Rows:{Repeated:{ConfigSection:{warningMessage:"data-testid Repeated rows warning message"}}}},Dashboards:{url:"/dashboards",dashboards:e=>`Dashboard search item ${e}`},SaveDashboardAsModal:{newName:"Save dashboard title field",save:"Save dashboard button"},SaveDashboardModal:{save:"Dashboard settings Save Dashboard Modal Save button",saveVariables:"Dashboard settings Save Dashboard Modal Save variables checkbox",saveTimerange:"Dashboard settings Save Dashboard Modal Save timerange checkbox"},SharePanelModal:{linkToRenderedImage:"Link to rendered image"},ShareDashboardModal:{PublicDashboard:{Tab:"Tab Public dashboard",WillBePublicCheckbox:"data-testid public dashboard will be public checkbox",LimitedDSCheckbox:"data-testid public dashboard limited datasources checkbox",CostIncreaseCheckbox:"data-testid public dashboard cost may increase checkbox",PauseSwitch:"data-testid public dashboard pause switch",EnableAnnotationsSwitch:"data-testid public dashboard on off switch for annotations",CreateButton:"data-testid public dashboard create button",DeleteButton:"data-testid public dashboard delete button",CopyUrlInput:"data-testid public dashboard copy url input",CopyUrlButton:"data-testid public dashboard copy url button",SettingsDropdown:"data-testid public dashboard settings dropdown",TemplateVariablesWarningAlert:"data-testid public dashboard disabled template variables alert",UnsupportedDataSourcesWarningAlert:"data-testid public dashboard unsupported data sources alert",NoUpsertPermissionsWarningAlert:"data-testid public dashboard no upsert permissions alert",EnableTimeRangeSwitch:"data-testid public dashboard on off switch for time range",EmailSharingConfiguration:{Container:"data-testid email sharing config container",ShareType:"data-testid public dashboard share type",EmailSharingInput:"data-testid public dashboard email sharing input",EmailSharingInviteButton:"data-testid public dashboard email sharing invite button",EmailSharingList:"data-testid public dashboard email sharing list",DeleteEmail:"data-testid public dashboard delete email button",ReshareLink:"data-testid public dashboard reshare link button"}}},PublicDashboard:{page:"public-dashboard-page",NotAvailable:{container:"public-dashboard-not-available",title:"public-dashboard-title",pausedDescription:"public-dashboard-paused-description"}},RequestViewAccess:{form:"request-view-access-form",recipientInput:"request-view-access-recipient-input",submitButton:"request-view-access-submit-button"},PublicDashboardConfirmAccess:{submitButton:"data-testid confirm-access-submit-button"},Explore:{url:"/explore",General:{container:"data-testid Explore",graph:"Explore Graph",table:"Explore Table",scrollView:"data-testid explorer scroll view"}},SoloPanel:{url:e=>`/d-solo/${e}`},PluginsList:{page:"Plugins list page",list:"Plugins list",listItem:"Plugins list item",signatureErrorNotice:"data-testid Unsigned plugins notice"},PluginPage:{page:"Plugin page",signatureInfo:"data-testid Plugin signature info",disabledInfo:"data-testid Plugin disabled info"},PlaylistForm:{name:"Playlist name",interval:"Playlist interval",itemDelete:"data-testid playlist-form-delete-item"},BrowseDashboards:{table:{body:"data-testid browse-dashboards-table",row:e=>`data-testid browse dashboards row ${e}`,checkbox:e=>`data-testid ${e} checkbox`},NewFolderForm:{form:"data-testid new folder form",nameInput:"data-testid new-folder-name-input",createButton:"data-testid new-folder-create-button"}},Search:{url:"/?search=openn",FolderView:{url:"/?search=open&layout=folders"}},PublicDashboards:{ListItem:{linkButton:"public-dashboard-link-button",configButton:"public-dashboard-configuration-button",trashcanButton:"public-dashboard-remove-button",pauseSwitch:"data-testid public dashboard pause switch"}},UserListPage:{tabs:{allUsers:"data-testid all-users-tab",orgUsers:"data-testid org-users-tab",anonUserDevices:"data-testid anon-user-devices-tab",publicDashboardsUsers:"data-testid public-dashboards-users-tab",users:"data-testid users-tab"},org:{url:"/org/users"},admin:{url:"/admin/users"},publicDashboards:{container:"data-testid public-dashboards-users-list"},UserListAdminPage:{container:"data-testid user-list-admin-page"},UsersListPage:{container:"data-testid users-list-page"},UserAnonListPage:{container:"data-testid user-anon-list-page"},UsersListPublicDashboardsPage:{container:"data-testid users-list-public-dashboards-page",DashboardsListModal:{listItem:e=>`data-testid dashboards-list-item-${e}`}}},ProfilePage:{url:"/profile"}},components:en};var nn=n(6089);const rn=(e,t)=>e>t?1:ee.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),on="eexxaacctt",ln=/\p{P}/gu,un=["en",{numeric:!0,sensitivity:"base"}],dn=(e,t,n)=>e.replace("A-Z",t).replace("a-z",n),cn={unicode:!1,alpha:null,interSplit:"[^A-Za-z\\d']+",intraSplit:"[a-z][A-Z]",interBound:"[^A-Za-z\\d]",intraBound:"[A-Za-z]\\d|\\d[A-Za-z]|[a-z][A-Z]",interLft:0,interRgt:0,interChars:".",interIns:an,intraChars:"[a-z\\d']",intraIns:null,intraContr:"'[a-z]{1,2}\\b",intraMode:0,intraSlice:[1,an],intraSub:null,intraTrn:null,intraDel:null,intraFilt:(e,t,n)=>!0,toUpper:e=>e.toLocaleUpperCase(),toLower:e=>e.toLocaleLowerCase(),compare:null,sort:(e,t,n,r=rn)=>{let{idx:a,chars:i,terms:s,interLft2:o,interLft1:l,start:u,intraIns:d,interIns:c,cases:h}=e;return a.map(((e,t)=>t)).sort(((e,n)=>i[n]-i[e]||d[e]-d[n]||s[n]+o[n]+.5*l[n]-(s[e]+o[e]+.5*l[e])||c[e]-c[n]||u[e]-u[n]||h[n]-h[e]||r(t[a[e]],t[a[n]])))}},hn=(e,t)=>0==t?"":1==t?e+"??":t==an?e+"*?":e+`{0,${t}}?`,mn="(?:\\b|_)";function pn(e){e=Object.assign({},cn,e);let{unicode:t,interLft:n,interRgt:r,intraMode:a,intraSlice:i,intraIns:s,intraSub:o,intraTrn:l,intraDel:u,intraContr:d,intraSplit:c,interSplit:h,intraBound:m,interBound:p,intraChars:f,toUpper:_,toLower:y,compare:g}=e;s??=a,o??=a,l??=a,u??=a,g??="undefined"==typeof Intl?rn:new Intl.Collator(...un).compare;let v=e.letters??e.alpha;if(null!=v){let e=_(v),t=y(v);h=dn(h,e,t),c=dn(c,e,t),p=dn(p,e,t),m=dn(m,e,t),f=dn(f,e,t),d=dn(d,e,t)}let b=t?"u":"";const M='".+?"',w=new RegExp(M,"gi"+b),L=new RegExp(`(?:\\s+|^)-(?:${f}+|${M})`,"gi"+b);let{intraRules:k}=e;null==k&&(k=e=>{let t=cn.intraSlice,n=0,r=0,a=0,d=0;if(/[^\d]/.test(e)){let c=e.length;c<=4?c>=3&&(a=Math.min(l,1),4==c&&(n=Math.min(s,1))):(t=i,n=s,r=o,a=l,d=u)}return{intraSlice:t,intraIns:n,intraSub:r,intraTrn:a,intraDel:d}});let S=!!c,D=new RegExp(c,"g"+b),Y=new RegExp(h,"g"+b),T=new RegExp("^"+h+"|"+h+"$","g"+b),x=new RegExp(d,"gi"+b);const O=(e,t=!1)=>{let n=[];e=(e=e.replace(w,(e=>(n.push(e),on)))).replace(T,""),t||(e=y(e)),S&&(e=e.replace(D,(e=>e[0]+" "+e[1])));let r=0;return e.split(Y).filter((e=>""!=e)).map((e=>e===on?n[r++]:e))},j=/[^\d]+|\d+/g,P=(t,i=0,o=!1)=>{let l=O(t);if(0==l.length)return[];let u,d=Array(l.length).fill("");if(l=l.map(((e,t)=>e.replace(x,(e=>(d[t]=e,""))))),1==a)u=l.map(((e,t)=>{if('"'===e[0])return sn(e.slice(1,-1));let n="";for(let r of e.matchAll(j)){let e=r[0],{intraSlice:a,intraIns:i,intraSub:s,intraTrn:o,intraDel:l}=k(e);if(i+s+o+l==0)n+=e+d[t];else{let[r,u]=a,c=e.slice(0,r),h=e.slice(u),m=e.slice(r,u);1==i&&1==c.length&&c!=m[0]&&(c+="(?!"+c+")");let p=m.length,_=[e];if(s)for(let e=0;e0&&(e=")("+e+")("),u=l.map(((t,n)=>'"'===t[0]?sn(t.slice(1,-1)):t.split("").map(((e,t,n)=>(1==s&&0==t&&n.length>1&&e!=n[t+1]&&(e+="(?!"+e+")"),e))).join(e)+d[n]))}let c=2==n?mn:"",h=2==r?mn:"",m=h+hn(e.interChars,e.interIns)+c;return i>0?o?u=c+"("+u.join(")"+h+"|"+c+"(")+")"+h:(u="("+u.join(")("+m+")(")+")",u="(.??"+c+")"+u+"("+h+".*)"):(u=u.join(m),u=c+u+h),[new RegExp(u,"i"+b),l,d]},E=(e,t,n)=>{let[r]=P(t);if(null==r)return null;let a=[];if(null!=n)for(let t=0;t{let[s,o,l]=P(i,1),u=O(i,!0),[d]=P(i,2),c=o.length,h=Array(c),m=Array(c);for(let e=0;e=_){let e=y(l[a+1]).indexOf(s);e>-1&&(O.push(p,v,e,_),p+=I(l,a,e,_),i=s,v=_,j=!0,0==t&&(u=p))}if(g||j){let e=p-1,d=p+v,c=!1,h=!1;if(-1==e||H.test(o[e]))j&&M++,c=!0;else{if(2==n){f=!0;break}if(C&&R.test(o[e]+o[e+1]))j&&w++,c=!0;else if(1==n){let e=l[a+1],n=p+v;if(e.length>=_){let r,d=0,h=!1,m=new RegExp(s,"ig"+b);for(;r=m.exec(e);){d=r.index;let e=n+d,t=e-1;if(-1==t||H.test(o[t])){M++,h=!0;break}if(R.test(o[t]+o[e])){w++,h=!0;break}}h&&(c=!0,O.push(p,v,d,_),p+=I(l,a,d,_),i=s,v=_,j=!0,0==t&&(u=p))}if(!c){f=!0;break}}}if(d==o.length||H.test(o[d]))j&&L++,h=!0;else{if(2==r){f=!0;break}if(C&&R.test(o[d-1]+o[d]))j&&k++,h=!0;else if(1==r){f=!0;break}}j&&(S+=_,c&&h&&D++)}if(v>_&&(x+=v-_),t>0&&(T+=l[a-1].length),!e.intraFilt(s,i,p)){f=!0;break}t0?0:1/0,s=r-4;for(let t=2;t0&&(l.push(c,h),c=h=n)}h>c&&l.push(c,h),v++}}if(v{let a=e[t]+e[t+1].slice(0,n);return e[t-1]+=a,e[t]=e[t+1].slice(n,n+r),e[t+1]=e[t+1].slice(n+r),a.length};return{search:(...t)=>{let n=((t,n,r,a=1e3,i)=>{r=r?!0===r?5:r:0;let s=null,o=null,l=[];n=n.replace(L,(e=>{let t=e.trim().slice(1);return t='"'===t[0]?sn(t.slice(1,-1)):t.replace(ln,""),""!=t&&l.push(t),""}));let u,d=O(n);if(l.length>0){if(u=new RegExp(l.join("|"),"i"+b),0==d.length){let e=[];for(let n=0;n0){let e=O(n);if(e.length>1){let n=e.slice().sort(((e,t)=>t.length-e.length));for(let e=0;er)return[i,null,null];s=_n(e).map((e=>e.join(" "))),o=[];let a=new Set;for(let e=0;e!a.has(e))),r=E(t,s[e],n);for(let e=0;e0?i:E(t,n)]);let c=null,h=null;if(l.length>0&&(o=o.map((e=>e.filter((e=>!u.test(t[e])))))),o.reduce(((e,t)=>e+t.length),0)<=a){c={},h=[];for(let n=0;n0)for(let e=0;e{let e={A:"ÁÀÃÂÄĄ",a:"áàãâäą",E:"ÉÈÊËĖ",e:"éèêëę",I:"ÍÌÎÏĮ",i:"íìîïį",O:"ÓÒÔÕÖ",o:"óòôõö",U:"ÚÙÛÜŪŲ",u:"úùûüūų",C:"ÇČĆ",c:"çčć",L:"Ł",l:"ł",N:"ÑŃ",n:"ñń",S:"ŠŚ",s:"šś",Z:"ŻŹ",z:"żź"},t=new Map,n="";for(let r in e)e[r].split("").forEach((e=>{n+=e,t.set(e,r)}));let r=new RegExp(`[${n}]`,"g"),a=e=>t.get(e);return e=>{if("string"==typeof e)return e.replace(r,a);let t=Array(e.length);for(let n=0;nt?`${e}`:e,gn=(e,t)=>e+t;pn.latinize=fn,pn.permute=e=>_n([...Array(e.length).keys()]).sort(((e,t)=>{for(let n=0;nt.map((t=>e[t])))),pn.highlight=function(e,t,n=yn,r="",a=gn){r=a(r,n(e.substring(0,t[0]),!1))??r;for(let i=0;i25||Mn.split(n).length>5)for(let a=0;ae[i.idx[t]])):a.map((t=>e[t])))}return r}function Ln(e,t=!1){let n=e;t&&(n=[{value:et,label:Xe},...n]);const r=n.map((e=>e.label));return e=>wn(n,r,e)}var kn=Object.defineProperty,Sn=Object.defineProperties,Dn=Object.getOwnPropertyDescriptors,Yn=Object.getOwnPropertySymbols,Tn=Object.prototype.hasOwnProperty,xn=Object.prototype.propertyIsEnumerable,On=(e,t,n)=>t in e?kn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const jn=()=>!0,Pn=e=>"$__all"!==e.value,En=(e,t)=>e.length===t.filter(Pn).length?Xt.ToggleAllState.allSelected:0===e.length||1===e.length&&e[0]&&"$__all"===e[0].value?Xt.ToggleAllState.noneSelected:Xt.ToggleAllState.indeterminate;function Cn({model:e}){const{value:t,text:n,key:r,options:a,includeAll:i,isReadOnly:s,allowCustomValue:o=!0}=e.useState(),[l,u]=(0,w.useState)(""),[d,c]=(0,w.useState)(!1),h=function(e,t){return{value:e,label:null!=t?t:String(e)}}(t,String(n)),m=Lu.getQueryController(e),p=(0,w.useMemo)((()=>Ln(a,i)),[a,i])(l);return k().createElement(Xt.Select,{id:r,isValidNewOption:e=>e.trim().length>0,placeholder:"Select value",width:"auto",disabled:s,value:h,inputValue:l,allowCustomValue:o,virtualized:!0,filterOption:jn,tabSelectsValue:!1,onInputChange:(t,{action:n})=>"input-change"===n?(u(t),e.onSearchChange&&e.onSearchChange(t),t):t,onOpenMenu:()=>{d&&u(String(n))},onCloseMenu:()=>{u("")},options:p,"data-testid":tn.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts(`${t}`),onChange:t=>{e.changeValueTo(t.value,t.label,!0),null==m||m.startProfile("VariableValueSelect"),d!==t.__isNew__&&c(t.__isNew__)}})}function Hn({model:e}){const{value:t,options:n,key:r,maxVisibleValues:a,noValueOnClear:i,includeAll:s,isReadOnly:o,allowCustomValue:l=!0}=e.useState(),u=(0,w.useMemo)((()=>(0,te.isArray)(t)?t:[t]),[t]),[d,c]=(0,w.useState)(u),[h,m]=(0,w.useState)(""),p=Lu.getQueryController(e),f=(0,w.useMemo)((()=>Ln(n,s)),[n,s]);(0,w.useEffect)((()=>{c(u)}),[u]);const _=n.length>0?"Select value":"",y=f(h);return k().createElement(Xt.MultiSelect,{id:r,placeholder:_,width:"auto",inputValue:h,disabled:o,value:d,noMultiValueWrap:!0,maxVisibleValues:null!=a?a:5,tabSelectsValue:!1,virtualized:!0,allowCustomValue:l,toggleAllOptions:{enabled:!0,optionsFilter:Pn,determineToggleAllState:En},options:y,closeMenuOnSelect:!1,components:{Option:Rn},isClearable:!0,hideSelectedOptions:!1,onInputChange:(t,{action:n})=>"input-change"===n?(m(t),e.onSearchChange&&e.onSearchChange(t),t):"input-blur"===n?(m(""),""):h,onBlur:()=>{e.changeValueTo(d,void 0,!0),null==p||p.startProfile("VariableValueSelectMulti")},filterOption:jn,"data-testid":tn.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts(`${d}`),onChange:(t,n)=>{"clear"===n.action&&i&&e.changeValueTo([],void 0,!0),c(t.map((e=>e.value)))}})}const Rn=({children:e,data:t,innerProps:n,innerRef:r,isFocused:a,isSelected:i,indeterminate:s,renderOptionLabel:o})=>{var l;const u=((e,t)=>{var n={};for(var r in e)Tn.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&Yn)for(var r of Yn(e))t.indexOf(r)<0&&xn.call(e,r)&&(n[r]=e[r]);return n})(n,["onMouseMove","onMouseOver"]),d=(0,Xt.useTheme2)(),c=(0,Xt.getSelectStyles)(d),h=(0,Xt.useStyles2)(An);return k().createElement("div",(m=((e,t)=>{for(var n in t||(t={}))Tn.call(t,n)&&On(e,n,t[n]);if(Yn)for(var n of Yn(t))xn.call(t,n)&&On(e,n,t[n]);return e})({ref:r,className:(0,nn.cx)(c.option,a&&c.optionFocused)},u),p={"data-testid":"data-testid Select option",title:t.title},Sn(m,Dn(p))),k().createElement("div",{className:h.checkbox},k().createElement(Xt.Checkbox,{indeterminate:s,value:i})),k().createElement("div",{className:c.optionBody,"data-testid":tn.pages.Dashboard.SubMenu.submenuItemValueDropDownOptionTexts(null!=(l=t.label)?l:String(t.value))},k().createElement("span",null,e)));var m,p};Rn.displayName="SelectMenuOptions";const An=e=>({checkbox:(0,nn.css)({marginRight:e.spacing(2)})});function In(e){return e.state.isMulti?k().createElement(Hn,{model:e}):k().createElement(Cn,{model:e})}class Fn{constructor(e){this._sceneObject=e}getKey(){return`var-${this._sceneObject.state.name}`}getKeys(){return this._sceneObject.state.skipUrlSync?[]:[this.getKey()]}getUrlState(){return this._sceneObject.state.skipUrlSync?{}:{[this.getKey()]:(e=this._sceneObject.state.value,t=this._sceneObject.state.text,e=Array.isArray(e)?e:[e],t=Array.isArray(t)?t:[t],e.map(((e,n)=>{if(null==e)return"";e=String(e);let r=t[n];return r=null==r?e:String(r),Ol(e,r)})))};var e,t}updateFromUrl(e){let t=e[this.getKey()];if(null!=t){this._sceneObject.isActive||(this._sceneObject.skipNextValidation=!0);const{values:e,texts:r}=(n=t,(n=Array.isArray(n)?n:[n]).reduce(((e,t)=>{const[n,r]=(null!=t?t:"").split(",");return e.values.push(xl(n)),e.texts.push(xl(null!=r?r:n)),e}),{values:[],texts:[]}));this._sceneObject.changeValueTo(e,r)}var n}}function Nn(e){const t=e.getRoot();return"enrichFiltersRequest"in t?t.enrichFiltersRequest(e):null}var Wn,zn=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)};class Vn{constructor(e){((e,t)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,void 0)})(this,Wn),this.text="__sceneObject",this.valueOf=()=>{return zn(this,e=Wn,"read from private field"),e.get(this);var e},((e,t,n)=>{zn(e,t,"write to private field"),t.set(e,n)})(this,Wn,e)}toString(){}get value(){return this}}function Bn(e){return function(e){const t=e.match(/^(\d+)\.(\d+)\.(\d+)/);if(!t)return!1;const n=parseInt(t[1],10),r=parseInt(t[2],10),a=parseInt(t[3],10);return 11===n?0===r&&a>=4||1===r&&a>=2||r>1:10===n?4===r&&a>=8||r>=5:n>11}(s.config.buildInfo.version)?new Vn(e):{value:e,text:"__sceneObject"}}Wn=new WeakMap;var Un=Object.defineProperty,$n=Object.defineProperties,qn=Object.getOwnPropertyDescriptors,Gn=Object.getOwnPropertySymbols,Zn=Object.prototype.hasOwnProperty,Jn=Object.prototype.propertyIsEnumerable,Qn=(e,t,n)=>t in e?Un(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Kn=(e,t)=>{for(var n in t||(t={}))Zn.call(t,n)&&Qn(e,n,t[n]);if(Gn)for(var n of Gn(t))Jn.call(t,n)&&Qn(e,n,t[n]);return e};class Xn extends lt{constructor(e){var t;super((t=Kn({isMulti:!0,name:"",value:[],text:[],options:[],datasource:null,baseFilters:[],applyMode:"auto",layout:"horizontal",type:"groupby"},e),$n(t,qn({noValueOnClear:!0})))),this.isLazy=!0,this._urlSync=new Fn(this),this._getKeys=async e=>{var t,n,r,a;const i=await(null==(n=(t=this.state).getTagKeysProvider)?void 0:n.call(t,this,null));if(i&&i.replace)return i.values;if(this.state.defaultOptions)return this.state.defaultOptions.concat(jl(null!=(r=null==i?void 0:i.values)?r:[]));if(!e.getTagKeys)return[];const s=Sl(this),o=this.state.baseFilters||[],l=Lu.getTimeRange(this).state.value,u=await e.getTagKeys(Kn({filters:o,queries:s,timeRange:l,scopes:null==(a=this._scopesBridge)?void 0:a.getValue()},Nn(this)));Pl(u)&&this.setState({error:u.error.message});let d=jl(u);i&&(d=d.concat(jl(i.values)));const c=this.state.tagKeyRegexFilter;return c&&(d=d.filter((e=>e.text.match(c)))),d},"auto"===this.state.applyMode&&this.addActivationHandler((()=>(Kt.add(this),()=>Kt.delete(this))))}validateAndUpdate(){return this.getValueOptions({}).pipe((0,S.map)((e=>(this._updateValueGivenNewOptions(e),{}))))}_updateValueGivenNewOptions(e){const{value:t,text:n}=this.state,r={options:e,loading:!1,value:null!=t?t:[],text:null!=n?n:[]};this.setState(r)}getValueOptions(e){return this.state.defaultOptions?(0,S.of)(this.state.defaultOptions.map((e=>({label:e.text,value:String(e.value),group:e.group})))):(this.setState({loading:!0,error:null}),(0,S.from)(Tt(this.state.datasource,{__sceneObject:Bn(this)})).pipe((0,S.mergeMap)((e=>(0,S.from)(this._getKeys(e)).pipe((0,S.tap)((e=>{Pl(e)&&this.setState({error:e.error.message})})),(0,S.map)((e=>jl(e))),(0,S.take)(1),(0,S.mergeMap)((e=>{const t=e.map((e=>({label:e.text,value:e.value?String(e.value):e.text,group:e.group})));return(0,S.of)(t)})))))))}getDefaultMultiState(e){return{value:[],text:[]}}}Xn.Component=function({model:e}){const{value:t,text:n,key:r,isMulti:a=!0,maxVisibleValues:i,noValueOnClear:s,options:o,includeAll:l,allowCustomValue:u=!0}=e.useState(),d=(0,w.useMemo)((()=>{const e=(0,te.isArray)(t)?t:[t],r=(0,te.isArray)(n)?n:[n];return e.map(((e,t)=>{var n;return{value:e,label:String(null!=(n=r[t])?n:e)}}))}),[t,n]),[c,h]=(0,w.useState)(!1),[m,p]=(0,w.useState)(!1),[f,_]=(0,w.useState)(""),[y,g]=(0,w.useState)(d),v=(0,w.useMemo)((()=>Ln(o,l)),[o,l]);(0,w.useEffect)((()=>{g(d)}),[d]);const b=(t,{action:n})=>"input-change"===n?(_(t),e.onSearchChange&&e.onSearchChange(t),t):"input-blur"===n?(_(""),""):f,M=(0,w.useMemo)((()=>El(v(f).map(tr))),[v,f]);return a?k().createElement(Xt.MultiSelect,{"aria-label":"Group by selector","data-testid":`GroupBySelect-${r}`,id:r,placeholder:"Select value",width:"auto",allowCustomValue:u,inputValue:f,value:y,noMultiValueWrap:!0,maxVisibleValues:null!=i?i:5,tabSelectsValue:!1,virtualized:!0,options:M,filterOption:er,closeMenuOnSelect:!1,isOpen:m,isClearable:!0,hideSelectedOptions:!1,isLoading:c,components:{Option:Rn},onInputChange:b,onBlur:()=>{e.changeValueTo(y.map((e=>e.value)),y.map((e=>e.label)),!0)},onChange:(t,n)=>{"clear"===n.action&&s&&e.changeValueTo([],void 0,!0),g(t)},onOpenMenu:async()=>{h(!0),await(0,S.lastValueFrom)(e.validateAndUpdate()),h(!1),p(!0)},onCloseMenu:()=>{p(!1)}}):k().createElement(Xt.Select,{"aria-label":"Group by selector","data-testid":`GroupBySelect-${r}`,id:r,placeholder:"Select value",width:"auto",inputValue:f,value:y,allowCustomValue:u,noMultiValueWrap:!0,maxVisibleValues:null!=i?i:5,tabSelectsValue:!1,virtualized:!0,options:M,filterOption:er,closeMenuOnSelect:!0,isOpen:m,isClearable:!0,hideSelectedOptions:!1,noValueOnClear:!0,isLoading:c,onInputChange:b,onChange:(t,n)=>{if("clear"===n.action)return g([]),void(s&&e.changeValueTo([]));(null==t?void 0:t.value)&&(g([t]),e.changeValueTo([t.value],t.label?[t.label]:void 0))},onOpenMenu:async()=>{h(!0),await(0,S.lastValueFrom)(e.validateAndUpdate()),h(!1),p(!0)},onCloseMenu:()=>{p(!1)}})};const er=()=>!0;function tr(e){const{label:t,value:n,group:r}=e,a={label:t,value:n};return r&&(a.group=r),a}function nr(e){return k().createElement(Xt.Tooltip,{content:"Cancel query"},k().createElement(Xt.Icon,{className:"spin-clockwise",name:"sync",size:"xs",role:"button",onMouseDown:t=>{e.onCancel(t)}}))}function rr(e){const t=(0,Xt.useStyles2)(ar),n=(0,Xt.useTheme2)(),r="vertical"===e.layout,a=Boolean(e.isLoading)?k().createElement("div",{style:{marginLeft:n.spacing(1),marginTop:"-1px"},"aria-label":tn.components.LoadingIndicator.icon},k().createElement(nr,{onCancel:t=>{var n;t.preventDefault(),t.stopPropagation(),null==(n=e.onCancel)||n.call(e)}})):null;let i=null;e.error&&(i=k().createElement(Xt.Tooltip,{content:e.error,placement:"bottom"},k().createElement(Xt.Icon,{className:t.errorIcon,name:"exclamation-triangle"})));let s=null;e.description&&(s=k().createElement(Xt.Tooltip,{content:e.description,placement:r?"top":"bottom"},k().createElement(Xt.Icon,{className:t.normalIcon,name:"info-circle"})));const o="string"==typeof e.label?tn.pages.Dashboard.SubMenu.submenuItemLabels(e.label):"";let l;return l=r?k().createElement("label",{className:t.verticalLabel,"data-testid":o,htmlFor:e.htmlFor},e.label,s,i,e.icon&&k().createElement(Xt.Icon,{name:e.icon,className:t.normalIcon}),a,e.onRemove&&k().createElement(Xt.IconButton,{variant:"secondary",size:"xs",name:"times",onClick:e.onRemove,tooltip:"Remove"})):k().createElement("label",{className:t.horizontalLabel,"data-testid":o,htmlFor:e.htmlFor},i,e.icon&&k().createElement(Xt.Icon,{name:e.icon,className:t.normalIcon}),e.label,s,a),l}const ar=e=>({horizontalLabel:(0,nn.css)({background:e.isDark?e.colors.background.primary:e.colors.background.secondary,display:"flex",alignItems:"center",padding:e.spacing(0,1),fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.bodySmall.fontSize,height:e.spacing(e.components.height.md),lineHeight:e.spacing(e.components.height.md),borderRadius:`${e.shape.radius.default} 0 0 ${e.shape.radius.default}`,border:`1px solid ${e.components.input.borderColor}`,position:"relative",right:-1,whiteSpace:"nowrap",gap:e.spacing(.5)}),verticalLabel:(0,nn.css)({display:"flex",alignItems:"center",fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.bodySmall.fontSize,lineHeight:e.typography.bodySmall.lineHeight,whiteSpace:"nowrap",marginBottom:e.spacing(.5),gap:e.spacing(1)}),errorIcon:(0,nn.css)({color:e.colors.error.text}),normalIcon:(0,nn.css)({color:e.colors.text.secondary})});function ir(e){const t=e.map((e=>{var t;return null!=(t=e.label)?t:String(e.value)}));return n=>wn(e,t,n)}var sr=Object.defineProperty,or=Object.getOwnPropertySymbols,lr=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable,dr=(e,t,n)=>t in e?sr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function cr(e,t){return""!==e?{value:e,label:t||e}:null}const hr=()=>!0;function mr({filter:e,model:t}){var n,r,a,i,s;const o=(0,Xt.useStyles2)(pr),[l,u]=(0,w.useState)([]),[d,c]=(0,w.useState)([]),[h,m]=(0,w.useState)(!1),[p,f]=(0,w.useState)(!1),[_,y]=(0,w.useState)(!1),[g,v]=(0,w.useState)(!1),[b,M]=(0,w.useState)(!1),[L,S]=(0,w.useState)(""),[D,Y]=(0,w.useState)(!1),[T,x]=(0,w.useState)(e.values?e.values.map(((t,n)=>{var r;return cr(t,null==(r=e.valueLabels)?void 0:r[n])})):[]),O=rl(e.operator),j=cr(e.key,e.keyLabel),P=cr(e.value,null==(n=e.valueLabels)?void 0:n[0]),E=(0,w.useMemo)((()=>ir(d)),[d]),C=t.state.onAddCustomValue,H=(0,w.useMemo)((()=>El(E(L))),[E,L]),R={isMulti:!0,value:T,components:{Option:Rn},hideSelectedOptions:!1,closeMenuOnSelect:!1,openMenuOnFocus:!1,onChange:e=>{x(e),e.some((e=>e.__isNew__))&&S("")},onBlur:()=>{var n,r;t._updateFilter(e,{value:null!=(r=null==(n=T[0])?void 0:n.value)?r:"",values:T.map((e=>e.value)),valueLabels:T.map((e=>e.label))})}},A=k().createElement(Xt.Select,((e,t)=>{for(var n in t||(t={}))lr.call(t,n)&&dr(e,n,t[n]);if(or)for(var n of or(t))ur.call(t,n)&&dr(e,n,t[n]);return e})({virtualized:!0,allowCustomValue:null==(r=t.state.allowCustomValue)||r,isValidNewOption:e=>e.trim().length>0,allowCreateWhileLoading:!0,formatCreateLabel:e=>`Use custom value: ${e}`,disabled:t.state.readOnly,className:(0,nn.cx)(o.value,g?o.widthWhenOpen:void 0),width:"auto",value:P,filterOption:hr,placeholder:"Select value",options:H,inputValue:L,onInputChange:(e,{action:t})=>("input-change"===t&&S(e),e),onChange:n=>{C&&n.__isNew__?t._updateFilter(e,C(n,e)):t._updateFilter(e,{value:n.value,valueLabels:n.label?[n.label]:[n.value]}),D!==n.__isNew__&&Y(n.__isNew__)},isOpen:g&&!p,isLoading:p,openMenuOnFocus:!0,onOpenMenu:async()=>{var n;f(!0),v(!0);const r=await t._getValuesFor(e);f(!1),c(r),D&&S(null!=(n=null==P?void 0:P.label)?n:"")},onCloseMenu:()=>{v(!1),S("")}},O&&R)),I=k().createElement(Xt.Select,{key:p?"loading":"loaded",disabled:t.state.readOnly,className:(0,nn.cx)(o.key,_?o.widthWhenOpen:void 0),width:"auto",allowCustomValue:null==(a=t.state.allowCustomValue)||a,value:j,placeholder:"Select label",options:El(l),onChange:n=>{t._updateFilter(e,{key:n.value,keyLabel:n.label,value:"",valueLabels:[""],values:void 0}),x([])},autoFocus:""===e.key,isOpen:_&&!h,isLoading:h,onOpenMenu:async()=>{y(!0),m(!0);const n=await t._getKeys(e.key);m(!1),u(n)},onCloseMenu:()=>{y(!1)},onBlur:()=>{""===e.key&&t._removeFilter(e)},openMenuOnFocus:!0}),F=k().createElement(Xt.Select,{className:(0,nn.cx)(o.operator,{[o.widthWhenOpen]:b}),value:e.operator,disabled:t.state.readOnly,options:t._getOperators(),onChange:n=>{var r,a;const i=e.operator,s=n.value,o={operator:s};rl(i)&&!rl(s)?(o.value="",o.valueLabels=[""],o.values=void 0,x([])):!rl(i)&&rl(s)&&e.value&&(o.values=[e.value],x([{value:e.value,label:null!=(a=null==(r=e.valueLabels)?void 0:r[0])?a:e.value}])),t._updateFilter(e,o)},onOpenMenu:()=>{M(!0)},onCloseMenu:()=>{M(!1)}});if("vertical"===t.state.layout){if(e.key){const n=k().createElement(rr,{layout:"vertical",label:null!=(i=e.key)?i:"",onRemove:()=>t._removeFilter(e)});return k().createElement(Xt.Field,{label:n,"data-testid":`AdHocFilter-${e.key}`,className:o.field},k().createElement("div",{className:o.wrapper},F,A))}return k().createElement(Xt.Field,{label:"Select label","data-testid":`AdHocFilter-${e.key}`,className:o.field},I)}return k().createElement("div",{className:o.wrapper,"data-testid":`AdHocFilter-${e.key}`},I,F,A,k().createElement(Xt.Button,{variant:"secondary","aria-label":"Remove filter",title:"Remove filter",className:o.removeButton,icon:"times","data-testid":`AdHocFilter-remove-${null!=(s=e.key)?s:""}`,onClick:()=>t._removeFilter(e)}))}const pr=e=>({field:(0,nn.css)({marginBottom:0}),wrapper:(0,nn.css)({display:"flex","> *":{"&:not(:first-child)":{marginLeft:-1},"&:first-child":{borderTopRightRadius:0,borderBottomRightRadius:0},"&:last-child":{borderTopLeftRadius:0,borderBottomLeftRadius:0},"&:not(:first-child):not(:last-child)":{borderRadius:0},position:"relative",zIndex:0,"&:hover":{zIndex:1},"&:focus-within":{zIndex:2}}}),widthWhenOpen:(0,nn.css)({minWidth:e.spacing(16)}),value:(0,nn.css)({flexBasis:"content",flexShrink:1,minWidth:"90px"}),key:(0,nn.css)({flexBasis:"content",minWidth:"90px",flexShrink:1}),operator:(0,nn.css)({flexShrink:0,flexBasis:"content"}),removeButton:(0,nn.css)({paddingLeft:e.spacing(1.5),paddingRight:e.spacing(1.5),borderLeft:"none",width:e.spacing(3),marginRight:e.spacing(1),boxSizing:"border-box",position:"relative",left:"1px"})});function fr({model:e,addFilterButtonText:t}){const{_wip:n}=e.useState();return n?k().createElement(mr,{filter:n,model:e}):k().createElement(Xt.Button,{variant:"secondary",icon:"plus",title:"Add filter","aria-label":"Add filter","data-testid":"AdHocFilter-add",onClick:()=>e._addWip()},t)}class _r{constructor(e){this._variable=e}getKey(){return`var-${this._variable.state.name}`}getKeys(){return[this.getKey()]}getUrlState(){const e=this._variable.state.filters,t=this._variable.state.baseFilters;let n=[];return 0===e.length&&0===(null==t?void 0:t.length)?{[this.getKey()]:[""]}:(e.length&&n.push(...e.filter(nl).filter((e=>!e.hidden)).map((e=>yr(e).map(Dl).join("|")))),(null==t?void 0:t.length)&&n.push(...null==t?void 0:t.filter(nl).filter((e=>!e.hidden&&e.origin&&e.originalValue)).map((e=>{var t,n;return yr(e).map(Tl).join("|").concat(`#${null!=(n=null==(t=e.originalValue)?void 0:t.map(Tl).join("|"))?n:""}#${e.origin}`)}))),{[this.getKey()]:n.length?n:[""]})}updateFromUrl(e){const t=e[this.getKey()];if(null!=t&&t){const e=function(e){if(Array.isArray(e))return e.map(gr).filter(vr);const t=gr(e);return null===t?[]:[t]}(t);this._variable.setState({filters:e.filter((e=>!e.origin)),baseFilters:e.filter((e=>e.origin))})}}}function yr(e){var t;const n=[Ol(e.key,e.keyLabel),e.operator];return rl(e.operator)?e.values.forEach(((t,r)=>{var a;n.push(Ol(t,null==(a=e.valueLabels)?void 0:a[r]))})):n.push(Ol(e.value,null==(t=e.valueLabels)?void 0:t[0])),n}function gr(e){var t;if("string"!=typeof e||0===e.length)return null;const[n,r,a]=e.split("#"),[i,s,o,l,...u]=n.split("|").reduce(((e,t)=>{const[n,r]=t.split(",");return e.push(n,null!=r?r:n),e}),[]).map(xl);return{key:i,keyLabel:s,operator:o,value:u[0],values:rl(o)?u.filter(((e,t)=>t%2==0)):void 0,valueLabels:u.filter(((e,t)=>t%2==1)),condition:"",origin:(d=a,d===Jo.Scopes||d===Jo.Dashboards?a:void 0),originalValue:r&&r.length?null!=(t=r.split("|"))?t:[r]:void 0};var d}function vr(e){return null!==e&&"string"==typeof e.key&&"string"==typeof e.value}function br(){return"undefined"!=typeof window}function Mr(e){return kr(e)?(e.nodeName||"").toLowerCase():"#document"}function wr(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function Lr(e){var t;return null==(t=(kr(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function kr(e){return!!br()&&(e instanceof Node||e instanceof wr(e).Node)}function Sr(e){return!!br()&&(e instanceof Element||e instanceof wr(e).Element)}function Dr(e){return!!br()&&(e instanceof HTMLElement||e instanceof wr(e).HTMLElement)}function Yr(e){return!(!br()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof wr(e).ShadowRoot)}function Tr(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=Cr(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(a)}function xr(e){return["table","td","th"].includes(Mr(e))}function Or(e){return[":popover-open",":modal"].some((t=>{try{return e.matches(t)}catch(e){return!1}}))}function jr(e){const t=Pr(),n=Sr(e)?Cr(e):e;return["transform","translate","scale","rotate","perspective"].some((e=>!!n[e]&&"none"!==n[e]))||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||["transform","translate","scale","rotate","perspective","filter"].some((e=>(n.willChange||"").includes(e)))||["paint","layout","strict","content"].some((e=>(n.contain||"").includes(e)))}function Pr(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function Er(e){return["html","body","#document"].includes(Mr(e))}function Cr(e){return wr(e).getComputedStyle(e)}function Hr(e){return Sr(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Rr(e){if("html"===Mr(e))return e;const t=e.assignedSlot||e.parentNode||Yr(e)&&e.host||Lr(e);return Yr(t)?t.host:t}function Ar(e){const t=Rr(e);return Er(t)?e.ownerDocument?e.ownerDocument.body:e.body:Dr(t)&&Tr(t)?t:Ar(t)}function Ir(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);const a=Ar(e),i=a===(null==(r=e.ownerDocument)?void 0:r.body),s=wr(a);if(i){const e=Fr(s);return t.concat(s,s.visualViewport||[],Tr(a)?a:[],e&&n?Ir(e):[])}return t.concat(a,Ir(a,[],n))}function Fr(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Nr(e){let t=e.activeElement;for(;null!=(null==(n=t)||null==(n=n.shadowRoot)?void 0:n.activeElement);){var n;t=t.shadowRoot.activeElement}return t}function Wr(e,t){if(!e||!t)return!1;const n=null==t.getRootNode?void 0:t.getRootNode();if(e.contains(t))return!0;if(n&&Yr(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function zr(){const e=navigator.userAgentData;return null!=e&&e.platform?e.platform:navigator.platform}function Vr(){const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map((e=>{let{brand:t,version:n}=e;return t+"/"+n})).join(" "):navigator.userAgent}function Br(e){return!(0!==e.mozInputSource||!e.isTrusted)||(qr()&&e.pointerType?"click"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType)}function Ur(e){return!Vr().includes("jsdom/")&&(!qr()&&0===e.width&&0===e.height||qr()&&1===e.width&&1===e.height&&0===e.pressure&&0===e.detail&&"mouse"===e.pointerType||e.width<1&&e.height<1&&0===e.pressure&&0===e.detail&&"touch"===e.pointerType)}function $r(){return/apple/i.test(navigator.vendor)}function qr(){const e=/android/i;return e.test(zr())||e.test(Vr())}function Gr(e){return(null==e?void 0:e.ownerDocument)||document}function Zr(e,t){if(null==t)return!1;if("composedPath"in e)return e.composedPath().includes(t);const n=e;return null!=n.target&&t.contains(n.target)}function Jr(e){return"composedPath"in e?e.composedPath()[0]:e.target}function Qr(e){e.preventDefault(),e.stopPropagation()}function Kr(e){return!!e&&"combobox"===e.getAttribute("role")&&function(e){return Dr(e)&&e.matches("input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])")}(e)}const Xr=Math.min,ea=Math.max,ta=Math.round,na=Math.floor,ra=e=>({x:e,y:e}),aa={left:"right",right:"left",bottom:"top",top:"bottom"},ia={start:"end",end:"start"};function sa(e,t){return"function"==typeof e?e(t):e}function oa(e){return e.split("-")[0]}function la(e){return e.split("-")[1]}function ua(e){return"y"===e?"height":"width"}function da(e){return["top","bottom"].includes(oa(e))?"y":"x"}function ca(e){return"x"===da(e)?"y":"x"}function ha(e){return e.replace(/start|end/g,(e=>ia[e]))}function ma(e){return e.replace(/left|right|bottom|top/g,(e=>aa[e]))}function pa(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}var fa=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"].join(","),_a="undefined"==typeof Element,ya=_a?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,ga=!_a&&Element.prototype.getRootNode?function(e){var t;return null==e||null===(t=e.getRootNode)||void 0===t?void 0:t.call(e)}:function(e){return null==e?void 0:e.ownerDocument},va=function e(t,n){var r;void 0===n&&(n=!0);var a=null==t||null===(r=t.getAttribute)||void 0===r?void 0:r.call(t,"inert");return""===a||"true"===a||n&&t&&e(t.parentNode)},ba=function e(t,n,r){for(var a=[],i=Array.from(t);i.length;){var s=i.shift();if(!va(s,!1))if("SLOT"===s.tagName){var o=s.assignedElements(),l=e(o.length?o:s.children,!0,r);r.flatten?a.push.apply(a,l):a.push({scopeParent:s,candidates:l})}else{ya.call(s,fa)&&r.filter(s)&&(n||!t.includes(s))&&a.push(s);var u=s.shadowRoot||"function"==typeof r.getShadowRoot&&r.getShadowRoot(s),d=!va(u,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(s));if(u&&d){var c=e(!0===u?s.children:u.children,!0,r);r.flatten?a.push.apply(a,c):a.push({scopeParent:s,candidates:c})}else i.unshift.apply(i,s.children)}}return a},Ma=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},wa=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||function(e){var t,n=null==e||null===(t=e.getAttribute)||void 0===t?void 0:t.call(e,"contenteditable");return""===n||"true"===n}(e))&&!Ma(e)?0:e.tabIndex},La=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},ka=function(e){return"INPUT"===e.tagName},Sa=function(e){var t=e.getBoundingClientRect(),n=t.width,r=t.height;return 0===n&&0===r},Da=function(e,t){return!(t.disabled||va(t)||function(e){return ka(e)&&"hidden"===e.type}(t)||function(e,t){var n=t.displayCheck,r=t.getShadowRoot;if("hidden"===getComputedStyle(e).visibility)return!0;var a=ya.call(e,"details>summary:first-of-type")?e.parentElement:e;if(ya.call(a,"details:not([open]) *"))return!0;if(n&&"full"!==n&&"legacy-full"!==n){if("non-zero-area"===n)return Sa(e)}else{if("function"==typeof r){for(var i=e;e;){var s=e.parentElement,o=ga(e);if(s&&!s.shadowRoot&&!0===r(s))return Sa(e);e=e.assignedSlot?e.assignedSlot:s||o===e.ownerDocument?s:o.host}e=i}if(function(e){var t,n,r,a,i=e&&ga(e),s=null===(t=i)||void 0===t?void 0:t.host,o=!1;if(i&&i!==e)for(o=!!(null!==(n=s)&&void 0!==n&&null!==(r=n.ownerDocument)&&void 0!==r&&r.contains(s)||null!=e&&null!==(a=e.ownerDocument)&&void 0!==a&&a.contains(e));!o&&s;){var l,u,d;o=!(null===(u=s=null===(l=i=ga(s))||void 0===l?void 0:l.host)||void 0===u||null===(d=u.ownerDocument)||void 0===d||!d.contains(s))}return o}(e))return!e.getClientRects().length;if("legacy-full"!==n)return!0}return!1}(t,e)||function(e){return"DETAILS"===e.tagName&&Array.prototype.slice.apply(e.children).some((function(e){return"SUMMARY"===e.tagName}))}(t)||function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if("FIELDSET"===t.tagName&&t.disabled){for(var n=0;n=0)},xa=function e(t){var n=[],r=[];return t.forEach((function(t,a){var i=!!t.scopeParent,s=i?t.scopeParent:t,o=function(e,t){var n=wa(e);return n<0&&t&&!Ma(e)?0:n}(s,i),l=i?e(t.candidates):s;0===o?i?n.push.apply(n,l):n.push(s):r.push({documentOrder:a,tabIndex:o,item:t,isScope:i,content:l})})),r.sort(La).reduce((function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e}),[]).concat(n)},Oa=function(e,t){var n;return n=(t=t||{}).getShadowRoot?ba([e],t.includeContainer,{filter:Ya.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:Ta}):function(e,t,n){if(va(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(fa));return t&&ya.call(e,fa)&&r.unshift(e),r.filter(n)}(e,t.includeContainer,Ya.bind(null,t)),xa(n)},ja=n(8398);function Pa(e,t,n){let{reference:r,floating:a}=e;const i=da(t),s=ca(t),o=ua(s),l=oa(t),u="y"===i,d=r.x+r.width/2-a.width/2,c=r.y+r.height/2-a.height/2,h=r[o]/2-a[o]/2;let m;switch(l){case"top":m={x:d,y:r.y-a.height};break;case"bottom":m={x:d,y:r.y+r.height};break;case"right":m={x:r.x+r.width,y:c};break;case"left":m={x:r.x-a.width,y:c};break;default:m={x:r.x,y:r.y}}switch(la(t)){case"start":m[s]-=h*(n&&u?-1:1);break;case"end":m[s]+=h*(n&&u?-1:1)}return m}async function Ea(e,t){var n;void 0===t&&(t={});const{x:r,y:a,platform:i,rects:s,elements:o,strategy:l}=e,{boundary:u="clippingAncestors",rootBoundary:d="viewport",elementContext:c="floating",altBoundary:h=!1,padding:m=0}=sa(t,e),p=function(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}(m),f=o[h?"floating"===c?"reference":"floating":c],_=pa(await i.getClippingRect({element:null==(n=await(null==i.isElement?void 0:i.isElement(f)))||n?f:f.contextElement||await(null==i.getDocumentElement?void 0:i.getDocumentElement(o.floating)),boundary:u,rootBoundary:d,strategy:l})),y="floating"===c?{x:r,y:a,width:s.floating.width,height:s.floating.height}:s.reference,g=await(null==i.getOffsetParent?void 0:i.getOffsetParent(o.floating)),v=await(null==i.isElement?void 0:i.isElement(g))&&await(null==i.getScale?void 0:i.getScale(g))||{x:1,y:1},b=pa(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:y,offsetParent:g,strategy:l}):y);return{top:(_.top-b.top+p.top)/v.y,bottom:(b.bottom-_.bottom+p.bottom)/v.y,left:(_.left-b.left+p.left)/v.x,right:(b.right-_.right+p.right)/v.x}}function Ca(e){const t=Cr(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=Dr(e),i=a?e.offsetWidth:n,s=a?e.offsetHeight:r,o=ta(n)!==i||ta(r)!==s;return o&&(n=i,r=s),{width:n,height:r,$:o}}function Ha(e){return Sr(e)?e:e.contextElement}function Ra(e){const t=Ha(e);if(!Dr(t))return ra(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:i}=Ca(t);let s=(i?ta(n.width):n.width)/r,o=(i?ta(n.height):n.height)/a;return s&&Number.isFinite(s)||(s=1),o&&Number.isFinite(o)||(o=1),{x:s,y:o}}const Aa=ra(0);function Ia(e){const t=wr(e);return Pr()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:Aa}function Fa(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=!1);const a=e.getBoundingClientRect(),i=Ha(e);let s=ra(1);t&&(r?Sr(r)&&(s=Ra(r)):s=Ra(e));const o=function(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==wr(e))&&t}(i,n,r)?Ia(i):ra(0);let l=(a.left+o.x)/s.x,u=(a.top+o.y)/s.y,d=a.width/s.x,c=a.height/s.y;if(i){const e=wr(i),t=r&&Sr(r)?wr(r):r;let n=e,a=Fr(n);for(;a&&r&&t!==n;){const e=Ra(a),t=a.getBoundingClientRect(),r=Cr(a),i=t.left+(a.clientLeft+parseFloat(r.paddingLeft))*e.x,s=t.top+(a.clientTop+parseFloat(r.paddingTop))*e.y;l*=e.x,u*=e.y,d*=e.x,c*=e.y,l+=i,u+=s,n=wr(a),a=Fr(n)}}return pa({width:d,height:c,x:l,y:u})}function Na(e,t){const n=Hr(e).scrollLeft;return t?t.left+n:Fa(Lr(e)).left+n}function Wa(e,t,n){void 0===n&&(n=!1);const r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-(n?0:Na(e,r)),y:r.top+t.scrollTop}}function za(e,t,n){let r;if("viewport"===t)r=function(e,t){const n=wr(e),r=Lr(e),a=n.visualViewport;let i=r.clientWidth,s=r.clientHeight,o=0,l=0;if(a){i=a.width,s=a.height;const e=Pr();(!e||e&&"fixed"===t)&&(o=a.offsetLeft,l=a.offsetTop)}return{width:i,height:s,x:o,y:l}}(e,n);else if("document"===t)r=function(e){const t=Lr(e),n=Hr(e),r=e.ownerDocument.body,a=ea(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),i=ea(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let s=-n.scrollLeft+Na(e);const o=-n.scrollTop;return"rtl"===Cr(r).direction&&(s+=ea(t.clientWidth,r.clientWidth)-a),{width:a,height:i,x:s,y:o}}(Lr(e));else if(Sr(t))r=function(e,t){const n=Fa(e,!0,"fixed"===t),r=n.top+e.clientTop,a=n.left+e.clientLeft,i=Dr(e)?Ra(e):ra(1);return{width:e.clientWidth*i.x,height:e.clientHeight*i.y,x:a*i.x,y:r*i.y}}(t,n);else{const n=Ia(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return pa(r)}function Va(e,t){const n=Rr(e);return!(n===t||!Sr(n)||Er(n))&&("fixed"===Cr(n).position||Va(n,t))}function Ba(e,t,n){const r=Dr(t),a=Lr(t),i="fixed"===n,s=Fa(e,!0,i,t);let o={scrollLeft:0,scrollTop:0};const l=ra(0);if(r||!r&&!i)if(("body"!==Mr(t)||Tr(a))&&(o=Hr(t)),r){const e=Fa(t,!0,i,t);l.x=e.x+t.clientLeft,l.y=e.y+t.clientTop}else a&&(l.x=Na(a));const u=!a||r||i?ra(0):Wa(a,o);return{x:s.left+o.scrollLeft-l.x-u.x,y:s.top+o.scrollTop-l.y-u.y,width:s.width,height:s.height}}function Ua(e){return"static"===Cr(e).position}function $a(e,t){if(!Dr(e)||"fixed"===Cr(e).position)return null;if(t)return t(e);let n=e.offsetParent;return Lr(e)===n&&(n=n.ownerDocument.body),n}function qa(e,t){const n=wr(e);if(Or(e))return n;if(!Dr(e)){let t=Rr(e);for(;t&&!Er(t);){if(Sr(t)&&!Ua(t))return t;t=Rr(t)}return n}let r=$a(e,t);for(;r&&xr(r)&&Ua(r);)r=$a(r,t);return r&&Er(r)&&Ua(r)&&!jr(r)?n:r||function(e){let t=Rr(e);for(;Dr(t)&&!Er(t);){if(jr(t))return t;if(Or(t))return null;t=Rr(t)}return null}(e)||n}const Ga={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const i="fixed"===a,s=Lr(r),o=!!t&&Or(t.floating);if(r===s||o&&i)return n;let l={scrollLeft:0,scrollTop:0},u=ra(1);const d=ra(0),c=Dr(r);if((c||!c&&!i)&&(("body"!==Mr(r)||Tr(s))&&(l=Hr(r)),Dr(r))){const e=Fa(r);u=Ra(r),d.x=e.x+r.clientLeft,d.y=e.y+r.clientTop}const h=!s||c||i?ra(0):Wa(s,l,!0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-l.scrollLeft*u.x+d.x+h.x,y:n.y*u.y-l.scrollTop*u.y+d.y+h.y}},getDocumentElement:Lr,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const i=[..."clippingAncestors"===n?Or(t)?[]:function(e,t){const n=t.get(e);if(n)return n;let r=Ir(e,[],!1).filter((e=>Sr(e)&&"body"!==Mr(e))),a=null;const i="fixed"===Cr(e).position;let s=i?Rr(e):e;for(;Sr(s)&&!Er(s);){const t=Cr(s),n=jr(s);n||"fixed"!==t.position||(a=null),(i?!n&&!a:!n&&"static"===t.position&&a&&["absolute","fixed"].includes(a.position)||Tr(s)&&!n&&Va(e,s))?r=r.filter((e=>e!==s)):a=t,s=Rr(s)}return t.set(e,r),r}(t,this._c):[].concat(n),r],s=i[0],o=i.reduce(((e,n)=>{const r=za(t,n,a);return e.top=ea(r.top,e.top),e.right=Xr(r.right,e.right),e.bottom=Xr(r.bottom,e.bottom),e.left=ea(r.left,e.left),e}),za(t,s,a));return{width:o.right-o.left,height:o.bottom-o.top,x:o.left,y:o.top}},getOffsetParent:qa,getElementRects:async function(e){const t=this.getOffsetParent||qa,n=this.getDimensions,r=await n(e.floating);return{reference:Ba(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:n}=Ca(e);return{width:t,height:n}},getScale:Ra,isElement:Sr,isRTL:function(e){return"rtl"===Cr(e).direction}};function Za(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Ja(e,t,n,r){void 0===r&&(r={});const{ancestorScroll:a=!0,ancestorResize:i=!0,elementResize:s="function"==typeof ResizeObserver,layoutShift:o="function"==typeof IntersectionObserver,animationFrame:l=!1}=r,u=Ha(e),d=a||i?[...u?Ir(u):[],...Ir(t)]:[];d.forEach((e=>{a&&e.addEventListener("scroll",n,{passive:!0}),i&&e.addEventListener("resize",n)}));const c=u&&o?function(e,t){let n,r=null;const a=Lr(e);function i(){var e;clearTimeout(n),null==(e=r)||e.disconnect(),r=null}return function s(o,l){void 0===o&&(o=!1),void 0===l&&(l=1),i();const u=e.getBoundingClientRect(),{left:d,top:c,width:h,height:m}=u;if(o||t(),!h||!m)return;const p={rootMargin:-na(c)+"px "+-na(a.clientWidth-(d+h))+"px "+-na(a.clientHeight-(c+m))+"px "+-na(d)+"px",threshold:ea(0,Xr(1,l))||1};let f=!0;function _(t){const r=t[0].intersectionRatio;if(r!==l){if(!f)return s();r?s(!1,r):n=setTimeout((()=>{s(!1,1e-7)}),1e3)}1!==r||Za(u,e.getBoundingClientRect())||s(),f=!1}try{r=new IntersectionObserver(_,{...p,root:a.ownerDocument})}catch(e){r=new IntersectionObserver(_,p)}r.observe(e)}(!0),i}(u,n):null;let h,m=-1,p=null;s&&(p=new ResizeObserver((e=>{let[r]=e;r&&r.target===u&&p&&(p.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame((()=>{var e;null==(e=p)||e.observe(t)}))),n()})),u&&!l&&p.observe(u),p.observe(t));let f=l?Fa(e):null;return l&&function t(){const r=Fa(e);f&&!Za(f,r)&&n(),f=r,h=requestAnimationFrame(t)}(),n(),()=>{var e;d.forEach((e=>{a&&e.removeEventListener("scroll",n),i&&e.removeEventListener("resize",n)})),null==c||c(),null==(e=p)||e.disconnect(),p=null,l&&cancelAnimationFrame(h)}}const Qa=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:i,placement:s,middlewareData:o}=t,l=await async function(e,t){const{placement:n,platform:r,elements:a}=e,i=await(null==r.isRTL?void 0:r.isRTL(a.floating)),s=oa(n),o=la(n),l="y"===da(n),u=["left","top"].includes(s)?-1:1,d=i&&l?-1:1,c=sa(t,e);let{mainAxis:h,crossAxis:m,alignmentAxis:p}="number"==typeof c?{mainAxis:c,crossAxis:0,alignmentAxis:null}:{mainAxis:c.mainAxis||0,crossAxis:c.crossAxis||0,alignmentAxis:c.alignmentAxis};return o&&"number"==typeof p&&(m="end"===o?-1*p:p),l?{x:m*d,y:h*u}:{x:h*u,y:m*d}}(t,e);return s===(null==(n=o.offset)?void 0:n.placement)&&null!=(r=o.arrow)&&r.alignmentOffset?{}:{x:a+l.x,y:i+l.y,data:{...l,placement:s}}}}},Ka=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:a,middlewareData:i,rects:s,initialPlacement:o,platform:l,elements:u}=t,{mainAxis:d=!0,crossAxis:c=!0,fallbackPlacements:h,fallbackStrategy:m="bestFit",fallbackAxisSideDirection:p="none",flipAlignment:f=!0,..._}=sa(e,t);if(null!=(n=i.arrow)&&n.alignmentOffset)return{};const y=oa(a),g=da(o),v=oa(o)===o,b=await(null==l.isRTL?void 0:l.isRTL(u.floating)),M=h||(v||!f?[ma(o)]:function(e){const t=ma(e);return[ha(e),t,ha(t)]}(o)),w="none"!==p;!h&&w&&M.push(...function(e,t,n,r){const a=la(e);let i=function(e,t,n){const r=["left","right"],a=["right","left"],i=["top","bottom"],s=["bottom","top"];switch(e){case"top":case"bottom":return n?t?a:r:t?r:a;case"left":case"right":return t?i:s;default:return[]}}(oa(e),"start"===n,r);return a&&(i=i.map((e=>e+"-"+a)),t&&(i=i.concat(i.map(ha)))),i}(o,f,p,b));const L=[o,...M],k=await Ea(t,_),S=[];let D=(null==(r=i.flip)?void 0:r.overflows)||[];if(d&&S.push(k[y]),c){const e=function(e,t,n){void 0===n&&(n=!1);const r=la(e),a=ca(e),i=ua(a);let s="x"===a?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[i]>t.floating[i]&&(s=ma(s)),[s,ma(s)]}(a,s,b);S.push(k[e[0]],k[e[1]])}if(D=[...D,{placement:a,overflows:S}],!S.every((e=>e<=0))){var Y,T;const e=((null==(Y=i.flip)?void 0:Y.index)||0)+1,t=L[e];if(t)return{data:{index:e,overflows:D},reset:{placement:t}};let n=null==(T=D.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:T.placement;if(!n)switch(m){case"bestFit":{var x;const e=null==(x=D.filter((e=>{if(w){const t=da(e.placement);return t===g||"y"===t}return!0})).map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:x[0];e&&(n=e);break}case"initialPlacement":n=o}if(a!==n)return{reset:{placement:n}}}return{}}}},Xa=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:a,rects:i,platform:s,elements:o}=t,{apply:l=()=>{},...u}=sa(e,t),d=await Ea(t,u),c=oa(a),h=la(a),m="y"===da(a),{width:p,height:f}=i.floating;let _,y;"top"===c||"bottom"===c?(_=c,y=h===(await(null==s.isRTL?void 0:s.isRTL(o.floating))?"start":"end")?"left":"right"):(y=c,_="end"===h?"top":"bottom");const g=f-d.top-d.bottom,v=p-d.left-d.right,b=Xr(f-d[_],g),M=Xr(p-d[y],v),w=!t.middlewareData.shift;let L=b,k=M;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(k=v),null!=(r=t.middlewareData.shift)&&r.enabled.y&&(L=g),w&&!h){const e=ea(d.left,0),t=ea(d.right,0),n=ea(d.top,0),r=ea(d.bottom,0);m?k=p-2*(0!==e||0!==t?e+t:ea(d.left,d.right)):L=f-2*(0!==n||0!==r?n+r:ea(d.top,d.bottom))}await l({...t,availableWidth:k,availableHeight:L});const S=await s.getDimensions(o.floating);return p!==S.width||f!==S.height?{reset:{rects:!0}}:{}}}},ei=(e,t,n)=>{const r=new Map,a={platform:Ga,...n},i={...a.platform,_c:r};return(async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:i=[],platform:s}=n,o=i.filter(Boolean),l=await(null==s.isRTL?void 0:s.isRTL(t));let u=await s.getElementRects({reference:e,floating:t,strategy:a}),{x:d,y:c}=Pa(u,r,l),h=r,m={},p=0;for(let n=0;n{t.current=e})),t}const si=(e,t)=>({...Ka(e),options:[e,t]}),oi=(e,t)=>({...Xa(e),options:[e,t]}),li={...L},ui=li.useInsertionEffect||(e=>e());function di(e){const t=w.useRef((()=>{}));return ui((()=>{t.current=e})),w.useCallback((function(){for(var e=arguments.length,n=new Array(e),r=0;r=e.current.length}function yi(e,t){return vi(e,{disabledIndices:t})}function gi(e,t){return vi(e,{decrement:!0,startingIndex:e.current.length,disabledIndices:t})}function vi(e,t){let{startingIndex:n=-1,decrement:r=!1,disabledIndices:a,amount:i=1}=void 0===t?{}:t;const s=e.current;let o=n;do{o+=r?-i:i}while(o>=0&&o<=s.length-1&&wi(s,o,a));return o}function bi(e,t,n,r,a){if(-1===e)return-1;const i=n.indexOf(e),s=t[e];switch(a){case"tl":return i;case"tr":return s?i+s.width-1:i;case"bl":return s?i+(s.height-1)*r:i;case"br":return n.lastIndexOf(e)}}function Mi(e,t){return t.flatMap(((t,n)=>e.includes(t)?[n]:[]))}function wi(e,t,n){if(n)return n.includes(t);const r=e[t];return null==r||r.hasAttribute("disabled")||"true"===r.getAttribute("aria-disabled")}var Li="undefined"!=typeof document?w.useLayoutEffect:w.useEffect;function ki(){return ki=Object.assign?Object.assign.bind():function(e){for(var t=1;t"floating-ui-"+Math.random().toString(36).slice(2,6)+Di++,Ti=li.useId||function(){const[e,t]=w.useState((()=>Si?Yi():void 0));return Li((()=>{null==e&&t(Yi())}),[]),w.useEffect((()=>{Si=!0}),[]),e};const xi=w.createContext(null),Oi=w.createContext(null),ji=()=>{var e;return(null==(e=w.useContext(xi))?void 0:e.id)||null},Pi=()=>w.useContext(Oi);function Ei(e){return"data-floating-ui-"+e}function Ci(e){const t=(0,w.useRef)(e);return Li((()=>{t.current=e})),t}let Hi=0;function Ri(e,t){void 0===t&&(t={});const{preventScroll:n=!1,cancelPrevious:r=!0,sync:a=!1}=t;r&&cancelAnimationFrame(Hi);const i=()=>null==e?void 0:e.focus({preventScroll:n});a?i():Hi=requestAnimationFrame(i)}function Ai(e,t){let n=e.filter((e=>{var n;return e.parentId===t&&(null==(n=e.context)?void 0:n.open)})),r=n;for(;r.length;)r=e.filter((e=>{var t;return null==(t=r)?void 0:t.some((t=>{var n;return e.parentId===t.id&&(null==(n=e.context)?void 0:n.open)}))})),n=n.concat(r);return n}let Ii=new WeakMap,Fi=new WeakSet,Ni={},Wi=0;const zi=e=>e&&(e.host||zi(e.parentNode));function Vi(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);const r=Gr(e[0]).body;return function(e,t,n,r){const a="data-floating-ui-inert",i=r?"inert":n?"aria-hidden":null,s=(o=t,e.map((e=>{if(o.contains(e))return e;const t=zi(e);return o.contains(t)?t:null})).filter((e=>null!=e)));var o;const l=new Set,u=new Set(s),d=[];Ni[a]||(Ni[a]=new WeakMap);const c=Ni[a];return s.forEach((function e(t){t&&!l.has(t)&&(l.add(t),t.parentNode&&e(t.parentNode))})),function e(t){t&&!u.has(t)&&[].forEach.call(t.children,(t=>{if("script"!==Mr(t))if(l.has(t))e(t);else{const e=i?t.getAttribute(i):null,n=null!==e&&"false"!==e,r=(Ii.get(t)||0)+1,s=(c.get(t)||0)+1;Ii.set(t,r),c.set(t,s),d.push(t),1===r&&n&&Fi.add(t),1===s&&t.setAttribute(a,""),!n&&i&&t.setAttribute(i,"true")}}))}(t),l.clear(),Wi++,()=>{d.forEach((e=>{const t=(Ii.get(e)||0)-1,n=(c.get(e)||0)-1;Ii.set(e,t),c.set(e,n),t||(!Fi.has(e)&&i&&e.removeAttribute(i),Fi.delete(e)),n||e.removeAttribute(a)})),Wi--,Wi||(Ii=new WeakMap,Ii=new WeakMap,Fi=new WeakSet,Ni={})}}(e.concat(Array.from(r.querySelectorAll("[aria-live]"))),r,t,n)}const Bi=()=>({getShadowRoot:!0,displayCheck:"function"==typeof ResizeObserver&&ResizeObserver.toString().includes("[native code]")?"full":"none"});function Ui(e,t){const n=Oa(e,Bi());"prev"===t&&n.reverse();const r=n.indexOf(Nr(Gr(e)));return n.slice(r+1)[0]}function $i(){return Ui(document.body,"next")}function qi(){return Ui(document.body,"prev")}function Gi(e,t){const n=t||e.currentTarget,r=e.relatedTarget;return!r||!Wr(n,r)}function Zi(e){Oa(e,Bi()).forEach((e=>{e.dataset.tabindex=e.getAttribute("tabindex")||"",e.setAttribute("tabindex","-1")}))}function Ji(e){e.querySelectorAll("[data-tabindex]").forEach((e=>{const t=e.dataset.tabindex;delete e.dataset.tabindex,t?e.setAttribute("tabindex",t):e.removeAttribute("tabindex")}))}const Qi={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"fixed",whiteSpace:"nowrap",width:"1px",top:0,left:0};function Ki(e){"Tab"===e.key&&(e.target,clearTimeout(void 0))}const Xi=w.forwardRef((function(e,t){const[n,r]=w.useState();Li((()=>($r()&&r("button"),document.addEventListener("keydown",Ki),()=>{document.removeEventListener("keydown",Ki)})),[]);const a={ref:t,tabIndex:0,role:n,"aria-hidden":!n||void 0,[Ei("focus-guard")]:"",style:Qi};return w.createElement("span",ki({},e,a))})),es=w.createContext(null),ts=Ei("portal");function ns(e){const{children:t,id:n,root:r,preserveTabOrder:a=!0}=e,i=function(e){void 0===e&&(e={});const{id:t,root:n}=e,r=Ti(),a=rs(),[i,s]=w.useState(null),o=w.useRef(null);return Li((()=>()=>{null==i||i.remove(),queueMicrotask((()=>{o.current=null}))}),[i]),Li((()=>{if(!r)return;if(o.current)return;const e=t?document.getElementById(t):null;if(!e)return;const n=document.createElement("div");n.id=r,n.setAttribute(ts,""),e.appendChild(n),o.current=n,s(n)}),[t,r]),Li((()=>{if(null===n)return;if(!r)return;if(o.current)return;let e=n||(null==a?void 0:a.portalNode);e&&!Sr(e)&&(e=e.current),e=e||document.body;let i=null;t&&(i=document.createElement("div"),i.id=t,e.appendChild(i));const l=document.createElement("div");l.id=r,l.setAttribute(ts,""),e=i||e,e.appendChild(l),o.current=l,s(l)}),[t,n,r,a]),i}({id:n,root:r}),[s,o]=w.useState(null),l=w.useRef(null),u=w.useRef(null),d=w.useRef(null),c=w.useRef(null),h=null==s?void 0:s.modal,m=null==s?void 0:s.open,p=!!s&&!s.modal&&s.open&&a&&!(!r&&!i);return w.useEffect((()=>{if(i&&a&&!h)return i.addEventListener("focusin",e,!0),i.addEventListener("focusout",e,!0),()=>{i.removeEventListener("focusin",e,!0),i.removeEventListener("focusout",e,!0)};function e(e){i&&Gi(e)&&("focusin"===e.type?Ji:Zi)(i)}}),[i,a,h]),w.useEffect((()=>{i&&(m||Ji(i))}),[m,i]),w.createElement(es.Provider,{value:w.useMemo((()=>({preserveTabOrder:a,beforeOutsideRef:l,afterOutsideRef:u,beforeInsideRef:d,afterInsideRef:c,portalNode:i,setFocusManagerState:o})),[a,i])},p&&i&&w.createElement(Xi,{"data-type":"outside",ref:l,onFocus:e=>{if(Gi(e,i)){var t;null==(t=d.current)||t.focus()}else{const e=qi()||(null==s?void 0:s.refs.domReference.current);null==e||e.focus()}}}),p&&i&&w.createElement("span",{"aria-owns":i.id,style:Qi}),i&&ja.createPortal(t,i),p&&i&&w.createElement(Xi,{"data-type":"outside",ref:u,onFocus:e=>{if(Gi(e,i)){var t;null==(t=c.current)||t.focus()}else{const t=$i()||(null==s?void 0:s.refs.domReference.current);null==t||t.focus(),(null==s?void 0:s.closeOnFocusOut)&&(null==s||s.onOpenChange(!1,e.nativeEvent,"focus-out"))}}}))}const rs=()=>w.useContext(es),as="data-floating-ui-focusable";function is(e){return e?e.hasAttribute(as)?e:e.querySelector("["+as+"]")||e:null}let ss=[];function os(e){ss=ss.filter((e=>e.isConnected));let t=e;if(t&&"body"!==Mr(t)){if(!function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==ya.call(e,fa)&&Ya(t,e)}(t,Bi())){const e=Oa(t,Bi())[0];e&&(t=e)}ss.push(t),ss.length>20&&(ss=ss.slice(-20))}}function ls(){return ss.slice().reverse().find((e=>e.isConnected))}const us=w.forwardRef((function(e,t){return w.createElement("button",ki({},e,{type:"button",ref:t,tabIndex:-1,style:Qi}))}));function ds(e){const{context:t,children:n,disabled:r=!1,order:a=["content"],guards:i=!0,initialFocus:s=0,returnFocus:o=!0,restoreFocus:l=!1,modal:u=!0,visuallyHiddenDismiss:d=!1,closeOnFocusOut:c=!0}=e,{open:h,refs:m,nodeId:p,onOpenChange:f,events:_,dataRef:y,floatingId:g,elements:{domReference:v,floating:b}}=t,M="number"==typeof s&&s<0,L=Kr(v)&&M,k="undefined"==typeof HTMLElement||!("inert"in HTMLElement.prototype)||i,S=Ci(a),D=Ci(s),Y=Ci(o),T=Pi(),x=rs(),O=w.useRef(null),j=w.useRef(null),P=w.useRef(!1),E=w.useRef(!1),C=w.useRef(-1),H=null!=x,R=is(b),A=di((function(e){return void 0===e&&(e=R),e?Oa(e,Bi()):[]})),I=di((e=>{const t=A(e);return S.current.map((e=>v&&"reference"===e?v:R&&"floating"===e?R:t)).filter(Boolean).flat()}));function F(e){return!r&&d&&u?w.createElement(us,{ref:"start"===e?O:j,onClick:e=>f(!1,e.nativeEvent)},"string"==typeof d?d:"Dismiss"):null}w.useEffect((()=>{if(r)return;if(!u)return;function e(e){if("Tab"===e.key){Wr(R,Nr(Gr(R)))&&0===A().length&&!L&&Qr(e);const t=I(),n=Jr(e);"reference"===S.current[0]&&n===v&&(Qr(e),e.shiftKey?Ri(t[t.length-1]):Ri(t[1])),"floating"===S.current[1]&&n===R&&e.shiftKey&&(Qr(e),Ri(t[0]))}}const t=Gr(R);return t.addEventListener("keydown",e),()=>{t.removeEventListener("keydown",e)}}),[r,v,R,u,S,L,A,I]),w.useEffect((()=>{if(!r&&b)return b.addEventListener("focusin",e),()=>{b.removeEventListener("focusin",e)};function e(e){const t=Jr(e),n=A().indexOf(t);-1!==n&&(C.current=n)}}),[r,b,A]),w.useEffect((()=>{if(!r&&c)return b&&Dr(v)?(v.addEventListener("focusout",t),v.addEventListener("pointerdown",e),b.addEventListener("focusout",t),()=>{v.removeEventListener("focusout",t),v.removeEventListener("pointerdown",e),b.removeEventListener("focusout",t)}):void 0;function e(){E.current=!0,setTimeout((()=>{E.current=!1}))}function t(e){const t=e.relatedTarget;queueMicrotask((()=>{const n=!(Wr(v,t)||Wr(b,t)||Wr(t,b)||Wr(null==x?void 0:x.portalNode,t)||null!=t&&t.hasAttribute(Ei("focus-guard"))||T&&(Ai(T.nodesRef.current,p).find((e=>{var n,r;return Wr(null==(n=e.context)?void 0:n.elements.floating,t)||Wr(null==(r=e.context)?void 0:r.elements.domReference,t)}))||function(e,t){var n;let r=[],a=null==(n=e.find((e=>e.id===t)))?void 0:n.parentId;for(;a;){const t=e.find((e=>e.id===a));a=null==t?void 0:t.parentId,t&&(r=r.concat(t))}return r}(T.nodesRef.current,p).find((e=>{var n,r;return(null==(n=e.context)?void 0:n.elements.floating)===t||(null==(r=e.context)?void 0:r.elements.domReference)===t}))));if(l&&n&&Nr(Gr(R))===Gr(R).body){Dr(R)&&R.focus();const e=C.current,t=A(),n=t[e]||t[t.length-1]||R;Dr(n)&&n.focus()}!L&&u||!t||!n||E.current||t===ls()||(P.current=!0,f(!1,e,"focus-out"))}))}}),[r,v,b,R,u,p,T,x,f,c,l,A,L]),w.useEffect((()=>{var e;if(r)return;const t=Array.from((null==x||null==(e=x.portalNode)?void 0:e.querySelectorAll("["+Ei("portal")+"]"))||[]);if(b){const e=[b,...t,O.current,j.current,S.current.includes("reference")||L?v:null].filter((e=>null!=e)),n=u||L?Vi(e,k,!k):Vi(e);return()=>{n()}}}),[r,v,b,u,S,x,L,k]),Li((()=>{if(r||!Dr(R))return;const e=Nr(Gr(R));queueMicrotask((()=>{const t=I(R),n=D.current,r=("number"==typeof n?t[n]:n.current)||R,a=Wr(R,e);M||a||!h||Ri(r,{preventScroll:r===R})}))}),[r,h,R,M,I,D]),Li((()=>{if(r||!R)return;let e=!1;const t=Gr(R),n=Nr(t);let a=y.current.openEvent;function i(t){let{open:n,reason:r,event:i,nested:s}=t;n&&(a=i),"escape-key"===r&&m.domReference.current&&os(m.domReference.current),"hover"===r&&"mouseleave"===i.type&&(P.current=!0),"outside-press"===r&&(s?(P.current=!1,e=!0):P.current=!(Br(i)||Ur(i)))}os(n),_.on("openchange",i);const s=t.createElement("span");return s.setAttribute("tabindex","-1"),s.setAttribute("aria-hidden","true"),Object.assign(s.style,Qi),H&&v&&v.insertAdjacentElement("afterend",s),()=>{_.off("openchange",i);const n=Nr(t),r=Wr(b,n)||T&&Ai(T.nodesRef.current,p).some((e=>{var t;return Wr(null==(t=e.context)?void 0:t.elements.floating,n)}));(r||a&&["click","mousedown"].includes(a.type))&&m.domReference.current&&os(m.domReference.current);const o="boolean"==typeof Y.current?ls()||s:Y.current.current||s;queueMicrotask((()=>{Y.current&&!P.current&&Dr(o)&&(o===n||n===t.body||r)&&o.focus({preventScroll:e}),s.remove()}))}}),[r,b,R,Y,y,m,_,T,p,H,v]),w.useEffect((()=>{queueMicrotask((()=>{P.current=!1}))}),[r]),Li((()=>{if(!r&&x)return x.setFocusManagerState({modal:u,closeOnFocusOut:c,open:h,onOpenChange:f,refs:m}),()=>{x.setFocusManagerState(null)}}),[r,x,u,h,f,m,c]),Li((()=>{if(r)return;if(!R)return;if("function"!=typeof MutationObserver)return;if(M)return;const e=()=>{const e=R.getAttribute("tabindex"),t=A(),n=Nr(Gr(b)),r=t.indexOf(n);-1!==r&&(C.current=r),S.current.includes("floating")||n!==m.domReference.current&&0===t.length?"0"!==e&&R.setAttribute("tabindex","0"):"-1"!==e&&R.setAttribute("tabindex","-1")};e();const t=new MutationObserver(e);return t.observe(R,{childList:!0,subtree:!0,attributes:!0}),()=>{t.disconnect()}}),[r,b,R,m,S,A,M]);const N=!r&&k&&(!u||!L)&&(H||u);return w.createElement(w.Fragment,null,N&&w.createElement(Xi,{"data-type":"inside",ref:null==x?void 0:x.beforeInsideRef,onFocus:e=>{if(u){const e=I();Ri("reference"===a[0]?e[0]:e[e.length-1])}else if(null!=x&&x.preserveTabOrder&&x.portalNode)if(P.current=!1,Gi(e,x.portalNode)){const e=$i()||v;null==e||e.focus()}else{var t;null==(t=x.beforeOutsideRef.current)||t.focus()}}}),!L&&F("start"),n,F("end"),N&&w.createElement(Xi,{"data-type":"inside",ref:null==x?void 0:x.afterInsideRef,onFocus:e=>{if(u)Ri(I()[0]);else if(null!=x&&x.preserveTabOrder&&x.portalNode)if(c&&(P.current=!0),Gi(e,x.portalNode)){const e=qi()||v;null==e||e.focus()}else{var t;null==(t=x.afterOutsideRef.current)||t.focus()}}}))}const cs={pointerdown:"onPointerDown",mousedown:"onMouseDown",click:"onClick"},hs={pointerdown:"onPointerDownCapture",mousedown:"onMouseDownCapture",click:"onClickCapture"},ms=e=>{var t,n;return{escapeKey:"boolean"==typeof e?e:null!=(t=null==e?void 0:e.escapeKey)&&t,outsidePress:"boolean"==typeof e?e:null==(n=null==e?void 0:e.outsidePress)||n}};function ps(e){void 0===e&&(e={});const{nodeId:t}=e,n=function(e){const{open:t=!1,onOpenChange:n,elements:r}=e,a=Ti(),i=w.useRef({}),[s]=w.useState((()=>function(){const e=new Map;return{emit(t,n){var r;null==(r=e.get(t))||r.forEach((e=>e(n)))},on(t,n){e.set(t,[...e.get(t)||[],n])},off(t,n){var r;e.set(t,(null==(r=e.get(t))?void 0:r.filter((e=>e!==n)))||[])}}}())),o=null!=ji(),[l,u]=w.useState(r.reference),d=di(((e,t,r)=>{i.current.openEvent=e?t:void 0,s.emit("openchange",{open:e,event:t,reason:r,nested:o}),null==n||n(e,t,r)})),c=w.useMemo((()=>({setPositionReference:u})),[]),h=w.useMemo((()=>({reference:l||r.reference||null,floating:r.floating||null,domReference:r.reference})),[l,r.reference,r.floating]);return w.useMemo((()=>({dataRef:i,open:t,onOpenChange:d,elements:h,events:s,floatingId:a,refs:c})),[t,d,h,s,a,c])}({...e,elements:{reference:null,floating:null,...e.elements}}),r=e.rootContext||n,a=r.elements,[i,s]=w.useState(null),[o,l]=w.useState(null),u=(null==a?void 0:a.domReference)||i,d=w.useRef(null),c=Pi();Li((()=>{u&&(d.current=u)}),[u]);const h=function(e){void 0===e&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:i,floating:s}={},transform:o=!0,whileElementsMounted:l,open:u}=e,[d,c]=w.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[h,m]=w.useState(r);ni(h,r)||m(r);const[p,f]=w.useState(null),[_,y]=w.useState(null),g=w.useCallback((e=>{e!==L.current&&(L.current=e,f(e))}),[]),v=w.useCallback((e=>{e!==k.current&&(k.current=e,y(e))}),[]),b=i||p,M=s||_,L=w.useRef(null),k=w.useRef(null),S=w.useRef(d),D=null!=l,Y=ii(l),T=ii(a),x=ii(u),O=w.useCallback((()=>{if(!L.current||!k.current)return;const e={placement:t,strategy:n,middleware:h};T.current&&(e.platform=T.current),ei(L.current,k.current,e).then((e=>{const t={...e,isPositioned:!1!==x.current};j.current&&!ni(S.current,t)&&(S.current=t,ja.flushSync((()=>{c(t)})))}))}),[h,t,n,T,x]);ti((()=>{!1===u&&S.current.isPositioned&&(S.current.isPositioned=!1,c((e=>({...e,isPositioned:!1}))))}),[u]);const j=w.useRef(!1);ti((()=>(j.current=!0,()=>{j.current=!1})),[]),ti((()=>{if(b&&(L.current=b),M&&(k.current=M),b&&M){if(Y.current)return Y.current(b,M,O);O()}}),[b,M,O,Y,D]);const P=w.useMemo((()=>({reference:L,floating:k,setReference:g,setFloating:v})),[g,v]),E=w.useMemo((()=>({reference:b,floating:M})),[b,M]),C=w.useMemo((()=>{const e={position:n,left:0,top:0};if(!E.floating)return e;const t=ai(E.floating,d.x),r=ai(E.floating,d.y);return o?{...e,transform:"translate("+t+"px, "+r+"px)",...ri(E.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:r}}),[n,o,E.floating,d.x,d.y]);return w.useMemo((()=>({...d,update:O,refs:P,elements:E,floatingStyles:C})),[d,O,P,E,C])}({...e,elements:{...a,...o&&{reference:o}}}),m=w.useCallback((e=>{const t=Sr(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),contextElement:e}:e;l(t),h.refs.setReference(t)}),[h.refs]),p=w.useCallback((e=>{(Sr(e)||null===e)&&(d.current=e,s(e)),(Sr(h.refs.reference.current)||null===h.refs.reference.current||null!==e&&!Sr(e))&&h.refs.setReference(e)}),[h.refs]),f=w.useMemo((()=>({...h.refs,setReference:p,setPositionReference:m,domReference:d})),[h.refs,p,m]),_=w.useMemo((()=>({...h.elements,domReference:u})),[h.elements,u]),y=w.useMemo((()=>({...h,...r,refs:f,elements:_,nodeId:t})),[h,f,_,t,r]);return Li((()=>{r.dataRef.current.floatingContext=y;const e=null==c?void 0:c.nodesRef.current.find((e=>e.id===t));e&&(e.context=y)})),w.useMemo((()=>({...h,context:y,refs:f,elements:_})),[h,f,_,y])}const fs="active",_s="selected";function ys(e,t,n){const r=new Map,a="item"===n;let i=e;if(a&&e){const{[fs]:t,[_s]:n,...r}=e;i=r}return{..."floating"===n&&{tabIndex:-1,[as]:""},...i,...t.map((t=>{const r=t?t[n]:null;return"function"==typeof r?e?r(e):null:r})).concat(e).reduce(((e,t)=>t?(Object.entries(t).forEach((t=>{let[n,i]=t;var s;a&&[fs,_s].includes(n)||(0===n.indexOf("on")?(r.has(n)||r.set(n,[]),"function"==typeof i&&(null==(s=r.get(n))||s.push(i),e[n]=function(){for(var e,t=arguments.length,a=new Array(t),i=0;ie(...a))).find((e=>void 0!==e))})):e[n]=i)})),e):e),{})}}let gs=!1;function vs(e,t,n){switch(e){case"vertical":return t;case"horizontal":return n;default:return t||n}}function bs(e,t){return vs(t,e===ci||e===hi,e===mi||e===pi)}function Ms(e,t,n){return vs(t,e===hi,n?e===mi:e===pi)||"Enter"===e||" "===e||""===e}function ws(e,t,n){return vs(t,n?e===pi:e===mi,e===ci)}function Ls(e,t){const{open:n,onOpenChange:r,elements:a}=e,{listRef:i,activeIndex:s,onNavigate:o=()=>{},enabled:l=!0,selectedIndex:u=null,allowEscape:d=!1,loop:c=!1,nested:h=!1,rtl:m=!1,virtual:p=!1,focusItemOnOpen:f="auto",focusItemOnHover:_=!0,openOnArrowKeyDown:y=!0,disabledIndices:g,orientation:v="vertical",cols:b=1,scrollItemIntoView:M=!0,virtualItemRef:L,itemSizes:k,dense:S=!1}=t,D=Ci(is(a.floating)),Y=ji(),T=Pi(),x=di(o),O=Kr(a.domReference),j=w.useRef(f),P=w.useRef(null!=u?u:-1),E=w.useRef(null),C=w.useRef(!0),H=w.useRef(x),R=w.useRef(!!a.floating),A=w.useRef(n),I=w.useRef(!1),F=w.useRef(!1),N=Ci(g),W=Ci(n),z=Ci(M),V=Ci(u),[B,U]=w.useState(),[$,q]=w.useState(),G=di((function(e,t,n){function r(e){p?(U(e.id),null==T||T.events.emit("virtualfocus",e),L&&(L.current=e)):Ri(e,{preventScroll:!0,sync:!(!zr().toLowerCase().startsWith("mac")||navigator.maxTouchPoints||!$r())&&(gs||I.current)})}void 0===n&&(n=!1);const a=e.current[t.current];a&&r(a),requestAnimationFrame((()=>{const i=e.current[t.current]||a;if(!i)return;a||r(i);const s=z.current;s&&J&&(n||!C.current)&&(null==i.scrollIntoView||i.scrollIntoView("boolean"==typeof s?{block:"nearest",inline:"nearest"}:s))}))}));Li((()=>{document.createElement("div").focus({get preventScroll(){return gs=!0,!1}})}),[]),Li((()=>{l&&(n&&a.floating?j.current&&null!=u&&(F.current=!0,P.current=u,x(u)):R.current&&(P.current=-1,H.current(null)))}),[l,n,a.floating,u,x]),Li((()=>{if(l&&n&&a.floating)if(null==s){if(I.current=!1,null!=V.current)return;if(R.current&&(P.current=-1,G(i,P)),(!A.current||!R.current)&&j.current&&(null!=E.current||!0===j.current&&null==E.current)){let e=0;const t=()=>{null==i.current[0]?(e<2&&(e?requestAnimationFrame:queueMicrotask)(t),e++):(P.current=null==E.current||Ms(E.current,v,m)||h?yi(i,N.current):gi(i,N.current),E.current=null,x(P.current))};t()}}else _i(i,s)||(P.current=s,G(i,P,F.current),F.current=!1)}),[l,n,a.floating,s,V,h,i,v,m,x,G,N]),Li((()=>{var e;if(!l||a.floating||!T||p||!R.current)return;const t=T.nodesRef.current,n=null==(e=t.find((e=>e.id===Y)))||null==(e=e.context)?void 0:e.elements.floating,r=Nr(Gr(a.floating)),i=t.some((e=>e.context&&Wr(e.context.elements.floating,r)));n&&!i&&C.current&&n.focus({preventScroll:!0})}),[l,a.floating,T,Y,p]),Li((()=>{if(l&&T&&p&&!Y)return T.events.on("virtualfocus",e),()=>{T.events.off("virtualfocus",e)};function e(e){q(e.id),L&&(L.current=e)}}),[l,T,p,Y,L]),Li((()=>{H.current=x,R.current=!!a.floating})),Li((()=>{n||(E.current=null)}),[n]),Li((()=>{A.current=n}),[n]);const Z=null!=s,J=w.useMemo((()=>{function e(e){if(!n)return;const t=i.current.indexOf(e);-1!==t&&x(t)}const t={onFocus(t){let{currentTarget:n}=t;e(n)},onClick:e=>{let{currentTarget:t}=e;return t.focus({preventScroll:!0})},..._&&{onMouseMove(t){let{currentTarget:n}=t;e(n)},onPointerLeave(e){let{pointerType:t}=e;C.current&&"touch"!==t&&(P.current=-1,G(i,P),x(null),p||Ri(D.current,{preventScroll:!0}))}}};return t}),[n,D,G,_,i,x,p]),Q=di((e=>{if(C.current=!1,I.current=!0,229===e.which)return;if(!W.current&&e.currentTarget===D.current)return;if(h&&ws(e.key,v,m))return Qr(e),r(!1,e.nativeEvent,"list-navigation"),void(Dr(a.domReference)&&(p?null==T||T.events.emit("virtualfocus",a.domReference):a.domReference.focus()));const t=P.current,s=yi(i,g),o=gi(i,g);if(O||("Home"===e.key&&(Qr(e),P.current=s,x(P.current)),"End"===e.key&&(Qr(e),P.current=o,x(P.current))),b>1){const t=k||Array.from({length:i.current.length},(()=>({width:1,height:1}))),n=function(e,t,n){const r=[];let a=0;return e.forEach(((e,i)=>{let{width:s,height:o}=e,l=!1;for(n&&(a=0);!l;){const e=[];for(let n=0;nnull==r[e]))?(e.forEach((e=>{r[e]=i})),l=!0):a++}})),[...r]}(t,b,S),r=n.findIndex((e=>null!=e&&!wi(i.current,e,g))),a=n.reduce(((e,t,n)=>null==t||wi(i.current,t,g)?e:n),-1),l=n[function(e,t){let{event:n,orientation:r,loop:a,rtl:i,cols:s,disabledIndices:o,minIndex:l,maxIndex:u,prevIndex:d,stopEvent:c=!1}=t,h=d;if(n.key===ci){if(c&&Qr(n),-1===d)h=u;else if(h=vi(e,{startingIndex:h,amount:s,decrement:!0,disabledIndices:o}),a&&(d-se?n:n-s}_i(e,h)&&(h=d)}if(n.key===hi&&(c&&Qr(n),-1===d?h=l:(h=vi(e,{startingIndex:d,amount:s,disabledIndices:o}),a&&d+s>u&&(h=vi(e,{startingIndex:d%s-s,amount:s,disabledIndices:o}))),_i(e,h)&&(h=d)),"both"===r){const t=na(d/s);n.key===(i?mi:pi)&&(c&&Qr(n),d%s!=s-1?(h=vi(e,{startingIndex:d,disabledIndices:o}),a&&fi(h,s,t)&&(h=vi(e,{startingIndex:d-d%s-1,disabledIndices:o}))):a&&(h=vi(e,{startingIndex:d-d%s-1,disabledIndices:o})),fi(h,s,t)&&(h=d)),n.key===(i?pi:mi)&&(c&&Qr(n),d%s!=0?(h=vi(e,{startingIndex:d,decrement:!0,disabledIndices:o}),a&&fi(h,s,t)&&(h=vi(e,{startingIndex:d+(s-d%s),decrement:!0,disabledIndices:o}))):a&&(h=vi(e,{startingIndex:d+(s-d%s),decrement:!0,disabledIndices:o})),fi(h,s,t)&&(h=d));const r=na(u/s)===t;_i(e,h)&&(h=a&&r?n.key===(i?pi:mi)?u:vi(e,{startingIndex:d-d%s-1,disabledIndices:o}):d)}return h}({current:n.map((e=>null!=e?i.current[e]:null))},{event:e,orientation:v,loop:c,rtl:m,cols:b,disabledIndices:Mi([...g||i.current.map(((e,t)=>wi(i.current,t)?t:void 0)),void 0],n),minIndex:r,maxIndex:a,prevIndex:bi(P.current>o?s:P.current,t,n,b,e.key===hi?"bl":e.key===(m?mi:pi)?"tr":"tl"),stopEvent:!0})];if(null!=l&&(P.current=l,x(P.current)),"both"===v)return}if(bs(e.key,v)){if(Qr(e),n&&!p&&Nr(e.currentTarget.ownerDocument)===e.currentTarget)return P.current=Ms(e.key,v,m)?s:o,void x(P.current);Ms(e.key,v,m)?P.current=c?t>=o?d&&t!==i.current.length?-1:s:vi(i,{startingIndex:t,disabledIndices:g}):Math.min(o,vi(i,{startingIndex:t,disabledIndices:g})):P.current=c?t<=s?d&&-1!==t?i.current.length:o:vi(i,{startingIndex:t,decrement:!0,disabledIndices:g}):Math.max(s,vi(i,{startingIndex:t,decrement:!0,disabledIndices:g})),_i(i,P.current)?x(null):x(P.current)}})),K=w.useMemo((()=>p&&n&&Z&&{"aria-activedescendant":$||B}),[p,n,Z,$,B]),X=w.useMemo((()=>({"aria-orientation":"both"===v?void 0:v,...!Kr(a.domReference)&&K,onKeyDown:Q,onPointerMove(){C.current=!0}})),[K,Q,a.domReference,v]),ee=w.useMemo((()=>{function e(e){"auto"===f&&Br(e.nativeEvent)&&(j.current=!0)}return{...K,onKeyDown(e){C.current=!1;const t=e.key.startsWith("Arrow"),a=["Home","End"].includes(e.key),s=t||a,o=function(e,t,n){return vs(t,n?e===mi:e===pi,e===hi)}(e.key,v,m),l=ws(e.key,v,m),d=bs(e.key,v),c=(h?o:d)||"Enter"===e.key||""===e.key.trim();if(p&&n){const t=null==T?void 0:T.nodesRef.current.find((e=>null==e.parentId)),n=T&&t?function(e,t){let n,r=-1;return function t(a,i){i>r&&(n=a,r=i),Ai(e,a).forEach((e=>{t(e.id,i+1)}))}(t,0),e.find((e=>e.id===n))}(T.nodesRef.current,t.id):null;if(s&&n&&L){const t=new KeyboardEvent("keydown",{key:e.key,bubbles:!0});if(o||l){var f,_;const r=(null==(f=n.context)?void 0:f.elements.domReference)===e.currentTarget,a=l&&!r?null==(_=n.context)?void 0:_.elements.domReference:o?i.current.find((e=>(null==e?void 0:e.id)===B)):null;a&&(Qr(e),a.dispatchEvent(t),q(void 0))}var g;if((d||a)&&n.context&&n.context.open&&n.parentId&&e.currentTarget!==n.context.elements.domReference)return Qr(e),void(null==(g=n.context.elements.domReference)||g.dispatchEvent(t))}return Q(e)}(n||y||!t)&&(c&&(E.current=h&&d?null:e.key),h?o&&(Qr(e),n?(P.current=yi(i,N.current),x(P.current)):r(!0,e.nativeEvent,"list-navigation")):d&&(null!=u&&(P.current=u),Qr(e),!n&&y?r(!0,e.nativeEvent,"list-navigation"):Q(e),n&&x(P.current)))},onFocus(){n&&!p&&x(null)},onPointerDown:function(e){j.current=f,"auto"===f&&Ur(e.nativeEvent)&&(j.current=!0)},onMouseDown:e,onClick:e}}),[B,K,Q,N,f,i,h,x,r,n,y,v,m,u,T,p,L]);return w.useMemo((()=>l?{reference:ee,floating:X,item:J}:{}),[l,ee,X,J])}const ks=new Map([["select","listbox"],["combobox","listbox"],["label",!1]]);function Ss(e,t,n){let r,a=n.initialDeps??[];function i(){var i,s,o,l;let u;n.key&&(null==(i=n.debug)?void 0:i.call(n))&&(u=Date.now());const d=e(),c=d.length!==a.length||d.some(((e,t)=>a[t]!==e));if(!c)return r;let h;if(a=d,n.key&&(null==(s=n.debug)?void 0:s.call(n))&&(h=Date.now()),r=t(...d),n.key&&(null==(o=n.debug)?void 0:o.call(n))){const e=Math.round(100*(Date.now()-u))/100,t=Math.round(100*(Date.now()-h))/100,r=t/16,a=(e,t)=>{for(e=String(e);e.length{a=e},i}function Ds(e,t){if(void 0===e)throw new Error("Unexpected undefined"+(t?`: ${t}`:""));return e}const Ys=(e,t,n)=>{let r;return function(...a){e.clearTimeout(r),r=e.setTimeout((()=>t.apply(this,a)),n)}},Ts=e=>e,xs=e=>{const t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let e=t;e<=n;e++)r.push(e);return r},Os=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;const a=e=>{const{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(a(n.getBoundingClientRect()),!r.ResizeObserver)return()=>{};const i=new r.ResizeObserver((t=>{const r=()=>{const e=t[0];if(null==e?void 0:e.borderBoxSize){const t=e.borderBoxSize[0];if(t)return void a({width:t.inlineSize,height:t.blockSize})}a(n.getBoundingClientRect())};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()}));return i.observe(n,{box:"border-box"}),()=>{i.unobserve(n)}},js={passive:!0},Ps="undefined"==typeof window||"onscrollend"in window,Es=(e,t)=>{const n=e.scrollElement;if(!n)return;const r=e.targetWindow;if(!r)return;let a=0;const i=e.options.useScrollendEvent&&Ps?()=>{}:Ys(r,(()=>{t(a,!1)}),e.options.isScrollingResetDelay),s=r=>()=>{const{horizontal:s,isRtl:o}=e.options;a=s?n.scrollLeft*(o?-1:1):n.scrollTop,i(),t(a,r)},o=s(!0),l=s(!1);l(),n.addEventListener("scroll",o,js);const u=e.options.useScrollendEvent&&Ps;return u&&n.addEventListener("scrollend",l,js),()=>{n.removeEventListener("scroll",o),u&&n.removeEventListener("scrollend",l)}},Cs=(e,t,n)=>{if(null==t?void 0:t.borderBoxSize){const e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?"inlineSize":"blockSize"])}return Math.round(e.getBoundingClientRect()[n.options.horizontal?"width":"height"])},Hs=(e,{adjustments:t=0,behavior:n},r)=>{var a,i;const s=e+t;null==(i=null==(a=r.scrollElement)?void 0:a.scrollTo)||i.call(a,{[r.options.horizontal?"left":"top"]:s,behavior:n})};class Rs{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollToIndexTimeoutId=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null;const t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver((e=>{e.forEach((e=>{const t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()}))})):null);return{disconnect:()=>{var n;null==(n=t())||n.disconnect(),e=null},observe:e=>{var n;return null==(n=t())?void 0:n.observe(e,{box:"border-box"})},unobserve:e=>{var n;return null==(n=t())?void 0:n.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach((([t,n])=>{void 0===n&&delete e[t]})),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:Ts,rangeExtractor:xs,onChange:()=>{},measureElement:Cs,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,n;null==(n=(t=this.options).onChange)||n.call(t,this,e)},this.maybeNotify=Ss((()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null])),(e=>{this.notify(e)}),{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach((e=>e())),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach((e=>{this.observer.observe(e)})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,(e=>{this.scrollRect=e,this.maybeNotify()}))),this.unsubs.push(this.options.observeElementOffset(this,((e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{const n=new Map,r=new Map;for(let a=t-1;a>=0;a--){const t=e[a];if(n.has(t.lane))continue;const i=r.get(t.lane);if(null==i||t.end>i.end?r.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end))[0]:void 0},this.getMeasurementOptions=Ss((()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled]),((e,t,n,r,a)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:a})),{key:!1}),this.getMeasurements=Ss((()=>[this.getMeasurementOptions(),this.itemSizeCache]),(({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:a},i)=>{if(!a)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach((e=>{this.itemSizeCache.set(e.key,e.size)})));const s=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];const o=this.measurementsCache.slice(0,s);for(let a=s;athis.options.debug}),this.calculateRange=Ss((()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes]),((e,t,n,r)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){const a=e.length-1;let i=As(0,a,(t=>e[t].start),n),s=i;if(1===r)for(;s1){const o=Array(r).fill(0);for(;se0&&l.some((e=>e>=n));){const t=e[i];l[t.lane]=t.start,i--}i=Math.max(0,i-i%r),s=Math.min(a,s+(r-1-s%r))}return{startIndex:i,endIndex:s}}({measurements:e,outerSize:t,scrollOffset:n,lanes:r}):null),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Ss((()=>{let e=null,t=null;const n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]}),((e,t,n,r,a)=>null===r||null===a?[]:e({startIndex:r,endIndex:a,overscan:t,count:n})),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{const n=this.indexFromElement(e),r=this.measurementsCache[n];if(!r)return;const a=r.key,i=this.elementsCache.get(a);i!==e&&(i&&this.observer.unobserve(i),this.observer.observe(e),this.elementsCache.set(a,e)),e.isConnected&&this.resizeItem(n,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{const n=this.measurementsCache[e];if(!n)return;const r=t-(this.itemSizeCache.get(n.key)??n.size);0!==r&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(n,r,this):n.start{e?this._measureElement(e,void 0):this.elementsCache.forEach(((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))}))},this.getVirtualItems=Ss((()=>[this.getVirtualIndexes(),this.getMeasurements()]),((e,t)=>{const n=[];for(let r=0,a=e.length;rthis.options.debug}),this.getVirtualItemForOffset=e=>{const t=this.getMeasurements();if(0!==t.length)return Ds(t[As(0,t.length-1,(e=>Ds(t[e]).start),e)])},this.getOffsetForAlignment=(e,t,n=0)=>{const r=this.getSize(),a=this.getScrollOffset();"auto"===t&&(t=e>=a+r?"end":"start"),"center"===t?e+=(n-r)/2:"end"===t&&(e-=r);const i=this.options.horizontal?"scrollWidth":"scrollHeight",s=(this.scrollElement?"document"in this.scrollElement?this.scrollElement.document.documentElement[i]:this.scrollElement[i]:0)-r;return Math.max(Math.min(s,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const n=this.measurementsCache[e];if(!n)return;const r=this.getSize(),a=this.getScrollOffset();if("auto"===t)if(n.end>=a+r-this.options.scrollPaddingEnd)t="end";else{if(!(n.start<=a+this.options.scrollPaddingStart))return[a,t];t="start"}const i="end"===t?n.end+this.options.scrollPaddingEnd:n.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(i,t,n.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.cancelScrollToIndex=()=>{null!==this.scrollToIndexTimeoutId&&this.targetWindow&&(this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId),this.scrollToIndexTimeoutId=null)},this.scrollToOffset=(e,{align:t="start",behavior:n}={})=>{this.cancelScrollToIndex(),"smooth"===n&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:n})},this.scrollToIndex=(e,{align:t="auto",behavior:n}={})=>{e=Math.max(0,Math.min(e,this.options.count-1)),this.cancelScrollToIndex(),"smooth"===n&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.");const r=this.getOffsetForIndex(e,t);if(!r)return;const[a,i]=r;this._scrollToOffset(a,{adjustments:void 0,behavior:n}),"smooth"!==n&&this.isDynamicMode()&&this.targetWindow&&(this.scrollToIndexTimeoutId=this.targetWindow.setTimeout((()=>{if(this.scrollToIndexTimeoutId=null,this.elementsCache.has(this.options.getItemKey(e))){const[a]=Ds(this.getOffsetForIndex(e,i));t=a,r=this.getScrollOffset(),Math.abs(t-r)<1||this.scrollToIndex(e,{align:i,behavior:n})}else this.scrollToIndex(e,{align:i,behavior:n});var t,r})))},this.scrollBy=(e,{behavior:t}={})=>{this.cancelScrollToIndex(),"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;const t=this.getMeasurements();let n;if(0===t.length)n=this.options.paddingStart;else if(1===this.options.lanes)n=(null==(e=t[t.length-1])?void 0:e.end)??0;else{const e=Array(this.options.lanes).fill(null);let r=t.length-1;for(;r>0&&e.some((e=>null===e));){const n=t[r];null===e[n.lane]&&(e[n.lane]=n.end),r--}n=Math.max(...e.filter((e=>null!==e)))}return Math.max(n-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}const As=(e,t,n,r)=>{for(;e<=t;){const a=(e+t)/2|0,i=n(a);if(ir))return a;t=a-1}}return e>0?e-1:0},Is="undefined"!=typeof document?w.useLayoutEffect:w.useEffect;var Fs=Object.defineProperty,Ns=Object.getOwnPropertySymbols,Ws=Object.prototype.hasOwnProperty,zs=Object.prototype.propertyIsEnumerable,Vs=(e,t,n)=>t in e?Fs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const Bs=(0,w.forwardRef)((function(e,t){var n=e,{children:r,active:a,addGroupBottomBorder:i,isMultiValueEdit:s,checked:o}=n,l=((e,t)=>{var n={};for(var r in e)Ws.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&Ns)for(var r of Ns(e))t.indexOf(r)<0&&zs.call(e,r)&&(n[r]=e[r]);return n})(n,["children","active","addGroupBottomBorder","isMultiValueEdit","checked"]);const u=(0,Xt.useStyles2)(Us),d=(0,w.useId)();return k().createElement("div",((e,t)=>{for(var n in t||(t={}))Ws.call(t,n)&&Vs(e,n,t[n]);if(Ns)for(var n of Ns(t))zs.call(t,n)&&Vs(e,n,t[n]);return e})({ref:t,role:"option",id:d,"aria-selected":a,className:(0,nn.cx)(u.option,a&&u.optionFocused,i&&u.groupBottomBorder)},l),k().createElement("div",{className:u.optionBody,"data-testid":`data-testid ad hoc filter option value ${r}`},k().createElement("span",null,s?k().createElement(Xt.Checkbox,{tabIndex:-1,checked:o,className:u.checkbox}):null,r)))})),Us=e=>({option:(0,nn.css)({label:"grafana-select-option",top:0,left:0,width:"100%",position:"absolute",padding:e.spacing(1),display:"flex",alignItems:"center",flexDirection:"row",flexShrink:0,whiteSpace:"nowrap",cursor:"pointer","&:hover":{background:e.colors.action.hover,"@media (forced-colors: active), (prefers-contrast: more)":{border:`1px solid ${e.colors.primary.border}`}}}),optionFocused:(0,nn.css)({label:"grafana-select-option-focused",background:e.colors.action.focus,"@media (forced-colors: active), (prefers-contrast: more)":{border:`1px solid ${e.colors.primary.border}`}}),optionBody:(0,nn.css)({label:"grafana-select-option-body",display:"flex",fontWeight:e.typography.fontWeightMedium,flexDirection:"column",flexGrow:1}),groupBottomBorder:(0,nn.css)({borderBottom:`1px solid ${e.colors.border.weak}`}),checkbox:(0,nn.css)({paddingRight:e.spacing(.5)}),multiValueApplyWrapper:(0,nn.css)({position:"fixed",top:0,left:0,display:"flex",backgroundColor:e.colors.background.primary,color:e.colors.text.primary,boxShadow:e.shadows.z2,overflowY:"auto",zIndex:e.zIndex.dropdown,gap:e.spacing(1.5),padding:`${e.spacing(1.5)} ${e.spacing(1)}`})}),$s=()=>k().createElement(Bs,{onClick:e=>e.stopPropagation()},"Loading options..."),qs=()=>k().createElement(Bs,{onClick:e=>e.stopPropagation()},"No options found"),Gs=({handleFetchOptions:e})=>k().createElement(Bs,{onClick:e},"An error has occurred fetching labels. Click to retry"),Zs=({onApply:e,floatingElement:t,maxOptionWidth:n,menuHeight:r})=>{const a=(0,Xt.useStyles2)(Us),i=null==t?void 0:t.getBoundingClientRect();return k().createElement("div",{className:a.multiValueApplyWrapper,style:{width:`${n}px`,transform:`translate(${null==i?void 0:i.left}px,${i?i.top+r:0}px)`}},k().createElement(Xt.Button,{onClick:e,size:"sm",tabIndex:-1},"Apply"))},Js={key:"operator",operator:"value",value:"key"},Qs=(e,t,n,r,a)=>Ks(Js[e],t,"value"===e?n:void 0,r,a),Ks=(e,t,n,r,a)=>{t(e),null==n||n(void 0,a),setTimeout((()=>null==r?void 0:r.focus()))},Xs=({filterInputType:e,item:t,filter:n,setFilterMultiValues:r,onAddCustomValue:a})=>{var i,s,o,l,u;if("key"===e)return{key:t.value,keyLabel:t.label?t.label:t.value,meta:null==t?void 0:t.meta};if("value"===e)return t.isCustom&&a?a(t,n):{value:t.value,valueLabels:[t.label?t.label:t.value]};if("operator"===e){if(rl(n.operator)&&!rl(t.value))return r([]),{operator:t.value,valueLabels:[(null==(i=n.valueLabels)?void 0:i[0])||(null==(s=n.values)?void 0:s[0])||n.value],values:void 0};if(rl(t.value)&&!rl(n.operator)){const e=[(null==(o=n.valueLabels)?void 0:o[0])||(null==(l=n.values)?void 0:l[0])||n.value],a=[n.value];return a[0]&&r([{value:a[0],label:null!=(u=null==e?void 0:e[0])?u:a[0]}]),{operator:t.value,valueLabels:e,values:a}}}return{[e]:t.value}},eo="Filter by label values",to=(e,t,n,r)=>{var a;return"key"===t?eo:"value"===t?n?"Edit values":(null==(a=e.valueLabels)?void 0:a[0])||"":e[t]&&!r?`${e[t]}`:eo},no=({populateInputOnEdit:e,item:t,filterInputType:n,setInputValue:r,filter:a})=>{var i,s,o;e&&!rl(t.value||"")&&"value"===Js[n]?r(null!=(o=null!=(s=null==(i=null==a?void 0:a.valueLabels)?void 0:i[0])?s:null==a?void 0:a.value)?o:""):r("")};var ro=Object.defineProperty,ao=Object.defineProperties,io=Object.getOwnPropertyDescriptors,so=Object.getOwnPropertySymbols,oo=Object.prototype.hasOwnProperty,lo=Object.prototype.propertyIsEnumerable,uo=(e,t,n)=>t in e?ro(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,co=(e,t)=>{for(var n in t||(t={}))oo.call(t,n)&&uo(e,n,t[n]);if(so)for(var n of so(t))lo.call(t,n)&&uo(e,n,t[n]);return e};const ho=({item:e,handleRemoveMultiValue:t,index:n,handleEditMultiValuePill:r})=>{var a,i;const s=(0,Xt.useStyles2)(mo),o=(0,w.useCallback)((t=>{t.stopPropagation(),t.preventDefault(),r(e)}),[r,e]),l=(0,w.useCallback)((e=>{"Enter"===e.key&&o(e)}),[o]),u=(0,w.useCallback)((n=>{n.stopPropagation(),n.preventDefault(),t(e)}),[t,e]),d=(0,w.useCallback)((e=>{"Enter"===e.key&&u(e)}),[u]);return k().createElement("div",{className:(0,nn.cx)(s.basePill,s.valuePill),onClick:o,onKeyDown:l,tabIndex:0,id:`${e.value}-${n}`},null!=(a=e.label)?a:e.value,k().createElement(Xt.Button,{onClick:u,onKeyDownCapture:d,fill:"text",size:"sm",variant:"secondary",className:s.removeButton,tooltip:`Remove filter value - ${null!=(i=e.label)?i:e.value}`},k().createElement(Xt.Icon,{name:"times",size:"md",id:`${e.value}-${n}-close-icon`})))},mo=e=>{return{basePill:(0,nn.css)((t=co({display:"flex",alignItems:"center",background:e.colors.action.disabledBackground,border:`1px solid ${e.colors.border.weak}`,padding:e.spacing(.125,1,.125,1),color:e.colors.text.primary,overflow:"hidden",whiteSpace:"nowrap",minHeight:e.spacing(2.75)},e.typography.bodySmall),n={cursor:"pointer"},ao(t,io(n)))),valuePill:(0,nn.css)({background:e.colors.action.selected,padding:e.spacing(.125,0,.125,1)}),removeButton:(0,nn.css)({marginInline:e.spacing(.5),height:"100%",padding:0,cursor:"pointer","&:hover":{color:e.colors.text.primary}})};var t,n};var po=Object.defineProperty,fo=Object.defineProperties,_o=Object.getOwnPropertyDescriptors,yo=Object.getOwnPropertySymbols,go=Object.prototype.hasOwnProperty,vo=Object.prototype.propertyIsEnumerable,bo=(e,t,n)=>t in e?po(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Mo=(e,t)=>{for(var n in t||(t={}))go.call(t,n)&&bo(e,n,t[n]);if(yo)for(var n of yo(t))vo.call(t,n)&&bo(e,n,t[n]);return e},wo=(e,t)=>fo(e,_o(t));const Lo=(0,w.forwardRef)((function({filter:e,model:t,isAlwaysWip:n,handleChangeViewMode:r,focusOnWipInputRef:a,populateInputOnEdit:i},s){var o,l,u,d;const[c,h]=(0,w.useState)(!1),[m,p]=(0,w.useState)([]),[f,_]=(0,w.useState)(!1),[y,g]=(0,w.useState)(!1),[v,b]=(0,w.useState)(""),[M,L]=(0,w.useState)(null),[S,D]=(0,w.useState)(n?"key":"value"),[Y,T]=(0,w.useState)(!n&&"value"===S),x=(0,Xt.useStyles2)(ko),[O,j]=(0,w.useState)([]),[P,E]=(0,w.useState)({}),C=null==(o=t.state.allowCustomValue)||o,H=(0,w.useRef)(null),R=rl((null==e?void 0:e.operator)||""),A=R&&"value"===S,I=(0,w.useId)(),F=(0,w.useRef)([]),N=(0,w.useRef)([]),W=(0,w.useRef)(n?"key":"value"),z=(0,w.useMemo)((()=>ir(m)),[m]),V=(0,w.useMemo)((()=>!n&&t.state.filters.at(-1)===e),[e,n,t.state.filters]),B=(0,w.useCallback)((()=>{n&&(t._addWip(),D("key"),b(""))}),[t,n]),U=(0,w.useCallback)(((e,t,n,r)=>{if(n.length){const r=[],a=[];n.forEach((e=>{var t;r.push(null!=(t=e.label)?t:e.value),a.push(e.value)})),e._updateFilter(t,{valueLabels:r,values:a,value:a[0]}),j([])}r||setTimeout((()=>{var e;return null==(e=Z.domReference.current)?void 0:e.focus()}))}),[]),$=(0,w.useCallback)((e=>{j((t=>t.some((t=>t.value===e.value))?t.filter((t=>t.value!==e.value)):[...t,e]))}),[]),q=(0,w.useCallback)(((n,a,i)=>{h(n),i&&["outside-press","escape-key"].includes(i)&&(A&&U(t,e,O),B(),null==r||r())}),[e,O,r,U,B,A,t]),G=(0,w.useMemo)((()=>[I,...O.reduce(((e,t,n)=>[...e,`${t.value}-${n}`,`${t.value}-${n}-close-icon`]),[])]),[I,O]),{refs:Z,floatingStyles:J,context:Q,getReferenceProps:K,getFloatingProps:X,getItemProps:ee}=(({open:e,onOpenChange:t,activeIndex:n,setActiveIndex:r,outsidePressIdsToIgnore:a,listRef:i,disabledIndicesRef:s})=>{const{refs:o,floatingStyles:l,context:u}=ps({whileElementsMounted:Ja,open:e,onOpenChange:t,placement:"bottom-start",middleware:[{...Qa(10),options:[10,void 0]},si({padding:10}),oi({apply({availableHeight:e,availableWidth:t,elements:n}){n.floating.style.maxHeight=`${Math.min(300,e)}px`,n.floating.style.maxWidth=`${t}px`},padding:10})],strategy:"fixed"}),d=function(e,t){var n;void 0===t&&(t={});const{open:r,floatingId:a}=e,{enabled:i=!0,role:s="dialog"}=t,o=null!=(n=ks.get(s))?n:s,l=Ti(),u=null!=ji(),d=w.useMemo((()=>"tooltip"===o||"label"===s?{["aria-"+("label"===s?"labelledby":"describedby")]:r?a:void 0}:{"aria-expanded":r?"true":"false","aria-haspopup":"alertdialog"===o?"dialog":o,"aria-controls":r?a:void 0,..."listbox"===o&&{role:"combobox"},..."menu"===o&&{id:l},..."menu"===o&&u&&{role:"menuitem"},..."select"===s&&{"aria-autocomplete":"none"},..."combobox"===s&&{"aria-autocomplete":"list"}}),[o,a,u,r,l,s]),c=w.useMemo((()=>{const e={id:a,...o&&{role:o}};return"tooltip"===o||"label"===s?e:{...e,..."menu"===o&&{"aria-labelledby":l}}}),[o,a,l,s]),h=w.useCallback((e=>{let{active:t,selected:n}=e;const r={role:"option",...t&&{id:a+"-option"}};switch(s){case"select":return{...r,"aria-selected":t&&n};case"combobox":return{...r,...t&&{"aria-selected":!0}}}return{}}),[a,s]);return w.useMemo((()=>i?{reference:d,floating:c,item:h}:{}),[i,d,c,h])}(u,{role:"listbox"}),c=function(e,t){void 0===t&&(t={});const{open:n,onOpenChange:r,elements:a,dataRef:i}=e,{enabled:s=!0,escapeKey:o=!0,outsidePress:l=!0,outsidePressEvent:u="pointerdown",referencePress:d=!1,referencePressEvent:c="pointerdown",ancestorScroll:h=!1,bubbles:m,capture:p}=t,f=Pi(),_=di("function"==typeof l?l:()=>!1),y="function"==typeof l?_:l,g=w.useRef(!1),v=w.useRef(!1),{escapeKey:b,outsidePress:M}=ms(m),{escapeKey:L,outsidePress:k}=ms(p),S=w.useRef(!1),D=di((e=>{var t;if(!n||!s||!o||"Escape"!==e.key)return;if(S.current)return;const a=null==(t=i.current.floatingContext)?void 0:t.nodeId,l=f?Ai(f.nodesRef.current,a):[];if(!b&&(e.stopPropagation(),l.length>0)){let e=!0;if(l.forEach((t=>{var n;null==(n=t.context)||!n.open||t.context.dataRef.current.__escapeKeyBubbles||(e=!1)})),!e)return}r(!1,function(e){return"nativeEvent"in e}(e)?e.nativeEvent:e,"escape-key")})),Y=di((e=>{var t;const n=()=>{var t;D(e),null==(t=Jr(e))||t.removeEventListener("keydown",n)};null==(t=Jr(e))||t.addEventListener("keydown",n)})),T=di((e=>{var t;const n=g.current;g.current=!1;const s=v.current;if(v.current=!1,"click"===u&&s)return;if(n)return;if("function"==typeof y&&!y(e))return;const o=Jr(e),l="["+Ei("inert")+"]",d=Gr(a.floating).querySelectorAll(l);let c=Sr(o)?o:null;for(;c&&!Er(c);){const e=Rr(c);if(Er(e)||!Sr(e))break;c=e}if(d.length&&Sr(o)&&!o.matches("html,body")&&!Wr(o,a.floating)&&Array.from(d).every((e=>!Wr(c,e))))return;if(Dr(o)&&j){const t=o.clientWidth>0&&o.scrollWidth>o.clientWidth,n=o.clientHeight>0&&o.scrollHeight>o.clientHeight;let r=n&&e.offsetX>o.clientWidth;if(n&&"rtl"===Cr(o).direction&&(r=e.offsetX<=o.offsetWidth-o.clientWidth),r||t&&e.offsetY>o.clientHeight)return}const h=null==(t=i.current.floatingContext)?void 0:t.nodeId,m=f&&Ai(f.nodesRef.current,h).some((t=>{var n;return Zr(e,null==(n=t.context)?void 0:n.elements.floating)}));if(Zr(e,a.floating)||Zr(e,a.domReference)||m)return;const p=f?Ai(f.nodesRef.current,h):[];if(p.length>0){let e=!0;if(p.forEach((t=>{var n;null==(n=t.context)||!n.open||t.context.dataRef.current.__outsidePressBubbles||(e=!1)})),!e)return}r(!1,e,"outside-press")})),x=di((e=>{var t;const n=()=>{var t;T(e),null==(t=Jr(e))||t.removeEventListener(u,n)};null==(t=Jr(e))||t.addEventListener(u,n)}));w.useEffect((()=>{if(!n||!s)return;i.current.__escapeKeyBubbles=b,i.current.__outsidePressBubbles=M;let e=-1;function t(e){r(!1,e,"ancestor-scroll")}function l(){window.clearTimeout(e),S.current=!0}function d(){e=window.setTimeout((()=>{S.current=!1}),Pr()?5:0)}const c=Gr(a.floating);o&&(c.addEventListener("keydown",L?Y:D,L),c.addEventListener("compositionstart",l),c.addEventListener("compositionend",d)),y&&c.addEventListener(u,k?x:T,k);let m=[];return h&&(Sr(a.domReference)&&(m=Ir(a.domReference)),Sr(a.floating)&&(m=m.concat(Ir(a.floating))),!Sr(a.reference)&&a.reference&&a.reference.contextElement&&(m=m.concat(Ir(a.reference.contextElement)))),m=m.filter((e=>{var t;return e!==(null==(t=c.defaultView)?void 0:t.visualViewport)})),m.forEach((e=>{e.addEventListener("scroll",t,{passive:!0})})),()=>{o&&(c.removeEventListener("keydown",L?Y:D,L),c.removeEventListener("compositionstart",l),c.removeEventListener("compositionend",d)),y&&c.removeEventListener(u,k?x:T,k),m.forEach((e=>{e.removeEventListener("scroll",t)})),window.clearTimeout(e)}}),[i,a,o,y,u,n,r,h,s,b,M,D,L,Y,T,k,x]),w.useEffect((()=>{g.current=!1}),[y,u]);const O=w.useMemo((()=>({onKeyDown:D,[cs[c]]:e=>{d&&r(!1,e.nativeEvent,"reference-press")}})),[D,r,d,c]),j=w.useMemo((()=>({onKeyDown:D,onMouseDown(){v.current=!0},onMouseUp(){v.current=!0},[hs[u]]:()=>{g.current=!0}})),[D,u]);return w.useMemo((()=>s?{reference:O,floating:j}:{}),[s,O,j])}(u,{outsidePress:e=>{var t;if(e.currentTarget instanceof Element){const n=e.currentTarget;let r=n.id;if("path"===n.nodeName&&(r=(null==(t=n.parentElement)?void 0:t.id)||""),a.includes(r))return!1}return!0}}),h=Ls(u,{listRef:i,activeIndex:n,onNavigate:r,virtual:!0,loop:!0,disabledIndices:s.current}),{getReferenceProps:m,getFloatingProps:p,getItemProps:f}=function(e){void 0===e&&(e=[]);const t=e.map((e=>null==e?void 0:e.reference)),n=e.map((e=>null==e?void 0:e.floating)),r=e.map((e=>null==e?void 0:e.item)),a=w.useCallback((t=>ys(t,e,"reference")),t),i=w.useCallback((t=>ys(t,e,"floating")),n),s=w.useCallback((t=>ys(t,e,"item")),r);return w.useMemo((()=>({getReferenceProps:a,getFloatingProps:i,getItemProps:s})),[a,i,s])}([d,c,h]);return{refs:o,floatingStyles:l,context:u,getReferenceProps:m,getFloatingProps:p,getItemProps:f}})({open:c,onOpenChange:q,activeIndex:M,setActiveIndex:L,outsidePressIdsToIgnore:G,listRef:F,disabledIndicesRef:N});(0,w.useImperativeHandle)(s,(()=>()=>{var e;return null==(e=Z.domReference.current)?void 0:e.focus()}),[Z.domReference]);const te=(0,w.useCallback)((e=>{j((t=>t.filter((t=>t.value!==e.value)))),setTimeout((()=>{var e;return null==(e=Z.domReference.current)?void 0:e.focus()}))}),[Z.domReference]),ne=(e=>e.flatMap((e=>e.options?[e,...e.options]:[e])))(El(z(Y?"":v)));C&&"operator"!==S&&v&&ne.push({value:v.trim(),label:v.trim(),isCustom:!0});const re=t.state.onAddCustomValue,ae=((e,t,n)=>{var r,a,i,s;let o=182;const l=[],u=[];for(let t=0;to&&(o=c)}return t.current=[...l],n.current=[...u],o})(ne,F,N),ie=(0,w.useCallback)((async n=>{var r;g(!1),_(!0),p([]);let a=[];try{if("key"===n?a=await t._getKeys(null):"operator"===n?a=t._getOperators():"value"===n&&(a=await t._getValuesFor(e)),W.current!==n)return;p(a),(null==(r=a[0])?void 0:r.group)?L(1):L(0)}catch(e){g(!0)}_(!1)}),[e,t]),se=function(e){return function(e){const t=w.useReducer((()=>({})),{})[1],n={...e,onChange:(n,r)=>{var a;r?(0,ja.flushSync)(t):t(),null==(a=e.onChange)||a.call(e,n,r)}},[r]=w.useState((()=>new Rs(n)));return r.setOptions(n),Is((()=>r._didMount()),[]),Is((()=>r._willUpdate())),r}({observeElementRect:Os,observeElementOffset:Es,scrollToFn:Hs,...e})}({count:ne.length,getScrollElement:()=>Z.floating.current,estimateSize:e=>ne[e].description?60:38,overscan:5}),oe=(0,w.useCallback)(((r,i)=>{if("Backspace"===r.key&&!v){if("value"===S){if(i&&O.length)return void j((e=>{const t=[...e];return t.splice(-1,1),t}));if(null==e?void 0:e.origin)return;return void D("operator")}null==a||a(),t._handleComboboxBackspace(e),n&&B()}}),[v,S,t,e,n,O.length,B,a]),le=(0,w.useCallback)(((n,a)=>{var i;"Tab"!==n.key||n.shiftKey||(a&&(n.preventDefault(),U(t,e,O),null==(i=Z.domReference.current)||i.focus()),null==r||r(),B())}),[e,O,r,U,B,t,Z.domReference]),ue=(0,w.useCallback)(((n,a)=>{"Tab"===n.key&&n.shiftKey&&(a&&(n.preventDefault(),U(t,e,O,!0)),null==r||r(),B())}),[e,O,r,U,B,t]),de=(0,w.useCallback)(((n,s)=>{if("Enter"===n.key&&null!=M){if(!ne[M])return;const n=ne[M];s?($(n),b("")):(t._updateFilter(e,Xs({filterInputType:S,item:n,filter:e,setFilterMultiValues:j,onAddCustomValue:re})),no({populateInputOnEdit:i,item:n,filterInputType:S,setInputValue:b,filter:e}),Qs(S,D,r,Z.domReference.current,!V&&void 0),L(null),V&&(null==a||a()))}}),[M,ne,$,t,e,S,i,r,Z.domReference,V,a,re]),ce=(0,w.useCallback)((e=>{var t;const n=e.label||e.value;j((t=>t.filter((t=>t.value!==e.value)))),T(!0),b(n),null==(t=Z.domReference.current)||t.focus(),setTimeout((()=>{var e;null==(e=Z.domReference.current)||e.select()}))}),[Z.domReference]);(0,w.useEffect)((()=>{c&&ie(S)}),[c,S]),(0,w.useEffect)((()=>{var t,r,a,s;if(!n){if(R&&(null==(t=null==e?void 0:e.values)?void 0:t.length)){const t=e.values.reduce(((t,n,r)=>{var a;return[...t,{label:(null==(a=e.valueLabels)?void 0:a[r])||n,value:n}]}),[]);j(t)}!R&&i&&(b(null!=(a=null==(r=null==e?void 0:e.valueLabels)?void 0:r[0])?a:(null==e?void 0:e.value)||""),setTimeout((()=>{var e;null==(e=Z.domReference.current)||e.select()}))),null==(s=Z.domReference.current)||s.focus()}}),[]),(0,w.useEffect)((()=>{A&&O&&setTimeout((()=>E({})))}),[O,A]),(0,w.useLayoutEffect)((()=>{W.current&&(W.current=S)}),[S]),(0,w.useLayoutEffect)((()=>{var e,t;null!==M&&se.range&&(M>(null==(e=se.range)?void 0:e.endIndex)||M<(null==(t=se.range)?void 0:t.startIndex))&&se.scrollToIndex(M)}),[M,se]);const he=null!=(l=null==e?void 0:e.keyLabel)?l:null==e?void 0:e.key;return k().createElement("div",{className:x.comboboxWrapper},e?k().createElement("div",{className:x.pillWrapper},(null==e?void 0:e.key)?k().createElement("div",{className:(0,nn.cx)(x.basePill,x.keyPill)},he):null,(null==e?void 0:e.key)&&(null==e?void 0:e.operator)&&"operator"!==S?k().createElement("div",Mo({id:I,className:(0,nn.cx)(x.basePill,!e.origin&&x.operatorPill,e.origin&&x.keyPill,I),"aria-label":"Edit filter operator",tabIndex:e.origin?-1:0,onClick:t=>{e.origin?null==r||r():(t.stopPropagation(),b(""),Ks("operator",D,void 0,Z.domReference.current))},onKeyDown:t=>{e.origin||(ue(t,R),"Enter"===t.key&&(b(""),Ks("operator",D,void 0,Z.domReference.current)))}},!e.origin&&{role:"button"}),e.operator):null,k().createElement("div",{ref:H}),A?O.map(((e,t)=>k().createElement(ho,{key:`${e.value}-${t}`,item:e,index:t,handleRemoveMultiValue:te,handleEditMultiValuePill:ce}))):null):null,k().createElement("input",wo(Mo({},K({ref:Z.setReference,onChange:function(e){const t=e.target.value;b(t),L(0),Y&&T(!1)},value:v,placeholder:to(e,S,A,n),"aria-autocomplete":"list",onKeyDown(e){c?("operator"===S&&ue(e),oe(e,A),le(e,A),de(e,A)):h(!0)}})),{className:(0,nn.cx)(x.inputStyle,{[x.loadingInputPadding]:!f}),onClick:e=>{e.stopPropagation(),h(!0)},onFocus:()=>{h(!0)}})),f?k().createElement(Xt.Spinner,{className:x.loadingIndicator,inline:!0}):null,k().createElement(ns,null,c&&k().createElement(ds,{context:Q,initialFocus:-1,visuallyHiddenDismiss:!0,modal:!1},k().createElement(k().Fragment,null,k().createElement("div",{style:wo(Mo({},J),{width:`${y?366:ae}px`,transform:A?`translate(${(null==(u=H.current)?void 0:u.getBoundingClientRect().left)||0}px, ${((null==(d=Z.domReference.current)?void 0:d.getBoundingClientRect().bottom)||0)+10}px )`:J.transform}),ref:Z.setFloating,className:x.dropdownWrapper,tabIndex:-1},k().createElement("div",wo(Mo({style:{height:`${se.getTotalSize()||38}px`}},X()),{tabIndex:-1}),f?k().createElement($s,null):y?k().createElement(Gs,{handleFetchOptions:()=>ie(S)}):ne.length||C&&"operator"!==S&&v?se.getVirtualItems().map((n=>{var a;const s=ne[n.index],o=n.index;if(s.options)return k().createElement("div",{key:`${s.label}+${o}`,className:(0,nn.cx)(x.optionGroupLabel,x.groupTopBorder),style:{height:`${n.size}px`,transform:`translateY(${n.start}px)`}},k().createElement(Xt.Text,{weight:"bold",variant:"bodySmall",color:"secondary"},s.label));const l=ne[n.index+1],u=l&&!l.group&&!l.options&&s.group;return k().createElement(Bs,wo(Mo({},ee({key:`${s.value}-${o}`,ref(e){F.current[o]=e},onClick(n){var a;"value"!==S&&n.stopPropagation(),A?(n.preventDefault(),n.stopPropagation(),$(s),b(""),null==(a=Z.domReference.current)||a.focus()):(t._updateFilter(e,Xs({filterInputType:S,item:s,filter:e,setFilterMultiValues:j,onAddCustomValue:re})),no({populateInputOnEdit:i,item:s,filterInputType:S,setInputValue:b,filter:e}),Qs(S,D,r,Z.domReference.current,!1))}})),{active:M===o,addGroupBottomBorder:u,style:{height:`${n.size}px`,transform:`translateY(${n.start}px)`},"aria-setsize":ne.length,"aria-posinset":n.index+1,isMultiValueEdit:A,checked:O.some((e=>e.value===s.value))}),k().createElement("span",null,s.isCustom?"Use custom value: ":""," ",null!=(a=s.label)?a:s.value),s.description?k().createElement("div",{className:x.descriptionText},s.description):null)})):k().createElement(qs,null))),A&&!f&&!y&&ne.length?k().createElement(Zs,{onApply:()=>{U(t,e,O)},floatingElement:Z.floating.current,maxOptionWidth:ae,menuHeight:Math.min(se.getTotalSize(),300)}):null))))})),ko=e=>({comboboxWrapper:(0,nn.css)({display:"flex",flexWrap:"wrap"}),pillWrapper:(0,nn.css)({display:"flex",alignItems:"center",flexWrap:"wrap"}),basePill:(0,nn.css)(wo(Mo({display:"flex",alignItems:"center",background:e.colors.action.disabledBackground,border:`1px solid ${e.colors.border.weak}`,padding:e.spacing(.125,1,.125,1),color:e.colors.text.primary,overflow:"hidden",whiteSpace:"nowrap",minHeight:e.spacing(2.75)},e.typography.bodySmall),{cursor:"pointer"})),keyPill:(0,nn.css)({fontWeight:e.typography.fontWeightBold,cursor:"default"}),operatorPill:(0,nn.css)({"&:hover":{background:e.colors.action.hover}}),dropdownWrapper:(0,nn.css)({backgroundColor:e.colors.background.primary,color:e.colors.text.primary,boxShadow:e.shadows.z2,overflowY:"auto",zIndex:e.zIndex.dropdown}),inputStyle:(0,nn.css)({paddingBlock:0,"&:focus":{outline:"none"}}),loadingIndicator:(0,nn.css)({color:e.colors.text.secondary,marginLeft:e.spacing(.5)}),loadingInputPadding:(0,nn.css)({paddingRight:e.spacing(2.5)}),optionGroupLabel:(0,nn.css)({padding:e.spacing(1),position:"absolute",top:0,left:0,width:"100%"}),groupTopBorder:(0,nn.css)({"&:not(:first-child)":{borderTop:`1px solid ${e.colors.border.weak}`}}),descriptionText:(0,nn.css)(wo(Mo({},e.typography.bodySmall),{color:e.colors.text.secondary,paddingTop:e.spacing(.5)}))});var So=Object.defineProperty,Do=Object.defineProperties,Yo=Object.getOwnPropertyDescriptors,To=Object.getOwnPropertySymbols,xo=Object.prototype.hasOwnProperty,Oo=Object.prototype.propertyIsEnumerable,jo=(e,t,n)=>t in e?So(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Po=(e,t)=>{for(var n in t||(t={}))xo.call(t,n)&&jo(e,n,t[n]);if(To)for(var n of To(t))Oo.call(t,n)&&jo(e,n,t[n]);return e};function Eo({filter:e,model:t,readOnly:n,focusOnWipInputRef:r}){var a,i,s;const o=(0,Xt.useStyles2)(Co),[l,u]=(0,w.useState)(!0),[d,c]=(0,w.useState)(!1),h=(0,w.useRef)(null),[m,p]=(0,w.useState)(!1),f=null!=(a=e.keyLabel)?a:e.key,_=(null==(i=e.valueLabels)?void 0:i.join(", "))||(null==(s=e.values)?void 0:s.join(", "))||e.value,y=(0,w.useCallback)(((e,t)=>{null==e||e.stopPropagation(),n||(c(null!=t?t:!l),u(!l))}),[n,l]);if((0,w.useEffect)((()=>{var e;d&&(null==(e=h.current)||e.focus(),c(!1))}),[d]),(0,w.useEffect)((()=>{e.forceEdit&&l&&(u(!1),t._updateFilter(e,{forceEdit:void 0}))}),[e,t,l]),(0,w.useEffect)((()=>{l&&p((e=>!e&&e))}),[l]),l){const a=k().createElement("span",{className:o.pillText},f," ",e.operator," ",_);return k().createElement("div",{className:(0,nn.cx)(o.combinedFilterPill,n&&o.readOnlyCombinedFilter),onClick:e=>{e.stopPropagation(),p(!0),y()},onKeyDown:e=>{"Enter"===e.key&&(p(!0),y())},role:"button","aria-label":`Edit filter with key ${f}`,tabIndex:0,ref:h},_.length<20?a:k().createElement(Xt.Tooltip,{content:k().createElement("div",{className:o.tooltipText},_),placement:"top"},a),n||e.origin?null:k().createElement(Xt.IconButton,{onClick:n=>{n.stopPropagation(),t._removeFilter(e),setTimeout((()=>null==r?void 0:r()))},onKeyDownCapture:n=>{"Enter"===n.key&&(n.preventDefault(),n.stopPropagation(),t._removeFilter(e),setTimeout((()=>null==r?void 0:r())))},name:"times",size:"md",className:o.pillIcon,tooltip:`Remove filter with key ${f}`}),e.origin&&!e.originalValue&&k().createElement(Xt.IconButton,{name:"info-circle",size:"md",className:o.pillIcon,tooltip:`This is a ${e.origin} injected filter`}),e.origin&&e.originalValue&&k().createElement(Xt.IconButton,{onClick:n=>{n.stopPropagation(),t.restoreOriginalFilter(e)},onKeyDownCapture:n=>{"Enter"===n.key&&(n.preventDefault(),n.stopPropagation(),t.restoreOriginalFilter(e))},name:"history",size:"md",className:o.pillIcon,tooltip:"Restore filter to its original value"}))}return k().createElement(Lo,{filter:e,model:t,handleChangeViewMode:y,focusOnWipInputRef:r,populateInputOnEdit:m})}const Co=e=>{return{combinedFilterPill:(0,nn.css)((t=Po({display:"flex",alignItems:"center",background:e.colors.action.selected,borderRadius:e.shape.radius.default,border:`1px solid ${e.colors.border.weak}`,padding:e.spacing(.125,0,.125,1),color:e.colors.text.primary,overflow:"hidden",whiteSpace:"nowrap",minHeight:e.spacing(2.75)},e.typography.bodySmall),n={fontWeight:e.typography.fontWeightBold,cursor:"pointer","&:hover":{background:e.colors.action.hover}},Do(t,Yo(n)))),readOnlyCombinedFilter:(0,nn.css)({paddingRight:e.spacing(1),cursor:"text","&:hover":{background:e.colors.action.selected}}),pillIcon:(0,nn.css)({marginInline:e.spacing(.5),cursor:"pointer","&:hover":{color:e.colors.text.primary}}),pillText:(0,nn.css)({maxWidth:"200px",width:"100%",textOverflow:"ellipsis",overflow:"hidden"}),tooltipText:(0,nn.css)({textAlign:"center"})};var t,n},Ho=(0,w.forwardRef)((function({model:e},t){const{_wip:n}=e.useState();return(0,w.useLayoutEffect)((()=>{n||e._addWip()}),[n]),k().createElement(Lo,{model:e,filter:n,isAlwaysWip:!0,ref:t})})),Ro=(0,w.memo)((function({model:e}){const{baseFilters:t,filters:n,readOnly:r}=e.useState(),a=(0,Xt.useStyles2)(Ao),i=(0,w.useRef)();return k().createElement("div",{className:(0,nn.cx)(a.comboboxWrapper,{[a.comboboxFocusOutline]:!r}),onClick:()=>{var e;null==(e=i.current)||e.call(i)}},k().createElement(Xt.Icon,{name:"filter",className:a.filterIcon,size:"lg"}),null==t?void 0:t.map(((t,n)=>t.origin?k().createElement(Eo,{key:`${n}-${t.key}`,filter:t,model:e,focusOnWipInputRef:i.current}):null)),n.map(((t,n)=>k().createElement(Eo,{key:`${n}-${t.key}`,filter:t,model:e,readOnly:r,focusOnWipInputRef:i.current}))),r?null:k().createElement(Ho,{model:e,ref:i}))})),Ao=e=>({comboboxWrapper:(0,nn.css)({display:"flex",flexWrap:"wrap",alignItems:"center",columnGap:e.spacing(1),rowGap:e.spacing(.5),minHeight:e.spacing(4),backgroundColor:e.components.input.background,border:`1px solid ${e.colors.border.strong}`,borderRadius:e.shape.radius.default,paddingInline:e.spacing(1),paddingBlock:e.spacing(.5),flexGrow:1}),comboboxFocusOutline:(0,nn.css)({"&:focus-within":{outline:"2px dotted transparent",outlineOffset:"2px",boxShadow:`0 0 0 2px ${e.colors.background.canvas}, 0 0 0px 4px ${e.colors.primary.main}`,transitionTimingFunction:"cubic-bezier(0.19, 1, 0.22, 1)",transitionDuration:"0.2s",transitionProperty:"outline, outline-offset, box-shadow",zIndex:2}}),filterIcon:(0,nn.css)({color:e.colors.text.secondary,alignSelf:"center"})}),Io=Object.fromEntries(Object.entries(i.scopeFilterOperatorMap).map((([e,t])=>[t,e])));function Fo(e){return new Set(["equals","not-equals","one-of","not-one-of"]).has(e)}function No(e,t,n){var r,a;const s=e.get(n.key);s&&function(e,t){const n=i.scopeFilterOperatorMap[e];return!(!Fo(n)||!Fo(t))&&!(n.includes("not")&&!t.includes("not")||!n.includes("not")&&t.includes("not"))}(s.operator,n.operator)?function(e,t){var n,r,a,i;const s=null!=(n=t.values)?n:[t.value];for(const t of s)(null==(r=e.values)?void 0:r.includes(t))||null==(a=e.values)||a.push(t);1!==(null==(i=e.values)?void 0:i.length)&&("equals"===t.operator&&e.operator===Io.equals?e.operator=Io["one-of"]:"not-equals"===t.operator&&e.operator===Io["not-equals"]&&(e.operator=Io["not-one-of"]))}(s,n):s?t.push({key:n.key,operator:Io[n.operator],value:n.value,values:null!=(a=n.values)?a:[n.value],origin:Jo.Scopes}):e.set(n.key,{key:n.key,operator:Io[n.operator],value:n.value,values:null!=(r=n.values)?r:[n.value],origin:Jo.Scopes})}var Wo=Object.defineProperty,zo=Object.defineProperties,Vo=Object.getOwnPropertyDescriptors,Bo=Object.getOwnPropertySymbols,Uo=Object.prototype.hasOwnProperty,$o=Object.prototype.propertyIsEnumerable,qo=(e,t,n)=>t in e?Wo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Go=(e,t)=>{for(var n in t||(t={}))Uo.call(t,n)&&qo(e,n,t[n]);if(Bo)for(var n of Bo(t))$o.call(t,n)&&qo(e,n,t[n]);return e},Zo=(e,t)=>zo(e,Vo(t)),Jo=(e=>(e.Scopes="scopes",e.Dashboards="dashboards",e))(Jo||{});const Qo=[{value:"=",description:"Equals"},{value:"!=",description:"Not equal"},{value:"=|",description:"One of. Use to filter on multiple values.",isMulti:!0},{value:"!=|",description:"Not one of. Use to exclude multiple values.",isMulti:!0},{value:"=~",description:"Matches regex",isRegex:!0},{value:"!~",description:"Does not match regex",isRegex:!0},{value:"<",description:"Less than"},{value:">",description:"Greater than"}];class Ko extends K{constructor(e){var t,n,r,a,i;super(Go({type:"adhoc",name:null!=(t=e.name)?t:"Filters",filters:[],datasource:null,applyMode:"auto",filterExpression:null!=(i=e.filterExpression)?i:Xo(e.expressionBuilder,[...null!=(r=null==(n=e.baseFilters)?void 0:n.filter((e=>e.origin)))?r:[],...null!=(a=e.filters)?a:[]])},e)),this._scopedVars={__sceneObject:Bn(this)},this._dataSourceSrv=(0,s.getDataSourceSrv)(),this._urlSync=new _r(this),this._activationHandler=()=>{var e,t;this._scopesBridge=Lu.getScopesBridge(this);const n=null==(e=this._scopesBridge)?void 0:e.getValue();n&&this._updateScopesFilters(n);const r=null==(t=this._scopesBridge)?void 0:t.subscribeToValue(((e,t)=>{var n;this._updateScopesFilters(e,null==(n=this._scopesBridge)?void 0:n.isLoading())}));return()=>{null==r||r.unsubscribe()}},this._updateScopesFilters=(e,t)=>{var n,r;if(!e.length)return void this.setState({baseFilters:null==(n=this.state.baseFilters)?void 0:n.filter((e=>"scopes"!==e.origin))});const a=function(e){const t=new Map,n=[],r=e.flatMap((e=>e.spec.filters));for(const e of r)No(t,n,e);return[...t.values(),...n]}(e);if(!a.length)return void(this._overwriteScopes=t);let i=a;const s=[],o=[];if(null==(r=this.state.baseFilters)||r.forEach((e=>{"scopes"===e.origin?s.push(e):o.push(e)})),!this._overwriteScopes){const e=s.filter((e=>{var t;return null==(t=e.originalValue)?void 0:t.length})),t=e.map((e=>e.key)),n=a.map((e=>e.key));i=[...e.filter((e=>n.includes(e.key))),...a.filter((e=>!t.includes(e.key)))],this._overwriteScopes=!1}const l=[...o,...i];this.setState({baseFilters:l})},"auto"===this.state.applyMode&&function(e){if(e.addActivationHandler((()=>(Qt.add(e),()=>Qt.delete(e)))),Jt)return;const t=(0,s.getTemplateSrv)();(null==t?void 0:t.getAdhocFilters)?(Jt=t.getAdhocFilters,t.getAdhocFilters=function(e){var n;if(0===Qt.size)return Jt.call(t,e);const r=(0,s.getDataSourceSrv)().getInstanceSettings(e);if(!r)return[];for(const e of Qt.values())if((null==(n=e.state.datasource)?void 0:n.uid)===r.uid)return e.state.filters;return[]}.bind(t)):console.log("Failed to patch getAdhocFilters")}(this),this.addActivationHandler(this._activationHandler)}setState(e){var t,n,r;let a=!1;if((e.filters&&e.filters!==this.state.filters||e.baseFilters&&e.baseFilters!==this.state.baseFilters)&&!e.filterExpression){const i=null!=(t=e.filters)?t:this.state.filters,s=null!=(n=e.baseFilters)?n:this.state.baseFilters;e.filterExpression=Xo(this.state.expressionBuilder,[...null!=(r=null==s?void 0:s.filter((e=>e.origin)))?r:[],...null!=i?i:[]]),a=e.filterExpression!==this.state.filterExpression}super.setState(e),a&&this.publishEvent(new Fe(this),!0)}updateFilters(e,t){var n,r;let a,i=!1;e&&e!==this.state.filters&&(a=Xo(this.state.expressionBuilder,[...null!=(r=null==(n=this.state.baseFilters)?void 0:n.filter((e=>e.origin)))?r:[],...e]),i=a!==this.state.filterExpression),super.setState({filters:e,filterExpression:a}),(i&&!0!==(null==t?void 0:t.skipPublish)||(null==t?void 0:t.forcePublish))&&this.publishEvent(new Fe(this),!0)}restoreOriginalFilter(e){var t;const n={originalValue:void 0};(null==(t=e.originalValue)?void 0:t.length)&&(n.value=e.originalValue[0],n.values=e.originalValue,n.valueLabels=e.originalValue),this._updateFilter(e,n)}getValue(){return this.state.filterExpression}_updateFilter(e,t){var n;const{baseFilters:r,filters:a,_wip:i}=this.state;if(e.origin){const a=e.values?e.values:[e.value],i=t.values||(t.value?[t.value]:void 0),s=t.hasOwnProperty("originalValue");s||!i||e.originalValue||(0,te.isEqual)(a,i)||(t.originalValue=a),!s&&(0,te.isEqual)(i,e.originalValue)&&(t.originalValue=void 0);const o=null!=(n=null==r?void 0:r.map((n=>n===e?Go(Go({},n),t):n)))?n:[];return void this.setState({baseFilters:o})}if(e===i)return void("value"in t&&""!==t.value?this.setState({filters:[...a,Go(Go({},i),t)],_wip:void 0}):this.setState({_wip:Go(Go({},e),t)}));const s=this.state.filters.map((n=>n===e?Go(Go({},n),t):n));this.setState({filters:s})}_removeFilter(e){e!==this.state._wip?this.setState({filters:this.state.filters.filter((t=>t!==e))}):this.setState({_wip:void 0})}_removeLastFilter(){const e=this.state.filters.at(-1);e&&this._removeFilter(e)}_handleComboboxBackspace(e){var t;if(this.state.filters.length){let t=this.state.filters.length-1;e!==this.state._wip&&(t=-1),this.setState({filters:this.state.filters.reduce(((n,r,a)=>a===t?[...n,Zo(Go({},r),{forceEdit:!0})]:r===e?n:[...n,r]),[])})}else if(null==(t=this.state.baseFilters)?void 0:t.length){let t=this.state.baseFilters.length-1;e!==this.state._wip&&(t=-1),this.setState({baseFilters:this.state.baseFilters.reduce(((n,r,a)=>a===t?[...n,Zo(Go({},r),{forceEdit:!0})]:r===e?n:[...n,r]),[])})}}async _getKeys(e){var t,n,r,a;const i=await(null==(n=(t=this.state).getTagKeysProvider)?void 0:n.call(t,this,e));if(i&&i.replace)return jl(i.values).map(tl);if(this.state.defaultKeys)return this.state.defaultKeys.map(tl);const s=await this._dataSourceSrv.get(this.state.datasource,this._scopedVars);if(!s||!s.getTagKeys)return[];const o=this.state.filters.filter((t=>t.key!==e)).concat(null!=(r=this.state.baseFilters)?r:[]),l=Lu.getTimeRange(this).state.value,u=this.state.useQueriesAsFilterForOptions?Sl(this):void 0,d=await s.getTagKeys(Go({filters:o,queries:u,timeRange:l,scopes:null==(a=this._scopesBridge)?void 0:a.getValue()},Nn(this)));Pl(d)&&this.setState({error:d.error.message});let c=jl(d);i&&(c=c.concat(jl(i.values)));const h=this.state.tagKeyRegexFilter;return h&&(c=c.filter((e=>e.text.match(h)))),c.map(tl)}async _getValuesFor(e){var t,n,r,a,i;const s=await(null==(n=(t=this.state).getTagValuesProvider)?void 0:n.call(t,this,e));if(s&&s.replace)return jl(s.values).map(tl);const o=await this._dataSourceSrv.get(this.state.datasource,this._scopedVars);if(!o||!o.getTagValues)return[];const l=null!=(a=null==(r=this.state.baseFilters)?void 0:r.filter((t=>t.origin&&t.key!==e.key)))?a:[],u=this.state.filters.filter((t=>t.key!==e.key)).concat(l),d=Lu.getTimeRange(this).state.value,c=this.state.useQueriesAsFilterForOptions?Sl(this):void 0;let h=null==(i=this._scopesBridge)?void 0:i.getValue();"scopes"===e.origin&&(h=null==h?void 0:h.map((t=>Zo(Go({},t),{spec:Zo(Go({},t.spec),{filters:t.spec.filters.filter((t=>t.key!==e.key))})}))));const m=await o.getTagValues(Go({key:e.key,filters:u,timeRange:d,queries:c,scopes:h},Nn(this)));Pl(m)&&this.setState({error:m.error.message});let p=jl(m);return s&&(p=p.concat(jl(s.values))),p.map(tl)}_addWip(){this.setState({_wip:{key:"",value:"",operator:"=",condition:""}})}_getOperators(){const{supportsMultiValueOperators:e,allowCustomValue:t=!0}=this.state;return Qo.filter((({isMulti:n,isRegex:r})=>!(!e&&n||!t&&r))).map((({value:e,description:t})=>({label:e,value:e,description:t})))}}function Xo(e,t){return(null!=e?e:Ml)(null!=t?t:[])}Ko.Component=function({model:e}){const{filters:t,readOnly:n,addFilterButtonText:r}=e.useState(),a=(0,Xt.useStyles2)(el);return"combobox"===e.state.layout?k().createElement(Ro,{model:e}):k().createElement("div",{className:a.wrapper},t.filter((e=>!e.hidden)).map(((t,n)=>k().createElement(k().Fragment,{key:n},k().createElement(mr,{filter:t,model:e})))),!n&&k().createElement(fr,{model:e,key:"'builder",addFilterButtonText:r}))};const el=e=>({wrapper:(0,nn.css)({display:"flex",flexWrap:"wrap",alignItems:"flex-end",columnGap:e.spacing(2),rowGap:e.spacing(1)})});function tl(e){const{text:t,value:n}=e,r={label:String(t),value:String(null!=n?n:t)};return"group"in e&&(r.group=e.group),"meta"in e&&(r.meta=e.meta),r}function nl(e){return""!==e.key&&""!==e.operator&&""!==e.value}function rl(e){const t=Qo.find((t=>t.value===e));return!!t&&Boolean(t.isMulti)}class al{constructor(){this._resultsMap=new Map,this._prevLayers=[]}getMergedStream(e){(function(e,t){if(e.length!==t.length)return!0;for(let n=0;ne.getResultsStream())),n=[];for(const t of e)n.push(t.activate());return(0,S.merge)(t).pipe((0,S.mergeAll)(),(0,S.filter)((e=>this._resultsMap.get(e.origin.state.key)!==e)),(0,S.map)((e=>(this._resultsMap.set(e.origin.state.key,e),this._resultsMap.values()))),(0,S.finalize)((()=>{n.forEach((e=>e()))})))}}var il=Object.defineProperty,sl=Object.defineProperties,ol=Object.getOwnPropertyDescriptors,ll=Object.getOwnPropertySymbols,ul=Object.prototype.hasOwnProperty,dl=Object.prototype.propertyIsEnumerable,cl=(e,t,n)=>t in e?il(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,hl=(e,t)=>{for(var n in t||(t={}))ul.call(t,n)&&cl(e,n,t[n]);if(ll)for(var n of ll(t))dl.call(t,n)&&cl(e,n,t[n]);return e},ml=(e,t)=>sl(e,ol(t));let pl=100;function fl(){return"SQR"+pl++}class _l extends K{constructor(e){super(e),this._dataLayersMerger=new al,this._variableValueRecorder=new xt,this._results=new S.ReplaySubject(1),this._scopedVars={__sceneObject:Bn(this)},this._variableDependency=new zl(this,{statePaths:["queries","datasource","minInterval"],onVariableUpdateCompleted:this.onVariableUpdatesCompleted.bind(this),onAnyVariableChanged:this.onAnyVariableChanged.bind(this)}),this.onDataReceived=e=>{const t=(0,i.preProcessPanelData)(e,this.state.data);this._resultAnnotations=e.annotations;const n=this._combineDataLayers(t);let r=this.state._hasFetchedData;r||t.state===fe.Loading||(r=!0),this.setState({data:n,_hasFetchedData:r}),this._results.next({origin:this,data:n})},this.addActivationHandler((()=>this._onActivate()))}getResultsStream(){return this._results}_onActivate(){if(this.isQueryModeAuto()){const e=Lu.getTimeRange(this),t=Lu.getScopesBridge(this),n=this.getClosestExtraQueryProviders();for(const e of n)this._subs.add(e.subscribeToState(((t,n)=>{e.shouldRerun(n,t,this.state.queries)&&this.runQueries()})));this.subscribeToScopesChanges(t),this.subscribeToTimeRangeChanges(e),this.shouldRunQueriesOnActivate()&&this.runQueries()}return this._dataLayersSub||this._handleDataLayers(),()=>this._onDeactivate()}_handleDataLayers(){const e=Lu.getDataLayers(this);0!==e.length&&(this._dataLayersSub=this._dataLayersMerger.getMergedStream(e).subscribe(this._onLayersReceived.bind(this)))}_onLayersReceived(e){var t,n,r,a,s;const o=Lu.getTimeRange(this),{dataLayerFilter:l}=this.state;let u,d=[],c=[];for(const r of e)for(let e of r.data.series)(null==(t=e.meta)?void 0:t.dataTopic)===i.DataTopic.Annotations&&(d=d.concat(e)),(null==(n=e.meta)?void 0:n.dataTopic)===i.DataTopic.AlertStates&&(c=c.concat(e));if((null==l?void 0:l.panelId)&&(d.length>0&&(d=function(e,t){var n;if(!Array.isArray(e)||0===e.length)return e;const r=Array.from({length:e.length},(()=>new Set));let a=0;for(const i of e){for(let e=0;e"panelId"===e.name)),l=i.fields.find((e=>"source"===e.name));if(l){o&&"dashboard"===l.values[e].type&&(s=[t.panelId,Gt].includes(o.values[e]));const r=l.values[e].filter;if(r){const e=[...null!=(n=r.ids)?n:[],Gt].includes(t.panelId);r.exclude?e&&(s=!1):e||(s=!1)}}s&&r[a].add(e)}a++}const i=[];a=0;for(const t of e){const e=r[a].size,n=[];for(const e of t.fields){const i=[];for(let n=0;n0))for(const e of c){const t=new i.DataFrameView(e);for(const e of t)if(e.panelId===l.panelId){u=e;break}}if(gl(d)&&gl(this._layerAnnotations)&&(0,te.isEqual)(u,null==(r=this.state.data)?void 0:r.alertState))return;this._layerAnnotations=d;const h=this.state.data?this.state.data:ml(hl({},we),{timeRange:o.state.value});this.setState({data:ml(hl({},h),{annotations:[...null!=(a=this._resultAnnotations)?a:[],...d],alertState:null!=u?u:null==(s=this.state.data)?void 0:s.alertState})})}onVariableUpdatesCompleted(){this.isQueryModeAuto()&&this.runQueries()}onAnyVariableChanged(e){this._adhocFiltersVar!==e&&this._groupByVar!==e&&this.isQueryModeAuto()&&(e instanceof Ko&&this._isRelevantAutoVariable(e)&&this.runQueries(),e instanceof Xn&&this._isRelevantAutoVariable(e)&&this.runQueries())}_isRelevantAutoVariable(e){var t,n;const r=null!=(t=this.state.datasource)?t:yl(this.state.queries);return"auto"===e.state.applyMode&&(null==r?void 0:r.uid)===(null==(n=e.state.datasource)?void 0:n.uid)}shouldRunQueriesOnActivate(){return this._variableValueRecorder.hasDependenciesChanged(this)?(he("SceneQueryRunner","Variable dependency changed while inactive, shouldRunQueriesOnActivate returns true"),!0):!this.state.data||!!this._isDataTimeRangeStale(this.state.data)}_isDataTimeRangeStale(e){const t=Lu.getTimeRange(this).state.value,n=e.timeRange;return(t.from.unix()!==n.from.unix()||t.to.unix()!==n.to.unix())&&(he("SceneQueryRunner","Data time range is stale"),!0)}_onDeactivate(){var e;this._querySub&&(this._querySub.unsubscribe(),this._querySub=void 0),this._dataLayersSub&&(this._dataLayersSub.unsubscribe(),this._dataLayersSub=void 0),null==(e=this._timeSub)||e.unsubscribe(),this._timeSub=void 0,this._timeSubRange=void 0,this._adhocFiltersVar=void 0,this._groupByVar=void 0,this._variableValueRecorder.recordCurrentDependencyValuesForSceneObject(this)}setContainerWidth(e){!this._containerWidth&&e>0?(this._containerWidth=e,this.state.maxDataPointsFromWidth&&!this.state.maxDataPoints&&setTimeout((()=>{this.isActive&&!this.state._hasFetchedData&&this.runQueries()}),0)):e>0&&(this._containerWidth=e)}isDataReadyToDisplay(){return Boolean(this.state._hasFetchedData)}subscribeToScopesChanges(e){e&&this._scopesSubBridge!==e&&(this._scopesSub&&this._scopesSub.unsubscribe(),this._scopesSubBridge=e,this._scopesSub=e.subscribeToValue((()=>{this.runWithTimeRangeAndScopes(Lu.getTimeRange(this),e)})))}subscribeToTimeRangeChanges(e){this._timeSubRange!==e&&(this._timeSub&&this._timeSub.unsubscribe(),this._timeSubRange=e,this._timeSub=e.subscribeToState((()=>{this.runWithTimeRangeAndScopes(e,Lu.getScopesBridge(this))})))}runQueries(){const e=Lu.getTimeRange(this),t=Lu.getScopesBridge(this);this.isQueryModeAuto()&&(this.subscribeToTimeRangeChanges(e),this.subscribeToScopesChanges(t)),this.runWithTimeRangeAndScopes(e,t)}getMaxDataPoints(){var e;return this.state.maxDataPoints?this.state.maxDataPoints:this.state.maxDataPointsFromWidth&&null!=(e=this._containerWidth)?e:500}cancelQuery(){var e;null==(e=this._querySub)||e.unsubscribe(),this._dataLayersSub&&(this._dataLayersSub.unsubscribe(),this._dataLayersSub=void 0),this.setState({data:ml(hl({},this.state.data),{state:fe.Done})})}async runWithTimeRangeAndScopes(e,t){var n,r,a,i;if(!this.state.maxDataPoints&&this.state.maxDataPointsFromWidth&&!this._containerWidth)return;if(this._dataLayersSub||this._handleDataLayers(),null==(n=this._querySub)||n.unsubscribe(),this._variableDependency.hasDependencyInLoadingState())return he("SceneQueryRunner","Variable dependency is in loading state, skipping query execution"),void this.setState({data:ml(hl({},null!=(r=this.state.data)?r:we),{state:fe.Loading})});if((null==t?void 0:t.isLoading())&&(null==t?void 0:t.getValue().length))return he("SceneQueryRunner","Scopes are in loading state, skipping query execution"),void this.setState({data:ml(hl({},null!=(a=this.state.data)?a:we),{state:fe.Loading})});const{queries:o}=this.state;if(null==o?void 0:o.length)try{const n=null!=(i=this.state.datasource)?i:yl(o),r=await Tt(n,this._scopedVars);this.findAndSubscribeToAdHocFilters(r.uid);const a=(0,s.getRunRequest)(),{primary:l,secondaries:u,processors:d}=this.prepareRequests(e,r,t);he("SceneQueryRunner","Starting runRequest",this.state.key);let c=a(r,l);if(u.length>0){const e=u.map((e=>a(r,e))),t=(e=>t=>t.pipe((0,S.mergeMap)((([t,...n])=>{const r=n.flatMap((n=>{var r,a;return null!=(a=null==(r=e.get(n.request.requestId))?void 0:r(t,n))?a:(0,S.of)(n)}));return(0,S.forkJoin)([(0,S.of)(t),...r])})),(0,S.map)((([e,...t])=>{var n,r,a;return r=((e,t)=>{for(var n in t||(t={}))Ht.call(t,n)&&At(e,n,t[n]);if(Ct)for(var n of Ct(t))Rt.call(t,n)&&At(e,n,t[n]);return e})({},e),a={series:[...e.series,...t.flatMap((e=>e.series))],annotations:[...null!=(n=e.annotations)?n:[],...t.flatMap((e=>{var t;return null!=(t=e.annotations)?t:[]}))]},Pt(r,Et(a))}))))(d);c=(0,S.forkJoin)([c,...e]).pipe(t)}c=c.pipe(Dt({type:"data",request:l,origin:this,cancel:()=>this.cancelQuery()})),this._querySub=c.subscribe(this.onDataReceived)}catch(e){console.error("PanelQueryRunner Error",e),this.onDataReceived(ml(hl(hl({},we),this.state.data),{state:fe.Error,errors:[(0,s.toDataQueryError)(e)]}))}else this._setNoDataState()}clone(e){var t;const n=super.clone(e);return this._resultAnnotations&&(n._resultAnnotations=this._resultAnnotations.map((e=>hl({},e)))),this._layerAnnotations&&(n._layerAnnotations=this._layerAnnotations.map((e=>hl({},e)))),n._variableValueRecorder=this._variableValueRecorder.cloneAndRecordCurrentValuesForSceneObject(this),n._containerWidth=this._containerWidth,n._results.next({origin:this,data:null!=(t=this.state.data)?t:we}),n}prepareRequests(e,t,n){var r,a;const{minInterval:o,queries:l}=this.state;let u=hl({app:"scenes",requestId:fl(),timezone:e.getTimeZone(),range:e.state.value,interval:"1s",intervalMs:1e3,targets:(0,te.cloneDeep)(l),maxDataPoints:this.getMaxDataPoints(),scopedVars:this._scopedVars,startTime:Date.now(),liveStreaming:this.state.liveStreaming,rangeRaw:{from:e.state.from,to:e.state.to},cacheTimeout:this.state.cacheTimeout,queryCachingTTL:this.state.queryCachingTTL,scopes:null==n?void 0:n.getValue()},Zt(this));if(this._adhocFiltersVar){if(u.filters=[],null==(r=this._adhocFiltersVar.state.baseFilters)?void 0:r.length){const e=this._adhocFiltersVar.state.baseFilters.filter((e=>e.origin));u.filters=u.filters.concat(e)}u.filters=u.filters.concat(this._adhocFiltersVar.state.filters.filter(nl))}this._groupByVar&&(u.groupByKeys=this._groupByVar.state.value),u.targets=u.targets.map((e=>{var n;return e.datasource&&(e.datasource.uid===t.uid||(null==(n=t.meta)?void 0:n.mixed)||!s.isExpressionReference||(0,s.isExpressionReference)(e.datasource))||(e.datasource=t.getRef()),e}));const d=o?vu(this,o):t.interval,c=i.rangeUtil.calculateInterval(e.state.value,u.maxDataPoints,d);u.scopedVars=Object.assign({},u.scopedVars,{__interval:{text:c.interval,value:c.interval},__interval_ms:{text:c.intervalMs.toString(),value:c.intervalMs}}),u.interval=c.interval,u.intervalMs=c.intervalMs;const h=e.state.value;let m=[],p=new Map;for(const e of null!=(a=this.getClosestExtraQueryProviders())?a:[])for(const{req:t,processor:n}of e.getExtraQueries(u)){const e=fl();m.push(ml(hl({},t),{requestId:e})),p.set(e,null!=n?n:It)}return u.range=h,{primary:u,secondaries:m,processors:p}}_combineDataLayers(e){return this._layerAnnotations&&this._layerAnnotations.length>0&&(e.annotations=(e.annotations||[]).concat(this._layerAnnotations)),this.state.data&&this.state.data.alertState&&(e.alertState=this.state.data.alertState),e}_setNoDataState(){this.state.data!==we&&this.setState({data:we})}getClosestExtraQueryProviders(){const e=new Map;return this.parent?(ue(this.parent,(t=>(Ot(t)&&!e.has(t.constructor)&&e.set(t.constructor,t),t.forEachChild((t=>{Ot(t)&&!e.has(t.constructor)&&e.set(t.constructor,t)})),null))),Array.from(e.values())):[]}findAndSubscribeToAdHocFilters(e){const t=function(e){var t;for(const n of Qt.values())if(vu(n,null==(t=n.state.datasource)?void 0:t.uid)===e)return n}(e);this._adhocFiltersVar!==t&&(this._adhocFiltersVar=t,this._updateExplicitVariableDependencies());const n=function(e){var t;for(const n of Kt.values())if(vu(n,null==(t=n.state.datasource)?void 0:t.uid)===e)return n}(e);this._groupByVar!==n&&(this._groupByVar=n,this._updateExplicitVariableDependencies())}_updateExplicitVariableDependencies(){const e=[];this._adhocFiltersVar&&e.push(this._adhocFiltersVar.state.name),this._groupByVar&&e.push(this._groupByVar.state.name),this._variableDependency.setVariableNames(e)}isQueryModeAuto(){var e;return"auto"===(null!=(e=this.state.runQueriesMode)?e:"auto")}}function yl(e){var t,n;return null!=(n=null==(t=e.find((e=>null!==e.datasource)))?void 0:t.datasource)?n:void 0}function gl(e){if(!e)return!0;for(let t=0;t0)return!1;return!0}function vl(e,t){return e===t||(0,te.isEqual)(e,t)}function bl(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,n)=>{if("object"==typeof n&&null!==n){if(e.has(n))return;e.add(n)}return n}})())}catch(e){console.error(e)}return""}function Ml(e){return e.map((e=>function(e){var t,n;let r="",a=e.operator;return"=|"===a?(a="=~",r=null==(t=e.values)?void 0:t.map(Ll).join("|")):"!=|"===a?(a="!~",r=null==(n=e.values)?void 0:n.map(Ll).join("|")):r="=~"===a||"!~"===a?Ll(e.value):wl(e.value),`${e.key}${a}"${r}"`}(e))).join(",")}function wl(e){return e.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/"/g,'\\"')}function Ll(e){return wl(e.replace(kl,"\\$&"))}const kl=/[*+?()|\\.\[\]{}^$]/g;function Sl(e){var t;const n=Lu.findAllObjects(e.getRoot(),(e=>e instanceof _l)),r=Lu.interpolate(e,null==(t=e.state.datasource)?void 0:t.uid),a=function(e){const t={};for(const n of e)n.state.key&&(n.state.key in t||(t[n.state.key]=[]),t[n.state.key].push(n));return Object.values(t).flatMap((e=>{const t=e.filter((e=>e.isActive));return 0===t.length&&1===e.length?e:t}))}(n).filter((t=>{var n;return Lu.interpolate(e,null==(n=t.state.datasource)?void 0:n.uid)===r}));if(0===a.length)return[];const i=[];return a.forEach((t=>{i.push(...t.state.queries.filter((t=>!t.datasource||!t.datasource.uid||Lu.interpolate(e,t.datasource.uid)===r)))})),i}function Dl(e){return null==e?"":/\|/g[Symbol.replace](e,"__gfp__")}function Yl(e){return null==e?"":/,/g[Symbol.replace](e,"__gfc__")}function Tl(e){return function(e){return null==e?"":/#/g[Symbol.replace](e,"__gfh__")}(Dl(e))}function xl(e){return null==e?"":(e=/__gfp__/g[Symbol.replace](e,"|"),e=/__gfc__/g[Symbol.replace](e,","),e=/__gfh__/g[Symbol.replace](e,"#"))}function Ol(e,t){return t&&e!==t?[e,t].map(Yl).join(","):Yl(e)}function jl(e){return Array.isArray(e)?e:e.data}function Pl(e){return!Array.isArray(e)&&Boolean(e.error)}function El(e){const t=[],n=new Map;for(const r of e){const e=r.group;if(e){let a=n.get(e);a||(a=[],n.set(e,a),t.push({label:e,options:a})),a.push(r)}else t.push(r)}return t}var Cl=Object.defineProperty,Hl=Object.defineProperties,Rl=Object.getOwnPropertyDescriptors,Al=Object.getOwnPropertySymbols,Il=Object.prototype.hasOwnProperty,Fl=Object.prototype.propertyIsEnumerable,Nl=(e,t,n)=>t in e?Cl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Wl extends K{constructor(e){var t;super((t=((e,t)=>{for(var n in t||(t={}))Il.call(t,n)&&Nl(e,n,t[n]);if(Al)for(var n of Al(t))Fl.call(t,n)&&Nl(e,n,t[n]);return e})({type:"constant",value:"",name:""},e),Hl(t,Rl({skipUrlSync:!0}))))}getValue(){return this.state.value}}class zl{constructor(e,t){this._sceneObject=e,this._options=t,this._dependencies=new Set,this._isWaitingForVariables=!1,this.scanCount=0,this._statePaths=t.statePaths,this._options.handleTimeMacros&&this.handleTimeMacros()}hasDependencyOn(e){return this.getNames().has(e)}variableUpdateCompleted(e,t){const n=this.getNames();let r=!1;(n.has(e.state.name)||n.has(i.DataLinkBuiltInVars.includeVars))&&t&&(r=!0),he("VariableDependencyConfig","variableUpdateCompleted",e.state.name,r,this._isWaitingForVariables),this._options.onAnyVariableChanged&&this._options.onAnyVariableChanged(e),this._options.onVariableUpdateCompleted&&(this._isWaitingForVariables||r)&&this._options.onVariableUpdateCompleted(),r&&(this._options.onReferencedVariableValueChanged&&this._options.onReferencedVariableValueChanged(e),this._options.onReferencedVariableValueChanged||this._options.onVariableUpdateCompleted||this._sceneObject.forceRender())}hasDependencyInLoadingState(){return Lu.hasVariableDependencyInLoadingState(this._sceneObject)?(this._isWaitingForVariables=!0,!0):(this._isWaitingForVariables=!1,!1)}getNames(){const e=this._state,t=this._state=this._sceneObject.state;if(!e)return this.scanStateForDependencies(this._state),this._dependencies;if(t!==e)if(this._statePaths){for(const n of this._statePaths)if("*"===n||t[n]!==e[n]){this.scanStateForDependencies(t);break}}else this.scanStateForDependencies(t);return this._dependencies}setVariableNames(e){this._options.variableNames=e,this.scanStateForDependencies(this._state)}setPaths(e){this._statePaths=e}scanStateForDependencies(e){if(this._dependencies.clear(),this.scanCount+=1,this._options.variableNames)for(const e of this._options.variableNames)this._dependencies.add(e);if(this._statePaths)for(const t of this._statePaths){if("*"===t){this.extractVariablesFrom(e);break}{const n=e[t];n&&this.extractVariablesFrom(n)}}}extractVariablesFrom(e){nt.lastIndex=0;const t=("string"!=typeof e?bl(e):e).matchAll(nt);if(t)for(const e of t){const[,t,n,,r]=e,a=t||n||r;this._dependencies.add(a)}}handleTimeMacros(){this._sceneObject.addActivationHandler((()=>{const e=Lu.getTimeRange(this._sceneObject).subscribeToState(((e,t)=>{const n=this.getNames(),r=n.has("__from"),a=n.has("__to"),i=n.has("__timezone");if(e.value!==t.value)if(r){const t=new Wl({name:"__from",value:e.from});this.variableUpdateCompleted(t,!0)}else if(a){const t=new Wl({name:"__to",value:e.to});this.variableUpdateCompleted(t,!0)}if(e.timeZone!==t.timeZone&&i){const t=new Wl({name:"__timezone",value:e.timeZone});this.variableUpdateCompleted(t,!0)}}));return()=>e.unsubscribe()}))}}const Vl=e=>Boolean(e.metricFindQuery)&&!Boolean(e.variables),Bl=e=>{if(!e.variables)return!1;if(e.variables.getType()!==i.VariableSupportType.Standard)return!1;const t=e.variables;return"toDataQuery"in t&&Boolean(t.toDataQuery)},Ul=e=>{if(!e.variables)return!1;if(e.variables.getType()!==i.VariableSupportType.Custom)return!1;const t=e.variables;return"query"in t&&"editor"in t&&Boolean(t.query)&&Boolean(t.editor)},$l=e=>!!e.variables&&e.variables.getType()===i.VariableSupportType.Datasource;var ql=Object.defineProperty,Gl=Object.defineProperties,Zl=Object.getOwnPropertyDescriptors,Jl=Object.getOwnPropertySymbols,Ql=Object.prototype.hasOwnProperty,Kl=Object.prototype.propertyIsEnumerable,Xl=(e,t,n)=>t in e?ql(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,eu=(e,t)=>{for(var n in t||(t={}))Ql.call(t,n)&&Xl(e,n,t[n]);if(Jl)for(var n of Jl(t))Kl.call(t,n)&&Xl(e,n,t[n]);return e},tu=(e,t)=>Gl(e,Zl(t));class nu{constructor(e,t=(0,s.getRunRequest)()){this.datasource=e,this._runRequest=t}getTarget(e){if(Bl(this.datasource))return this.datasource.variables.toDataQuery(function(e){var t;const n=null!=(t=e.state.query)?t:"";return"string"==typeof n?{query:n,refId:`variable-${e.state.name}`}:null==n.refId?tu(eu({},n),{refId:`variable-${e.state.name}`}):e.state.query}(e));throw new Error("Couldn't create a target with supplied arguments.")}runRequest(e,t){return Bl(this.datasource)?this.datasource.variables.query?this._runRequest(this.datasource,t,this.datasource.variables.query.bind(this.datasource.variables)):this._runRequest(this.datasource,t):su()}}class ru{constructor(e){this.datasource=e}getTarget(e){if(Vl(this.datasource))return e.state.query;throw new Error("Couldn't create a target with supplied arguments.")}runRequest({variable:e,searchFilter:t},n){return Vl(this.datasource)?(0,S.from)(this.datasource.metricFindQuery(e.state.query,tu(eu({},n),{variable:{name:e.state.name,type:e.state.type},searchFilter:t}))).pipe((0,S.mergeMap)((e=>{if(!e||!e.length)return su();const t=e;return(0,S.of)({series:t,state:i.LoadingState.Done,timeRange:n.range})}))):su()}}class au{constructor(e,t=(0,s.getRunRequest)()){this.datasource=e,this._runRequest=t}getTarget(e){if(Ul(this.datasource))return e.state.query;throw new Error("Couldn't create a target with supplied arguments.")}runRequest(e,t){return Ul(this.datasource)?this.datasource.variables.query?this._runRequest(this.datasource,t,this.datasource.variables.query.bind(this.datasource.variables)):this._runRequest(this.datasource,t):su()}}class iu{constructor(e,t=(0,s.getRunRequest)()){this.datasource=e,this._runRequest=t}getTarget(e){var t;if($l(this.datasource))return"string"==typeof e.state.query?e.state.query:tu(eu({},e.state.query),{refId:null!=(t=e.state.query.refId)?t:"variable-query"});throw new Error("Couldn't create a target with supplied arguments.")}runRequest(e,t){return $l(this.datasource)?this._runRequest(this.datasource,t):su()}}function su(){return(0,S.of)({state:i.LoadingState.Done,series:[],timeRange:(0,i.getDefaultTimeRange)()})}const ou=(e,t)=>{const n=[];let r=null;t.lastIndex=0;do{r=t.exec(e),r&&n.push(r)}while(t.global&&r&&""!==r[0]&&void 0!==r[0]);return n};function lu(e){if(!e.label)return-1;const t=e.label.match(/.*?(\d+).*/);return!t||t.length<2?-1:parseInt(t[1],10)}const uu=new Intl.Collator(void 0,{sensitivity:"accent",numeric:!0});function du(e){return e.slice().sort(((e,t)=>uu.compare(e.label,t.label)))}var cu=Object.defineProperty,hu=Object.getOwnPropertySymbols,mu=Object.prototype.hasOwnProperty,pu=Object.prototype.propertyIsEnumerable,fu=(e,t,n)=>t in e?cu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class _u extends lt{constructor(e){super(((e,t)=>{for(var n in t||(t={}))mu.call(t,n)&&fu(e,n,t[n]);if(hu)for(var n of hu(t))pu.call(t,n)&&fu(e,n,t[n]);return e})({type:"query",name:"",value:"",text:"",options:[],datasource:null,regex:"",query:"",refresh:i.VariableRefresh.onDashboardLoad,sort:i.VariableSort.disabled},e)),this._variableDependency=new zl(this,{statePaths:["regex","query","datasource"]}),this.onSearchChange=e=>{bl(this.state.query).indexOf("__searchFilter")>-1&&this._updateOptionsBasedOnSearchFilter(e)},this._updateOptionsBasedOnSearchFilter=(0,te.debounce)((async e=>{const t=await(0,S.lastValueFrom)(this.getValueOptions({searchFilter:e}));this.setState({options:t,loading:!1})}),400)}getValueOptions(e){return this.state.query?(this.setState({loading:!0,error:null}),(0,S.from)(Tt(this.state.datasource,{__sceneObject:Bn(this)})).pipe((0,S.mergeMap)((t=>{const n=function(e){if(Bl(e))return new nu(e,(0,s.getRunRequest)());if(Vl(e))return new ru(e);if(Ul(e))return new au(e);if($l(e))return new iu(e);throw new Error(`Couldn't create a query runner for datasource ${e.type}`)}(t),r=n.getTarget(this),a=this.getRequest(r,e.searchFilter);return n.runRequest({variable:this,searchFilter:e.searchFilter},a).pipe(Dt({type:"variable",request:a,origin:this}),(0,S.filter)((e=>e.state===i.LoadingState.Done||e.state===i.LoadingState.Error)),(0,S.take)(1),(0,S.mergeMap)((e=>e.state===i.LoadingState.Error?(0,S.throwError)((()=>e.error)):(0,S.of)(e))),(e=>e.pipe((0,S.map)((e=>{const t=e.series;if(!t||!t.length)return[];if(function(e){if(!e)return!1;if(!e.length)return!0;const t=e[0];if((0,i.isDataFrame)(t))return!1;for(const e in t){if(!t.hasOwnProperty(e))continue;if(null!==t[e]&&"string"!=typeof t[e]&&"number"!=typeof t[e])continue;const n=e.toLowerCase();if("text"===n||"value"===n)return!0}return!1}(t))return t;if(0===t[0].fields.length)return[];const n=(0,i.getProcessedDataFrames)(t),r=[];let a=-1,s=-1,o=-1,l=-1;for(const e of n)for(let n=0;n{let t="";return this.state.regex&&(t=Lu.interpolate(this,this.state.regex,void 0,"regex")),(0,S.of)(function(e,t,n){var r,a,s,o,l,u,d,c,h,m;let p,f=[];e&&(p=(0,i.stringToJsRegex)(e));for(let e=0;ee.groups&&e.groups.value)),n=e.find((e=>e.groups&&e.groups.text)),r=e.find((e=>e.length>1)),a=e.length>1&&r;if(t||n)_=null!=(d=null==(l=null==t?void 0:t.groups)?void 0:l.value)?d:null==(u=null==n?void 0:n.groups)?void 0:u.text,i=null!=(m=null==(c=null==n?void 0:n.groups)?void 0:c.text)?m:null==(h=null==t?void 0:t.groups)?void 0:h.value;else{if(a){for(let t=0;t{if(t===i.VariableSort.disabled)return e;switch(t){case i.VariableSort.alphabeticalAsc:e=(0,te.sortBy)(e,"label");break;case i.VariableSort.alphabeticalDesc:e=(0,te.sortBy)(e,"label").reverse();break;case i.VariableSort.numericalAsc:e=(0,te.sortBy)(e,lu);break;case i.VariableSort.numericalDesc:e=(e=(0,te.sortBy)(e,lu)).reverse();break;case i.VariableSort.alphabeticalCaseInsensitiveAsc:e=(0,te.sortBy)(e,(e=>(0,te.toLower)(e.label)));break;case i.VariableSort.alphabeticalCaseInsensitiveDesc:e=(e=(0,te.sortBy)(e,(e=>(0,te.toLower)(e.label)))).reverse();break;case i.VariableSort.naturalAsc||7:e=du(e);break;case i.VariableSort.naturalDesc||8:e=(e=du(e)).reverse()}return e})(f,t)}(t,this.state.sort,e))})),(0,S.catchError)((e=>e.cancelled?(0,S.of)([]):(0,S.throwError)((()=>e)))))})))):(0,S.of)([])}getRequest(e,t){const n={__sceneObject:Bn(this)};t&&(n.__searchFilter={value:t,text:t});const r=Lu.getTimeRange(this).state.value;return{app:i.CoreApp.Dashboard,requestId:j(),timezone:"",range:r,interval:"",intervalMs:0,targets:[e],scopedVars:n,startTime:Date.now()}}}_u.Component=({model:e})=>In(e);class yu extends K{constructor(){super(...arguments),this._urlSync=new Le(this,{keys:["scopes"]}),this._renderBeforeActivation=!0,this._contextSubject=new S.BehaviorSubject(void 0),this._pendingScopes=null}getUrlState(){var e,t,n;return{scopes:null!=(n=this._pendingScopes)?n:(null!=(t=null==(e=this.context)?void 0:e.state.value)?t:[]).map((e=>e.metadata.name))}}updateFromUrl(e){var t,n;let r=null!=(t=e.scopes)?t:[];r=(Array.isArray(r)?r:[r]).map(String),this.context?null==(n=this.context)||n.changeScopes(r):this._pendingScopes=r}getValue(){var e,t;return null!=(t=null==(e=this.context)?void 0:e.state.value)?t:[]}subscribeToValue(e){return this.contextObservable.pipe((0,S.map)((e=>{var t;return null!=(t=null==e?void 0:e.state.value)?t:[]})),(0,S.pairwise)(),(0,S.filter)((([e,t])=>!(0,te.isEqual)(e,t)))).subscribe((([t,n])=>{e(n,t)}))}isLoading(){var e,t;return null!=(t=null==(e=this.context)?void 0:e.state.loading)&&t}subscribeToLoading(e){return this.contextObservable.pipe((0,S.filter)((e=>!!e)),(0,S.pairwise)(),(0,S.map)((([e,t])=>{var n,r;return[null!=(n=null==e?void 0:e.state.loading)&&n,null!=(r=null==t?void 0:t.state.loading)&&r]})),(0,S.filter)((([e,t])=>e!==t))).subscribe((([t,n])=>{e(n)}))}setEnabled(e){var t;null==(t=this.context)||t.setEnabled(e)}setReadOnly(e){var t;null==(t=this.context)||t.setReadOnly(e)}updateContext(e){var t,n;if(this._pendingScopes&&e&&setTimeout((()=>{null==e||e.changeScopes(this._pendingScopes),this._pendingScopes=null})),this.context!==e||(null==(t=this.context)?void 0:t.state)!==(null==e?void 0:e.state)){const t=(null==(n=this.context)?void 0:n.state.value)!==(null==e?void 0:e.state.value);this._contextSubject.next(e),t&&this.forceRender()}}get context(){return this._contextSubject.getValue()}get contextObservable(){return this._contextSubject.asObservable()}}function gu(e){var t;return null!=(t=ue(e,(e=>e.state.$data)))?t:He}function vu(e,t,n,r,a){return""===t||null==t?"":wt(e,t,n,r,a)}function bu(e,t,n,r){if(t(e))return e;let a=null;return e.forEachChild((e=>{if(e===n)return;let r=bu(e,t);r&&(a=r)})),a||(r&&e.parent?bu(e.parent,t,e,!0):null)}function Mu(e,t){return bu(e,t,void 0,!0)}function wu(e,t){const n=[];return e.forEachChild((e=>{t(e)&&n.push(e),n.push(...wu(e,t))})),n}yu.Component=function({model:e}){const t=(0,s.useScopes)();return(0,w.useEffect)((()=>{e.updateContext(t)}),[t,e]),null};const Lu={getVariables:function(e){var t;return null!=(t=ue(e,(e=>e.state.$variables)))?t:Ae},getData:gu,getTimeRange:Ie,getLayout:function(e){return ue(e,(e=>function(e){return"isDraggable"in e}(e)?e:void 0))||null},getDataLayers:function(e,t=!1){let n=e,r=[];for(;n;){const e=n.state.$data;if(e){if(St(e)?r=r.concat(e):e.state.$data&&St(e.state.$data)&&(r=r.concat(e.state.$data)),t&&r.length>0)break;n=n.parent}else n=n.parent}return r},interpolate:vu,lookupVariable:ce,hasVariableDependencyInLoadingState:function(e){if(!e.variableDependency)return!1;for(const t of e.variableDependency.getNames()){if(e instanceof _u&&e.state.name===t){console.warn("Query variable is referencing itself");continue}const n=ce(t,e);if(n&&n.parent.isVariableLoadingOrWaitingToUpdate(n))return!0}return!1},findByKey:function(e,t){const n=Mu(e,(e=>e.state.key===t));if(!n)throw new Error("Unable to find scene with key "+t);return n},findByKeyAndType:function(e,t,n){const r=Mu(e,(e=>e.state.key===t));if(!r)throw new Error("Unable to find scene with key "+t);if(!(r instanceof n))throw new Error(`Found scene object with key ${t} does not match type ${n.name}`);return r},findObject:Mu,findAllObjects:wu,getAncestor:function(e,t){let n=e;for(;n;){if(n instanceof t)return n;n=n.parent}if(!n)throw new Error("Unable to find parent of type "+t.name);return n},getQueryController:me,findDescendents:function(e,t){function n(e){return e instanceof t}return wu(e,n).filter(n)},getScopesBridge:function(e){var t;return null!=(t=Mu(e,(e=>e instanceof yu)))?t:void 0}};class ku{constructor(){this.index=new Map}getUniqueKey(e,t){const n=this.index.get(e);if(!n)return this.index.set(e,[t]),e;let r=n.findIndex((e=>e===t));return-1===r&&(function(e){for(const t of e)if(Su(t)){const n=e.indexOf(t);e.splice(n,1)}}(n),n.push(t),r=n.length-1),r>0?`${e}-${r+1}`:e}clear(){this.index.clear()}}function Su(e){const t=e.getRoot();return!Lu.findObject(t,(t=>t===e))}function Du(e){const t=new ku,n={},r=e=>{if(e.urlSync){const r=e.urlSync.getUrlState();for(const[a,i]of Object.entries(r))if(null!=i){const r=t.getUniqueKey(a,e);n[r]=i}}e.forEachChild(r)};return r(e),n}function Yu(e,t,n,r){r||Tu(e,t,n),e.forEachChild((e=>{Tu(e,t,n)})),e.forEachChild((e=>Yu(e,t,n,!0)))}function Tu(e,t,n){if(e.urlSync){const r={},a=e.urlSync.getUrlState();for(const i of e.urlSync.getKeys()){const s=n.getUniqueKey(i,e),o=t.getAll(s),l=a[i];xu(o,l)||(o.length>0?Array.isArray(l)?r[i]=o:r[i]=o[0]:r[i]=null)}Object.keys(r).length>0&&e.urlSync.updateFromUrl(r)}}function xu(e,t){return 0===e.length&&null==t||(Array.isArray(t)||1!==(null==e?void 0:e.length)?0===(null==t?void 0:t.length)&&null===e||(0,te.isEqual)(e,t):t===e[0])}var Ou=n(3633),ju=Object.defineProperty,Pu=Object.defineProperties,Eu=Object.getOwnPropertyDescriptors,Cu=Object.getOwnPropertySymbols,Hu=Object.prototype.hasOwnProperty,Ru=Object.prototype.propertyIsEnumerable,Au=(e,t,n)=>t in e?ju(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Iu extends K{constructor(e){var t,n;super((t=((e,t)=>{for(var n in t||(t={}))Hu.call(t,n)&&Au(e,n,t[n]);if(Cu)for(var n of Cu(t))Ru.call(t,n)&&Au(e,n,t[n]);return e})({},e),n={sync:e.sync||Ou.yV.Off},Pu(t,Eu(n)))),this.getEventsBus=e=>{if(!this.parent)throw new Error("EnableCursorSync cannot be used as a standalone scene object");return new Fu(this.parent,e)}}getEventsScope(){if(!this.parent)throw new Error("EnableCursorSync cannot be used as a standalone scene object");return this.state.key}}class Fu{constructor(e,t){this._source=e,this._eventsOrigin=t}publish(e){e.origin=this,this._eventsOrigin.publishEvent(e,!0)}getStream(e){return new S.Observable((t=>{const n=this._source.subscribeToEvent(e,(e=>{t.next(e)}));return()=>n.unsubscribe()}))}subscribe(e,t){return this.getStream(e).pipe().subscribe(t)}removeAllListeners(){}newScopedBus(e,t){throw new Error("For internal use only")}}var Nu=function(){},Wu="undefined"!=typeof window;const zu=Wu?w.useLayoutEffect:w.useEffect;var Vu={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};const Bu=Wu&&void 0!==window.ResizeObserver?function(){var e=(0,w.useState)(null),t=e[0],n=e[1],r=(0,w.useState)(Vu),a=r[0],i=r[1],s=(0,w.useMemo)((function(){return new window.ResizeObserver((function(e){if(e[0]){var t=e[0].contentRect,n=t.x,r=t.y,a=t.width,s=t.height,o=t.top,l=t.left,u=t.bottom,d=t.right;i({x:n,y:r,width:a,height:s,top:o,left:l,bottom:u,right:d})}}))}),[]);return zu((function(){if(t)return s.observe(t),function(){s.disconnect()}}),[t]),[n,a]}:function(){return[Nu,Vu]};function Uu({data:e,showAll:t,seriesLimit:n,onShowAllSeries:r}){const a=(0,Xt.useStyles2)($u),i=null==e?void 0:e.series.length;if(void 0===i||i({timeSeriesDisclaimer:(0,nn.css)({label:"time-series-disclaimer",display:"flex",alignItems:"center",gap:e.spacing(1)}),warningMessage:(0,nn.css)({display:"flex",alignItems:"center",gap:e.spacing(.5),color:e.colors.warning.main,fontSize:e.typography.bodySmall.fontSize})});var qu=Object.defineProperty,Gu=Object.defineProperties,Zu=Object.getOwnPropertyDescriptors,Ju=Object.getOwnPropertySymbols,Qu=Object.prototype.hasOwnProperty,Ku=Object.prototype.propertyIsEnumerable,Xu=(e,t,n)=>t in e?qu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ed=(e,t)=>{for(var n in t||(t={}))Qu.call(t,n)&&Xu(e,n,t[n]);if(Ju)for(var n of Ju(t))Ku.call(t,n)&&Xu(e,n,t[n]);return e};function td(e,t){if(t)return t;let n=e.error?e.error.message:void 0;return e.errors&&(n=e.errors.map((e=>e.message)).join(", ")),n}const nd=(0,nn.css)({position:"relative",width:"100%",height:"100%"}),rd=(0,nn.css)({position:"absolute",width:"100%",height:"100%"}),ad=e=>({ok:(0,nn.css)({color:e.colors.success.text}),pending:(0,nn.css)({color:e.colors.warning.text}),alerting:(0,nn.css)({color:e.colors.error.text})});var id=Object.defineProperty,sd=Object.defineProperties,od=Object.getOwnPropertyDescriptors,ld=Object.getOwnPropertySymbols,ud=Object.prototype.hasOwnProperty,dd=Object.prototype.propertyIsEnumerable,cd=(e,t,n)=>t in e?id(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,hd=(e,t)=>{for(var n in t||(t={}))ud.call(t,n)&&cd(e,n,t[n]);if(ld)for(var n of ld(t))dd.call(t,n)&&cd(e,n,t[n]);return e},md=(e,t)=>sd(e,od(t));const pd="hideSeriesFrom",fd=(0,i.isSystemOverrideWithRef)(pd);function _d(e,t=i.ByNamesMatcherMode.exclude,n){return n=null!=n?n:{id:"custom.hideFrom",value:{viz:!0,legend:!1,tooltip:!1}},{__systemRef:pd,matcher:{id:i.FieldMatcherID.byNames,options:{mode:t,names:e,prefix:t===i.ByNamesMatcherMode.exclude?"All except:":void 0,readOnly:!0}},properties:[md(hd({},n),{value:{viz:!0,legend:!1,tooltip:!1}})]}}const yd=e=>{var t;const n=null==(t=e.matcher.options)?void 0:t.names;return Array.isArray(n)?[...n]:[]},gd=(e,t)=>{const n=new Set;for(const r of e)for(const a of r.fields){if(a.type!==i.FieldType.number)continue;const s=(0,i.getFieldDisplayName)(a,r,e);s!==t&&n.add(s)}return Array.from(n)},vd=(e,t)=>{var n;let r=[];for(const a of e){const e=a.properties.find((e=>"custom.hideFrom"===e.id));if(void 0!==e&&!0===(null==(n=e.value)?void 0:n.legend)){const e=i.fieldMatchers.get(a.matcher.id).get(a.matcher.options);for(const n of t)for(const a of n.fields){if(a.type!==i.FieldType.number)continue;const s=(0,i.getFieldDisplayName)(a,n,t);e(a,n,t)&&r.push(s)}}}return r};var bd=Object.defineProperty,Md=Object.defineProperties,wd=Object.getOwnPropertyDescriptors,Ld=Object.getOwnPropertySymbols,kd=Object.prototype.hasOwnProperty,Sd=Object.prototype.propertyIsEnumerable,Dd=(e,t,n)=>t in e?bd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yd=(e,t)=>{for(var n in t||(t={}))kd.call(t,n)&&Dd(e,n,t[n]);if(Ld)for(var n of Ld(t))Sd.call(t,n)&&Dd(e,n,t[n]);return e},Td=(e,t)=>Md(e,wd(t));const xd=(e,t)=>({matcher:{id:i.FieldMatcherID.byName,options:e},properties:[Od(t)]}),Od=e=>({id:"color",value:{mode:i.FieldColorModeId.Fixed,fixedColor:e}});var jd=Object.defineProperty,Pd=Object.defineProperties,Ed=Object.getOwnPropertyDescriptors,Cd=Object.getOwnPropertySymbols,Hd=Object.prototype.hasOwnProperty,Rd=Object.prototype.propertyIsEnumerable,Ad=(e,t,n)=>t in e?jd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Id=(e,t)=>{for(var n in t||(t={}))Hd.call(t,n)&&Ad(e,n,t[n]);if(Cd)for(var n of Cd(t))Rd.call(t,n)&&Ad(e,n,t[n]);return e},Fd=(e,t)=>Pd(e,Ed(t));class Nd extends K{constructor(e){var t;super(Id({options:{},fieldConfig:{defaults:{},overrides:[]},title:"Title",pluginId:"timeseries",_renderCounter:0},e)),this._variableDependency=new zl(this,{statePaths:["title","options","fieldConfig"]}),this._structureRev=0,this.onTimeRangeChange=e=>{Lu.getTimeRange(this).onTimeRangeChange({raw:{from:(0,i.toUtc)(e.from),to:(0,i.toUtc)(e.to)},from:(0,i.toUtc)(e.from),to:(0,i.toUtc)(e.to)})},this.getTimeRange=e=>{const t=Lu.findObject(this,(e=>e instanceof zd)),n=Lu.getTimeRange(this);if(t instanceof zd&&t.isEnabled)return De(n.state.from,n.state.to,n.getTimeZone(),n.state.fiscalYearStartMonth,n.state.UNSAFE_nowDelay,n.state.weekStart);const r=this.getPlugin();return r&&!r.meta.skipDataQuery&&e&&e.timeRange?e.timeRange:n.state.value},this.onTitleChange=e=>{this.setState({title:e})},this.onDescriptionChange=e=>{this.setState({description:e})},this.onDisplayModeChange=e=>{this.setState({displayMode:e})},this.onToggleCollapse=e=>{this.setState({collapsed:e})},this.onOptionsChange=(e,t=!1,n=!1)=>{var r;const{fieldConfig:a,options:s}=this.state,o=t?e:(0,te.mergeWith)((0,te.cloneDeep)(s),e,((e,t,n,r)=>{if((0,te.isArray)(t))return t;e===t||void 0!==t||(r[n]=t)})),l=(0,i.getPanelOptionsWithDefaults)({plugin:this._plugin,currentOptions:o,currentFieldConfig:a,isAfterPluginChange:n});this.setState({options:l.options,_renderCounter:(null!=(r=this.state._renderCounter)?r:0)+1})},this.onFieldConfigChange=(e,t)=>{const{fieldConfig:n,options:r}=this.state,a=t?e:(0,te.merge)((0,te.cloneDeep)(n),e),s=(0,i.getPanelOptionsWithDefaults)({plugin:this._plugin,currentOptions:r,currentFieldConfig:a,isAfterPluginChange:!1});this._dataWithFieldConfig=void 0,this.setState({fieldConfig:s.fieldConfig})},this.interpolate=(e,t,n)=>Lu.interpolate(this,e,t,n),this.getDescription=()=>{this.publishEvent(new z({origin:this,interaction:"panel-description-shown"}),!0);const{description:e}=this.state;if(e){const t=this.interpolate(e);return(0,i.renderMarkdown)(t)}return""},this.onCancelQuery=()=>{var e;this.publishEvent(new z({origin:this,interaction:"panel-cancel-query-clicked"}),!0);const t=Lu.getData(this);null==(e=t.cancelQuery)||e.call(t)},this.onStatusMessageClick=()=>{this.publishEvent(new z({origin:this,interaction:"panel-status-message-clicked"}),!0)},this._onSeriesColorChange=(e,t)=>{this.onFieldConfigChange(((e,t,n)=>{const{overrides:r}=n,a=n.overrides.findIndex((t=>t.matcher.id===i.FieldMatcherID.byName&&t.matcher.options===e));if(a<0)return Td(Yd({},n),{overrides:[...n.overrides,xd(e,t)]});const s=Array.from(r),o=s[a],l=o.properties.findIndex((e=>"color"===e.id));if(l<0)return s[a]=Td(Yd({},o),{properties:[...o.properties,Od(t)]}),Td(Yd({},n),{overrides:s});const u=Array.from(o.properties);return u[l]=Od(t),s[a]=Td(Yd({},o),{properties:u}),Td(Yd({},n),{overrides:s})})(e,t,this.state.fieldConfig))},this._onSeriesVisibilityChange=(e,t)=>{this._dataWithFieldConfig&&this.onFieldConfigChange(function(e,t,n,r){const{overrides:a}=n,s=e,o=a.findIndex(fd);if(o<0){if(t===Xt.SeriesVisibilityChangeMode.ToggleSelection){const e=_d([s,...vd(a,r)]);return md(hd({},n),{overrides:[...n.overrides,e]})}const e=_d(gd(r,s));return md(hd({},n),{overrides:[...n.overrides,e]})}const l=Array.from(a),[u]=l.splice(o,1);if(t===Xt.SeriesVisibilityChangeMode.ToggleSelection){let e=yd(u);const t=vd(l,r);if(t.length>0&&(e=e.filter((e=>t.indexOf(e)<0))),e[0]===s&&1===e.length)return md(hd({},n),{overrides:l});const a=_d([s,...t]);return md(hd({},n),{overrides:[...l,a]})}const d=((e,t,n=i.ByNamesMatcherMode.exclude)=>{const r=e.properties.find((e=>"custom.hideFrom"===e.id)),a=yd(e),s=a.findIndex((e=>e===t));return s<0?a.push(t):a.splice(s,1),_d(a,n,r)})(u,s);return((e,t)=>yd(e).length===gd(t).length)(d,r)?md(hd({},n),{overrides:l}):md(hd({},n),{overrides:[...l,d]})}(e,t,this.state.fieldConfig,this._dataWithFieldConfig.series),!0)},this._onInstanceStateChange=e=>{this._panelContext&&(this._panelContext=Fd(Id({},this._panelContext),{instanceState:e})),this.setState({_pluginInstanceState:e})},this._onToggleLegendSort=e=>{const t=this.state.options.legend;if(!t)return;let n=t.sortDesc,r=t.sortBy;e!==r&&(n=void 0),!1===n?(r=void 0,n=void 0):(n=!n,r=e),this.onOptionsChange(Fd(Id({},this.state.options),{legend:Fd(Id({},t),{sortBy:r,sortDesc:n})}),!0)},this.addActivationHandler((()=>{this._onActivate()})),null==(t=e.menu)||t.addActivationHandler((()=>{this.publishEvent(new z({origin:this,interaction:"panel-menu-shown"}),!0)}))}_onActivate(){this._plugin||this._loadPlugin(this.state.pluginId)}forceRender(){var e;this.setState({_renderCounter:(null!=(e=this.state._renderCounter)?e:0)+1})}async _loadPlugin(e,t,n,r){const a=function(e){var t;const{getPanelPluginFromCache:n}=(0,s.getPluginImportUtils)();return null!=(t=n(e))?t:M.get(e)}(e);if(a)this._pluginLoaded(a,t,n,r);else{const{importPanelPlugin:a}=(0,s.getPluginImportUtils)();try{const i=a(e),s=Lu.getQueryController(this);s&&s.state.enableProfiling&&Yt(i).pipe(Dt({type:"plugin",origin:this})).subscribe((()=>{}));const o=await i;this._pluginLoaded(o,t,n,r)}catch(t){this._pluginLoaded(function(e){const t=new i.PanelPlugin((()=>null));return t.meta={id:e,name:e,sort:100,type:i.PluginType.panel,module:"",baseUrl:"",info:{author:{name:""},description:"",links:[],logos:{large:"",small:"public/img/grafana_icon.svg"},screenshots:[],updated:"",version:""}},t}(e)),t instanceof Error&&this.setState({_pluginLoadError:t.message})}}}getLegacyPanelId(){var e,t;const n=null!=(t=null==(e=this.state.key)?void 0:e.split("/"))?t:[];if(0===n.length)return 0;const r=n[n.length-1],a=parseInt(r.replace("panel-",""),10);return isNaN(a)?0:a}async _pluginLoaded(e,t,n,r){const{options:a,fieldConfig:s,title:o,pluginVersion:l,_UNSAFE_customMigrationHandler:u}=this.state,d={title:o,options:a,fieldConfig:s,id:this.getLegacyPanelId(),type:e.meta.id,pluginVersion:l};t&&(d.options=t),n&&(d.fieldConfig=n);const c=this._getPluginVersion(e);null==u||u(d,e),e.onPanelMigration&&c!==l&&!r&&(d.options=await e.onPanelMigration(d));const h=(0,i.getPanelOptionsWithDefaults)({plugin:e,currentOptions:d.options,currentFieldConfig:d.fieldConfig,isAfterPluginChange:null!=r&&r});if(this._plugin=e,this.setState({options:h.options,fieldConfig:h.fieldConfig,pluginVersion:c,pluginId:e.meta.id}),e.meta.skipDataQuery){const e=Lu.getTimeRange(this);this._subs.add(e.subscribeToState((()=>this.forceRender())))}}_getPluginVersion(e){return e&&e.meta.info.version?e.meta.info.version:s.config.buildInfo.version}getPlugin(){return this._plugin}getPanelContext(){return null!=this._panelContext||(this._panelContext=this.buildPanelContext()),this._panelContext}async changePluginType(e,t,n){var r,a;const{options:i,fieldConfig:s,pluginId:o}=this.state;this._dataWithFieldConfig=void 0;const l=this.state.pluginId!==e;await this._loadPlugin(e,null!=t?t:{},n,l);const u={title:this.state.title,options:this.state.options,fieldConfig:this.state.fieldConfig,id:1,type:e},d=null==(a=null==(r=this._plugin)?void 0:r.onPanelTypeChanged)?void 0:a.call(r,u,o,i,s);d&&!(0,te.isEmpty)(d)&&this.onOptionsChange(d,!0,!0)}clearFieldConfigCache(){this._dataWithFieldConfig=void 0}applyFieldConfig(e){var t,n,r,a;const o=this._plugin;if(!o||o.meta.skipDataQuery||!e)return we;if(this._prevData===e&&this._dataWithFieldConfig)return this._dataWithFieldConfig;const l=o.dataSupport||{alertStates:!1,annotations:!1},u=o.fieldConfigRegistry,d=null!=(n=null==(t=this._dataWithFieldConfig)?void 0:t.series)?n:[],c=(0,i.applyFieldOverrides)({data:e.series,fieldConfig:this.state.fieldConfig,fieldConfigRegistry:u,replaceVariables:this.interpolate,theme:s.config.theme2,timeZone:null==(r=e.request)?void 0:r.timezone});return(0,i.compareArrayValues)(c,d,i.compareDataFrameStructures)||this._structureRev++,this._dataWithFieldConfig=Fd(Id({},e),{structureRev:this._structureRev,series:c}),this._dataWithFieldConfig.annotations&&(this._dataWithFieldConfig.annotations=(0,i.applyFieldOverrides)({data:this._dataWithFieldConfig.annotations,fieldConfig:{defaults:{},overrides:[]},fieldConfigRegistry:u,replaceVariables:this.interpolate,theme:s.config.theme2,timeZone:null==(a=e.request)?void 0:a.timezone})),l.alertStates||(this._dataWithFieldConfig.alertState=void 0),l.annotations||(this._dataWithFieldConfig.annotations=void 0),this._prevData=e,this._dataWithFieldConfig}buildPanelContext(){const e=Lu.findObject(this,(e=>e instanceof Iu));const t={eventsScope:e?e.getEventsScope():"__global_",eventBus:e?e.getEventsBus(this):(0,s.getAppEvents)(),app:i.CoreApp.Unknown,sync:()=>e?e.state.sync:i.DashboardCursorSync.Off,onSeriesColorChange:this._onSeriesColorChange,onToggleSeriesVisibility:this._onSeriesVisibilityChange,onToggleLegendSort:this._onToggleLegendSort,onInstanceStateChange:this._onInstanceStateChange};return this.state.extendPanelContext&&this.state.extendPanelContext(this,t),t}}Nd.Component=function({model:e}){var t;const{title:n,options:r,fieldConfig:a,_pluginLoadError:o,displayMode:l,hoverHeader:u,showMenuAlways:d,hoverHeaderOffset:c,menu:h,headerActions:m,titleItems:p,seriesLimit:f,seriesLimitShowAll:_,description:y,collapsible:g,collapsed:v,_renderCounter:b=0}=e.useState(),[M,{width:L,height:S}]=Bu(),D=(0,w.useMemo)((()=>(0,s.getAppEvents)()),[]),Y=(0,w.useCallback)((()=>{e.state.key&&D.publish(new i.SetPanelAttentionEvent({panelId:e.state.key}))}),[e.state.key,D]),T=(0,w.useMemo)((()=>(0,te.debounce)(Y,100,{leading:!0,trailing:!1})),[Y]),x=e.getPlugin(),{dragClass:O,dragClassCancel:j}=function(e){var t,n;const r=Lu.getLayout(e),a=null==r?void 0:r.isDraggable();return r&&a&&!function(e,t){let n=e.parent;for(;n&&n!==t;){if("isDraggable"in n.state&&!1===n.state.isDraggable)return!0;n=n.parent}return!1}(e,r)?{dragClass:null==(t=r.getDragClass)?void 0:t.call(r),dragClassCancel:null==(n=null==r?void 0:r.getDragClassCancel)?void 0:n.call(r)}:{dragClass:"",dragClassCancel:""}}(e),P=function(e){var t,n;const r=Lu.getLayout(e);return null!=(n=null==(t=null==r?void 0:r.getDragHooks)?void 0:t.call(r))?n:{}}(e),E=Lu.getData(e),C=E.useState(),H=function(e,t,n){return(0,w.useMemo)((()=>{return(null==e?void 0:e.series)&&t&&!n?(r=ed({},e),a={series:e.series.slice(0,t)},Gu(r,Zu(a))):e;var r,a}),[e,t,n])}(C.data,f,_),R=e.applyFieldConfig(H),A=Lu.getTimeRange(e).getTimeZone(),I=e.getTimeRange(R),F=e.interpolate(n,void 0,"text"),N=(0,Xt.useStyles2)(ad);if(!x)return k().createElement("div",null,"Loading plugin panel...");if(!x.panel)return k().createElement("div",null,"Panel plugin has no panel component");const W=x.panel;E&&E.setContainerWidth&&E.setContainerWidth(Math.round(L));let z,V,B=[];p&&(Array.isArray(p)?B=B.concat(p.map((e=>k().createElement(e.Component,{model:e,key:`${e.state.key}`})))):Lt(p)?B.push(k().createElement(p.Component,{model:p})):B.push(p)),f&&B.push(k().createElement(Uu,{key:"series-limit",data:C.data,seriesLimit:f,showAll:_,onShowAllSeries:()=>e.setState({seriesLimitShowAll:!_})})),e.state.$timeRange&&B.push(k().createElement(e.state.$timeRange.Component,{model:e.state.$timeRange,key:e.state.key})),R.alertState&&B.push(k().createElement(Xt.Tooltip,{content:null!=(t=R.alertState.state)?t:"unknown",key:`alert-states-icon-${e.state.key}`},k().createElement(Xt.PanelChrome.TitleItem,{className:(0,nn.cx)({[N.ok]:R.alertState.state===i.AlertState.OK,[N.pending]:R.alertState.state===i.AlertState.Pending,[N.alerting]:R.alertState.state===i.AlertState.Alerting})},k().createElement(Xt.Icon,{name:"alerting"===R.alertState.state?"heart-break":"heart",className:"panel-alert-icon",size:"md"})))),h&&(z=k().createElement(h.Component,{model:h})),m&&(V=Array.isArray(m)?k().createElement(k().Fragment,null,m.map((e=>k().createElement(e.Component,{model:e,key:`${e.state.key}`})))):Lt(m)?k().createElement(m.Component,{model:m}):m);const U=R,$=!E.isDataReadyToDisplay||E.isDataReadyToDisplay(),q=e.getPanelContext(),G=e.getLegacyPanelId();return k().createElement("div",{className:nd},k().createElement("div",{ref:M,className:rd,"data-viz-panel-key":e.state.key},L>0&&S>0&&k().createElement(Xt.PanelChrome,ed({title:F,description:(null==y?void 0:y.trim())?e.getDescription:void 0,loadingState:U.state,statusMessage:td(U,o),statusMessageOnClick:e.onStatusMessageClick,width:L,height:S,selectionId:e.state.key,displayMode:l,titleItems:B,dragClass:O,actions:V,dragClassCancel:j,padding:x.noPadding?"none":"md",menu:z,onCancelQuery:e.onCancelQuery,onFocus:Y,onMouseEnter:Y,onMouseMove:T,onDragStart:t=>{var n;null==(n=P.onDragStart)||n.call(P,t,e)}},g?{collapsible:Boolean(g),collapsed:v,onToggleCollapse:e.onToggleCollapse,showMenuAlways:d}:{hoverHeader:u,hoverHeaderOffset:c}),((t,s)=>k().createElement(k().Fragment,null,k().createElement(Xt.ErrorBoundaryAlert,{dependencies:[x,U]},k().createElement(i.PluginContextProvider,{meta:x.meta},k().createElement(Xt.PanelContextProvider,{value:q},$&&k().createElement(W,{id:G,data:U,title:n,timeRange:I,timeZone:A,options:r,fieldConfig:a,transparent:!1,width:t,height:s,renderCounter:b,replaceVariables:e.interpolate,onOptionsChange:e.onOptionsChange,onFieldConfigChange:e.onFieldConfigChange,onChangeTimeRange:e.onTimeRangeChange,eventBus:q.eventBus})))))))))};const Wd=class extends K{constructor({enabled:e=!1}){super({enabled:e}),this.timerId=void 0,this._activationHandler=()=>(this.state.enabled&&this.enable(),()=>{window.clearInterval(this.timerId),this.timerId=void 0}),this.addActivationHandler(this._activationHandler)}enable(){window.clearInterval(this.timerId),this.timerId=void 0,this.timerId=window.setInterval((()=>{const e=Lu.findAllObjects(this.getRoot(),(e=>e instanceof Nd));for(const t of e)t.forceRender()}),Wd.REFRESH_RATE),this.setState({enabled:!0})}disable(){window.clearInterval(this.timerId),this.timerId=void 0,this.setState({enabled:!1})}get isEnabled(){return this.state.enabled}};let zd=Wd;function Vd(e){if("string"==typeof e)return e;if(e){if(e instanceof Error)return e.message;if((0,s.isFetchError)(e)){if(e.data&&e.data.message)return e.data.message;if(e.statusText)return e.statusText}else if(e.hasOwnProperty("message"))return e.message}return JSON.stringify(e)}zd.REFRESH_RATE=100;var Bd=Object.defineProperty,Ud=Object.getOwnPropertySymbols,$d=Object.prototype.hasOwnProperty,qd=Object.prototype.propertyIsEnumerable,Gd=(e,t,n)=>t in e?Bd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Zd extends K{constructor(e,t=[]){super(((e,t)=>{for(var n in t||(t={}))$d.call(t,n)&&Gd(e,n,t[n]);if(Ud)for(var n of Ud(t))qd.call(t,n)&&Gd(e,n,t[n]);return e})({isEnabled:!0},e)),this._results=new S.ReplaySubject(1),this.isDataLayer=!0,this._variableValueRecorder=new xt,this._variableDependency=new zl(this,{onVariableUpdateCompleted:this.onVariableUpdateCompleted.bind(this)}),this._variableDependency.setPaths(t),this.addActivationHandler((()=>this.onActivate()))}onActivate(){return this.state.isEnabled&&this.onEnable(),this.shouldRunLayerOnActivate()&&this.runLayer(),this.subscribeToState(((e,t)=>{!e.isEnabled&&this.querySub&&(this.querySub.unsubscribe(),this.querySub=void 0,this.onDisable(),this._results.next({origin:this,data:we}),this.setStateHelper({data:we})),e.isEnabled&&!t.isEnabled&&(this.onEnable(),this.runLayer())})),()=>{this.onDeactivate()}}onDeactivate(){this.querySub&&(this.querySub.unsubscribe(),this.querySub=void 0),this.onDisable(),this._variableValueRecorder.recordCurrentDependencyValuesForSceneObject(this)}onVariableUpdateCompleted(){this.runLayer()}cancelQuery(){this.querySub&&(this.querySub.unsubscribe(),this.querySub=void 0,this.publishResults(we))}publishResults(e){this.state.isEnabled&&(this._results.next({origin:this,data:e}),this.setStateHelper({data:e}))}getResultsStream(){return this._results}shouldRunLayerOnActivate(){return!!this.state.isEnabled&&(this._variableValueRecorder.hasDependenciesChanged(this)?(he("SceneDataLayerBase","Variable dependency changed while inactive, shouldRunLayerOnActivate returns true"),!0):!this.state.data)}setStateHelper(e){st(this,e)}}function Jd({layer:e}){var t,n;const r=`data-layer-${e.state.key}`,{data:a,isEnabled:i}=e.useState(),s=Boolean(a&&a.state===fe.Loading);return k().createElement("div",{className:Qd},k().createElement(rr,{htmlFor:r,isLoading:s,onCancel:()=>{var t;return null==(t=e.cancelQuery)?void 0:t.call(e)},label:e.state.name,description:e.state.description,error:null==(n=null==(t=e.state.data)?void 0:t.errors)?void 0:n[0].message}),k().createElement(Xt.InlineSwitch,{id:r,value:i,onChange:()=>e.setState({isEnabled:!i})}))}(class extends K{constructor(){super({})}}).Component=function({model:e}){const t=Lu.getDataLayers(e,!0);return 0===t.length?null:k().createElement(k().Fragment,null,t.map((e=>k().createElement(e.Component,{model:e,key:e.state.key}))))};const Qd=(0,nn.css)({display:"flex"});function Kd(e){return"function"==typeof e}function Xd(e){return function(t){if(function(e){return Kd(null==e?void 0:e.lift)}(t))return t.lift((function(t){try{return e(t,this)}catch(e){this.error(e)}}));throw new TypeError("Unable to lift unknown Observable type")}}var ec=function(e,t){return ec=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},ec(e,t)};function tc(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}ec(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var nc=function(){return nc=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&a[a.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function ic(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(a)throw a.error}}return s}function sc(e,t,n){if(n||2===arguments.length)for(var r,a=0,i=t.length;a1||o(e,t)}))},t&&(r[e]=t(r[e])))}function o(e,t){try{(n=a[e](t)).value instanceof oc?Promise.resolve(n.value.v).then(l,u):d(i[0][2],n)}catch(e){d(i[0][3],e)}var n}function l(e){o("next",e)}function u(e){o("throw",e)}function d(e,t){e(t),i.shift(),i.length&&o(i[0][0],i[0][1])}}(this,arguments,(function(){var t,n,r;return rc(this,(function(a){switch(a.label){case 0:t=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,oc(t.read())];case 3:return n=a.sent(),r=n.value,n.done?[4,oc(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,oc(r)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}}))}))}(e))}var t,n,r,a,i,s;throw function(e){return new TypeError("You provided "+(null!==e&&"object"==typeof e?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}(e)}function zc(e){return new Ic((function(t){(function(e,t){var n,r,a,i,s,o,l,u;return s=this,o=void 0,u=function(){var s,o;return rc(this,(function(l){switch(l.label){case 0:l.trys.push([0,5,6,11]),n=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=ac(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,a){!function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)}(r,a,(t=e[n](t)).done,t.value)}))}}}(e),l.label=1;case 1:return[4,n.next()];case 2:if((r=l.sent()).done)return[3,4];if(s=r.value,t.next(s),t.closed)return[2];l.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return o=l.sent(),a={error:o},[3,11];case 6:return l.trys.push([6,,9,10]),r&&!r.done&&(i=n.return)?[4,i.call(n)]:[3,8];case 7:l.sent(),l.label=8;case 8:return[3,10];case 9:if(a)throw a.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}}))},new((l=void 0)||(l=Promise))((function(e,t){function n(e){try{a(u.next(e))}catch(e){t(e)}}function r(e){try{a(u.throw(e))}catch(e){t(e)}}function a(t){var a;t.done?e(t.value):(a=t.value,a instanceof l?a:new l((function(e){e(a)}))).then(n,r)}a((u=u.apply(s,o||[])).next())}))})(e,t).catch((function(e){return t.error(e)}))}))}function Vc(e,t,n){return void 0===n&&(n=1/0),Kd(t)?Vc((function(n,r){return Hc((function(e,a){return t(n,e,r,a)}))(Wc(e(n,r)))}),n):("number"==typeof t&&(n=t),Xd((function(t,r){return function(e,t,n,r){var a=[],i=0,s=0,o=!1,l=function(){!o||a.length||i||t.complete()},u=function(e){return it in e?Bc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const Qc={prepareAnnotation:e=>{if((0,te.isString)(null==e?void 0:e.query)){const n=e,{query:r}=n;return t=((e,t)=>{for(var n in t||(t={}))Gc.call(t,n)&&Jc(e,n,t[n]);if(qc)for(var n of qc(t))Zc.call(t,n)&&Jc(e,n,t[n]);return e})({},((e,t)=>{var n={};for(var r in e)Gc.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&qc)for(var r of qc(e))t.indexOf(r)<0&&Zc.call(e,r)&&(n[r]=e[r]);return n})(n,["query"])),Uc(t,$c({target:{refId:"annotation_query",query:r},mappings:{}}))}var t;return e},prepareQuery:e=>e.target,processEvents:(e,t)=>function(e,t){return(0,S.of)(e).pipe((e=>e.pipe(Vc((e=>{if(!(null==e?void 0:e.length))return(0,S.of)(void 0);if(1===e.length)return(0,S.of)(e[0]);return(0,S.of)(e).pipe(i.standardTransformers.mergeTransformer.operator({},{interpolate:e=>e}),Hc((e=>e[0])))})))),Hc((e=>{if(!(null==e?void 0:e.length))return[];let n=!1,r=!1;const a={};for(const t of e.fields)a[(0,i.getFieldDisplayName)(t,e).toLowerCase()]=t;t||(t={});const s=[];for(const o of Xc){const l=t[o.key]||{};if(l.source===i.AnnotationEventFieldSource.Skip)continue;const u={key:o.key,split:o.split};if(l.source===i.AnnotationEventFieldSource.Text)u.text=l.value;else{const t=(l.value||o.key).toLowerCase();u.field=a[t],!u.field&&o.field&&(u.field=o.field(e))}(u.field||u.text)&&(s.push(u),"time"===u.key?n=!0:"text"===u.key&&(r=!0))}if(!n||!r)return console.error("Cannot process annotation fields. No time or text present."),[];const o=[];for(let t=0;te.fields.find((e=>e.type===i.FieldType.time)),placeholder:"time, or the first time field"},{key:"timeEnd",help:"When this field is defined, the annotation will be treated as a range"},{key:"title"},{key:"text",field:e=>e.fields.find((e=>e.type===i.FieldType.string)),placeholder:"text, or the first text field"},{key:"tags",split:",",help:"The results will be split on comma (,)"},{key:"id"}],Xc=[...s.config.publicDashboardAccessToken?[{key:"color"},{key:"isRegion"},{key:"source"}]:[],...Kc,{key:"userId"},{key:"login"},{key:"email"},{key:"prevState"},{key:"newState"},{key:"data"},{key:"panelId"},{key:"alertId"},{key:"dashboardId"},{key:"dashboardUID"}],eh=["prometheus","loki","elasticsearch","grafana-opensearch-datasource"];var th=Object.defineProperty,nh=Object.defineProperties,rh=Object.getOwnPropertyDescriptors,ah=Object.getOwnPropertySymbols,ih=Object.prototype.hasOwnProperty,sh=Object.prototype.propertyIsEnumerable,oh=(e,t,n)=>t in e?th(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,lh=(e,t)=>{for(var n in t||(t={}))ih.call(t,n)&&oh(e,n,t[n]);if(ah)for(var n of ah(t))sh.call(t,n)&&oh(e,n,t[n]);return e},uh=(e,t)=>nh(e,rh(t));let dh=100;var ch=Object.defineProperty,hh=Object.getOwnPropertySymbols,mh=Object.prototype.hasOwnProperty,ph=Object.prototype.propertyIsEnumerable,fh=(e,t,n)=>t in e?ch(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function _h(e){return"panel-alert"===e.eventType}var yh=Object.defineProperty,gh=Object.defineProperties,vh=Object.getOwnPropertyDescriptors,bh=Object.getOwnPropertySymbols,Mh=Object.prototype.hasOwnProperty,wh=Object.prototype.propertyIsEnumerable,Lh=(e,t,n)=>t in e?yh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kh=(e,t)=>{for(var n in t||(t={}))Mh.call(t,n)&&Lh(e,n,t[n]);if(bh)for(var n of bh(t))wh.call(t,n)&&Lh(e,n,t[n]);return e},Sh=(e,t)=>gh(e,vh(t));(class extends Zd{constructor(e){super(kh({isEnabled:!0},e),["query"]),this._scopedVars={__sceneObject:Bn(this)}}onEnable(){this.publishEvent(new s.RefreshEvent,!0);const e=Lu.getTimeRange(this);this._timeRangeSub=e.subscribeToState((()=>{this.runWithTimeRange(e)}))}onDisable(){var e;this.publishEvent(new s.RefreshEvent,!0),null==(e=this._timeRangeSub)||e.unsubscribe()}runLayer(){he("AnnotationsDataLayer","run layer");const e=Lu.getTimeRange(this);this.runWithTimeRange(e)}async runWithTimeRange(e){const{query:t}=this.state;if(this.querySub&&this.querySub.unsubscribe(),this._variableDependency.hasDependencyInLoadingState())he("AnnotationsDataLayer","Variable dependency is in loading state, skipping query execution");else try{let n=function(e,t,n,r){var a;if(e.annotationQuery&&function(e){const{type:t}=e;return!e.annotations||eh.includes(t)}(e))return console.warn("Using deprecated annotationQuery method, please upgrade your datasource"),(0,S.from)(e.annotationQuery({range:t.state.value,rangeRaw:t.state.value.raw,annotation:n,dashboard:{getVariables:(0,s.getTemplateSrv)().getVariables}})).pipe(Hc((e=>({state:fe.Done,events:e}))));const o=lh(lh({},Qc),e.annotations),l=lh(lh({},null==(a=o.getDefaultQuery)?void 0:a.call(o)),n),u=o.prepareAnnotation(l);if(!u)return(0,S.of)({state:fe.Done,events:[]});const d=o.prepareQuery(u);if(!d)return(0,S.of)({state:fe.Done,events:[]});const c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,h=i.rangeUtil.calculateInterval(t.state.value,c,e.interval),m={__interval:{text:h.interval,value:h.interval},__interval_ms:{text:h.intervalMs.toString(),value:h.intervalMs},__annotation:{text:u.name,value:u},__sceneObject:Bn(r)},p=lh(uh(lh({startTime:Date.now(),requestId:"AQ"+dh++,range:t.state.value,maxDataPoints:c,scopedVars:m},h),{app:i.CoreApp.Dashboard,timezone:t.getTimeZone(),targets:[uh(lh({},d),{refId:"Anno"})]}),Zt(r));return(0,s.getRunRequest)()(e,p).pipe(Vc((e=>{const t=(null==e?void 0:e.series.length)?e.series:e.annotations;return(null==t?void 0:t.length)?(t.forEach((e=>{var t;(null==(t=e.meta)?void 0:t.dataTopic)||(e.meta=uh(lh({},e.meta||{}),{dataTopic:i.DataTopic.Annotations}))})),o.processEvents(u,t).pipe(Hc((t=>({state:e.state,events:t||[]}))))):(0,S.of)({state:e.state,events:[]})})))}(await this.resolveDataSource(t),e,t,this).pipe(Dt({type:"annotations",origin:this,cancel:()=>this.cancelQuery()}),(0,S.map)((e=>this.processEvents(t,e))));this.querySub=n.subscribe((e=>{this.publishResults(e)}))}catch(e){this.publishResults(Sh(kh({},we),{state:fe.Error,errors:[{message:Vd(e)}]})),console.error("AnnotationsDataLayer error",e)}}async resolveDataSource(e){return await Tt(e.datasource||void 0,this._scopedVars)}processEvents(e,t){let n=(r=e,a=t.events||[],r.snapshotData&&delete(r=(0,te.cloneDeep)(r)).snapshotData,a.map((e=>{var t;const n=((e,t)=>{for(var n in t||(t={}))mh.call(t,n)&&fh(e,n,t[n]);if(hh)for(var n of hh(t))ph.call(t,n)&&fh(e,n,t[n]);return e})({},e);switch(n.source=r,n.color=s.config.theme2.visualization.getColorByName(r.iconColor),n.type=r.name,n.isRegion=Boolean(n.timeEnd&&n.time!==n.timeEnd),null==(t=n.newState)?void 0:t.toLowerCase()){case"pending":n.color="yellow";break;case"alerting":n.color="red";break;case"ok":case"normal":n.color="green";break;case"no_data":case"nodata":n.color="gray"}return n})));var r,a;n=function(e){let t=[];const n=(0,te.partition)(e,"id"),r=(0,te.groupBy)(n[0],"id");return t=(0,te.map)(r,(e=>e.length>1&&!(0,te.every)(e,_h)?(0,te.find)(e,(e=>"panel-alert"!==e.eventType)):(0,te.head)(e))),t=(0,te.concat)(t,n[1]),t}(n);const o=Sh(kh({},we),{state:t.state}),l=(0,i.arrayToDataFrame)(n);return l.meta=Sh(kh({},l.meta),{dataTopic:i.DataTopic.Annotations}),o.series=[l],o}}).Component=function({model:e}){const{isHidden:t}=e.useState();return t?null:k().createElement(Jd,{layer:e})},Object.defineProperty,Object.defineProperties,Object.getOwnPropertyDescriptors,Object.getOwnPropertySymbols,Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable;var Dh=Object.defineProperty,Yh=Object.defineProperties,Th=Object.getOwnPropertyDescriptors,xh=Object.getOwnPropertySymbols,Oh=Object.prototype.hasOwnProperty,jh=Object.prototype.propertyIsEnumerable,Ph=(e,t,n)=>t in e?Dh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Eh extends K{constructor(){super(...arguments),this.isDataLayer=!0,this._results=new S.ReplaySubject(1),this._dataLayersMerger=new al}subscribeToAllLayers(e){e.length>0?this.querySub=this._dataLayersMerger.getMergedStream(e).subscribe(this._onLayerUpdateReceived.bind(this)):(this._results.next({origin:this,data:we}),this.setStateHelper({data:we}))}_onLayerUpdateReceived(e){var t;let n=[];for(const r of e)(null==(t=r.data)?void 0:t.series)&&(n=n.concat(r.data.series));const r=(a=((e,t)=>{for(var n in t||(t={}))Oh.call(t,n)&&Ph(e,n,t[n]);if(xh)for(var n of xh(t))jh.call(t,n)&&Ph(e,n,t[n]);return e})({},we),Yh(a,Th({series:n})));var a;this._results.next({origin:this,data:r}),this.setStateHelper({data:r})}getResultsStream(){return this._results}cancelQuery(){var e;null==(e=this.querySub)||e.unsubscribe()}setStateHelper(e){st(this,e)}}class Ch extends Eh{constructor(e){var t,n;super({name:null!=(t=e.name)?t:"Data layers",layers:null!=(n=e.layers)?n:[]}),this.addActivationHandler((()=>this._onActivate()))}_onActivate(){return this._subs.add(this.subscribeToState(((e,t)=>{var n;e.layers!==t.layers&&(null==(n=this.querySub)||n.unsubscribe(),this.subscribeToAllLayers(e.layers))}))),this.subscribeToAllLayers(this.state.layers),()=>{var e;null==(e=this.querySub)||e.unsubscribe()}}}Ch.Component=({model:e})=>{const{layers:t}=e.useState();return k().createElement(k().Fragment,null,t.map((e=>k().createElement(e.Component,{model:e,key:e.state.key}))))};var Hh=Object.defineProperty,Rh=Object.defineProperties,Ah=Object.getOwnPropertyDescriptors,Ih=Object.getOwnPropertySymbols,Fh=Object.prototype.hasOwnProperty,Nh=Object.prototype.propertyIsEnumerable,Wh=(e,t,n)=>t in e?Hh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zh=(e,t)=>{for(var n in t||(t={}))Fh.call(t,n)&&Wh(e,n,t[n]);if(Ih)for(var n of Ih(t))Nh.call(t,n)&&Wh(e,n,t[n]);return e},Vh=(e,t)=>Rh(e,Ah(t));class Bh extends K{constructor(e){super(e),this._results=new S.ReplaySubject(1),this._variableDependency=new zl(this,{statePaths:["transformations"],onReferencedVariableValueChanged:()=>this.reprocessTransformations()}),this.addActivationHandler((()=>this.activationHandler()))}activationHandler(){const e=this.getSourceData();return this._subs.add(e.subscribeToState((e=>this.transform(e.data)))),e.state.data&&this.transform(e.state.data),()=>{this._transformSub&&this._transformSub.unsubscribe()}}getSourceData(){if(this.state.$data){if(this.state.$data instanceof Ch)throw new Error("SceneDataLayerSet can not be used as data provider for SceneDataTransformer.");return this.state.$data}if(!this.parent||!this.parent.parent)throw new Error("SceneDataTransformer must either have $data set on it or have a parent.parent with $data");return Lu.getData(this.parent.parent)}setContainerWidth(e){this.state.$data&&this.state.$data.setContainerWidth&&this.state.$data.setContainerWidth(e)}isDataReadyToDisplay(){const e=this.getSourceData();return!e.isDataReadyToDisplay||e.isDataReadyToDisplay()}reprocessTransformations(){this.transform(this.getSourceData().state.data,!0)}cancelQuery(){var e,t;null==(t=(e=this.getSourceData()).cancelQuery)||t.call(e)}getResultsStream(){return this._results}clone(e){const t=super.clone(e);return this._prevDataFromSource&&(t._prevDataFromSource=this._prevDataFromSource),t}haveAlreadyTransformedData(e){if(!this._prevDataFromSource)return!1;if(e===this._prevDataFromSource)return!0;const{series:t,annotations:n}=this._prevDataFromSource;return e.series===t&&e.annotations===n&&(this.state.data&&e.state!==this.state.data.state&&this.setState({data:Vh(zh({},this.state.data),{state:e.state})}),!0)}transform(e,t=!1){var n;if(0===this.state.transformations.length||!e)return this._prevDataFromSource=e,this.setState({data:e}),void(e&&this._results.next({origin:this,data:e}));if(!t&&this.haveAlreadyTransformedData(e))return;let r=this._interpolateVariablesInTransformationConfigs(e);const a=r.filter((e=>!("options"in e)&&!("topic"in e)||null==e.topic||e.topic===i.DataTopic.Series)).map((e=>"operator"in e?e.operator:e)),o=r.filter((e=>("options"in e||"topic"in e)&&e.topic===i.DataTopic.Annotations)).map((e=>"operator"in e?e.operator:e));this._transformSub&&this._transformSub.unsubscribe();const l={interpolate:t=>{var n;return Lu.interpolate(this,t,null==(n=e.request)?void 0:n.scopedVars)}};let u=[(0,i.transformDataFrame)(a,e.series,l)];e.annotations&&e.annotations.length>0&&o.length>0&&u.push((0,i.transformDataFrame)(o,null!=(n=e.annotations)?n:[])),this._transformSub=(0,S.forkJoin)(u).pipe((0,S.map)((t=>{const n=t[0],r=t[1];return Vh(zh({},e),{series:n,annotations:null!=r?r:e.annotations})})),(0,S.catchError)((t=>{var n;console.error("Error transforming data: ",t);const r=(null==(n=this.getSourceData().state.data)?void 0:n.errors)||[],a=(0,s.toDataQueryError)(t);a.message=`Error transforming data: ${a.message}`;const o=Vh(zh({},e),{state:i.LoadingState.Error,errors:[...r,a]});return(0,S.of)(o)}))).subscribe((t=>{this.setState({data:t}),this._results.next({origin:this,data:t}),this._prevDataFromSource=e}))}_interpolateVariablesInTransformationConfigs(e){var t;const n=this.state.transformations;return 0===this._variableDependency.getNames().size?n:n.every((e=>"object"==typeof e))?JSON.parse(Lu.interpolate(this,JSON.stringify(n),null==(t=e.request)?void 0:t.scopedVars)):n.map((t=>{var n;return"object"==typeof t?JSON.parse(Lu.interpolate(this,JSON.stringify(t),null==(n=e.request)?void 0:n.scopedVars)):t}))}}function Uh({variable:e,layout:t,showAlways:n,hideLabel:r}){return X(e,{shouldActivateOrKeepAlive:!0}).hide!==i.VariableHide.hideVariable||n?"vertical"===t?k().createElement("div",{className:Gh,"data-testid":tn.pages.Dashboard.SubMenu.submenuItem},k().createElement($h,{variable:e,layout:t,hideLabel:r}),k().createElement(e.Component,{model:e})):k().createElement("div",{className:qh,"data-testid":tn.pages.Dashboard.SubMenu.submenuItem},k().createElement($h,{variable:e,hideLabel:r}),k().createElement(e.Component,{model:e})):null}function $h({variable:e,layout:t,hideLabel:n}){var r;const{state:a}=e;if(e.state.hide===i.VariableHide.hideLabel||n)return null;const s=`var-${a.key}`,o=a.label||a.name;return k().createElement(rr,{htmlFor:s,isLoading:a.loading,onCancel:()=>{var t;return null==(t=e.onCancel)?void 0:t.call(e)},label:o,error:a.error,layout:t,description:null!=(r=a.description)?r:void 0})}(class extends K{}).Component=function({model:e}){const t=Lu.getVariables(e).useState();return k().createElement(k().Fragment,null,t.variables.map((t=>k().createElement(Uh,{key:t.state.key,variable:t,layout:e.state.layout}))))};const qh=(0,nn.css)({display:"flex","> :nth-child(2)":(0,nn.css)({borderTopLeftRadius:0,borderBottomLeftRadius:0})}),Gh=(0,nn.css)({display:"flex",flexDirection:"column"});(class extends K{}).Component=function({model:e}){const t=Lu.lookupVariable(e.state.variableName,e);return t?k().createElement(Uh,{key:t.state.key,variable:t,layout:e.state.layout,showAlways:!0}):null};class Zh extends K{constructor(e){super(e),this._variablesThatHaveChanged=new Set,this._variablesToUpdate=new Set,this._updating=new Map,this._variableValueRecorder=new xt,this._variableDependency=new Qh(this._handleParentVariableUpdatesCompleted.bind(this)),this._onActivate=()=>{const e=Lu.getTimeRange(this);this._subs.add(this.subscribeToEvent(Fe,(e=>this._handleVariableValueChanged(e.payload)))),this._subs.add(e.subscribeToState((()=>{this._refreshTimeRangeBasedVariables()}))),this._subs.add(this.subscribeToState(this._onStateChanged)),this._checkForVariablesThatChangedWhileInactive();for(const e of this.state.variables)this._variableNeedsUpdate(e)&&this._variablesToUpdate.add(e);return this._updateNextBatch(),this._onDeactivate},this._onDeactivate=()=>{var e;for(const t of this._updating.values())null==(e=t.subscription)||e.unsubscribe();for(const e of this.state.variables)this._variablesToUpdate.has(e)||this._updating.has(e)||this._variableValueRecorder.recordCurrentValue(e);this._variablesToUpdate.clear(),this._updating.clear()},this._onStateChanged=(e,t)=>{const n=this._variablesToUpdate.size;for(const n of t.variables)if(!e.variables.includes(n)){const e=this._updating.get(n);(null==e?void 0:e.subscription)&&e.subscription.unsubscribe(),this._updating.delete(n),this._variablesToUpdate.delete(n)}for(const n of e.variables)t.variables.includes(n)||this._variableNeedsUpdate(n)&&this._variablesToUpdate.add(n);0===n&&this._variablesToUpdate.size>0&&this._updateNextBatch()},this.addActivationHandler(this._onActivate)}getByName(e){return this.state.variables.find((t=>t.state.name===e))}_refreshTimeRangeBasedVariables(){for(const e of this.state.variables)"refresh"in e.state&&e.state.refresh===i.VariableRefresh.onTimeRangeChanged&&this._variablesToUpdate.add(e);this._updateNextBatch()}_checkForVariablesThatChangedWhileInactive(){if(this._variableValueRecorder.hasValues())for(const e of this.state.variables)this._variableValueRecorder.hasValueChanged(e)&&(Jh(e,"Changed while in-active"),this._addDependentVariablesToUpdateQueue(e))}_variableNeedsUpdate(e){return!(e.isLazy||!e.validateAndUpdate||this._variableValueRecorder.hasRecordedValue(e)&&(Jh(e,"Skipping updateAndValidate current value valid"),1))}_updateNextBatch(){for(const e of this._variablesToUpdate){if(!e.validateAndUpdate)throw new Error("Variable added to variablesToUpdate but does not have validateAndUpdate");if(this._updating.has(e))continue;if(Lu.hasVariableDependencyInLoadingState(e))continue;const t={variable:e};this._updating.set(e,t),Jh(e,"updateAndValidate started"),t.subscription=e.validateAndUpdate().subscribe({next:()=>this._validateAndUpdateCompleted(e),complete:()=>this._validateAndUpdateCompleted(e),error:t=>this._handleVariableError(e,t)})}}_validateAndUpdateCompleted(e){var t;if(!this._updating.has(e))return;const n=this._updating.get(e);null==(t=null==n?void 0:n.subscription)||t.unsubscribe(),this._updating.delete(e),this._variablesToUpdate.delete(e),Jh(e,"updateAndValidate completed"),this._notifyDependentSceneObjects(e),this._updateNextBatch()}cancel(e){var t;const n=this._updating.get(e);null==(t=null==n?void 0:n.subscription)||t.unsubscribe(),this._updating.delete(e),this._variablesToUpdate.delete(e)}_handleVariableError(e,t){var n;const r=this._updating.get(e);null==(n=null==r?void 0:r.subscription)||n.unsubscribe(),this._updating.delete(e),this._variablesToUpdate.delete(e),e.setState({loading:!1,error:t.message}),console.error("SceneVariableSet updateAndValidate error",t),Jh(e,"updateAndValidate error",t),this._notifyDependentSceneObjects(e),this._updateNextBatch()}_handleVariableValueChanged(e){this._variablesThatHaveChanged.add(e),this._addDependentVariablesToUpdateQueue(e),this._updating.has(e)||(this._updateNextBatch(),this._notifyDependentSceneObjects(e))}_handleParentVariableUpdatesCompleted(e,t){t&&this._addDependentVariablesToUpdateQueue(e),this._variablesToUpdate.size>0&&0===this._updating.size&&this._updateNextBatch()}_addDependentVariablesToUpdateQueue(e){for(const t of this.state.variables)t.variableDependency&&t.variableDependency.hasDependencyOn(e.state.name)&&(Jh(t,"Added to update queue, dependant variable value changed"),this._updating.has(t)&&t.onCancel&&t.onCancel(),this._variablesToUpdate.add(t))}_notifyDependentSceneObjects(e){this.parent&&(this._traverseSceneAndNotify(this.parent,e,this._variablesThatHaveChanged.has(e)),this._variablesThatHaveChanged.delete(e))}_traverseSceneAndNotify(e,t,n){if(this!==e&&e.isActive){if(e.state.$variables&&e.state.$variables!==this){const n=e.state.$variables.getByName(t.state.name);if(null==n?void 0:n.isAncestorLoading)t=n;else if(n)return}e.variableDependency&&e.variableDependency.variableUpdateCompleted(t,n),e.forEachChild((e=>this._traverseSceneAndNotify(e,t,n)))}}isVariableLoadingOrWaitingToUpdate(e){return!(!e.isAncestorLoading||!e.isAncestorLoading())||!(!this._variablesToUpdate.has(e)&&!this._updating.has(e))||Lu.hasVariableDependencyInLoadingState(e)}}function Jh(e,t,n){n?he("SceneVariableSet",`Variable[${e.state.name}]: ${t}`,n):he("SceneVariableSet",`Variable[${e.state.name}]: ${t}`)}class Qh{constructor(e){this._variableUpdatesCompleted=e,this._emptySet=new Set}getNames(){return this._emptySet}hasDependencyOn(e){return!1}variableUpdateCompleted(e,t){this._variableUpdatesCompleted(e,t)}}var Kh=Object.defineProperty,Xh=Object.getOwnPropertySymbols,em=Object.prototype.hasOwnProperty,tm=Object.prototype.propertyIsEnumerable,nm=(e,t,n)=>t in e?Kh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class rm extends lt{constructor(e){super(((e,t)=>{for(var n in t||(t={}))em.call(t,n)&&nm(e,n,t[n]);if(Xh)for(var n of Xh(t))tm.call(t,n)&&nm(e,n,t[n]);return e})({type:"custom",query:"",value:"",text:"",options:[],name:""},e)),this._variableDependency=new zl(this,{statePaths:["query"]})}getValueOptions(e){var t;const n=(null!=(t=Lu.interpolate(this,this.state.query).match(/(?:\\,|[^,])+/g))?t:[]).map((e=>{var t;e=e.replace(/\\,/g,",");const n=null!=(t=/^(.+)\s:\s(.+)$/g.exec(e))?t:[];if(3===n.length){const[,e,t]=n;return{label:e.trim(),value:t.trim()}}return{label:e.trim(),value:e.trim()}}));return n.length||(this.skipNextValidation=!0),(0,S.of)(n)}}rm.Component=({model:e})=>In(e);var am=Object.defineProperty,im=Object.getOwnPropertySymbols,sm=Object.prototype.hasOwnProperty,om=Object.prototype.propertyIsEnumerable,lm=(e,t,n)=>t in e?am(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class um extends lt{constructor(e){super(((e,t)=>{for(var n in t||(t={}))sm.call(t,n)&&lm(e,n,t[n]);if(im)for(var n of im(t))om.call(t,n)&&lm(e,n,t[n]);return e})({type:"datasource",value:"",text:"",options:[],name:"",regex:"",pluginId:""},e)),this._variableDependency=new zl(this,{statePaths:["regex"]})}getValueOptions(e){if(!this.state.pluginId)return(0,S.of)([]);const t=(0,s.getDataSourceSrv)().getList({metrics:!0,variables:!1,pluginId:this.state.pluginId});let n;if(this.state.regex){const e=Lu.interpolate(this,this.state.regex,void 0,"regex");n=(0,i.stringToJsRegex)(e)}const r=[];for(let e=0;e5)return[];for(const a of n){const n=`${e}${a}`;r.push({name:n,children:hm(n,t+1)})}return r}function mm(e,t,n){if(n>=t.length)return e;if("*"===t[n])return e;const r=t[n];let a=[],i=[r];r.startsWith("{")&&(i=r.replace(/\{|\}/g,"").split(","));for(const r of e)for(const e of i)if(-1!==e.indexOf("*")){const i=e.replace("*","");new RegExp(`^${i}.*`,"gi").test(r.name)&&(a=a.concat(mm([r],t,n+1)))}else r.name===e&&(a=a.concat(mm(r.children,t,n+1)));return a}function pm(e){return 0===e.indexOf("value")?[{name:e,children:[]}]:mm(hm("",0),e.split("."),0)}um.Component=({model:e})=>In(e);var fm=Object.defineProperty,_m=Object.getOwnPropertySymbols,ym=Object.prototype.hasOwnProperty,gm=Object.prototype.propertyIsEnumerable,vm=(e,t,n)=>t in e?fm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function bm({model:e}){const{value:t,key:n,loading:r}=e.useState(),a=(0,w.useCallback)((t=>{e.setValue(t.currentTarget.value)}),[e]),i=(0,w.useCallback)((t=>{"Enter"===t.key&&e.setValue(t.currentTarget.value)}),[e]);return k().createElement(Xt.AutoSizeInput,{id:n,placeholder:"Enter value",minWidth:15,maxWidth:30,value:t,loading:r,onBlur:a,onKeyDown:i})}(class extends lt{constructor(e,t=!1){super(((e,t)=>{for(var n in t||(t={}))ym.call(t,n)&&vm(e,n,t[n]);if(_m)for(var n of _m(t))gm.call(t,n)&&vm(e,n,t[n]);return e})({type:"custom",name:"Test",value:"Value",text:"Text",query:"Query",options:[],refresh:i.VariableRefresh.onDashboardLoad,updateOptions:!0},e)),this.completeUpdate=new S.Subject,this.isGettingValues=!0,this.getValueOptionsCount=0,this.isLazy=!1,this._variableDependency=new zl(this,{statePaths:["query"]}),this.isLazy=t}getValueOptions(e){const{delayMs:t}=this.state;this.getValueOptionsCount+=1;const n=Lu.getQueryController(this);return new S.Observable((e=>{const r={type:"variable",origin:this,cancel:()=>e.complete()};if(n&&n.queryStarted(r),this.setState({loading:!0}),this.state.throwError)throw new Error(this.state.throwError);const a=Lu.interpolate(this,this.state.query),i=this.getOptions(a),s=this.completeUpdate.subscribe({next:()=>{const t={issuedQuery:a,loading:!1};this.state.updateOptions&&(t.options=i),this.setState(t),e.next(i),e.complete()}});let o;return t?o=window.setTimeout((()=>this.signalUpdateCompleted()),t):0===t&&this.signalUpdateCompleted(),this.isGettingValues=!0,()=>{s.unsubscribe(),window.clearTimeout(o),this.isGettingValues=!1,this.state.loading&&this.setState({loading:!1}),n&&n.queryCompleted(r)}}))}cancel(){const e=ue(this,(e=>e instanceof Zh?e:void 0));null==e||e.cancel(this)}getOptions(e){return this.state.optionsToReturn?this.state.optionsToReturn:pm(e).map((e=>({label:e.name,value:e.name})))}signalUpdateCompleted(){this.completeUpdate.next(1)}}).Component=({model:e})=>In(e);var Mm=Object.defineProperty,wm=Object.getOwnPropertySymbols,Lm=Object.prototype.hasOwnProperty,km=Object.prototype.propertyIsEnumerable,Sm=(e,t,n)=>t in e?Mm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;(class extends K{constructor(e){super(((e,t)=>{for(var n in t||(t={}))Lm.call(t,n)&&Sm(e,n,t[n]);if(wm)for(var n of wm(t))km.call(t,n)&&Sm(e,n,t[n]);return e})({type:"textbox",value:"",name:""},e)),this._urlSync=new Le(this,{keys:()=>[this.getKey()]})}getValue(){return this.state.value}setValue(e){e!==this.state.value&&(this.setState({value:e}),this.publishEvent(new Fe(this),!0))}getKey(){return`var-${this.state.name}`}getUrlState(){return{[this.getKey()]:this.state.value}}updateFromUrl(e){const t=e[this.getKey()];"string"==typeof t&&this.setValue(t)}}).Component=({model:e})=>k().createElement(bm,{model:e}),Object.defineProperty,Object.defineProperties,Object.getOwnPropertyDescriptors,Object.getOwnPropertySymbols,Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable;var Dm=Object.defineProperty,Ym=Object.getOwnPropertySymbols,Tm=Object.prototype.hasOwnProperty,xm=Object.prototype.propertyIsEnumerable,Om=(e,t,n)=>t in e?Dm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;(class extends K{constructor(e){super(((e,t)=>{for(var n in t||(t={}))Tm.call(t,n)&&Om(e,n,t[n]);if(Ym)for(var n of Ym(t))xm.call(t,n)&&Om(e,n,t[n]);return e})({type:"interval",value:"",intervals:["1m","10m","30m","1h","6h","12h","1d","7d","14d","30d"],name:"",autoStepCount:30,autoMinInterval:"10s",autoEnabled:!1,refresh:Ou.CO.onTimeRangeChanged},e)),this._onChange=e=>{this.setState({value:e.value}),this.publishEvent(new Fe(this),!0)},this._urlSync=new Le(this,{keys:()=>[this.getKey()]})}getKey(){return`var-${this.state.name}`}getUrlState(){return{[this.getKey()]:this.state.value}}updateFromUrl(e){const t={},n=e[this.getKey()];"string"==typeof n&&(n.startsWith("$__auto_interval_")?t.value=tt:t.value=n),this.setState(t)}getOptionsForSelect(){const{value:e,intervals:t,autoEnabled:n}=this.state;let r=t.map((e=>({value:e,label:e})));return n&&(r=[{value:tt,label:"Auto"},...r]),e&&!r.some((t=>t.value===e))&&r.push({value:e,label:e}),r}getValue(){const{value:e,autoStepCount:t,autoMinInterval:n}=this.state;return e===tt?this.getAutoRefreshInteval(t,n):e}getAutoRefreshInteval(e,t){const n=Lu.getTimeRange(this).state.value;return i.rangeUtil.calculateInterval(n,e,t).interval}validateAndUpdate(){const{value:e,intervals:t}=this.state;let n=!1;if(e===tt)n=!0;else if(!e&&t.length>0){const e=t[0];this.setState({value:e}),n=!0}return n&&this.publishEvent(new Fe(this),!0),(0,S.of)({})}}).Component=({model:e})=>{const{key:t,value:n}=e.useState();return k().createElement(Xt.Select,{id:t,placeholder:"Select value",width:"auto",value:n,tabSelectsValue:!1,options:e.getOptionsForSelect(),onChange:e._onChange})};var jm,Pm,Em=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},Cm=(e,t,n)=>(Em(e,t,"read from private field"),n?n.call(e):t.get(e)),Hm=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},Rm=(e,t,n,r)=>(Em(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n);class Am extends i.BusEventWithPayload{}Am.type="new-scene-object-added";class Im{constructor(e={},t=s.locationService){this._urlKeyMapper=new ku,this._options=e,this._locationService=t,this._paramsCache=new Fm(t)}initSync(e){var t;if(this._subs&&(he("UrlSyncManager","Unregister previous scene state subscription",null==(t=this._sceneRoot)?void 0:t.state.key),this._subs.unsubscribe()),he("UrlSyncManager","init",e.state.key),this._sceneRoot=e,this._subs=new S.Subscription,this._subs.add(e.subscribeToEvent(W,(e=>{this.handleSceneObjectStateChanged(e.payload.changedObject)}))),this._subs.add(e.subscribeToEvent(Am,(e=>{this.handleNewObject(e.payload)}))),this._urlKeyMapper.clear(),this._lastLocation=this._locationService.getLocation(),this.handleNewObject(this._sceneRoot),this._options.updateUrlOnInit){const t=Du(e);(function(e,t){for(let n in e)if(!xu(t.getAll(n),e[n]))return!0;return!1})(t,this._paramsCache.getParams())&&this._locationService.partial(t,!0)}}cleanUp(e){this._sceneRoot===e&&(he("UrlSyncManager","Clean up"),this._subs&&(this._subs.unsubscribe(),this._subs=void 0,he("UrlSyncManager","Root deactived, unsub to state","same key",this._sceneRoot.state.key===e.state.key)),this._sceneRoot=void 0,this._lastLocation=void 0)}handleNewLocation(e){this._sceneRoot&&this._lastLocation!==e&&(he("UrlSyncManager","handleNewLocation"),this._lastLocation=e,Yu(this._sceneRoot,this._paramsCache.getParams(),this._urlKeyMapper))}handleNewObject(e){this._sceneRoot&&Yu(e,this._paramsCache.getParams(),this._urlKeyMapper)}handleSceneObjectStateChanged(e){var t,n;if(!e.urlSync)return;const r=e.urlSync.getUrlState(),a=this._locationService.getSearch(),i={};for(const[t,n]of Object.entries(r)){const r=this._urlKeyMapper.getUniqueKey(t,e);xu(a.getAll(r),n)||(i[r]=n)}if(Object.keys(i).length>0){const a=!0!==(null==(n=(t=e.urlSync).shouldCreateHistoryStep)?void 0:n.call(t,r));he("UrlSyncManager","onStateChange updating URL"),this._locationService.partial(i,a),this._lastLocation=this._locationService.getLocation()}}getUrlState(e){return Du(e)}}class Fm{constructor(e){this.locationService=e,Hm(this,jm,void 0),Hm(this,Pm,void 0)}getParams(){const e=this.locationService.getLocation();return Cm(this,Pm)===e||(Rm(this,Pm,e),Rm(this,jm,new URLSearchParams(e.search))),Cm(this,jm)}}function Nm(e,t={}){const n=(0,a.useLocation)(),r=ot(),[i,s]=(0,w.useState)(!1),o=function(e,t){return(0,w.useMemo)((()=>new Im({updateUrlOnInit:e.updateUrlOnInit,createBrowserHistorySteps:e.createBrowserHistorySteps},t)),[e.updateUrlOnInit,e.createBrowserHistorySteps,t])}(t,r);return(0,w.useEffect)((()=>(o.initSync(e),s(!0),()=>o.cleanUp(e))),[e,o]),(0,w.useEffect)((()=>{const e=r.getLocation(),t=e!==n?e:n;e!==n&&he("useUrlSync","latestLocation different from location"),o.handleNewLocation(t)}),[e,o,n,r]),i}function Wm({children:e,scene:t,updateUrlOnInit:n,createBrowserHistorySteps:r}){return Nm(t,{updateUrlOnInit:n,createBrowserHistorySteps:r})?e:null}jm=new WeakMap,Pm=new WeakMap;class zm extends K{constructor(e){super(e),this.addActivationHandler((()=>{const e=function(e){const t=window.__grafanaSceneContext;return he("setWindowGrafanaScene","set window.__grafanaSceneContext",e),window.__grafanaSceneContext=e,()=>{window.__grafanaSceneContext===e&&(he("setWindowGrafanaScene","restore window.__grafanaSceneContext",t),window.__grafanaSceneContext=t)}}(this);return()=>{e()}}))}}zm.Component=function({model:e}){const{body:t,controls:n}=e.useState(),r=(0,Xt.useStyles2)(Vm);return k().createElement("div",{className:r.container},n&&k().createElement("div",{className:r.controls},n.map((e=>k().createElement(e.Component,{key:e.state.key,model:e})))),k().createElement("div",{className:r.body},k().createElement(t.Component,{model:t})))};const Vm=e=>({container:(0,nn.css)({flexGrow:1,display:"flex",gap:e.spacing(2),minHeight:"100%",flexDirection:"column"}),body:(0,nn.css)({flexGrow:1,display:"flex",gap:e.spacing(1)}),controls:(0,nn.css)({display:"flex",gap:e.spacing(2),alignItems:"flex-end",flexWrap:"wrap"})});class Bm extends K{addItem(e){this.setState({items:this.state.items?[...this.state.items,e]:[e]})}setItems(e){this.setState({items:e})}}function Um(e){return e instanceof Bp}Bm.Component=function({model:e}){const{items:t=[]}=e.useState(),n=k().useRef(null);(0,w.useEffect)((()=>{n.current&&n.current.focus()}),[]);const r=e=>e.map((e=>{switch(e.type){case"divider":return k().createElement(Xt.Menu.Divider,{key:e.text});case"group":return k().createElement(Xt.Menu.Group,{key:e.text,label:e.text},e.subMenu?r(e.subMenu):void 0);default:return k().createElement(Xt.Menu.Item,{key:e.text,label:e.text,icon:e.iconClassName,childItems:e.subMenu?r(e.subMenu):void 0,url:e.href,onClick:e.onClick,shortcut:e.shortcut,testId:tn.components.Panels.Panel.menuItems(e.text)})}}));return k().createElement(Xt.Menu,{ref:n},r(t))},class extends K{constructor(e={}){super({options:e})}}.Component=function({model:e}){const{options:t}=e.useState(),{data:n}=Lu.getData(e).useState(),{from:r,to:a}=Lu.getTimeRange(e).useState(),{value:i}=function(i,o){void 0===o&&(o=[]);var l=function(e,t,n){void 0===t&&(t=[]),void 0===n&&(n={loading:!1});var r,a,i=(0,w.useRef)(0),s=(r=(0,w.useRef)(!1),a=(0,w.useCallback)((function(){return r.current}),[]),(0,w.useEffect)((function(){return r.current=!0,function(){r.current=!1}}),[]),a),o=(0,w.useState)(n),l=o[0],u=o[1],d=(0,w.useCallback)((function(){for(var t=[],n=0;nn?async function(e,t,n,r){var a,i,o,l;const u=null==(a=e.request)?void 0:a.targets;if(!u)return"";const{from:d,to:c}=n,h=null==(i=e.request)?void 0:i.filters,m={__sceneObject:Bn(t)},p=(await Promise.allSettled(u.map((async e=>{var t;const n=await(0,s.getDataSourceSrv)().get(e.datasource);return(null==(t=n.interpolateVariablesInQueries)?void 0:t.call(n,[e],null!=m?m:{},h)[0])||e})))).filter((e=>"fulfilled"===e.status)).map((e=>e.value)).map((e=>{var t;return null!=(t=null==r?void 0:r(e))?t:e})),f=null!=p?p:[];let _=new Set(f.map((e=>{var t;return null==(t=e.datasource)?void 0:t.uid}))).size>1?"-- Mixed --":null==(l=null==(o=f.find((e=>{var t;return!!(null==(t=e.datasource)?void 0:t.uid)})))?void 0:o.datasource)?void 0:l.uid;return(null==f?void 0:f.length)&&_&&d&&c?`/explore?left=${encodeURIComponent(JSON.stringify({datasource:_,queries:f,range:{from:d,to:c}}))}`:""}(n,e,{from:r,to:a},t.transform):""),o,{loading:!0}),u=l[0],d=l[1];return(0,w.useEffect)((function(){d()}),[d]),u}(0,[n,e,r,a]),o=(0,s.useReturnToPrevious)();return i?k().createElement(Xt.LinkButton,{key:"explore",icon:"compass",size:"sm",variant:"secondary",href:i,onClick:()=>{var e;t.returnToPrevious&&o(t.returnToPrevious.title,t.returnToPrevious.href),null==(e=t.onClick)||e.call(t)}},"Explore"):null},class extends K{}.Component=function({model:e}){const{body:t}=e.useState(),n=e.parent;if(n&&!(n instanceof Cp)&&!Um(n))throw new Error("SceneGridItem must be a child of SceneGridLayout or SceneGridRow");return t?k().createElement(t.Component,{model:t}):null};var $m=n(2548),qm=n.n($m);var Gm=Object.defineProperty,Zm=Object.getOwnPropertySymbols,Jm=Object.prototype.hasOwnProperty,Qm=Object.prototype.propertyIsEnumerable,Km=(e,t,n)=>t in e?Gm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function Xm(){const e=(0,w.useRef)(void 0);return null!=e.current||(e.current=(0,te.uniqueId)()),e.current}const ep=k().forwardRef(((e,t)=>{var n=e,{children:r,onLoad:a,onChange:i,className:s}=n,o=((e,t)=>{var n={};for(var r in e)Jm.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&Zm)for(var r of Zm(e))t.indexOf(r)<0&&Qm.call(e,r)&&(n[r]=e[r]);return n})(n,["children","onLoad","onChange","className"]);const l=Xm(),{hideEmpty:u}=(0,Xt.useStyles2)(tp),[d,c]=(0,w.useState)(!1),[h,m]=(0,w.useState)(!1),p=(0,w.useRef)(null);return(0,w.useImperativeHandle)(t,(()=>p.current)),f=()=>{ep.addCallback(l,(e=>{!d&&e.isIntersecting&&(c(!0),null==a||a()),m(e.isIntersecting),null==i||i(e.isIntersecting)}));const e=p.current;return e&&ep.observer.observe(e),()=>{e&&ep.observer.unobserve(e),delete ep.callbacks[l],0===Object.keys(ep.callbacks).length&&ep.observer.disconnect()}},(0,w.useEffect)(f,[]),k().createElement("div",((e,t)=>{for(var n in t||(t={}))Jm.call(t,n)&&Km(e,n,t[n]);if(Zm)for(var n of Zm(t))Qm.call(t,n)&&Km(e,n,t[n]);return e})({id:l,ref:p,className:`${u} ${s}`},o),!d&&" ",d&&("function"==typeof r?r({isInView:h}):r));var f}));function tp(){return{hideEmpty:(0,nn.css)({"&:empty":{display:"none"}})}}ep.displayName="LazyLoader",ep.callbacks={},ep.addCallback=(e,t)=>ep.callbacks[e]=t,ep.observer=new IntersectionObserver((e=>{for(const t of e)"function"==typeof ep.callbacks[t.target.id]&&ep.callbacks[t.target.id](t)}),{rootMargin:"100px"});var np=Object.defineProperty,rp=Object.defineProperties,ap=Object.getOwnPropertyDescriptors,ip=Object.getOwnPropertySymbols,sp=Object.prototype.hasOwnProperty,op=Object.prototype.propertyIsEnumerable,lp=(e,t,n)=>t in e?np(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,up=(e,t)=>{for(var n in t||(t={}))sp.call(t,n)&&lp(e,n,t[n]);if(ip)for(var n of ip(t))op.call(t,n)&&lp(e,n,t[n]);return e},dp=(e,t)=>rp(e,ap(t)),cp=(e,t)=>{var n={};for(var r in e)sp.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&ip)for(var r of ip(e))t.indexOf(r)<0&&op.call(e,r)&&(n[r]=e[r]);return n};const hp=k().forwardRef(((e,t)=>{var n;const r=e,{grid:a,layoutItem:i,index:s,totalCount:o,isLazy:l,style:u,onLoad:d,onChange:c,children:h}=r,m=cp(r,["grid","layoutItem","index","totalCount","isLazy","style","onLoad","onChange","children"]),p=a.getSceneLayoutChild(i.i),f=null==(n=p.getClassName)?void 0:n.call(p),_=k().createElement(p.Component,{model:p,key:p.state.key});return l?k().createElement(ep,dp(up({},m),{key:p.state.key,"data-griditem-key":p.state.key,className:(0,nn.cx)(f,e.className),style:u,ref:t}),_,h):k().createElement("div",dp(up({},m),{ref:t,key:p.state.key,"data-griditem-key":p.state.key,className:(0,nn.cx)(f,e.className),style:u}),_,h)}));function mp(e,t,n){e.current?t?e.current.classList.add("react-grid-layout--enable-move-animations"):e.current.classList.remove("react-grid-layout--enable-move-animations"):n||setTimeout((()=>mp(e,t,!0)),50)}hp.displayName="GridItemWrapper";const pp=k().forwardRef(((e,t)=>{var n=cp(e,["handleAxis"]);const r=(0,Xt.useStyles2)(fp);return k().createElement("div",dp(up({ref:t},n),{className:`${r} scene-resize-handle`}),k().createElement("svg",{width:"16px",height:"16px",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},k().createElement("path",{d:"M21 15L15 21M21 8L8 21",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})))}));function fp(e){return(0,nn.css)({position:"absolute",bottom:0,right:0,zIndex:999,padding:e.spacing(1.5,0,0,1.5),color:e.colors.border.strong,cursor:"se-resize","&:hover":{color:e.colors.text.link},svg:{display:"block"},".react-resizable-hide &":{display:"none"}})}pp.displayName="ResizeHandle";class _p extends i.BusEventWithPayload{}_p.type="scene-grid-layout-drag-start";var yp=Object.defineProperty,gp=Object.defineProperties,vp=Object.getOwnPropertyDescriptors,bp=Object.getOwnPropertySymbols,Mp=Object.prototype.hasOwnProperty,wp=Object.prototype.propertyIsEnumerable,Lp=(e,t,n)=>t in e?yp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var kp=Object.defineProperty,Sp=Object.defineProperties,Dp=Object.getOwnPropertyDescriptors,Yp=Object.getOwnPropertySymbols,Tp=Object.prototype.hasOwnProperty,xp=Object.prototype.propertyIsEnumerable,Op=(e,t,n)=>t in e?kp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,jp=(e,t)=>{for(var n in t||(t={}))Tp.call(t,n)&&Op(e,n,t[n]);if(Yp)for(var n of Yp(t))xp.call(t,n)&&Op(e,n,t[n]);return e},Pp=(e,t)=>Sp(e,Dp(t));const Ep=class extends K{constructor(e){super(Pp(jp({},e),{children:Hp(e.children)})),this._skipOnLayoutChange=!1,this._oldLayout=[],this._loadOldLayout=!1,this.onLayoutChange=e=>{if(this._skipOnLayoutChange)this._skipOnLayoutChange=!1;else{this._loadOldLayout&&(e=[...this._oldLayout],this._loadOldLayout=!1);for(const r of e){const e=this.getSceneLayoutChild(r.i),a={x:r.x,y:r.y,width:r.w,height:r.h};n=a,((t=e.state).x!==n.x||t.y!==n.y||t.width!==n.width||t.height!==n.height)&&e.setState(jp({},a))}var t,n;this.setState({children:Hp(this.state.children)})}},this.onResizeStop=(e,t,n)=>{this.getSceneLayoutChild(n.i).setState({width:n.w,height:n.h})},this.onDragStart=e=>{this._oldLayout=[...e]},this.onDragStop=(e,t,n)=>{const r=this.getSceneLayoutChild(n.i);e=Rp(e);for(let t=0;te.i===n.i));let i=this.findGridItemSceneParent(e,a-1),s=this.state.children;r instanceof Bp&&i instanceof Bp&&(this.isRowDropValid(e,n,a)||(this._loadOldLayout=!0),i=this),i!==r.parent&&(s=this.moveChildTo(r,i)),this.setState({children:Hp(s)}),this._skipOnLayoutChange=!0}}isDraggable(){var e;return null!=(e=this.state.isDraggable)&&e}getDragClass(){return`grid-drag-handle-${this.state.key}`}getDragClassCancel(){return"grid-drag-cancel"}getDragHooks(){return{onDragStart:(e,t)=>{this.publishEvent(new _p({evt:e,panel:t}),!0)}}}toggleRow(e){var t,n;if(!e.state.isCollapsed)return e.setState({isCollapsed:!0}),void this.setState({});const r=e.state.children;if(0===r.length)return e.setState({isCollapsed:!1}),void this.setState({});const a=e.state.y,i=(null!=(t=r[0].state.y)?t:a)-(a+1);let s=a;for(const e of r){const t=jp({},e.state);t.y=null!=(n=t.y)?n:a,t.y-=i,t.y!==e.state.y&&e.setState(t),s=Math.max(s,Number(t.y)+Number(t.height))}const o=s-a-1;for(const t of this.state.children)if(t.state.y>a&&this.pushChildDown(t,o),Um(t)&&t!==e)for(const e of t.state.children)e.state.y>a&&this.pushChildDown(e,o);e.setState({isCollapsed:!1}),this.setState({})}ignoreLayoutChange(e){this._skipOnLayoutChange=e}getSceneLayoutChild(e){for(const t of this.state.children){if(t.state.key===e)return t;if(t instanceof Bp)for(const n of t.state.children)if(n.state.key===e)return n}throw new Error("Scene layout child not found for GridItem")}pushChildDown(e,t){e.setState({y:e.state.y+t})}findGridItemSceneParent(e,t){for(let n=t;n>=0;n--){const t=e[n],r=this.getSceneLayoutChild(t.i);if(r instanceof Bp)return r.state.isCollapsed?this:r}return this}isRowDropValid(e,t,n){if(e[e.length-1].i===t.i)return!0;const r=this.getSceneLayoutChild(e[n+1].i);return r instanceof Bp||r.parent instanceof Ep}moveChildTo(e,t){const n=e.parent;let r=this.state.children;const a=e.clone({key:e.state.key});if(n instanceof Bp){const i=n.clone();if(i.setState({children:i.state.children.filter((t=>t.state.key!==e.state.key))}),r=r.map((e=>e===n?i:e)),t instanceof Bp){const e=t.clone();e.setState({children:[...e.state.children,a]}),r=r.map((n=>n===t?e:n))}else r=[...r,a]}else if(!(t instanceof Ep)){r=r.filter((t=>t.state.key!==e.state.key));const n=t.clone();n.setState({children:[...n.state.children,a]}),r=r.map((e=>e===t?n:e))}return r}toGridCell(e){var t,n;const r=e.state;let a=null!=(t=r.x)?t:0,i=null!=(n=r.y)?n:0;const s=Number.isInteger(Number(r.width))?Number(r.width):4,o=Number.isInteger(Number(r.height))?Number(r.height):4;let l=e.state.isDraggable,u=e.state.isResizable;return e instanceof Bp&&(l=!!e.state.isCollapsed,u=!1),{i:e.state.key,x:a,y:i,h:o,w:s,isResizable:u,isDraggable:l}}buildGridLayout(e,t){let n=[];for(const e of this.state.children)if(n.push(this.toGridCell(e)),e instanceof Bp&&!e.state.isCollapsed)for(const t of e.state.children)n.push(this.toGridCell(t));return n=Rp(n),this.state.UNSAFE_fitPanels&&(n=function(e,t){const n=t-32,r=Math.max(...e.map((e=>e.h+e.y)))/Math.floor(n/38);return e.map((e=>{return t=((e,t)=>{for(var n in t||(t={}))Mp.call(t,n)&&Lp(e,n,t[n]);if(bp)for(var n of bp(t))wp.call(t,n)&&Lp(e,n,t[n]);return e})({},e),n={y:Math.round(e.y/r)||0,h:Math.round(e.h/r)||1},gp(t,vp(n));var t,n}))}(n,t)),e<768?(this._skipOnLayoutChange=!0,n.map((e=>Pp(jp({},e),{w:24})))):(this._skipOnLayoutChange=!1,n)}};let Cp=Ep;function Hp(e){return e.forEach((e=>{e instanceof Bp&&e.setState({children:Hp(e.state.children)})})),[...e].sort(((e,t)=>e.state.y-t.state.y||e.state.x-t.state.x))}function Rp(e){return[...e].sort(((e,t)=>e.y-t.y||e.x-t.x))}Cp.Component=function({model:e}){const{children:t,isLazy:n,isDraggable:r,isResizable:a}=e.useState(),[i,{width:s,height:o}]=Bu(),l=(0,w.useRef)(null);return(0,w.useEffect)((()=>{mp(l,!!r)}),[r]),function(e){if(e.some((e=>void 0===e.state.height||void 0===e.state.width||void 0===e.state.x||void 0===e.state.y)))throw new Error("All children must have a size specified")}(t),k().createElement("div",{ref:i,style:{flex:"1 1 auto",position:"relative",zIndex:1,width:"100%"}},((t,i)=>{if(!t||!i)return null;const s=e.buildGridLayout(t,i);return k().createElement("div",{ref:l,style:{width:`${t}px`,height:"100%"},className:"react-grid-layout"},k().createElement(qm(),{width:t,isDraggable:r&&t>768,isResizable:null!=a&&a,containerPadding:[0,0],useCSSTransforms:!0,margin:[8,8],cols:24,rowHeight:30,draggableHandle:`.grid-drag-handle-${e.state.key}`,draggableCancel:".grid-drag-cancel",layout:s,onDragStart:e.onDragStart,onDragStop:e.onDragStop,onResizeStop:e.onResizeStop,onLayoutChange:e.onLayoutChange,isBounded:!1,resizeHandle:k().createElement(pp,null)},s.map(((t,r)=>k().createElement(hp,{key:t.i,grid:e,layoutItem:t,index:r,isLazy:n,totalCount:s.length})))))})(s,o))};var Ap=Object.defineProperty,Ip=Object.defineProperties,Fp=Object.getOwnPropertyDescriptors,Np=Object.getOwnPropertySymbols,Wp=Object.prototype.hasOwnProperty,zp=Object.prototype.propertyIsEnumerable,Vp=(e,t,n)=>t in e?Ap(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Bp extends K{constructor(e){var t;super((t=((e,t)=>{for(var n in t||(t={}))Wp.call(t,n)&&Vp(e,n,t[n]);if(Np)for(var n of Np(t))zp.call(t,n)&&Vp(e,n,t[n]);return e})({children:e.children||[],isCollapsible:e.isCollapsible||!0,title:e.title||""},e),Ip(t,Fp({x:0,height:1,width:24})))),this._variableDependency=new zl(this,{statePaths:["title"],handleTimeMacros:!0}),this.onCollapseToggle=()=>{this.state.isCollapsible&&this.getGridLayout().toggleRow(this)}}getGridLayout(){const e=this.parent;if(!(e&&e instanceof Cp))throw new Error("SceneGridRow must be a child of SceneGridLayout");return e}getUrlState(){return{rowc:this.state.isCollapsed?"1":"0"}}updateFromUrl(e){null!=e.rowc&&e.rowc!==this.getUrlState().rowc&&this.onCollapseToggle()}}Bp.Component=function({model:e}){const t=(0,Xt.useStyles2)(Up),{isCollapsible:n,isCollapsed:r,title:a,actions:i,children:s}=e.useState(),o=e.getGridLayout(),l=o.getDragClass(),u=o.isDraggable(),d=s?s.length:0,c=1===d?"panel":"panels";return k().createElement("div",{className:(0,nn.cx)(t.row,r&&t.rowCollapsed)},k().createElement("div",{className:t.rowTitleAndActionsGroup},k().createElement("button",{onClick:e.onCollapseToggle,className:t.rowTitleButton,"aria-label":r?"Expand row":"Collapse row","data-testid":tn.components.DashboardRow.title(Lu.interpolate(e,a,void 0,"text"))},n&&k().createElement(Xt.Icon,{name:r?"angle-right":"angle-down"}),k().createElement("span",{className:t.rowTitle,role:"heading"},Lu.interpolate(e,a,void 0,"text"))),k().createElement("span",{className:(0,nn.cx)(t.panelCount,r&&t.panelCountCollapsed)},"(",d," ",c,")"),i&&k().createElement("div",{className:t.rowActions},k().createElement(i.Component,{model:i}))),u&&r&&k().createElement("div",{className:(0,nn.cx)(t.dragHandle,l)},k().createElement(Xt.Icon,{name:"draggabledots"})))};const Up=e=>({row:(0,nn.css)({width:"100%",height:"30px",display:"flex",justifyContent:"space-between",gap:e.spacing(1)}),rowTitleButton:(0,nn.css)({display:"flex",alignItems:"center",cursor:"pointer",background:"transparent",border:"none",minWidth:0,gap:e.spacing(1)}),rowCollapsed:(0,nn.css)({borderBottom:`1px solid ${e.colors.border.weak}`}),rowTitle:(0,nn.css)({fontSize:e.typography.h5.fontSize,fontWeight:e.typography.fontWeightMedium,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",flexGrow:1,minWidth:0}),collapsedInfo:(0,nn.css)({fontSize:e.typography.bodySmall.fontSize,color:e.colors.text.secondary,display:"flex",alignItems:"center",flexGrow:1}),rowTitleAndActionsGroup:(0,nn.css)({display:"flex",minWidth:0,"&:hover, &:focus-within":{"& > div":{opacity:1}}}),rowActions:(0,nn.css)({display:"flex",whiteSpace:"nowrap",opacity:0,transition:"200ms opacity ease-in 200ms","&:hover, &:focus-within":{opacity:1}}),dragHandle:(0,nn.css)({display:"flex",padding:e.spacing(0,1),alignItems:"center",justifyContent:"flex-end",cursor:"move",color:e.colors.text.secondary,"&:hover":{color:e.colors.text.primary}}),panelCount:(0,nn.css)({whiteSpace:"nowrap",paddingLeft:e.spacing(2),color:e.colors.text.secondary,fontStyle:"italic",fontSize:e.typography.size.sm,fontWeight:"normal",display:"none",lineHeight:"30px"}),panelCountCollapsed:(0,nn.css)({display:"inline-block"})});(class extends K{constructor(){super(...arguments),this.onToggle=()=>{this.setState({isCollapsed:!this.state.isCollapsed})},this.onRemove=()=>{const e=this.parent;"body"in e.state&&e.setState({body:void 0})}}}).Component=function({model:e}){const{title:t,isCollapsed:n,canCollapse:r,canRemove:a,body:i,controls:s}=e.useState(),o=(0,Xt.useStyles2)(Up),l=(0,Xt.useStyles2)($p),u=(null!=s?s:[]).map((e=>k().createElement(e.Component,{key:e.state.key,model:e})));return a&&u.push(k().createElement(Xt.ToolbarButton,{icon:"times",variant:"default",onClick:e.onRemove,key:"remove-button","aria-label":"Remove scene"})),k().createElement("div",{className:l.wrapper},k().createElement("div",{className:(0,nn.cx)(l.row,n&&l.rowCollapsed)},k().createElement("button",{onClick:e.onToggle,className:o.rowTitleButton,"aria-label":n?"Expand scene":"Collapse scene"},r&&k().createElement(Xt.Icon,{name:n?"angle-right":"angle-down"}),k().createElement("span",{className:o.rowTitle,role:"heading"},Lu.interpolate(e,t,void 0,"text"))),k().createElement("div",{className:l.actions},u)),!n&&k().createElement(i.Component,{model:i}))};const $p=e=>({wrapper:(0,nn.css)({display:"flex",flexDirection:"column",flexGrow:1,gap:e.spacing(1)}),row:(0,nn.css)({width:"100%",display:"flex",justifyContent:"space-between",gap:e.spacing(1)}),rowCollapsed:(0,nn.css)({borderBottom:`1px solid ${e.colors.border.weak}`,paddingBottom:e.spacing(1)}),actions:(0,nn.css)({display:"flex",alignItems:"center",gap:e.spacing(1),justifyContent:"flex-end",flexGrow:1})});(class extends K{constructor(){super(...arguments),this._variableDependency=new zl(this,{statePaths:["text"]})}}).Component=({model:e})=>{const{text:t,fontSize:n=20,align:r="left",key:a,spacing:i}=e.useState(),s=(0,Xt.useTheme2)(),o=(0,nn.css)({fontSize:n,display:"flex",flexGrow:1,alignItems:"center",padding:i?s.spacing(i,0):void 0,justifyContent:r});return k().createElement("div",{className:o,"data-testid":a},Lu.interpolate(e,t))},class extends K{}.Component=({model:e})=>{const t=e.useState();return k().createElement(Xt.ToolbarButton,{onClick:t.onClick,icon:t.icon})},class extends K{}.Component=({model:e})=>{const t=e.useState();return k().createElement("div",{style:{display:"flex"}},t.label&&k().createElement(rr,{label:t.label}),k().createElement(Xt.Input,{defaultValue:t.value,width:8,onBlur:t=>{e.state.onChange(parseInt(t.currentTarget.value,10))}}))};class qp extends K{constructor(){super(...arguments),this.onZoom=()=>{const e=Lu.getTimeRange(this),t=function(e){const t=e.to.valueOf()-e.from.valueOf(),n=e.to.valueOf()-t/2,r=0===t?3e4:2*t,a=n+r/2,s=n-r/2;return{from:(0,i.toUtc)(s),to:(0,i.toUtc)(a),raw:{from:(0,i.toUtc)(s),to:(0,i.toUtc)(a)}}}(e.state.value);e.onTimeRangeChange(t)},this.onChangeFiscalYearStartMonth=e=>{Lu.getTimeRange(this).setState({fiscalYearStartMonth:e})},this.toAbsolute=()=>{const e=Lu.getTimeRange(this),t=e.state.value,n=(0,i.toUtc)(t.from),r=(0,i.toUtc)(t.to);e.onTimeRangeChange({from:n,to:r,raw:{from:n,to:r}})},this.onMoveBackward=()=>{const e=Lu.getTimeRange(this),{state:{value:t}}=e;e.onTimeRangeChange(Zp(Gp.Backward,t,Date.now()))},this.onMoveForward=()=>{const e=Lu.getTimeRange(this),{state:{value:t}}=e;e.onTimeRangeChange(Zp(Gp.Forward,t,Date.now()))}}}qp.Component=function({model:e}){const{hidePicker:t,isOnCanvas:n,quickRanges:r}=e.useState(),a=Lu.getTimeRange(e),s=a.getTimeZone(),o=a.useState(),[l,u]=function(e,t,n){if(!Wu)return[t,Nu,Nu];if(!e)throw new Error("useLocalStorage key may not be falsy");var r=n?n.raw?function(e){return e}:n.deserializer:JSON.parse,a=(0,w.useRef)((function(e){try{var a=n?n.raw?String:n.serializer:JSON.stringify,i=localStorage.getItem(e);return null!==i?r(i):(t&&localStorage.setItem(e,a(t)),t)}catch(e){return t}})),i=(0,w.useState)((function(){return a.current(e)})),s=i[0],o=i[1];(0,w.useLayoutEffect)((function(){return o(a.current(e))}),[e]);var l=(0,w.useCallback)((function(t){try{var a,i="function"==typeof t?t(s):t;if(void 0===i)return;a=n?n.raw?"string"==typeof i?i:JSON.stringify(i):n.serializer?n.serializer(i):JSON.stringify(i):JSON.stringify(i),localStorage.setItem(e,a),o(r(a))}catch(e){}}),[e,o]),u=(0,w.useCallback)((function(){try{localStorage.removeItem(e),o(void 0)}catch(e){}}),[e,o]);return[s,l,u]}(Jp,[],{raw:!1,serializer:Kp,deserializer:Qp});return t?null:k().createElement(Xt.TimeRangePicker,{isOnCanvas:null==n||n,value:o.value,onChange:e=>{var t;t=e,((0,i.isDateTime)(t.raw.from)||(0,i.isDateTime)(t.raw.to))&&u([e,...null!=l?l:[]]),a.onTimeRangeChange(e)},timeZone:s,fiscalYearStartMonth:o.fiscalYearStartMonth,onMoveBackward:e.onMoveBackward,onMoveForward:e.onMoveForward,onZoom:e.onZoom,onChangeTimeZone:a.onTimeZoneChange,onChangeFiscalYearStartMonth:e.onChangeFiscalYearStartMonth,weekStart:o.weekStart,history:l,quickRanges:r})};var Gp=(e=>(e[e.Backward=0]="Backward",e[e.Forward=1]="Forward",e))(Gp||{});function Zp(e,t,n){const r=t.to.valueOf(),a=t.from.valueOf(),s=(r-a)/2;let o,l;0===e?(o=a-s,l=r-s):(o=a+s,l=r+s,l>n&&ri.rangeUtil.convertRawToRange(e,"utc",void 0,"YYYY-MM-DD HH:mm:ss")))}function Kp(e){return JSON.stringify((t=e.map((e=>({from:"string"==typeof e.raw.from?e.raw.from:e.raw.from.toISOString(),to:"string"==typeof e.raw.to?e.raw.to:e.raw.to.toISOString()}))),(0,te.uniqBy)(t,(e=>e.from+e.to)).slice(0,4)));var t}var Xp=Object.defineProperty,ef=Object.defineProperties,tf=Object.getOwnPropertyDescriptors,nf=Object.getOwnPropertySymbols,rf=Object.prototype.hasOwnProperty,af=Object.prototype.propertyIsEnumerable,sf=(e,t,n)=>t in e?Xp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;const of=["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"];class lf extends K{constructor(e){var t,n,r,a,o;super((a=((e,t)=>{for(var n in t||(t={}))rf.call(t,n)&&sf(e,n,t[n]);if(nf)for(var n of nf(t))af.call(t,n)&&sf(e,n,t[n]);return e})({refresh:""},e),o={autoValue:void 0,autoEnabled:null==(t=e.autoEnabled)||t,autoMinInterval:null!=(n=e.autoMinInterval)?n:s.config.minRefreshInterval,intervals:(null!=(r=e.intervals)?r:of).filter((t=>{var n;const r=null!=(n=e.minRefreshInterval)?n:s.config.minRefreshInterval;try{return!r||i.rangeUtil.intervalToMs(t)>=i.rangeUtil.intervalToMs(r)}catch(e){return!1}}))},ef(a,tf(o)))),this._urlSync=new Le(this,{keys:["refresh"]}),this._autoRefreshBlocked=!1,this.onRefresh=()=>{const e=Lu.getQueryController(this);if(null==e||e.startProfile("SceneRefreshPicker"),null==e?void 0:e.state.isRunning)return void e.cancelAll();const t=Lu.getTimeRange(this);this._intervalTimer&&clearInterval(this._intervalTimer),t.onRefresh(),this.setupIntervalTimer()},this.onIntervalChanged=e=>{this.setState({refresh:e}),this.setupIntervalTimer()},this.setupAutoTimeRangeListener=()=>Lu.getTimeRange(this).subscribeToState(((e,t)=>{e.from===t.from&&e.to===t.to||this.setupIntervalTimer()})),this.calculateAutoRefreshInterval=()=>{var e;const t=Lu.getTimeRange(this),n=null!=(e=null==window?void 0:window.innerWidth)?e:2e3;return i.rangeUtil.calculateInterval(t.state.value,n,this.state.autoMinInterval)},this.setupIntervalTimer=()=>{var e;const t=Lu.getTimeRange(this),{refresh:n,intervals:r}=this.state;if((this._intervalTimer||""===n)&&clearInterval(this._intervalTimer),""===n)return;if(n!==Xt.RefreshPicker.autoOption.value&&r&&!r.includes(n))return;let a;if(null==(e=this._autoTimeRangeListener)||e.unsubscribe(),n===Xt.RefreshPicker.autoOption.value){const e=this.calculateAutoRefreshInterval();a=e.intervalMs,this._autoTimeRangeListener=this.setupAutoTimeRangeListener(),e.interval!==this.state.autoValue&&this.setState({autoValue:e.interval})}else a=i.rangeUtil.intervalToMs(n);this._intervalTimer=setInterval((()=>{if(this.isTabVisible()){const e=Lu.getQueryController(this);null==e||e.startProfile("SceneRefreshPicker"),t.onRefresh()}else this._autoRefreshBlocked=!0}),a)},this.addActivationHandler((()=>{this.setupIntervalTimer();const e=()=>{this._autoRefreshBlocked&&"visible"===document.visibilityState&&(this._autoRefreshBlocked=!1,this.onRefresh())};return document.addEventListener("visibilitychange",e),()=>{var t;this._intervalTimer&&clearInterval(this._intervalTimer),document.removeEventListener("visibilitychange",e),null==(t=this._autoTimeRangeListener)||t.unsubscribe()}}))}getUrlState(){let e=this.state.refresh;return"string"==typeof e&&0!==e.length||(e=void 0),{refresh:e}}updateFromUrl(e){const{intervals:t}=this.state;let n=e.refresh;"string"==typeof n&&function(e){try{return i.rangeUtil.describeInterval(e).count>0}catch(e){return!1}}(n)&&((null==t?void 0:t.includes(n))?this.setState({refresh:n}):this.setState({refresh:t?t[0]:void 0}))}isTabVisible(){return void 0===document.visibilityState||"visible"===document.visibilityState}}lf.Component=function({model:e}){var t;const{refresh:n,intervals:r,autoEnabled:a,autoValue:i,isOnCanvas:s,primary:o,withText:l}=e.useState(),u=function(e){const t=Lu.getQueryController(e);return!!t&&t.useState().isRunning}(e);let d,c,h=n===(null==(t=Xt.RefreshPicker.autoOption)?void 0:t.value)?i:l?"Refresh":void 0;return u&&(d="Cancel all queries",l&&(h="Cancel")),l&&(c="96px"),k().createElement(Xt.RefreshPicker,{showAutoInterval:a,value:n,intervals:r,tooltip:d,width:c,text:h,onRefresh:()=>{e.onRefresh()},primary:o,onIntervalChanged:e.onIntervalChanged,isLoading:u,isOnCanvas:null==s||s})};const uf=e=>`${e}-compare`;var df=Object.defineProperty,cf=Object.defineProperties,hf=Object.getOwnPropertyDescriptors,mf=Object.getOwnPropertySymbols,pf=Object.prototype.hasOwnProperty,ff=Object.prototype.propertyIsEnumerable,_f=(e,t,n)=>t in e?df(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,yf=(e,t)=>{for(var n in t||(t={}))pf.call(t,n)&&_f(e,n,t[n]);if(mf)for(var n of mf(t))ff.call(t,n)&&_f(e,n,t[n]);return e},gf=(e,t)=>cf(e,hf(t));const vf="__previousPeriod",bf="__noPeriod",Mf={label:"Previous period",value:vf},wf={label:"No comparison",value:bf},Lf=[{label:"Day before",value:"24h"},{label:"Week before",value:"1w"},{label:"Month before",value:"1M"}];(class extends K{constructor(e){super(yf({compareOptions:Lf},e)),this._urlSync=new Le(this,{keys:["compareWith"]}),this._onActivate=()=>{const e=Lu.getTimeRange(this);this.setState({compareOptions:this.getCompareOptions(e.state.value)}),this._subs.add(e.subscribeToState((e=>{const t=this.getCompareOptions(e.value),n={compareOptions:t};Boolean(this.state.compareWith)&&!t.find((({value:e})=>e===this.state.compareWith))&&(n.compareWith=vf),this.setState(n)})))},this.getCompareOptions=e=>{const t=Math.ceil(e.to.diff(e.from)),n=Lf.findIndex((({value:e})=>i.rangeUtil.intervalToMs(e)>=t));return[wf,Mf,...Lf.slice(n).map((({label:e,value:t})=>({label:e,value:t})))]},this.onCompareWithChanged=e=>{e===bf?this.onClearCompare():this.setState({compareWith:e})},this.onClearCompare=()=>{this.setState({compareWith:void 0})},this.addActivationHandler(this._onActivate)}getExtraQueries(e){const t=[],n=this.getCompareTimeRange(e.range);if(!n)return t;const r=e.targets.filter((e=>!1!==e.timeRangeCompare));return r.length&&t.push({req:gf(yf({},e),{targets:r,range:n}),processor:kf}),t}shouldRerun(e,t,n){return e.compareWith!==t.compareWith&&void 0!==n.find((e=>!1!==e.timeRangeCompare))}getCompareTimeRange(e){let t,n;if(this.state.compareWith){if(this.state.compareWith===vf){const r=e.to.diff(e.from);t=(0,i.dateTime)(e.from).subtract(r),n=(0,i.dateTime)(e.to).subtract(r)}else t=(0,i.dateTime)(e.from).subtract(i.rangeUtil.intervalToMs(this.state.compareWith)),n=(0,i.dateTime)(e.to).subtract(i.rangeUtil.intervalToMs(this.state.compareWith));return{from:t,to:n,raw:{from:t,to:n}}}}getUrlState(){return{compareWith:this.state.compareWith}}updateFromUrl(e){if(!e.compareWith)return;const t=Se(e.compareWith);t&&(this.getCompareOptions(Lu.getTimeRange(this).state.value).find((({value:e})=>e===t))?this.setState({compareWith:t}):this.setState({compareWith:"__previousPeriod"}))}}).Component=function({model:e}){var t;const n=(0,Xt.useStyles2)(Sf),{compareWith:r,compareOptions:a}=e.useState(),[i,s]=k().useState(r),o=null!=(t=a.find((({value:e})=>e===i)))?t:Mf,l=a.find((({value:e})=>e===r)),u=Boolean(l),d=()=>{u?(s(r),e.onClearCompare()):u||e.onCompareWithChanged(o.value)};return k().createElement(Xt.ButtonGroup,null,k().createElement(Xt.ToolbarButton,{variant:"canvas",tooltip:"Enable time frame comparison",onClick:e=>{e.stopPropagation(),e.preventDefault(),d()}},k().createElement(Xt.Checkbox,{label:" ",value:u,onClick:d}),"Comparison"),u?k().createElement(Xt.ButtonSelect,{variant:"canvas",value:l,options:a,onChange:t=>{e.onCompareWithChanged(t.value)}}):k().createElement(Xt.ToolbarButton,{className:n.previewButton,disabled:!0,variant:"canvas",isOpen:!1},o.label))};const kf=(e,t)=>{const n=t.timeRange.from.diff(e.timeRange.from);return t.series.forEach((e=>{e.refId=uf(e.refId||""),e.meta=gf(yf({},e.meta),{timeCompare:{diffMs:n,isTimeShiftQuery:!0}}),e.fields.forEach((e=>(e.type===i.FieldType.time&&(e.values=e.values.map((e=>n<0?e-n:e+n))),e.config=gf(yf({},e.config),{color:{mode:"fixed",fixedColor:s.config.theme.palette.gray60}}),e)))})),(0,S.of)(t)};function Sf(e){return{previewButton:(0,nn.css)({"&:disabled":{border:`1px solid ${e.colors.secondary.border}`,color:e.colors.text.disabled,opacity:1}})}}(class extends K{constructor(e){super(e),this.addActivationHandler((()=>{const e=Lu.getData(this);this._subs.add(e.subscribeToState((e=>{var t;(null==(t=e.data)?void 0:t.state)===i.LoadingState.Done&&this.performRepeat(e.data)}))),e.state.data&&this.performRepeat(e.state.data)}))}performRepeat(e){const t=[];for(let n=0;n{const{body:t}=e.useState();return k().createElement(t.Component,{model:t})},class extends K{constructor(e){super(e),this._variableDependency=new zl(this,{variableNames:[this.state.variableName],onVariableUpdateCompleted:()=>this.performRepeat()}),this.addActivationHandler((()=>this.performRepeat()))}performRepeat(){if(this._variableDependency.hasDependencyInLoadingState())return;const e=Lu.lookupVariable(this.state.variableName,this);if(!(e instanceof lt))return void console.error("SceneByVariableRepeater: variable is not a MultiValueVariable");const t=function(e){const{value:t,text:n,options:r}=e.state;return e.hasAllValue()?r:Array.isArray(t)&&Array.isArray(n)?t.map(((e,t)=>({value:e,label:n[t]}))):[{value:t,label:n}]}(e),n=[];for(const e of t){const t=this.state.getLayoutChild(e);n.push(t)}this.state.body.setState({children:n})}}.Component=({model:e})=>{const{body:t}=e.useState();return k().createElement(t.Component,{model:t})},class extends K{constructor(){super({}),this._renderBeforeActivation=!0}}.Component=e=>k().createElement("div",{style:{flexGrow:1}});class Df extends K{toggleDirection(){this.setState({direction:"row"===this.state.direction?"column":"row"})}isDraggable(){return!1}}Df.Component=function({model:e,parentState:t}){const{children:n,isHidden:r}=e.useState(),a=function(e,t){return(0,w.useMemo)((()=>{var n,r,a,i,o,l,u,d,c,h;const{direction:m="row",wrap:p}=e,f=s.config.theme2,_={};return t?Tf(_,e,t):(_.display="flex",_.flexGrow=1,_.minWidth=e.minWidth,_.minHeight=e.minHeight),_.flexDirection=m,_.gap="8px",_.flexWrap=p||"nowrap",_.alignContent="baseline",_.minWidth=_.minWidth||0,_.minHeight=_.minHeight||0,_[f.breakpoints.down("md")]={flexDirection:null!=(r=null==(n=e.md)?void 0:n.direction)?r:"column",maxWidth:null!=(i=null==(a=e.md)?void 0:a.maxWidth)?i:"unset",maxHeight:null!=(l=null==(o=e.md)?void 0:o.maxHeight)?l:"unset",height:null!=(d=null==(u=e.md)?void 0:u.height)?d:"unset",width:null!=(h=null==(c=e.md)?void 0:c.width)?h:"unset"},(0,nn.css)(_)}),[t,e])}(e.state,t);return r?null:k().createElement("div",{className:a},n.map((t=>{const n=t.Component;return k().createElement(n,{key:t.state.key,model:t,parentState:e.state})})))};class Yf extends K{}function Tf(e,t,n){var r,a,i;const s=null!=(r=n.direction)?r:"row",{xSizing:o="fill",ySizing:l="fill"}=t;return e.display="flex",e.position="relative",e.flexDirection=s,"column"===s?(t.height?e.height=t.height:e.flexGrow="fill"===l?1:0,t.width?e.width=t.width:e.alignSelf="fill"===o?"stretch":"flex-start"):(t.height?e.height=t.height:e.alignSelf="fill"===l?"stretch":"flex-start",t.width?e.width=t.width:e.flexGrow="fill"===o?1:0),e.minWidth=t.minWidth,e.maxWidth=t.maxWidth,e.maxHeight=t.maxHeight,e.minHeight=null!=(a=t.minHeight)?a:n.minHeight,e.height=null!=(i=t.height)?i:n.height,e}Yf.Component=function({model:e,parentState:t}){if(!t)throw new Error("SceneFlexItem must be a child of SceneFlexLayout");const{body:n,isHidden:r}=e.useState(),a=function(e,t){return(0,w.useMemo)((()=>{var n,r,a,i,o,l,u,d,c,h;const m=s.config.theme2,p=Tf({},e,t);return p[m.breakpoints.down("md")]={maxWidth:null!=(r=null==(n=e.md)?void 0:n.maxWidth)?r:"unset",maxHeight:null!=(i=null==(a=e.md)?void 0:a.maxHeight)?i:"unset",height:null!=(u=null==(o=e.md)?void 0:o.height)?u:null==(l=t.md)?void 0:l.height,width:null!=(h=null==(d=e.md)?void 0:d.width)?h:null==(c=t.md)?void 0:c.width},(0,nn.css)(p)}),[e,t])}(e.state,t);return!n||r?null:k().createElement("div",{className:a},k().createElement(n.Component,{model:n}))};var xf=Object.defineProperty,Of=Object.getOwnPropertySymbols,jf=Object.prototype.hasOwnProperty,Pf=Object.prototype.propertyIsEnumerable,Ef=(e,t,n)=>t in e?xf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Cf extends K{constructor(e){var t,n;super(((e,t)=>{for(var n in t||(t={}))jf.call(t,n)&&Ef(e,n,t[n]);if(Of)for(var n of Of(t))Pf.call(t,n)&&Ef(e,n,t[n]);return e})({rowGap:1,columnGap:1,templateColumns:"repeat(auto-fit, minmax(400px, 1fr))",autoRows:null!=(t=e.autoRows)?t:"320px",children:null!=(n=e.children)?n:[]},e))}isDraggable(){return!1}}Cf.Component=function({model:e}){const{children:t,isHidden:n,isLazy:r}=e.useState(),a=(i=e.state,(0,w.useMemo)((()=>{var e,t,n,r,a,o,l,u,d,c,h;const m={},p=s.config.theme2;return m.display="grid",m.gridTemplateColumns=i.templateColumns,m.gridTemplateRows=i.templateRows||"unset",m.gridAutoRows=i.autoRows||"unset",m.rowGap=p.spacing(null!=(e=i.rowGap)?e:1),m.columnGap=p.spacing(null!=(t=i.columnGap)?t:1),m.justifyItems=i.justifyItems||"unset",m.alignItems=i.alignItems||"unset",m.justifyContent=i.justifyContent||"unset",m.flexGrow=1,i.md&&(m[p.breakpoints.down("md")]={gridTemplateRows:null==(n=i.md)?void 0:n.templateRows,gridTemplateColumns:null==(r=i.md)?void 0:r.templateColumns,rowGap:i.md.rowGap?p.spacing(null!=(o=null==(a=i.md)?void 0:a.rowGap)?o:1):void 0,columnGap:i.md.columnGap?p.spacing(null!=(u=null==(l=i.md)?void 0:l.rowGap)?u:1):void 0,justifyItems:null==(d=i.md)?void 0:d.justifyItems,alignItems:null==(c=i.md)?void 0:c.alignItems,justifyContent:null==(h=i.md)?void 0:h.justifyContent}),(0,nn.css)(m)}),[i]));var i;return n?null:k().createElement("div",{className:a},t.map((t=>{const n=t.Component;return r?k().createElement(ep,{key:t.state.key,className:a},k().createElement(n,{key:t.state.key,model:t,parentState:e.state})):k().createElement(n,{key:t.state.key,model:t,parentState:e.state})})))};class Hf extends K{}Hf.Component=function({model:e,parentState:t}){if(!t)throw new Error("SceneCSSGridItem must be a child of SceneCSSGridLayout");const{body:n,isHidden:r}=e.useState(),a=(i=e.state,(0,w.useMemo)((()=>{const e={};return e.gridColumn=i.gridColumn||"unset",e.gridRow=i.gridRow||"unset",e.position="relative",(0,nn.css)(e)}),[i]));var i;return!n||r?null:k().createElement("div",{className:a},k().createElement(n.Component,{model:n}))};var Rf=Object.defineProperty,Af=Object.getOwnPropertySymbols,If=Object.prototype.hasOwnProperty,Ff=Object.prototype.propertyIsEnumerable,Nf=(e,t,n)=>t in e?Rf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Wf=(e,t)=>{for(var n in t||(t={}))If.call(t,n)&&Nf(e,n,t[n]);if(Af)for(var n of Af(t))Ff.call(t,n)&&Nf(e,n,t[n]);return e};const zf=new Set(["ArrowUp","ArrowDown"]),Vf=new Set(["ArrowLeft","ArrowRight"]),Bf={row:{dim:"width",axis:"clientX",min:"minWidth",max:"maxWidth"},column:{dim:"height",axis:"clientY",min:"minHeight",max:"maxHeight"}};function Uf({direction:e="row",handleSize:t=32,initialSize:n="auto",primaryPaneStyles:r,secondaryPaneStyles:a,onDragFinished:i,children:s}){const o=k().Children.toArray(s),l=(0,w.useRef)(null),u=(0,w.useRef)(null),d=(0,w.useRef)(null),c=(0,w.useRef)(null),h=(0,w.useRef)(null),m=(0,w.useRef)("1fr"),p=(0,w.useRef)(void 0),f=(0,w.useRef)(void 0),_=Bf[e].dim,y=Bf[e].axis,g=Bf[e].min,v=Bf[e].max;!function(e,t,n=0,r){const a=(0,te.throttle)(t,n);(0,w.useLayoutEffect)((()=>{if(!e)return;const t=new ResizeObserver(a);return t.observe(e,{box:"device-pixel-content-box"}),()=>t.disconnect()}),r)}(c.current,(e=>{for(const t of e){if(!t.target.isSameNode(c.current))return;const e=u.current.getBoundingClientRect()[_],n=qf(u.current);l.current.ariaValueNow=`${(0,te.clamp)((e-n[g])/(n[v]-n[g])*100,0,100)}`}}),500,[v,g,e,_]);const b=(0,w.useRef)(null),M=(0,w.useCallback)((e=>{m.current=u.current.getBoundingClientRect()[_],h.current=c.current.getBoundingClientRect()[_],b.current=e[y],l.current.setPointerCapture(e.pointerId),p.current=qf(u.current),f.current=void 0}),[_,y]),L=(0,w.useCallback)((e=>{if(null!==b.current&&"1fr"!==m.current){const n=e[y]-b.current,r=p.current,a=(0,te.clamp)(m.current+n,r[g],r[v]),i=a/(h.current-t);u.current.style.flexGrow=`${i}`,d.current.style.flexGrow=""+(1-i);const s=(0,te.clamp)((a-r[g])/(r[v]-r[g])*100,0,100);l.current.ariaValueNow=`${s}`}}),[t,y,g,v]),S=(0,w.useCallback)((e=>{e.preventDefault(),e.stopPropagation(),l.current.releasePointerCapture(e.pointerId),b.current=null,null==i||i(parseFloat(u.current.style.flexGrow))}),[i]),D=(0,w.useRef)(new Set),Y=(0,w.useRef)(null),T=(0,w.useCallback)((n=>{var r;if(0===D.current.size)return void(Y.current=null);if("1fr"===m.current)return;const a=.3*(n-(null!=(r=Y.current)?r:n));let i=0;"row"===e?(D.current.has("ArrowLeft")&&(i-=a),D.current.has("ArrowRight")&&(i+=a)):(D.current.has("ArrowUp")&&(i-=a),D.current.has("ArrowDown")&&(i+=a));const s=p.current,o=u.current.getBoundingClientRect()[_],c=(0,te.clamp)(o+i,s[g],s[v]),f=c/(h.current-t);u.current.style.flexGrow=`${f}`,d.current.style.flexGrow=""+(1-f);const y=(c-s[g])/(s[v]-s[g])*100;l.current.ariaValueNow=`${(0,te.clamp)(y,0,100)}`,Y.current=n,window.requestAnimationFrame(T)}),[e,t,g,v,_]),x=(0,w.useCallback)((n=>{if("Enter"!==n.key){if("Home"===n.key){p.current=qf(u.current),h.current=c.current.getBoundingClientRect()[_];const e=p.current[g]/(h.current-t);return u.current.style.flexGrow=`${e}`,d.current.style.flexGrow=""+(1-e),void(l.current.ariaValueNow="0")}if("End"===n.key){p.current=qf(u.current),h.current=c.current.getBoundingClientRect()[_];const e=p.current[v]/(h.current-t);return u.current.style.flexGrow=`${e}`,d.current.style.flexGrow=""+(1-e),void(l.current.ariaValueNow="100")}if(("column"===e&&zf.has(n.key)||"row"===e&&Vf.has(n.key))&&!D.current.has(n.key)&&(f.current=void 0,n.preventDefault(),n.stopPropagation(),m.current=u.current.getBoundingClientRect()[_],h.current=c.current.getBoundingClientRect()[_],p.current=qf(u.current),!D.current.has(n.key))){const e=0===D.current.size;D.current.add(n.key),e&&window.requestAnimationFrame(T)}}else void 0===f.current?(f.current=u.current.style.flexGrow,u.current.style.flexGrow="0",d.current.style.flexGrow="1"):(u.current.style.flexGrow=f.current,d.current.style.flexGrow=""+(1-parseFloat(f.current)),f.current=void 0)}),[e,T,t,v,_,g]),O=(0,w.useCallback)((t=>{"row"===e&&!Vf.has(t.key)||"column"===e&&!zf.has(t.key)||(D.current.delete(t.key),null==i||i(parseFloat(u.current.style.flexGrow)))}),[e,i]),j=(0,w.useCallback)((()=>{u.current.style.flexGrow="0.5",d.current.style.flexGrow="0.5";const e=qf(u.current);p.current=e,m.current=u.current.getBoundingClientRect()[_],l.current.ariaValueNow=""+(m.current-e[g])/(e[v]-e[g])*100}),[v,_,g]),P=(0,w.useCallback)((()=>{D.current.size>0&&(D.current.clear(),b.current=null,null==i||i(parseFloat(u.current.style.flexGrow)))}),[i]),E=(0,Xt.useStyles2)($f),C=Xm(),H=2===o.length?"visible":"hidden";return k().createElement("div",{ref:c,className:E.container,style:{flexDirection:e}},k().createElement("div",{ref:u,className:E.panel,style:Wf({flexGrow:"auto"===n?.5:(0,te.clamp)(n,0,1),[g]:"min-content"},r),id:`start-panel-${C}`},o[0]),o[1]&&k().createElement(k().Fragment,null,k().createElement("div",{ref:l,style:{[_]:`${t}px`},className:(0,nn.cx)(E.handle,{[E.handleHorizontal]:"column"===e}),onPointerUp:S,onPointerDown:M,onPointerMove:L,onKeyDown:x,onKeyUp:O,onDoubleClick:j,onBlur:P,role:"separator","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":50,"aria-controls":`start-panel-${C}`,"aria-label":"Pane resize widget",tabIndex:0}),k().createElement("div",{ref:d,className:E.panel,style:Wf({flexGrow:"auto"===n?.5:(0,te.clamp)(1-n,0,1),[g]:"min-content",visibility:`${H}`},a),id:`end-panel-${C}`},o[1])))}function $f(e){return{handle:(0,nn.css)({cursor:"col-resize",position:"relative",flexShrink:0,userSelect:"none","&::before":{content:'""',position:"absolute",backgroundColor:e.colors.primary.main,left:"50%",transform:"translate(-50%)",top:0,height:"100%",width:"1px",opacity:0,transition:"opacity ease-in-out 0.2s"},"&::after":{content:'""',width:"4px",borderRadius:"4px",backgroundColor:e.colors.border.weak,transition:"background-color ease-in-out 0.2s",height:"50%",top:"calc(50% - (50%) / 2)",transform:"translateX(-50%)",position:"absolute",left:"50%"},"&:hover, &:focus-visible":{outline:"none","&::before":{opacity:1},"&::after":{backgroundColor:e.colors.primary.main}}}),handleHorizontal:(0,nn.css)({cursor:"row-resize","&::before":{left:"inherit",transform:"translateY(-50%)",top:"50%",height:"1px",width:"100%"},"&::after":{width:"50%",height:"4px",top:"50%",transform:"translateY(-50%)",left:"calc(50% - (50%) / 2)"}}),container:(0,nn.css)({display:"flex",width:"100%",flexGrow:1,overflow:"hidden"}),panel:(0,nn.css)({display:"flex",position:"relative",flexBasis:0})}}function qf(e){if(null===e)return;const t=document.body.style.overflow,n=e.style.width,r=e.style.height,a=e.style.flexGrow;document.body.style.overflow="hidden",e.style.flexGrow="0";const{width:i,height:s}=e.getBoundingClientRect();e.style.flexGrow="100";const{width:o,height:l}=e.getBoundingClientRect();return document.body.style.overflow=t,e.style.width=n,e.style.height=r,e.style.flexGrow=a,{minWidth:i,maxWidth:o,minHeight:s,maxHeight:l}}(class extends K{toggleDirection(){this.setState({direction:"row"===this.state.direction?"column":"row"})}isDraggable(){return!1}}).Component=function({model:e}){const{primary:t,secondary:n,direction:r,isHidden:a,initialSize:i,primaryPaneStyles:s,secondaryPaneStyles:o}=e.useState();if(a)return null;const l=t.Component,u=null==n?void 0:n.Component;let d=n?i:1;return k().createElement(Uf,{direction:r,initialSize:null!=d?d:.5,primaryPaneStyles:s,secondaryPaneStyles:o},k().createElement(l,{key:t.state.key,model:t,parentState:e.state}),u&&n&&k().createElement(u,{key:n.state.key,model:n,parentState:e.state}))},class extends K{constructor(){super(...arguments),this._renderBeforeActivation=!0}enrichDataRequest(){return{app:this.state.name||"app"}}}.Component=({model:e})=>{const{pages:t,scopesBridge:n}=e.useState();return k().createElement(k().Fragment,null,n&&k().createElement(n.Component,{model:n}),k().createElement(Gf.Provider,{value:e},k().createElement(a.Routes,null,t.map((e=>k().createElement(a.Route,{key:e.state.url,path:e.state.routePath,element:k().createElement(e.Component,{model:e})}))))))};const Gf=(0,w.createContext)(null);var Zf=Object.defineProperty,Jf=Object.getOwnPropertySymbols,Qf=Object.prototype.hasOwnProperty,Kf=Object.prototype.propertyIsEnumerable,Xf=(e,t,n)=>t in e?Zf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class e_ extends K{}function t_({node:e}){const t=e.useState(),n=(0,Xt.useStyles2)(n_);return k().createElement("div",{className:n.container},Object.keys(t).map((r=>k().createElement("div",{className:n.row,key:r},k().createElement("div",{className:n.keyName},r),k().createElement("div",{className:n.value},function(e,t,n){if(null===t)return"null";switch(typeof t){case"number":return k().createElement(Xt.Input,{type:"number",defaultValue:t,onBlur:t=>n.setState({[e]:t.currentTarget.valueAsNumber})});case"string":return k().createElement(Xt.Input,{type:"text",defaultValue:t,onBlur:t=>n.setState({[e]:t.currentTarget.value})});case"object":return Lt(t)?t.constructor.name:(0,te.isPlainObject)(t)||(0,te.isArray)(t)?k().createElement(Xt.JSONFormatter,{json:t,open:0}):String(t);default:return typeof t}}(r,t[r],e))))))}function n_(e){return{container:(0,nn.css)({flexGrow:1,display:"flex",gap:e.spacing(.5),flexDirection:"column"}),row:(0,nn.css)({display:"flex",gap:e.spacing(2)}),keyName:(0,nn.css)({display:"flex",flexGrow:"0",width:120,alignItems:"center",height:e.spacing(e.components.height.md)}),value:(0,nn.css)({flexGrow:1,minHeight:e.spacing(e.components.height.md),display:"flex",alignItems:"center"})}}function r_({node:e,selectedObject:t,onSelect:n}){const r=(0,Xt.useStyles2)(a_),a=[],i=e===t;return e.forEachChild((e=>{a.push(k().createElement(r_,{node:e,key:e.state.key,selectedObject:t,onSelect:n}))})),k().createElement("div",{className:r.container},k().createElement("div",{className:(0,nn.cx)(r.name,i&&r.selected),onClick:()=>n(e)},e.constructor.name),k().createElement("div",{className:r.children},a))}function a_(e){return{container:(0,nn.css)({flexGrow:1,display:"flex",gap:e.spacing(.5),flexDirection:"column"}),name:(0,nn.css)({flexGrow:1,display:"flex",gap:e.spacing(1),fontSize:e.typography.bodySmall.fontSize,cursor:"pointer",padding:e.spacing(0,1),borderRadius:e.shape.borderRadius(2),position:"relative","&:hover":{background:e.colors.background.secondary}}),selected:(0,nn.css)({"&::before":{display:"block",content:"' '",position:"absolute",left:0,width:4,bottom:2,top:2,borderRadius:e.shape.radius.default,backgroundImage:e.colors.gradients.brandVertical}}),children:(0,nn.css)({flexGrow:1,display:"flex",flexDirection:"column",paddingLeft:e.spacing(1)})}}function i_({scene:e}){const t=(0,Xt.useStyles2)(s_),[n,r]=(0,w.useState)(!1),[a,i]=(0,w.useState)();return k().createElement(k().Fragment,null,k().createElement(Xt.ToolbarButton,{variant:"canvas",icon:"bug",onClick:()=>r(!0)}),n&&k().createElement(Xt.Drawer,{title:"Scene debugger",onClose:()=>r(!1),size:"lg"},k().createElement("div",{className:t.panes},k().createElement("div",{className:t.pane1},k().createElement("div",{className:t.paneHeading},"Scene graph"),k().createElement(Xt.CustomScrollbar,{autoHeightMin:"100%"},k().createElement("div",{className:t.treeWrapper},k().createElement(r_,{node:e,selectedObject:a,onSelect:i})))),k().createElement("div",{className:t.pane2},k().createElement("div",{className:t.paneHeading},"Object details"),a&&k().createElement(t_,{node:a})))))}function s_(e){return{panes:(0,nn.css)({flexGrow:1,display:"flex",height:"100%",flexDirection:"row",marginTop:e.spacing(-2)}),pane1:(0,nn.css)({flexGrow:0,display:"flex",height:"100%",flexDirection:"column",borderRight:`1px solid ${e.colors.border.weak}`}),pane2:(0,nn.css)({flexGrow:1,display:"flex",minHeight:"100%",flexDirection:"column",paddingLeft:e.spacing(2)}),treeWrapper:(0,nn.css)({paddingRight:e.spacing(2),height:"100%",marginLeft:e.spacing(-1)}),paneHeading:(0,nn.css)({padding:e.spacing(1,0),fontWeight:e.typography.fontWeightMedium})}}function o_({page:e}){const t=m(e.state.url),n=function(e){return e.parent instanceof d_?e.parent:e}(e),r=n.useState(),i=function(){const e=(0,a.useLocation)();return(0,s.locationSearchToObject)(e.search||"")}(),o=e.getScene(t),l=(0,w.useContext)(Gf),u=r.initializedScene===o,{layout:d}=e.state,c=ot();(0,w.useLayoutEffect)((()=>{u||n.initializeScene(o)}),[o,n,u]),(0,w.useEffect)((()=>()=>n.setState({initializedScene:void 0})),[n]);const p=Nm(n,null==l?void 0:l.state.urlSyncOptions);if(!u&&!p)return null;const f={text:r.title,img:r.titleImg,icon:r.titleIcon,url:h(r.url,c.getSearchObject(),r.preserveUrlKeys),hideFromBreadcrumbs:r.hideFromBreadcrumbs,parentItem:l_(r.getParentPage?r.getParentPage():n.parent,i,c.getSearchObject())};r.tabs&&(f.children=r.tabs.map((t=>({text:t.state.title,icon:t.state.titleIcon,tabSuffix:t.state.tabSuffix,active:e===t,url:h(t.state.url,c.getSearchObject(),t.state.preserveUrlKeys),parentItem:f}))));let _=[];return r.controls&&(_=r.controls.map((e=>k().createElement(e.Component,{model:e,key:e.state.key})))),i["scene-debugger"]&&_.push(k().createElement(i_,{scene:n,key:"scene-debugger"})),k().createElement(s.PluginPage,{layout:d,pageNav:f,actions:_,renderTitle:r.renderTitle,subTitle:r.subTitle},k().createElement(o.Component,{model:o}))}function l_(e,t,n){if(e instanceof d_)return{text:e.state.title,url:h(e.state.url,n,e.state.preserveUrlKeys),hideFromBreadcrumbs:e.state.hideFromBreadcrumbs,parentItem:l_(e.state.getParentPage?e.state.getParentPage():e.parent,t,n)}}function u_({drilldown:e,parent:t}){const n=m(e.routePath),r=t.getDrilldownPage(e,n);return k().createElement(r.Component,{model:r})}e_.Component=({model:e})=>{const{component:t,props:n,reactNode:r}=e.useState();return t?k().createElement(t,((e,t)=>{for(var n in t||(t={}))Qf.call(t,n)&&Xf(e,n,t[n]);if(Jf)for(var n of Jf(t))Kf.call(t,n)&&Xf(e,n,t[n]);return e})({},n)):r||null};class d_ extends K{constructor(e){super(e),this._sceneCache=new Map,this._drilldownCache=new Map,this._activationHandler=()=>{if(this.state.useScopes){if(this._scopesBridge=Lu.getScopesBridge(this),!this._scopesBridge)throw new Error("Use of scopes is enabled but no scopes bridge found");return this._scopesBridge.setEnabled(!0),()=>{var e;null==(e=this._scopesBridge)||e.setEnabled(!1)}}},this.addActivationHandler(this._activationHandler)}initializeScene(e){this.setState({initializedScene:e})}getScene(e){let t=this._sceneCache.get(e.url);if(t)return t;if(!this.state.getScene)throw new Error("Missing getScene on SceneAppPage "+this.state.title);return t=this.state.getScene(e),this._sceneCache.set(e.url,t),t}getDrilldownPage(e,t){let n=this._drilldownCache.get(t.url);return n||(n=e.getPage(t,this),this._drilldownCache.set(t.url,n),n)}enrichDataRequest(e){if(this.state.getParentPage)return this.state.getParentPage().enrichDataRequest(e);if(!this.parent)return null;const t=this.getRoot();return kt(t)?t.enrichDataRequest(e):null}}d_.Component=function({model:e}){const{tabs:t,drilldowns:n}=e.useState(),r=[];if(r.push((i=e,k().createElement(a.Route,{key:"fallback route",path:"*",element:k().createElement(o_,{page:null!=(l=null==(o=(s=i.state).getFallbackPage)?void 0:o.call(s))?l:new d_({url:"",title:"Not found",subTitle:"The url did not match any page",routePath:"*",getScene:()=>new zm({body:new Df({direction:"column",children:[new Yf({body:new e_({component:()=>k().createElement("div",{"data-testid":"default-fallback-content"},"If you found your way here using a link then there might be a bug in this application.")})})]})})})})}))),t&&t.length>0)for(let n=0;nk().createElement(u_,{drilldown:t,parent:e})}));return t||r.push(k().createElement(a.Route,{key:"home route",path:"/",element:k().createElement(o_,{page:e})})),k().createElement(a.Routes,null,r)};var c_=(e=>(e.Always="always",e.Auto="auto",e.Never="never",e))(c_||{}),h_=(e=>(e.Hue="hue",e.None="none",e.Opacity="opacity",e.Scheme="scheme",e))(h_||{}),m_=(e=>(e.None="none",e.Normal="normal",e.Percent="percent",e))(m_||{}),p_=(e=>(e.Auto="auto",e.Horizontal="horizontal",e.Vertical="vertical",e))(p_||{}),f_=(e=>(e.Background="background",e.BackgroundSolid="background_solid",e.None="none",e.Value="value",e))(f_||{}),__=(e=>(e.Area="area",e.Line="line",e.None="none",e))(__||{}),y_=(e=>(e.Auto="auto",e.Center="center",e))(y_||{}),g_=(e=>(e.Auto="auto",e.Name="name",e.None="none",e.Value="value",e.ValueAndName="value_and_name",e))(g_||{}),v_=(e=>(e.Inverted="inverted",e.SameAsValue="same_as_value",e.Standard="standard",e))(v_||{}),b_=(e=>(e.Multi="multi",e.None="none",e.Single="single",e))(b_||{}),M_=(e=>(e.Basic="basic",e.Gradient="gradient",e.Lcd="lcd",e))(M_||{}),w_=(e=>(e.Color="color",e.Hidden="hidden",e.Text="text",e))(w_||{}),L_=(e=>(e.Auto="auto",e.Hidden="hidden",e.Left="left",e.Top="top",e))(L_||{}),k_=(e=>(e.Auto="auto",e.Manual="manual",e))(k_||{}),S_=(e=>(e.Auto="auto",e.Lg="lg",e.Md="md",e.Sm="sm",e))(S_||{});const D_={barRadius:0,barWidth:.97,fullHighlight:!1,groupWidth:.7,orientation:p_.Auto,showValue:c_.Auto,stacking:m_.None,xTickLabelRotation:0,xTickLabelSpacing:0},Y_={fillOpacity:80,gradientMode:h_.None,lineWidth:1},T_={displayMode:M_.Gradient,maxVizHeight:300,minVizHeight:16,minVizWidth:8,namePlacement:L_.Auto,showUnfilled:!0,sizing:k_.Auto,valueMode:w_.Color},x_={selectedSeries:0},O_={minVizHeight:75,minVizWidth:75,showThresholdLabels:!1,showThresholdMarkers:!0,sizing:k_.Auto},j_={layers:[]},P_={calculate:!1,cellGap:1,cellValues:{},color:{scheme:"Oranges",fill:"dark-orange",reverse:!1,exponent:.5,steps:64},exemplars:{color:"rgba(255,0,255,0.7)"},filterValues:{le:1e-9},legend:{show:!0},selectionMode:"x",showValue:c_.Auto,tooltip:{mode:b_.Single,yHistogram:!1,showColorScale:!1}},E_={bucketCount:30,bucketOffset:0},C_={fillOpacity:80,gradientMode:h_.None,lineWidth:1},H_={showImage:!0},R_={displayLabels:[]},A_={colorMode:f_.Value,graphMode:__.Area,justifyMode:y_.Auto,percentChangeColorMode:v_.Standard,showPercentChange:!1,textMode:g_.Auto,wideLayout:!0},I_={alignValue:"left",mergeValues:!0,perPage:20,rowHeight:.9,showValue:c_.Auto},F_={fillOpacity:70,lineWidth:0},N_={colWidth:.9,rowHeight:.9,showValue:c_.Auto},W_={fillOpacity:70,lineWidth:1},z_={cellHeight:S_.Sm,footer:{show:!1,countRows:!1,reducer:[]},frameIndex:0,showHeader:!0,showTypeIcons:!1,sortBy:[]},V_={content:"# Title\n\nFor markdown syntax help: [commonmark.org/help](https://commonmark.org/help/)",mode:"markdown"},B_={fillOpacity:50,show:"points"},U_={series:[]};class $_{constructor(){this._overrides=[]}overrideColor(e){return this._overrides[this._overrides.length-1].properties.push({id:"color",value:e}),this}overrideDecimals(e){return this._overrides[this._overrides.length-1].properties.push({id:"decimals",value:e}),this}overrideDisplayName(e){return this._overrides[this._overrides.length-1].properties.push({id:"displayName",value:e}),this}overrideFilterable(e){return this._overrides[this._overrides.length-1].properties.push({id:"filterable",value:e}),this}overrideLinks(e){return this._overrides[this._overrides.length-1].properties.push({id:"links",value:e}),this}overrideMappings(e){return this._overrides[this._overrides.length-1].properties.push({id:"mappings",value:e}),this}overrideMax(e){return this._overrides[this._overrides.length-1].properties.push({id:"max",value:e}),this}overrideMin(e){return this._overrides[this._overrides.length-1].properties.push({id:"min",value:e}),this}overrideNoValue(e){return this._overrides[this._overrides.length-1].properties.push({id:"noValue",value:e}),this}overrideThresholds(e){return this._overrides[this._overrides.length-1].properties.push({id:"thresholds",value:e}),this}overrideUnit(e){return this._overrides[this._overrides.length-1].properties.push({id:"unit",value:e}),this}}class q_ extends $_{match(e){return this._overrides.push({matcher:e,properties:[]}),this}matchFieldsWithName(e){return this._overrides.push({matcher:{id:i.FieldMatcherID.byName,options:e},properties:[]}),this}matchFieldsWithNameByRegex(e){return this._overrides.push({matcher:{id:i.FieldMatcherID.byRegexp,options:e},properties:[]}),this}matchFieldsByType(e){return this._overrides.push({matcher:{id:i.FieldMatcherID.byType,options:e},properties:[]}),this}matchFieldsByQuery(e){return this._overrides.push({matcher:{id:i.FieldMatcherID.byFrameRefID,options:e},properties:[]}),this}matchFieldsByValue(e){return this._overrides.push({matcher:{id:i.FieldMatcherID.byValue,options:e},properties:[]}),this}matchComparisonQuery(e){return this.matchFieldsByQuery(uf(e))}overrideCustomFieldConfig(e,t){const n=`custom.${String(e)}`;return this._overrides[this._overrides.length-1].properties.push({id:n,value:t}),this}build(){return this._overrides}}var G_=Object.defineProperty,Z_=Object.defineProperties,J_=Object.getOwnPropertyDescriptors,Q_=Object.getOwnPropertySymbols,K_=Object.prototype.hasOwnProperty,X_=Object.prototype.propertyIsEnumerable,ey=(e,t,n)=>t in e?G_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ty=(e,t)=>{for(var n in t||(t={}))K_.call(t,n)&&ey(e,n,t[n]);if(Q_)for(var n of Q_(t))X_.call(t,n)&&ey(e,n,t[n]);return e},ny=(e,t)=>Z_(e,J_(t));class ry{constructor(e){this.defaultFieldConfig=e,this._fieldConfig={defaults:{},overrides:[]},this._overridesBuilder=new q_,this.setDefaults()}setDefaults(){const e={defaults:{custom:this.defaultFieldConfig?(0,te.cloneDeep)(this.defaultFieldConfig()):{}},overrides:[]};this._fieldConfig=e}setColor(e){return this.setFieldConfigDefaults("color",e)}setDecimals(e){return this.setFieldConfigDefaults("decimals",e)}setDisplayName(e){return this.setFieldConfigDefaults("displayName",e)}setFilterable(e){return this.setFieldConfigDefaults("filterable",e)}setLinks(e){return this.setFieldConfigDefaults("links",e)}setMappings(e){return this.setFieldConfigDefaults("mappings",e)}setMax(e){return this.setFieldConfigDefaults("max",e)}setMin(e){return this.setFieldConfigDefaults("min",e)}setNoValue(e){return this.setFieldConfigDefaults("noValue",e)}setThresholds(e){return this.setFieldConfigDefaults("thresholds",e)}setUnit(e){return this.setFieldConfigDefaults("unit",e)}setCustomFieldConfig(e,t){return this._fieldConfig.defaults=ny(ty({},this._fieldConfig.defaults),{custom:(0,te.merge)(this._fieldConfig.defaults.custom,{[e]:t})}),this}setOverrides(e){return e(this._overridesBuilder),this}setFieldConfigDefaults(e,t){return this._fieldConfig.defaults=ny(ty({},this._fieldConfig.defaults),{[e]:t}),this}build(){return{defaults:this._fieldConfig.defaults,overrides:this._overridesBuilder.build()}}}class ay{constructor(e){this.defaultOptions=e,this._options={},this.setDefaults()}setDefaults(){this._options=this.defaultOptions?(0,te.cloneDeep)(this.defaultOptions()):{}}setOption(e,t){return this._options=(0,te.merge)(this._options,{[e]:t}),this}build(){return this._options}}var iy=Object.defineProperty,sy=Object.defineProperties,oy=Object.getOwnPropertyDescriptors,ly=Object.getOwnPropertySymbols,uy=Object.prototype.hasOwnProperty,dy=Object.prototype.propertyIsEnumerable,cy=(e,t,n)=>t in e?iy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class hy{constructor(e,t,n,r){this._state={},this._state.title="",this._state.description="",this._state.displayMode="default",this._state.hoverHeader=!1,this._state.pluginId=e,this._state.pluginVersion=t,this._fieldConfigBuilder=new ry(r),this._panelOptionsBuilder=new ay(n)}setTitle(e){return this._state.title=e,this}setDescription(e){return this._state.description=e,this}setDisplayMode(e){return this._state.displayMode=e,this}setHoverHeader(e){return this._state.hoverHeader=e,this}setShowMenuAlways(e){return this._state.showMenuAlways=e,this}setMenu(e){return this._state.menu=e,this}setHeaderActions(e){return this._state.headerActions=e,this}setCollapsible(e){return this._state.collapsible=e,this}setCollapsed(e){return this._state.collapsed=e,this}setColor(e){return this._fieldConfigBuilder.setColor(e),this}setDecimals(e){return this._fieldConfigBuilder.setDecimals(e),this}setDisplayName(e){return this._fieldConfigBuilder.setDisplayName(e),this}setFilterable(e){return this._fieldConfigBuilder.setFilterable(e),this}setLinks(e){return this._fieldConfigBuilder.setLinks(e),this}setMappings(e){return this._fieldConfigBuilder.setMappings(e),this}setMax(e){return this._fieldConfigBuilder.setMax(e),this}setMin(e){return this._fieldConfigBuilder.setMin(e),this}setNoValue(e){return this._fieldConfigBuilder.setNoValue(e),this}setThresholds(e){return this._fieldConfigBuilder.setThresholds(e),this}setUnit(e){return this._fieldConfigBuilder.setUnit(e),this}setCustomFieldConfig(e,t){return this._fieldConfigBuilder.setCustomFieldConfig(e,t),this}setOverrides(e){return this._fieldConfigBuilder.setOverrides(e),this}setOption(e,t){return this._panelOptionsBuilder.setOption(e,t),this}setData(e){return this._state.$data=e,this}setTimeRange(e){return this._state.$timeRange=e,this}setVariables(e){return this._state.$variables=e,this}setBehaviors(e){return this._state.$behaviors=e,this}setSeriesLimit(e){return this._state.seriesLimit=e,this}applyMixin(e){return e(this),this}build(){const e=new Nd((t=((e,t)=>{for(var n in t||(t={}))uy.call(t,n)&&cy(e,n,t[n]);if(ly)for(var n of ly(t))dy.call(t,n)&&cy(e,n,t[n]);return e})({},this._state),n={options:this._panelOptionsBuilder.build(),fieldConfig:this._fieldConfigBuilder.build()},sy(t,oy(n))));var t,n;return e}}const my={barchart:()=>new hy("barchart","10.0.0",(()=>D_),(()=>Y_)),bargauge:()=>new hy("bargauge","10.0.0",(()=>T_)),datagrid:()=>new hy("datagrid","10.0.0",(()=>x_)),flamegraph:()=>new hy("flamegraph","10.0.0"),gauge:()=>new hy("gauge","10.0.0",(()=>O_)),geomap:()=>new hy("geomap","10.0.0",(()=>j_)),heatmap:()=>new hy("heatmap","10.0.0",(()=>P_)),histogram:()=>new hy("histogram","10.0.0",(()=>E_),(()=>C_)),logs:()=>new hy("logs","10.0.0"),news:()=>new hy("news","10.0.0",(()=>H_)),nodegraph:()=>new hy("nodeGraph","10.0.0"),piechart:()=>new hy("piechart","10.0.0",(()=>R_)),stat:()=>new hy("stat","10.0.0",(()=>A_)),statetimeline:()=>new hy("state-timeline","10.0.0",(()=>I_),(()=>F_)),statushistory:()=>new hy("status-history","10.0.0",(()=>N_),(()=>W_)),table:()=>new hy("table","10.0.0",(()=>z_)),text:()=>new hy("text","10.0.0",(()=>V_)),timeseries:()=>new hy("timeseries","10.0.0"),trend:()=>new hy("trend","10.0.0"),traces:()=>new hy("traces","10.0.0"),xychart:()=>new hy("xychart","10.0.0",(()=>U_),(()=>B_))},py={getUrlWithAppState:h,registerRuntimePanelPlugin:function({pluginId:e,plugin:t}){if(M.has(e))throw new Error(`A runtime panel plugin with id ${e} has already been registered`);var n;t.meta=(n=((e,t)=>{for(var n in t||(t={}))g.call(t,n)&&b(e,n,t[n]);if(y)for(var n of y(t))v.call(t,n)&&b(e,n,t[n]);return e})({},t.meta),f(n,_({id:e,name:e,module:"runtime plugin",baseUrl:"runtime plugin",info:{author:{name:"Runtime plugin "+e},description:"",links:[],logos:{large:"",small:""},screenshots:[],updated:"",version:""}}))),M.set(e,t)},registerRuntimeDataSource:function({dataSource:e}){if(de.has(e.uid))throw new Error(`A runtime data source with uid ${e.uid} has already been registered`);de.set(e.uid,e)},registerVariableMacro:function(e,t){if(Mt.get(e))throw new Error(`Macro already registered ${e}`);return Mt.set(e,t),()=>{Mt.delete(e)}},cloneSceneObjectState:le,syncStateFromSearchParams:function(e,t){Yu(e,t,new ku)},getUrlState:Du,renderPrometheusLabelFilters:Ml,escapeLabelValueInRegexSelector:Ll,escapeLabelValueInExactSelector:wl,escapeURLDelimiters:function(e){return Yl(Dl(e))},isAdHocVariable:function(e){return"adhoc"===e.state.type},isConstantVariable:function(e){return"constant"===e.state.type},isCustomVariable:function(e){return"custom"===e.state.type},isDataSourceVariable:function(e){return"datasource"===e.state.type},isIntervalVariable:function(e){return"interval"===e.state.type},isQueryVariable:function(e){return"query"===e.state.type},isTextBoxVariable:function(e){return"textbox"===e.state.type},isGroupByVariable:function(e){return"groupby"===e.state.type}}},7308:function(e,t,n){!function(e){"use strict";var t={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};e.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(2689))},7350:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.browserPrefixToKey=a,t.browserPrefixToStyle=function(e,t){return t?"-".concat(t.toLowerCase(),"-").concat(e):e},t.default=void 0,t.getPrefix=r;const n=["Moz","Webkit","O","ms"];function r(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"transform";if("undefined"==typeof window)return"";const r=null===(e=window.document)||void 0===e||null===(e=e.documentElement)||void 0===e?void 0:e.style;if(!r)return"";if(t in r)return"";for(let e=0;e=10;)e/=10;return n(e)}return n(e/=1e3)}e.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return n(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return n(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:t,mm:"%d Minutten",h:t,hh:"%d Stonnen",d:t,dd:"%d Deeg",M:t,MM:"%d Méint",y:t,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},7434:e=>{e.exports=function(e,t,n){return e===t||e.className===t.className&&n(e.style,t.style)&&e.width===t.width&&e.autoSize===t.autoSize&&e.cols===t.cols&&e.draggableCancel===t.draggableCancel&&e.draggableHandle===t.draggableHandle&&n(e.verticalCompact,t.verticalCompact)&&n(e.compactType,t.compactType)&&n(e.layout,t.layout)&&n(e.margin,t.margin)&&n(e.containerPadding,t.containerPadding)&&e.rowHeight===t.rowHeight&&e.maxRows===t.maxRows&&e.isBounded===t.isBounded&&e.isDraggable===t.isDraggable&&e.isResizable===t.isResizable&&e.allowOverlap===t.allowOverlap&&e.preventCollision===t.preventCollision&&e.useCSSTransforms===t.useCSSTransforms&&e.transformScale===t.transformScale&&e.isDroppable===t.isDroppable&&n(e.resizeHandles,t.resizeHandles)&&n(e.resizeHandle,t.resizeHandle)&&e.onLayoutChange===t.onLayoutChange&&e.onDragStart===t.onDragStart&&e.onDrag===t.onDrag&&e.onDragStop===t.onDragStop&&e.onResizeStart===t.onResizeStart&&e.onResize===t.onResize&&e.onResizeStop===t.onResizeStop&&e.onDrop===t.onDrop&&n(e.droppingItem,t.droppingItem)&&n(e.innerRef,t.innerRef)}},7462:function(e,t,n){!function(e){"use strict";var t={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},n={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};e.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પહેલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?e>=10?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})}(n(2689))},7493:function(e,t,n){!function(e){"use strict";var t={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},n={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};e.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(e,t,n){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t||"நண்பகல்"===t&&e>=10?e:e+12},week:{dow:0,doy:6}})}(n(2689))},7705:function(e,t,n){!function(e){"use strict";e.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?e>=10?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})}(n(2689))},7786:function(e,t,n){!function(e){"use strict";var t={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},n={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};e.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,n){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[១២៣៤៥៦៧៨៩០]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(n(2689))},7842:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",a=9007199254740991,i="[object Arguments]",s="[object Array]",o="[object Boolean]",l="[object Date]",u="[object Error]",d="[object Function]",c="[object Map]",h="[object Number]",m="[object Object]",p="[object Promise]",f="[object RegExp]",_="[object Set]",y="[object String]",g="[object WeakMap]",v="[object ArrayBuffer]",b="[object DataView]",M=/^\[object .+?Constructor\]$/,w=/^(?:0|[1-9]\d*)$/,L={};L["[object Float32Array]"]=L["[object Float64Array]"]=L["[object Int8Array]"]=L["[object Int16Array]"]=L["[object Int32Array]"]=L["[object Uint8Array]"]=L["[object Uint8ClampedArray]"]=L["[object Uint16Array]"]=L["[object Uint32Array]"]=!0,L[i]=L[s]=L[v]=L[o]=L[b]=L[l]=L[u]=L[d]=L[c]=L[h]=L[m]=L[f]=L[_]=L[y]=L[g]=!1;var k="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,S="object"==typeof self&&self&&self.Object===Object&&self,D=k||S||Function("return this")(),Y=t&&!t.nodeType&&t,T=Y&&e&&!e.nodeType&&e,x=T&&T.exports===Y,O=x&&k.process,j=function(){try{return O&&O.binding&&O.binding("util")}catch(e){}}(),P=j&&j.isTypedArray;function E(e,t){for(var n=-1,r=null==e?0:e.length;++no))return!1;var u=i.get(e);if(u&&i.get(t))return u==t;var d=-1,c=!0,h=2&n?new ve:void 0;for(i.set(e,t),i.set(t,e);++d-1},ye.prototype.set=function(e,t){var n=this.__data__,r=Me(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},ge.prototype.clear=function(){this.size=0,this.__data__={hash:new _e,map:new(ae||ye),string:new _e}},ge.prototype.delete=function(e){var t=Ye(this,e).delete(e);return this.size-=t?1:0,t},ge.prototype.get=function(e){return Ye(this,e).get(e)},ge.prototype.has=function(e){return Ye(this,e).has(e)},ge.prototype.set=function(e,t){var n=Ye(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},ve.prototype.add=ve.prototype.push=function(e){return this.__data__.set(e,r),this},ve.prototype.has=function(e){return this.__data__.has(e)},be.prototype.clear=function(){this.__data__=new ye,this.size=0},be.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},be.prototype.get=function(e){return this.__data__.get(e)},be.prototype.has=function(e){return this.__data__.has(e)},be.prototype.set=function(e,t){var n=this.__data__;if(n instanceof ye){var r=n.__data__;if(!ae||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new ge(r)}return n.set(e,t),this.size=n.size,this};var xe=ee?function(e){return null==e?[]:(e=Object(e),function(t){for(var n=-1,r=null==t?0:t.length,a=0,i=[];++n-1&&e%1==0&&e-1&&e%1==0&&e<=a}function Fe(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ne(e){return null!=e&&"object"==typeof e}var We=P?function(e){return function(t){return e(t)}}(P):function(e){return Ne(e)&&Ie(e.length)&&!!L[we(e)]};function ze(e){return null!=(t=e)&&Ie(t.length)&&!Ae(t)?function(e,t){var n=He(e),r=!n&&Ce(e),a=!n&&!r&&Re(e),i=!n&&!r&&!a&&We(e),s=n||r||a||i,o=s?function(e,t){for(var n=-1,r=Array(e);++n1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextDay:function(){return"[Domani a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextWeek:function(){return"dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastDay:function(){return"[Ieri a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastWeek:function(){return 0===this.day()?"[La scorsa] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT":"[Lo scorso] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},sameElse:"L"},relativeTime:{future:"tra %s",past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",w:"una settimana",ww:"%d settimane",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},7893:function(e,t,n){!function(e){"use strict";var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],n=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];e.defineLocale("ur",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(2689))},7899:function(e,t,n){!function(e){"use strict";e.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(n(2689))},7988:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){}},8026:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return r||t?a[n][0]:a[n][1]}e.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return e>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},8030:function(e,t,n){!function(e){"use strict";e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(2689))},8100:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=h(n(5959)),i=h(n(2688)),s=n(8230),o=n(936),l=n(414),u=n(906),d=n(7222),c=h(n(7256));function h(e){return e&&e.__esModule?e:{default:e}}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:this.props;return{cols:e.cols,containerPadding:e.containerPadding,containerWidth:e.containerWidth,margin:e.margin,maxRows:e.maxRows,rowHeight:e.rowHeight}}},{key:"createStyle",value:function(e){var t,n=this.props,r=n.usePercentages,a=n.containerWidth;return n.useCSSTransforms?t=(0,l.setTransform)(e):(t=(0,l.setTopLeft)(e),r&&(t.left=(0,l.perc)(e.left/a),t.width=(0,l.perc)(e.width/a))),t}},{key:"mixinDraggable",value:function(e,t){return a.default.createElement(s.DraggableCore,{disabled:!t,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop,handle:this.props.handle,cancel:".react-resizable-handle"+(this.props.cancel?","+this.props.cancel:""),scale:this.props.transformScale,nodeRef:this.elementRef},e)}},{key:"mixinResizable",value:function(e,t,n){var r=this.props,i=r.cols,s=r.x,l=r.minW,d=r.minH,c=r.maxW,h=r.maxH,m=r.transformScale,p=r.resizeHandles,f=r.resizeHandle,_=this.getPositionParams(),y=(0,u.calcGridItemPosition)(_,0,0,i-s,0).width,g=(0,u.calcGridItemPosition)(_,0,0,l,d),v=(0,u.calcGridItemPosition)(_,0,0,c,h),b=[g.width,g.height],M=[Math.min(v.width,y),Math.min(v.height,1/0)];return a.default.createElement(o.Resizable,{draggableOpts:{disabled:!n},className:n?void 0:"react-resizable-hide",width:t.width,height:t.height,minConstraints:b,maxConstraints:M,onResizeStop:this.onResizeStop,onResizeStart:this.onResizeStart,onResize:this.onResize,transformScale:m,resizeHandles:p,handle:f},e)}},{key:"onResizeHandler",value:function(e,t,n){var r=t.node,a=t.size,i=this.props[n];if(i){var s=this.props,o=s.cols,l=s.x,d=s.y,c=s.i,h=s.maxH,m=s.minH,p=this.props,f=p.minW,_=p.maxW,y=(0,u.calcWH)(this.getPositionParams(),a.width,a.height,l,d),g=y.w,v=y.h;f=Math.max(f,1),_=Math.min(_,o-l),g=(0,u.clamp)(g,f,_),v=(0,u.clamp)(v,m,h),this.setState({resizing:"onResizeStop"===n?null:a}),i.call(this,c,g,v,{e,node:r,size:a})}}},{key:"render",value:function(){var e=this.props,t=e.x,n=e.y,r=e.w,i=e.h,s=e.isDraggable,o=e.isResizable,l=e.droppingPosition,d=e.useCSSTransforms,h=(0,u.calcGridItemPosition)(this.getPositionParams(),t,n,r,i,this.state),m=a.default.Children.only(this.props.children),f=a.default.cloneElement(m,{ref:this.elementRef,className:(0,c.default)("react-grid-item",m.props.className,this.props.className,{static:this.props.static,resizing:Boolean(this.state.resizing),"react-draggable":s,"react-draggable-dragging":Boolean(this.state.dragging),dropping:Boolean(l),cssTransforms:d}),style:p(p(p({},this.props.style),m.props.style),this.createStyle(h))});return f=this.mixinResizable(f,h,o),this.mixinDraggable(f,s)}}],n&&f(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),m}(a.default.Component);t.default=b,v(b,"propTypes",{children:i.default.element,cols:i.default.number.isRequired,containerWidth:i.default.number.isRequired,rowHeight:i.default.number.isRequired,margin:i.default.array.isRequired,maxRows:i.default.number.isRequired,containerPadding:i.default.array.isRequired,x:i.default.number.isRequired,y:i.default.number.isRequired,w:i.default.number.isRequired,h:i.default.number.isRequired,minW:function(e,t){var n=e[t];return"number"!=typeof n?new Error("minWidth not Number"):n>e.w||n>e.maxW?new Error("minWidth larger than item width/maxWidth"):void 0},maxW:function(e,t){var n=e[t];return"number"!=typeof n?new Error("maxWidth not Number"):ne.h||n>e.maxH?new Error("minHeight larger than item height/maxHeight"):void 0},maxH:function(e,t){var n=e[t];return"number"!=typeof n?new Error("maxHeight not Number"):n{"use strict";const{default:r,DraggableCore:a}=n(9111);e.exports=r,e.exports.default=r,e.exports.DraggableCore=a},8231:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?a[n][2]?a[n][2]:a[n][1]:r?a[n][0]:a[n][1]}e.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:"%d päeva",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},8262:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta,default:()=>i});const i=a},8294:function(e,t,n){!function(e){"use strict";e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"én time",hh:"%d timer",d:"én dag",dd:"%d dager",w:"én uke",ww:"%d uker",M:"én måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},8377:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){switch(n){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}e.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,n){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}})}(n(2689))},8473:function(e,t,n){!function(e){"use strict";var t=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],n=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];e.defineLocale("sd",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(2689))},8478:function(e,t,n){!function(e){"use strict";function t(e,t,n){return"m"===n?t?"хвилина":"хвилину":"h"===n?t?"година":"годину":e+" "+(r=+e,a={ss:t?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[n].split("_"),r%10==1&&r%100!=11?a[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?a[1]:a[2]);var r,a}function n(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(e,t){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):e?n[/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:n.nominative},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:n("[Сьогодні "),nextDay:n("[Завтра "),lastDay:n("[Вчора "),nextWeek:n("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return n("[Минулої] dddd [").call(this);case 1:case 2:case 4:return n("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:t,m:t,mm:t,h:"годину",hh:t,d:"день",dd:t,M:"місяць",MM:t,y:"рік",yy:t},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}})}(n(2689))},8503:function(e,t,n){!function(e){"use strict";e.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,n){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}})}(n(2689))},8512:function(e,t,n){!function(e){"use strict";e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(2689))},8537:function(e,t,n){!function(e){"use strict";e.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}(n(2689))},8588:function(e,t,n){!function(e){"use strict";e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(2689))},8733:function(e,t,n){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function r(e,t,n,r){var a="";if(t)switch(n){case"s":a="काही सेकंद";break;case"ss":a="%d सेकंद";break;case"m":a="एक मिनिट";break;case"mm":a="%d मिनिटे";break;case"h":a="एक तास";break;case"hh":a="%d तास";break;case"d":a="एक दिवस";break;case"dd":a="%d दिवस";break;case"M":a="एक महिना";break;case"MM":a="%d महिने";break;case"y":a="एक वर्ष";break;case"yy":a="%d वर्षे"}else switch(n){case"s":a="काही सेकंदां";break;case"ss":a="%d सेकंदां";break;case"m":a="एका मिनिटा";break;case"mm":a="%d मिनिटां";break;case"h":a="एका तासा";break;case"hh":a="%d तासां";break;case"d":a="एका दिवसा";break;case"dd":a="%d दिवसां";break;case"M":a="एका महिन्या";break;case"MM":a="%d महिन्यां";break;case"y":a="एका वर्षा";break;case"yy":a="%d वर्षां"}return a.replace(/%d/i,e)}e.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,meridiemHour:function(e,t){return 12===e&&(e=0),"पहाटे"===t||"सकाळी"===t?e:"दुपारी"===t||"सायंकाळी"===t||"रात्री"===t?e>=12?e:e+12:void 0},meridiem:function(e,t,n){return e>=0&&e<6?"पहाटे":e<12?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}(n(2689))},8796:function(e,t,n){!function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^(maart|mrt\.?)$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],a=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2689))},8798:function(e,t,n){!function(e){"use strict";e.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(e){return e+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,n){return e>11?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}})}(n(2689))},8944:function(e,t,n){!function(e){"use strict";function t(e,t,n,r){var a={s:["थोडया सॅकंडांनी","थोडे सॅकंड"],ss:[e+" सॅकंडांनी",e+" सॅकंड"],m:["एका मिणटान","एक मिनूट"],mm:[e+" मिणटांनी",e+" मिणटां"],h:["एका वरान","एक वर"],hh:[e+" वरांनी",e+" वरां"],d:["एका दिसान","एक दीस"],dd:[e+" दिसांनी",e+" दीस"],M:["एका म्हयन्यान","एक म्हयनो"],MM:[e+" म्हयन्यानी",e+" म्हयने"],y:["एका वर्सान","एक वर्स"],yy:[e+" वर्सांनी",e+" वर्सां"]};return r?a[n][0]:a[n][1]}e.defineLocale("gom-deva",{months:{standalone:"जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),format:"जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार".split("_"),weekdaysShort:"आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.".split("_"),weekdaysMin:"आ_सो_मं_बु_ब्रे_सु_शे".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [वाजतां]",LTS:"A h:mm:ss [वाजतां]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [वाजतां]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [वाजतां]",llll:"ddd, D MMM YYYY, A h:mm [वाजतां]"},calendar:{sameDay:"[आयज] LT",nextDay:"[फाल्यां] LT",nextWeek:"[फुडलो] dddd[,] LT",lastDay:"[काल] LT",lastWeek:"[फाटलो] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s आदीं",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(वेर)/,ordinal:function(e,t){return"D"===t?e+"वेर":e},week:{dow:0,doy:3},meridiemParse:/राती|सकाळीं|दनपारां|सांजे/,meridiemHour:function(e,t){return 12===e&&(e=0),"राती"===t?e<4?e:e+12:"सकाळीं"===t?e:"दनपारां"===t?e>12?e:e+12:"सांजे"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"राती":e<12?"सकाळीं":e<16?"दनपारां":e<20?"सांजे":"राती"}})}(n(2689))},8974:function(e,t,n){!function(e){"use strict";e.defineLocale("ka",{months:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return e.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,(function(e,t,n){return"ი"===n?t+"ში":t+n+"ში"}))},past:function(e){return/(წამი|წუთი|საათი|დღე|თვე)/.test(e)?e.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(e)?e.replace(/წელი$/,"წლის წინ"):e},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}})}(n(2689))},9083:function(e,t,n){!function(e){"use strict";var t={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,t,n){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"%d ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})}(n(2689))},9111:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"DraggableCore",{enumerable:!0,get:function(){return d.default}}),t.default=void 0;var r=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var s=a?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=e[i]}return r.default=e,n&&n.set(e,r),r}(n(5959)),a=h(n(2688)),i=h(n(8398)),s=h(n(8262)),o=n(2837),l=n(402),u=n(6732),d=h(n(1060)),c=h(n(7988));function h(e){return e&&e.__esModule?e:{default:e}}function m(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if((0,c.default)("Draggable: onDragStart: %j",t),!1===this.props.onStart(e,(0,l.createDraggableData)(this,t)))return!1;this.setState({dragging:!0,dragged:!0})})),f(this,"onDrag",((e,t)=>{if(!this.state.dragging)return!1;(0,c.default)("Draggable: onDrag: %j",t);const n=(0,l.createDraggableData)(this,t),r={x:n.x,y:n.y,slackX:0,slackY:0};if(this.props.bounds){const{x:e,y:t}=r;r.x+=this.state.slackX,r.y+=this.state.slackY;const[a,i]=(0,l.getBoundPosition)(this,r.x,r.y);r.x=a,r.y=i,r.slackX=this.state.slackX+(e-r.x),r.slackY=this.state.slackY+(t-r.y),n.x=r.x,n.y=r.y,n.deltaX=r.x-this.state.x,n.deltaY=r.y-this.state.y}if(!1===this.props.onDrag(e,n))return!1;this.setState(r)})),f(this,"onDragStop",((e,t)=>{if(!this.state.dragging)return!1;if(!1===this.props.onStop(e,(0,l.createDraggableData)(this,t)))return!1;(0,c.default)("Draggable: onDragStop: %j",t);const n={dragging:!1,slackX:0,slackY:0};if(Boolean(this.props.position)){const{x:e,y:t}=this.props.position;n.x=e,n.y=t}this.setState(n)})),this.state={dragging:!1,dragged:!1,x:e.position?e.position.x:e.defaultPosition.x,y:e.position?e.position.y:e.defaultPosition.y,prevPropsPosition:{...e.position},slackX:0,slackY:0,isElementSVG:!1},!e.position||e.onDrag||e.onStop||console.warn("A `position` was applied to this , without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){void 0!==window.SVGElement&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.setState({dragging:!1})}findDOMNode(){var e,t;return null!==(e=null===(t=this.props)||void 0===t||null===(t=t.nodeRef)||void 0===t?void 0:t.current)&&void 0!==e?e:i.default.findDOMNode(this)}render(){const{axis:e,bounds:t,children:n,defaultPosition:a,defaultClassName:i,defaultClassNameDragging:u,defaultClassNameDragged:c,position:h,positionOffset:m,scale:f,..._}=this.props;let y={},g=null;const v=!Boolean(h)||this.state.dragging,b=h||a,M={x:(0,l.canDragX)(this)&&v?this.state.x:b.x,y:(0,l.canDragY)(this)&&v?this.state.y:b.y};this.state.isElementSVG?g=(0,o.createSVGTransform)(M,m):y=(0,o.createCSSTransform)(M,m);const w=(0,s.default)(n.props.className||"",i,{[u]:this.state.dragging,[c]:this.state.dragged});return r.createElement(d.default,p({},_,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),r.cloneElement(r.Children.only(n),{className:w,style:{...n.props.style,...y},transform:g}))}}t.default=_,f(_,"displayName","Draggable"),f(_,"propTypes",{...d.default.propTypes,axis:a.default.oneOf(["both","x","y","none"]),bounds:a.default.oneOfType([a.default.shape({left:a.default.number,right:a.default.number,top:a.default.number,bottom:a.default.number}),a.default.string,a.default.oneOf([!1])]),defaultClassName:a.default.string,defaultClassNameDragging:a.default.string,defaultClassNameDragged:a.default.string,defaultPosition:a.default.shape({x:a.default.number,y:a.default.number}),positionOffset:a.default.shape({x:a.default.oneOfType([a.default.number,a.default.string]),y:a.default.oneOfType([a.default.number,a.default.string])}),position:a.default.shape({x:a.default.number,y:a.default.number}),className:u.dontSetMe,style:u.dontSetMe,transform:u.dontSetMe}),f(_,"defaultProps",{...d.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})},9133:function(e,t,n){!function(e){"use strict";e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}(n(2689))},9190:function(e,t,n){!function(e){"use strict";var t={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(2689))},9198:function(e,t,n){!function(e){"use strict";e.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",w:"uma semana",ww:"%d semanas",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},9237:function(e,t,n){!function(e){"use strict";e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(e)},meridiem:function(e,t,n){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?n?'לפנה"צ':"לפני הצהריים":e<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}})}(n(2689))},9338:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(2689))},9343:function(e,t,n){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-ps",{months:"كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل".split("_"),monthsShort:"ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).split("").reverse().join("").replace(/[١٢](?![\u062a\u0643])/g,(function(e){return n[e]})).split("").reverse().join("").replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:0,doy:6}})}(n(2689))},9445:function(e,t,n){!function(e){"use strict";e.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(2689))},9482:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var a={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=i?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(a,s,o):a[s]=e[s]}return a.default=e,n&&n.set(e,a),a}(n(5959)),i=c(n(7842)),s=c(n(7256)),o=n(414),l=n(906),u=c(n(8100)),d=c(n(7222));function c(e){return e&&e.__esModule?e:{default:e}}function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0){var i=1/0,s=1/0;a.forEach((function(t){t.x>e.x&&(i=Math.min(i,t.x)),t.y>e.y&&(s=Math.min(s,t.y))})),Number.isFinite(i)&&(e.w=i-e.x),Number.isFinite(s)&&(e.h=s-e.y)}}return t||(e.w=n,e.h=r),e})),g=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i=[],s=!0,o=!1;try{for(n=n.call(e);!(s=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);s=!0);}catch(e){o=!0,a=e}finally{try{s||null==n.return||n.return()}finally{if(o)throw a}}return i}}(e,t)||f(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(y,2),v=g[0],b=g[1];if(b){var M={w:b.w,h:b.h,x:b.x,y:b.y,static:!0,i:t};e.props.onResize(v,d,b,M,i,s),e.setState({layout:_?v:(0,o.compact)(v,(0,o.compactType)(e.props),h),activeDrag:M})}})),M(v(e),"onResizeStop",(function(t,n,r,a){var i=a.e,s=a.node,l=e.state,u=l.layout,d=l.oldResizeItem,c=e.props,h=c.cols,m=c.allowOverlap,p=(0,o.getLayoutItem)(u,t);e.props.onResizeStop(u,d,p,null,i,s);var f=m?u:(0,o.compact)(u,(0,o.compactType)(e.props),h),_=e.state.oldLayout;e.setState({activeDrag:null,layout:f,oldResizeItem:null,oldLayout:null}),e.onLayoutMaybeChanged(f,_)})),M(v(e),"onDragOver",(function(t){var n;if(t.preventDefault(),t.stopPropagation(),L&&(null===(n=t.nativeEvent.target)||void 0===n||!n.classList.contains(w)))return!1;var r=e.props,i=r.droppingItem,s=r.onDropDragOver,o=r.margin,u=r.cols,d=r.rowHeight,c=r.maxRows,h=r.width,m=r.containerPadding,y=r.transformScale,g=null==s?void 0:s(t);if(!1===g)return e.state.droppingDOMNode&&e.removeDroppingPlaceholder(),!1;var v,b=p(p({},i),g),M=e.state.layout,k=t.nativeEvent,S=k.layerX,D=k.layerY,Y={left:S/y,top:D/y,e:t};if(e.state.droppingDOMNode){if(e.state.droppingPosition){var T=e.state.droppingPosition,x=T.left,O=T.top;(x!=S||O!=D)&&e.setState({droppingPosition:Y})}}else{var j={cols:u,margin:o,maxRows:c,rowHeight:d,containerWidth:h,containerPadding:m||o},P=(0,l.calcXY)(j,D,S,b.w,b.h);e.setState({droppingDOMNode:a.createElement("div",{key:b.i}),droppingPosition:Y,layout:[].concat((v=M,function(e){if(Array.isArray(e))return _(e)}(v)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(v)||f(v)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),[p(p({},b),{},{x:P.x,y:P.y,static:!1,isDraggable:!0})])})}})),M(v(e),"removeDroppingPlaceholder",(function(){var t=e.props,n=t.droppingItem,r=t.cols,a=e.state.layout,i=(0,o.compact)(a.filter((function(e){return e.i!==n.i})),(0,o.compactType)(e.props),r);e.setState({layout:i,droppingDOMNode:null,activeDrag:null,droppingPosition:void 0})})),M(v(e),"onDragLeave",(function(t){t.preventDefault(),t.stopPropagation(),e.dragEnterCounter--,0===e.dragEnterCounter&&e.removeDroppingPlaceholder()})),M(v(e),"onDragEnter",(function(t){t.preventDefault(),t.stopPropagation(),e.dragEnterCounter++})),M(v(e),"onDrop",(function(t){t.preventDefault(),t.stopPropagation();var n=e.props.droppingItem,r=e.state.layout,a=r.find((function(e){return e.i===n.i}));e.dragEnterCounter=0,e.removeDroppingPlaceholder(),e.props.onDrop(r,a,t)})),e}return t=k,d=[{key:"getDerivedStateFromProps",value:function(e,t){var n;return t.activeDrag?null:((0,i.default)(e.layout,t.propsLayout)&&e.compactType===t.compactType?(0,o.childrenEqual)(e.children,t.children)||(n=t.layout):n=e.layout,n?{layout:(0,o.synchronizeLayoutWithChildren)(n,e.children,e.cols,(0,o.compactType)(e),e.allowOverlap),compactType:e.compactType,children:e.children,propsLayout:e.layout}:null)}}],(n=[{key:"componentDidMount",value:function(){this.setState({mounted:!0}),this.onLayoutMaybeChanged(this.state.layout,this.props.layout)}},{key:"shouldComponentUpdate",value:function(e,t){return this.props.children!==e.children||!(0,o.fastRGLPropsEqual)(this.props,e,i.default)||this.state.activeDrag!==t.activeDrag||this.state.mounted!==t.mounted||this.state.droppingPosition!==t.droppingPosition}},{key:"componentDidUpdate",value:function(e,t){if(!this.state.activeDrag){var n=this.state.layout,r=t.layout;this.onLayoutMaybeChanged(n,r)}}},{key:"containerHeight",value:function(){if(this.props.autoSize){var e=(0,o.bottom)(this.state.layout),t=this.props.containerPadding?this.props.containerPadding[1]:this.props.margin[1];return e*this.props.rowHeight+(e-1)*this.props.margin[1]+2*t+"px"}}},{key:"onLayoutMaybeChanged",value:function(e,t){t||(t=this.state.layout),(0,i.default)(t,e)||this.props.onLayoutChange(e)}},{key:"placeholder",value:function(){var e=this.state.activeDrag;if(!e)return null;var t=this.props,n=t.width,r=t.cols,i=t.margin,s=t.containerPadding,o=t.rowHeight,l=t.maxRows,d=t.useCSSTransforms,c=t.transformScale;return a.createElement(u.default,{w:e.w,h:e.h,x:e.x,y:e.y,i:e.i,className:"react-grid-placeholder",containerWidth:n,cols:r,margin:i,containerPadding:s||i,maxRows:l,rowHeight:o,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:d,transformScale:c},a.createElement("div",null))}},{key:"processGridItem",value:function(e,t){if(e&&e.key){var n=(0,o.getLayoutItem)(this.state.layout,String(e.key));if(!n)return null;var r=this.props,i=r.width,s=r.cols,l=r.margin,d=r.containerPadding,c=r.rowHeight,h=r.maxRows,m=r.isDraggable,p=r.isResizable,f=r.isBounded,_=r.useCSSTransforms,y=r.transformScale,g=r.draggableCancel,v=r.draggableHandle,b=r.resizeHandles,M=r.resizeHandle,w=this.state,L=w.mounted,k=w.droppingPosition,S="boolean"==typeof n.isDraggable?n.isDraggable:!n.static&&m,D="boolean"==typeof n.isResizable?n.isResizable:!n.static&&p,Y=n.resizeHandles||b,T=S&&f&&!1!==n.isBounded;return a.createElement(u.default,{containerWidth:i,cols:s,margin:l,containerPadding:d||l,maxRows:h,rowHeight:c,cancel:g,handle:v,onDragStop:this.onDragStop,onDragStart:this.onDragStart,onDrag:this.onDrag,onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,isDraggable:S,isResizable:D,isBounded:T,useCSSTransforms:_&&L,usePercentages:!L,transformScale:y,w:n.w,h:n.h,x:n.x,y:n.y,i:n.i,minH:n.minH,minW:n.minW,maxH:n.maxH,maxW:n.maxW,static:n.static,droppingPosition:t?k:void 0,resizeHandles:Y,resizeHandle:M},e)}}},{key:"render",value:function(){var e=this,t=this.props,n=t.className,r=t.style,i=t.isDroppable,l=t.innerRef,u=(0,s.default)(w,n),d=p({height:this.containerHeight()},r);return a.createElement("div",{ref:l,className:u,style:d,onDrop:i?this.onDrop:o.noop,onDragLeave:i?this.onDragLeave:o.noop,onDragEnter:i?this.onDragEnter:o.noop,onDragOver:i?this.onDragOver:o.noop},a.Children.map(this.props.children,(function(t){return e.processGridItem(t)})),i&&this.state.droppingDOMNode&&this.processGridItem(this.state.droppingDOMNode,!0),this.placeholder())}}])&&y(t.prototype,n),d&&y(t,d),Object.defineProperty(t,"prototype",{writable:!1}),k}(a.Component);t.default=k,M(k,"displayName","ReactGridLayout"),M(k,"propTypes",d.default),M(k,"defaultProps",{autoSize:!0,cols:12,className:"",style:{},draggableHandle:"",draggableCancel:"",containerPadding:null,rowHeight:150,maxRows:1/0,layout:[],margin:[10,10],isBounded:!1,isDraggable:!0,isResizable:!0,allowOverlap:!1,isDroppable:!1,useCSSTransforms:!0,transformScale:1,verticalCompact:!0,compactType:"vertical",preventCollision:!1,droppingItem:{i:"__dropping-elem__",h:1,w:1},resizeHandles:["se"],onLayoutChange:o.noop,onDragStart:o.noop,onDrag:o.noop,onDragStop:o.noop,onResizeStart:o.noop,onResize:o.noop,onResizeStop:o.noop,onDrop:o.noop,onDropDragOver:o.noop})},9559:function(e,t,n){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?e>=10?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(n(2689))},9570:function(e,t,n){!function(e){"use strict";e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"su._må._ty._on._to._fr._lau.".split("_"),weekdaysMin:"su_må_ty_on_to_fr_la".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",w:"ei veke",ww:"%d veker",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(2689))},9617:function(e,t,n){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},r=[/^जन/i,/^फ़र|फर/i,/^मार्च/i,/^अप्रै/i,/^मई/i,/^जून/i,/^जुल/i,/^अग/i,/^सितं|सित/i,/^अक्टू/i,/^नव|नवं/i,/^दिसं|दिस/i];e.defineLocale("hi",{months:{format:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),standalone:"जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर".split("_")},monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},monthsParse:r,longMonthsParse:r,shortMonthsParse:[/^जन/i,/^फ़र/i,/^मार्च/i,/^अप्रै/i,/^मई/i,/^जून/i,/^जुल/i,/^अग/i,/^सित/i,/^अक्टू/i,/^नव/i,/^दिस/i],monthsRegex:/^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,monthsShortRegex:/^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,monthsStrictRegex:/^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,monthsShortStrictRegex:/^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i,calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?e>=10?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}})}(n(2689))},9805:function(e,t,n){!function(e){"use strict";e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(2689))},9947:function(e,t,n){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})}(n(2689))},9954:(e,t,n)=>{"use strict";t.__esModule=!0,t.cloneElement=function(e,t){return t.style&&e.props.style&&(t.style=s(s({},e.props.style),t.style)),t.className&&e.props.className&&(t.className=e.props.className+" "+t.className),a.default.cloneElement(e,t)};var r,a=(r=n(5959))&&r.__esModule?r:{default:r};function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings =\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canDragX = canDragX;\nexports.canDragY = canDragY;\nexports.createCoreData = createCoreData;\nexports.createDraggableData = createDraggableData;\nexports.getBoundPosition = getBoundPosition;\nexports.getControlPosition = getControlPosition;\nexports.snapToGrid = snapToGrid;\nvar _shims = require(\"./shims\");\nvar _domFns = require(\"./domFns\");\n/*:: import type Draggable from '../Draggable';*/\n/*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/\n/*:: import type DraggableCore from '../DraggableCore';*/\nfunction getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/{\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {\n bounds\n } = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n if (typeof bounds === 'string') {\n const {\n ownerDocument\n } = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const boundNodeEl /*: HTMLElement*/ = boundNode; // for Flow, can't seem to refine correctly\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),\n top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),\n right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),\n bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);\n if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);\n if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);\n return [x, y];\n}\nfunction snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/{\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\nfunction canDragX(draggable /*: Draggable*/) /*: boolean*/{\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\nfunction canDragY(draggable /*: Draggable*/) /*: boolean*/{\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nfunction getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/{\n const touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);\n}\n\n// Create an data object exposed by 's events\nfunction createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/{\n const isStart = !(0, _shims.isNum)(draggable.lastX);\n const node = findDOMNode(draggable);\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x,\n y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - draggable.lastX,\n deltaY: y - draggable.lastY,\n lastX: draggable.lastX,\n lastY: draggable.lastY,\n x,\n y\n };\n }\n}\n\n// Create an data exposed by 's events\nfunction createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/{\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX / scale,\n y: draggable.state.y + coreData.deltaY / scale,\n deltaX: coreData.deltaX / scale,\n deltaY: coreData.deltaY / scale,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds /*: Bounds*/) /*: Bounds*/{\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\nfunction findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/{\n const node = draggable.findDOMNode();\n if (!node) {\n throw new Error(': Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bottom = bottom;\nexports.childrenEqual = childrenEqual;\nexports.cloneLayout = cloneLayout;\nexports.cloneLayoutItem = cloneLayoutItem;\nexports.collides = collides;\nexports.compact = compact;\nexports.compactItem = compactItem;\nexports.compactType = compactType;\nexports.correctBounds = correctBounds;\nexports.fastPositionEqual = fastPositionEqual;\nexports.fastRGLPropsEqual = void 0;\nexports.getAllCollisions = getAllCollisions;\nexports.getFirstCollision = getFirstCollision;\nexports.getLayoutItem = getLayoutItem;\nexports.getStatics = getStatics;\nexports.modifyLayout = modifyLayout;\nexports.moveElement = moveElement;\nexports.moveElementAwayFromCollision = moveElementAwayFromCollision;\nexports.noop = void 0;\nexports.perc = perc;\nexports.setTopLeft = setTopLeft;\nexports.setTransform = setTransform;\nexports.sortLayoutItems = sortLayoutItems;\nexports.sortLayoutItemsByColRow = sortLayoutItemsByColRow;\nexports.sortLayoutItemsByRowCol = sortLayoutItemsByRowCol;\nexports.synchronizeLayoutWithChildren = synchronizeLayoutWithChildren;\nexports.validateLayout = validateLayout;\nexports.withLayoutItem = withLayoutItem;\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar isProduction = process.env.NODE_ENV === \"production\";\nvar DEBUG = false;\n/**\n * Return the bottom coordinate of the layout.\n *\n * @param {Array} layout Layout array.\n * @return {Number} Bottom coordinate.\n */\n\nfunction bottom(layout\n/*: Layout*/\n)\n/*: number*/\n{\n var max = 0,\n bottomY;\n\n for (var i = 0, len = layout.length; i < len; i++) {\n bottomY = layout[i].y + layout[i].h;\n if (bottomY > max) max = bottomY;\n }\n\n return max;\n}\n\nfunction cloneLayout(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n var newLayout = Array(layout.length);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n newLayout[i] = cloneLayoutItem(layout[i]);\n }\n\n return newLayout;\n} // Modify a layoutItem inside a layout. Returns a new Layout,\n// does not mutate. Carries over all other LayoutItems unmodified.\n\n\nfunction modifyLayout(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: Layout*/\n{\n var newLayout = Array(layout.length);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n if (layoutItem.i === layout[i].i) {\n newLayout[i] = layoutItem;\n } else {\n newLayout[i] = layout[i];\n }\n }\n\n return newLayout;\n} // Function to be called to modify a layout item.\n// Does defensive clones to ensure the layout is not modified.\n\n\nfunction withLayoutItem(layout\n/*: Layout*/\n, itemKey\n/*: string*/\n, cb\n/*: LayoutItem => LayoutItem*/\n)\n/*: [Layout, ?LayoutItem]*/\n{\n var item = getLayoutItem(layout, itemKey);\n if (!item) return [layout, null];\n item = cb(cloneLayoutItem(item)); // defensive clone then modify\n // FIXME could do this faster if we already knew the index\n\n layout = modifyLayout(layout, item);\n return [layout, item];\n} // Fast path to cloning, since this is monomorphic\n\n\nfunction cloneLayoutItem(layoutItem\n/*: LayoutItem*/\n)\n/*: LayoutItem*/\n{\n return {\n w: layoutItem.w,\n h: layoutItem.h,\n x: layoutItem.x,\n y: layoutItem.y,\n i: layoutItem.i,\n minW: layoutItem.minW,\n maxW: layoutItem.maxW,\n minH: layoutItem.minH,\n maxH: layoutItem.maxH,\n moved: Boolean(layoutItem.moved),\n static: Boolean(layoutItem.static),\n // These can be null/undefined\n isDraggable: layoutItem.isDraggable,\n isResizable: layoutItem.isResizable,\n resizeHandles: layoutItem.resizeHandles,\n isBounded: layoutItem.isBounded\n };\n}\n/**\n * Comparing React `children` is a bit difficult. This is a good way to compare them.\n * This will catch differences in keys, order, and length.\n */\n\n\nfunction childrenEqual(a\n/*: ReactChildren*/\n, b\n/*: ReactChildren*/\n)\n/*: boolean*/\n{\n return (0, _lodash.default)(_react.default.Children.map(a, function (c) {\n return c === null || c === void 0 ? void 0 : c.key;\n }), _react.default.Children.map(b, function (c) {\n return c === null || c === void 0 ? void 0 : c.key;\n }));\n}\n/**\n * See `fastRGLPropsEqual.js`.\n * We want this to run as fast as possible - it is called often - and to be\n * resilient to new props that we add. So rather than call lodash.isEqual,\n * which isn't suited to comparing props very well, we use this specialized\n * function in conjunction with preval to generate the fastest possible comparison\n * function, tuned for exactly our props.\n */\n\n/*:: type FastRGLPropsEqual = (Object, Object, Function) => boolean;*/\n\n\nvar fastRGLPropsEqual\n/*: FastRGLPropsEqual*/\n= require(\"./fastRGLPropsEqual\"); // Like the above, but a lot simpler.\n\n\nexports.fastRGLPropsEqual = fastRGLPropsEqual;\n\nfunction fastPositionEqual(a\n/*: Position*/\n, b\n/*: Position*/\n)\n/*: boolean*/\n{\n return a.left === b.left && a.top === b.top && a.width === b.width && a.height === b.height;\n}\n/**\n * Given two layoutitems, check if they collide.\n */\n\n\nfunction collides(l1\n/*: LayoutItem*/\n, l2\n/*: LayoutItem*/\n)\n/*: boolean*/\n{\n if (l1.i === l2.i) return false; // same element\n\n if (l1.x + l1.w <= l2.x) return false; // l1 is left of l2\n\n if (l1.x >= l2.x + l2.w) return false; // l1 is right of l2\n\n if (l1.y + l1.h <= l2.y) return false; // l1 is above l2\n\n if (l1.y >= l2.y + l2.h) return false; // l1 is below l2\n\n return true; // boxes overlap\n}\n/**\n * Given a layout, compact it. This involves going down each y coordinate and removing gaps\n * between items.\n *\n * Does not modify layout items (clones). Creates a new layout array.\n *\n * @param {Array} layout Layout.\n * @param {Boolean} verticalCompact Whether or not to compact the layout\n * vertically.\n * @return {Array} Compacted Layout.\n */\n\n\nfunction compact(layout\n/*: Layout*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n)\n/*: Layout*/\n{\n // Statics go in the compareWith array right away so items flow around them.\n var compareWith = getStatics(layout); // We go through the items by row and column.\n\n var sorted = sortLayoutItems(layout, compactType); // Holding for new items.\n\n var out = Array(layout.length);\n\n for (var i = 0, len = sorted.length; i < len; i++) {\n var l = cloneLayoutItem(sorted[i]); // Don't move static elements\n\n if (!l.static) {\n l = compactItem(compareWith, l, compactType, cols, sorted); // Add to comparison array. We only collide with items before this one.\n // Statics are already in this array.\n\n compareWith.push(l);\n } // Add to output array to make sure they still come out in the right order.\n\n\n out[layout.indexOf(sorted[i])] = l; // Clear moved flag, if it exists.\n\n l.moved = false;\n }\n\n return out;\n}\n\nvar heightWidth = {\n x: \"w\",\n y: \"h\"\n};\n/**\n * Before moving item down, it will check if the movement will cause collisions and move those items down before.\n */\n\nfunction resolveCompactionCollision(layout\n/*: Layout*/\n, item\n/*: LayoutItem*/\n, moveToCoord\n/*: number*/\n, axis\n/*: \"x\" | \"y\"*/\n) {\n var sizeProp = heightWidth[axis];\n item[axis] += 1;\n var itemIndex = layout.map(function (layoutItem) {\n return layoutItem.i;\n }).indexOf(item.i); // Go through each item we collide with.\n\n for (var i = itemIndex + 1; i < layout.length; i++) {\n var otherItem = layout[i]; // Ignore static items\n\n if (otherItem.static) continue; // Optimization: we can break early if we know we're past this el\n // We can do this b/c it's a sorted layout\n\n if (otherItem.y > item.y + item.h) break;\n\n if (collides(item, otherItem)) {\n resolveCompactionCollision(layout, otherItem, moveToCoord + item[sizeProp], axis);\n }\n }\n\n item[axis] = moveToCoord;\n}\n/**\n * Compact an item in the layout.\n *\n * Modifies item.\n *\n */\n\n\nfunction compactItem(compareWith\n/*: Layout*/\n, l\n/*: LayoutItem*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n, fullLayout\n/*: Layout*/\n)\n/*: LayoutItem*/\n{\n var compactV = compactType === \"vertical\";\n var compactH = compactType === \"horizontal\";\n\n if (compactV) {\n // Bottom 'y' possible is the bottom of the layout.\n // This allows you to do nice stuff like specify {y: Infinity}\n // This is here because the layout must be sorted in order to get the correct bottom `y`.\n l.y = Math.min(bottom(compareWith), l.y); // Move the element up as far as it can go without colliding.\n\n while (l.y > 0 && !getFirstCollision(compareWith, l)) {\n l.y--;\n }\n } else if (compactH) {\n // Move the element left as far as it can go without colliding.\n while (l.x > 0 && !getFirstCollision(compareWith, l)) {\n l.x--;\n }\n } // Move it down, and keep moving it down if it's colliding.\n\n\n var collides;\n\n while (collides = getFirstCollision(compareWith, l)) {\n if (compactH) {\n resolveCompactionCollision(fullLayout, l, collides.x + collides.w, \"x\");\n } else {\n resolveCompactionCollision(fullLayout, l, collides.y + collides.h, \"y\");\n } // Since we can't grow without bounds horizontally, if we've overflown, let's move it down and try again.\n\n\n if (compactH && l.x + l.w > cols) {\n l.x = cols - l.w;\n l.y++;\n }\n } // Ensure that there are no negative positions\n\n\n l.y = Math.max(l.y, 0);\n l.x = Math.max(l.x, 0);\n return l;\n}\n/**\n * Given a layout, make sure all elements fit within its bounds.\n *\n * Modifies layout items.\n *\n * @param {Array} layout Layout array.\n * @param {Number} bounds Number of columns.\n */\n\n\nfunction correctBounds(layout\n/*: Layout*/\n, bounds\n/*: { cols: number }*/\n)\n/*: Layout*/\n{\n var collidesWith = getStatics(layout);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n var l = layout[i]; // Overflows right\n\n if (l.x + l.w > bounds.cols) l.x = bounds.cols - l.w; // Overflows left\n\n if (l.x < 0) {\n l.x = 0;\n l.w = bounds.cols;\n }\n\n if (!l.static) collidesWith.push(l);else {\n // If this is static and collides with other statics, we must move it down.\n // We have to do something nicer than just letting them overlap.\n while (getFirstCollision(collidesWith, l)) {\n l.y++;\n }\n }\n }\n\n return layout;\n}\n/**\n * Get a layout item by ID. Used so we can override later on if necessary.\n *\n * @param {Array} layout Layout array.\n * @param {String} id ID\n * @return {LayoutItem} Item at ID.\n */\n\n\nfunction getLayoutItem(layout\n/*: Layout*/\n, id\n/*: string*/\n)\n/*: ?LayoutItem*/\n{\n for (var i = 0, len = layout.length; i < len; i++) {\n if (layout[i].i === id) return layout[i];\n }\n}\n/**\n * Returns the first item this layout collides with.\n * It doesn't appear to matter which order we approach this from, although\n * perhaps that is the wrong thing to do.\n *\n * @param {Object} layoutItem Layout item.\n * @return {Object|undefined} A colliding layout item, or undefined.\n */\n\n\nfunction getFirstCollision(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: ?LayoutItem*/\n{\n for (var i = 0, len = layout.length; i < len; i++) {\n if (collides(layout[i], layoutItem)) return layout[i];\n }\n}\n\nfunction getAllCollisions(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: Array*/\n{\n return layout.filter(function (l) {\n return collides(l, layoutItem);\n });\n}\n/**\n * Get all static elements.\n * @param {Array} layout Array of layout objects.\n * @return {Array} Array of static layout items..\n */\n\n\nfunction getStatics(layout\n/*: Layout*/\n)\n/*: Array*/\n{\n return layout.filter(function (l) {\n return l.static;\n });\n}\n/**\n * Move an element. Responsible for doing cascading movements of other elements.\n *\n * Modifies layout items.\n *\n * @param {Array} layout Full layout to modify.\n * @param {LayoutItem} l element to move.\n * @param {Number} [x] X position in grid units.\n * @param {Number} [y] Y position in grid units.\n */\n\n\nfunction moveElement(layout\n/*: Layout*/\n, l\n/*: LayoutItem*/\n, x\n/*: ?number*/\n, y\n/*: ?number*/\n, isUserAction\n/*: ?boolean*/\n, preventCollision\n/*: ?boolean*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n, allowOverlap\n/*: ?boolean*/\n)\n/*: Layout*/\n{\n // If this is static and not explicitly enabled as draggable,\n // no move is possible, so we can short-circuit this immediately.\n if (l.static && l.isDraggable !== true) return layout; // Short-circuit if nothing to do.\n\n if (l.y === y && l.x === x) return layout;\n log(\"Moving element \".concat(l.i, \" to [\").concat(String(x), \",\").concat(String(y), \"] from [\").concat(l.x, \",\").concat(l.y, \"]\"));\n var oldX = l.x;\n var oldY = l.y; // This is quite a bit faster than extending the object\n\n if (typeof x === \"number\") l.x = x;\n if (typeof y === \"number\") l.y = y;\n l.moved = true; // If this collides with anything, move it.\n // When doing this comparison, we have to sort the items we compare with\n // to ensure, in the case of multiple collisions, that we're getting the\n // nearest collision.\n\n var sorted = sortLayoutItems(layout, compactType);\n var movingUp = compactType === \"vertical\" && typeof y === \"number\" ? oldY >= y : compactType === \"horizontal\" && typeof x === \"number\" ? oldX >= x : false; // $FlowIgnore acceptable modification of read-only array as it was recently cloned\n\n if (movingUp) sorted = sorted.reverse();\n var collisions = getAllCollisions(sorted, l);\n var hasCollisions = collisions.length > 0; // We may have collisions. We can short-circuit if we've turned off collisions or\n // allowed overlap.\n\n if (hasCollisions && allowOverlap) {\n // Easy, we don't need to resolve collisions. But we *did* change the layout,\n // so clone it on the way out.\n return cloneLayout(layout);\n } else if (hasCollisions && preventCollision) {\n // If we are preventing collision but not allowing overlap, we need to\n // revert the position of this element so it goes to where it came from, rather\n // than the user's desired location.\n log(\"Collision prevented on \".concat(l.i, \", reverting.\"));\n l.x = oldX;\n l.y = oldY;\n l.moved = false;\n return layout; // did not change so don't clone\n } // Move each item that collides away from this element.\n\n\n for (var i = 0, len = collisions.length; i < len; i++) {\n var collision = collisions[i];\n log(\"Resolving collision between \".concat(l.i, \" at [\").concat(l.x, \",\").concat(l.y, \"] and \").concat(collision.i, \" at [\").concat(collision.x, \",\").concat(collision.y, \"]\")); // Short circuit so we can't infinite loop\n\n if (collision.moved) continue; // Don't move static items - we have to move *this* element away\n\n if (collision.static) {\n layout = moveElementAwayFromCollision(layout, collision, l, isUserAction, compactType, cols);\n } else {\n layout = moveElementAwayFromCollision(layout, l, collision, isUserAction, compactType, cols);\n }\n }\n\n return layout;\n}\n/**\n * This is where the magic needs to happen - given a collision, move an element away from the collision.\n * We attempt to move it up if there's room, otherwise it goes below.\n *\n * @param {Array} layout Full layout to modify.\n * @param {LayoutItem} collidesWith Layout item we're colliding with.\n * @param {LayoutItem} itemToMove Layout item we're moving.\n */\n\n\nfunction moveElementAwayFromCollision(layout\n/*: Layout*/\n, collidesWith\n/*: LayoutItem*/\n, itemToMove\n/*: LayoutItem*/\n, isUserAction\n/*: ?boolean*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n)\n/*: Layout*/\n{\n var compactH = compactType === \"horizontal\"; // Compact vertically if not set to horizontal\n\n var compactV = compactType !== \"horizontal\";\n var preventCollision = collidesWith.static; // we're already colliding (not for static items)\n // If there is enough space above the collision to put this element, move it there.\n // We only do this on the main collision as this can get funky in cascades and cause\n // unwanted swapping behavior.\n\n if (isUserAction) {\n // Reset isUserAction flag because we're not in the main collision anymore.\n isUserAction = false; // Make a mock item so we don't modify the item here, only modify in moveElement.\n\n var fakeItem\n /*: LayoutItem*/\n = {\n x: compactH ? Math.max(collidesWith.x - itemToMove.w, 0) : itemToMove.x,\n y: compactV ? Math.max(collidesWith.y - itemToMove.h, 0) : itemToMove.y,\n w: itemToMove.w,\n h: itemToMove.h,\n i: \"-1\"\n }; // No collision? If so, we can go up there; otherwise, we'll end up moving down as normal\n\n if (!getFirstCollision(layout, fakeItem)) {\n log(\"Doing reverse collision on \".concat(itemToMove.i, \" up to [\").concat(fakeItem.x, \",\").concat(fakeItem.y, \"].\"));\n return moveElement(layout, itemToMove, compactH ? fakeItem.x : undefined, compactV ? fakeItem.y : undefined, isUserAction, preventCollision, compactType, cols);\n }\n }\n\n return moveElement(layout, itemToMove, compactH ? itemToMove.x + 1 : undefined, compactV ? itemToMove.y + 1 : undefined, isUserAction, preventCollision, compactType, cols);\n}\n/**\n * Helper to convert a number to a percentage string.\n *\n * @param {Number} num Any number\n * @return {String} That number as a percentage.\n */\n\n\nfunction perc(num\n/*: number*/\n)\n/*: string*/\n{\n return num * 100 + \"%\";\n}\n\nfunction setTransform(_ref)\n/*: Object*/\n{\n var top = _ref.top,\n left = _ref.left,\n width = _ref.width,\n height = _ref.height;\n // Replace unitless items with px\n var translate = \"translate(\".concat(left, \"px,\").concat(top, \"px)\");\n return {\n transform: translate,\n WebkitTransform: translate,\n MozTransform: translate,\n msTransform: translate,\n OTransform: translate,\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\"),\n position: \"absolute\"\n };\n}\n\nfunction setTopLeft(_ref2)\n/*: Object*/\n{\n var top = _ref2.top,\n left = _ref2.left,\n width = _ref2.width,\n height = _ref2.height;\n return {\n top: \"\".concat(top, \"px\"),\n left: \"\".concat(left, \"px\"),\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\"),\n position: \"absolute\"\n };\n}\n/**\n * Get layout items sorted from top left to right and down.\n *\n * @return {Array} Array of layout objects.\n * @return {Array} Layout, sorted static items first.\n */\n\n\nfunction sortLayoutItems(layout\n/*: Layout*/\n, compactType\n/*: CompactType*/\n)\n/*: Layout*/\n{\n if (compactType === \"horizontal\") return sortLayoutItemsByColRow(layout);\n if (compactType === \"vertical\") return sortLayoutItemsByRowCol(layout);else return layout;\n}\n/**\n * Sort layout items by row ascending and column ascending.\n *\n * Does not modify Layout.\n */\n\n\nfunction sortLayoutItemsByRowCol(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n // Slice to clone array as sort modifies\n return layout.slice(0).sort(function (a, b) {\n if (a.y > b.y || a.y === b.y && a.x > b.x) {\n return 1;\n } else if (a.y === b.y && a.x === b.x) {\n // Without this, we can get different sort results in IE vs. Chrome/FF\n return 0;\n }\n\n return -1;\n });\n}\n/**\n * Sort layout items by column ascending then row ascending.\n *\n * Does not modify Layout.\n */\n\n\nfunction sortLayoutItemsByColRow(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n return layout.slice(0).sort(function (a, b) {\n if (a.x > b.x || a.x === b.x && a.y > b.y) {\n return 1;\n }\n\n return -1;\n });\n}\n/**\n * Generate a layout using the initialLayout and children as a template.\n * Missing entries will be added, extraneous ones will be truncated.\n *\n * Does not modify initialLayout.\n *\n * @param {Array} initialLayout Layout passed in through props.\n * @param {String} breakpoint Current responsive breakpoint.\n * @param {?String} compact Compaction option.\n * @return {Array} Working layout.\n */\n\n\nfunction synchronizeLayoutWithChildren(initialLayout\n/*: Layout*/\n, children\n/*: ReactChildren*/\n, cols\n/*: number*/\n, compactType\n/*: CompactType*/\n, allowOverlap\n/*: ?boolean*/\n)\n/*: Layout*/\n{\n initialLayout = initialLayout || []; // Generate one layout item per child.\n\n var layout\n /*: LayoutItem[]*/\n = [];\n\n _react.default.Children.forEach(children, function (child\n /*: ReactElement*/\n ) {\n // Child may not exist\n if ((child === null || child === void 0 ? void 0 : child.key) == null) return; // Don't overwrite if it already exists.\n\n var exists = getLayoutItem(initialLayout, String(child.key));\n\n if (exists) {\n layout.push(cloneLayoutItem(exists));\n } else {\n if (!isProduction && child.props._grid) {\n console.warn(\"`_grid` properties on children have been deprecated as of React 15.2. \" + \"Please use `data-grid` or add your properties directly to the `layout`.\");\n }\n\n var g = child.props[\"data-grid\"] || child.props._grid; // Hey, this item has a data-grid property, use it.\n\n if (g) {\n if (!isProduction) {\n validateLayout([g], \"ReactGridLayout.children\");\n } // FIXME clone not really necessary here\n\n\n layout.push(cloneLayoutItem(_objectSpread(_objectSpread({}, g), {}, {\n i: child.key\n })));\n } else {\n // Nothing provided: ensure this is added to the bottom\n // FIXME clone not really necessary here\n layout.push(cloneLayoutItem({\n w: 1,\n h: 1,\n x: 0,\n y: bottom(layout),\n i: String(child.key)\n }));\n }\n }\n }); // Correct the layout.\n\n\n var correctedLayout = correctBounds(layout, {\n cols: cols\n });\n return allowOverlap ? correctedLayout : compact(correctedLayout, compactType, cols);\n}\n/**\n * Validate a layout. Throws errors.\n *\n * @param {Array} layout Array of layout items.\n * @param {String} [contextName] Context name for errors.\n * @throw {Error} Validation error.\n */\n\n\nfunction validateLayout(layout\n/*: Layout*/\n)\n/*: void*/\n{\n var contextName\n /*: string*/\n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Layout\";\n var subProps = [\"x\", \"y\", \"w\", \"h\"];\n if (!Array.isArray(layout)) throw new Error(contextName + \" must be an array!\");\n\n for (var i = 0, len = layout.length; i < len; i++) {\n var item = layout[i];\n\n for (var j = 0; j < subProps.length; j++) {\n if (typeof item[subProps[j]] !== \"number\") {\n throw new Error(\"ReactGridLayout: \" + contextName + \"[\" + i + \"].\" + subProps[j] + \" must be a number!\");\n }\n }\n }\n} // Legacy support for verticalCompact: false\n\n\nfunction compactType(props\n/*: ?{ verticalCompact: boolean, compactType: CompactType }*/\n)\n/*: CompactType*/\n{\n var _ref3 = props || {},\n verticalCompact = _ref3.verticalCompact,\n compactType = _ref3.compactType;\n\n return verticalCompact === false ? null : compactType;\n}\n\nfunction log() {\n var _console;\n\n if (!DEBUG) return; // eslint-disable-next-line no-console\n\n (_console = console).log.apply(_console, arguments);\n}\n\nvar noop = function noop() {};\n\nexports.noop = noop;","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findOrGenerateResponsiveLayout = findOrGenerateResponsiveLayout;\nexports.getBreakpointFromWidth = getBreakpointFromWidth;\nexports.getColsFromBreakpoint = getColsFromBreakpoint;\nexports.sortBreakpoints = sortBreakpoints;\n\nvar _utils = require(\"./utils\");\n\n/**\n * Given a width, find the highest breakpoint that matches is valid for it (width > breakpoint).\n *\n * @param {Object} breakpoints Breakpoints object (e.g. {lg: 1200, md: 960, ...})\n * @param {Number} width Screen width.\n * @return {String} Highest breakpoint that is less than width.\n */\nfunction getBreakpointFromWidth(breakpoints\n/*: Breakpoints*/\n, width\n/*: number*/\n)\n/*: Breakpoint*/\n{\n var sorted = sortBreakpoints(breakpoints);\n var matching = sorted[0];\n\n for (var i = 1, len = sorted.length; i < len; i++) {\n var breakpointName = sorted[i];\n if (width > breakpoints[breakpointName]) matching = breakpointName;\n }\n\n return matching;\n}\n/**\n * Given a breakpoint, get the # of cols set for it.\n * @param {String} breakpoint Breakpoint name.\n * @param {Object} cols Map of breakpoints to cols.\n * @return {Number} Number of cols.\n */\n\n\nfunction getColsFromBreakpoint(breakpoint\n/*: Breakpoint*/\n, cols\n/*: Breakpoints*/\n)\n/*: number*/\n{\n if (!cols[breakpoint]) {\n throw new Error(\"ResponsiveReactGridLayout: `cols` entry for breakpoint \" + breakpoint + \" is missing!\");\n }\n\n return cols[breakpoint];\n}\n/**\n * Given existing layouts and a new breakpoint, find or generate a new layout.\n *\n * This finds the layout above the new one and generates from it, if it exists.\n *\n * @param {Object} layouts Existing layouts.\n * @param {Array} breakpoints All breakpoints.\n * @param {String} breakpoint New breakpoint.\n * @param {String} breakpoint Last breakpoint (for fallback).\n * @param {Number} cols Column count at new breakpoint.\n * @param {Boolean} verticalCompact Whether or not to compact the layout\n * vertically.\n * @return {Array} New layout.\n */\n\n\nfunction findOrGenerateResponsiveLayout(layouts\n/*: ResponsiveLayout*/\n, breakpoints\n/*: Breakpoints*/\n, breakpoint\n/*: Breakpoint*/\n, lastBreakpoint\n/*: Breakpoint*/\n, cols\n/*: number*/\n, compactType\n/*: CompactType*/\n)\n/*: Layout*/\n{\n // If it already exists, just return it.\n if (layouts[breakpoint]) return (0, _utils.cloneLayout)(layouts[breakpoint]); // Find or generate the next layout\n\n var layout = layouts[lastBreakpoint];\n var breakpointsSorted = sortBreakpoints(breakpoints);\n var breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\n\n for (var i = 0, len = breakpointsAbove.length; i < len; i++) {\n var b = breakpointsAbove[i];\n\n if (layouts[b]) {\n layout = layouts[b];\n break;\n }\n }\n\n layout = (0, _utils.cloneLayout)(layout || []); // clone layout so we don't modify existing items\n\n return (0, _utils.compact)((0, _utils.correctBounds)(layout, {\n cols: cols\n }), compactType, cols);\n}\n/**\n * Given breakpoints, return an array of breakpoints sorted by width. This is usually\n * e.g. ['xxs', 'xs', 'sm', ...]\n *\n * @param {Object} breakpoints Key/value pair of breakpoint names to widths.\n * @return {Array} Sorted breakpoints.\n */\n\n\nfunction sortBreakpoints(breakpoints\n/*: Breakpoints*/\n)\n/*: Array*/\n{\n var keys\n /*: Array*/\n = Object.keys(breakpoints);\n return keys.sort(function (a, b) {\n return breakpoints[a] - breakpoints[b];\n });\n}","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^(maart|mrt\\.?)$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calcGridColWidth = calcGridColWidth;\nexports.calcGridItemPosition = calcGridItemPosition;\nexports.calcGridItemWHPx = calcGridItemWHPx;\nexports.calcWH = calcWH;\nexports.calcXY = calcXY;\nexports.clamp = clamp;\n\n/*:: import type { Position } from \"./utils\";*/\n\n/*:: export type PositionParams = {\n margin: [number, number],\n containerPadding: [number, number],\n containerWidth: number,\n cols: number,\n rowHeight: number,\n maxRows: number\n};*/\n// Helper for generating column width\nfunction calcGridColWidth(positionParams\n/*: PositionParams*/\n)\n/*: number*/\n{\n var margin = positionParams.margin,\n containerPadding = positionParams.containerPadding,\n containerWidth = positionParams.containerWidth,\n cols = positionParams.cols;\n return (containerWidth - margin[0] * (cols - 1) - containerPadding[0] * 2) / cols;\n} // This can either be called:\n// calcGridItemWHPx(w, colWidth, margin[0])\n// or\n// calcGridItemWHPx(h, rowHeight, margin[1])\n\n\nfunction calcGridItemWHPx(gridUnits\n/*: number*/\n, colOrRowSize\n/*: number*/\n, marginPx\n/*: number*/\n)\n/*: number*/\n{\n // 0 * Infinity === NaN, which causes problems with resize contraints\n if (!Number.isFinite(gridUnits)) return gridUnits;\n return Math.round(colOrRowSize * gridUnits + Math.max(0, gridUnits - 1) * marginPx);\n}\n/**\n * Return position on the page given an x, y, w, h.\n * left, top, width, height are all in pixels.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calculations.\n * @param {Number} x X coordinate in grid units.\n * @param {Number} y Y coordinate in grid units.\n * @param {Number} w W coordinate in grid units.\n * @param {Number} h H coordinate in grid units.\n * @return {Position} Object containing coords.\n */\n\n\nfunction calcGridItemPosition(positionParams\n/*: PositionParams*/\n, x\n/*: number*/\n, y\n/*: number*/\n, w\n/*: number*/\n, h\n/*: number*/\n, state\n/*: ?Object*/\n)\n/*: Position*/\n{\n var margin = positionParams.margin,\n containerPadding = positionParams.containerPadding,\n rowHeight = positionParams.rowHeight;\n var colWidth = calcGridColWidth(positionParams);\n var out = {}; // If resizing, use the exact width and height as returned from resizing callbacks.\n\n if (state && state.resizing) {\n out.width = Math.round(state.resizing.width);\n out.height = Math.round(state.resizing.height);\n } // Otherwise, calculate from grid units.\n else {\n out.width = calcGridItemWHPx(w, colWidth, margin[0]);\n out.height = calcGridItemWHPx(h, rowHeight, margin[1]);\n } // If dragging, use the exact width and height as returned from dragging callbacks.\n\n\n if (state && state.dragging) {\n out.top = Math.round(state.dragging.top);\n out.left = Math.round(state.dragging.left);\n } // Otherwise, calculate from grid units.\n else {\n out.top = Math.round((rowHeight + margin[1]) * y + containerPadding[1]);\n out.left = Math.round((colWidth + margin[0]) * x + containerPadding[0]);\n }\n\n return out;\n}\n/**\n * Translate x and y coordinates from pixels to grid units.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calculations.\n * @param {Number} top Top position (relative to parent) in pixels.\n * @param {Number} left Left position (relative to parent) in pixels.\n * @param {Number} w W coordinate in grid units.\n * @param {Number} h H coordinate in grid units.\n * @return {Object} x and y in grid units.\n */\n\n\nfunction calcXY(positionParams\n/*: PositionParams*/\n, top\n/*: number*/\n, left\n/*: number*/\n, w\n/*: number*/\n, h\n/*: number*/\n)\n/*: { x: number, y: number }*/\n{\n var margin = positionParams.margin,\n cols = positionParams.cols,\n rowHeight = positionParams.rowHeight,\n maxRows = positionParams.maxRows;\n var colWidth = calcGridColWidth(positionParams); // left = colWidth * x + margin * (x + 1)\n // l = cx + m(x+1)\n // l = cx + mx + m\n // l - m = cx + mx\n // l - m = x(c + m)\n // (l - m) / (c + m) = x\n // x = (left - margin) / (coldWidth + margin)\n\n var x = Math.round((left - margin[0]) / (colWidth + margin[0]));\n var y = Math.round((top - margin[1]) / (rowHeight + margin[1])); // Capping\n\n x = clamp(x, 0, cols - w);\n y = clamp(y, 0, maxRows - h);\n return {\n x: x,\n y: y\n };\n}\n/**\n * Given a height and width in pixel values, calculate grid units.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calcluations.\n * @param {Number} height Height in pixels.\n * @param {Number} width Width in pixels.\n * @param {Number} x X coordinate in grid units.\n * @param {Number} y Y coordinate in grid units.\n * @return {Object} w, h as grid units.\n */\n\n\nfunction calcWH(positionParams\n/*: PositionParams*/\n, width\n/*: number*/\n, height\n/*: number*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: { w: number, h: number }*/\n{\n var margin = positionParams.margin,\n maxRows = positionParams.maxRows,\n cols = positionParams.cols,\n rowHeight = positionParams.rowHeight;\n var colWidth = calcGridColWidth(positionParams); // width = colWidth * w - (margin * (w - 1))\n // ...\n // w = (width + margin) / (colWidth + margin)\n\n var w = Math.round((width + margin[0]) / (colWidth + margin[0]));\n var h = Math.round((height + margin[1]) / (rowHeight + margin[1])); // Capping\n\n w = clamp(w, 0, cols - x);\n h = clamp(h, 0, maxRows - y);\n return {\n w: w,\n h: h\n };\n} // Similar to _.clamp\n\n\nfunction clamp(num\n/*: number*/\n, lowerBound\n/*: number*/\n, upperBound\n/*: number*/\n)\n/*: number*/\n{\n return Math.max(Math.min(num, upperBound), lowerBound);\n}","'use strict';\nmodule.exports = function() {\n throw new Error(\"Don't instantiate Resizable directly! Use require('react-resizable').Resizable\");\n};\n\nmodule.exports.Resizable = require('./build/Resizable').default;\nmodule.exports.ResizableBox = require('./build/ResizableBox').default;\n","export var noop = function () { };\nexport function on(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.addEventListener) {\n obj.addEventListener.apply(obj, args);\n }\n}\nexport function off(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.removeEventListener) {\n obj.removeEventListener.apply(obj, args);\n }\n}\nexport var isBrowser = typeof window !== 'undefined';\nexport var isNavigator = typeof navigator !== 'undefined';\n","import { useEffect, useState } from 'react';\nimport { isBrowser, off, on } from './misc/util';\nvar patchHistoryMethod = function (method) {\n var history = window.history;\n var original = history[method];\n history[method] = function (state) {\n var result = original.apply(this, arguments);\n var event = new Event(method.toLowerCase());\n event.state = state;\n window.dispatchEvent(event);\n return result;\n };\n};\nif (isBrowser) {\n patchHistoryMethod('pushState');\n patchHistoryMethod('replaceState');\n}\nvar useLocationServer = function () { return ({\n trigger: 'load',\n length: 1,\n}); };\nvar buildState = function (trigger) {\n var _a = window.history, state = _a.state, length = _a.length;\n var _b = window.location, hash = _b.hash, host = _b.host, hostname = _b.hostname, href = _b.href, origin = _b.origin, pathname = _b.pathname, port = _b.port, protocol = _b.protocol, search = _b.search;\n return {\n trigger: trigger,\n state: state,\n length: length,\n hash: hash,\n host: host,\n hostname: hostname,\n href: href,\n origin: origin,\n pathname: pathname,\n port: port,\n protocol: protocol,\n search: search,\n };\n};\nvar useLocationBrowser = function () {\n var _a = useState(buildState('load')), state = _a[0], setState = _a[1];\n useEffect(function () {\n var onPopstate = function () { return setState(buildState('popstate')); };\n var onPushstate = function () { return setState(buildState('pushstate')); };\n var onReplacestate = function () { return setState(buildState('replacestate')); };\n on(window, 'popstate', onPopstate);\n on(window, 'pushstate', onPushstate);\n on(window, 'replacestate', onReplacestate);\n return function () {\n off(window, 'popstate', onPopstate);\n off(window, 'pushstate', onPushstate);\n off(window, 'replacestate', onReplacestate);\n };\n }, []);\n return state;\n};\nvar hasEventConstructor = typeof Event === 'function';\nexport default isBrowser && hasEventConstructor ? useLocationBrowser : useLocationServer;\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\nvar _domFns = require(\"./utils/domFns\");\nvar _positionFns = require(\"./utils/positionFns\");\nvar _shims = require(\"./utils/shims\");\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/\n/*:: import type {Element as ReactElement} from 'react';*/\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n/*:: export type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};*/\n/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/\n/*:: export type ControlPosition = {x: number, y: number};*/\n/*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/\n/*:: export type DraggableCoreDefaultProps = {\n allowAnyClick: boolean,\n disabled: boolean,\n enableUserSelectHack: boolean,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n scale: number,\n};*/\n/*:: export type DraggableCoreProps = {\n ...DraggableCoreDefaultProps,\n cancel: string,\n children: ReactElement,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n nodeRef?: ?React.ElementRef,\n};*/\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nclass DraggableCore extends React.Component /*:: */{\n constructor() {\n super(...arguments);\n _defineProperty(this, \"dragging\", false);\n // Used while dragging to determine deltas.\n _defineProperty(this, \"lastX\", NaN);\n _defineProperty(this, \"lastY\", NaN);\n _defineProperty(this, \"touchIdentifier\", null);\n _defineProperty(this, \"mounted\", false);\n _defineProperty(this, \"handleDragStart\", e => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = this.findDOMNode();\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n const {\n ownerDocument\n } = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, this.props.handle, thisNode) || this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, this.props.cancel, thisNode)) {\n return;\n }\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n // Important that this is after handle/cancel.\n if (e.type === 'touchstart') e.preventDefault();\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = (0, _domFns.getTouchIdentifier)(e);\n this.touchIdentifier = touchIdentifier;\n\n // Get the current drag point from the event. This is used as the offset.\n const position = (0, _positionFns.getControlPosition)(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {\n x,\n y\n } = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n (0, _log.default)('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false || this.mounted === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.dragging = true;\n this.lastX = x;\n this.lastY = y;\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, this.handleDrag);\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, this.handleDragStop);\n });\n _defineProperty(this, \"handleDrag\", e => {\n // Get the current drag point from the event. This is used as the offset.\n const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);\n if (position == null) return;\n let {\n x,\n y\n } = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.lastX,\n deltaY = y - this.lastY;\n [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.lastX + deltaX, y = this.lastY + deltaY;\n }\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false || this.mounted === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n this.lastX = x;\n this.lastY = y;\n });\n _defineProperty(this, \"handleDragStop\", e => {\n if (!this.dragging) return;\n const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);\n if (position == null) return;\n let {\n x,\n y\n } = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.lastX || 0;\n let deltaY = y - this.lastY || 0;\n [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);\n x = this.lastX + deltaX, y = this.lastY + deltaY;\n }\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n\n // Call event handler\n const shouldContinue = this.props.onStop(e, coreEvent);\n if (shouldContinue === false || this.mounted === false) return false;\n const thisNode = this.findDOMNode();\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);\n }\n (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.dragging = false;\n this.lastX = NaN;\n this.lastY = NaN;\n if (thisNode) {\n // Remove event handlers\n (0, _log.default)('DraggableCore: Removing handlers');\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n });\n _defineProperty(this, \"onMouseDown\", e => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n });\n _defineProperty(this, \"onMouseUp\", e => {\n dragEventFor = eventsFor.mouse;\n return this.handleDragStop(e);\n });\n // Same as onMouseDown (start drag), but now consider this a touch device.\n _defineProperty(this, \"onTouchStart\", e => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return this.handleDragStart(e);\n });\n _defineProperty(this, \"onTouchEnd\", e => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return this.handleDragStop(e);\n });\n }\n componentDidMount() {\n this.mounted = true;\n // Touch handlers must be added with {passive: false} to be cancelable.\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n const thisNode = this.findDOMNode();\n if (thisNode) {\n (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n }\n }\n componentWillUnmount() {\n this.mounted = false;\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = this.findDOMNode();\n if (thisNode) {\n const {\n ownerDocument\n } = thisNode;\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);\n }\n }\n\n // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n findDOMNode() /*: ?HTMLElement*/{\n var _this$props, _this$props2;\n return (_this$props = this.props) !== null && _this$props !== void 0 && _this$props.nodeRef ? (_this$props2 = this.props) === null || _this$props2 === void 0 || (_this$props2 = _this$props2.nodeRef) === null || _this$props2 === void 0 ? void 0 : _this$props2.current : _reactDom.default.findDOMNode(this);\n }\n render() /*: React.Element*/{\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n // onTouchStart is added on `componentDidMount` so they can be added with\n // {passive: false}, which allows it to cancel. See\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n onTouchEnd: this.onTouchEnd\n });\n }\n}\nexports.default = DraggableCore;\n_defineProperty(DraggableCore, \"displayName\", 'DraggableCore');\n_defineProperty(DraggableCore, \"propTypes\", {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: _propTypes.default.bool,\n children: _propTypes.default.node.isRequired,\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: _propTypes.default.bool,\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: _propTypes.default.bool,\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function (props /*: DraggableCoreProps*/, propName /*: $Keys*/) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: _propTypes.default.string,\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: _propTypes.default.string,\n /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.\n * Unfortunately, in order for to work properly, we need raw access\n * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`\n * as in this example:\n *\n * function MyComponent() {\n * const nodeRef = React.useRef(null);\n * return (\n * \n *
Example Target
\n *
\n * );\n * }\n *\n * This can be used for arbitrarily nested components, so long as the ref ends up\n * pointing to the actual child DOM node and not a custom component.\n */\n nodeRef: _propTypes.default.object,\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: _propTypes.default.func,\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: _propTypes.default.func,\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: _propTypes.default.func,\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: _propTypes.default.func,\n /**\n * `scale`, if set, applies scaling while dragging an element\n */\n scale: _propTypes.default.number,\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n_defineProperty(DraggableCore, \"defaultProps\", {\n allowAnyClick: false,\n // by default only accept left click\n disabled: false,\n enableUserSelectHack: true,\n onStart: function () {},\n onDrag: function () {},\n onStop: function () {},\n onMouseDown: function () {},\n scale: 1\n});","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays:\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = {\n standalone:\n 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n isFormat: /DD?[o.]?(\\[[^\\[\\]]*\\]|\\s)+MMMM/,\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nexport var styleToObject = function (input) {\n var attributes = input.split(/ ?; ?/);\n return attributes.reduce(function (acc, d) {\n var _a = __read(d.split(/ ?: ?/), 2), key = _a[0], value = _a[1];\n if (key && value) {\n acc[key.replace(/-(\\w)/g, function (_$0, $1) { return $1.toUpperCase(); })] = Number.isNaN(Number(value))\n ? value\n : Number(value);\n }\n return acc;\n }, {});\n};\n/* istanbul ignore next */\nexport function randomString(length) {\n if (length === void 0) { length = 6; }\n var characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n var result = '';\n for (var index = length; index > 0; --index) {\n result += characters[Math.round(Math.random() * (characters.length - 1))];\n }\n return result;\n}\nexport var noTextChildNodes = [\n 'br',\n 'col',\n 'colgroup',\n 'dl',\n 'hr',\n 'iframe',\n 'img',\n 'input',\n 'link',\n 'menuitem',\n 'meta',\n 'ol',\n 'param',\n 'select',\n 'table',\n 'tbody',\n 'tfoot',\n 'thead',\n 'tr',\n 'ul',\n 'wbr',\n];\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n// Taken from https://raw.githubusercontent.com/facebook/react/baff5cc2f69d30589a5dc65b089e47765437294b/packages/react-dom/src/shared/possibleStandardNames.js\n// tslint:disable:object-literal-sort-keys\nexport var possibleStandardNames = {\n // HTML\n 'accept-charset': 'acceptCharset',\n acceptcharset: 'acceptCharset',\n accesskey: 'accessKey',\n allowfullscreen: 'allowFullScreen',\n autocapitalize: 'autoCapitalize',\n autocomplete: 'autoComplete',\n autocorrect: 'autoCorrect',\n autofocus: 'autoFocus',\n autoplay: 'autoPlay',\n autosave: 'autoSave',\n cellpadding: 'cellPadding',\n cellspacing: 'cellSpacing',\n charset: 'charSet',\n class: 'className',\n classid: 'classID',\n classname: 'className',\n colspan: 'colSpan',\n contenteditable: 'contentEditable',\n contextmenu: 'contextMenu',\n controlslist: 'controlsList',\n crossorigin: 'crossOrigin',\n dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',\n datetime: 'dateTime',\n defaultchecked: 'defaultChecked',\n defaultvalue: 'defaultValue',\n enctype: 'encType',\n for: 'htmlFor',\n formmethod: 'formMethod',\n formaction: 'formAction',\n formenctype: 'formEncType',\n formnovalidate: 'formNoValidate',\n formtarget: 'formTarget',\n frameborder: 'frameBorder',\n hreflang: 'hrefLang',\n htmlfor: 'htmlFor',\n httpequiv: 'httpEquiv',\n 'http-equiv': 'httpEquiv',\n icon: 'icon',\n innerhtml: 'innerHTML',\n inputmode: 'inputMode',\n itemid: 'itemID',\n itemprop: 'itemProp',\n itemref: 'itemRef',\n itemscope: 'itemScope',\n itemtype: 'itemType',\n keyparams: 'keyParams',\n keytype: 'keyType',\n marginwidth: 'marginWidth',\n marginheight: 'marginHeight',\n maxlength: 'maxLength',\n mediagroup: 'mediaGroup',\n minlength: 'minLength',\n nomodule: 'noModule',\n novalidate: 'noValidate',\n playsinline: 'playsInline',\n radiogroup: 'radioGroup',\n readonly: 'readOnly',\n referrerpolicy: 'referrerPolicy',\n rowspan: 'rowSpan',\n spellcheck: 'spellCheck',\n srcdoc: 'srcDoc',\n srclang: 'srcLang',\n srcset: 'srcSet',\n tabindex: 'tabIndex',\n typemustmatch: 'typeMustMatch',\n usemap: 'useMap',\n // SVG\n accentheight: 'accentHeight',\n 'accent-height': 'accentHeight',\n alignmentbaseline: 'alignmentBaseline',\n 'alignment-baseline': 'alignmentBaseline',\n allowreorder: 'allowReorder',\n arabicform: 'arabicForm',\n 'arabic-form': 'arabicForm',\n attributename: 'attributeName',\n attributetype: 'attributeType',\n autoreverse: 'autoReverse',\n basefrequency: 'baseFrequency',\n baselineshift: 'baselineShift',\n 'baseline-shift': 'baselineShift',\n baseprofile: 'baseProfile',\n calcmode: 'calcMode',\n capheight: 'capHeight',\n 'cap-height': 'capHeight',\n clippath: 'clipPath',\n 'clip-path': 'clipPath',\n clippathunits: 'clipPathUnits',\n cliprule: 'clipRule',\n 'clip-rule': 'clipRule',\n colorinterpolation: 'colorInterpolation',\n 'color-interpolation': 'colorInterpolation',\n colorinterpolationfilters: 'colorInterpolationFilters',\n 'color-interpolation-filters': 'colorInterpolationFilters',\n colorprofile: 'colorProfile',\n 'color-profile': 'colorProfile',\n colorrendering: 'colorRendering',\n 'color-rendering': 'colorRendering',\n contentscripttype: 'contentScriptType',\n contentstyletype: 'contentStyleType',\n diffuseconstant: 'diffuseConstant',\n dominantbaseline: 'dominantBaseline',\n 'dominant-baseline': 'dominantBaseline',\n edgemode: 'edgeMode',\n enablebackground: 'enableBackground',\n 'enable-background': 'enableBackground',\n externalresourcesrequired: 'externalResourcesRequired',\n fillopacity: 'fillOpacity',\n 'fill-opacity': 'fillOpacity',\n fillrule: 'fillRule',\n 'fill-rule': 'fillRule',\n filterres: 'filterRes',\n filterunits: 'filterUnits',\n floodopacity: 'floodOpacity',\n 'flood-opacity': 'floodOpacity',\n floodcolor: 'floodColor',\n 'flood-color': 'floodColor',\n fontfamily: 'fontFamily',\n 'font-family': 'fontFamily',\n fontsize: 'fontSize',\n 'font-size': 'fontSize',\n fontsizeadjust: 'fontSizeAdjust',\n 'font-size-adjust': 'fontSizeAdjust',\n fontstretch: 'fontStretch',\n 'font-stretch': 'fontStretch',\n fontstyle: 'fontStyle',\n 'font-style': 'fontStyle',\n fontvariant: 'fontVariant',\n 'font-variant': 'fontVariant',\n fontweight: 'fontWeight',\n 'font-weight': 'fontWeight',\n glyphname: 'glyphName',\n 'glyph-name': 'glyphName',\n glyphorientationhorizontal: 'glyphOrientationHorizontal',\n 'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n glyphorientationvertical: 'glyphOrientationVertical',\n 'glyph-orientation-vertical': 'glyphOrientationVertical',\n glyphref: 'glyphRef',\n gradienttransform: 'gradientTransform',\n gradientunits: 'gradientUnits',\n horizadvx: 'horizAdvX',\n 'horiz-adv-x': 'horizAdvX',\n horizoriginx: 'horizOriginX',\n 'horiz-origin-x': 'horizOriginX',\n imagerendering: 'imageRendering',\n 'image-rendering': 'imageRendering',\n kernelmatrix: 'kernelMatrix',\n kernelunitlength: 'kernelUnitLength',\n keypoints: 'keyPoints',\n keysplines: 'keySplines',\n keytimes: 'keyTimes',\n lengthadjust: 'lengthAdjust',\n letterspacing: 'letterSpacing',\n 'letter-spacing': 'letterSpacing',\n lightingcolor: 'lightingColor',\n 'lighting-color': 'lightingColor',\n limitingconeangle: 'limitingConeAngle',\n markerend: 'markerEnd',\n 'marker-end': 'markerEnd',\n markerheight: 'markerHeight',\n markermid: 'markerMid',\n 'marker-mid': 'markerMid',\n markerstart: 'markerStart',\n 'marker-start': 'markerStart',\n markerunits: 'markerUnits',\n markerwidth: 'markerWidth',\n maskcontentunits: 'maskContentUnits',\n maskunits: 'maskUnits',\n numoctaves: 'numOctaves',\n overlineposition: 'overlinePosition',\n 'overline-position': 'overlinePosition',\n overlinethickness: 'overlineThickness',\n 'overline-thickness': 'overlineThickness',\n paintorder: 'paintOrder',\n 'paint-order': 'paintOrder',\n 'panose-1': 'panose1',\n pathlength: 'pathLength',\n patterncontentunits: 'patternContentUnits',\n patterntransform: 'patternTransform',\n patternunits: 'patternUnits',\n pointerevents: 'pointerEvents',\n 'pointer-events': 'pointerEvents',\n pointsatx: 'pointsAtX',\n pointsaty: 'pointsAtY',\n pointsatz: 'pointsAtZ',\n preservealpha: 'preserveAlpha',\n preserveaspectratio: 'preserveAspectRatio',\n primitiveunits: 'primitiveUnits',\n refx: 'refX',\n refy: 'refY',\n renderingintent: 'renderingIntent',\n 'rendering-intent': 'renderingIntent',\n repeatcount: 'repeatCount',\n repeatdur: 'repeatDur',\n requiredextensions: 'requiredExtensions',\n requiredfeatures: 'requiredFeatures',\n shaperendering: 'shapeRendering',\n 'shape-rendering': 'shapeRendering',\n specularconstant: 'specularConstant',\n specularexponent: 'specularExponent',\n spreadmethod: 'spreadMethod',\n startoffset: 'startOffset',\n stddeviation: 'stdDeviation',\n stitchtiles: 'stitchTiles',\n stopcolor: 'stopColor',\n 'stop-color': 'stopColor',\n stopopacity: 'stopOpacity',\n 'stop-opacity': 'stopOpacity',\n strikethroughposition: 'strikethroughPosition',\n 'strikethrough-position': 'strikethroughPosition',\n strikethroughthickness: 'strikethroughThickness',\n 'strikethrough-thickness': 'strikethroughThickness',\n strokedasharray: 'strokeDasharray',\n 'stroke-dasharray': 'strokeDasharray',\n strokedashoffset: 'strokeDashoffset',\n 'stroke-dashoffset': 'strokeDashoffset',\n strokelinecap: 'strokeLinecap',\n 'stroke-linecap': 'strokeLinecap',\n strokelinejoin: 'strokeLinejoin',\n 'stroke-linejoin': 'strokeLinejoin',\n strokemiterlimit: 'strokeMiterlimit',\n 'stroke-miterlimit': 'strokeMiterlimit',\n strokewidth: 'strokeWidth',\n 'stroke-width': 'strokeWidth',\n strokeopacity: 'strokeOpacity',\n 'stroke-opacity': 'strokeOpacity',\n suppresscontenteditablewarning: 'suppressContentEditableWarning',\n suppresshydrationwarning: 'suppressHydrationWarning',\n surfacescale: 'surfaceScale',\n systemlanguage: 'systemLanguage',\n tablevalues: 'tableValues',\n targetx: 'targetX',\n targety: 'targetY',\n textanchor: 'textAnchor',\n 'text-anchor': 'textAnchor',\n textdecoration: 'textDecoration',\n 'text-decoration': 'textDecoration',\n textlength: 'textLength',\n textrendering: 'textRendering',\n 'text-rendering': 'textRendering',\n underlineposition: 'underlinePosition',\n 'underline-position': 'underlinePosition',\n underlinethickness: 'underlineThickness',\n 'underline-thickness': 'underlineThickness',\n unicodebidi: 'unicodeBidi',\n 'unicode-bidi': 'unicodeBidi',\n unicoderange: 'unicodeRange',\n 'unicode-range': 'unicodeRange',\n unitsperem: 'unitsPerEm',\n 'units-per-em': 'unitsPerEm',\n unselectable: 'unselectable',\n valphabetic: 'vAlphabetic',\n 'v-alphabetic': 'vAlphabetic',\n vectoreffect: 'vectorEffect',\n 'vector-effect': 'vectorEffect',\n vertadvy: 'vertAdvY',\n 'vert-adv-y': 'vertAdvY',\n vertoriginx: 'vertOriginX',\n 'vert-origin-x': 'vertOriginX',\n vertoriginy: 'vertOriginY',\n 'vert-origin-y': 'vertOriginY',\n vhanging: 'vHanging',\n 'v-hanging': 'vHanging',\n videographic: 'vIdeographic',\n 'v-ideographic': 'vIdeographic',\n viewbox: 'viewBox',\n viewtarget: 'viewTarget',\n vmathematical: 'vMathematical',\n 'v-mathematical': 'vMathematical',\n wordspacing: 'wordSpacing',\n 'word-spacing': 'wordSpacing',\n writingmode: 'writingMode',\n 'writing-mode': 'writingMode',\n xchannelselector: 'xChannelSelector',\n xheight: 'xHeight',\n 'x-height': 'xHeight',\n xlinkactuate: 'xlinkActuate',\n 'xlink:actuate': 'xlinkActuate',\n xlinkarcrole: 'xlinkArcrole',\n 'xlink:arcrole': 'xlinkArcrole',\n xlinkhref: 'xlinkHref',\n 'xlink:href': 'xlinkHref',\n xlinkrole: 'xlinkRole',\n 'xlink:role': 'xlinkRole',\n xlinkshow: 'xlinkShow',\n 'xlink:show': 'xlinkShow',\n xlinktitle: 'xlinkTitle',\n 'xlink:title': 'xlinkTitle',\n xlinktype: 'xlinkType',\n 'xlink:type': 'xlinkType',\n xmlbase: 'xmlBase',\n 'xml:base': 'xmlBase',\n xmllang: 'xmlLang',\n 'xml:lang': 'xmlLang',\n 'xml:space': 'xmlSpace',\n xmlnsxlink: 'xmlnsXlink',\n 'xmlns:xlink': 'xmlnsXlink',\n xmlspace: 'xmlSpace',\n ychannelselector: 'yChannelSelector',\n zoomandpan: 'zoomAndPan',\n // event handlers\n onblur: 'onBlur',\n onchange: 'onChange',\n onclick: 'onClick',\n oncontextmenu: 'onContextMenu',\n ondoubleclick: 'onDoubleClick',\n ondrag: 'onDrag',\n ondragend: 'onDragEnd',\n ondragenter: 'onDragEnter',\n ondragexit: 'onDragExit',\n ondragleave: 'onDragLeave',\n ondragover: 'onDragOver',\n ondragstart: 'onDragStart',\n ondrop: 'onDrop',\n onerror: 'onError',\n onfocus: 'onFocus',\n oninput: 'onInput',\n oninvalid: 'onInvalid',\n onkeydown: 'onKeyDown',\n onkeypress: 'onKeyPress',\n onkeyup: 'onKeyUp',\n onload: 'onLoad',\n onmousedown: 'onMouseDown',\n onmouseenter: 'onMouseEnter',\n onmouseleave: 'onMouseLeave',\n onmousemove: 'onMouseMove',\n onmouseout: 'onMouseOut',\n onmouseover: 'onMouseOver',\n onmouseup: 'onMouseUp',\n onscroll: 'onScroll',\n onsubmit: 'onSubmit',\n ontouchcancel: 'onTouchCancel',\n ontouchend: 'onTouchEnd',\n ontouchmove: 'onTouchMove',\n ontouchstart: 'onTouchStart',\n onwheel: 'onWheel',\n};\n//# sourceMappingURL=helpers.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport * as React from 'react';\nimport { noTextChildNodes, possibleStandardNames, randomString, styleToObject } from './helpers';\nfunction parseAttributes(node, reactKey) {\n var attributes = {\n key: reactKey,\n };\n /* istanbul ignore else */\n if (node instanceof Element) {\n var nodeClassNames = node.getAttribute('class');\n if (nodeClassNames) {\n attributes.className = nodeClassNames;\n }\n __spreadArray([], __read(node.attributes), false).forEach(function (d) {\n switch (d.name) {\n // this is manually handled above, so break;\n case 'class':\n break;\n case 'style':\n attributes[d.name] = styleToObject(d.value);\n break;\n case 'allowfullscreen':\n case 'allowpaymentrequest':\n case 'async':\n case 'autofocus':\n case 'autoplay':\n case 'checked':\n case 'controls':\n case 'default':\n case 'defer':\n case 'disabled':\n case 'formnovalidate':\n case 'hidden':\n case 'ismap':\n case 'itemscope':\n case 'loop':\n case 'multiple':\n case 'muted':\n case 'nomodule':\n case 'novalidate':\n case 'open':\n case 'readonly':\n case 'required':\n case 'reversed':\n case 'selected':\n case 'typemustmatch':\n attributes[possibleStandardNames[d.name] || d.name] = true;\n break;\n default:\n attributes[possibleStandardNames[d.name] || d.name] = d.value;\n }\n });\n }\n return attributes;\n}\nfunction parseChildren(childNodeList, level, options) {\n var children = __spreadArray([], __read(childNodeList), false).map(function (node, index) {\n return convertFromNode(node, __assign(__assign({}, options), { index: index, level: level + 1 }));\n })\n .filter(Boolean);\n if (!children.length) {\n return null;\n }\n return children;\n}\nfunction parseName(nodeName) {\n if (/[a-z]+[A-Z]+[a-z]+/.test(nodeName)) {\n return nodeName;\n }\n return nodeName.toLowerCase();\n}\nexport function convertFromNode(input, options) {\n var _a;\n if (options === void 0) { options = {}; }\n if (!input || !(input instanceof Node)) {\n return null;\n }\n var _b = options.actions, actions = _b === void 0 ? [] : _b, _c = options.index, index = _c === void 0 ? 0 : _c, _d = options.level, level = _d === void 0 ? 0 : _d, randomKey = options.randomKey;\n var node = input;\n var key = \"\".concat(level, \"-\").concat(index);\n var result = [];\n if (randomKey && level === 0) {\n key = \"\".concat(randomString(), \"-\").concat(key);\n }\n /* istanbul ignore else */\n if (Array.isArray(actions)) {\n actions.forEach(function (action) {\n if (action.condition(node, key, level)) {\n if (typeof action.pre === 'function') {\n node = action.pre(node, key, level);\n if (!(node instanceof Node)) {\n node = input;\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn('The `pre` method always must return a valid DomNode (instanceof Node) - your modification will be ignored (Hint: if you want to render a React-component, use the `post` method instead)');\n }\n }\n }\n if (typeof action.post === 'function') {\n result.push(action.post(node, key, level));\n }\n }\n });\n }\n if (result.length) {\n return result;\n }\n switch (node.nodeType) {\n case 1: {\n // regular dom-node\n return React.createElement(parseName(node.nodeName), parseAttributes(node, key), parseChildren(node.childNodes, level, options));\n }\n case 3: {\n // textnode\n var nodeText = ((_a = node.nodeValue) === null || _a === void 0 ? void 0 : _a.toString()) || '';\n /* istanbul ignore else */\n if (/^\\s+$/.test(nodeText) && !/[\\u00A0\\u202F]/.test(nodeText)) {\n return null;\n }\n /* istanbul ignore next */\n if (!node.parentNode) {\n return nodeText;\n }\n var parentNodeName = node.parentNode.nodeName.toLowerCase();\n if (noTextChildNodes.includes(parentNodeName)) {\n /* istanbul ignore else */\n if (/\\S/.test(nodeText)) {\n // eslint-disable-next-line no-console\n console.warn(\"A textNode is not allowed inside '\".concat(parentNodeName, \"'. Your text \\\"\").concat(nodeText, \"\\\" will be ignored\"));\n }\n return null;\n }\n return nodeText;\n }\n case 8: {\n // html-comment\n return null;\n }\n /* istanbul ignore next */\n default: {\n return null;\n }\n }\n}\nexport function convertFromString(input, options) {\n if (options === void 0) { options = {}; }\n if (!input || typeof input !== 'string') {\n return null;\n }\n var _a = options.nodeOnly, nodeOnly = _a === void 0 ? false : _a, _b = options.selector, selector = _b === void 0 ? 'body > *' : _b, _c = options.type, type = _c === void 0 ? 'text/html' : _c;\n try {\n var parser = new DOMParser();\n var document_1 = parser.parseFromString(input, type);\n var node = document_1.querySelector(selector);\n if (!(node instanceof Node)) {\n throw new TypeError('Error parsing input');\n }\n if (nodeOnly) {\n return node;\n }\n return convertFromNode(node, options);\n }\n catch (error) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n }\n return null;\n}\nexport default function convert(input, options) {\n if (options === void 0) { options = {}; }\n if (typeof input === 'string') {\n return convertFromString(input, options);\n }\n if (input instanceof Node) {\n return convertFromNode(input, options);\n }\n return null;\n}\n//# sourceMappingURL=index.js.map","import { canUseDOM as canUseDOMFlag } from 'exenv';\nexport var STATUS = {\n FAILED: 'failed',\n LOADED: 'loaded',\n LOADING: 'loading',\n PENDING: 'pending',\n READY: 'ready',\n UNSUPPORTED: 'unsupported',\n};\nexport function canUseDOM() {\n return canUseDOMFlag;\n}\nexport function isSupportedEnvironment() {\n return supportsInlineSVG() && typeof window !== 'undefined' && window !== null;\n}\nexport function supportsInlineSVG() {\n /* istanbul ignore next */\n if (!document) {\n return false;\n }\n var div = document.createElement('div');\n div.innerHTML = '';\n var svg = div.firstChild;\n return !!svg && svg.namespaceURI === 'http://www.w3.org/2000/svg';\n}\nfunction randomCharacter(character) {\n return character[Math.floor(Math.random() * character.length)];\n}\nexport function randomString(length) {\n var letters = 'abcdefghijklmnopqrstuvwxyz';\n var numbers = '1234567890';\n var charset = \"\".concat(letters).concat(letters.toUpperCase()).concat(numbers);\n var R = '';\n for (var index = 0; index < length; index++) {\n R += randomCharacter(charset);\n }\n return R;\n}\n/**\n * Remove properties from an object\n */\nexport function omit(input) {\n var filter = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n filter[_i - 1] = arguments[_i];\n }\n var output = {};\n for (var key in input) {\n /* istanbul ignore else */\n if ({}.hasOwnProperty.call(input, key)) {\n if (!filter.includes(key)) {\n output[key] = input[key];\n }\n }\n }\n return output;\n}\n//# sourceMappingURL=helpers.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport * as React from 'react';\nimport convert from 'react-from-dom';\nimport { canUseDOM, isSupportedEnvironment, omit, randomString, STATUS } from './helpers';\nexport var cacheStore = Object.create(null);\nvar InlineSVG = /** @class */ (function (_super) {\n __extends(InlineSVG, _super);\n function InlineSVG(props) {\n var _this = _super.call(this, props) || this;\n Object.defineProperty(_this, \"isInitialized\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(_this, \"isActive\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(_this, \"hash\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(_this, \"handleLoad\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: function (content, hasCache) {\n if (hasCache === void 0) { hasCache = false; }\n /* istanbul ignore else */\n if (_this.isActive) {\n _this.setState({\n content: content,\n hasCache: hasCache,\n status: STATUS.LOADED,\n }, _this.getElement);\n }\n }\n });\n Object.defineProperty(_this, \"handleError\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: function (error) {\n var onError = _this.props.onError;\n var status = error.message === 'Browser does not support SVG' ? STATUS.UNSUPPORTED : STATUS.FAILED;\n /* istanbul ignore else */\n if (_this.isActive) {\n _this.setState({ status: status }, function () {\n /* istanbul ignore else */\n if (typeof onError === 'function') {\n onError(error);\n }\n });\n }\n }\n });\n Object.defineProperty(_this, \"request\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: function () {\n var _a = _this.props, cacheRequests = _a.cacheRequests, fetchOptions = _a.fetchOptions, src = _a.src;\n try {\n if (cacheRequests) {\n cacheStore[src] = { content: '', status: STATUS.LOADING };\n }\n return fetch(src, fetchOptions)\n .then(function (response) {\n var contentType = response.headers.get('content-type');\n var _a = __read((contentType || '').split(/ ?; ?/), 1), fileType = _a[0];\n if (response.status > 299) {\n throw new Error('Not found');\n }\n if (!['image/svg+xml', 'text/plain'].some(function (d) { return fileType.includes(d); })) {\n throw new Error(\"Content type isn't valid: \".concat(fileType));\n }\n return response.text();\n })\n .then(function (content) {\n var currentSrc = _this.props.src;\n // the current src don't match the previous one, skipping...\n if (src !== currentSrc) {\n if (cacheStore[src].status === STATUS.LOADING) {\n delete cacheStore[src];\n }\n return;\n }\n _this.handleLoad(content);\n /* istanbul ignore else */\n if (cacheRequests) {\n var cache = cacheStore[src];\n /* istanbul ignore else */\n if (cache) {\n cache.content = content;\n cache.status = STATUS.LOADED;\n }\n }\n })\n .catch(function (error) {\n _this.handleError(error);\n /* istanbul ignore else */\n if (cacheRequests) {\n var cache = cacheStore[src];\n /* istanbul ignore else */\n if (cache) {\n delete cacheStore[src];\n }\n }\n });\n }\n catch (error) {\n return _this.handleError(new Error(error.message));\n }\n }\n });\n _this.state = {\n content: '',\n element: null,\n hasCache: !!props.cacheRequests && !!cacheStore[props.src],\n status: STATUS.PENDING,\n };\n _this.hash = props.uniqueHash || randomString(8);\n return _this;\n }\n Object.defineProperty(InlineSVG.prototype, \"componentDidMount\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function () {\n this.isActive = true;\n if (!canUseDOM() || this.isInitialized) {\n return;\n }\n var status = this.state.status;\n var src = this.props.src;\n try {\n /* istanbul ignore else */\n if (status === STATUS.PENDING) {\n /* istanbul ignore else */\n if (!isSupportedEnvironment()) {\n throw new Error('Browser does not support SVG');\n }\n /* istanbul ignore else */\n if (!src) {\n throw new Error('Missing src');\n }\n this.load();\n }\n }\n catch (error) {\n this.handleError(error);\n }\n this.isInitialized = true;\n }\n });\n Object.defineProperty(InlineSVG.prototype, \"componentDidUpdate\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function (previousProps, previousState) {\n if (!canUseDOM()) {\n return;\n }\n var _a = this.state, hasCache = _a.hasCache, status = _a.status;\n var _b = this.props, onLoad = _b.onLoad, src = _b.src;\n if (previousState.status !== STATUS.READY && status === STATUS.READY) {\n /* istanbul ignore else */\n if (onLoad) {\n onLoad(src, hasCache);\n }\n }\n if (previousProps.src !== src) {\n if (!src) {\n this.handleError(new Error('Missing src'));\n return;\n }\n this.load();\n }\n }\n });\n Object.defineProperty(InlineSVG.prototype, \"componentWillUnmount\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function () {\n this.isActive = false;\n }\n });\n Object.defineProperty(InlineSVG.prototype, \"getNode\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function () {\n var _a = this.props, description = _a.description, title = _a.title;\n try {\n var svgText = this.processSVG();\n var node = convert(svgText, { nodeOnly: true });\n if (!node || !(node instanceof SVGSVGElement)) {\n throw new Error('Could not convert the src to a DOM Node');\n }\n var svg = this.updateSVGAttributes(node);\n if (description) {\n var originalDesc = svg.querySelector('desc');\n if (originalDesc && originalDesc.parentNode) {\n originalDesc.parentNode.removeChild(originalDesc);\n }\n var descElement = document.createElementNS('http://www.w3.org/2000/svg', 'desc');\n descElement.innerHTML = description;\n svg.prepend(descElement);\n }\n if (typeof title !== 'undefined') {\n var originalTitle = svg.querySelector('title');\n if (originalTitle && originalTitle.parentNode) {\n originalTitle.parentNode.removeChild(originalTitle);\n }\n if (title) {\n var titleElement = document.createElementNS('http://www.w3.org/2000/svg', 'title');\n titleElement.innerHTML = title;\n svg.prepend(titleElement);\n }\n }\n return svg;\n }\n catch (error) {\n return this.handleError(error);\n }\n }\n });\n Object.defineProperty(InlineSVG.prototype, \"getElement\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function () {\n try {\n var node = this.getNode();\n var element = convert(node);\n if (!element || !React.isValidElement(element)) {\n throw new Error('Could not convert the src to a React element');\n }\n this.setState({\n element: element,\n status: STATUS.READY,\n });\n }\n catch (error) {\n this.handleError(new Error(error.message));\n }\n }\n });\n Object.defineProperty(InlineSVG.prototype, \"load\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function () {\n var _this = this;\n /* istanbul ignore else */\n if (this.isActive) {\n this.setState({\n content: '',\n element: null,\n hasCache: false,\n status: STATUS.LOADING,\n }, function () {\n var _a = _this.props, cacheRequests = _a.cacheRequests, src = _a.src;\n var cache = cacheRequests && cacheStore[src];\n if (cache && cache.status === STATUS.LOADED) {\n _this.handleLoad(cache.content, true);\n return;\n }\n var dataURI = src.match(/data:image\\/svg[^,]*?(;base64)?,(.*)/);\n var inlineSrc;\n if (dataURI) {\n inlineSrc = dataURI[1] ? window.atob(dataURI[2]) : decodeURIComponent(dataURI[2]);\n }\n else if (src.includes('\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _reactDraggable = require(\"react-draggable\");\nvar _utils = require(\"./utils\");\nvar _propTypes = require(\"./propTypes\");\nvar _excluded = [\"children\", \"className\", \"draggableOpts\", \"width\", \"height\", \"handle\", \"handleSize\", \"lockAspectRatio\", \"axis\", \"minConstraints\", \"maxConstraints\", \"onResize\", \"onResizeStop\", \"onResizeStart\", \"resizeHandles\", \"transformScale\"];\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n// The base component.\n// This component does not have state and relies on the parent to set its props based on callback data.\nvar Resizable = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Resizable, _React$Component);\n function Resizable() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.handleRefs = {};\n _this.lastHandleRect = null;\n _this.slack = null;\n return _this;\n }\n var _proto = Resizable.prototype;\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.resetData();\n };\n _proto.resetData = function resetData() {\n this.lastHandleRect = this.slack = null;\n }\n\n // Clamp width and height within provided constraints\n ;\n _proto.runConstraints = function runConstraints(width, height) {\n var _this$props = this.props,\n minConstraints = _this$props.minConstraints,\n maxConstraints = _this$props.maxConstraints,\n lockAspectRatio = _this$props.lockAspectRatio;\n // short circuit\n if (!minConstraints && !maxConstraints && !lockAspectRatio) return [width, height];\n\n // If constraining to min and max, we need to also fit width and height to aspect ratio.\n if (lockAspectRatio) {\n var ratio = this.props.width / this.props.height;\n var deltaW = width - this.props.width;\n var deltaH = height - this.props.height;\n\n // Find which coordinate was greater and should push the other toward it.\n // E.g.:\n // ratio = 1, deltaW = 10, deltaH = 5, deltaH should become 10.\n // ratio = 2, deltaW = 10, deltaH = 6, deltaW should become 12.\n if (Math.abs(deltaW) > Math.abs(deltaH * ratio)) {\n height = width / ratio;\n } else {\n width = height * ratio;\n }\n }\n var oldW = width,\n oldH = height;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n var _ref = this.slack || [0, 0],\n slackW = _ref[0],\n slackH = _ref[1];\n width += slackW;\n height += slackH;\n if (minConstraints) {\n width = Math.max(minConstraints[0], width);\n height = Math.max(minConstraints[1], height);\n }\n if (maxConstraints) {\n width = Math.min(maxConstraints[0], width);\n height = Math.min(maxConstraints[1], height);\n }\n\n // If the width or height changed, we must have introduced some slack. Record it for the next iteration.\n this.slack = [slackW + (oldW - width), slackH + (oldH - height)];\n return [width, height];\n }\n\n /**\n * Wrapper around drag events to provide more useful data.\n *\n * @param {String} handlerName Handler name to wrap.\n * @return {Function} Handler function.\n */;\n _proto.resizeHandler = function resizeHandler(handlerName, axis) {\n var _this2 = this;\n return function (e, _ref2) {\n var node = _ref2.node,\n deltaX = _ref2.deltaX,\n deltaY = _ref2.deltaY;\n // Reset data in case it was left over somehow (should not be possible)\n if (handlerName === 'onResizeStart') _this2.resetData();\n\n // Axis restrictions\n var canDragX = (_this2.props.axis === 'both' || _this2.props.axis === 'x') && axis !== 'n' && axis !== 's';\n var canDragY = (_this2.props.axis === 'both' || _this2.props.axis === 'y') && axis !== 'e' && axis !== 'w';\n // No dragging possible.\n if (!canDragX && !canDragY) return;\n\n // Decompose axis for later use\n var axisV = axis[0];\n var axisH = axis[axis.length - 1]; // intentionally not axis[1], so that this catches axis === 'w' for example\n\n // Track the element being dragged to account for changes in position.\n // If a handle's position is changed between callbacks, we need to factor this in to the next callback.\n // Failure to do so will cause the element to \"skip\" when resized upwards or leftwards.\n var handleRect = node.getBoundingClientRect();\n if (_this2.lastHandleRect != null) {\n // If the handle has repositioned on either axis since last render,\n // we need to increase our callback values by this much.\n // Only checking 'n', 'w' since resizing by 's', 'w' won't affect the overall position on page,\n if (axisH === 'w') {\n var deltaLeftSinceLast = handleRect.left - _this2.lastHandleRect.left;\n deltaX += deltaLeftSinceLast;\n }\n if (axisV === 'n') {\n var deltaTopSinceLast = handleRect.top - _this2.lastHandleRect.top;\n deltaY += deltaTopSinceLast;\n }\n }\n // Storage of last rect so we know how much it has really moved.\n _this2.lastHandleRect = handleRect;\n\n // Reverse delta if using top or left drag handles.\n if (axisH === 'w') deltaX = -deltaX;\n if (axisV === 'n') deltaY = -deltaY;\n\n // Update w/h by the deltas. Also factor in transformScale.\n var width = _this2.props.width + (canDragX ? deltaX / _this2.props.transformScale : 0);\n var height = _this2.props.height + (canDragY ? deltaY / _this2.props.transformScale : 0);\n\n // Run user-provided constraints.\n var _this2$runConstraints = _this2.runConstraints(width, height);\n width = _this2$runConstraints[0];\n height = _this2$runConstraints[1];\n var dimensionsChanged = width !== _this2.props.width || height !== _this2.props.height;\n\n // Call user-supplied callback if present.\n var cb = typeof _this2.props[handlerName] === 'function' ? _this2.props[handlerName] : null;\n // Don't call 'onResize' if dimensions haven't changed.\n var shouldSkipCb = handlerName === 'onResize' && !dimensionsChanged;\n if (cb && !shouldSkipCb) {\n e.persist == null ? void 0 : e.persist();\n cb(e, {\n node: node,\n size: {\n width: width,\n height: height\n },\n handle: axis\n });\n }\n\n // Reset internal data\n if (handlerName === 'onResizeStop') _this2.resetData();\n };\n }\n\n // Render a resize handle given an axis & DOM ref. Ref *must* be attached for\n // the underlying draggable library to work properly.\n ;\n _proto.renderResizeHandle = function renderResizeHandle(handleAxis, ref) {\n var handle = this.props.handle;\n // No handle provided, make the default\n if (!handle) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"react-resizable-handle react-resizable-handle-\" + handleAxis,\n ref: ref\n });\n }\n // Handle is a function, such as:\n // `handle={(handleAxis) => }`\n if (typeof handle === 'function') {\n return handle(handleAxis, ref);\n }\n // Handle is a React component (composite or DOM).\n var isDOMElement = typeof handle.type === 'string';\n var props = _objectSpread({\n ref: ref\n }, isDOMElement ? {} : {\n handleAxis: handleAxis\n });\n return /*#__PURE__*/React.cloneElement(handle, props);\n };\n _proto.render = function render() {\n var _this3 = this;\n // Pass along only props not meant for the ``.`\n // eslint-disable-next-line no-unused-vars\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n draggableOpts = _this$props2.draggableOpts,\n width = _this$props2.width,\n height = _this$props2.height,\n handle = _this$props2.handle,\n handleSize = _this$props2.handleSize,\n lockAspectRatio = _this$props2.lockAspectRatio,\n axis = _this$props2.axis,\n minConstraints = _this$props2.minConstraints,\n maxConstraints = _this$props2.maxConstraints,\n onResize = _this$props2.onResize,\n onResizeStop = _this$props2.onResizeStop,\n onResizeStart = _this$props2.onResizeStart,\n resizeHandles = _this$props2.resizeHandles,\n transformScale = _this$props2.transformScale,\n p = _objectWithoutPropertiesLoose(_this$props2, _excluded);\n\n // What we're doing here is getting the child of this element, and cloning it with this element's props.\n // We are then defining its children as:\n // 1. Its original children (resizable's child's children), and\n // 2. One or more draggable handles.\n return (0, _utils.cloneElement)(children, _objectSpread(_objectSpread({}, p), {}, {\n className: (className ? className + \" \" : '') + \"react-resizable\",\n children: [].concat(children.props.children, resizeHandles.map(function (handleAxis) {\n var _this3$handleRefs$han;\n // Create a ref to the handle so that `` doesn't have to use ReactDOM.findDOMNode().\n var ref = (_this3$handleRefs$han = _this3.handleRefs[handleAxis]) != null ? _this3$handleRefs$han : _this3.handleRefs[handleAxis] = /*#__PURE__*/React.createRef();\n return /*#__PURE__*/React.createElement(_reactDraggable.DraggableCore, _extends({}, draggableOpts, {\n nodeRef: ref,\n key: \"resizableHandle-\" + handleAxis,\n onStop: _this3.resizeHandler('onResizeStop', handleAxis),\n onStart: _this3.resizeHandler('onResizeStart', handleAxis),\n onDrag: _this3.resizeHandler('onResize', handleAxis)\n }), _this3.renderResizeHandle(handleAxis, ref));\n }))\n }));\n };\n return Resizable;\n}(React.Component);\nexports.default = Resizable;\nResizable.propTypes = _propTypes.resizableProps;\nResizable.defaultProps = {\n axis: 'both',\n handleSize: [20, 20],\n lockAspectRatio: false,\n minConstraints: [20, 20],\n maxConstraints: [Infinity, Infinity],\n resizeHandles: ['se'],\n transformScale: 1\n};","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays:\n 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort:\n 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","module.exports = require(\"./build/ReactGridLayout\").default;\nmodule.exports.utils = require(\"./build/utils\");\nmodule.exports.Responsive =\n require(\"./build/ResponsiveReactGridLayout\").default;\nmodule.exports.Responsive.utils = require(\"./build/responsiveUtils\");\nmodule.exports.WidthProvider =\n require(\"./build/components/WidthProvider\").default;\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addClassName = addClassName;\nexports.addEvent = addEvent;\nexports.addUserSelectStyles = addUserSelectStyles;\nexports.createCSSTransform = createCSSTransform;\nexports.createSVGTransform = createSVGTransform;\nexports.getTouch = getTouch;\nexports.getTouchIdentifier = getTouchIdentifier;\nexports.getTranslation = getTranslation;\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\nexports.matchesSelector = matchesSelector;\nexports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;\nexports.offsetXYFromParent = offsetXYFromParent;\nexports.outerHeight = outerHeight;\nexports.outerWidth = outerWidth;\nexports.removeClassName = removeClassName;\nexports.removeEvent = removeEvent;\nexports.removeUserSelectStyles = removeUserSelectStyles;\nvar _shims = require(\"./shims\");\nvar _getPrefix = _interopRequireWildcard(require(\"./getPrefix\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n/*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/\nlet matchesSelectorFunc = '';\nfunction matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/{\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {\n // $FlowIgnore: Doesn't think elements are indexable\n return (0, _shims.isFunction)(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nfunction matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/{\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n // $FlowIgnore[incompatible-type]\n node = node.parentNode;\n } while (node);\n return false;\n}\nfunction addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{\n if (!el) return;\n const options = {\n capture: true,\n ...inputOptions\n };\n // $FlowIgnore[method-unbinding]\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n } else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\nfunction removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{\n if (!el) return;\n const options = {\n capture: true,\n ...inputOptions\n };\n // $FlowIgnore[method-unbinding]\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n } else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\nfunction outerHeight(node /*: HTMLElement*/) /*: number*/{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += (0, _shims.int)(computedStyle.borderTopWidth);\n height += (0, _shims.int)(computedStyle.borderBottomWidth);\n return height;\n}\nfunction outerWidth(node /*: HTMLElement*/) /*: number*/{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += (0, _shims.int)(computedStyle.borderLeftWidth);\n width += (0, _shims.int)(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node /*: HTMLElement*/) /*: number*/{\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= (0, _shims.int)(computedStyle.paddingTop);\n height -= (0, _shims.int)(computedStyle.paddingBottom);\n return height;\n}\nfunction innerWidth(node /*: HTMLElement*/) /*: number*/{\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= (0, _shims.int)(computedStyle.paddingLeft);\n width -= (0, _shims.int)(computedStyle.paddingRight);\n return width;\n}\n/*:: interface EventWithOffset {\n clientX: number, clientY: number\n}*/\n// Get from offsetParent\nfunction offsetXYFromParent(evt /*: EventWithOffset*/, offsetParent /*: HTMLElement*/, scale /*: number*/) /*: ControlPosition*/{\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {\n left: 0,\n top: 0\n } : offsetParent.getBoundingClientRect();\n const x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;\n const y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;\n return {\n x,\n y\n };\n}\nfunction createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/{\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {\n [(0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default)]: translation\n };\n}\nfunction createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/{\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nfunction getTranslation(_ref /*:: */, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/{\n let {\n x,\n y\n } /*: ControlPosition*/ = _ref /*: ControlPosition*/;\n let translation = \"translate(\".concat(x).concat(unitSuffix, \",\").concat(y).concat(unitSuffix, \")\");\n if (positionOffset) {\n const defaultX = \"\".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);\n const defaultY = \"\".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);\n translation = \"translate(\".concat(defaultX, \", \").concat(defaultY, \")\") + translation;\n }\n return translation;\n}\nfunction getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/{\n return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, t => identifier === t.identifier) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, t => identifier === t.identifier);\n}\nfunction getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/{\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nfunction addUserSelectStyles(doc /*: ?Document*/) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\nfunction removeUserSelectStyles(doc /*: ?Document*/) {\n if (!doc) return;\n try {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n // Remove selection caused by scroll, unless it's a focused input\n // (we use doc.defaultView in case we're in an iframe)\n const selection = (doc.defaultView || window).getSelection();\n if (selection && selection.type !== 'Caret') {\n selection.removeAllRanges();\n }\n }\n } catch (e) {\n // probably IE\n }\n}\nfunction addClassName(el /*: HTMLElement*/, className /*: string*/) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\")))) {\n el.className += \" \".concat(className);\n }\n }\n}\nfunction removeClassName(el /*: HTMLElement*/, className /*: string*/) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\"), 'g'), '');\n }\n}","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone:\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone:\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","'use client';\nimport React from 'react';\n\n/**\n * @internal\n */\nconst SkeletonThemeContext = React.createContext({});\n\n/* eslint-disable react/no-array-index-key */\nconst defaultEnableAnimation = true;\n// For performance & cleanliness, don't add any inline styles unless we have to\nfunction styleOptionsToCssProperties({ baseColor, highlightColor, width, height, borderRadius, circle, direction, duration, enableAnimation = defaultEnableAnimation, customHighlightBackground, }) {\n const style = {};\n if (direction === 'rtl')\n style['--animation-direction'] = 'reverse';\n if (typeof duration === 'number')\n style['--animation-duration'] = `${duration}s`;\n if (!enableAnimation)\n style['--pseudo-element-display'] = 'none';\n if (typeof width === 'string' || typeof width === 'number')\n style.width = width;\n if (typeof height === 'string' || typeof height === 'number')\n style.height = height;\n if (typeof borderRadius === 'string' || typeof borderRadius === 'number')\n style.borderRadius = borderRadius;\n if (circle)\n style.borderRadius = '50%';\n if (typeof baseColor !== 'undefined')\n style['--base-color'] = baseColor;\n if (typeof highlightColor !== 'undefined')\n style['--highlight-color'] = highlightColor;\n if (typeof customHighlightBackground === 'string')\n style['--custom-highlight-background'] = customHighlightBackground;\n return style;\n}\nfunction Skeleton({ count = 1, wrapper: Wrapper, className: customClassName, containerClassName, containerTestId, circle = false, style: styleProp, ...originalPropsStyleOptions }) {\n var _a, _b, _c;\n const contextStyleOptions = React.useContext(SkeletonThemeContext);\n const propsStyleOptions = { ...originalPropsStyleOptions };\n // DO NOT overwrite style options from the context if `propsStyleOptions`\n // has properties explicity set to undefined\n for (const [key, value] of Object.entries(originalPropsStyleOptions)) {\n if (typeof value === 'undefined') {\n delete propsStyleOptions[key];\n }\n }\n // Props take priority over context\n const styleOptions = {\n ...contextStyleOptions,\n ...propsStyleOptions,\n circle,\n };\n // `styleProp` has the least priority out of everything\n const style = {\n ...styleProp,\n ...styleOptionsToCssProperties(styleOptions),\n };\n let className = 'react-loading-skeleton';\n if (customClassName)\n className += ` ${customClassName}`;\n const inline = (_a = styleOptions.inline) !== null && _a !== void 0 ? _a : false;\n const elements = [];\n const countCeil = Math.ceil(count);\n for (let i = 0; i < countCeil; i++) {\n let thisStyle = style;\n if (countCeil > count && i === countCeil - 1) {\n // count is not an integer and we've reached the last iteration of\n // the loop, so add a \"fractional\" skeleton.\n //\n // For example, if count is 3.5, we've already added 3 full\n // skeletons, so now we add one more skeleton that is 0.5 times the\n // original width.\n const width = (_b = thisStyle.width) !== null && _b !== void 0 ? _b : '100%'; // 100% is the default since that's what's in the CSS\n const fractionalPart = count % 1;\n const fractionalWidth = typeof width === 'number'\n ? width * fractionalPart\n : `calc(${width} * ${fractionalPart})`;\n thisStyle = { ...thisStyle, width: fractionalWidth };\n }\n const skeletonSpan = (React.createElement(\"span\", { className: className, style: thisStyle, key: i }, \"\\u200C\"));\n if (inline) {\n elements.push(skeletonSpan);\n }\n else {\n // Without the
, the skeleton lines will all run together if\n // `width` is specified\n elements.push(React.createElement(React.Fragment, { key: i },\n skeletonSpan,\n React.createElement(\"br\", null)));\n }\n }\n return (React.createElement(\"span\", { className: containerClassName, \"data-testid\": containerTestId, \"aria-live\": \"polite\", \"aria-busy\": (_c = styleOptions.enableAnimation) !== null && _c !== void 0 ? _c : defaultEnableAnimation }, Wrapper\n ? elements.map((el, i) => React.createElement(Wrapper, { key: i }, el))\n : elements));\n}\n\nfunction SkeletonTheme({ children, ...styleOptions }) {\n return (React.createElement(SkeletonThemeContext.Provider, { value: styleOptions }, children));\n}\n\nexport { SkeletonTheme, Skeleton as default };\n","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","var DataTopic = /* @__PURE__ */ ((DataTopic2) => {\n DataTopic2[\"AlertStates\"] = \"alertStates\";\n DataTopic2[\"Annotations\"] = \"annotations\";\n DataTopic2[\"Series\"] = \"series\";\n return DataTopic2;\n})(DataTopic || {});\nvar ScaleDimensionMode = /* @__PURE__ */ ((ScaleDimensionMode2) => {\n ScaleDimensionMode2[\"Linear\"] = \"linear\";\n ScaleDimensionMode2[\"Quad\"] = \"quad\";\n return ScaleDimensionMode2;\n})(ScaleDimensionMode || {});\nvar ScalarDimensionMode = /* @__PURE__ */ ((ScalarDimensionMode2) => {\n ScalarDimensionMode2[\"Clamped\"] = \"clamped\";\n ScalarDimensionMode2[\"Mod\"] = \"mod\";\n return ScalarDimensionMode2;\n})(ScalarDimensionMode || {});\nvar TextDimensionMode = /* @__PURE__ */ ((TextDimensionMode2) => {\n TextDimensionMode2[\"Field\"] = \"field\";\n TextDimensionMode2[\"Fixed\"] = \"fixed\";\n TextDimensionMode2[\"Template\"] = \"template\";\n return TextDimensionMode2;\n})(TextDimensionMode || {});\nvar ResourceDimensionMode = /* @__PURE__ */ ((ResourceDimensionMode2) => {\n ResourceDimensionMode2[\"Field\"] = \"field\";\n ResourceDimensionMode2[\"Fixed\"] = \"fixed\";\n ResourceDimensionMode2[\"Mapping\"] = \"mapping\";\n return ResourceDimensionMode2;\n})(ResourceDimensionMode || {});\nvar FrameGeometrySourceMode = /* @__PURE__ */ ((FrameGeometrySourceMode2) => {\n FrameGeometrySourceMode2[\"Auto\"] = \"auto\";\n FrameGeometrySourceMode2[\"Coords\"] = \"coords\";\n FrameGeometrySourceMode2[\"Geohash\"] = \"geohash\";\n FrameGeometrySourceMode2[\"Lookup\"] = \"lookup\";\n return FrameGeometrySourceMode2;\n})(FrameGeometrySourceMode || {});\nvar HeatmapCalculationMode = /* @__PURE__ */ ((HeatmapCalculationMode2) => {\n HeatmapCalculationMode2[\"Count\"] = \"count\";\n HeatmapCalculationMode2[\"Size\"] = \"size\";\n return HeatmapCalculationMode2;\n})(HeatmapCalculationMode || {});\nvar HeatmapCellLayout = /* @__PURE__ */ ((HeatmapCellLayout2) => {\n HeatmapCellLayout2[\"auto\"] = \"auto\";\n HeatmapCellLayout2[\"ge\"] = \"ge\";\n HeatmapCellLayout2[\"le\"] = \"le\";\n HeatmapCellLayout2[\"unknown\"] = \"unknown\";\n return HeatmapCellLayout2;\n})(HeatmapCellLayout || {});\nvar LogsSortOrder = /* @__PURE__ */ ((LogsSortOrder2) => {\n LogsSortOrder2[\"Ascending\"] = \"Ascending\";\n LogsSortOrder2[\"Descending\"] = \"Descending\";\n return LogsSortOrder2;\n})(LogsSortOrder || {});\nvar AxisPlacement = /* @__PURE__ */ ((AxisPlacement2) => {\n AxisPlacement2[\"Auto\"] = \"auto\";\n AxisPlacement2[\"Bottom\"] = \"bottom\";\n AxisPlacement2[\"Hidden\"] = \"hidden\";\n AxisPlacement2[\"Left\"] = \"left\";\n AxisPlacement2[\"Right\"] = \"right\";\n AxisPlacement2[\"Top\"] = \"top\";\n return AxisPlacement2;\n})(AxisPlacement || {});\nvar AxisColorMode = /* @__PURE__ */ ((AxisColorMode2) => {\n AxisColorMode2[\"Series\"] = \"series\";\n AxisColorMode2[\"Text\"] = \"text\";\n return AxisColorMode2;\n})(AxisColorMode || {});\nvar VisibilityMode = /* @__PURE__ */ ((VisibilityMode2) => {\n VisibilityMode2[\"Always\"] = \"always\";\n VisibilityMode2[\"Auto\"] = \"auto\";\n VisibilityMode2[\"Never\"] = \"never\";\n return VisibilityMode2;\n})(VisibilityMode || {});\nvar GraphDrawStyle = /* @__PURE__ */ ((GraphDrawStyle2) => {\n GraphDrawStyle2[\"Bars\"] = \"bars\";\n GraphDrawStyle2[\"Line\"] = \"line\";\n GraphDrawStyle2[\"Points\"] = \"points\";\n return GraphDrawStyle2;\n})(GraphDrawStyle || {});\nvar GraphTransform = /* @__PURE__ */ ((GraphTransform2) => {\n GraphTransform2[\"Constant\"] = \"constant\";\n GraphTransform2[\"NegativeY\"] = \"negative-Y\";\n return GraphTransform2;\n})(GraphTransform || {});\nvar LineInterpolation = /* @__PURE__ */ ((LineInterpolation2) => {\n LineInterpolation2[\"Linear\"] = \"linear\";\n LineInterpolation2[\"Smooth\"] = \"smooth\";\n LineInterpolation2[\"StepAfter\"] = \"stepAfter\";\n LineInterpolation2[\"StepBefore\"] = \"stepBefore\";\n return LineInterpolation2;\n})(LineInterpolation || {});\nvar ScaleDistribution = /* @__PURE__ */ ((ScaleDistribution2) => {\n ScaleDistribution2[\"Linear\"] = \"linear\";\n ScaleDistribution2[\"Log\"] = \"log\";\n ScaleDistribution2[\"Ordinal\"] = \"ordinal\";\n ScaleDistribution2[\"Symlog\"] = \"symlog\";\n return ScaleDistribution2;\n})(ScaleDistribution || {});\nvar GraphGradientMode = /* @__PURE__ */ ((GraphGradientMode2) => {\n GraphGradientMode2[\"Hue\"] = \"hue\";\n GraphGradientMode2[\"None\"] = \"none\";\n GraphGradientMode2[\"Opacity\"] = \"opacity\";\n GraphGradientMode2[\"Scheme\"] = \"scheme\";\n return GraphGradientMode2;\n})(GraphGradientMode || {});\nvar StackingMode = /* @__PURE__ */ ((StackingMode2) => {\n StackingMode2[\"None\"] = \"none\";\n StackingMode2[\"Normal\"] = \"normal\";\n StackingMode2[\"Percent\"] = \"percent\";\n return StackingMode2;\n})(StackingMode || {});\nvar BarAlignment = /* @__PURE__ */ ((BarAlignment2) => {\n BarAlignment2[BarAlignment2[\"After\"] = 1] = \"After\";\n BarAlignment2[BarAlignment2[\"Before\"] = -1] = \"Before\";\n BarAlignment2[BarAlignment2[\"Center\"] = 0] = \"Center\";\n return BarAlignment2;\n})(BarAlignment || {});\nvar ScaleOrientation = /* @__PURE__ */ ((ScaleOrientation2) => {\n ScaleOrientation2[ScaleOrientation2[\"Horizontal\"] = 0] = \"Horizontal\";\n ScaleOrientation2[ScaleOrientation2[\"Vertical\"] = 1] = \"Vertical\";\n return ScaleOrientation2;\n})(ScaleOrientation || {});\nvar ScaleDirection = /* @__PURE__ */ ((ScaleDirection2) => {\n ScaleDirection2[ScaleDirection2[\"Down\"] = -1] = \"Down\";\n ScaleDirection2[ScaleDirection2[\"Left\"] = -1] = \"Left\";\n ScaleDirection2[ScaleDirection2[\"Right\"] = 1] = \"Right\";\n ScaleDirection2[ScaleDirection2[\"Up\"] = 1] = \"Up\";\n return ScaleDirection2;\n})(ScaleDirection || {});\nconst defaultLineStyle = {\n dash: []\n};\nvar GraphThresholdsStyleMode = /* @__PURE__ */ ((GraphThresholdsStyleMode2) => {\n GraphThresholdsStyleMode2[\"Area\"] = \"area\";\n GraphThresholdsStyleMode2[\"Dashed\"] = \"dashed\";\n GraphThresholdsStyleMode2[\"DashedAndArea\"] = \"dashed+area\";\n GraphThresholdsStyleMode2[\"Line\"] = \"line\";\n GraphThresholdsStyleMode2[\"LineAndArea\"] = \"line+area\";\n GraphThresholdsStyleMode2[\"Off\"] = \"off\";\n GraphThresholdsStyleMode2[\"Series\"] = \"series\";\n return GraphThresholdsStyleMode2;\n})(GraphThresholdsStyleMode || {});\nvar LegendDisplayMode = /* @__PURE__ */ ((LegendDisplayMode2) => {\n LegendDisplayMode2[\"Hidden\"] = \"hidden\";\n LegendDisplayMode2[\"List\"] = \"list\";\n LegendDisplayMode2[\"Table\"] = \"table\";\n return LegendDisplayMode2;\n})(LegendDisplayMode || {});\nconst defaultReduceDataOptions = {\n calcs: []\n};\nvar VizOrientation = /* @__PURE__ */ ((VizOrientation2) => {\n VizOrientation2[\"Auto\"] = \"auto\";\n VizOrientation2[\"Horizontal\"] = \"horizontal\";\n VizOrientation2[\"Vertical\"] = \"vertical\";\n return VizOrientation2;\n})(VizOrientation || {});\nconst defaultOptionsWithTimezones = {\n timezone: []\n};\nvar BigValueColorMode = /* @__PURE__ */ ((BigValueColorMode2) => {\n BigValueColorMode2[\"Background\"] = \"background\";\n BigValueColorMode2[\"BackgroundSolid\"] = \"background_solid\";\n BigValueColorMode2[\"None\"] = \"none\";\n BigValueColorMode2[\"Value\"] = \"value\";\n return BigValueColorMode2;\n})(BigValueColorMode || {});\nvar BigValueGraphMode = /* @__PURE__ */ ((BigValueGraphMode2) => {\n BigValueGraphMode2[\"Area\"] = \"area\";\n BigValueGraphMode2[\"Line\"] = \"line\";\n BigValueGraphMode2[\"None\"] = \"none\";\n return BigValueGraphMode2;\n})(BigValueGraphMode || {});\nvar BigValueJustifyMode = /* @__PURE__ */ ((BigValueJustifyMode2) => {\n BigValueJustifyMode2[\"Auto\"] = \"auto\";\n BigValueJustifyMode2[\"Center\"] = \"center\";\n return BigValueJustifyMode2;\n})(BigValueJustifyMode || {});\nvar BigValueTextMode = /* @__PURE__ */ ((BigValueTextMode2) => {\n BigValueTextMode2[\"Auto\"] = \"auto\";\n BigValueTextMode2[\"Name\"] = \"name\";\n BigValueTextMode2[\"None\"] = \"none\";\n BigValueTextMode2[\"Value\"] = \"value\";\n BigValueTextMode2[\"ValueAndName\"] = \"value_and_name\";\n return BigValueTextMode2;\n})(BigValueTextMode || {});\nvar PercentChangeColorMode = /* @__PURE__ */ ((PercentChangeColorMode2) => {\n PercentChangeColorMode2[\"Inverted\"] = \"inverted\";\n PercentChangeColorMode2[\"SameAsValue\"] = \"same_as_value\";\n PercentChangeColorMode2[\"Standard\"] = \"standard\";\n return PercentChangeColorMode2;\n})(PercentChangeColorMode || {});\nvar TooltipDisplayMode = /* @__PURE__ */ ((TooltipDisplayMode2) => {\n TooltipDisplayMode2[\"Multi\"] = \"multi\";\n TooltipDisplayMode2[\"None\"] = \"none\";\n TooltipDisplayMode2[\"Single\"] = \"single\";\n return TooltipDisplayMode2;\n})(TooltipDisplayMode || {});\nvar SortOrder = /* @__PURE__ */ ((SortOrder2) => {\n SortOrder2[\"Ascending\"] = \"asc\";\n SortOrder2[\"Descending\"] = \"desc\";\n SortOrder2[\"None\"] = \"none\";\n return SortOrder2;\n})(SortOrder || {});\nconst defaultVizLegendOptions = {\n calcs: []\n};\nvar BarGaugeDisplayMode = /* @__PURE__ */ ((BarGaugeDisplayMode2) => {\n BarGaugeDisplayMode2[\"Basic\"] = \"basic\";\n BarGaugeDisplayMode2[\"Gradient\"] = \"gradient\";\n BarGaugeDisplayMode2[\"Lcd\"] = \"lcd\";\n return BarGaugeDisplayMode2;\n})(BarGaugeDisplayMode || {});\nvar BarGaugeValueMode = /* @__PURE__ */ ((BarGaugeValueMode2) => {\n BarGaugeValueMode2[\"Color\"] = \"color\";\n BarGaugeValueMode2[\"Hidden\"] = \"hidden\";\n BarGaugeValueMode2[\"Text\"] = \"text\";\n return BarGaugeValueMode2;\n})(BarGaugeValueMode || {});\nvar BarGaugeNamePlacement = /* @__PURE__ */ ((BarGaugeNamePlacement2) => {\n BarGaugeNamePlacement2[\"Auto\"] = \"auto\";\n BarGaugeNamePlacement2[\"Hidden\"] = \"hidden\";\n BarGaugeNamePlacement2[\"Left\"] = \"left\";\n BarGaugeNamePlacement2[\"Top\"] = \"top\";\n return BarGaugeNamePlacement2;\n})(BarGaugeNamePlacement || {});\nvar BarGaugeSizing = /* @__PURE__ */ ((BarGaugeSizing2) => {\n BarGaugeSizing2[\"Auto\"] = \"auto\";\n BarGaugeSizing2[\"Manual\"] = \"manual\";\n return BarGaugeSizing2;\n})(BarGaugeSizing || {});\nvar TableCellDisplayMode = /* @__PURE__ */ ((TableCellDisplayMode2) => {\n TableCellDisplayMode2[\"Actions\"] = \"actions\";\n TableCellDisplayMode2[\"Auto\"] = \"auto\";\n TableCellDisplayMode2[\"BasicGauge\"] = \"basic\";\n TableCellDisplayMode2[\"ColorBackground\"] = \"color-background\";\n TableCellDisplayMode2[\"ColorBackgroundSolid\"] = \"color-background-solid\";\n TableCellDisplayMode2[\"ColorText\"] = \"color-text\";\n TableCellDisplayMode2[\"Custom\"] = \"custom\";\n TableCellDisplayMode2[\"DataLinks\"] = \"data-links\";\n TableCellDisplayMode2[\"Gauge\"] = \"gauge\";\n TableCellDisplayMode2[\"GradientGauge\"] = \"gradient-gauge\";\n TableCellDisplayMode2[\"Image\"] = \"image\";\n TableCellDisplayMode2[\"JSONView\"] = \"json-view\";\n TableCellDisplayMode2[\"LcdGauge\"] = \"lcd-gauge\";\n TableCellDisplayMode2[\"Sparkline\"] = \"sparkline\";\n return TableCellDisplayMode2;\n})(TableCellDisplayMode || {});\nvar TableCellBackgroundDisplayMode = /* @__PURE__ */ ((TableCellBackgroundDisplayMode2) => {\n TableCellBackgroundDisplayMode2[\"Basic\"] = \"basic\";\n TableCellBackgroundDisplayMode2[\"Gradient\"] = \"gradient\";\n return TableCellBackgroundDisplayMode2;\n})(TableCellBackgroundDisplayMode || {});\nconst defaultTableFooterOptions = {\n fields: [],\n reducer: []\n};\nvar TableCellHeight = /* @__PURE__ */ ((TableCellHeight2) => {\n TableCellHeight2[\"Auto\"] = \"auto\";\n TableCellHeight2[\"Lg\"] = \"lg\";\n TableCellHeight2[\"Md\"] = \"md\";\n TableCellHeight2[\"Sm\"] = \"sm\";\n return TableCellHeight2;\n})(TableCellHeight || {});\nvar VariableFormatID = /* @__PURE__ */ ((VariableFormatID2) => {\n VariableFormatID2[\"CSV\"] = \"csv\";\n VariableFormatID2[\"Date\"] = \"date\";\n VariableFormatID2[\"Distributed\"] = \"distributed\";\n VariableFormatID2[\"DoubleQuote\"] = \"doublequote\";\n VariableFormatID2[\"Glob\"] = \"glob\";\n VariableFormatID2[\"HTML\"] = \"html\";\n VariableFormatID2[\"JSON\"] = \"json\";\n VariableFormatID2[\"Lucene\"] = \"lucene\";\n VariableFormatID2[\"PercentEncode\"] = \"percentencode\";\n VariableFormatID2[\"Pipe\"] = \"pipe\";\n VariableFormatID2[\"QueryParam\"] = \"queryparam\";\n VariableFormatID2[\"Raw\"] = \"raw\";\n VariableFormatID2[\"Regex\"] = \"regex\";\n VariableFormatID2[\"SQLString\"] = \"sqlstring\";\n VariableFormatID2[\"SingleQuote\"] = \"singlequote\";\n VariableFormatID2[\"Text\"] = \"text\";\n VariableFormatID2[\"UriEncode\"] = \"uriencode\";\n return VariableFormatID2;\n})(VariableFormatID || {});\nvar LogsDedupStrategy = /* @__PURE__ */ ((LogsDedupStrategy2) => {\n LogsDedupStrategy2[\"exact\"] = \"exact\";\n LogsDedupStrategy2[\"none\"] = \"none\";\n LogsDedupStrategy2[\"numbers\"] = \"numbers\";\n LogsDedupStrategy2[\"signature\"] = \"signature\";\n return LogsDedupStrategy2;\n})(LogsDedupStrategy || {});\nvar ComparisonOperation = /* @__PURE__ */ ((ComparisonOperation2) => {\n ComparisonOperation2[\"EQ\"] = \"eq\";\n ComparisonOperation2[\"GT\"] = \"gt\";\n ComparisonOperation2[\"GTE\"] = \"gte\";\n ComparisonOperation2[\"LT\"] = \"lt\";\n ComparisonOperation2[\"LTE\"] = \"lte\";\n ComparisonOperation2[\"NEQ\"] = \"neq\";\n return ComparisonOperation2;\n})(ComparisonOperation || {});\nconst defaultTimeZone = \"browser\";\n\nexport { AxisColorMode, AxisPlacement, BarAlignment, BarGaugeDisplayMode, BarGaugeNamePlacement, BarGaugeSizing, BarGaugeValueMode, BigValueColorMode, BigValueGraphMode, BigValueJustifyMode, BigValueTextMode, ComparisonOperation, DataTopic, FrameGeometrySourceMode, GraphDrawStyle, GraphGradientMode, GraphThresholdsStyleMode, GraphTransform, HeatmapCalculationMode, HeatmapCellLayout, LegendDisplayMode, LineInterpolation, LogsDedupStrategy, LogsSortOrder, PercentChangeColorMode, ResourceDimensionMode, ScalarDimensionMode, ScaleDimensionMode, ScaleDirection, ScaleDistribution, ScaleOrientation, SortOrder, StackingMode, TableCellBackgroundDisplayMode, TableCellDisplayMode, TableCellHeight, TextDimensionMode, TooltipDisplayMode, VariableFormatID, VisibilityMode, VizOrientation, defaultLineStyle, defaultOptionsWithTimezones, defaultReduceDataOptions, defaultTableFooterOptions, defaultTimeZone, defaultVizLegendOptions };\n//# sourceMappingURL=common.gen.js.map\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","import { useEffect } from 'react';\nvar useEffectOnce = function (effect) {\n useEffect(effect, []);\n};\nexport default useEffectOnce;\n","import useEffectOnce from './useEffectOnce';\nvar useMount = function (fn) {\n useEffectOnce(function () {\n fn();\n });\n};\nexport default useMount;\n","const defaultAnnotationTarget = {\n tags: []\n};\nconst defaultAnnotationPanelFilter = {\n exclude: false,\n ids: []\n};\nconst defaultAnnotationContainer = {\n list: []\n};\nconst defaultAnnotationQuery = {\n builtIn: 0,\n enable: true,\n hide: false\n};\nconst defaultVariableModel = {\n allowCustomValue: true,\n includeAll: false,\n multi: false,\n options: [],\n skipUrlSync: false\n};\nvar VariableRefresh = /* @__PURE__ */ ((VariableRefresh2) => {\n VariableRefresh2[VariableRefresh2[\"never\"] = 0] = \"never\";\n VariableRefresh2[VariableRefresh2[\"onDashboardLoad\"] = 1] = \"onDashboardLoad\";\n VariableRefresh2[VariableRefresh2[\"onTimeRangeChanged\"] = 2] = \"onTimeRangeChanged\";\n return VariableRefresh2;\n})(VariableRefresh || {});\nvar VariableSort = /* @__PURE__ */ ((VariableSort2) => {\n VariableSort2[VariableSort2[\"alphabeticalAsc\"] = 1] = \"alphabeticalAsc\";\n VariableSort2[VariableSort2[\"alphabeticalCaseInsensitiveAsc\"] = 5] = \"alphabeticalCaseInsensitiveAsc\";\n VariableSort2[VariableSort2[\"alphabeticalCaseInsensitiveDesc\"] = 6] = \"alphabeticalCaseInsensitiveDesc\";\n VariableSort2[VariableSort2[\"alphabeticalDesc\"] = 2] = \"alphabeticalDesc\";\n VariableSort2[VariableSort2[\"disabled\"] = 0] = \"disabled\";\n VariableSort2[VariableSort2[\"naturalAsc\"] = 7] = \"naturalAsc\";\n VariableSort2[VariableSort2[\"naturalDesc\"] = 8] = \"naturalDesc\";\n VariableSort2[VariableSort2[\"numericalAsc\"] = 3] = \"numericalAsc\";\n VariableSort2[VariableSort2[\"numericalDesc\"] = 4] = \"numericalDesc\";\n return VariableSort2;\n})(VariableSort || {});\nconst defaultDashboardLink = {\n asDropdown: false,\n includeVars: false,\n keepTime: false,\n tags: [],\n targetBlank: false\n};\nvar FieldColorModeId = /* @__PURE__ */ ((FieldColorModeId2) => {\n FieldColorModeId2[\"ContinuousBlPu\"] = \"continuous-BlPu\";\n FieldColorModeId2[\"ContinuousBlYlRd\"] = \"continuous-BlYlRd\";\n FieldColorModeId2[\"ContinuousBlues\"] = \"continuous-blues\";\n FieldColorModeId2[\"ContinuousGrYlRd\"] = \"continuous-GrYlRd\";\n FieldColorModeId2[\"ContinuousGreens\"] = \"continuous-greens\";\n FieldColorModeId2[\"ContinuousPurples\"] = \"continuous-purples\";\n FieldColorModeId2[\"ContinuousRdYlGr\"] = \"continuous-RdYlGr\";\n FieldColorModeId2[\"ContinuousReds\"] = \"continuous-reds\";\n FieldColorModeId2[\"ContinuousYlBl\"] = \"continuous-YlBl\";\n FieldColorModeId2[\"ContinuousYlRd\"] = \"continuous-YlRd\";\n FieldColorModeId2[\"Fixed\"] = \"fixed\";\n FieldColorModeId2[\"PaletteClassic\"] = \"palette-classic\";\n FieldColorModeId2[\"PaletteClassicByName\"] = \"palette-classic-by-name\";\n FieldColorModeId2[\"Shades\"] = \"shades\";\n FieldColorModeId2[\"Thresholds\"] = \"thresholds\";\n return FieldColorModeId2;\n})(FieldColorModeId || {});\nconst defaultGridPos = {\n h: 9,\n w: 12,\n x: 0,\n y: 0\n};\nvar ThresholdsMode = /* @__PURE__ */ ((ThresholdsMode2) => {\n ThresholdsMode2[\"Absolute\"] = \"absolute\";\n ThresholdsMode2[\"Percentage\"] = \"percentage\";\n return ThresholdsMode2;\n})(ThresholdsMode || {});\nconst defaultThresholdsConfig = {\n steps: []\n};\nvar MappingType = /* @__PURE__ */ ((MappingType2) => {\n MappingType2[\"RangeToText\"] = \"range\";\n MappingType2[\"RegexToText\"] = \"regex\";\n MappingType2[\"SpecialValue\"] = \"special\";\n MappingType2[\"ValueToText\"] = \"value\";\n return MappingType2;\n})(MappingType || {});\nvar SpecialValueMatch = /* @__PURE__ */ ((SpecialValueMatch2) => {\n SpecialValueMatch2[\"Empty\"] = \"empty\";\n SpecialValueMatch2[\"False\"] = \"false\";\n SpecialValueMatch2[\"NaN\"] = \"nan\";\n SpecialValueMatch2[\"Null\"] = \"null\";\n SpecialValueMatch2[\"NullAndNan\"] = \"null+nan\";\n SpecialValueMatch2[\"True\"] = \"true\";\n return SpecialValueMatch2;\n})(SpecialValueMatch || {});\nconst defaultTimePickerConfig = {\n hidden: false,\n refresh_intervals: [\"5s\", \"10s\", \"30s\", \"1m\", \"5m\", \"15m\", \"30m\", \"1h\", \"2h\", \"1d\"],\n time_options: [\"5m\", \"15m\", \"1h\", \"6h\", \"12h\", \"24h\", \"2d\", \"7d\", \"30d\"]\n};\nvar DashboardCursorSync = /* @__PURE__ */ ((DashboardCursorSync2) => {\n DashboardCursorSync2[DashboardCursorSync2[\"Crosshair\"] = 1] = \"Crosshair\";\n DashboardCursorSync2[DashboardCursorSync2[\"Off\"] = 0] = \"Off\";\n DashboardCursorSync2[DashboardCursorSync2[\"Tooltip\"] = 2] = \"Tooltip\";\n return DashboardCursorSync2;\n})(DashboardCursorSync || {});\nconst defaultDashboardCursorSync = 0 /* Off */;\nconst defaultPanel = {\n links: [],\n repeatDirection: \"h\",\n targets: [],\n transformations: [],\n transparent: false\n};\nconst defaultFieldConfigSource = {\n overrides: []\n};\nconst defaultMatcherConfig = {\n id: \"\"\n};\nconst defaultFieldConfig = {\n links: [],\n mappings: []\n};\nconst defaultRowPanel = {\n collapsed: false,\n panels: []\n};\nconst defaultDashboard = {\n editable: true,\n fiscalYearStartMonth: 0,\n graphTooltip: 0 /* Off */,\n links: [],\n panels: [],\n schemaVersion: 39,\n tags: [],\n timezone: \"browser\"\n};\n\nexport { DashboardCursorSync, FieldColorModeId, MappingType, SpecialValueMatch, ThresholdsMode, VariableRefresh, VariableSort, defaultAnnotationContainer, defaultAnnotationPanelFilter, defaultAnnotationQuery, defaultAnnotationTarget, defaultDashboard, defaultDashboardCursorSync, defaultDashboardLink, defaultFieldConfig, defaultFieldConfigSource, defaultGridPos, defaultMatcherConfig, defaultPanel, defaultRowPanel, defaultThresholdsConfig, defaultTimePickerConfig, defaultVariableModel };\n//# sourceMappingURL=dashboard_types.gen.js.map\n","var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === errorMap ? undefined : errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" &&\n (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nvar _ZodEnum_cache, _ZodNativeEnum_cache;\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n var _a, _b;\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message !== null && message !== void 0 ? message : ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n var _a, _b;\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if ((_b = (_a = err === null || err === void 0 ? void 0 : err.message) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n // let regex = `\\\\d{2}:\\\\d{2}:\\\\d{2}`;\n let regex = `([01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d`;\n if (args.precision) {\n regex = `${regex}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n regex = `${regex}(\\\\.\\\\d+)?`;\n }\n return regex;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nfunction datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (!decoded.typ || !decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a, _b;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n local: (_b = options === null || options === void 0 ? void 0 : options.local) !== null && _b !== void 0 ? _b : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch (_a) {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // (def: Def) =>\n // (\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge(\n // merging: Incoming\n // ): //ZodObject = (merging) => {\n // ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodEnum_cache.set(this, void 0);\n }\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\").has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\n_ZodEnum_cache = new WeakMap();\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodNativeEnum_cache.set(this, void 0);\n }\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\").has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\n_ZodNativeEnum_cache = new WeakMap();\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result)\n ? result.then((data) => freeze(data))\n : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nfunction custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n var _a, _b;\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = (_b = (_a = params.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar z = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n get objectUtil () { return objectUtil; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n datetimeRegex: datetimeRegex,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n ZodReadonly: ZodReadonly,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPipeline, ZodPromise, ZodReadonly, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, coerce, custom, dateType as date, datetimeRegex, z as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, util, voidType as void, z };\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nvar _utils = require(\"./utils\");\n\nvar _responsiveUtils = require(\"./responsiveUtils\");\n\nvar _ReactGridLayout = _interopRequireDefault(require(\"./ReactGridLayout\"));\n\nvar _excluded = [\"breakpoint\", \"breakpoints\", \"cols\", \"layouts\", \"margin\", \"containerPadding\", \"onBreakpointChange\", \"onLayoutChange\", \"onWidthChange\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// $FlowFixMe[method-unbinding]\nvar type = function type(obj) {\n return Object.prototype.toString.call(obj);\n};\n/**\n * Get a value of margin or containerPadding.\n *\n * @param {Array | Object} param Margin | containerPadding, e.g. [10, 10] | {lg: [10, 10], ...}.\n * @param {String} breakpoint Breakpoint: lg, md, sm, xs and etc.\n * @return {Array}\n */\n\n\nfunction getIndentationValue\n/*:: */\n(param\n/*: { [key: string]: T } | T*/\n, breakpoint\n/*: string*/\n)\n/*: T*/\n{\n // $FlowIgnore TODO fix this typedef\n if (param == null) return null; // $FlowIgnore TODO fix this typedef\n\n return Array.isArray(param) ? param : param[breakpoint];\n}\n/*:: type State = {\n layout: Layout,\n breakpoint: string,\n cols: number,\n layouts?: ResponsiveLayout\n};*/\n\n/*:: type Props = {|\n ...React.ElementConfig,\n\n // Responsive config\n breakpoint?: ?Breakpoint,\n breakpoints: Breakpoints,\n cols: { [key: Breakpoint]: number },\n layouts: ResponsiveLayout,\n width: number,\n margin: { [key: Breakpoint]: [number, number] } | [number, number],\n /* prettier-ignore *-/\n containerPadding: { [key: Breakpoint]: ?[number, number] } | ?[number, number],\n\n // Callbacks\n onBreakpointChange: (Breakpoint, cols: number) => void,\n onLayoutChange: OnLayoutChangeCallback,\n onWidthChange: (\n containerWidth: number,\n margin: [number, number],\n cols: number,\n containerPadding: ?[number, number]\n ) => void\n|};*/\n\n/*:: type DefaultProps = Pick<\n Props<>,\n {|\n allowOverlap: 0,\n breakpoints: 0,\n cols: 0,\n containerPadding: 0,\n layouts: 0,\n margin: 0,\n onBreakpointChange: 0,\n onLayoutChange: 0,\n onWidthChange: 0\n |}\n>;*/\n\n\nvar ResponsiveReactGridLayout = /*#__PURE__*/function (_React$Component) {\n _inherits(ResponsiveReactGridLayout, _React$Component);\n\n var _super = _createSuper(ResponsiveReactGridLayout);\n\n function ResponsiveReactGridLayout() {\n var _this;\n\n _classCallCheck(this, ResponsiveReactGridLayout);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", _this.generateInitialState());\n\n _defineProperty(_assertThisInitialized(_this), \"onLayoutChange\", function (layout\n /*: Layout*/\n ) {\n _this.props.onLayoutChange(layout, _objectSpread(_objectSpread({}, _this.props.layouts), {}, _defineProperty({}, _this.state.breakpoint, layout)));\n });\n\n return _this;\n }\n\n _createClass(ResponsiveReactGridLayout, [{\n key: \"generateInitialState\",\n value: function generateInitialState()\n /*: State*/\n {\n var _this$props = this.props,\n width = _this$props.width,\n breakpoints = _this$props.breakpoints,\n layouts = _this$props.layouts,\n cols = _this$props.cols;\n var breakpoint = (0, _responsiveUtils.getBreakpointFromWidth)(breakpoints, width);\n var colNo = (0, _responsiveUtils.getColsFromBreakpoint)(breakpoint, cols); // verticalCompact compatibility, now deprecated\n\n var compactType = this.props.verticalCompact === false ? null : this.props.compactType; // Get the initial layout. This can tricky; we try to generate one however possible if one doesn't exist\n // for this layout.\n\n var initialLayout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(layouts, breakpoints, breakpoint, breakpoint, colNo, compactType);\n return {\n layout: initialLayout,\n breakpoint: breakpoint,\n cols: colNo\n };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps\n /*: Props<*>*/\n ) {\n // Allow parent to set width or breakpoint directly.\n if (this.props.width != prevProps.width || this.props.breakpoint !== prevProps.breakpoint || !(0, _lodash.default)(this.props.breakpoints, prevProps.breakpoints) || !(0, _lodash.default)(this.props.cols, prevProps.cols)) {\n this.onWidthChange(prevProps);\n }\n } // wrap layouts so we do not need to pass layouts to child\n\n }, {\n key: \"onWidthChange\",\n value:\n /**\n * When the width changes work through breakpoints and reset state with the new width & breakpoint.\n * Width changes are necessary to figure out the widget widths.\n */\n function onWidthChange(prevProps\n /*: Props<*>*/\n ) {\n var _this$props2 = this.props,\n breakpoints = _this$props2.breakpoints,\n cols = _this$props2.cols,\n layouts = _this$props2.layouts,\n compactType = _this$props2.compactType;\n var newBreakpoint = this.props.breakpoint || (0, _responsiveUtils.getBreakpointFromWidth)(this.props.breakpoints, this.props.width);\n var lastBreakpoint = this.state.breakpoint;\n var newCols\n /*: number*/\n = (0, _responsiveUtils.getColsFromBreakpoint)(newBreakpoint, cols);\n\n var newLayouts = _objectSpread({}, layouts); // Breakpoint change\n\n\n if (lastBreakpoint !== newBreakpoint || prevProps.breakpoints !== breakpoints || prevProps.cols !== cols) {\n // Preserve the current layout if the current breakpoint is not present in the next layouts.\n if (!(lastBreakpoint in newLayouts)) newLayouts[lastBreakpoint] = (0, _utils.cloneLayout)(this.state.layout); // Find or generate a new layout.\n\n var layout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(newLayouts, breakpoints, newBreakpoint, lastBreakpoint, newCols, compactType); // This adds missing items.\n\n layout = (0, _utils.synchronizeLayoutWithChildren)(layout, this.props.children, newCols, compactType, this.props.allowOverlap); // Store the new layout.\n\n newLayouts[newBreakpoint] = layout; // callbacks\n\n this.props.onLayoutChange(layout, newLayouts);\n this.props.onBreakpointChange(newBreakpoint, newCols);\n this.setState({\n breakpoint: newBreakpoint,\n layout: layout,\n cols: newCols\n });\n }\n\n var margin = getIndentationValue(this.props.margin, newBreakpoint);\n var containerPadding = getIndentationValue(this.props.containerPadding, newBreakpoint); //call onWidthChange on every change of width, not only on breakpoint changes\n\n this.props.onWidthChange(this.props.width, margin, newCols, containerPadding);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element*/\n {\n /* eslint-disable no-unused-vars */\n var _this$props3 = this.props,\n breakpoint = _this$props3.breakpoint,\n breakpoints = _this$props3.breakpoints,\n cols = _this$props3.cols,\n layouts = _this$props3.layouts,\n margin = _this$props3.margin,\n containerPadding = _this$props3.containerPadding,\n onBreakpointChange = _this$props3.onBreakpointChange,\n onLayoutChange = _this$props3.onLayoutChange,\n onWidthChange = _this$props3.onWidthChange,\n other = _objectWithoutProperties(_this$props3, _excluded);\n /* eslint-enable no-unused-vars */\n\n\n return /*#__PURE__*/React.createElement(_ReactGridLayout.default, _extends({}, other, {\n // $FlowIgnore should allow nullable here due to DefaultProps\n margin: getIndentationValue(margin, this.state.breakpoint),\n containerPadding: getIndentationValue(containerPadding, this.state.breakpoint),\n onLayoutChange: this.onLayoutChange,\n layout: this.state.layout,\n cols: this.state.cols\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps\n /*: Props<*>*/\n , prevState\n /*: State*/\n )\n /*: ?$Shape*/\n {\n if (!(0, _lodash.default)(nextProps.layouts, prevState.layouts)) {\n // Allow parent to set layouts directly.\n var breakpoint = prevState.breakpoint,\n _cols = prevState.cols; // Since we're setting an entirely new layout object, we must generate a new responsive layout\n // if one does not exist.\n\n var newLayout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(nextProps.layouts, nextProps.breakpoints, breakpoint, breakpoint, _cols, nextProps.compactType);\n return {\n layout: newLayout,\n layouts: nextProps.layouts\n };\n }\n\n return null;\n }\n }]);\n\n return ResponsiveReactGridLayout;\n}(React.Component);\n\nexports.default = ResponsiveReactGridLayout;\n\n_defineProperty(ResponsiveReactGridLayout, \"propTypes\", {\n //\n // Basic props\n //\n // Optional, but if you are managing width yourself you may want to set the breakpoint\n // yourself as well.\n breakpoint: _propTypes.default.string,\n // {name: pxVal}, e.g. {lg: 1200, md: 996, sm: 768, xs: 480}\n breakpoints: _propTypes.default.object,\n allowOverlap: _propTypes.default.bool,\n // # of cols. This is a breakpoint -> cols map\n cols: _propTypes.default.object,\n // # of margin. This is a breakpoint -> margin map\n // e.g. { lg: [5, 5], md: [10, 10], sm: [15, 15] }\n // Margin between items [x, y] in px\n // e.g. [10, 10]\n margin: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),\n // # of containerPadding. This is a breakpoint -> containerPadding map\n // e.g. { lg: [5, 5], md: [10, 10], sm: [15, 15] }\n // Padding inside the container [x, y] in px\n // e.g. [10, 10]\n containerPadding: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),\n // layouts is an object mapping breakpoints to layouts.\n // e.g. {lg: Layout, md: Layout, ...}\n layouts: function layouts(props\n /*: Props<>*/\n , propName\n /*: string*/\n ) {\n if (type(props[propName]) !== \"[object Object]\") {\n throw new Error(\"Layout property must be an object. Received: \" + type(props[propName]));\n }\n\n Object.keys(props[propName]).forEach(function (key) {\n if (!(key in props.breakpoints)) {\n throw new Error(\"Each key in layouts must align with a key in breakpoints.\");\n }\n\n (0, _utils.validateLayout)(props.layouts[key], \"layouts.\" + key);\n });\n },\n // The width of this component.\n // Required in this propTypes stanza because generateInitialState() will fail without it.\n width: _propTypes.default.number.isRequired,\n //\n // Callbacks\n //\n // Calls back with breakpoint and new # cols\n onBreakpointChange: _propTypes.default.func,\n // Callback so you can save the layout.\n // Calls back with (currentLayout, allLayouts). allLayouts are keyed by breakpoint.\n onLayoutChange: _propTypes.default.func,\n // Calls back with (containerWidth, margin, cols, containerPadding)\n onWidthChange: _propTypes.default.func\n});\n\n_defineProperty(ResponsiveReactGridLayout, \"defaultProps\", {\n breakpoints: {\n lg: 1200,\n md: 996,\n sm: 768,\n xs: 480,\n xxs: 0\n },\n cols: {\n lg: 12,\n md: 10,\n sm: 6,\n xs: 4,\n xxs: 2\n },\n containerPadding: {\n lg: null,\n md: null,\n sm: null,\n xs: null,\n xxs: null\n },\n layouts: {},\n margin: [10, 10],\n allowOverlap: false,\n onBreakpointChange: _utils.noop,\n onLayoutChange: _utils.noop,\n onWidthChange: _utils.noop\n});","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort:\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast =\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort:\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays:\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Kurdish [ku-kmr]\n//! authors : Mazlum Özdogan : https://github.com/mergehez\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(num, withoutSuffix, key, isFuture) {\n var format = {\n s: ['çend sanîye', 'çend sanîyeyan'],\n ss: [num + ' sanîye', num + ' sanîyeyan'],\n m: ['deqîqeyek', 'deqîqeyekê'],\n mm: [num + ' deqîqe', num + ' deqîqeyan'],\n h: ['saetek', 'saetekê'],\n hh: [num + ' saet', num + ' saetan'],\n d: ['rojek', 'rojekê'],\n dd: [num + ' roj', num + ' rojan'],\n w: ['hefteyek', 'hefteyekê'],\n ww: [num + ' hefte', num + ' hefteyan'],\n M: ['mehek', 'mehekê'],\n MM: [num + ' meh', num + ' mehan'],\n y: ['salek', 'salekê'],\n yy: [num + ' sal', num + ' salan'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n // function obliqueNumSuffix(num) {\n // if(num.includes(':'))\n // num = parseInt(num.split(':')[0]);\n // else\n // num = parseInt(num);\n // return num == 0 || num % 10 == 1 ? 'ê'\n // : (num > 10 && num % 10 == 0 ? 'î' : 'an');\n // }\n function ezafeNumSuffix(num) {\n num = '' + num;\n var l = num.substring(num.length - 1),\n ll = num.length > 1 ? num.substring(num.length - 2) : '';\n if (\n !(ll == 12 || ll == 13) &&\n (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')\n )\n return 'yê';\n return 'ê';\n }\n\n var kuKmr = moment.defineLocale('ku-kmr', {\n // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)\n // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'\n // But the names below are more well known and handy\n months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split(\n '_'\n ),\n monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),\n monthsParseExact: true,\n weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),\n weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),\n weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'bn' : 'BN';\n } else {\n return isLower ? 'pn' : 'PN';\n }\n },\n meridiemParse: /bn|BN|pn|PN/,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[a] YYYY[an]',\n LLL: 'Do MMMM[a] YYYY[an] HH:mm',\n LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',\n ll: 'Do MMM[.] YYYY[an]',\n lll: 'Do MMM[.] YYYY[an] HH:mm',\n llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm',\n },\n calendar: {\n sameDay: '[Îro di saet] LT [de]',\n nextDay: '[Sibê di saet] LT [de]',\n nextWeek: 'dddd [di saet] LT [de]',\n lastDay: '[Duh di saet] LT [de]',\n lastWeek: 'dddd[a borî di saet] LT [de]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'di %s de',\n past: 'berî %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(?:yê|ê|\\.)/,\n ordinal: function (num, period) {\n var p = period.toLowerCase();\n if (p.includes('w') || p.includes('m')) return num + '.';\n\n return num + ezafeNumSuffix(num);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return kuKmr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n\n return number + ' ' + word;\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone:\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","import { defaultDashboard as defaultDashboard$1, defaultVariableModel as defaultVariableModel$1, defaultTimePickerConfig as defaultTimePickerConfig$1, defaultPanel as defaultPanel$1, defaultRowPanel as defaultRowPanel$1, defaultFieldConfig as defaultFieldConfig$1, defaultFieldConfigSource as defaultFieldConfigSource$1, defaultMatcherConfig as defaultMatcherConfig$1, defaultAnnotationQuery as defaultAnnotationQuery$1, defaultAnnotationContainer as defaultAnnotationContainer$1 } from '../raw/dashboard/x/dashboard_types.gen.js';\n\nvar VariableHide = /* @__PURE__ */ ((VariableHide2) => {\n VariableHide2[VariableHide2[\"dontHide\"] = 0] = \"dontHide\";\n VariableHide2[VariableHide2[\"hideLabel\"] = 1] = \"hideLabel\";\n VariableHide2[VariableHide2[\"hideVariable\"] = 2] = \"hideVariable\";\n return VariableHide2;\n})(VariableHide || {});\nconst defaultDashboard = defaultDashboard$1;\nconst defaultVariableModel = {\n ...defaultVariableModel$1\n};\nconst defaultTimePickerConfig = defaultTimePickerConfig$1;\nconst defaultPanel = defaultPanel$1;\nconst defaultRowPanel = defaultRowPanel$1;\nconst defaultFieldConfig = defaultFieldConfig$1;\nconst defaultFieldConfigSource = defaultFieldConfigSource$1;\nconst defaultMatcherConfig = defaultMatcherConfig$1;\nconst defaultAnnotationQuery = defaultAnnotationQuery$1;\nconst defaultAnnotationContainer = defaultAnnotationContainer$1;\n\nexport { VariableHide, defaultAnnotationContainer, defaultAnnotationQuery, defaultDashboard, defaultFieldConfig, defaultFieldConfigSource, defaultMatcherConfig, defaultPanel, defaultRowPanel, defaultTimePickerConfig, defaultVariableModel };\n//# sourceMappingURL=dashboard.types.js.map\n","import {useEffect as $Vsl8o$useEffect} from \"react\";\n\n\nfunction $9daab02d461809db$var$hasResizeObserver() {\n return typeof window.ResizeObserver !== 'undefined';\n}\nfunction $9daab02d461809db$export$683480f191c0e3ea(options) {\n const { ref: ref, box: box, onResize: onResize } = options;\n (0, $Vsl8o$useEffect)(()=>{\n let element = ref === null || ref === void 0 ? void 0 : ref.current;\n if (!element) return;\n if (!$9daab02d461809db$var$hasResizeObserver()) {\n window.addEventListener('resize', onResize, false);\n return ()=>{\n window.removeEventListener('resize', onResize, false);\n };\n } else {\n const resizeObserverInstance = new window.ResizeObserver((entries)=>{\n if (!entries.length) return;\n onResize();\n });\n resizeObserverInstance.observe(element, {\n box: box\n });\n return ()=>{\n if (element) resizeObserverInstance.unobserve(element);\n };\n }\n }, [\n onResize,\n ref,\n box\n ]);\n}\n\n\nexport {$9daab02d461809db$export$683480f191c0e3ea as useResizeObserver};\n//# sourceMappingURL=useResizeObserver.module.js.map\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays:\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays:\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! author : Rasid Redzic : https://github.com/rasidre\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 'm':\n return withoutSuffix\n ? 'jedna minuta'\n : isFuture\n ? 'jednu minutu'\n : 'jedne minute';\n }\n }\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jedan sat';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: processRelativeTime,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative =\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective =\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays:\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","\"use strict\";\n\nexports.__esModule = true;\nexports.resizableProps = void 0;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _reactDraggable = require(\"react-draggable\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar resizableProps = {\n /*\n * Restricts resizing to a particular axis (default: 'both')\n * 'both' - allows resizing by width or height\n * 'x' - only allows the width to be changed\n * 'y' - only allows the height to be changed\n * 'none' - disables resizing altogether\n * */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n className: _propTypes.default.string,\n /*\n * Require that one and only one child be present.\n * */\n children: _propTypes.default.element.isRequired,\n /*\n * These will be passed wholesale to react-draggable's DraggableCore\n * */\n draggableOpts: _propTypes.default.shape({\n allowAnyClick: _propTypes.default.bool,\n cancel: _propTypes.default.string,\n children: _propTypes.default.node,\n disabled: _propTypes.default.bool,\n enableUserSelectHack: _propTypes.default.bool,\n offsetParent: _propTypes.default.node,\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n handle: _propTypes.default.string,\n nodeRef: _propTypes.default.object,\n onStart: _propTypes.default.func,\n onDrag: _propTypes.default.func,\n onStop: _propTypes.default.func,\n onMouseDown: _propTypes.default.func,\n scale: _propTypes.default.number\n }),\n /*\n * Initial height\n * */\n height: function height() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var props = args[0];\n // Required if resizing height or both\n if (props.axis === 'both' || props.axis === 'y') {\n var _PropTypes$number;\n return (_PropTypes$number = _propTypes.default.number).isRequired.apply(_PropTypes$number, args);\n }\n return _propTypes.default.number.apply(_propTypes.default, args);\n },\n /*\n * Customize cursor resize handle\n * */\n handle: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),\n /*\n * If you change this, be sure to update your css\n * */\n handleSize: _propTypes.default.arrayOf(_propTypes.default.number),\n lockAspectRatio: _propTypes.default.bool,\n /*\n * Max X & Y measure\n * */\n maxConstraints: _propTypes.default.arrayOf(_propTypes.default.number),\n /*\n * Min X & Y measure\n * */\n minConstraints: _propTypes.default.arrayOf(_propTypes.default.number),\n /*\n * Called on stop resize event\n * */\n onResizeStop: _propTypes.default.func,\n /*\n * Called on start resize event\n * */\n onResizeStart: _propTypes.default.func,\n /*\n * Called on resize event\n * */\n onResize: _propTypes.default.func,\n /*\n * Defines which resize handles should be rendered (default: 'se')\n * 's' - South handle (bottom-center)\n * 'w' - West handle (left-center)\n * 'e' - East handle (right-center)\n * 'n' - North handle (top-center)\n * 'sw' - Southwest handle (bottom-left)\n * 'nw' - Northwest handle (top-left)\n * 'se' - Southeast handle (bottom-right)\n * 'ne' - Northeast handle (top-center)\n * */\n resizeHandles: _propTypes.default.arrayOf(_propTypes.default.oneOf(['s', 'w', 'e', 'n', 'sw', 'nw', 'se', 'ne'])),\n /*\n * If `transform: scale(n)` is set on the parent, this should be set to `n`.\n * */\n transformScale: _propTypes.default.number,\n /*\n * Initial width\n */\n width: function width() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var props = args[0];\n // Required if resizing width or both\n if (props.axis === 'both' || props.axis === 'x') {\n var _PropTypes$number2;\n return (_PropTypes$number2 = _propTypes.default.number).isRequired.apply(_PropTypes$number2, args);\n }\n return _propTypes.default.number.apply(_propTypes.default, args);\n }\n};\nexports.resizableProps = resizableProps;","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort:\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort:\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _Resizable = _interopRequireDefault(require(\"./Resizable\"));\nvar _propTypes2 = require(\"./propTypes\");\nvar _excluded = [\"handle\", \"handleSize\", \"onResize\", \"onResizeStart\", \"onResizeStop\", \"draggableOpts\", \"minConstraints\", \"maxConstraints\", \"lockAspectRatio\", \"axis\", \"width\", \"height\", \"resizeHandles\", \"style\", \"transformScale\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar ResizableBox = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ResizableBox, _React$Component);\n function ResizableBox() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n width: _this.props.width,\n height: _this.props.height,\n propsWidth: _this.props.width,\n propsHeight: _this.props.height\n };\n _this.onResize = function (e, data) {\n var size = data.size;\n if (_this.props.onResize) {\n e.persist == null ? void 0 : e.persist();\n _this.setState(size, function () {\n return _this.props.onResize && _this.props.onResize(e, data);\n });\n } else {\n _this.setState(size);\n }\n };\n return _this;\n }\n ResizableBox.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n // If parent changes height/width, set that in our state.\n if (state.propsWidth !== props.width || state.propsHeight !== props.height) {\n return {\n width: props.width,\n height: props.height,\n propsWidth: props.width,\n propsHeight: props.height\n };\n }\n return null;\n };\n var _proto = ResizableBox.prototype;\n _proto.render = function render() {\n // Basic wrapper around a Resizable instance.\n // If you use Resizable directly, you are responsible for updating the child component\n // with a new width and height.\n var _this$props = this.props,\n handle = _this$props.handle,\n handleSize = _this$props.handleSize,\n onResize = _this$props.onResize,\n onResizeStart = _this$props.onResizeStart,\n onResizeStop = _this$props.onResizeStop,\n draggableOpts = _this$props.draggableOpts,\n minConstraints = _this$props.minConstraints,\n maxConstraints = _this$props.maxConstraints,\n lockAspectRatio = _this$props.lockAspectRatio,\n axis = _this$props.axis,\n width = _this$props.width,\n height = _this$props.height,\n resizeHandles = _this$props.resizeHandles,\n style = _this$props.style,\n transformScale = _this$props.transformScale,\n props = _objectWithoutPropertiesLoose(_this$props, _excluded);\n return /*#__PURE__*/React.createElement(_Resizable.default, {\n axis: axis,\n draggableOpts: draggableOpts,\n handle: handle,\n handleSize: handleSize,\n height: this.state.height,\n lockAspectRatio: lockAspectRatio,\n maxConstraints: maxConstraints,\n minConstraints: minConstraints,\n onResizeStart: onResizeStart,\n onResize: this.onResize,\n onResizeStop: onResizeStop,\n resizeHandles: resizeHandles,\n transformScale: transformScale,\n width: this.state.width\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n style: _objectSpread(_objectSpread({}, style), {}, {\n width: this.state.width + 'px',\n height: this.state.height + 'px'\n })\n })));\n };\n return ResizableBox;\n}(React.Component);\nexports.default = ResizableBox;\n// PropTypes are identical to , except that children are not strictly required to be present.\nResizableBox.propTypes = _objectSpread(_objectSpread({}, _propTypes2.resizableProps), {}, {\n children: _propTypes.default.element\n});","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dontSetMe = dontSetMe;\nexports.findInArray = findInArray;\nexports.int = int;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array /*: Array | TouchList*/, callback /*: Function*/) /*: any*/{\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\nfunction isFunction(func /*: any*/) /*: boolean %checks*/{\n // $FlowIgnore[method-unbinding]\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\nfunction isNum(num /*: any*/) /*: boolean %checks*/{\n return typeof num === 'number' && !isNaN(num);\n}\nfunction int(a /*: string*/) /*: number*/{\n return parseInt(a, 10);\n}\nfunction dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) /*: ?Error*/{\n if (props[propName]) {\n return new Error(\"Invalid prop \".concat(propName, \" passed to \").concat(componentName, \" - do not set this, set it on the child.\"));\n }\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = WidthProvideRGL;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _excluded = [\"measureBeforeMount\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar layoutClassName = \"react-grid-layout\";\n/*\n * A simple HOC that provides facility for listening to container resizes.\n *\n * The Flow type is pretty janky here. I can't just spread `WPProps` into this returned object - I wish I could - but it triggers\n * a flow bug of some sort that causes it to stop typechecking.\n */\n\nfunction WidthProvideRGL\n/*:: */\n(ComposedComponent\n/*: React.AbstractComponent*/\n)\n/*: React.AbstractComponent>*/\n{\n var _class;\n\n return _class = /*#__PURE__*/function (_React$Component) {\n _inherits(WidthProvider, _React$Component);\n\n var _super = _createSuper(WidthProvider);\n\n function WidthProvider() {\n var _this;\n\n _classCallCheck(this, WidthProvider);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n width: 1280\n });\n\n _defineProperty(_assertThisInitialized(_this), \"elementRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResize\", function () {\n if (!_this.mounted) return;\n var node = _this.elementRef.current; // Flow casts this to Text | Element\n // fix: grid position error when node or parentNode display is none by window resize\n // #924 #1084\n\n if (node instanceof HTMLElement && node.offsetWidth) {\n _this.setState({\n width: node.offsetWidth\n });\n }\n });\n\n return _this;\n }\n\n _createClass(WidthProvider, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true;\n window.addEventListener(\"resize\", this.onWindowResize); // Call to properly set the breakpoint and resize the elements.\n // Note that if you're doing a full-width element, this can get a little wonky if a scrollbar\n // appears because of the grid. In that case, fire your own resize event, or set `overflow: scroll` on your body.\n\n this.onWindowResize();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n window.removeEventListener(\"resize\", this.onWindowResize);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n measureBeforeMount = _this$props.measureBeforeMount,\n rest = _objectWithoutProperties(_this$props, _excluded);\n\n if (measureBeforeMount && !this.mounted) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: (0, _clsx.default)(this.props.className, layoutClassName),\n style: this.props.style // $FlowIgnore ref types\n ,\n ref: this.elementRef\n });\n }\n\n return /*#__PURE__*/React.createElement(ComposedComponent, _extends({\n innerRef: this.elementRef\n }, rest, this.state));\n }\n }]);\n\n return WidthProvider;\n }(React.Component), _defineProperty(_class, \"defaultProps\", {\n measureBeforeMount: false\n }), _defineProperty(_class, \"propTypes\", {\n // If true, will not render children until mounted. Useful for getting the exact width before\n // rendering, to prevent any unsightly resizing.\n measureBeforeMount: _propTypes.default.bool\n }), _class;\n}","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resizeHandleType = exports.resizeHandleAxesType = exports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Defines which resize handles should be rendered (default: 'se')\n// Allows for any combination of:\n// 's' - South handle (bottom-center)\n// 'w' - West handle (left-center)\n// 'e' - East handle (right-center)\n// 'n' - North handle (top-center)\n// 'sw' - Southwest handle (bottom-left)\n// 'nw' - Northwest handle (top-left)\n// 'se' - Southeast handle (bottom-right)\n// 'ne' - Northeast handle (top-right)\nvar resizeHandleAxesType\n/*: ReactPropsChainableTypeChecker*/\n= _propTypes.default.arrayOf(_propTypes.default.oneOf([\"s\", \"w\", \"e\", \"n\", \"sw\", \"nw\", \"se\", \"ne\"])); // Custom component for resize handles\n\n\nexports.resizeHandleAxesType = resizeHandleAxesType;\n\nvar resizeHandleType\n/*: ReactPropsChainableTypeChecker*/\n= _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]);\n/*:: export type Props = {|\n className: string,\n style: Object,\n width: number,\n autoSize: boolean,\n cols: number,\n draggableCancel: string,\n draggableHandle: string,\n verticalCompact: boolean,\n compactType: CompactType,\n layout: Layout,\n margin: [number, number],\n containerPadding: ?[number, number],\n rowHeight: number,\n maxRows: number,\n isBounded: boolean,\n isDraggable: boolean,\n isResizable: boolean,\n isDroppable: boolean,\n preventCollision: boolean,\n useCSSTransforms: boolean,\n transformScale: number,\n droppingItem: $Shape,\n resizeHandles: ResizeHandleAxis[],\n resizeHandle?: ResizeHandle,\n allowOverlap: boolean,\n\n // Callbacks\n onLayoutChange: Layout => void,\n onDrag: EventCallback,\n onDragStart: EventCallback,\n onDragStop: EventCallback,\n onResize: EventCallback,\n onResizeStart: EventCallback,\n onResizeStop: EventCallback,\n onDropDragOver: (e: DragOverEvent) => ?({| w?: number, h?: number |} | false),\n onDrop: (layout: Layout, item: ?LayoutItem, e: Event) => void,\n children: ReactChildrenArray>,\n innerRef?: Ref<\"div\">\n|};*/\n\n/*:: export type DefaultProps = $Diff<\n Props,\n {\n children: ReactChildrenArray>,\n width: number\n }\n>;*/\n\n\nexports.resizeHandleType = resizeHandleType;\nvar _default = {\n //\n // Basic props\n //\n className: _propTypes.default.string,\n style: _propTypes.default.object,\n // This can be set explicitly. If it is not set, it will automatically\n // be set to the container width. Note that resizes will *not* cause this to adjust.\n // If you need that behavior, use WidthProvider.\n width: _propTypes.default.number,\n // If true, the container height swells and contracts to fit contents\n autoSize: _propTypes.default.bool,\n // # of cols.\n cols: _propTypes.default.number,\n // A selector that will not be draggable.\n draggableCancel: _propTypes.default.string,\n // A selector for the draggable handler\n draggableHandle: _propTypes.default.string,\n // Deprecated\n verticalCompact: function verticalCompact(props\n /*: Props*/\n ) {\n if (props.verticalCompact === false && process.env.NODE_ENV !== \"production\") {\n console.warn( // eslint-disable-line no-console\n \"`verticalCompact` on is deprecated and will be removed soon. \" + 'Use `compactType`: \"horizontal\" | \"vertical\" | null.');\n }\n },\n // Choose vertical or hotizontal compaction\n compactType: (_propTypes.default.oneOf([\"vertical\", \"horizontal\"])\n /*: ReactPropsChainableTypeChecker*/\n ),\n // layout is an array of object with the format:\n // {x: Number, y: Number, w: Number, h: Number, i: String}\n layout: function layout(props\n /*: Props*/\n ) {\n var layout = props.layout; // I hope you're setting the data-grid property on the grid items\n\n if (layout === undefined) return;\n\n require(\"./utils\").validateLayout(layout, \"layout\");\n },\n //\n // Grid Dimensions\n //\n // Margin between items [x, y] in px\n margin: (_propTypes.default.arrayOf(_propTypes.default.number)\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Padding inside the container [x, y] in px\n containerPadding: (_propTypes.default.arrayOf(_propTypes.default.number)\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Rows have a static height, but you can change this based on breakpoints if you like\n rowHeight: _propTypes.default.number,\n // Default Infinity, but you can specify a max here if you like.\n // Note that this isn't fully fleshed out and won't error if you specify a layout that\n // extends beyond the row capacity. It will, however, not allow users to drag/resize\n // an item past the barrier. They can push items beyond the barrier, though.\n // Intentionally not documented for this reason.\n maxRows: _propTypes.default.number,\n //\n // Flags\n //\n isBounded: _propTypes.default.bool,\n isDraggable: _propTypes.default.bool,\n isResizable: _propTypes.default.bool,\n // If true, grid can be placed one over the other.\n allowOverlap: _propTypes.default.bool,\n // If true, grid items won't change position when being dragged over.\n preventCollision: _propTypes.default.bool,\n // Use CSS transforms instead of top/left\n useCSSTransforms: _propTypes.default.bool,\n // parent layout transform scale\n transformScale: _propTypes.default.number,\n // If true, an external element can trigger onDrop callback with a specific grid position as a parameter\n isDroppable: _propTypes.default.bool,\n // Resize handle options\n resizeHandles: resizeHandleAxesType,\n resizeHandle: resizeHandleType,\n //\n // Callbacks\n //\n // Callback so you can save the layout. Calls after each drag & resize stops.\n onLayoutChange: _propTypes.default.func,\n // Calls when drag starts. Callback is of the signature (layout, oldItem, newItem, placeholder, e, ?node).\n // All callbacks below have the same signature. 'start' and 'stop' callbacks omit the 'placeholder'.\n onDragStart: _propTypes.default.func,\n // Calls on each drag movement.\n onDrag: _propTypes.default.func,\n // Calls when drag is complete.\n onDragStop: _propTypes.default.func,\n //Calls when resize starts.\n onResizeStart: _propTypes.default.func,\n // Calls when resize movement happens.\n onResize: _propTypes.default.func,\n // Calls when resize is complete.\n onResizeStop: _propTypes.default.func,\n // Calls when some element is dropped.\n onDrop: _propTypes.default.func,\n //\n // Other validations\n //\n droppingItem: (_propTypes.default.shape({\n i: _propTypes.default.string.isRequired,\n w: _propTypes.default.number.isRequired,\n h: _propTypes.default.number.isRequired\n })\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Children must not have duplicate keys.\n children: function children(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var children = props[propName]; // Check children keys for duplicates. Throw if found.\n\n var keys = {};\n\n _react.default.Children.forEach(children, function (child) {\n if ((child === null || child === void 0 ? void 0 : child.key) == null) return;\n\n if (keys[child.key]) {\n throw new Error('Duplicate child key \"' + child.key + '\" found! This will cause problems in ReactGridLayout.');\n }\n\n keys[child.key] = true;\n });\n },\n // Optional ref for getting a reference for the wrapping div.\n innerRef: _propTypes.default.any\n};\nexports.default = _default;","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","import { useLocation, useParams, matchPath } from 'react-router-dom';\nimport { urlUtil, locationUtil } from '@grafana/data';\nimport { locationSearchToObject } from '@grafana/runtime';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction useAppQueryParams() {\n const location = useLocation();\n return locationSearchToObject(location.search || \"\");\n}\nfunction getUrlWithAppState(path, searchObject, preserveParams) {\n const paramsCopy = __spreadValues({}, searchObject);\n if (preserveParams) {\n for (const key of Object.keys(paramsCopy)) {\n if (!preserveParams.includes(key)) {\n delete paramsCopy[key];\n }\n }\n }\n return urlUtil.renderUrl(locationUtil.assureBaseUrl(path), paramsCopy);\n}\nfunction useSceneRouteMatch(path) {\n const params = useParams();\n const location = useLocation();\n const isExact = matchPath(\n {\n path,\n caseSensitive: false,\n end: true\n },\n location.pathname\n );\n const match = {\n params,\n isExact: isExact !== null,\n path: location.pathname,\n url: location.pathname\n };\n return match;\n}\n\nexport { getUrlWithAppState, useAppQueryParams, useSceneRouteMatch };\n//# sourceMappingURL=utils.js.map\n","import { getPluginImportUtils } from '@grafana/runtime';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst runtimePanelPlugins = /* @__PURE__ */ new Map();\nfunction registerRuntimePanelPlugin({ pluginId, plugin }) {\n if (runtimePanelPlugins.has(pluginId)) {\n throw new Error(`A runtime panel plugin with id ${pluginId} has already been registered`);\n }\n plugin.meta = __spreadProps(__spreadValues({}, plugin.meta), {\n id: pluginId,\n name: pluginId,\n module: \"runtime plugin\",\n baseUrl: \"runtime plugin\",\n info: {\n author: {\n name: \"Runtime plugin \" + pluginId\n },\n description: \"\",\n links: [],\n logos: {\n large: \"\",\n small: \"\"\n },\n screenshots: [],\n updated: \"\",\n version: \"\"\n }\n });\n runtimePanelPlugins.set(pluginId, plugin);\n}\nfunction loadPanelPluginSync(pluginId) {\n var _a;\n const { getPanelPluginFromCache } = getPluginImportUtils();\n return (_a = getPanelPluginFromCache(pluginId)) != null ? _a : runtimePanelPlugins.get(pluginId);\n}\n\nexport { loadPanelPluginSync, registerRuntimePanelPlugin, runtimePanelPlugins };\n//# sourceMappingURL=registerRuntimePanelPlugin.js.map\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import React, { useState, useEffect } from 'react';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction SceneComponentWrapperWithoutMemo(_a) {\n var _b = _a, { model } = _b, otherProps = __objRest(_b, [\"model\"]);\n var _a2;\n const Component = (_a2 = model.constructor[\"Component\"]) != null ? _a2 : EmptyRenderer;\n const [_, setValue] = useState(0);\n useEffect(() => {\n const unsub = model.activate();\n setValue((prevState) => prevState + 1);\n return unsub;\n }, [model]);\n if (!model.isActive && !model.renderBeforeActivation) {\n return null;\n }\n return /* @__PURE__ */ React.createElement(Component, __spreadProps(__spreadValues({}, otherProps), {\n model\n }));\n}\nconst SceneComponentWrapper = React.memo(SceneComponentWrapperWithoutMemo);\nfunction EmptyRenderer(_) {\n return null;\n}\n\nexport { SceneComponentWrapper };\n//# sourceMappingURL=SceneComponentWrapper.js.map\n","import { BusEventWithPayload } from '@grafana/data';\n\nclass SceneObjectStateChangedEvent extends BusEventWithPayload {\n}\nSceneObjectStateChangedEvent.type = \"scene-object-state-change\";\nclass UserActionEvent extends BusEventWithPayload {\n}\nUserActionEvent.type = \"scene-object-user-action\";\n\nexport { SceneObjectStateChangedEvent, UserActionEvent };\n//# sourceMappingURL=events.js.map\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _ref;\nclass SceneObjectRef {\n constructor(ref) {\n __privateAdd(this, _ref, void 0);\n __privateSet(this, _ref, ref);\n }\n resolve() {\n return __privateGet(this, _ref);\n }\n}\n_ref = new WeakMap();\n\nexport { SceneObjectRef };\n//# sourceMappingURL=SceneObjectRef.js.map\n","import { useState, useEffect } from 'react';\nimport { Subscription } from 'rxjs';\nimport { v4 } from 'uuid';\nimport { EventBusSrv } from '@grafana/data';\nimport { SceneComponentWrapper } from './SceneComponentWrapper.js';\nimport { SceneObjectStateChangedEvent } from './events.js';\nimport { cloneSceneObject } from './sceneGraph/utils.js';\nimport { SceneObjectRef } from './SceneObjectRef.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nclass SceneObjectBase {\n constructor(state) {\n this._isActive = false;\n this._activationHandlers = [];\n this._deactivationHandlers = /* @__PURE__ */ new Map();\n this._subs = new Subscription();\n this._refCount = 0;\n this._renderBeforeActivation = false;\n if (!state.key) {\n state.key = v4();\n }\n this._events = new EventBusSrv();\n this._state = Object.freeze(state);\n this._setParent(this._state);\n }\n get state() {\n return this._state;\n }\n get isActive() {\n return this._isActive;\n }\n get renderBeforeActivation() {\n return this._renderBeforeActivation;\n }\n get parent() {\n return this._parent;\n }\n get variableDependency() {\n return this._variableDependency;\n }\n get urlSync() {\n return this._urlSync;\n }\n get Component() {\n return SceneComponentWrapper;\n }\n _setParent(state) {\n forEachChild(state, (child) => {\n if (child._parent && child._parent !== this) {\n console.warn(\n \"SceneObject already has a parent set that is different from the new parent. You cannot share the same SceneObject instance in multiple scenes or in multiple different places of the same scene graph. Use SceneObject.clone() to duplicate a SceneObject or store a state key reference and use sceneGraph.findObject to locate it.\",\n child,\n this\n );\n }\n child._parent = this;\n });\n }\n clearParent() {\n this._parent = void 0;\n }\n subscribeToState(handler) {\n return this._events.subscribe(SceneObjectStateChangedEvent, (event) => {\n if (event.payload.changedObject === this) {\n handler(event.payload.newState, event.payload.prevState);\n }\n });\n }\n subscribeToEvent(eventType, handler) {\n return this._events.subscribe(eventType, handler);\n }\n setState(update) {\n const prevState = this._state;\n const newState = __spreadValues(__spreadValues({}, this._state), update);\n this._state = Object.freeze(newState);\n this._setParent(update);\n this._handleActivationOfChangedStateProps(prevState, newState);\n this.publishEvent(\n new SceneObjectStateChangedEvent({\n prevState,\n newState,\n partialUpdate: update,\n changedObject: this\n }),\n true\n );\n }\n _handleActivationOfChangedStateProps(prevState, newState) {\n if (!this.isActive) {\n return;\n }\n if (prevState.$behaviors !== newState.$behaviors) {\n this._handleChangedBehaviors(prevState.$behaviors, newState.$behaviors);\n }\n if (prevState.$data !== newState.$data) {\n this._handleChangedStateActivation(prevState.$data, newState.$data);\n }\n if (prevState.$variables !== newState.$variables) {\n this._handleChangedStateActivation(prevState.$variables, newState.$variables);\n }\n if (prevState.$timeRange !== newState.$timeRange) {\n this._handleChangedStateActivation(prevState.$timeRange, newState.$timeRange);\n }\n }\n _handleChangedStateActivation(oldValue, newValue) {\n if (oldValue) {\n const deactivationHandler = this._deactivationHandlers.get(oldValue);\n if (deactivationHandler) {\n deactivationHandler();\n this._deactivationHandlers.delete(oldValue);\n }\n }\n if (newValue) {\n this._deactivationHandlers.set(newValue, newValue.activate());\n }\n }\n _handleChangedBehaviors(oldValue, newValue) {\n if (oldValue) {\n for (const oldBehavior of oldValue) {\n if (!newValue || !newValue.includes(oldBehavior)) {\n const deactivationHandler = this._deactivationHandlers.get(oldBehavior);\n if (deactivationHandler) {\n deactivationHandler();\n this._deactivationHandlers.delete(oldBehavior);\n }\n }\n }\n }\n if (newValue) {\n for (const newBehavior of newValue) {\n if (!oldValue || !oldValue.includes(newBehavior)) {\n this._activateBehavior(newBehavior);\n }\n }\n }\n }\n publishEvent(event, bubble) {\n this._events.publish(event);\n if (bubble && this.parent) {\n this.parent.publishEvent(event, bubble);\n }\n }\n getRoot() {\n return !this._parent ? this : this._parent.getRoot();\n }\n _internalActivate() {\n this._isActive = true;\n const { $data, $variables, $timeRange, $behaviors } = this.state;\n this._activationHandlers.forEach((handler) => {\n const result = handler();\n if (result) {\n this._deactivationHandlers.set(result, result);\n }\n });\n if ($timeRange && !$timeRange.isActive) {\n this._deactivationHandlers.set($timeRange, $timeRange.activate());\n }\n if ($variables && !$variables.isActive) {\n this._deactivationHandlers.set($variables, $variables.activate());\n }\n if ($data && !$data.isActive) {\n this._deactivationHandlers.set($data, $data.activate());\n }\n if ($behaviors) {\n for (const behavior of $behaviors) {\n this._activateBehavior(behavior);\n }\n }\n }\n _activateBehavior(behavior) {\n if (behavior instanceof SceneObjectBase) {\n this._deactivationHandlers.set(behavior, behavior.activate());\n } else if (typeof behavior === \"function\") {\n const deactivate = behavior(this);\n if (deactivate) {\n this._deactivationHandlers.set(behavior, deactivate);\n }\n }\n }\n activate() {\n if (!this.isActive) {\n this._internalActivate();\n }\n this._refCount++;\n let called = false;\n return () => {\n this._refCount--;\n if (called) {\n const msg = `SceneObject cancelation handler returned by activate() called a second time`;\n throw new Error(msg);\n }\n called = true;\n if (this._refCount === 0) {\n this._internalDeactivate();\n }\n };\n }\n _internalDeactivate() {\n this._isActive = false;\n for (let handler of this._deactivationHandlers.values()) {\n handler();\n }\n this._deactivationHandlers.clear();\n this._events.removeAllListeners();\n this._subs.unsubscribe();\n this._subs = new Subscription();\n }\n useState() {\n return useSceneObjectState(this);\n }\n forceRender() {\n this.setState({});\n }\n clone(withState) {\n return cloneSceneObject(this, withState);\n }\n addActivationHandler(handler) {\n this._activationHandlers.push(handler);\n }\n forEachChild(callback) {\n forEachChild(this.state, callback);\n }\n getRef() {\n if (!this._ref) {\n this._ref = new SceneObjectRef(this);\n }\n return this._ref;\n }\n toJSON() {\n return {\n type: Object.getPrototypeOf(this).constructor.name,\n isActive: this.isActive,\n state: this.state\n };\n }\n}\nfunction useSceneObjectState(model, options) {\n var _a;\n const [_, setState] = useState(model.state);\n const stateAtFirstRender = model.state;\n const shouldActivateOrKeepAlive = (_a = options == null ? void 0 : options.shouldActivateOrKeepAlive) != null ? _a : false;\n useEffect(() => {\n let unactivate;\n if (shouldActivateOrKeepAlive) {\n unactivate = model.activate();\n }\n const s = model.subscribeToState((state) => {\n setState(state);\n });\n if (model.state !== stateAtFirstRender) {\n setState(model.state);\n }\n return () => {\n s.unsubscribe();\n if (unactivate) {\n unactivate();\n }\n };\n }, [model, shouldActivateOrKeepAlive]);\n return model.state;\n}\nfunction forEachChild(state, callback) {\n for (const propValue of Object.values(state)) {\n if (propValue instanceof SceneObjectBase) {\n callback(propValue);\n }\n if (Array.isArray(propValue)) {\n for (const child of propValue) {\n if (child instanceof SceneObjectBase) {\n callback(child);\n }\n }\n }\n }\n}\n\nexport { SceneObjectBase, useSceneObjectState };\n//# sourceMappingURL=SceneObjectBase.js.map\n","import { SceneObjectBase } from '../SceneObjectBase.js';\nimport { SceneObjectRef } from '../SceneObjectRef.js';\nimport { cloneDeep } from 'lodash';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction cloneSceneObject(sceneObject, withState) {\n const clonedState = cloneSceneObjectState(sceneObject.state, withState);\n return new sceneObject.constructor(clonedState);\n}\nfunction cloneSceneObjectState(sceneState, withState) {\n const clonedState = __spreadValues({}, sceneState);\n Object.assign(clonedState, withState);\n for (const key in clonedState) {\n if (withState && withState[key] !== void 0) {\n continue;\n }\n const propValue = clonedState[key];\n if (propValue instanceof SceneObjectRef) {\n console.warn(\"Cloning object with SceneObjectRef\");\n continue;\n }\n if (propValue instanceof SceneObjectBase) {\n clonedState[key] = propValue.clone();\n } else if (Array.isArray(propValue)) {\n const newArray = [];\n for (const child of propValue) {\n if (child instanceof SceneObjectBase) {\n newArray.push(child.clone());\n } else if (typeof child === \"object\") {\n newArray.push(cloneDeep(child));\n } else {\n newArray.push(child);\n }\n }\n clonedState[key] = newArray;\n } else if (typeof propValue === \"object\") {\n clonedState[key] = cloneDeep(propValue);\n } else {\n clonedState[key] = propValue;\n }\n }\n return clonedState;\n}\nfunction getClosest(sceneObject, extract) {\n let curSceneObject = sceneObject;\n let extracted = void 0;\n while (curSceneObject && !extracted) {\n extracted = extract(curSceneObject);\n curSceneObject = curSceneObject.parent;\n }\n return extracted;\n}\n\nexport { cloneSceneObject, cloneSceneObjectState, getClosest };\n//# sourceMappingURL=utils.js.map\n","import { DataSourceApi, PluginType } from '@grafana/data';\n\nclass RuntimeDataSource extends DataSourceApi {\n constructor(pluginId, uid) {\n super({\n name: \"RuntimeDataSource-\" + pluginId,\n uid,\n type: pluginId,\n id: 1,\n readOnly: true,\n jsonData: {},\n access: \"direct\",\n meta: {\n id: pluginId,\n name: \"RuntimeDataSource-\" + pluginId,\n type: PluginType.datasource,\n info: {\n author: {\n name: \"\"\n },\n description: \"\",\n links: [],\n logos: {\n large: \"\",\n small: \"\"\n },\n screenshots: [],\n updated: \"\",\n version: \"\"\n },\n module: \"\",\n baseUrl: \"\"\n }\n });\n }\n testDatasource() {\n return Promise.resolve({});\n }\n}\nconst runtimeDataSources = /* @__PURE__ */ new Map();\nfunction registerRuntimeDataSource({ dataSource }) {\n if (runtimeDataSources.has(dataSource.uid)) {\n throw new Error(`A runtime data source with uid ${dataSource.uid} has already been registered`);\n }\n runtimeDataSources.set(dataSource.uid, dataSource);\n}\n\nexport { RuntimeDataSource, registerRuntimeDataSource, runtimeDataSources };\n//# sourceMappingURL=RuntimeDataSource.js.map\n","function lookupVariable(name, sceneObject) {\n const variables = sceneObject.state.$variables;\n if (!variables) {\n if (sceneObject.parent) {\n return lookupVariable(name, sceneObject.parent);\n } else {\n return null;\n }\n }\n const found = variables.getByName(name);\n if (found) {\n return found;\n } else if (sceneObject.parent) {\n return lookupVariable(name, sceneObject.parent);\n }\n return null;\n}\n\nexport { lookupVariable };\n//# sourceMappingURL=lookupVariable.js.map\n","function writeSceneLog(logger, message, ...rest) {\n let loggingEnabled = false;\n if (typeof window !== \"undefined\") {\n loggingEnabled = localStorage.getItem(\"grafana.debug.scenes\") === \"true\";\n }\n if (loggingEnabled) {\n console.log(`${logger}: `, message, ...rest);\n }\n}\n\nexport { writeSceneLog };\n//# sourceMappingURL=writeSceneLog.js.map\n","import { isQueryController } from '../../behaviors/SceneQueryController.js';\n\nfunction getQueryController(sceneObject) {\n let parent = sceneObject;\n while (parent) {\n if (parent.state.$behaviors) {\n for (const behavior of parent.state.$behaviors) {\n if (isQueryController(behavior)) {\n return behavior;\n }\n }\n }\n parent = parent.parent;\n }\n return void 0;\n}\n\nexport { getQueryController };\n//# sourceMappingURL=getQueryController.js.map\n","import { SceneObjectBase } from '../core/SceneObjectBase.js';\nimport { writeSceneLog } from '../utils/writeSceneLog.js';\nimport { SceneRenderProfiler } from './SceneRenderProfiler.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _running, _tryCompleteProfileFrameId;\nfunction isQueryController(s) {\n return \"isQueryController\" in s;\n}\nclass SceneQueryController extends SceneObjectBase {\n constructor(state = {}) {\n super(__spreadProps(__spreadValues({}, state), { isRunning: false }));\n this.isQueryController = true;\n this.profiler = new SceneRenderProfiler(this);\n __privateAdd(this, _running, /* @__PURE__ */ new Set());\n __privateAdd(this, _tryCompleteProfileFrameId, null);\n this.runningQueriesCount = () => {\n return __privateGet(this, _running).size;\n };\n this.addActivationHandler(() => {\n return () => __privateGet(this, _running).clear();\n });\n }\n startProfile(name) {\n if (!this.state.enableProfiling) {\n return;\n }\n this.profiler.startProfile(name);\n }\n queryStarted(entry) {\n __privateGet(this, _running).add(entry);\n this.changeRunningQueryCount(1, entry);\n if (!this.state.isRunning) {\n this.setState({ isRunning: true });\n }\n }\n queryCompleted(entry) {\n if (!__privateGet(this, _running).has(entry)) {\n return;\n }\n __privateGet(this, _running).delete(entry);\n this.changeRunningQueryCount(-1);\n if (__privateGet(this, _running).size === 0) {\n this.setState({ isRunning: false });\n }\n }\n changeRunningQueryCount(dir, entry) {\n var _a;\n window.__grafanaRunningQueryCount = ((_a = window.__grafanaRunningQueryCount) != null ? _a : 0) + dir;\n if (dir === 1 && this.state.enableProfiling) {\n if (entry) {\n this.profiler.addCrumb(`${entry.origin.constructor.name}/${entry.type}`);\n }\n if (this.profiler.isTailRecording()) {\n writeSceneLog(this.constructor.name, \"New query started, cancelling tail recording\");\n this.profiler.cancelTailRecording();\n }\n }\n if (this.state.enableProfiling) {\n if (__privateGet(this, _tryCompleteProfileFrameId)) {\n cancelAnimationFrame(__privateGet(this, _tryCompleteProfileFrameId));\n }\n __privateSet(this, _tryCompleteProfileFrameId, requestAnimationFrame(() => {\n this.profiler.tryCompletingProfile();\n }));\n }\n }\n cancelAll() {\n var _a;\n for (const entry of __privateGet(this, _running).values()) {\n (_a = entry.cancel) == null ? void 0 : _a.call(entry);\n }\n }\n}\n_running = new WeakMap();\n_tryCompleteProfileFrameId = new WeakMap();\n\nexport { SceneQueryController, isQueryController };\n//# sourceMappingURL=SceneQueryController.js.map\n","import { writeSceneLog } from '../utils/writeSceneLog.js';\n\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _profileInProgress, _profileStartTs, _trailAnimationFrameId, _recordedTrailingSpans;\nconst POST_STORM_WINDOW = 2e3;\nconst SPAN_THRESHOLD = 30;\nclass SceneRenderProfiler {\n constructor(queryController) {\n this.queryController = queryController;\n __privateAdd(this, _profileInProgress, null);\n __privateAdd(this, _profileStartTs, null);\n __privateAdd(this, _trailAnimationFrameId, null);\n __privateAdd(this, _recordedTrailingSpans, []);\n this.lastFrameTime = 0;\n this.measureTrailingFrames = (measurementStartTs, lastFrameTime, profileStartTs) => {\n const currentFrameTime = performance.now();\n const frameLength = currentFrameTime - lastFrameTime;\n __privateGet(this, _recordedTrailingSpans).push(frameLength);\n if (currentFrameTime - measurementStartTs < POST_STORM_WINDOW) {\n __privateSet(this, _trailAnimationFrameId, requestAnimationFrame(\n () => this.measureTrailingFrames(measurementStartTs, currentFrameTime, profileStartTs)\n ));\n } else {\n const slowFrames = processRecordedSpans(__privateGet(this, _recordedTrailingSpans));\n const slowFramesTime = slowFrames.reduce((acc, val) => acc + val, 0);\n writeSceneLog(\n this.constructor.name,\n \"Profile tail recorded, slow frames duration:\",\n slowFramesTime,\n slowFrames,\n __privateGet(this, _profileInProgress)\n );\n __privateSet(this, _recordedTrailingSpans, []);\n const profileDuration = measurementStartTs - profileStartTs;\n writeSceneLog(\n this.constructor.name,\n \"Stoped recording, total measured time (network included):\",\n profileDuration + slowFramesTime\n );\n __privateSet(this, _trailAnimationFrameId, null);\n const profileEndTs = profileStartTs + profileDuration + slowFramesTime;\n performance.measure(\"DashboardInteraction\", {\n start: profileStartTs,\n end: profileEndTs\n });\n const networkDuration = captureNetwork(profileStartTs, profileEndTs);\n if (this.queryController.state.onProfileComplete) {\n this.queryController.state.onProfileComplete({\n origin: __privateGet(this, _profileInProgress).origin,\n crumbs: __privateGet(this, _profileInProgress).crumbs,\n duration: profileDuration + slowFramesTime,\n networkDuration,\n jsHeapSizeLimit: performance.memory ? performance.memory.jsHeapSizeLimit : 0,\n usedJSHeapSize: performance.memory ? performance.memory.usedJSHeapSize : 0,\n totalJSHeapSize: performance.memory ? performance.memory.totalJSHeapSize : 0\n });\n }\n if (window.__runs) {\n window.__runs += `${Date.now()}, ${profileDuration + slowFramesTime}\n`;\n } else {\n window.__runs = `${Date.now()}, ${profileDuration + slowFramesTime}\n`;\n }\n }\n };\n }\n startProfile(name) {\n if (__privateGet(this, _trailAnimationFrameId)) {\n cancelAnimationFrame(__privateGet(this, _trailAnimationFrameId));\n __privateSet(this, _trailAnimationFrameId, null);\n writeSceneLog(this.constructor.name, \"New profile: Stopped recording frames\");\n }\n __privateSet(this, _profileInProgress, { origin: name, crumbs: [] });\n __privateSet(this, _profileStartTs, performance.now());\n writeSceneLog(this.constructor.name, \"Profile started:\", __privateGet(this, _profileInProgress), __privateGet(this, _profileStartTs));\n }\n recordProfileTail(measurementStartTime, profileStartTs) {\n __privateSet(this, _trailAnimationFrameId, requestAnimationFrame(\n () => this.measureTrailingFrames(measurementStartTime, measurementStartTime, profileStartTs)\n ));\n }\n tryCompletingProfile() {\n writeSceneLog(this.constructor.name, \"Trying to complete profile\", __privateGet(this, _profileInProgress));\n if (this.queryController.runningQueriesCount() === 0 && __privateGet(this, _profileInProgress)) {\n writeSceneLog(this.constructor.name, \"All queries completed, stopping profile\");\n this.recordProfileTail(performance.now(), __privateGet(this, _profileStartTs));\n }\n }\n isTailRecording() {\n return Boolean(__privateGet(this, _trailAnimationFrameId));\n }\n cancelTailRecording() {\n if (__privateGet(this, _trailAnimationFrameId)) {\n cancelAnimationFrame(__privateGet(this, _trailAnimationFrameId));\n __privateSet(this, _trailAnimationFrameId, null);\n writeSceneLog(this.constructor.name, \"Cancelled recording frames, new profile started\");\n }\n }\n addCrumb(crumb) {\n if (__privateGet(this, _profileInProgress)) {\n __privateGet(this, _profileInProgress).crumbs.push(crumb);\n }\n }\n}\n_profileInProgress = new WeakMap();\n_profileStartTs = new WeakMap();\n_trailAnimationFrameId = new WeakMap();\n_recordedTrailingSpans = new WeakMap();\nfunction processRecordedSpans(spans) {\n for (let i = spans.length - 1; i >= 0; i--) {\n if (spans[i] > SPAN_THRESHOLD) {\n return spans.slice(0, i + 1);\n }\n }\n return [spans[0]];\n}\nfunction captureNetwork(startTs, endTs) {\n const entries = performance.getEntriesByType(\"resource\");\n performance.clearResourceTimings();\n const networkEntries = entries.filter((entry) => entry.startTime >= startTs && entry.startTime <= endTs);\n for (const entry of networkEntries) {\n performance.measure(\"Network entry \" + entry.name, {\n start: entry.startTime,\n end: entry.responseEnd\n });\n }\n return calculateNetworkTime(networkEntries);\n}\nfunction calculateNetworkTime(requests) {\n if (requests.length === 0) {\n return 0;\n }\n requests.sort((a, b) => a.startTime - b.startTime);\n let totalNetworkTime = 0;\n let currentStart = requests[0].startTime;\n let currentEnd = requests[0].responseEnd;\n for (let i = 1; i < requests.length; i++) {\n if (requests[i].startTime <= currentEnd) {\n currentEnd = Math.max(currentEnd, requests[i].responseEnd);\n } else {\n totalNetworkTime += currentEnd - currentStart;\n currentStart = requests[i].startTime;\n currentEnd = requests[i].responseEnd;\n }\n }\n totalNetworkTime += currentEnd - currentStart;\n return totalNetworkTime;\n}\n\nexport { SceneRenderProfiler, calculateNetworkTime, processRecordedSpans };\n//# sourceMappingURL=SceneRenderProfiler.js.map\n","import { TableCellDisplayMode } from '../common/common.gen.js';\nexport { AxisColorMode, AxisPlacement, BarAlignment, BarGaugeDisplayMode, BarGaugeNamePlacement, BarGaugeSizing, BarGaugeValueMode, BigValueColorMode, BigValueGraphMode, BigValueJustifyMode, BigValueTextMode, ComparisonOperation, DataTopic, FrameGeometrySourceMode, GraphDrawStyle, GraphGradientMode, GraphThresholdsStyleMode, GraphTransform, HeatmapCalculationMode, HeatmapCellLayout, LegendDisplayMode, LineInterpolation, LogsDedupStrategy, LogsSortOrder, PercentChangeColorMode, ResourceDimensionMode, ScalarDimensionMode, ScaleDimensionMode, ScaleDirection, ScaleDistribution, ScaleOrientation, SortOrder, StackingMode, TableCellBackgroundDisplayMode, TableCellHeight, TextDimensionMode, TooltipDisplayMode, VariableFormatID, VisibilityMode, VizOrientation, defaultLineStyle, defaultOptionsWithTimezones, defaultReduceDataOptions, defaultTableFooterOptions, defaultTimeZone, defaultVizLegendOptions } from '../common/common.gen.js';\n\nconst defaultTableFieldOptions = {\n align: \"auto\",\n inspect: false,\n cellOptions: {\n type: TableCellDisplayMode.Auto\n }\n};\nvar LoadingState = /* @__PURE__ */ ((LoadingState2) => {\n LoadingState2[\"NotStarted\"] = \"NotStarted\";\n LoadingState2[\"Loading\"] = \"Loading\";\n LoadingState2[\"Streaming\"] = \"Streaming\";\n LoadingState2[\"Done\"] = \"Done\";\n LoadingState2[\"Error\"] = \"Error\";\n return LoadingState2;\n})(LoadingState || {});\n\nexport { LoadingState, TableCellDisplayMode, defaultTableFieldOptions };\n//# sourceMappingURL=common.types.js.map\n","import { getDefaultTimeRange } from '@grafana/data';\nimport { LoadingState } from '@grafana/schema';\nimport { of } from 'rxjs';\nimport { SceneObjectBase } from './SceneObjectBase.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nclass SceneDataNode extends SceneObjectBase {\n constructor(state) {\n super(__spreadValues({\n data: emptyPanelData\n }, state));\n }\n getResultsStream() {\n const result = {\n origin: this,\n data: this.state.data\n };\n return of(result);\n }\n}\nconst emptyPanelData = {\n state: LoadingState.Done,\n series: [],\n timeRange: getDefaultTimeRange()\n};\n\nexport { SceneDataNode, emptyPanelData };\n//# sourceMappingURL=SceneDataNode.js.map\n","class SceneObjectUrlSyncConfig {\n constructor(_sceneObject, _options) {\n this._sceneObject = _sceneObject;\n this._nextChangeShouldAddHistoryStep = false;\n this._keys = _options.keys;\n }\n getKeys() {\n if (typeof this._keys === \"function\") {\n return this._keys();\n }\n return this._keys;\n }\n getUrlState() {\n return this._sceneObject.getUrlState();\n }\n updateFromUrl(values) {\n this._sceneObject.updateFromUrl(values);\n }\n shouldCreateHistoryStep(values) {\n return this._nextChangeShouldAddHistoryStep;\n }\n performBrowserHistoryAction(callback) {\n this._nextChangeShouldAddHistoryStep = true;\n callback();\n this._nextChangeShouldAddHistoryStep = false;\n }\n}\n\nexport { SceneObjectUrlSyncConfig };\n//# sourceMappingURL=SceneObjectUrlSyncConfig.js.map\n","import { toUtc } from '@grafana/data';\n\nconst INTERVAL_STRING_REGEX = /^\\d+[yYmMsSwWhHdD]$/;\nfunction parseUrlParam(value) {\n if (typeof value !== \"string\") {\n return null;\n }\n if (value.indexOf(\"now\") !== -1) {\n return value;\n }\n if (INTERVAL_STRING_REGEX.test(value)) {\n return value;\n }\n if (value.length === 8) {\n const utcValue = toUtc(value, \"YYYYMMDD\");\n if (utcValue.isValid()) {\n return utcValue.toISOString();\n }\n } else if (value.length === 15) {\n const utcValue = toUtc(value, \"YYYYMMDDTHHmmss\");\n if (utcValue.isValid()) {\n return utcValue.toISOString();\n }\n } else if (value.length === 19) {\n const utcValue = toUtc(value, \"YYYY-MM-DD HH:mm:ss\");\n if (utcValue.isValid()) {\n return utcValue.toISOString();\n }\n } else if (value.length === 24) {\n const utcValue = toUtc(value);\n return utcValue.toISOString();\n }\n const epoch = parseInt(value, 10);\n if (!isNaN(epoch)) {\n return toUtc(epoch).toISOString();\n }\n return null;\n}\n\nexport { parseUrlParam };\n//# sourceMappingURL=parseUrlParam.js.map\n","import { setWeekStart, dateMath } from '@grafana/data';\n\nfunction evaluateTimeRange(from, to, timeZone, fiscalYearStartMonth, delay, weekStart) {\n const hasDelay = delay && to === \"now\";\n const now = Date.now();\n if (weekStart) {\n setWeekStartIfDifferent(weekStart);\n }\n const parseOrToDateTime = (val, options) => {\n if (dateMath.toDateTime) {\n return dateMath.toDateTime(val, options);\n } else {\n return dateMath.parse(val, options.roundUp, options.timezone, options.fiscalYearStartMonth);\n }\n };\n return {\n to: parseOrToDateTime(hasDelay ? \"now-\" + delay : to, {\n roundUp: true,\n timezone: timeZone,\n fiscalYearStartMonth,\n now\n }),\n from: parseOrToDateTime(from, {\n roundUp: false,\n timezone: timeZone,\n fiscalYearStartMonth,\n now\n }),\n raw: {\n from,\n to\n }\n };\n}\nlet prevWeekStart;\nfunction setWeekStartIfDifferent(weekStart) {\n if (weekStart !== prevWeekStart) {\n prevWeekStart = weekStart;\n setWeekStart(weekStart);\n }\n}\n\nexport { evaluateTimeRange };\n//# sourceMappingURL=evaluateTimeRange.js.map\n","import { isDateTime, dateMath, dateTimeParse } from '@grafana/data';\n\nfunction isValid(value, roundUp, timeZone) {\n if (isDateTime(value)) {\n return value.isValid();\n }\n if (dateMath.isMathString(value)) {\n return dateMath.isValid(value);\n }\n const parsed = dateTimeParse(value, { roundUp, timeZone });\n return parsed.isValid();\n}\n\nexport { isValid };\n//# sourceMappingURL=date.js.map\n","import { getTimeZone, rangeUtil, setWeekStart, toUtc } from '@grafana/data';\nimport { SceneObjectUrlSyncConfig } from '../services/SceneObjectUrlSyncConfig.js';\nimport { SceneObjectBase } from './SceneObjectBase.js';\nimport { getClosest } from './sceneGraph/utils.js';\nimport { parseUrlParam } from '../utils/parseUrlParam.js';\nimport { evaluateTimeRange } from '../utils/evaluateTimeRange.js';\nimport { RefreshEvent, config, locationService } from '@grafana/runtime';\nimport { isValid } from '../utils/date.js';\nimport { getQueryController } from './sceneGraph/getQueryController.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nclass SceneTimeRange extends SceneObjectBase {\n constructor(state = {}) {\n var _a;\n const from = state.from && isValid(state.from) ? state.from : \"now-6h\";\n const to = state.to && isValid(state.to) ? state.to : \"now\";\n const timeZone = state.timeZone;\n const value = evaluateTimeRange(\n from,\n to,\n timeZone || getTimeZone(),\n state.fiscalYearStartMonth,\n state.UNSAFE_nowDelay,\n state.weekStart\n );\n const refreshOnActivate = (_a = state.refreshOnActivate) != null ? _a : { percent: 10 };\n super(__spreadValues({ from, to, timeZone, value, refreshOnActivate }, state));\n this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: [\"from\", \"to\", \"timezone\", \"time\", \"time.window\"] });\n this.onTimeRangeChange = (timeRange) => {\n const update = {};\n if (typeof timeRange.raw.from === \"string\") {\n update.from = timeRange.raw.from;\n } else {\n update.from = timeRange.raw.from.toISOString();\n }\n if (typeof timeRange.raw.to === \"string\") {\n update.to = timeRange.raw.to;\n } else {\n update.to = timeRange.raw.to.toISOString();\n }\n update.value = evaluateTimeRange(\n update.from,\n update.to,\n this.getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n if (update.from !== this.state.from || update.to !== this.state.to) {\n const queryController = getQueryController(this);\n queryController == null ? void 0 : queryController.startProfile(\"SceneTimeRange\");\n this._urlSync.performBrowserHistoryAction(() => {\n this.setState(update);\n });\n }\n };\n this.onTimeZoneChange = (timeZone) => {\n this._urlSync.performBrowserHistoryAction(() => {\n this.setState({ timeZone });\n });\n };\n this.onRefresh = () => {\n this.refreshRange(0);\n this.publishEvent(new RefreshEvent(), true);\n };\n this.addActivationHandler(this._onActivate.bind(this));\n }\n _onActivate() {\n if (!this.state.timeZone) {\n const timeZoneSource = this.getTimeZoneSource();\n if (timeZoneSource !== this) {\n this._subs.add(\n timeZoneSource.subscribeToState((n, p) => {\n if (n.timeZone !== void 0 && n.timeZone !== p.timeZone) {\n this.refreshRange(0);\n }\n })\n );\n }\n }\n if (rangeUtil.isRelativeTimeRange(this.state.value.raw)) {\n this.refreshIfStale();\n }\n return () => {\n if (this.state.weekStart) {\n setWeekStart(config.bootData.user.weekStart);\n }\n };\n }\n refreshIfStale() {\n var _a, _b, _c, _d;\n let ms;\n if (((_b = (_a = this.state) == null ? void 0 : _a.refreshOnActivate) == null ? void 0 : _b.percent) !== void 0) {\n ms = this.calculatePercentOfInterval(this.state.refreshOnActivate.percent);\n }\n if (((_d = (_c = this.state) == null ? void 0 : _c.refreshOnActivate) == null ? void 0 : _d.afterMs) !== void 0) {\n ms = Math.min(this.state.refreshOnActivate.afterMs, ms != null ? ms : Infinity);\n }\n if (ms !== void 0) {\n this.refreshRange(ms);\n }\n }\n getTimeZoneSource() {\n if (!this.parent || !this.parent.parent) {\n return this;\n }\n const source = getClosest(this.parent.parent, (o) => {\n if (o.state.$timeRange && o.state.$timeRange.state.timeZone) {\n return o.state.$timeRange;\n }\n return void 0;\n });\n if (!source) {\n return this;\n }\n return source;\n }\n refreshRange(refreshAfterMs) {\n var _a;\n const value = evaluateTimeRange(\n this.state.from,\n this.state.to,\n (_a = this.state.timeZone) != null ? _a : getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n const diff = value.to.diff(this.state.value.to, \"milliseconds\");\n if (diff >= refreshAfterMs) {\n this.setState({ value });\n }\n }\n calculatePercentOfInterval(percent) {\n const intervalMs = this.state.value.to.diff(this.state.value.from, \"milliseconds\");\n return Math.ceil(intervalMs / percent);\n }\n getTimeZone() {\n if (this.state.timeZone) {\n return this.state.timeZone;\n }\n const timeZoneSource = this.getTimeZoneSource();\n if (timeZoneSource !== this) {\n return timeZoneSource.state.timeZone;\n }\n return getTimeZone();\n }\n getUrlState() {\n const params = locationService.getSearchObject();\n const urlValues = { from: this.state.from, to: this.state.to, timezone: this.getTimeZone() };\n if (params.time && params[\"time.window\"]) {\n urlValues.time = null;\n urlValues[\"time.window\"] = null;\n }\n return urlValues;\n }\n updateFromUrl(values) {\n var _a, _b, _c;\n const update = {};\n let from = parseUrlParam(values.from);\n let to = parseUrlParam(values.to);\n if (values.time && values[\"time.window\"]) {\n const time = Array.isArray(values.time) ? values.time[0] : values.time;\n const timeWindow = Array.isArray(values[\"time.window\"]) ? values[\"time.window\"][0] : values[\"time.window\"];\n const timeRange = getTimeWindow(time, timeWindow);\n if (timeRange.from && isValid(timeRange.from)) {\n from = timeRange.from;\n }\n if (timeRange.to && isValid(timeRange.to)) {\n to = timeRange.to;\n }\n }\n if (from && isValid(from)) {\n update.from = from;\n }\n if (to && isValid(to)) {\n update.to = to;\n }\n if (typeof values.timezone === \"string\") {\n update.timeZone = values.timezone !== \"\" ? values.timezone : void 0;\n }\n if (Object.keys(update).length === 0) {\n return;\n }\n update.value = evaluateTimeRange(\n (_a = update.from) != null ? _a : this.state.from,\n (_b = update.to) != null ? _b : this.state.to,\n (_c = update.timeZone) != null ? _c : this.getTimeZone(),\n this.state.fiscalYearStartMonth,\n this.state.UNSAFE_nowDelay,\n this.state.weekStart\n );\n return this.setState(update);\n }\n}\nfunction getTimeWindow(time, timeWindow) {\n const valueTime = isNaN(Date.parse(time)) ? parseInt(time, 10) : Date.parse(time);\n let timeWindowMs;\n if (timeWindow.match(/^\\d+$/) && parseInt(timeWindow, 10)) {\n timeWindowMs = parseInt(timeWindow, 10);\n } else {\n timeWindowMs = rangeUtil.intervalToMs(timeWindow);\n }\n return {\n from: toUtc(valueTime - timeWindowMs / 2).toISOString(),\n to: toUtc(valueTime + timeWindowMs / 2).toISOString()\n };\n}\n\nexport { SceneTimeRange };\n//# sourceMappingURL=SceneTimeRange.js.map\n","import { SceneDataNode } from '../../core/SceneDataNode.js';\nimport { SceneObjectBase } from '../../core/SceneObjectBase.js';\nimport { SceneTimeRange } from '../../core/SceneTimeRange.js';\n\nconst EmptyDataNode = new SceneDataNode();\nconst DefaultTimeRange = new SceneTimeRange();\nclass EmptyVariableSetImpl extends SceneObjectBase {\n constructor() {\n super({ variables: [] });\n }\n getByName(name) {\n return void 0;\n }\n isVariableLoadingOrWaitingToUpdate(variable) {\n return false;\n }\n}\nconst EmptyVariableSet = new EmptyVariableSetImpl();\n\nexport { DefaultTimeRange, EmptyDataNode, EmptyVariableSet, EmptyVariableSetImpl };\n//# sourceMappingURL=defaults.js.map\n","import { DefaultTimeRange } from '../../variables/interpolation/defaults.js';\nimport { getClosest } from './utils.js';\n\nfunction getTimeRange(sceneObject) {\n var _a;\n return (_a = getClosest(sceneObject, (s) => s.state.$timeRange)) != null ? _a : DefaultTimeRange;\n}\n\nexport { getTimeRange };\n//# sourceMappingURL=getTimeRange.js.map\n","import { BusEventWithPayload } from '@grafana/data';\n\nclass SceneVariableValueChangedEvent extends BusEventWithPayload {\n}\nSceneVariableValueChangedEvent.type = \"scene-variable-changed-value\";\nfunction isCustomVariableValue(value) {\n return typeof value === \"object\" && \"formatter\" in value;\n}\n\nexport { SceneVariableValueChangedEvent, isCustomVariableValue };\n//# sourceMappingURL=types.js.map\n","import { property } from 'lodash';\n\nlet fieldAccessorCache = {};\nfunction getFieldAccessor(fieldPath) {\n const accessor = fieldAccessorCache[fieldPath];\n if (accessor) {\n return accessor;\n }\n return fieldAccessorCache[fieldPath] = property(fieldPath);\n}\n\nexport { getFieldAccessor };\n//# sourceMappingURL=fieldAccessorCache.js.map\n","import { getFieldAccessor } from './fieldAccessorCache.js';\n\nclass ScopedVarsVariable {\n constructor(name, value) {\n this.state = { name, value, type: \"scopedvar\" };\n }\n getValue(fieldPath) {\n let { value } = this.state;\n let realValue = value.value;\n if (fieldPath) {\n realValue = getFieldAccessor(fieldPath)(value.value);\n } else {\n realValue = value.value;\n }\n if (realValue === \"string\" || realValue === \"number\" || realValue === \"boolean\") {\n return realValue;\n }\n return String(realValue);\n }\n getValueText() {\n const { value } = this.state;\n if (value.text != null) {\n return String(value.text);\n }\n return String(value);\n }\n}\nlet scopedVarsVariable;\nfunction getSceneVariableForScopedVar(name, value) {\n if (!scopedVarsVariable) {\n scopedVarsVariable = new ScopedVarsVariable(name, value);\n } else {\n scopedVarsVariable.state.name = name;\n scopedVarsVariable.state.value = value;\n }\n return scopedVarsVariable;\n}\n\nexport { ScopedVarsVariable, getSceneVariableForScopedVar };\n//# sourceMappingURL=ScopedVarsVariable.js.map\n","import { map, isArray, replace } from 'lodash';\nimport { Registry, escapeRegex, textUtil, dateTime, urlUtil } from '@grafana/data';\nimport { VariableFormatID } from '@grafana/schema';\n\nconst formatRegistry = new Registry(() => {\n const formats = [\n {\n id: VariableFormatID.Lucene,\n name: \"Lucene\",\n description: \"Values are lucene escaped and multi-valued variables generate an OR expression\",\n formatter: (value) => {\n if (typeof value === \"string\") {\n return luceneEscape(value);\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return \"__empty__\";\n }\n const quotedValues = map(value, (val) => {\n return '\"' + luceneEscape(val) + '\"';\n });\n return \"(\" + quotedValues.join(\" OR \") + \")\";\n } else {\n return luceneEscape(`${value}`);\n }\n }\n },\n {\n id: VariableFormatID.Raw,\n name: \"raw\",\n description: \"Keep value as is\",\n formatter: (value) => String(value)\n },\n {\n id: VariableFormatID.Regex,\n name: \"Regex\",\n description: \"Values are regex escaped and multi-valued variables generate a (|) expression\",\n formatter: (value) => {\n if (typeof value === \"string\") {\n return escapeRegex(value);\n }\n if (Array.isArray(value)) {\n const escapedValues = value.map((item) => {\n if (typeof item === \"string\") {\n return escapeRegex(item);\n } else {\n return escapeRegex(String(item));\n }\n });\n if (escapedValues.length === 1) {\n return escapedValues[0];\n }\n return \"(\" + escapedValues.join(\"|\") + \")\";\n }\n return escapeRegex(`${value}`);\n }\n },\n {\n id: VariableFormatID.Pipe,\n name: \"Pipe\",\n description: \"Values are separated by | character\",\n formatter: (value) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (Array.isArray(value)) {\n return value.join(\"|\");\n }\n return `${value}`;\n }\n },\n {\n id: VariableFormatID.Distributed,\n name: \"Distributed\",\n description: \"Multiple values are formatted like variable=value\",\n formatter: (value, args, variable) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (Array.isArray(value)) {\n value = map(value, (val, index) => {\n if (index !== 0) {\n return variable.state.name + \"=\" + val;\n } else {\n return val;\n }\n });\n return value.join(\",\");\n }\n return `${value}`;\n }\n },\n {\n id: VariableFormatID.CSV,\n name: \"Csv\",\n description: \"Comma-separated values\",\n formatter: (value) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (isArray(value)) {\n return value.join(\",\");\n }\n return String(value);\n }\n },\n {\n id: VariableFormatID.HTML,\n name: \"HTML\",\n description: \"HTML escaping of values\",\n formatter: (value) => {\n if (typeof value === \"string\") {\n return textUtil.escapeHtml(value);\n }\n if (isArray(value)) {\n return textUtil.escapeHtml(value.join(\", \"));\n }\n return textUtil.escapeHtml(String(value));\n }\n },\n {\n id: VariableFormatID.JSON,\n name: \"JSON\",\n description: \"JSON stringify value\",\n formatter: (value) => {\n if (typeof value === \"string\") {\n return value;\n }\n return JSON.stringify(value);\n }\n },\n {\n id: VariableFormatID.PercentEncode,\n name: \"Percent encode\",\n description: \"Useful for URL escaping values\",\n formatter: (value) => {\n if (isArray(value)) {\n return encodeURIComponentStrict(\"{\" + value.join(\",\") + \"}\");\n }\n return encodeURIComponentStrict(value);\n }\n },\n {\n id: VariableFormatID.SingleQuote,\n name: \"Single quote\",\n description: \"Single quoted values\",\n formatter: (value) => {\n const regExp = new RegExp(`'`, \"g\");\n if (isArray(value)) {\n return map(value, (v) => `'${replace(v, regExp, `\\\\'`)}'`).join(\",\");\n }\n let strVal = typeof value === \"string\" ? value : String(value);\n return `'${replace(strVal, regExp, `\\\\'`)}'`;\n }\n },\n {\n id: VariableFormatID.DoubleQuote,\n name: \"Double quote\",\n description: \"Double quoted values\",\n formatter: (value) => {\n const regExp = new RegExp('\"', \"g\");\n if (isArray(value)) {\n return map(value, (v) => `\"${replace(v, regExp, '\\\\\"')}\"`).join(\",\");\n }\n let strVal = typeof value === \"string\" ? value : String(value);\n return `\"${replace(strVal, regExp, '\\\\\"')}\"`;\n }\n },\n {\n id: VariableFormatID.SQLString,\n name: \"SQL string\",\n description: \"SQL string quoting and commas for use in IN statements and other scenarios\",\n formatter: sqlStringFormatter\n },\n {\n id: VariableFormatID.Date,\n name: \"Date\",\n description: \"Format date in different ways\",\n formatter: (value, args) => {\n var _a;\n let nrValue = NaN;\n if (typeof value === \"number\") {\n nrValue = value;\n } else if (typeof value === \"string\") {\n nrValue = parseInt(value, 10);\n }\n if (isNaN(nrValue)) {\n return \"NaN\";\n }\n const arg = (_a = args[0]) != null ? _a : \"iso\";\n switch (arg) {\n case \"ms\":\n return String(value);\n case \"seconds\":\n return `${Math.round(nrValue / 1e3)}`;\n case \"iso\":\n return dateTime(nrValue).toISOString();\n default:\n if ((args || []).length > 1) {\n return dateTime(nrValue).format(args.join(\":\"));\n }\n return dateTime(nrValue).format(arg);\n }\n }\n },\n {\n id: VariableFormatID.Glob,\n name: \"Glob\",\n description: \"Format multi-valued variables using glob syntax, example {value1,value2}\",\n formatter: (value) => {\n if (isArray(value) && value.length > 1) {\n return \"{\" + value.join(\",\") + \"}\";\n }\n return String(value);\n }\n },\n {\n id: VariableFormatID.Text,\n name: \"Text\",\n description: \"Format variables in their text representation. Example in multi-variable scenario A + B + C.\",\n formatter: (value, _args, variable) => {\n if (variable.getValueText) {\n return variable.getValueText();\n }\n return String(value);\n }\n },\n {\n id: VariableFormatID.QueryParam,\n name: \"Query parameter\",\n description: \"Format variables as URL parameters. Example in multi-variable scenario A + B + C => var-foo=A&var-foo=B&var-foo=C.\",\n formatter: (value, _args, variable) => {\n if (variable.urlSync) {\n const urlParam = variable.urlSync.getUrlState();\n return urlUtil.toUrlParams(urlParam);\n }\n if (Array.isArray(value)) {\n return value.map((v) => formatQueryParameter(variable.state.name, v)).join(\"&\");\n }\n return formatQueryParameter(variable.state.name, value);\n }\n },\n {\n id: VariableFormatID.UriEncode,\n name: \"Percent encode as URI\",\n description: \"Useful for URL escaping values, taking into URI syntax characters\",\n formatter: (value) => {\n if (isArray(value)) {\n return encodeURIStrict(\"{\" + value.join(\",\") + \"}\");\n }\n return encodeURIStrict(value);\n }\n }\n ];\n return formats;\n});\nfunction luceneEscape(value) {\n if (isNaN(+value) === false) {\n return value;\n }\n return value.replace(/([\\!\\*\\+\\-\\=<>\\s\\&\\|\\(\\)\\[\\]\\{\\}\\^\\~\\?\\:\\\\/\"])/g, \"\\\\$1\");\n}\nfunction encodeURIComponentStrict(str) {\n if (typeof str === \"object\") {\n str = String(str);\n }\n return replaceSpecialCharactersToASCII(encodeURIComponent(str));\n}\nconst encodeURIStrict = (str) => replaceSpecialCharactersToASCII(encodeURI(String(str)));\nconst replaceSpecialCharactersToASCII = (value) => value.replace(/[!'()*]/g, (c) => {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n});\nfunction formatQueryParameter(name, value) {\n return `var-${name}=${encodeURIComponentStrict(value)}`;\n}\nconst SQL_ESCAPE_MAP = {\n \"'\": \"''\",\n '\"': '\\\\\"'\n};\nfunction sqlStringFormatter(value) {\n const regExp = new RegExp(`'|\"`, \"g\");\n if (isArray(value)) {\n return map(value, (v) => `'${replace(v, regExp, (match) => {\n var _a;\n return (_a = SQL_ESCAPE_MAP[match]) != null ? _a : \"\";\n })}'`).join(\",\");\n }\n let strVal = typeof value === \"string\" ? value : String(value);\n return `'${replace(strVal, regExp, (match) => {\n var _a;\n return (_a = SQL_ESCAPE_MAP[match]) != null ? _a : \"\";\n })}'`;\n}\n\nexport { formatRegistry };\n//# sourceMappingURL=formatRegistry.js.map\n","const ALL_VARIABLE_TEXT = \"All\";\nconst ALL_VARIABLE_VALUE = \"$__all\";\nconst AUTO_VARIABLE_TEXT = \"Auto\";\nconst AUTO_VARIABLE_VALUE = \"$__auto\";\nconst VARIABLE_REGEX = /\\$(\\w+)|\\[\\[(\\w+?)(?::(\\w+))?\\]\\]|\\${(\\w+)(?:\\.([^:^\\}]+))?(?::([^\\}]+))?}/g;\nconst SEARCH_FILTER_VARIABLE = \"__searchFilter\";\n\nexport { ALL_VARIABLE_TEXT, ALL_VARIABLE_VALUE, AUTO_VARIABLE_TEXT, AUTO_VARIABLE_VALUE, SEARCH_FILTER_VARIABLE, VARIABLE_REGEX };\n//# sourceMappingURL=constants.js.map\n","class SkipFormattingValue {\n constructor(_value) {\n this._value = _value;\n }\n formatter() {\n return this._value;\n }\n}\n\nexport { SkipFormattingValue };\n//# sourceMappingURL=types.js.map\n","import { urlUtil, dateTimeFormat } from '@grafana/data';\nimport { getTimeRange } from '../../core/sceneGraph/getTimeRange.js';\nimport { getData } from '../../core/sceneGraph/sceneGraph.js';\nimport { SkipFormattingValue } from './types.js';\n\nclass UrlTimeRangeMacro {\n constructor(name, sceneObject) {\n this.state = { name, type: \"url_variable\" };\n this._sceneObject = sceneObject;\n }\n getValue() {\n var _a;\n const timeRange = getTimeRange(this._sceneObject);\n const urlState = (_a = timeRange.urlSync) == null ? void 0 : _a.getUrlState();\n if ((urlState == null ? void 0 : urlState.timezone) === \"browser\") {\n urlState.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n return new SkipFormattingValue(urlUtil.toUrlParams(urlState));\n }\n getValueText() {\n return \"\";\n }\n}\nclass TimeFromAndToMacro {\n constructor(name, sceneObject) {\n this.state = { name, type: \"time_macro\" };\n this._sceneObject = sceneObject;\n }\n getValue() {\n const timeRange = getTimeRange(this._sceneObject);\n if (this.state.name === \"__from\") {\n return timeRange.state.value.from.valueOf();\n } else {\n return timeRange.state.value.to.valueOf();\n }\n }\n getValueText() {\n const timeRange = getTimeRange(this._sceneObject);\n if (this.state.name === \"__from\") {\n return dateTimeFormat(timeRange.state.value.from, { timeZone: timeRange.getTimeZone() });\n } else {\n return dateTimeFormat(timeRange.state.value.to, { timeZone: timeRange.getTimeZone() });\n }\n }\n}\nclass TimezoneMacro {\n constructor(name, sceneObject) {\n this.state = { name, type: \"time_macro\" };\n this._sceneObject = sceneObject;\n }\n getValue() {\n const timeRange = getTimeRange(this._sceneObject);\n const timeZone = timeRange.getTimeZone();\n if (timeZone === \"browser\") {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n return timeZone;\n }\n getValueText() {\n return this.getValue();\n }\n}\nclass IntervalMacro {\n constructor(name, sceneObject, match) {\n this.state = { name, type: \"time_macro\", match };\n this._sceneObject = sceneObject;\n }\n getValue() {\n var _a;\n const data = getData(this._sceneObject);\n if (data) {\n const request = (_a = data.state.data) == null ? void 0 : _a.request;\n if (!request) {\n return this.state.match;\n }\n if (this.state.name === \"__interval_ms\") {\n return request.intervalMs;\n }\n return request.interval;\n }\n return this.state.match;\n }\n}\n\nexport { IntervalMacro, TimeFromAndToMacro, TimezoneMacro, UrlTimeRangeMacro };\n//# sourceMappingURL=timeMacros.js.map\n","import { useLocationService, locationService } from '@grafana/runtime';\n\nfunction setBaseClassState(sceneObject, newState) {\n sceneObject.setState(newState);\n}\nfunction useLocationServiceSafe() {\n return useLocationService ? useLocationService() : locationService;\n}\n\nexport { setBaseClassState, useLocationServiceSafe };\n//# sourceMappingURL=utils.js.map\n","import { isEqual, isArray } from 'lodash';\nimport { map } from 'rxjs';\nimport { ALL_VARIABLE_VALUE, ALL_VARIABLE_TEXT } from '../constants.js';\nimport { SceneObjectBase } from '../../core/SceneObjectBase.js';\nimport { SceneVariableValueChangedEvent } from '../types.js';\nimport { formatRegistry } from '../interpolation/formatRegistry.js';\nimport { VariableFormatID } from '@grafana/schema';\nimport { setBaseClassState } from '../../utils/utils.js';\n\nclass MultiValueVariable extends SceneObjectBase {\n constructor() {\n super(...arguments);\n this._urlSync = new MultiValueUrlSyncHandler(this);\n }\n validateAndUpdate() {\n return this.getValueOptions({}).pipe(\n map((options) => {\n this.updateValueGivenNewOptions(options);\n return {};\n })\n );\n }\n onCancel() {\n this.setStateHelper({ loading: false });\n const sceneVarSet = this.parent;\n sceneVarSet == null ? void 0 : sceneVarSet.cancel(this);\n }\n updateValueGivenNewOptions(options) {\n const { value: currentValue, text: currentText, options: oldOptions } = this.state;\n const stateUpdate = this.getStateUpdateGivenNewOptions(options, currentValue, currentText);\n this.interceptStateUpdateAfterValidation(stateUpdate);\n this.setStateHelper(stateUpdate);\n if (stateUpdate.value !== currentValue || stateUpdate.text !== currentText || this.hasAllValue() && !isEqual(options, oldOptions)) {\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n }\n getStateUpdateGivenNewOptions(options, currentValue, currentText) {\n const stateUpdate = {\n options,\n loading: false,\n value: currentValue,\n text: currentText\n };\n if (options.length === 0) {\n if (this.state.defaultToAll || this.state.includeAll) {\n stateUpdate.value = ALL_VARIABLE_VALUE;\n stateUpdate.text = ALL_VARIABLE_TEXT;\n } else if (this.state.isMulti) {\n stateUpdate.value = [];\n stateUpdate.text = [];\n } else {\n stateUpdate.value = \"\";\n stateUpdate.text = \"\";\n }\n return stateUpdate;\n }\n if (this.hasAllValue()) {\n if (this.state.includeAll) {\n stateUpdate.text = ALL_VARIABLE_TEXT;\n } else {\n stateUpdate.value = options[0].value;\n stateUpdate.text = options[0].label;\n if (this.state.isMulti) {\n stateUpdate.value = [stateUpdate.value];\n stateUpdate.text = [stateUpdate.text];\n }\n }\n return stateUpdate;\n }\n if (this.state.isMulti) {\n const currentValues = Array.isArray(currentValue) ? currentValue : [currentValue];\n const validValues = currentValues.filter((v) => options.find((o) => o.value === v));\n const validTexts = validValues.map((v) => options.find((o) => o.value === v).label);\n if (validValues.length === 0) {\n const defaultState = this.getDefaultMultiState(options);\n stateUpdate.value = defaultState.value;\n stateUpdate.text = defaultState.text;\n } else {\n if (!isEqual(validValues, currentValue)) {\n stateUpdate.value = validValues;\n }\n if (!isEqual(validTexts, currentText)) {\n stateUpdate.text = validTexts;\n }\n }\n return stateUpdate;\n }\n let matchingOption = findOptionMatchingCurrent(currentValue, currentText, options);\n if (matchingOption) {\n stateUpdate.text = matchingOption.label;\n stateUpdate.value = matchingOption.value;\n } else {\n const defaultState = this.getDefaultSingleState(options);\n stateUpdate.value = defaultState.value;\n stateUpdate.text = defaultState.text;\n }\n return stateUpdate;\n }\n interceptStateUpdateAfterValidation(stateUpdate) {\n const isAllValueFix = stateUpdate.value === ALL_VARIABLE_VALUE && this.state.text === ALL_VARIABLE_TEXT;\n if (this.skipNextValidation && stateUpdate.value !== this.state.value && stateUpdate.text !== this.state.text && !isAllValueFix) {\n stateUpdate.value = this.state.value;\n stateUpdate.text = this.state.text;\n }\n this.skipNextValidation = false;\n }\n getValue() {\n if (this.hasAllValue()) {\n if (this.state.allValue) {\n return new CustomAllValue(this.state.allValue, this);\n }\n return this.state.options.map((x) => x.value);\n }\n return this.state.value;\n }\n getValueText() {\n if (this.hasAllValue()) {\n return ALL_VARIABLE_TEXT;\n }\n if (Array.isArray(this.state.text)) {\n return this.state.text.join(\" + \");\n }\n return String(this.state.text);\n }\n hasAllValue() {\n const value = this.state.value;\n return value === ALL_VARIABLE_VALUE || Array.isArray(value) && value[0] === ALL_VARIABLE_VALUE;\n }\n getDefaultMultiState(options) {\n if (this.state.defaultToAll) {\n return { value: [ALL_VARIABLE_VALUE], text: [ALL_VARIABLE_TEXT] };\n } else if (options.length > 0) {\n return { value: [options[0].value], text: [options[0].label] };\n } else {\n return { value: [], text: [] };\n }\n }\n getDefaultSingleState(options) {\n if (this.state.defaultToAll) {\n return { value: ALL_VARIABLE_VALUE, text: ALL_VARIABLE_TEXT };\n } else if (options.length > 0) {\n return { value: options[0].value, text: options[0].label };\n } else {\n return { value: \"\", text: \"\" };\n }\n }\n changeValueTo(value, text, isUserAction = false) {\n var _a, _b;\n if (value === this.state.value && text === this.state.text) {\n return;\n }\n if (!text) {\n if (Array.isArray(value)) {\n text = value.map((v) => this.findLabelTextForValue(v));\n } else {\n text = this.findLabelTextForValue(value);\n }\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n const state = this.getDefaultMultiState(this.state.options);\n value = state.value;\n text = state.text;\n }\n if (value[value.length - 1] === ALL_VARIABLE_VALUE) {\n value = [ALL_VARIABLE_VALUE];\n text = [ALL_VARIABLE_TEXT];\n } else if (value[0] === ALL_VARIABLE_VALUE && value.length > 1) {\n value.shift();\n if (Array.isArray(text)) {\n text.shift();\n }\n }\n }\n if (isEqual(value, this.state.value) && isEqual(text, this.state.text)) {\n return;\n }\n const stateChangeAction = () => this.setStateHelper({ value, text, loading: false });\n if (isUserAction) {\n (_b = (_a = this._urlSync).performBrowserHistoryAction) == null ? void 0 : _b.call(_a, stateChangeAction);\n } else {\n stateChangeAction();\n }\n this.publishEvent(new SceneVariableValueChangedEvent(this), true);\n }\n findLabelTextForValue(value) {\n if (value === ALL_VARIABLE_VALUE) {\n return ALL_VARIABLE_TEXT;\n }\n const option = this.state.options.find((x) => x.value === value);\n if (option) {\n return option.label;\n }\n const optionByLabel = this.state.options.find((x) => x.label === value);\n if (optionByLabel) {\n return optionByLabel.label;\n }\n return value;\n }\n setStateHelper(state) {\n setBaseClassState(this, state);\n }\n getOptionsForSelect(includeCurrentValue = true) {\n let options = this.state.options;\n if (this.state.includeAll) {\n options = [{ value: ALL_VARIABLE_VALUE, label: ALL_VARIABLE_TEXT }, ...options];\n }\n if (includeCurrentValue && !Array.isArray(this.state.value)) {\n const current = options.find((x) => x.value === this.state.value);\n if (!current) {\n options = [{ value: this.state.value, label: String(this.state.text) }, ...options];\n }\n }\n return options;\n }\n refreshOptions() {\n this.getValueOptions({}).subscribe((options) => {\n this.updateValueGivenNewOptions(options);\n });\n }\n}\nfunction findOptionMatchingCurrent(currentValue, currentText, options) {\n let textMatch;\n for (const item of options) {\n if (item.value === currentValue) {\n return item;\n }\n if (item.label === currentText) {\n textMatch = item;\n }\n }\n return textMatch;\n}\nclass MultiValueUrlSyncHandler {\n constructor(_sceneObject) {\n this._sceneObject = _sceneObject;\n this._nextChangeShouldAddHistoryStep = false;\n }\n getKey() {\n return `var-${this._sceneObject.state.name}`;\n }\n getKeys() {\n if (this._sceneObject.state.skipUrlSync) {\n return [];\n }\n return [this.getKey()];\n }\n getUrlState() {\n if (this._sceneObject.state.skipUrlSync) {\n return {};\n }\n let urlValue = null;\n let value = this._sceneObject.state.value;\n if (Array.isArray(value)) {\n urlValue = value.map(String);\n } else if (this._sceneObject.state.isMulti) {\n urlValue = [String(value)];\n } else {\n urlValue = String(value);\n }\n return { [this.getKey()]: urlValue };\n }\n updateFromUrl(values) {\n let urlValue = values[this.getKey()];\n if (urlValue != null) {\n if (this._sceneObject.state.includeAll) {\n urlValue = handleLegacyUrlAllValue(urlValue);\n }\n if (this._sceneObject.state.allValue && this._sceneObject.state.allValue === urlValue) {\n urlValue = ALL_VARIABLE_VALUE;\n }\n if (!this._sceneObject.isActive) {\n this._sceneObject.skipNextValidation = true;\n }\n this._sceneObject.changeValueTo(urlValue);\n }\n }\n performBrowserHistoryAction(callback) {\n this._nextChangeShouldAddHistoryStep = true;\n callback();\n this._nextChangeShouldAddHistoryStep = false;\n }\n shouldCreateHistoryStep(values) {\n return this._nextChangeShouldAddHistoryStep;\n }\n}\nfunction handleLegacyUrlAllValue(value) {\n if (isArray(value) && value[0] === ALL_VARIABLE_TEXT) {\n return [ALL_VARIABLE_VALUE];\n } else if (value === ALL_VARIABLE_TEXT) {\n return ALL_VARIABLE_VALUE;\n }\n return value;\n}\nclass CustomAllValue {\n constructor(_value, _variable) {\n this._value = _value;\n this._variable = _variable;\n }\n formatter(formatNameOrFn) {\n if (formatNameOrFn === VariableFormatID.Text) {\n return ALL_VARIABLE_TEXT;\n }\n if (formatNameOrFn === VariableFormatID.PercentEncode) {\n return formatRegistry.get(VariableFormatID.PercentEncode).formatter(this._value, [], this._variable);\n }\n if (formatNameOrFn === VariableFormatID.QueryParam) {\n return formatRegistry.get(VariableFormatID.QueryParam).formatter(ALL_VARIABLE_TEXT, [], this._variable);\n }\n return this._value;\n }\n}\n\nexport { CustomAllValue, MultiValueUrlSyncHandler, MultiValueVariable };\n//# sourceMappingURL=MultiValueVariable.js.map\n","import { isCustomVariableValue } from '../types.js';\nimport { formatRegistry } from '../interpolation/formatRegistry.js';\nimport { SkipFormattingValue } from './types.js';\nimport { VariableFormatID } from '@grafana/schema';\nimport { MultiValueVariable } from '../variants/MultiValueVariable.js';\nimport { ALL_VARIABLE_VALUE } from '../constants.js';\n\nclass AllVariablesMacro {\n constructor(name, sceneObject) {\n this.state = { name, type: \"url_variable\" };\n this._sceneObject = sceneObject;\n }\n getValue() {\n const allVars = collectAllVariables(this._sceneObject);\n const format = formatRegistry.get(VariableFormatID.QueryParam);\n const params = [];\n for (const name of Object.keys(allVars)) {\n const variable = allVars[name];\n if (variable instanceof MultiValueVariable && variable.hasAllValue() && !variable.state.allValue) {\n params.push(format.formatter(ALL_VARIABLE_VALUE, [], variable));\n continue;\n }\n const value = variable.getValue();\n if (!value) {\n continue;\n }\n if (isCustomVariableValue(value)) {\n params.push(value.formatter(VariableFormatID.QueryParam));\n } else {\n params.push(format.formatter(value, [], variable));\n }\n }\n return new SkipFormattingValue(params.join(\"&\"));\n }\n getValueText() {\n return \"\";\n }\n}\nfunction collectAllVariables(sceneObject, record = {}) {\n if (sceneObject.state.$variables) {\n for (const variable of sceneObject.state.$variables.state.variables) {\n if (variable.state.skipUrlSync) {\n continue;\n }\n if (!record[variable.state.name]) {\n record[variable.state.name] = variable;\n }\n }\n }\n if (sceneObject.parent) {\n collectAllVariables(sceneObject.parent, record);\n }\n return record;\n}\n\nexport { AllVariablesMacro };\n//# sourceMappingURL=AllVariablesMacro.js.map\n","import { getFieldDisplayName, formatLabels } from '@grafana/data';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction getTemplateProxyForField(field, frame, frames) {\n return new Proxy(\n {},\n {\n get: (obj, key) => {\n if (key === \"name\") {\n return field.name;\n }\n if (key === \"displayName\") {\n return getFieldDisplayName(field, frame, frames);\n }\n if (key === \"labels\" || key === \"formattedLabels\") {\n if (!field.labels) {\n return \"\";\n }\n return __spreadProps(__spreadValues({}, field.labels), {\n __values: Object.values(field.labels).sort().join(\", \"),\n toString: () => {\n return formatLabels(field.labels, \"\", true);\n }\n });\n }\n return void 0;\n }\n }\n );\n}\n\nexport { getTemplateProxyForField };\n//# sourceMappingURL=templateProxies.js.map\n","import { getDisplayProcessor, formattedValueToString, FieldType, getFieldDisplayValuesProxy, getFrameDisplayName } from '@grafana/data';\nimport { getFieldAccessor } from '../interpolation/fieldAccessorCache.js';\nimport { getTemplateProxyForField } from './templateProxies.js';\n\nclass ValueMacro {\n constructor(name, sceneObject, _match, _scopedVars) {\n this._match = _match;\n this._scopedVars = _scopedVars;\n this.state = { name, type: \"__value\" };\n }\n getValue(fieldPath) {\n var _a, _b;\n const dataContext = (_a = this._scopedVars) == null ? void 0 : _a.__dataContext;\n if (!dataContext) {\n return this._match;\n }\n const { frame, rowIndex, field, calculatedValue } = dataContext.value;\n if (calculatedValue) {\n switch (fieldPath) {\n case \"numeric\":\n return calculatedValue.numeric;\n case \"raw\":\n return calculatedValue.numeric;\n case \"time\":\n return \"\";\n case \"text\":\n default:\n return formattedValueToString(calculatedValue);\n }\n }\n if (rowIndex == null) {\n return this._match;\n }\n if (fieldPath === \"time\") {\n const timeField = frame.fields.find((f) => f.type === FieldType.time);\n return timeField ? timeField.values.get(rowIndex) : void 0;\n }\n if (!field) {\n return this._match;\n }\n const value = field.values.get(rowIndex);\n if (fieldPath === \"raw\") {\n return value;\n }\n const displayProcessor = (_b = field.display) != null ? _b : fallbackDisplayProcessor;\n const result = displayProcessor(value);\n switch (fieldPath) {\n case \"numeric\":\n return result.numeric;\n case \"text\":\n default:\n return formattedValueToString(result);\n }\n }\n getValueText() {\n return \"\";\n }\n}\nconst fallbackDisplayProcessor = getDisplayProcessor();\nclass DataMacro {\n constructor(name, sceneObject, _match, _scopedVars) {\n this._match = _match;\n this._scopedVars = _scopedVars;\n this.state = { name, type: \"__data\" };\n }\n getValue(fieldPath) {\n var _a, _b;\n const dataContext = (_a = this._scopedVars) == null ? void 0 : _a.__dataContext;\n if (!dataContext || !fieldPath) {\n return this._match;\n }\n const { frame, rowIndex } = dataContext.value;\n if (rowIndex === void 0 || fieldPath === void 0) {\n return this._match;\n }\n const obj = {\n name: frame.name,\n refId: frame.refId,\n fields: getFieldDisplayValuesProxy({ frame, rowIndex })\n };\n return (_b = getFieldAccessor(fieldPath)(obj)) != null ? _b : \"\";\n }\n getValueText() {\n return \"\";\n }\n}\nclass SeriesMacro {\n constructor(name, sceneObject, _match, _scopedVars) {\n this._match = _match;\n this._scopedVars = _scopedVars;\n this.state = { name, type: \"__series\" };\n }\n getValue(fieldPath) {\n var _a;\n const dataContext = (_a = this._scopedVars) == null ? void 0 : _a.__dataContext;\n if (!dataContext || !fieldPath) {\n return this._match;\n }\n if (fieldPath !== \"name\") {\n return this._match;\n }\n const { frame, frameIndex } = dataContext.value;\n return getFrameDisplayName(frame, frameIndex);\n }\n getValueText() {\n return \"\";\n }\n}\nclass FieldMacro {\n constructor(name, sceneObject, _match, _scopedVars) {\n this._match = _match;\n this._scopedVars = _scopedVars;\n this.state = { name, type: \"__field\" };\n }\n getValue(fieldPath) {\n var _a, _b;\n const dataContext = (_a = this._scopedVars) == null ? void 0 : _a.__dataContext;\n if (!dataContext || !fieldPath) {\n return this._match;\n }\n if (fieldPath === void 0 || fieldPath === \"\") {\n return this._match;\n }\n const { frame, field, data } = dataContext.value;\n const obj = getTemplateProxyForField(field, frame, data);\n return (_b = getFieldAccessor(fieldPath)(obj)) != null ? _b : \"\";\n }\n getValueText() {\n return \"\";\n }\n}\n\nexport { DataMacro, FieldMacro, SeriesMacro, ValueMacro };\n//# sourceMappingURL=dataMacros.js.map\n","import { locationService, config } from '@grafana/runtime';\n\nclass UrlMacro {\n constructor(name, _) {\n this.state = { name, type: \"url_macro\" };\n }\n getValue(fieldPath) {\n var _a;\n const location = locationService.getLocation();\n const subUrl = (_a = config.appSubUrl) != null ? _a : \"\";\n switch (fieldPath != null ? fieldPath : \"\") {\n case \"params\":\n return new UrlStateFormatter(location.search);\n case \"path\":\n return subUrl + location.pathname;\n case \"\":\n default:\n return subUrl + location.pathname + location.search;\n }\n }\n getValueText() {\n return \"\";\n }\n}\nclass UrlStateFormatter {\n constructor(_urlQueryParams) {\n this._urlQueryParams = _urlQueryParams;\n }\n formatter(options) {\n if (!options) {\n return this._urlQueryParams;\n }\n const params = options.split(\":\");\n if (params[0] === \"exclude\" && params.length > 1) {\n const allParams = new URLSearchParams(this._urlQueryParams);\n for (const param of params[1].split(\",\")) {\n allParams.delete(param);\n }\n return `?${allParams}`;\n }\n if (params[0] === \"include\" && params.length > 1) {\n const allParams = new URLSearchParams(this._urlQueryParams);\n const includeOnly = params[1].split(\",\");\n for (const param of allParams.keys()) {\n if (!includeOnly.includes(param)) {\n allParams.delete(param);\n }\n }\n return `?${allParams}`;\n }\n return this._urlQueryParams;\n }\n}\n\nexport { UrlMacro };\n//# sourceMappingURL=urlMacros.js.map\n","import { DataLinkBuiltInVars } from '@grafana/data';\nimport { UrlTimeRangeMacro, TimeFromAndToMacro, TimezoneMacro, IntervalMacro } from './timeMacros.js';\nimport { AllVariablesMacro } from './AllVariablesMacro.js';\nimport { ValueMacro, DataMacro, SeriesMacro, FieldMacro } from './dataMacros.js';\nimport { UrlMacro } from './urlMacros.js';\nimport { UserMacro, OrgMacro } from './contextMacros.js';\n\nconst macrosIndex = /* @__PURE__ */ new Map([\n [DataLinkBuiltInVars.includeVars, AllVariablesMacro],\n [DataLinkBuiltInVars.keepTime, UrlTimeRangeMacro],\n [\"__value\", ValueMacro],\n [\"__data\", DataMacro],\n [\"__series\", SeriesMacro],\n [\"__field\", FieldMacro],\n [\"__url\", UrlMacro],\n [\"__from\", TimeFromAndToMacro],\n [\"__to\", TimeFromAndToMacro],\n [\"__timezone\", TimezoneMacro],\n [\"__user\", UserMacro],\n [\"__org\", OrgMacro],\n [\"__interval\", IntervalMacro],\n [\"__interval_ms\", IntervalMacro]\n]);\nfunction registerVariableMacro(name, macro) {\n if (macrosIndex.get(name)) {\n throw new Error(`Macro already registered ${name}`);\n }\n macrosIndex.set(name, macro);\n return () => {\n macrosIndex.delete(name);\n };\n}\n\nexport { macrosIndex, registerVariableMacro };\n//# sourceMappingURL=index.js.map\n","import { config } from '@grafana/runtime';\n\nclass UserMacro {\n constructor(name, _) {\n this.state = { name, type: \"user_macro\" };\n }\n getValue(fieldPath) {\n const user = config.bootData.user;\n switch (fieldPath) {\n case \"login\":\n return user.login;\n case \"email\":\n return user.email;\n case \"id\":\n default:\n return String(user.id);\n }\n }\n getValueText() {\n return \"\";\n }\n}\nclass OrgMacro {\n constructor(name, _) {\n this.state = { name, type: \"org_macro\" };\n }\n getValue(fieldPath) {\n const user = config.bootData.user;\n switch (fieldPath) {\n case \"name\":\n return user.orgName;\n case \"id\":\n default:\n return String(user.orgId);\n }\n }\n getValueText() {\n return \"\";\n }\n}\n\nexport { OrgMacro, UserMacro };\n//# sourceMappingURL=contextMacros.js.map\n","import { VariableFormatID } from '@grafana/schema';\nimport { isCustomVariableValue } from '../types.js';\nimport { getSceneVariableForScopedVar } from './ScopedVarsVariable.js';\nimport { formatRegistry } from './formatRegistry.js';\nimport { VARIABLE_REGEX } from '../constants.js';\nimport { lookupVariable } from '../lookupVariable.js';\nimport { macrosIndex } from '../macros/index.js';\n\nfunction sceneInterpolator(sceneObject, target, scopedVars, format, interpolations) {\n if (!target || typeof target !== \"string\") {\n return target != null ? target : \"\";\n }\n VARIABLE_REGEX.lastIndex = 0;\n return target.replace(VARIABLE_REGEX, (match, var1, var2, fmt2, var3, fieldPath, fmt3) => {\n const variableName = var1 || var2 || var3;\n const fmt = fmt2 || fmt3 || format;\n const variable = lookupFormatVariable(variableName, match, scopedVars, sceneObject);\n if (!variable) {\n if (interpolations) {\n interpolations.push({ match, variableName, fieldPath, format: fmt, value: match, found: false });\n }\n return match;\n }\n const value = formatValue(sceneObject, variable, variable.getValue(fieldPath), fmt);\n if (interpolations) {\n interpolations.push({ match, variableName, fieldPath, format: fmt, value, found: value !== match });\n }\n return value;\n });\n}\nfunction lookupFormatVariable(name, match, scopedVars, sceneObject) {\n if (scopedVars && scopedVars.hasOwnProperty(name)) {\n const scopedVar = scopedVars[name];\n if (scopedVar) {\n return getSceneVariableForScopedVar(name, scopedVar);\n }\n }\n const variable = lookupVariable(name, sceneObject);\n if (variable) {\n return variable;\n }\n const Macro = macrosIndex.get(name);\n if (Macro) {\n return new Macro(name, sceneObject, match, scopedVars);\n }\n return null;\n}\nfunction formatValue(context, variable, value, formatNameOrFn) {\n if (value === null || value === void 0) {\n return \"\";\n }\n if (isCustomVariableValue(value)) {\n return sceneInterpolator(context, value.formatter(formatNameOrFn));\n }\n if (!Array.isArray(value) && typeof value === \"object\") {\n value = `${value}`;\n }\n if (typeof formatNameOrFn === \"function\") {\n return formatNameOrFn(value, {\n name: variable.state.name,\n type: variable.state.type,\n multi: variable.state.isMulti,\n includeAll: variable.state.includeAll\n });\n }\n let args = [];\n if (!formatNameOrFn) {\n formatNameOrFn = VariableFormatID.Glob;\n } else {\n args = formatNameOrFn.split(\":\");\n if (args.length > 1) {\n formatNameOrFn = args[0];\n args = args.slice(1);\n } else {\n args = [];\n }\n }\n let formatter = formatRegistry.getIfExists(formatNameOrFn);\n if (!formatter) {\n console.error(`Variable format ${formatNameOrFn} not found. Using glob format as fallback.`);\n formatter = formatRegistry.get(VariableFormatID.Glob);\n }\n return formatter.formatter(value, args, variable);\n}\n\nexport { sceneInterpolator };\n//# sourceMappingURL=sceneInterpolator.js.map\n","function isSceneObject(obj) {\n return obj.useState !== void 0;\n}\nfunction isDataRequestEnricher(obj) {\n return \"enrichDataRequest\" in obj;\n}\nfunction isFiltersRequestEnricher(obj) {\n return \"enrichFiltersRequest\" in obj;\n}\nfunction isDataLayer(obj) {\n return \"isDataLayer\" in obj;\n}\n\nexport { isDataLayer, isDataRequestEnricher, isFiltersRequestEnricher, isSceneObject };\n//# sourceMappingURL=types.js.map\n","import { Observable, from, map, catchError } from 'rxjs';\nimport { LoadingState } from '@grafana/schema';\nimport { sceneGraph } from '../core/sceneGraph/index.js';\n\nfunction registerQueryWithController(entry) {\n return (queryStream) => {\n const queryControler = sceneGraph.getQueryController(entry.origin);\n if (!queryControler) {\n return queryStream;\n }\n return new Observable((observer) => {\n if (!entry.cancel) {\n entry.cancel = () => observer.complete();\n }\n queryControler.queryStarted(entry);\n let markedAsCompleted = false;\n const sub = queryStream.subscribe({\n next: (v) => {\n if (!markedAsCompleted && v.state !== LoadingState.Loading) {\n markedAsCompleted = true;\n queryControler.queryCompleted(entry);\n }\n observer.next(v);\n },\n error: (e) => observer.error(e),\n complete: () => {\n observer.complete();\n }\n });\n return () => {\n sub.unsubscribe();\n if (!markedAsCompleted) {\n queryControler.queryCompleted(entry);\n }\n };\n });\n };\n}\nfunction wrapPromiseInStateObservable(promise) {\n return new Observable((observer) => {\n observer.next({ state: LoadingState.Loading });\n const promiseObservable = from(promise);\n promiseObservable.pipe(\n map(() => ({ state: LoadingState.Done })),\n catchError(() => {\n observer.next({ state: LoadingState.Error });\n return [];\n })\n ).subscribe({\n next: (result) => observer.next(result),\n complete: () => observer.complete()\n });\n });\n}\n\nexport { registerQueryWithController, wrapPromiseInStateObservable };\n//# sourceMappingURL=registerQueryWithController.js.map\n","import { getDataSourceSrv } from '@grafana/runtime';\nimport { runtimeDataSources } from '../querying/RuntimeDataSource.js';\nimport { wrapPromiseInStateObservable, registerQueryWithController } from '../querying/registerQueryWithController.js';\nimport { sceneGraph } from '../core/sceneGraph/index.js';\n\nasync function getDataSource(datasource, scopedVars) {\n if (datasource == null ? void 0 : datasource.uid) {\n const runtimeDataSource = runtimeDataSources.get(datasource.uid);\n if (runtimeDataSource) {\n return runtimeDataSource;\n }\n }\n if (datasource && datasource.query) {\n return datasource;\n }\n const dsPromise = getDataSourceSrv().get(datasource, scopedVars);\n if (scopedVars.__sceneObject && scopedVars.__sceneObject.value.valueOf()) {\n const queryControler = sceneGraph.getQueryController(scopedVars.__sceneObject.value.valueOf());\n if (queryControler && queryControler.state.enableProfiling) {\n wrapPromiseInStateObservable(dsPromise).pipe(\n registerQueryWithController({\n type: \"plugin\",\n origin: scopedVars.__sceneObject.value.valueOf()\n })\n ).subscribe(() => {\n });\n }\n }\n const result = await dsPromise;\n return result;\n}\n\nexport { getDataSource };\n//# sourceMappingURL=getDataSource.js.map\n","import { sceneGraph } from '../core/sceneGraph/index.js';\nimport { isVariableValueEqual } from './utils.js';\n\nclass VariableValueRecorder {\n constructor() {\n this._values = /* @__PURE__ */ new Map();\n }\n recordCurrentDependencyValuesForSceneObject(sceneObject) {\n this.clearValues();\n if (!sceneObject.variableDependency) {\n return;\n }\n for (const variableName of sceneObject.variableDependency.getNames()) {\n const variable = sceneGraph.lookupVariable(variableName, sceneObject);\n if (variable) {\n this._values.set(variable.state.name, variable.getValue());\n }\n }\n }\n cloneAndRecordCurrentValuesForSceneObject(sceneObject) {\n const clone = new VariableValueRecorder();\n clone.recordCurrentDependencyValuesForSceneObject(sceneObject);\n return clone;\n }\n clearValues() {\n this._values.clear();\n }\n hasValues() {\n return !!this._values;\n }\n recordCurrentValue(variable) {\n this._values.set(variable.state.name, variable.getValue());\n }\n hasRecordedValue(variable) {\n return this._values.has(variable.state.name);\n }\n hasValueChanged(variable) {\n if (this._values.has(variable.state.name)) {\n const value = this._values.get(variable.state.name);\n if (!isVariableValueEqual(value, variable.getValue())) {\n return true;\n }\n }\n return false;\n }\n hasDependenciesChanged(sceneObject) {\n if (!this._values) {\n return false;\n }\n if (!sceneObject.variableDependency) {\n return false;\n }\n for (const variableName of sceneObject.variableDependency.getNames()) {\n const variable = sceneGraph.lookupVariable(variableName, sceneObject);\n if (!variable) {\n continue;\n }\n const name = variable.state.name;\n if (variable && this._values.has(name)) {\n const value = this._values.get(name);\n if (!isVariableValueEqual(value, variable.getValue())) {\n return true;\n }\n }\n }\n return false;\n }\n}\n\nexport { VariableValueRecorder };\n//# sourceMappingURL=VariableValueRecorder.js.map\n","function isExtraQueryProvider(obj) {\n return typeof obj === \"object\" && \"getExtraQueries\" in obj;\n}\n\nexport { isExtraQueryProvider };\n//# sourceMappingURL=ExtraQueryProvider.js.map\n","import { of, mergeMap, forkJoin, map } from 'rxjs';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst passthroughProcessor = (_, secondary) => of(secondary);\nconst extraQueryProcessingOperator = (processors) => (data) => {\n return data.pipe(\n mergeMap(([primary, ...secondaries]) => {\n const processedSecondaries = secondaries.flatMap((s) => {\n var _a, _b;\n return (_b = (_a = processors.get(s.request.requestId)) == null ? void 0 : _a(primary, s)) != null ? _b : of(s);\n });\n return forkJoin([of(primary), ...processedSecondaries]);\n }),\n map(([primary, ...processedSecondaries]) => {\n var _a;\n return __spreadProps(__spreadValues({}, primary), {\n series: [...primary.series, ...processedSecondaries.flatMap((s) => s.series)],\n annotations: [...(_a = primary.annotations) != null ? _a : [], ...processedSecondaries.flatMap((s) => {\n var _a2;\n return (_a2 = s.annotations) != null ? _a2 : [];\n })]\n });\n })\n );\n};\n\nexport { extraQueryProcessingOperator, passthroughProcessor };\n//# sourceMappingURL=extraQueryProcessingOperator.js.map\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst GLOBAL_ANNOTATION_ID = 0;\nfunction filterAnnotations(data, filters) {\n var _a;\n if (!Array.isArray(data) || data.length === 0) {\n return data;\n }\n const rows = Array.from({ length: data.length }, () => /* @__PURE__ */ new Set());\n let frameIdx = 0;\n for (const frame of data) {\n for (let index = 0; index < frame.length; index++) {\n if (rows[frameIdx].has(index)) {\n continue;\n }\n let matching = true;\n const panelIdField = frame.fields.find((f) => f.name === \"panelId\");\n const sourceField = frame.fields.find((f) => f.name === \"source\");\n if (sourceField) {\n if (panelIdField && sourceField.values[index].type === \"dashboard\") {\n matching = [filters.panelId, GLOBAL_ANNOTATION_ID].includes(panelIdField.values[index]);\n }\n const sourceFilter = sourceField.values[index].filter;\n if (sourceFilter) {\n const includes = [...(_a = sourceFilter.ids) != null ? _a : [], GLOBAL_ANNOTATION_ID].includes(filters.panelId);\n if (sourceFilter.exclude) {\n if (includes) {\n matching = false;\n }\n } else if (!includes) {\n matching = false;\n }\n }\n }\n if (matching) {\n rows[frameIdx].add(index);\n }\n }\n frameIdx++;\n }\n const processed = [];\n frameIdx = 0;\n for (const frame of data) {\n const frameLength = rows[frameIdx].size;\n const fields = [];\n for (const field of frame.fields) {\n const buffer = [];\n for (let index = 0; index < frame.length; index++) {\n if (rows[frameIdx].has(index)) {\n buffer.push(field.values[index]);\n continue;\n }\n }\n fields.push(__spreadProps(__spreadValues({}, field), {\n values: buffer\n }));\n }\n processed.push(__spreadProps(__spreadValues({}, frame), {\n fields,\n length: frameLength\n }));\n frameIdx++;\n }\n return processed;\n}\n\nexport { filterAnnotations };\n//# sourceMappingURL=filterAnnotations.js.map\n","import { isDataRequestEnricher } from '../core/types.js';\n\nfunction getEnrichedDataRequest(sourceRunner) {\n const root = sourceRunner.getRoot();\n if (isDataRequestEnricher(root)) {\n return root.enrichDataRequest(sourceRunner);\n }\n return null;\n}\n\nexport { getEnrichedDataRequest };\n//# sourceMappingURL=getEnrichedDataRequest.js.map\n","import { getTemplateSrv, getDataSourceSrv } from '@grafana/runtime';\nimport { interpolate } from '../../core/sceneGraph/sceneGraph.js';\n\nlet originalGetAdhocFilters = void 0;\nlet allActiveFilterSets = /* @__PURE__ */ new Set();\nfunction patchGetAdhocFilters(filterVar) {\n filterVar.addActivationHandler(() => {\n allActiveFilterSets.add(filterVar);\n return () => allActiveFilterSets.delete(filterVar);\n });\n if (originalGetAdhocFilters) {\n return;\n }\n const templateSrv = getTemplateSrv();\n if (!(templateSrv == null ? void 0 : templateSrv.getAdhocFilters)) {\n console.log(\"Failed to patch getAdhocFilters\");\n return;\n }\n originalGetAdhocFilters = templateSrv.getAdhocFilters;\n templateSrv.getAdhocFilters = function getAdhocFiltersScenePatch(dsName) {\n var _a;\n if (allActiveFilterSets.size === 0) {\n return originalGetAdhocFilters.call(templateSrv, dsName);\n }\n const ds = getDataSourceSrv().getInstanceSettings(dsName);\n if (!ds) {\n return [];\n }\n for (const filter of allActiveFilterSets.values()) {\n if (((_a = filter.state.datasource) == null ? void 0 : _a.uid) === ds.uid) {\n return filter.state.filters;\n }\n }\n return [];\n }.bind(templateSrv);\n}\nfunction findActiveAdHocFilterVariableByUid(dsUid) {\n var _a;\n for (const filter of allActiveFilterSets.values()) {\n if (interpolate(filter, (_a = filter.state.datasource) == null ? void 0 : _a.uid) === dsUid) {\n return filter;\n }\n }\n return void 0;\n}\n\nexport { findActiveAdHocFilterVariableByUid, patchGetAdhocFilters };\n//# sourceMappingURL=patchGetAdhocFilters.js.map\n","import { interpolate } from '../../core/sceneGraph/sceneGraph.js';\n\nconst allActiveGroupByVariables = /* @__PURE__ */ new Set();\nfunction findActiveGroupByVariablesByUid(dsUid) {\n var _a;\n for (const groupByVariable of allActiveGroupByVariables.values()) {\n if (interpolate(groupByVariable, (_a = groupByVariable.state.datasource) == null ? void 0 : _a.uid) === dsUid) {\n return groupByVariable;\n }\n }\n return void 0;\n}\n\nexport { allActiveGroupByVariables, findActiveGroupByVariablesByUid };\n//# sourceMappingURL=findActiveGroupByVariablesByUid.js.map\n","const Components = {\n RadioButton: {\n container: \"data-testid radio-button\"\n },\n Breadcrumbs: {\n breadcrumb: (title) => `data-testid ${title} breadcrumb`\n },\n TimePicker: {\n openButton: \"data-testid TimePicker Open Button\",\n overlayContent: \"data-testid TimePicker Overlay Content\",\n fromField: \"data-testid Time Range from field\",\n toField: \"data-testid Time Range to field\",\n applyTimeRange: \"data-testid TimePicker submit button\",\n copyTimeRange: \"data-testid TimePicker copy button\",\n pasteTimeRange: \"data-testid TimePicker paste button\",\n calendar: {\n label: \"data-testid Time Range calendar\",\n openButton: \"data-testid Open time range calendar\",\n closeButton: \"data-testid Close time range Calendar\"\n },\n absoluteTimeRangeTitle: \"data-testid-absolute-time-range-narrow\"\n },\n DataSourcePermissions: {\n form: () => 'form[name=\"addPermission\"]',\n roleType: \"Role to add new permission to\",\n rolePicker: \"Built-in role picker\",\n permissionLevel: \"Permission Level\"\n },\n DateTimePicker: {\n input: \"data-testid date-time-input\"\n },\n DataSource: {\n TestData: {\n QueryTab: {\n scenarioSelectContainer: \"Test Data Query scenario select container\",\n scenarioSelect: \"Test Data Query scenario select\",\n max: \"TestData max\",\n min: \"TestData min\",\n noise: \"TestData noise\",\n seriesCount: \"TestData series count\",\n spread: \"TestData spread\",\n startValue: \"TestData start value\",\n drop: \"TestData drop values\"\n }\n },\n DataSourceHttpSettings: {\n urlInput: \"data-testid Datasource HTTP settings url\"\n },\n Jaeger: {\n traceIDInput: \"Trace ID\"\n },\n Prometheus: {\n configPage: {\n connectionSettings: \"Data source connection URL\",\n // aria-label in grafana experimental\n manageAlerts: \"prometheus-alerts-manager\",\n // id for switch component\n scrapeInterval: \"data-testid scrape interval\",\n queryTimeout: \"data-testid query timeout\",\n defaultEditor: \"data-testid default editor\",\n disableMetricLookup: \"disable-metric-lookup\",\n // id for switch component\n prometheusType: \"data-testid prometheus type\",\n prometheusVersion: \"data-testid prometheus version\",\n cacheLevel: \"data-testid cache level\",\n incrementalQuerying: \"prometheus-incremental-querying\",\n // id for switch component\n queryOverlapWindow: \"data-testid query overlap window\",\n disableRecordingRules: \"disable-recording-rules\",\n // id for switch component\n customQueryParameters: \"data-testid custom query parameters\",\n httpMethod: \"data-testid http method\",\n exemplarsAddButton: \"data-testid Add exemplar config button\",\n internalLinkSwitch: \"data-testid Internal link switch\"\n },\n queryEditor: {\n // kickstart: '', see QueryBuilder queryPatterns below\n explain: \"data-testid prometheus explain switch wrapper\",\n editorToggle: \"data-testid QueryEditorModeToggle\",\n // wrapper for toggle\n options: \"data-testid prometheus options\",\n // wrapper for options group\n legend: \"data-testid prometheus legend wrapper\",\n // wrapper for multiple compomnents\n format: \"data-testid prometheus format\",\n step: \"prometheus-step\",\n // id for autosize component\n type: \"data-testid prometheus type\",\n //wrapper for radio button group\n exemplars: \"prometheus-exemplars\",\n // id for editor switch component\n builder: {\n // see QueryBuilder below for commented selectors\n // labelSelect: 'data-testid Select label',\n // valueSelect: 'data-testid Select value',\n // matchOperatorSelect: 'data-testid Select match operator',\n metricSelect: \"data-testid metric select\",\n hints: \"data-testid prometheus hints\",\n // wrapper for hints component\n metricsExplorer: \"data-testid metrics explorer\",\n queryAdvisor: \"data-testid query advisor\"\n },\n code: {\n queryField: \"data-testid prometheus query field\",\n metricsBrowser: {\n openButton: \"data-testid open metrics browser\",\n selectMetric: \"data-testid select a metric\",\n metricList: \"data-testid metric list\",\n labelNamesFilter: \"data-testid label names filter\",\n labelValuesFilter: \"data-testid label values filter\",\n useQuery: \"data-testid use query\",\n useAsRateQuery: \"data-testid use as rate query\",\n validateSelector: \"data-testid validate selector\",\n clear: \"data-testid clear\"\n }\n }\n },\n exemplarMarker: \"data-testid Exemplar marker\",\n variableQueryEditor: {\n queryType: \"data-testid query type\",\n labelnames: {\n metricRegex: \"data-testid label names metric regex\"\n },\n labelValues: {\n labelSelect: \"data-testid label values label select\"\n // metric select see queryEditor: builder for more context\n // label select for metric filtering see queryEditor: builder for more context\n },\n metricNames: {\n metricRegex: \"data-testid metric names metric regex\"\n },\n varQueryResult: \"data-testid variable query result\",\n seriesQuery: \"data-testid prometheus series query\",\n classicQuery: \"data-testid prometheus classic query\"\n },\n annotations: {\n minStep: \"prometheus-annotation-min-step\",\n // id for autosize input\n title: \"data-testid prometheus annotation title\",\n tags: \"data-testid prometheus annotation tags\",\n text: \"data-testid prometheus annotation text\",\n seriesValueAsTimestamp: \"data-testid prometheus annotation series value as timestamp\"\n }\n }\n },\n Menu: {\n MenuComponent: (title) => `${title} menu`,\n MenuGroup: (title) => `${title} menu group`,\n MenuItem: (title) => `${title} menu item`,\n SubMenu: {\n container: \"data-testid SubMenu container\",\n icon: \"data-testid SubMenu icon\"\n }\n },\n Panels: {\n Panel: {\n title: (title) => `data-testid Panel header ${title}`,\n headerItems: (item) => `data-testid Panel header item ${item}`,\n menuItems: (item) => `data-testid Panel menu item ${item}`,\n menu: (title) => `data-testid Panel menu ${title}`,\n containerByTitle: (title) => `${title} panel`,\n headerCornerInfo: (mode) => `Panel header ${mode}`,\n status: (status) => `data-testid Panel status ${status}`,\n loadingBar: () => `Panel loading bar`,\n HoverWidget: {\n container: \"data-testid hover-header-container\",\n dragIcon: \"data-testid drag-icon\"\n },\n PanelDataErrorMessage: \"data-testid Panel data error message\"\n },\n Visualization: {\n Graph: {\n container: \"Graph container\",\n VisualizationTab: {\n legendSection: \"Legend section\"\n },\n Legend: {\n legendItemAlias: (name) => `gpl alias ${name}`,\n showLegendSwitch: \"gpl show legend\"\n },\n xAxis: {\n labels: () => \"div.flot-x-axis > div.flot-tick-label\"\n }\n },\n BarGauge: {\n /**\n * @deprecated use valueV2 from Grafana 8.3 instead\n */\n value: \"Bar gauge value\",\n valueV2: \"data-testid Bar gauge value\"\n },\n PieChart: {\n svgSlice: \"data testid Pie Chart Slice\"\n },\n Text: {\n container: () => \".markdown-html\"\n },\n Table: {\n header: \"table header\",\n footer: \"table-footer\",\n body: \"data-testid table body\"\n }\n }\n },\n VizLegend: {\n seriesName: (name) => `data-testid VizLegend series ${name}`\n },\n Drawer: {\n General: {\n title: (title) => `Drawer title ${title}`,\n expand: \"Drawer expand\",\n contract: \"Drawer contract\",\n close: \"data-testid Drawer close\",\n rcContentWrapper: () => \".rc-drawer-content-wrapper\",\n subtitle: \"data-testid drawer subtitle\"\n }\n },\n PanelEditor: {\n General: {\n content: \"Panel editor content\"\n },\n OptionsPane: {\n content: \"Panel editor option pane content\",\n select: \"Panel editor option pane select\",\n fieldLabel: (type) => `${type} field property editor`\n },\n // not sure about the naming *DataPane*\n DataPane: {\n content: \"Panel editor data pane content\"\n },\n applyButton: \"data-testid Apply changes and go back to dashboard\",\n toggleVizPicker: \"data-testid toggle-viz-picker\",\n toggleVizOptions: \"data-testid toggle-viz-options\",\n toggleTableView: \"toggle-table-view\",\n // [Geomap] Map controls\n showZoomField: \"Map controls Show zoom control field property editor\",\n showAttributionField: \"Map controls Show attribution field property editor\",\n showScaleField: \"Map controls Show scale field property editor\",\n showMeasureField: \"Map controls Show measure tools field property editor\",\n showDebugField: \"Map controls Show debug field property editor\",\n measureButton: \"show measure tools\"\n },\n PanelInspector: {\n Data: {\n content: \"Panel inspector Data content\"\n },\n Stats: {\n content: \"Panel inspector Stats content\"\n },\n Json: {\n content: \"Panel inspector Json content\"\n },\n Query: {\n content: \"Panel inspector Query content\",\n refreshButton: \"Panel inspector Query refresh button\",\n jsonObjectKeys: () => \".json-formatter-key\"\n }\n },\n Tab: {\n title: (title) => `Tab ${title}`,\n active: () => '[class*=\"-activeTabStyle\"]'\n },\n RefreshPicker: {\n /**\n * @deprecated use runButtonV2 from Grafana 8.3 instead\n */\n runButton: \"RefreshPicker run button\",\n /**\n * @deprecated use intervalButtonV2 from Grafana 8.3 instead\n */\n intervalButton: \"RefreshPicker interval button\",\n runButtonV2: \"data-testid RefreshPicker run button\",\n intervalButtonV2: \"data-testid RefreshPicker interval button\"\n },\n QueryTab: {\n content: \"Query editor tab content\",\n queryInspectorButton: \"Query inspector button\",\n queryHistoryButton: \"data-testid query-history-button\",\n addQuery: \"data-testid query-tab-add-query\"\n },\n QueryHistory: {\n queryText: \"Query text\"\n },\n QueryEditorRows: {\n rows: \"Query editor row\"\n },\n QueryEditorRow: {\n actionButton: (title) => `data-testid ${title}`,\n title: (refId) => `Query editor row title ${refId}`,\n container: (refId) => `Query editor row ${refId}`\n },\n AlertTab: {\n content: \"data-testid Alert editor tab content\"\n },\n Alert: {\n /**\n * @deprecated use alertV2 from Grafana 8.3 instead\n */\n alert: (severity) => `Alert ${severity}`,\n alertV2: (severity) => `data-testid Alert ${severity}`\n },\n TransformTab: {\n content: \"data-testid Transform editor tab content\",\n newTransform: (name) => `data-testid New transform ${name}`,\n transformationEditor: (name) => `data-testid Transformation editor ${name}`,\n transformationEditorDebugger: (name) => `data-testid Transformation editor debugger ${name}`\n },\n Transforms: {\n card: (name) => `data-testid New transform ${name}`,\n disableTransformationButton: \"data-testid Disable transformation button\",\n Reduce: {\n modeLabel: \"data-testid Transform mode label\",\n calculationsLabel: \"data-testid Transform calculations label\"\n },\n SpatialOperations: {\n actionLabel: \"root Action field property editor\",\n locationLabel: \"root Location Mode field property editor\",\n location: {\n autoOption: \"Auto location option\",\n coords: {\n option: \"Coords location option\",\n latitudeFieldLabel: \"root Latitude field field property editor\",\n longitudeFieldLabel: \"root Longitude field field property editor\"\n },\n geohash: {\n option: \"Geohash location option\",\n geohashFieldLabel: \"root Geohash field field property editor\"\n },\n lookup: {\n option: \"Lookup location option\",\n lookupFieldLabel: \"root Lookup field field property editor\",\n gazetteerFieldLabel: \"root Gazetteer field property editor\"\n }\n }\n },\n searchInput: \"data-testid search transformations\",\n noTransformationsMessage: \"data-testid no transformations message\",\n addTransformationButton: \"data-testid add transformation button\",\n removeAllTransformationsButton: \"data-testid remove all transformations button\"\n },\n NavBar: {\n Configuration: {\n button: \"Configuration\"\n },\n Toggle: {\n button: \"data-testid Toggle menu\"\n },\n Reporting: {\n button: \"Reporting\"\n }\n },\n NavMenu: {\n Menu: \"data-testid navigation mega-menu\",\n item: \"data-testid Nav menu item\"\n },\n NavToolbar: {\n container: \"data-testid Nav toolbar\"\n },\n PageToolbar: {\n container: () => \".page-toolbar\",\n item: (tooltip) => `${tooltip}`,\n itemButton: (title) => `data-testid ${title}`\n },\n QueryEditorToolbarItem: {\n button: (title) => `QueryEditor toolbar item button ${title}`\n },\n BackButton: {\n backArrow: \"data-testid Go Back\"\n },\n OptionsGroup: {\n group: (title) => title ? `Options group ${title}` : \"Options group\",\n toggle: (title) => title ? `Options group ${title} toggle` : \"Options group toggle\"\n },\n PluginVisualization: {\n item: (title) => `Plugin visualization item ${title}`,\n current: () => '[class*=\"-currentVisualizationItem\"]'\n },\n Select: {\n option: \"Select option\",\n input: () => 'input[id*=\"time-options-input\"]',\n singleValue: () => 'div[class*=\"-singleValue\"]'\n },\n FieldConfigEditor: {\n content: \"Field config editor content\"\n },\n OverridesConfigEditor: {\n content: \"Field overrides editor content\"\n },\n FolderPicker: {\n /**\n * @deprecated use containerV2 from Grafana 8.3 instead\n */\n container: \"Folder picker select container\",\n containerV2: \"data-testid Folder picker select container\",\n input: \"data-testid folder-picker-input\"\n },\n ReadonlyFolderPicker: {\n container: \"data-testid Readonly folder picker select container\"\n },\n DataSourcePicker: {\n container: \"data-testid Data source picker select container\",\n /**\n * @deprecated use inputV2 instead\n */\n input: () => 'input[id=\"data-source-picker\"]',\n inputV2: \"data-testid Select a data source\",\n dataSourceList: \"data-testid Data source list dropdown\",\n advancedModal: {\n dataSourceList: \"data-testid Data source list\",\n builtInDataSourceList: \"data-testid Built in data source list\"\n }\n },\n TimeZonePicker: {\n /**\n * @deprecated use TimeZonePicker.containerV2 from Grafana 8.3 instead\n */\n container: \"Time zone picker select container\",\n containerV2: \"data-testid Time zone picker select container\"\n },\n WeekStartPicker: {\n /**\n * @deprecated use WeekStartPicker.containerV2 from Grafana 8.3 instead\n */\n container: \"Choose starting day of the week\",\n containerV2: \"data-testid Choose starting day of the week\",\n placeholder: \"Choose starting day of the week\"\n },\n TraceViewer: {\n spanBar: \"data-testid SpanBar--wrapper\"\n },\n QueryField: { container: \"data-testid Query field\" },\n QueryBuilder: {\n queryPatterns: \"data-testid Query patterns\",\n labelSelect: \"data-testid Select label\",\n valueSelect: \"data-testid Select value\",\n matchOperatorSelect: \"data-testid Select match operator\"\n },\n ValuePicker: {\n button: (name) => `data-testid Value picker button ${name}`,\n select: (name) => `data-testid Value picker select ${name}`\n },\n Search: {\n /**\n * @deprecated use sectionV2 from Grafana 8.3 instead\n */\n section: \"Search section\",\n sectionV2: \"data-testid Search section\",\n /**\n * @deprecated use itemsV2 from Grafana 8.3 instead\n */\n items: \"Search items\",\n itemsV2: \"data-testid Search items\",\n cards: \"data-testid Search cards\",\n collapseFolder: (sectionId) => `data-testid Collapse folder ${sectionId}`,\n expandFolder: (sectionId) => `data-testid Expand folder ${sectionId}`,\n dashboardItem: (item) => `${Components.Search.dashboardItems} ${item}`,\n dashboardCard: (item) => `data-testid Search card ${item}`,\n folderHeader: (folderName) => `data-testid Folder header ${folderName}`,\n folderContent: (folderName) => `data-testid Folder content ${folderName}`,\n dashboardItems: \"data-testid Dashboard search item\"\n },\n DashboardLinks: {\n container: \"data-testid Dashboard link container\",\n dropDown: \"data-testid Dashboard link dropdown\",\n link: \"data-testid Dashboard link\"\n },\n LoadingIndicator: {\n icon: \"data-testid Loading indicator\"\n },\n CallToActionCard: {\n /**\n * @deprecated use buttonV2 from Grafana 8.3 instead\n */\n button: (name) => `Call to action button ${name}`,\n buttonV2: (name) => `data-testid Call to action button ${name}`\n },\n DataLinksContextMenu: {\n singleLink: \"data-testid Data link\"\n },\n CodeEditor: {\n container: \"data-testid Code editor container\"\n },\n DashboardImportPage: {\n textarea: \"data-testid-import-dashboard-textarea\",\n submit: \"data-testid-load-dashboard\"\n },\n ImportDashboardForm: {\n name: \"data-testid-import-dashboard-title\",\n submit: \"data-testid-import-dashboard-submit\"\n },\n PanelAlertTabContent: {\n content: \"data-testid Unified alert editor tab content\"\n },\n VisualizationPreview: {\n card: (name) => `data-testid suggestion-${name}`\n },\n ColorSwatch: {\n name: `data-testid-colorswatch`\n },\n DashboardRow: {\n title: (title) => `data-testid dashboard-row-title-${title}`\n },\n UserProfile: {\n profileSaveButton: \"data-testid-user-profile-save\",\n preferencesSaveButton: \"data-testid-shared-prefs-save\",\n orgsTable: \"data-testid-user-orgs-table\",\n sessionsTable: \"data-testid-user-sessions-table\",\n extensionPointTabs: \"data-testid-extension-point-tabs\",\n extensionPointTab: (tabId) => `data-testid-extension-point-tab-${tabId}`\n },\n FileUpload: {\n inputField: \"data-testid-file-upload-input-field\",\n fileNameSpan: \"data-testid-file-upload-file-name\"\n },\n DebugOverlay: {\n wrapper: \"debug-overlay\"\n },\n OrgRolePicker: {\n input: \"Role\"\n },\n AnalyticsToolbarButton: {\n button: \"Dashboard insights\"\n },\n Variables: {\n variableOption: \"data-testid variable-option\"\n },\n Annotations: {\n annotationsTypeInput: \"annotations-type-input\",\n annotationsChoosePanelInput: \"choose-panels-input\"\n },\n Tooltip: {\n container: \"data-testid tooltip\"\n }\n};\n\nexport { Components };\n//# sourceMappingURL=components.js.map\n","import { Components } from './components.js';\nexport { Components } from './components.js';\nimport { Pages } from './pages.js';\nexport { Pages } from './pages.js';\n\nconst selectors = {\n pages: Pages,\n components: Components\n};\n\nexport { selectors };\n//# sourceMappingURL=index.js.map\n","import { Components } from './components.js';\n\nconst Pages = {\n Login: {\n url: \"/login\",\n username: \"data-testid Username input field\",\n password: \"data-testid Password input field\",\n submit: \"data-testid Login button\",\n skip: \"data-testid Skip change password button\"\n },\n Home: {\n url: \"/\"\n },\n DataSource: {\n name: \"data-testid Data source settings page name input field\",\n delete: \"Data source settings page Delete button\",\n readOnly: \"data-testid Data source settings page read only message\",\n saveAndTest: \"data-testid Data source settings page Save and Test button\",\n alert: \"data-testid Data source settings page Alert\"\n },\n DataSources: {\n url: \"/datasources\",\n dataSources: (dataSourceName) => `Data source list item ${dataSourceName}`\n },\n EditDataSource: {\n url: (dataSourceUid) => `/datasources/edit/${dataSourceUid}`,\n settings: \"Datasource settings page basic settings\"\n },\n AddDataSource: {\n url: \"/datasources/new\",\n /** @deprecated Use dataSourcePluginsV2 */\n dataSourcePlugins: (pluginName) => `Data source plugin item ${pluginName}`,\n dataSourcePluginsV2: (pluginName) => `Add new data source ${pluginName}`\n },\n ConfirmModal: {\n delete: \"data-testid Confirm Modal Danger Button\"\n },\n AddDashboard: {\n url: \"/dashboard/new\",\n itemButton: (title) => `data-testid ${title}`,\n addNewPanel: \"Add new panel\",\n addNewRow: \"Add new row\",\n addNewPanelLibrary: \"Add new panel from panel library\"\n },\n Dashboard: {\n url: (uid) => `/d/${uid}`,\n DashNav: {\n /**\n * @deprecated use navV2 from Grafana 8.3 instead\n */\n nav: \"Dashboard navigation\",\n navV2: \"data-testid Dashboard navigation\",\n publicDashboardTag: \"data-testid public dashboard tag\",\n shareButton: \"data-testid share-button\"\n },\n SubMenu: {\n submenu: \"Dashboard submenu\",\n submenuItem: \"data-testid template variable\",\n submenuItemLabels: (item) => `data-testid Dashboard template variables submenu Label ${item}`,\n submenuItemValueDropDownValueLinkTexts: (item) => `data-testid Dashboard template variables Variable Value DropDown value link text ${item}`,\n submenuItemValueDropDownDropDown: \"Variable options\",\n submenuItemValueDropDownOptionTexts: (item) => `data-testid Dashboard template variables Variable Value DropDown option text ${item}`,\n Annotations: {\n annotationsWrapper: \"data-testid annotation-wrapper\",\n annotationLabel: (label) => `data-testid Dashboard annotations submenu Label ${label}`,\n annotationToggle: (label) => `data-testid Dashboard annotations submenu Toggle ${label}`\n }\n },\n Settings: {\n Actions: {\n close: \"data-testid dashboard-settings-close\"\n },\n General: {\n deleteDashBoard: \"Dashboard settings page delete dashboard button\",\n sectionItems: (item) => `Dashboard settings section item ${item}`,\n saveDashBoard: \"Dashboard settings aside actions Save button\",\n saveAsDashBoard: \"Dashboard settings aside actions Save As button\",\n /**\n * @deprecated use components.TimeZonePicker.containerV2 from Grafana 8.3 instead\n */\n timezone: \"Time zone picker select container\",\n title: \"Tab General\"\n },\n Annotations: {\n List: {\n /**\n * @deprecated use addAnnotationCTAV2 from Grafana 8.3 instead\n */\n addAnnotationCTA: Components.CallToActionCard.button(\"Add annotation query\"),\n addAnnotationCTAV2: Components.CallToActionCard.buttonV2(\"Add annotation query\"),\n annotations: \"data-testid list-annotations\"\n },\n Settings: {\n name: \"Annotations settings name input\"\n },\n NewAnnotation: {\n panelFilterSelect: \"data-testid annotations-panel-filter\",\n showInLabel: \"show-in-label\",\n previewInDashboard: \"data-testid annotations-preview\",\n delete: \"data-testid annotations-delete\",\n apply: \"data-testid annotations-apply\",\n enable: \"data-testid annotation-enable\",\n hide: \"data-testid annotation-hide\"\n }\n },\n Variables: {\n List: {\n /**\n * @deprecated use addVariableCTAV2 from Grafana 8.3 instead\n */\n addVariableCTA: Components.CallToActionCard.button(\"Add variable\"),\n addVariableCTAV2: Components.CallToActionCard.buttonV2(\"Add variable\"),\n newButton: \"Variable editor New variable button\",\n table: \"Variable editor Table\",\n tableRowNameFields: (variableName) => `Variable editor Table Name field ${variableName}`,\n tableRowDefinitionFields: (variableName) => `Variable editor Table Definition field ${variableName}`,\n tableRowArrowUpButtons: (variableName) => `Variable editor Table ArrowUp button ${variableName}`,\n tableRowArrowDownButtons: (variableName) => `Variable editor Table ArrowDown button ${variableName}`,\n tableRowDuplicateButtons: (variableName) => `Variable editor Table Duplicate button ${variableName}`,\n tableRowRemoveButtons: (variableName) => `Variable editor Table Remove button ${variableName}`\n },\n Edit: {\n General: {\n headerLink: \"Variable editor Header link\",\n modeLabelNew: \"Variable editor Header mode New\",\n /**\n * @deprecated\n */\n modeLabelEdit: \"Variable editor Header mode Edit\",\n generalNameInput: \"Variable editor Form Name field\",\n generalNameInputV2: \"data-testid Variable editor Form Name field\",\n generalTypeSelect: \"Variable editor Form Type select\",\n generalTypeSelectV2: \"data-testid Variable editor Form Type select\",\n generalLabelInput: \"Variable editor Form Label field\",\n generalLabelInputV2: \"data-testid Variable editor Form Label field\",\n generalHideSelect: \"Variable editor Form Hide select\",\n generalHideSelectV2: \"data-testid Variable editor Form Hide select\",\n selectionOptionsMultiSwitch: \"data-testid Variable editor Form Multi switch\",\n selectionOptionsIncludeAllSwitch: \"data-testid Variable editor Form IncludeAll switch\",\n selectionOptionsCustomAllInput: \"data-testid Variable editor Form IncludeAll field\",\n previewOfValuesOption: \"data-testid Variable editor Preview of Values option\",\n submitButton: \"data-testid Variable editor Run Query button\",\n applyButton: \"data-testid Variable editor Apply button\"\n },\n QueryVariable: {\n queryOptionsDataSourceSelect: Components.DataSourcePicker.inputV2,\n queryOptionsRefreshSelect: \"Variable editor Form Query Refresh select\",\n queryOptionsRefreshSelectV2: \"data-testid Variable editor Form Query Refresh select\",\n queryOptionsRegExInput: \"Variable editor Form Query RegEx field\",\n queryOptionsRegExInputV2: \"data-testid Variable editor Form Query RegEx field\",\n queryOptionsSortSelect: \"Variable editor Form Query Sort select\",\n queryOptionsSortSelectV2: \"data-testid Variable editor Form Query Sort select\",\n queryOptionsQueryInput: \"data-testid Variable editor Form Default Variable Query Editor textarea\",\n valueGroupsTagsEnabledSwitch: \"Variable editor Form Query UseTags switch\",\n valueGroupsTagsTagsQueryInput: \"Variable editor Form Query TagsQuery field\",\n valueGroupsTagsTagsValuesQueryInput: \"Variable editor Form Query TagsValuesQuery field\"\n },\n ConstantVariable: {\n constantOptionsQueryInput: \"Variable editor Form Constant Query field\",\n constantOptionsQueryInputV2: \"data-testid Variable editor Form Constant Query field\"\n },\n DatasourceVariable: {\n datasourceSelect: \"data-testid datasource variable datasource type\"\n },\n TextBoxVariable: {\n textBoxOptionsQueryInput: \"Variable editor Form TextBox Query field\",\n textBoxOptionsQueryInputV2: \"data-testid Variable editor Form TextBox Query field\"\n },\n CustomVariable: {\n customValueInput: \"data-testid custom-variable-input\"\n },\n IntervalVariable: {\n intervalsValueInput: \"data-testid interval variable intervals input\",\n autoEnabledCheckbox: \"data-testid interval variable auto value checkbox\",\n stepCountIntervalSelect: \"data-testid interval variable step count input\",\n minIntervalInput: \"data-testid interval variable mininum interval input\"\n },\n GroupByVariable: {\n dataSourceSelect: Components.DataSourcePicker.inputV2,\n infoText: \"data-testid group by variable info text\",\n modeToggle: \"data-testid group by variable mode toggle\"\n },\n AdHocFiltersVariable: {\n datasourceSelect: Components.DataSourcePicker.inputV2,\n infoText: \"data-testid ad-hoc filters variable info text\"\n }\n }\n }\n },\n Annotations: {\n marker: \"data-testid annotation-marker\"\n },\n Rows: {\n Repeated: {\n ConfigSection: {\n warningMessage: \"data-testid Repeated rows warning message\"\n }\n }\n }\n },\n Dashboards: {\n url: \"/dashboards\",\n /**\n * @deprecated use components.Search.dashboardItem from Grafana 8.3 instead\n */\n dashboards: (title) => `Dashboard search item ${title}`\n },\n SaveDashboardAsModal: {\n newName: \"Save dashboard title field\",\n save: \"Save dashboard button\"\n },\n SaveDashboardModal: {\n save: \"Dashboard settings Save Dashboard Modal Save button\",\n saveVariables: \"Dashboard settings Save Dashboard Modal Save variables checkbox\",\n saveTimerange: \"Dashboard settings Save Dashboard Modal Save timerange checkbox\"\n },\n SharePanelModal: {\n linkToRenderedImage: \"Link to rendered image\"\n },\n ShareDashboardModal: {\n PublicDashboard: {\n Tab: \"Tab Public dashboard\",\n WillBePublicCheckbox: \"data-testid public dashboard will be public checkbox\",\n LimitedDSCheckbox: \"data-testid public dashboard limited datasources checkbox\",\n CostIncreaseCheckbox: \"data-testid public dashboard cost may increase checkbox\",\n PauseSwitch: \"data-testid public dashboard pause switch\",\n EnableAnnotationsSwitch: \"data-testid public dashboard on off switch for annotations\",\n CreateButton: \"data-testid public dashboard create button\",\n DeleteButton: \"data-testid public dashboard delete button\",\n CopyUrlInput: \"data-testid public dashboard copy url input\",\n CopyUrlButton: \"data-testid public dashboard copy url button\",\n SettingsDropdown: \"data-testid public dashboard settings dropdown\",\n TemplateVariablesWarningAlert: \"data-testid public dashboard disabled template variables alert\",\n UnsupportedDataSourcesWarningAlert: \"data-testid public dashboard unsupported data sources alert\",\n NoUpsertPermissionsWarningAlert: \"data-testid public dashboard no upsert permissions alert\",\n EnableTimeRangeSwitch: \"data-testid public dashboard on off switch for time range\",\n EmailSharingConfiguration: {\n Container: \"data-testid email sharing config container\",\n ShareType: \"data-testid public dashboard share type\",\n EmailSharingInput: \"data-testid public dashboard email sharing input\",\n EmailSharingInviteButton: \"data-testid public dashboard email sharing invite button\",\n EmailSharingList: \"data-testid public dashboard email sharing list\",\n DeleteEmail: \"data-testid public dashboard delete email button\",\n ReshareLink: \"data-testid public dashboard reshare link button\"\n }\n }\n },\n PublicDashboard: {\n page: \"public-dashboard-page\",\n NotAvailable: {\n container: \"public-dashboard-not-available\",\n title: \"public-dashboard-title\",\n pausedDescription: \"public-dashboard-paused-description\"\n }\n },\n RequestViewAccess: {\n form: \"request-view-access-form\",\n recipientInput: \"request-view-access-recipient-input\",\n submitButton: \"request-view-access-submit-button\"\n },\n PublicDashboardConfirmAccess: {\n submitButton: \"data-testid confirm-access-submit-button\"\n },\n Explore: {\n url: \"/explore\",\n General: {\n container: \"data-testid Explore\",\n graph: \"Explore Graph\",\n table: \"Explore Table\",\n scrollView: \"data-testid explorer scroll view\"\n }\n },\n SoloPanel: {\n url: (page) => `/d-solo/${page}`\n },\n PluginsList: {\n page: \"Plugins list page\",\n list: \"Plugins list\",\n listItem: \"Plugins list item\",\n signatureErrorNotice: \"data-testid Unsigned plugins notice\"\n },\n PluginPage: {\n page: \"Plugin page\",\n signatureInfo: \"data-testid Plugin signature info\",\n disabledInfo: \"data-testid Plugin disabled info\"\n },\n PlaylistForm: {\n name: \"Playlist name\",\n interval: \"Playlist interval\",\n itemDelete: \"data-testid playlist-form-delete-item\"\n },\n BrowseDashboards: {\n table: {\n body: \"data-testid browse-dashboards-table\",\n row: (name) => `data-testid browse dashboards row ${name}`,\n checkbox: (uid) => `data-testid ${uid} checkbox`\n },\n NewFolderForm: {\n form: \"data-testid new folder form\",\n nameInput: \"data-testid new-folder-name-input\",\n createButton: \"data-testid new-folder-create-button\"\n }\n },\n Search: {\n url: \"/?search=openn\",\n FolderView: {\n url: \"/?search=open&layout=folders\"\n }\n },\n PublicDashboards: {\n ListItem: {\n linkButton: \"public-dashboard-link-button\",\n configButton: \"public-dashboard-configuration-button\",\n trashcanButton: \"public-dashboard-remove-button\",\n pauseSwitch: \"data-testid public dashboard pause switch\"\n }\n },\n UserListPage: {\n tabs: {\n allUsers: \"data-testid all-users-tab\",\n orgUsers: \"data-testid org-users-tab\",\n anonUserDevices: \"data-testid anon-user-devices-tab\",\n publicDashboardsUsers: \"data-testid public-dashboards-users-tab\",\n users: \"data-testid users-tab\"\n },\n org: {\n url: \"/org/users\"\n },\n admin: {\n url: \"/admin/users\"\n },\n publicDashboards: {\n container: \"data-testid public-dashboards-users-list\"\n },\n UserListAdminPage: {\n container: \"data-testid user-list-admin-page\"\n },\n UsersListPage: {\n container: \"data-testid users-list-page\"\n },\n UserAnonListPage: {\n container: \"data-testid user-anon-list-page\"\n },\n UsersListPublicDashboardsPage: {\n container: \"data-testid users-list-public-dashboards-page\",\n DashboardsListModal: {\n listItem: (uid) => `data-testid dashboards-list-item-${uid}`\n }\n }\n },\n ProfilePage: {\n url: \"/profile\"\n }\n};\n\nexport { Pages };\n//# sourceMappingURL=pages.js.map\n","/**\n* Copyright (c) 2025, Leon Sorokin\n* All rights reserved. (MIT Licensed)\n*\n* uFuzzy.js (μFuzzy)\n* A tiny, efficient fuzzy matcher that doesn't suck\n* https://github.com/leeoniya/uFuzzy (v1.0.18)\n*/\n\nconst cmp = (a, b) => a > b ? 1 : a < b ? -1 : 0;\n\nconst inf = Infinity;\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions#escaping\nconst escapeRegExp = str => str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\n// meh, magic tmp placeholder, must be tolerant to toLocaleLowerCase(), interSplit, and intraSplit\nconst EXACT_HERE = 'eexxaacctt';\n\nconst PUNCT_RE = /\\p{P}/gu;\n\nconst LATIN_UPPER = 'A-Z';\nconst LATIN_LOWER = 'a-z';\n\nconst COLLATE_ARGS = ['en', { numeric: true, sensitivity: 'base' }];\n\nconst swapAlpha = (str, upper, lower) => str.replace(LATIN_UPPER, upper).replace(LATIN_LOWER, lower);\n\nconst OPTS = {\n\t// whether regexps use a /u unicode flag\n\tunicode: false,\n\n\talpha: null,\n\n\t// term segmentation & punct/whitespace merging\n\tinterSplit: \"[^A-Za-z\\\\d']+\",\n\tintraSplit: \"[a-z][A-Z]\",\n\n\t// inter bounds that will be used to increase lft2/rgt2 info counters\n\tinterBound: \"[^A-Za-z\\\\d]\",\n\t// intra bounds that will be used to increase lft1/rgt1 info counters\n\tintraBound: \"[A-Za-z]\\\\d|\\\\d[A-Za-z]|[a-z][A-Z]\",\n\n\t// inter-bounds mode\n\t// 2 = strict (will only match 'man' on whitepace and punct boundaries: Mega Man, Mega_Man, mega.man)\n\t// 1 = loose (plus allowance for alpha-num and case-change boundaries: MegaMan, 0007man)\n\t// 0 = any (will match 'man' as any substring: megamaniac)\n\tinterLft: 0,\n\tinterRgt: 0,\n\n\t// allowance between terms\n\tinterChars: '.',\n\tinterIns: inf,\n\n\t// allowance between chars in terms\n\tintraChars: \"[a-z\\\\d']\", // internally case-insensitive\n\tintraIns: null,\n\n\tintraContr: \"'[a-z]{1,2}\\\\b\",\n\n\t// multi-insert or single-error mode\n\tintraMode: 0,\n\n\t// single-error bounds for errors within terms, default requires exact first char\n\tintraSlice: [1, inf],\n\n\t// single-error tolerance toggles\n\tintraSub: null,\n\tintraTrn: null,\n\tintraDel: null,\n\n\t// can post-filter matches that are too far apart in distance or length\n\t// (since intraIns is between each char, it can accum to nonsense matches)\n\tintraFilt: (term, match, index) => true, // should this also accept WIP info?\n\n\ttoUpper: str => str.toLocaleUpperCase(),\n\ttoLower: str => str.toLocaleLowerCase(),\n\tcompare: null,\n\n\t// final sorting fn\n\tsort: (info, haystack, needle, compare = cmp) => {\n\t\tlet {\n\t\t\tidx,\n\t\t\tchars,\n\t\t\tterms,\n\t\t\tinterLft2,\n\t\t\tinterLft1,\n\t\t//\tinterRgt2,\n\t\t//\tinterRgt1,\n\t\t\tstart,\n\t\t\tintraIns,\n\t\t\tinterIns,\n\t\t\tcases,\n\t\t} = info;\n\n\t\treturn idx.map((v, i) => i).sort((ia, ib) => (\n\t\t\t// most contig chars matched\n\t\t\tchars[ib] - chars[ia] ||\n\t\t\t// least char intra-fuzz (most contiguous)\n\t\t\tintraIns[ia] - intraIns[ib] ||\n\t\t\t// most prefix bounds, boosted by full term matches\n\t\t\t(\n\t\t\t\t(terms[ib] + interLft2[ib] + 0.5 * interLft1[ib]) -\n\t\t\t\t(terms[ia] + interLft2[ia] + 0.5 * interLft1[ia])\n\t\t\t) ||\n\t\t\t// highest density of match (least span)\n\t\t//\tspan[ia] - span[ib] ||\n\t\t\t// highest density of match (least term inter-fuzz)\n\t\t\tinterIns[ia] - interIns[ib] ||\n\t\t\t// earliest start of match\n\t\t\tstart[ia] - start[ib] ||\n\t\t\t// case match\n\t\t\tcases[ib] - cases[ia] ||\n\t\t\t// alphabetic\n\t\t\tcompare(haystack[idx[ia]], haystack[idx[ib]])\n\t\t));\n\t},\n};\n\nconst lazyRepeat = (chars, limit) => (\n\tlimit == 0 ? '' :\n\tlimit == 1 ? chars + '??' :\n\tlimit == inf ? chars + '*?' :\n\t chars + `{0,${limit}}?`\n);\n\nconst mode2Tpl = '(?:\\\\b|_)';\n\nfunction uFuzzy(opts) {\n\topts = Object.assign({}, OPTS, opts);\n\n\tlet {\n\t\tunicode,\n\t\tinterLft,\n\t\tinterRgt,\n\t\tintraMode,\n\t\tintraSlice,\n\t\tintraIns,\n\t\tintraSub,\n\t\tintraTrn,\n\t\tintraDel,\n\t\tintraContr,\n\t\tintraSplit: _intraSplit,\n\t\tinterSplit: _interSplit,\n\t\tintraBound: _intraBound,\n\t\tinterBound: _interBound,\n\t\tintraChars,\n\t\ttoUpper,\n\t\ttoLower,\n\t\tcompare,\n\t} = opts;\n\n\tintraIns ??= intraMode;\n\tintraSub ??= intraMode;\n\tintraTrn ??= intraMode;\n\tintraDel ??= intraMode;\n\n\tcompare ??= typeof Intl == \"undefined\" ? cmp : new Intl.Collator(...COLLATE_ARGS).compare;\n\n\tlet alpha = opts.letters ?? opts.alpha;\n\n\tif (alpha != null) {\n\t\tlet upper = toUpper(alpha);\n\t\tlet lower = toLower(alpha);\n\n\t\t_interSplit = swapAlpha(_interSplit, upper, lower);\n\t\t_intraSplit = swapAlpha(_intraSplit, upper, lower);\n\t\t_interBound = swapAlpha(_interBound, upper, lower);\n\t\t_intraBound = swapAlpha(_intraBound, upper, lower);\n\t\tintraChars = swapAlpha(intraChars, upper, lower);\n\t\tintraContr = swapAlpha(intraContr, upper, lower);\n\t}\n\n\tlet uFlag = unicode ? 'u' : '';\n\n\tconst quotedAny = '\".+?\"';\n\tconst EXACTS_RE = new RegExp(quotedAny, 'gi' + uFlag);\n\tconst NEGS_RE = new RegExp(`(?:\\\\s+|^)-(?:${intraChars}+|${quotedAny})`, 'gi' + uFlag);\n\n\tlet { intraRules } = opts;\n\n\tif (intraRules == null) {\n\t\tintraRules = p => {\n\t\t\t// default is exact term matches only\n\t\t\tlet _intraSlice = OPTS.intraSlice, // requires first char\n\t\t\t\t_intraIns = 0,\n\t\t\t\t_intraSub = 0,\n\t\t\t\t_intraTrn = 0,\n\t\t\t\t_intraDel = 0;\n\n\t\t\t// only-digits strings should match exactly, else special rules for short strings\n\t\t\tif (/[^\\d]/.test(p)) {\n\t\t\t\tlet plen = p.length;\n\n\t\t\t\t// prevent junk matches by requiring stricter rules for short terms\n\t\t\t\tif (plen <= 4) {\n\t\t\t\t\tif (plen >= 3) {\n\t\t\t\t\t\t// one swap in non-first char when 3-4 chars\n\t\t\t\t\t\t_intraTrn = Math.min(intraTrn, 1);\n\n\t\t\t\t\t\t// or one insertion when 4 chars\n\t\t\t\t\t\tif (plen == 4)\n\t\t\t\t\t\t\t_intraIns = Math.min(intraIns, 1);\n\t\t\t\t\t}\n\t\t\t\t\t// else exact match when 1-2 chars\n\t\t\t\t}\n\t\t\t\t// use supplied opts\n\t\t\t\telse {\n\t\t\t\t\t_intraSlice = intraSlice;\n\t\t\t\t\t_intraIns = intraIns,\n\t\t\t\t\t_intraSub = intraSub,\n\t\t\t\t\t_intraTrn = intraTrn,\n\t\t\t\t\t_intraDel = intraDel;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tintraSlice: _intraSlice,\n\t\t\t\tintraIns: _intraIns,\n\t\t\t\tintraSub: _intraSub,\n\t\t\t\tintraTrn: _intraTrn,\n\t\t\t\tintraDel: _intraDel,\n\t\t\t};\n\t\t};\n\t}\n\n\tlet withIntraSplit = !!_intraSplit;\n\n\tlet intraSplit = new RegExp(_intraSplit, 'g' + uFlag);\n\tlet interSplit = new RegExp(_interSplit, 'g' + uFlag);\n\n\tlet trimRe = new RegExp('^' + _interSplit + '|' + _interSplit + '$', 'g' + uFlag);\n\tlet contrsRe = new RegExp(intraContr, 'gi' + uFlag);\n\n\tconst split = (needle, keepCase = false) => {\n\t\tlet exacts = [];\n\n\t\tneedle = needle.replace(EXACTS_RE, m => {\n\t\t\texacts.push(m);\n\t\t\treturn EXACT_HERE;\n\t\t});\n\n\t\tneedle = needle.replace(trimRe, '');\n\n\t\tif (!keepCase)\n\t\t\tneedle = toLower(needle);\n\n\t\tif (withIntraSplit)\n\t\t\tneedle = needle.replace(intraSplit, m => m[0] + ' ' + m[1]);\n\n\t\tlet j = 0;\n\t\treturn needle.split(interSplit).filter(t => t != '').map(v => v === EXACT_HERE ? exacts[j++] : v);\n\t};\n\n\tconst NUM_OR_ALPHA_RE = /[^\\d]+|\\d+/g;\n\n\tconst prepQuery = (needle, capt = 0, interOR = false) => {\n\t\t// split on punct, whitespace, num-alpha, and upper-lower boundaries\n\t\tlet parts = split(needle);\n\n\t\tif (parts.length == 0)\n\t\t\treturn [];\n\n\t\t// split out any detected contractions for each term that become required suffixes\n\t\tlet contrs = Array(parts.length).fill('');\n\t\tparts = parts.map((p, pi) => p.replace(contrsRe, m => {\n\t\t\tcontrs[pi] = m;\n\t\t\treturn '';\n\t\t}));\n\n\t\t// array of regexp tpls for each term\n\t\tlet reTpl;\n\n\t\t// allows single mutations within each term\n\t\tif (intraMode == 1) {\n\t\t\treTpl = parts.map((p, pi) => {\n\t\t\t\tif (p[0] === '\"')\n\t\t\t\t\treturn escapeRegExp(p.slice(1, -1));\n\n\t\t\t\tlet reTpl = '';\n\n\t\t\t\t// split into numeric and alpha parts, so numbers are only matched as following punct or alpha boundaries, without swaps or insertions\n\t\t\t\tfor (let m of p.matchAll(NUM_OR_ALPHA_RE)) {\n\t\t\t\t\tlet p = m[0];\n\n\t\t\t\t\tlet {\n\t\t\t\t\t\tintraSlice,\n\t\t\t\t\t\tintraIns,\n\t\t\t\t\t\tintraSub,\n\t\t\t\t\t\tintraTrn,\n\t\t\t\t\t\tintraDel,\n\t\t\t\t\t} = intraRules(p);\n\n\t\t\t\t\tif (intraIns + intraSub + intraTrn + intraDel == 0)\n\t\t\t\t\t\treTpl += p + contrs[pi];\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet [lftIdx, rgtIdx] = intraSlice;\n\t\t\t\t\t\tlet lftChar = p.slice(0, lftIdx); // prefix\n\t\t\t\t\t\tlet rgtChar = p.slice(rgtIdx); // suffix\n\n\t\t\t\t\t\tlet chars = p.slice(lftIdx, rgtIdx);\n\n\t\t\t\t\t\t// neg lookahead to prefer matching 'Test' instead of 'tTest' in ManifestTest or fittest\n\t\t\t\t\t\t// but skip when search term contains leading repetition (aardvark, aaa)\n\t\t\t\t\t\tif (intraIns == 1 && lftChar.length == 1 && lftChar != chars[0])\n\t\t\t\t\t\t\tlftChar += '(?!' + lftChar + ')';\n\n\t\t\t\t\t\tlet numChars = chars.length;\n\n\t\t\t\t\t\tlet variants = [p];\n\n\t\t\t\t\t\t// variants with single char substitutions\n\t\t\t\t\t\tif (intraSub) {\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars; i++)\n\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i) + intraChars + chars.slice(i + 1) + rgtChar);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// variants with single transpositions\n\t\t\t\t\t\tif (intraTrn) {\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars - 1; i++) {\n\t\t\t\t\t\t\t\tif (chars[i] != chars[i+1])\n\t\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i) + chars[i+1] + chars[i] + chars.slice(i + 2) + rgtChar);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// variants with single char omissions\n\t\t\t\t\t\tif (intraDel) {\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars; i++)\n\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i + 1) + '?' + chars.slice(i + 1) + rgtChar);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// variants with single char insertions\n\t\t\t\t\t\tif (intraIns) {\n\t\t\t\t\t\t\tlet intraInsTpl = lazyRepeat(intraChars, 1);\n\n\t\t\t\t\t\t\tfor (let i = 0; i < numChars; i++)\n\t\t\t\t\t\t\t\tvariants.push(lftChar + chars.slice(0, i) + intraInsTpl + chars.slice(i) + rgtChar);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treTpl += '(?:' + variants.join('|') + ')' + contrs[pi];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t//\tconsole.log(reTpl);\n\n\t\t\t\treturn reTpl;\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tlet intraInsTpl = lazyRepeat(intraChars, intraIns);\n\n\t\t\t// capture at char level\n\t\t\tif (capt == 2 && intraIns > 0) {\n\t\t\t\t// sadly, we also have to capture the inter-term junk via parenth-wrapping .*?\n\t\t\t\t// to accum other capture groups' indices for \\b boosting during scoring\n\t\t\t\tintraInsTpl = ')(' + intraInsTpl + ')(';\n\t\t\t}\n\n\t\t\treTpl = parts.map((p, pi) => p[0] === '\"' ? escapeRegExp(p.slice(1, -1)) : p.split('').map((c, i, chars) => {\n\t\t\t\t// neg lookahead to prefer matching 'Test' instead of 'tTest' in ManifestTest or fittest\n\t\t\t\t// but skip when search term contains leading repetition (aardvark, aaa)\n\t\t\t\tif (intraIns == 1 && i == 0 && chars.length > 1 && c != chars[i+1])\n\t\t\t\t\tc += '(?!' + c + ')';\n\n\t\t\t\treturn c;\n\t\t\t}).join(intraInsTpl) + contrs[pi]);\n\t\t}\n\n\t//\tconsole.log(reTpl);\n\n\t\t// this only helps to reduce initial matches early when they can be detected\n\t\t// TODO: might want a mode 3 that excludes _\n\t\tlet preTpl = interLft == 2 ? mode2Tpl : '';\n\t\tlet sufTpl = interRgt == 2 ? mode2Tpl : '';\n\n\t\tlet interCharsTpl = sufTpl + lazyRepeat(opts.interChars, opts.interIns) + preTpl;\n\n\t\t// capture at word level\n\t\tif (capt > 0) {\n\t\t\tif (interOR) {\n\t\t\t\t// this is basically for doing .matchAll() occurence counting and highlighting without needing permuted ooo needles\n\t\t\t\treTpl = preTpl + '(' + reTpl.join(')' + sufTpl + '|' + preTpl + '(') + ')' + sufTpl;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// sadly, we also have to capture the inter-term junk via parenth-wrapping .*?\n\t\t\t\t// to accum other capture groups' indices for \\b boosting during scoring\n\t\t\t\treTpl = '(' + reTpl.join(')(' + interCharsTpl + ')(') + ')';\n\t\t\t\treTpl = '(.??' + preTpl + ')' + reTpl + '(' + sufTpl + '.*)'; // nit: trailing capture here assumes interIns = Inf\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\treTpl = reTpl.join(interCharsTpl);\n\t\t\treTpl = preTpl + reTpl + sufTpl;\n\t\t}\n\n\t//\tconsole.log(reTpl);\n\n\t\treturn [new RegExp(reTpl, 'i' + uFlag), parts, contrs];\n\t};\n\n\tconst filter = (haystack, needle, idxs) => {\n\n\t\tlet [query] = prepQuery(needle);\n\n\t\tif (query == null)\n\t\t\treturn null;\n\n\t\tlet out = [];\n\n\t\tif (idxs != null) {\n\t\t\tfor (let i = 0; i < idxs.length; i++) {\n\t\t\t\tlet idx = idxs[i];\n\t\t\t\tquery.test(haystack[idx]) && out.push(idx);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfor (let i = 0; i < haystack.length; i++)\n\t\t\t\tquery.test(haystack[i]) && out.push(i);\n\t\t}\n\n\t\treturn out;\n\t};\n\n\tlet withIntraBound = !!_intraBound;\n\n\tlet interBound = new RegExp(_interBound, uFlag);\n\tlet intraBound = new RegExp(_intraBound, uFlag);\n\n\tconst info = (idxs, haystack, needle) => {\n\n\t\tlet [query, parts, contrs] = prepQuery(needle, 1);\n\t\tlet partsCased = split(needle, true);\n\t\tlet [queryR] = prepQuery(needle, 2);\n\t\tlet partsLen = parts.length;\n\n\t\tlet _terms = Array(partsLen);\n\t\tlet _termsCased = Array(partsLen);\n\n\t\tfor (let j = 0; j < partsLen; j++) {\n\t\t\tlet part = parts[j];\n\t\t\tlet partCased = partsCased[j];\n\n\t\t\tlet term = part[0] == '\"' ? part.slice(1, -1) : part + contrs[j];\n\t\t\tlet termCased = partCased[0] == '\"' ? partCased.slice(1, -1) : partCased + contrs[j];\n\n\t\t\t_terms[j] = term;\n\t\t\t_termsCased[j] = termCased;\n\t\t}\n\n\t\tlet len = idxs.length;\n\n\t\tlet field = Array(len).fill(0);\n\n\t\tlet info = {\n\t\t\t// idx in haystack\n\t\t\tidx: Array(len),\n\n\t\t\t// start of match\n\t\t\tstart: field.slice(),\n\t\t\t// length of match\n\t\t//\tspan: field.slice(),\n\n\t\t\t// contiguous chars matched\n\t\t\tchars: field.slice(),\n\n\t\t\t// case matched in term (via term.includes(match))\n\t\t\tcases: field.slice(),\n\n\t\t\t// contiguous (no fuzz) and bounded terms (intra=0, lft2/1, rgt2/1)\n\t\t\t// excludes terms that are contiguous but have < 2 bounds (substrings)\n\t\t\tterms: field.slice(),\n\n\t\t\t// cumulative length of unmatched chars (fuzz) within span\n\t\t\tinterIns: field.slice(), // between terms\n\t\t\tintraIns: field.slice(), // within terms\n\n\t\t\t// interLft/interRgt counters\n\t\t\tinterLft2: field.slice(),\n\t\t\tinterRgt2: field.slice(),\n\t\t\tinterLft1: field.slice(),\n\t\t\tinterRgt1: field.slice(),\n\n\t\t\tranges: Array(len),\n\t\t};\n\n\t\t// might discard idxs based on bounds checks\n\t\tlet mayDiscard = interLft == 1 || interRgt == 1;\n\n\t\tlet ii = 0;\n\n\t\tfor (let i = 0; i < idxs.length; i++) {\n\t\t\tlet mhstr = haystack[idxs[i]];\n\n\t\t\t// the matched parts are [full, junk, term, junk, term, junk]\n\t\t\tlet m = mhstr.match(query);\n\n\t\t\t// leading junk\n\t\t\tlet start = m.index + m[1].length;\n\n\t\t\tlet idxAcc = start;\n\t\t//\tlet span = m[0].length;\n\n\t\t\tlet disc = false;\n\t\t\tlet lft2 = 0;\n\t\t\tlet lft1 = 0;\n\t\t\tlet rgt2 = 0;\n\t\t\tlet rgt1 = 0;\n\t\t\tlet chars = 0;\n\t\t\tlet terms = 0;\n\t\t\tlet cases = 0;\n\t\t\tlet inter = 0;\n\t\t\tlet intra = 0;\n\n\t\t\tlet refine = [];\n\n\t\t\tfor (let j = 0, k = 2; j < partsLen; j++, k+=2) {\n\t\t\t\tlet group = toLower(m[k]);\n\t\t\t\tlet term = _terms[j];\n\t\t\t\tlet termCased = _termsCased[j];\n\t\t\t\tlet termLen = term.length;\n\t\t\t\tlet groupLen = group.length;\n\t\t\t\tlet fullMatch = group == term;\n\n\t\t\t\tif (m[k] == termCased)\n\t\t\t\t\tcases++;\n\n\t\t\t\t// this won't handle the case when an exact match exists across the boundary of the current group and the next junk\n\t\t\t\t// e.g. blob,ob when searching for 'bob' but finding the earlier `blob` (with extra insertion)\n\t\t\t\tif (!fullMatch && m[k+1].length >= termLen) {\n\t\t\t\t\t// probe for exact match in inter junk (TODO: maybe even in this matched part?)\n\t\t\t\t\tlet idxOf = toLower(m[k+1]).indexOf(term);\n\n\t\t\t\t\tif (idxOf > -1) {\n\t\t\t\t\t\trefine.push(idxAcc, groupLen, idxOf, termLen);\n\t\t\t\t\t\tidxAcc += refineMatch(m, k, idxOf, termLen);\n\t\t\t\t\t\tgroup = term;\n\t\t\t\t\t\tgroupLen = termLen;\n\t\t\t\t\t\tfullMatch = true;\n\n\t\t\t\t\t\tif (j == 0)\n\t\t\t\t\t\t\tstart = idxAcc;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (mayDiscard || fullMatch) {\n\t\t\t\t\t// does group's left and/or right land on \\b\n\t\t\t\t\tlet lftCharIdx = idxAcc - 1;\n\t\t\t\t\tlet rgtCharIdx = idxAcc + groupLen;\n\n\t\t\t\t\tlet isPre = false;\n\t\t\t\t\tlet isSuf = false;\n\n\t\t\t\t\t// prefix info\n\t\t\t\t\tif (lftCharIdx == -1 || interBound.test(mhstr[lftCharIdx])) {\n\t\t\t\t\t\tfullMatch && lft2++;\n\t\t\t\t\t\tisPre = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (interLft == 2) {\n\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (withIntraBound && intraBound.test(mhstr[lftCharIdx] + mhstr[lftCharIdx + 1])) {\n\t\t\t\t\t\t\tfullMatch && lft1++;\n\t\t\t\t\t\t\tisPre = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif (interLft == 1) {\n\t\t\t\t\t\t\t\t// regexps are eager, so try to improve the match by probing forward inter junk for exact match at a boundary\n\t\t\t\t\t\t\t\tlet junk = m[k+1];\n\t\t\t\t\t\t\t\tlet junkIdx = idxAcc + groupLen;\n\n\t\t\t\t\t\t\t\tif (junk.length >= termLen) {\n\t\t\t\t\t\t\t\t\tlet idxOf = 0;\n\t\t\t\t\t\t\t\t\tlet found = false;\n\t\t\t\t\t\t\t\t\tlet re = new RegExp(term, 'ig' + uFlag);\n\n\t\t\t\t\t\t\t\t\tlet m2;\n\t\t\t\t\t\t\t\t\twhile (m2 = re.exec(junk)) {\n\t\t\t\t\t\t\t\t\t\tidxOf = m2.index;\n\n\t\t\t\t\t\t\t\t\t\tlet charIdx = junkIdx + idxOf;\n\t\t\t\t\t\t\t\t\t\tlet lftCharIdx = charIdx - 1;\n\n\t\t\t\t\t\t\t\t\t\tif (lftCharIdx == -1 || interBound.test(mhstr[lftCharIdx])) {\n\t\t\t\t\t\t\t\t\t\t\tlft2++;\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (intraBound.test(mhstr[lftCharIdx] + mhstr[charIdx])) {\n\t\t\t\t\t\t\t\t\t\t\tlft1++;\n\t\t\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (found) {\n\t\t\t\t\t\t\t\t\t\tisPre = true;\n\n\t\t\t\t\t\t\t\t\t\t// identical to exact term refinement pass above\n\t\t\t\t\t\t\t\t\t\trefine.push(idxAcc, groupLen, idxOf, termLen);\n\t\t\t\t\t\t\t\t\t\tidxAcc += refineMatch(m, k, idxOf, termLen);\n\t\t\t\t\t\t\t\t\t\tgroup = term;\n\t\t\t\t\t\t\t\t\t\tgroupLen = termLen;\n\t\t\t\t\t\t\t\t\t\tfullMatch = true;\n\n\t\t\t\t\t\t\t\t\t\tif (j == 0)\n\t\t\t\t\t\t\t\t\t\t\tstart = idxAcc;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (!isPre) {\n\t\t\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// suffix info\n\t\t\t\t\tif (rgtCharIdx == mhstr.length || interBound.test(mhstr[rgtCharIdx])) {\n\t\t\t\t\t\tfullMatch && rgt2++;\n\t\t\t\t\t\tisSuf = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (interRgt == 2) {\n\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (withIntraBound && intraBound.test(mhstr[rgtCharIdx - 1] + mhstr[rgtCharIdx])) {\n\t\t\t\t\t\t\tfullMatch && rgt1++;\n\t\t\t\t\t\t\tisSuf = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif (interRgt == 1) {\n\t\t\t\t\t\t\t\tdisc = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (fullMatch) {\n\t\t\t\t\t\tchars += termLen;\n\n\t\t\t\t\t\tif (isPre && isSuf)\n\t\t\t\t\t\t\tterms++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (groupLen > termLen)\n\t\t\t\t\tintra += groupLen - termLen; // intraFuzz\n\n\t\t\t\tif (j > 0)\n\t\t\t\t\tinter += m[k-1].length; // interFuzz\n\n\t\t\t\t// TODO: group here is lowercased, which is okay for length cmp, but not more case-sensitive filts\n\t\t\t\tif (!opts.intraFilt(term, group, idxAcc)) {\n\t\t\t\t\tdisc = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (j < partsLen - 1)\n\t\t\t\t\tidxAcc += groupLen + m[k+1].length;\n\t\t\t}\n\n\t\t\tif (!disc) {\n\t\t\t\tinfo.idx[ii] = idxs[i];\n\t\t\t\tinfo.interLft2[ii] = lft2;\n\t\t\t\tinfo.interLft1[ii] = lft1;\n\t\t\t\tinfo.interRgt2[ii] = rgt2;\n\t\t\t\tinfo.interRgt1[ii] = rgt1;\n\t\t\t\tinfo.chars[ii] = chars;\n\t\t\t\tinfo.terms[ii] = terms;\n\t\t\t\tinfo.cases[ii] = cases;\n\t\t\t\tinfo.interIns[ii] = inter;\n\t\t\t\tinfo.intraIns[ii] = intra;\n\n\t\t\t\tinfo.start[ii] = start;\n\t\t\t//\tinfo.span[ii] = span;\n\n\t\t\t\t// ranges\n\t\t\t\tlet m = mhstr.match(queryR);\n\n\t\t\t\tlet idxAcc = m.index + m[1].length;\n\n\t\t\t\tlet refLen = refine.length;\n\t\t\t\tlet ri = refLen > 0 ? 0 : Infinity;\n\t\t\t\tlet lastRi = refLen - 4;\n\n\t\t\t\tfor (let i = 2; i < m.length;) {\n\t\t\t\t\tlet len = m[i].length;\n\n\t\t\t\t\tif (ri <= lastRi && refine[ri] == idxAcc) {\n\t\t\t\t\t\tlet groupLen = refine[ri+1];\n\t\t\t\t\t\tlet idxOf = refine[ri+2];\n\t\t\t\t\t\tlet termLen = refine[ri+3];\n\n\t\t\t\t\t\t// advance to end of original (full) group match that includes intra-junk\n\t\t\t\t\t\tlet j = i;\n\t\t\t\t\t\tlet v = '';\n\t\t\t\t\t\tfor (let _len = 0; _len < groupLen; j++) {\n\t\t\t\t\t\t\tv += m[j];\n\t\t\t\t\t\t\t_len += m[j].length;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tm.splice(i, j - i, v);\n\n\t\t\t\t\t\tidxAcc += refineMatch(m, i, idxOf, termLen);\n\n\t\t\t\t\t\tri += 4;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tidxAcc += len;\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tidxAcc = m.index + m[1].length;\n\n\t\t\t\tlet ranges = info.ranges[ii] = [];\n\t\t\t\tlet from = idxAcc;\n\t\t\t\tlet to = idxAcc;\n\n\t\t\t\tfor (let i = 2; i < m.length; i++) {\n\t\t\t\t\tlet len = m[i].length;\n\n\t\t\t\t\tidxAcc += len;\n\n\t\t\t\t\tif (i % 2 == 0)\n\t\t\t\t\t\tto = idxAcc;\n\t\t\t\t\telse if (len > 0) {\n\t\t\t\t\t\tranges.push(from, to);\n\t\t\t\t\t\tfrom = to = idxAcc;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (to > from)\n\t\t\t\t\tranges.push(from, to);\n\n\t\t\t\tii++;\n\t\t\t}\n\t\t}\n\n\t\t// trim arrays\n\t\tif (ii < idxs.length) {\n\t\t\tfor (let k in info)\n\t\t\t\tinfo[k] = info[k].slice(0, ii);\n\t\t}\n\n\t\treturn info;\n\t};\n\n\tconst refineMatch = (m, k, idxInNext, termLen) => {\n\t\t// shift the current group into the prior junk\n\t\tlet prepend = m[k] + m[k+1].slice(0, idxInNext);\n\t\tm[k-1] += prepend;\n\t\tm[k] = m[k+1].slice(idxInNext, idxInNext + termLen);\n\t\tm[k+1] = m[k+1].slice(idxInNext + termLen);\n\t\treturn prepend.length;\n\t};\n\n\tconst OOO_TERMS_LIMIT = 5;\n\n\t// returns [idxs, info, order]\n\tconst _search = (haystack, needle, outOfOrder, infoThresh = 1e3, preFiltered) => {\n\t\toutOfOrder = !outOfOrder ? 0 : outOfOrder === true ? OOO_TERMS_LIMIT : outOfOrder;\n\n\t\tlet needles = null;\n\t\tlet matches = null;\n\n\t\tlet negs = [];\n\n\t\tneedle = needle.replace(NEGS_RE, m => {\n\t\t\tlet neg = m.trim().slice(1);\n\n\t\t\tneg = neg[0] === '\"' ? escapeRegExp(neg.slice(1,-1)) : neg.replace(PUNCT_RE, '');\n\n\t\t\tif (neg != '')\n\t\t\t\tnegs.push(neg);\n\n\t\t\treturn '';\n\t\t});\n\n\t\tlet terms = split(needle);\n\n\t\tlet negsRe;\n\n\t\tif (negs.length > 0) {\n\t\t\tnegsRe = new RegExp(negs.join('|'), 'i' + uFlag);\n\n\t\t\tif (terms.length == 0) {\n\t\t\t\tlet idxs = [];\n\n\t\t\t\tfor (let i = 0; i < haystack.length; i++) {\n\t\t\t\t\tif (!negsRe.test(haystack[i]))\n\t\t\t\t\t\tidxs.push(i);\n\t\t\t\t}\n\n\t\t\t\treturn [idxs, null, null];\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// abort search (needle is empty after pre-processing, e.g. no alpha-numeric chars)\n\t\t\tif (terms.length == 0)\n\t\t\t\treturn [null, null, null];\n\t\t}\n\n\t//\tconsole.log(negs);\n\t//\tconsole.log(needle);\n\n\t\tif (outOfOrder > 0) {\n\t\t\t// since uFuzzy is an AND-based search, we can iteratively pre-reduce the haystack by searching\n\t\t\t// for each term in isolation before running permutations on what's left.\n\t\t\t// this is a major perf win. e.g. searching \"test man ger pp a\" goes from 570ms -> 14ms\n\t\t\tlet terms = split(needle);\n\n\t\t\tif (terms.length > 1) {\n\t\t\t\t// longest -> shortest\n\t\t\t\tlet terms2 = terms.slice().sort((a, b) => b.length - a.length);\n\n\t\t\t\tfor (let ti = 0; ti < terms2.length; ti++) {\n\t\t\t\t\t// no haystack item contained all terms\n\t\t\t\t\tif (preFiltered?.length == 0)\n\t\t\t\t\t\treturn [[], null, null];\n\n\t\t\t\t\tpreFiltered = filter(haystack, terms2[ti], preFiltered);\n\t\t\t\t}\n\n\t\t\t\t// avoid combinatorial explosion by limiting outOfOrder to 5 terms (120 max searches)\n\t\t\t\t// fall back to just filter() otherwise\n\t\t\t\tif (terms.length > outOfOrder)\n\t\t\t\t\treturn [preFiltered, null, null];\n\n\t\t\t\tneedles = permute(terms).map(perm => perm.join(' '));\n\n\t\t\t\t// filtered matches for each needle excluding same matches for prior needles\n\t\t\t\tmatches = [];\n\n\t\t\t\t// keeps track of already-matched idxs to skip in follow-up permutations\n\t\t\t\tlet matchedIdxs = new Set();\n\n\t\t\t\tfor (let ni = 0; ni < needles.length; ni++) {\n\t\t\t\t\tif (matchedIdxs.size < preFiltered.length) {\n\t\t\t\t\t\t// filter further for this needle, exclude already-matched\n\t\t\t\t\t\tlet preFiltered2 = preFiltered.filter(idx => !matchedIdxs.has(idx));\n\n\t\t\t\t\t\tlet matched = filter(haystack, needles[ni], preFiltered2);\n\n\t\t\t\t\t\tfor (let j = 0; j < matched.length; j++)\n\t\t\t\t\t\t\tmatchedIdxs.add(matched[j]);\n\n\t\t\t\t\t\tmatches.push(matched);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tmatches.push([]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// interOR\n\t//\tconsole.log(prepQuery(needle, 1, null, true));\n\n\t\t// non-ooo or ooo w/single term\n\t\tif (needles == null) {\n\t\t\tneedles = [needle];\n\t\t\tmatches = [preFiltered?.length > 0 ? preFiltered : filter(haystack, needle)];\n\t\t}\n\n\t\tlet retInfo = null;\n\t\tlet retOrder = null;\n\n\t\tif (negs.length > 0)\n\t\t\tmatches = matches.map(idxs => idxs.filter(idx => !negsRe.test(haystack[idx])));\n\n\t\tlet matchCount = matches.reduce((acc, idxs) => acc + idxs.length, 0);\n\n\t\t// rank, sort, concat\n\t\tif (matchCount <= infoThresh) {\n\t\t\tretInfo = {};\n\t\t\tretOrder = [];\n\n\t\t\tfor (let ni = 0; ni < matches.length; ni++) {\n\t\t\t\tlet idxs = matches[ni];\n\n\t\t\t\tif (idxs == null || idxs.length == 0)\n\t\t\t\t\tcontinue;\n\n\t\t\t\tlet needle = needles[ni];\n\t\t\t\tlet _info = info(idxs, haystack, needle);\n\t\t\t\tlet order = opts.sort(_info, haystack, needle, compare);\n\n\t\t\t\t// offset idxs for concat'ing infos\n\t\t\t\tif (ni > 0) {\n\t\t\t\t\tfor (let i = 0; i < order.length; i++)\n\t\t\t\t\t\torder[i] += retOrder.length;\n\t\t\t\t}\n\n\t\t\t\tfor (let k in _info)\n\t\t\t\t\tretInfo[k] = (retInfo[k] ?? []).concat(_info[k]);\n\n\t\t\t\tretOrder = retOrder.concat(order);\n\t\t\t}\n\t\t}\n\n\t\treturn [\n\t\t\t[].concat(...matches),\n\t\t\tretInfo,\n\t\t\tretOrder,\n\t\t];\n\t};\n\n\treturn {\n\t\tsearch: (...args) => {\n\t\t\tlet out = _search(...args);\n\t\t\treturn out;\n\t\t},\n\t\tsplit,\n\t\tfilter,\n\t\tinfo,\n\t\tsort: opts.sort,\n\t};\n}\n\nconst latinize = (() => {\n\tlet accents = {\n\t\tA: 'ÁÀÃÂÄĄ',\n\t\ta: 'áàãâäą',\n\t\tE: 'ÉÈÊËĖ',\n\t\te: 'éèêëę',\n\t\tI: 'ÍÌÎÏĮ',\n\t\ti: 'íìîïį',\n\t\tO: 'ÓÒÔÕÖ',\n\t\to: 'óòôõö',\n\t\tU: 'ÚÙÛÜŪŲ',\n\t\tu: 'úùûüūų',\n\t\tC: 'ÇČĆ',\n\t\tc: 'çčć',\n\t\tL: 'Ł',\n\t\tl: 'ł',\n\t\tN: 'ÑŃ',\n\t\tn: 'ñń',\n\t\tS: 'ŠŚ',\n\t\ts: 'šś',\n\t\tZ: 'ŻŹ',\n\t\tz: 'żź'\n\t};\n\n\tlet accentsMap = new Map();\n\tlet accentsTpl = '';\n\n\tfor (let r in accents) {\n\t\taccents[r].split('').forEach(a => {\n\t\t\taccentsTpl += a;\n\t\t\taccentsMap.set(a, r);\n\t\t});\n\t}\n\n\tlet accentsRe = new RegExp(`[${accentsTpl}]`, 'g');\n\tlet replacer = m => accentsMap.get(m);\n\n\treturn strings => {\n\t\tif (typeof strings == 'string')\n\t\t\treturn strings.replace(accentsRe, replacer);\n\n\t\tlet out = Array(strings.length);\n\t\tfor (let i = 0; i < strings.length; i++)\n\t\t\tout[i] = strings[i].replace(accentsRe, replacer);\n\t\treturn out;\n\t};\n})();\n\n// https://stackoverflow.com/questions/9960908/permutations-in-javascript/37580979#37580979\nfunction permute(arr) {\n\tarr = arr.slice();\n\n\tlet length = arr.length,\n\t\tresult = [arr.slice()],\n\t\tc = new Array(length).fill(0),\n\t\ti = 1, k, p;\n\n\twhile (i < length) {\n\t\tif (c[i] < i) {\n\t\t\tk = i % 2 && c[i];\n\t\t\tp = arr[i];\n\t\t\tarr[i] = arr[k];\n\t\t\tarr[k] = p;\n\t\t\t++c[i];\n\t\t\ti = 1;\n\t\t\tresult.push(arr.slice());\n\t\t} else {\n\t\t\tc[i] = 0;\n\t\t\t++i;\n\t\t}\n\t}\n\n\treturn result;\n}\n\nconst _mark = (part, matched) => matched ? `${part}` : part;\nconst _append = (acc, part) => acc + part;\n\nfunction highlight(str, ranges, mark = _mark, accum = '', append = _append) {\n\taccum = append(accum, mark(str.substring(0, ranges[0]), false)) ?? accum;\n\n\tfor (let i = 0; i < ranges.length; i+=2) {\n\t\tlet fr = ranges[i];\n\t\tlet to = ranges[i+1];\n\n\t\taccum = append(accum, mark(str.substring(fr, to), true)) ?? accum;\n\n\t\tif (i < ranges.length - 3)\n\t\t\taccum = append(accum, mark(str.substring(ranges[i+1], ranges[i+2]), false)) ?? accum;\n\t}\n\n\taccum = append(accum, mark(str.substring(ranges[ranges.length - 1]), false)) ?? accum;\n\n\treturn accum;\n}\n\nuFuzzy.latinize = latinize;\nuFuzzy.permute = arr => {\n\tlet idxs = permute([...Array(arr.length).keys()]).sort((a,b) => {\n\t\tfor (let i = 0; i < a.length; i++) {\n\t\t\tif (a[i] != b[i])\n\t\t\t\treturn a[i] - b[i];\n\t\t}\n\t\treturn 0;\n\t});\n\n\treturn idxs.map(pi => pi.map(i => arr[i]));\n};\nuFuzzy.highlight = highlight;\n\nexport { uFuzzy as default };\n","import uFuzzy from '@leeoniya/ufuzzy';\n\nconst REGEXP_NON_ASCII = /[^ -~]/m;\nconst REGEXP_ONLY_SYMBOLS = /^[\\x21-\\x2F\\x3A-\\x40\\x5B-\\x60\\x7B-\\x7E]+$/m;\nconst outOfOrderLimit = 5;\nconst maxNeedleLength = 25;\nconst maxFuzzyTerms = 5;\nconst rankThreshold = 1e4;\nconst uf = new uFuzzy({ intraMode: 1 });\nfunction fuzzyFind(options, haystack, needle) {\n let matches = [];\n if (needle === \"\") {\n matches = options;\n } else if (REGEXP_NON_ASCII.test(needle) || REGEXP_ONLY_SYMBOLS.test(needle) || needle.length > maxNeedleLength || uf.split(needle).length > maxFuzzyTerms) {\n for (let i = 0; i < haystack.length; i++) {\n let item = haystack[i];\n if (item.includes(needle)) {\n matches.push(options[i]);\n }\n }\n } else {\n const [idxs, info, order] = uf.search(haystack, needle, outOfOrderLimit, rankThreshold);\n if (idxs == null ? void 0 : idxs.length) {\n if (info && order) {\n matches = order.map((idx) => options[info.idx[idx]]);\n } else {\n matches = idxs.map((idx) => options[idx]);\n }\n }\n }\n return matches;\n}\n\nexport { fuzzyFind };\n//# sourceMappingURL=filter.js.map\n","import { ALL_VARIABLE_VALUE, ALL_VARIABLE_TEXT } from '../constants.js';\nimport { fuzzyFind } from '../filter.js';\n\nfunction getOptionSearcher(options, includeAll = false) {\n let allOptions = options;\n if (includeAll) {\n allOptions = [{ value: ALL_VARIABLE_VALUE, label: ALL_VARIABLE_TEXT }, ...allOptions];\n }\n const haystack = allOptions.map((o) => o.label);\n return (search) => fuzzyFind(allOptions, haystack, search);\n}\n\nexport { getOptionSearcher };\n//# sourceMappingURL=getOptionSearcher.js.map\n","import { isArray } from 'lodash';\nimport React, { useState, useMemo, useEffect } from 'react';\nimport { Select, MultiSelect, useTheme2, getSelectStyles, useStyles2, Checkbox, ToggleAllState } from '@grafana/ui';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { cx, css } from '@emotion/css';\nimport { getOptionSearcher } from './getOptionSearcher.js';\nimport { sceneGraph } from '../../core/sceneGraph/index.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst filterNoOp = () => true;\nconst filterAll = (v) => v.value !== \"$__all\";\nconst determineToggleAllState = (selectedValues, options) => {\n if (selectedValues.length === options.filter(filterAll).length) {\n return ToggleAllState.allSelected;\n } else if (selectedValues.length === 0 || selectedValues.length === 1 && selectedValues[0] && selectedValues[0].value === \"$__all\") {\n return ToggleAllState.noneSelected;\n } else {\n return ToggleAllState.indeterminate;\n }\n};\nfunction toSelectableValue(value, label) {\n return {\n value,\n label: label != null ? label : String(value)\n };\n}\nfunction VariableValueSelect({ model }) {\n const { value, text, key, options, includeAll, isReadOnly, allowCustomValue = true } = model.useState();\n const [inputValue, setInputValue] = useState(\"\");\n const [hasCustomValue, setHasCustomValue] = useState(false);\n const selectValue = toSelectableValue(value, String(text));\n const queryController = sceneGraph.getQueryController(model);\n const optionSearcher = useMemo(() => getOptionSearcher(options, includeAll), [options, includeAll]);\n const onInputChange = (value2, { action }) => {\n if (action === \"input-change\") {\n setInputValue(value2);\n if (model.onSearchChange) {\n model.onSearchChange(value2);\n }\n return value2;\n }\n return value2;\n };\n const filteredOptions = optionSearcher(inputValue);\n const onOpenMenu = () => {\n if (hasCustomValue) {\n setInputValue(String(text));\n }\n };\n const onCloseMenu = () => {\n setInputValue(\"\");\n };\n return /* @__PURE__ */ React.createElement(Select, {\n id: key,\n isValidNewOption: (inputValue2) => inputValue2.trim().length > 0,\n placeholder: \"Select value\",\n width: \"auto\",\n disabled: isReadOnly,\n value: selectValue,\n inputValue,\n allowCustomValue,\n virtualized: true,\n filterOption: filterNoOp,\n tabSelectsValue: false,\n onInputChange,\n onOpenMenu,\n onCloseMenu,\n options: filteredOptions,\n \"data-testid\": selectors.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts(`${value}`),\n onChange: (newValue) => {\n model.changeValueTo(newValue.value, newValue.label, true);\n queryController == null ? void 0 : queryController.startProfile(\"VariableValueSelect\");\n if (hasCustomValue !== newValue.__isNew__) {\n setHasCustomValue(newValue.__isNew__);\n }\n }\n });\n}\nfunction VariableValueSelectMulti({ model }) {\n const {\n value,\n options,\n key,\n maxVisibleValues,\n noValueOnClear,\n includeAll,\n isReadOnly,\n allowCustomValue = true\n } = model.useState();\n const arrayValue = useMemo(() => isArray(value) ? value : [value], [value]);\n const [uncommittedValue, setUncommittedValue] = useState(arrayValue);\n const [inputValue, setInputValue] = useState(\"\");\n const queryController = sceneGraph.getQueryController(model);\n const optionSearcher = useMemo(() => getOptionSearcher(options, includeAll), [options, includeAll]);\n useEffect(() => {\n setUncommittedValue(arrayValue);\n }, [arrayValue]);\n const onInputChange = (value2, { action }) => {\n if (action === \"input-change\") {\n setInputValue(value2);\n if (model.onSearchChange) {\n model.onSearchChange(value2);\n }\n return value2;\n }\n if (action === \"input-blur\") {\n setInputValue(\"\");\n return \"\";\n }\n return inputValue;\n };\n const placeholder = options.length > 0 ? \"Select value\" : \"\";\n const filteredOptions = optionSearcher(inputValue);\n return /* @__PURE__ */ React.createElement(MultiSelect, {\n id: key,\n placeholder,\n width: \"auto\",\n inputValue,\n disabled: isReadOnly,\n value: uncommittedValue,\n noMultiValueWrap: true,\n maxVisibleValues: maxVisibleValues != null ? maxVisibleValues : 5,\n tabSelectsValue: false,\n virtualized: true,\n allowCustomValue,\n toggleAllOptions: {\n enabled: true,\n optionsFilter: filterAll,\n determineToggleAllState\n },\n options: filteredOptions,\n closeMenuOnSelect: false,\n components: { Option: OptionWithCheckbox },\n isClearable: true,\n hideSelectedOptions: false,\n onInputChange,\n onBlur: () => {\n model.changeValueTo(uncommittedValue, void 0, true);\n queryController == null ? void 0 : queryController.startProfile(\"VariableValueSelectMulti\");\n },\n filterOption: filterNoOp,\n \"data-testid\": selectors.pages.Dashboard.SubMenu.submenuItemValueDropDownValueLinkTexts(`${uncommittedValue}`),\n onChange: (newValue, action) => {\n if (action.action === \"clear\" && noValueOnClear) {\n model.changeValueTo([], void 0, true);\n }\n setUncommittedValue(newValue.map((x) => x.value));\n }\n });\n}\nconst OptionWithCheckbox = ({\n children,\n data,\n innerProps,\n innerRef,\n isFocused,\n isSelected,\n indeterminate,\n renderOptionLabel\n}) => {\n var _b;\n const _a = innerProps, rest = __objRest(_a, [\"onMouseMove\", \"onMouseOver\"]);\n const theme = useTheme2();\n const selectStyles = getSelectStyles(theme);\n const optionStyles = useStyles2(getOptionStyles);\n return /* @__PURE__ */ React.createElement(\"div\", __spreadProps(__spreadValues({\n ref: innerRef,\n className: cx(selectStyles.option, isFocused && selectStyles.optionFocused)\n }, rest), {\n \"data-testid\": \"data-testid Select option\",\n title: data.title\n }), /* @__PURE__ */ React.createElement(\"div\", {\n className: optionStyles.checkbox\n }, /* @__PURE__ */ React.createElement(Checkbox, {\n indeterminate,\n value: isSelected\n })), /* @__PURE__ */ React.createElement(\"div\", {\n className: selectStyles.optionBody,\n \"data-testid\": selectors.pages.Dashboard.SubMenu.submenuItemValueDropDownOptionTexts(\n (_b = data.label) != null ? _b : String(data.value)\n )\n }, /* @__PURE__ */ React.createElement(\"span\", null, children)));\n};\nOptionWithCheckbox.displayName = \"SelectMenuOptions\";\nconst getOptionStyles = (theme) => ({\n checkbox: css({\n marginRight: theme.spacing(2)\n })\n});\nfunction renderSelectForVariable(model) {\n if (model.state.isMulti) {\n return /* @__PURE__ */ React.createElement(VariableValueSelectMulti, {\n model\n });\n } else {\n return /* @__PURE__ */ React.createElement(VariableValueSelect, {\n model\n });\n }\n}\n\nexport { OptionWithCheckbox, VariableValueSelect, VariableValueSelectMulti, renderSelectForVariable, toSelectableValue };\n//# sourceMappingURL=VariableValueSelect.js.map\n","import { toUrlCommaDelimitedString, unescapeUrlDelimiters } from '../utils.js';\n\nclass GroupByVariableUrlSyncHandler {\n constructor(_sceneObject) {\n this._sceneObject = _sceneObject;\n }\n getKey() {\n return `var-${this._sceneObject.state.name}`;\n }\n getKeys() {\n if (this._sceneObject.state.skipUrlSync) {\n return [];\n }\n return [this.getKey()];\n }\n getUrlState() {\n if (this._sceneObject.state.skipUrlSync) {\n return {};\n }\n return { [this.getKey()]: toUrlValues(this._sceneObject.state.value, this._sceneObject.state.text) };\n }\n updateFromUrl(values) {\n let urlValue = values[this.getKey()];\n if (urlValue != null) {\n if (!this._sceneObject.isActive) {\n this._sceneObject.skipNextValidation = true;\n }\n const { values: values2, texts } = fromUrlValues(urlValue);\n this._sceneObject.changeValueTo(values2, texts);\n }\n }\n}\nfunction toUrlValues(values, texts) {\n values = Array.isArray(values) ? values : [values];\n texts = Array.isArray(texts) ? texts : [texts];\n return values.map((value, idx) => {\n if (value === void 0 || value === null) {\n return \"\";\n }\n value = String(value);\n let text = texts[idx];\n text = text === void 0 || text === null ? value : String(text);\n return toUrlCommaDelimitedString(value, text);\n });\n}\nfunction fromUrlValues(urlValues) {\n urlValues = Array.isArray(urlValues) ? urlValues : [urlValues];\n return urlValues.reduce(\n (acc, urlValue) => {\n const [value, label] = (urlValue != null ? urlValue : \"\").split(\",\");\n acc.values.push(unescapeUrlDelimiters(value));\n acc.texts.push(unescapeUrlDelimiters(label != null ? label : value));\n return acc;\n },\n {\n values: [],\n texts: []\n }\n );\n}\n\nexport { GroupByVariableUrlSyncHandler };\n//# sourceMappingURL=GroupByVariableUrlSyncHandler.js.map\n","import { isFiltersRequestEnricher } from '../core/types.js';\n\nfunction getEnrichedFiltersRequest(sourceRunner) {\n const root = sourceRunner.getRoot();\n if (isFiltersRequestEnricher(root)) {\n return root.enrichFiltersRequest(sourceRunner);\n }\n return null;\n}\n\nexport { getEnrichedFiltersRequest };\n//# sourceMappingURL=getEnrichedFiltersRequest.js.map\n","var __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar _value;\nclass SafeSerializableSceneObject {\n constructor(value) {\n __privateAdd(this, _value, void 0);\n this.text = \"__sceneObject\";\n this.valueOf = () => {\n return __privateGet(this, _value);\n };\n __privateSet(this, _value, value);\n }\n toString() {\n return void 0;\n }\n get value() {\n return this;\n }\n}\n_value = new WeakMap();\n\nexport { SafeSerializableSceneObject };\n//# sourceMappingURL=SafeSerializableSceneObject.js.map\n","import { config } from '@grafana/runtime';\nimport { SafeSerializableSceneObject } from './SafeSerializableSceneObject.js';\n\nfunction shouldWrapInSafeSerializableSceneObject(grafanaVersion) {\n const pattern = /^(\\d+)\\.(\\d+)\\.(\\d+)/;\n const match = grafanaVersion.match(pattern);\n if (!match) {\n return false;\n }\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n const patch = parseInt(match[3], 10);\n if (major === 11) {\n return minor === 0 && patch >= 4 || minor === 1 && patch >= 2 || minor > 1;\n }\n if (major === 10) {\n return minor === 4 && patch >= 8 || minor >= 5;\n }\n return major > 11;\n}\nfunction wrapInSafeSerializableSceneObject(sceneObject) {\n const version = config.buildInfo.version;\n if (shouldWrapInSafeSerializableSceneObject(version)) {\n return new SafeSerializableSceneObject(sceneObject);\n }\n return { value: sceneObject, text: \"__sceneObject\" };\n}\n\nexport { shouldWrapInSafeSerializableSceneObject, wrapInSafeSerializableSceneObject };\n//# sourceMappingURL=wrapInSafeSerializableSceneObject.js.map\n","import React, { useMemo, useState, useEffect } from 'react';\nimport { allActiveGroupByVariables } from './findActiveGroupByVariablesByUid.js';\nimport { sceneGraph } from '../../core/sceneGraph/index.js';\nimport { MultiValueVariable } from '../variants/MultiValueVariable.js';\nimport { map, of, from, mergeMap, tap, take, lastValueFrom } from 'rxjs';\nimport { getDataSource } from '../../utils/getDataSource.js';\nimport { MultiSelect, Select } from '@grafana/ui';\nimport { isArray } from 'lodash';\nimport { dataFromResponse, getQueriesForVariables, responseHasError, handleOptionGroups } from '../utils.js';\nimport { OptionWithCheckbox } from '../components/VariableValueSelect.js';\nimport { GroupByVariableUrlSyncHandler } from './GroupByVariableUrlSyncHandler.js';\nimport { getOptionSearcher } from '../components/getOptionSearcher.js';\nimport { getEnrichedFiltersRequest } from '../getEnrichedFiltersRequest.js';\nimport { wrapInSafeSerializableSceneObject } from '../../utils/wrapInSafeSerializableSceneObject.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nclass GroupByVariable extends MultiValueVariable {\n constructor(initialState) {\n super(__spreadProps(__spreadValues({\n isMulti: true,\n name: \"\",\n value: [],\n text: [],\n options: [],\n datasource: null,\n baseFilters: [],\n applyMode: \"auto\",\n layout: \"horizontal\",\n type: \"groupby\"\n }, initialState), {\n noValueOnClear: true\n }));\n this.isLazy = true;\n this._urlSync = new GroupByVariableUrlSyncHandler(this);\n this._getKeys = async (ds) => {\n var _a, _b, _c, _d;\n const override = await ((_b = (_a = this.state).getTagKeysProvider) == null ? void 0 : _b.call(_a, this, null));\n if (override && override.replace) {\n return override.values;\n }\n if (this.state.defaultOptions) {\n return this.state.defaultOptions.concat(dataFromResponse((_c = override == null ? void 0 : override.values) != null ? _c : []));\n }\n if (!ds.getTagKeys) {\n return [];\n }\n const queries = getQueriesForVariables(this);\n const otherFilters = this.state.baseFilters || [];\n const timeRange = sceneGraph.getTimeRange(this).state.value;\n const response = await ds.getTagKeys(__spreadValues({\n filters: otherFilters,\n queries,\n timeRange,\n scopes: (_d = this._scopesBridge) == null ? void 0 : _d.getValue()\n }, getEnrichedFiltersRequest(this)));\n if (responseHasError(response)) {\n this.setState({ error: response.error.message });\n }\n let keys = dataFromResponse(response);\n if (override) {\n keys = keys.concat(dataFromResponse(override.values));\n }\n const tagKeyRegexFilter = this.state.tagKeyRegexFilter;\n if (tagKeyRegexFilter) {\n keys = keys.filter((f) => f.text.match(tagKeyRegexFilter));\n }\n return keys;\n };\n if (this.state.applyMode === \"auto\") {\n this.addActivationHandler(() => {\n allActiveGroupByVariables.add(this);\n return () => allActiveGroupByVariables.delete(this);\n });\n }\n }\n validateAndUpdate() {\n return this.getValueOptions({}).pipe(\n map((options) => {\n this._updateValueGivenNewOptions(options);\n return {};\n })\n );\n }\n _updateValueGivenNewOptions(options) {\n const { value: currentValue, text: currentText } = this.state;\n const stateUpdate = {\n options,\n loading: false,\n value: currentValue != null ? currentValue : [],\n text: currentText != null ? currentText : []\n };\n this.setState(stateUpdate);\n }\n getValueOptions(args) {\n if (this.state.defaultOptions) {\n return of(\n this.state.defaultOptions.map((o) => ({\n label: o.text,\n value: String(o.value),\n group: o.group\n }))\n );\n }\n this.setState({ loading: true, error: null });\n return from(\n getDataSource(this.state.datasource, {\n __sceneObject: wrapInSafeSerializableSceneObject(this)\n })\n ).pipe(\n mergeMap((ds) => {\n return from(this._getKeys(ds)).pipe(\n tap((response) => {\n if (responseHasError(response)) {\n this.setState({ error: response.error.message });\n }\n }),\n map((response) => dataFromResponse(response)),\n take(1),\n mergeMap((data) => {\n const a = data.map((i) => {\n return {\n label: i.text,\n value: i.value ? String(i.value) : i.text,\n group: i.group\n };\n });\n return of(a);\n })\n );\n })\n );\n }\n getDefaultMultiState(options) {\n return { value: [], text: [] };\n }\n}\nGroupByVariable.Component = GroupByVariableRenderer;\nfunction GroupByVariableRenderer({ model }) {\n const {\n value,\n text,\n key,\n isMulti = true,\n maxVisibleValues,\n noValueOnClear,\n options,\n includeAll,\n allowCustomValue = true\n } = model.useState();\n const values = useMemo(() => {\n const arrayValue = isArray(value) ? value : [value];\n const arrayText = isArray(text) ? text : [text];\n return arrayValue.map((value2, idx) => {\n var _a;\n return {\n value: value2,\n label: String((_a = arrayText[idx]) != null ? _a : value2)\n };\n });\n }, [value, text]);\n const [isFetchingOptions, setIsFetchingOptions] = useState(false);\n const [isOptionsOpen, setIsOptionsOpen] = useState(false);\n const [inputValue, setInputValue] = useState(\"\");\n const [uncommittedValue, setUncommittedValue] = useState(values);\n const optionSearcher = useMemo(() => getOptionSearcher(options, includeAll), [options, includeAll]);\n useEffect(() => {\n setUncommittedValue(values);\n }, [values]);\n const onInputChange = (value2, { action }) => {\n if (action === \"input-change\") {\n setInputValue(value2);\n if (model.onSearchChange) {\n model.onSearchChange(value2);\n }\n return value2;\n }\n if (action === \"input-blur\") {\n setInputValue(\"\");\n return \"\";\n }\n return inputValue;\n };\n const filteredOptions = useMemo(\n () => handleOptionGroups(optionSearcher(inputValue).map(toSelectableValue)),\n [optionSearcher, inputValue]\n );\n return isMulti ? /* @__PURE__ */ React.createElement(MultiSelect, {\n \"aria-label\": \"Group by selector\",\n \"data-testid\": `GroupBySelect-${key}`,\n id: key,\n placeholder: \"Select value\",\n width: \"auto\",\n allowCustomValue,\n inputValue,\n value: uncommittedValue,\n noMultiValueWrap: true,\n maxVisibleValues: maxVisibleValues != null ? maxVisibleValues : 5,\n tabSelectsValue: false,\n virtualized: true,\n options: filteredOptions,\n filterOption: filterNoOp,\n closeMenuOnSelect: false,\n isOpen: isOptionsOpen,\n isClearable: true,\n hideSelectedOptions: false,\n isLoading: isFetchingOptions,\n components: { Option: OptionWithCheckbox },\n onInputChange,\n onBlur: () => {\n model.changeValueTo(\n uncommittedValue.map((x) => x.value),\n uncommittedValue.map((x) => x.label),\n true\n );\n },\n onChange: (newValue, action) => {\n if (action.action === \"clear\" && noValueOnClear) {\n model.changeValueTo([], void 0, true);\n }\n setUncommittedValue(newValue);\n },\n onOpenMenu: async () => {\n setIsFetchingOptions(true);\n await lastValueFrom(model.validateAndUpdate());\n setIsFetchingOptions(false);\n setIsOptionsOpen(true);\n },\n onCloseMenu: () => {\n setIsOptionsOpen(false);\n }\n }) : /* @__PURE__ */ React.createElement(Select, {\n \"aria-label\": \"Group by selector\",\n \"data-testid\": `GroupBySelect-${key}`,\n id: key,\n placeholder: \"Select value\",\n width: \"auto\",\n inputValue,\n value: uncommittedValue,\n allowCustomValue,\n noMultiValueWrap: true,\n maxVisibleValues: maxVisibleValues != null ? maxVisibleValues : 5,\n tabSelectsValue: false,\n virtualized: true,\n options: filteredOptions,\n filterOption: filterNoOp,\n closeMenuOnSelect: true,\n isOpen: isOptionsOpen,\n isClearable: true,\n hideSelectedOptions: false,\n noValueOnClear: true,\n isLoading: isFetchingOptions,\n onInputChange,\n onChange: (newValue, action) => {\n if (action.action === \"clear\") {\n setUncommittedValue([]);\n if (noValueOnClear) {\n model.changeValueTo([]);\n }\n return;\n }\n if (newValue == null ? void 0 : newValue.value) {\n setUncommittedValue([newValue]);\n model.changeValueTo([newValue.value], newValue.label ? [newValue.label] : void 0);\n }\n },\n onOpenMenu: async () => {\n setIsFetchingOptions(true);\n await lastValueFrom(model.validateAndUpdate());\n setIsFetchingOptions(false);\n setIsOptionsOpen(true);\n },\n onCloseMenu: () => {\n setIsOptionsOpen(false);\n }\n });\n}\nconst filterNoOp = () => true;\nfunction toSelectableValue(input) {\n const { label, value, group } = input;\n const result = {\n label,\n value\n };\n if (group) {\n result.group = group;\n }\n return result;\n}\n\nexport { GroupByVariable, GroupByVariableRenderer };\n//# sourceMappingURL=GroupByVariable.js.map\n","import { Tooltip, Icon } from '@grafana/ui';\nimport React from 'react';\n\nfunction LoadingIndicator(props) {\n return /* @__PURE__ */ React.createElement(Tooltip, {\n content: \"Cancel query\"\n }, /* @__PURE__ */ React.createElement(Icon, {\n className: \"spin-clockwise\",\n name: \"sync\",\n size: \"xs\",\n role: \"button\",\n onMouseDown: (e) => {\n props.onCancel(e);\n }\n }));\n}\n\nexport { LoadingIndicator };\n//# sourceMappingURL=LoadingIndicator.js.map\n","import React from 'react';\nimport { useStyles2, useTheme2, Tooltip, Icon, IconButton } from '@grafana/ui';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { css } from '@emotion/css';\nimport { LoadingIndicator } from './LoadingIndicator.js';\n\nfunction ControlsLabel(props) {\n const styles = useStyles2(getStyles);\n const theme = useTheme2();\n const isVertical = props.layout === \"vertical\";\n const loadingIndicator = Boolean(props.isLoading) ? /* @__PURE__ */ React.createElement(\"div\", {\n style: { marginLeft: theme.spacing(1), marginTop: \"-1px\" },\n \"aria-label\": selectors.components.LoadingIndicator.icon\n }, /* @__PURE__ */ React.createElement(LoadingIndicator, {\n onCancel: (e) => {\n var _a;\n e.preventDefault();\n e.stopPropagation();\n (_a = props.onCancel) == null ? void 0 : _a.call(props);\n }\n })) : null;\n let errorIndicator = null;\n if (props.error) {\n errorIndicator = /* @__PURE__ */ React.createElement(Tooltip, {\n content: props.error,\n placement: \"bottom\"\n }, /* @__PURE__ */ React.createElement(Icon, {\n className: styles.errorIcon,\n name: \"exclamation-triangle\"\n }));\n }\n let descriptionIndicator = null;\n if (props.description) {\n descriptionIndicator = /* @__PURE__ */ React.createElement(Tooltip, {\n content: props.description,\n placement: isVertical ? \"top\" : \"bottom\"\n }, /* @__PURE__ */ React.createElement(Icon, {\n className: styles.normalIcon,\n name: \"info-circle\"\n }));\n }\n const testId = typeof props.label === \"string\" ? selectors.pages.Dashboard.SubMenu.submenuItemLabels(props.label) : \"\";\n let labelElement;\n if (isVertical) {\n labelElement = /* @__PURE__ */ React.createElement(\"label\", {\n className: styles.verticalLabel,\n \"data-testid\": testId,\n htmlFor: props.htmlFor\n }, props.label, descriptionIndicator, errorIndicator, props.icon && /* @__PURE__ */ React.createElement(Icon, {\n name: props.icon,\n className: styles.normalIcon\n }), loadingIndicator, props.onRemove && /* @__PURE__ */ React.createElement(IconButton, {\n variant: \"secondary\",\n size: \"xs\",\n name: \"times\",\n onClick: props.onRemove,\n tooltip: \"Remove\"\n }));\n } else {\n labelElement = /* @__PURE__ */ React.createElement(\"label\", {\n className: styles.horizontalLabel,\n \"data-testid\": testId,\n htmlFor: props.htmlFor\n }, errorIndicator, props.icon && /* @__PURE__ */ React.createElement(Icon, {\n name: props.icon,\n className: styles.normalIcon\n }), props.label, descriptionIndicator, loadingIndicator);\n }\n return labelElement;\n}\nconst getStyles = (theme) => ({\n horizontalLabel: css({\n background: theme.isDark ? theme.colors.background.primary : theme.colors.background.secondary,\n display: `flex`,\n alignItems: \"center\",\n padding: theme.spacing(0, 1),\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.bodySmall.fontSize,\n height: theme.spacing(theme.components.height.md),\n lineHeight: theme.spacing(theme.components.height.md),\n borderRadius: `${theme.shape.radius.default} 0 0 ${theme.shape.radius.default}`,\n border: `1px solid ${theme.components.input.borderColor}`,\n position: \"relative\",\n right: -1,\n whiteSpace: \"nowrap\",\n gap: theme.spacing(0.5)\n }),\n verticalLabel: css({\n display: `flex`,\n alignItems: \"center\",\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.bodySmall.fontSize,\n lineHeight: theme.typography.bodySmall.lineHeight,\n whiteSpace: \"nowrap\",\n marginBottom: theme.spacing(0.5),\n gap: theme.spacing(1)\n }),\n errorIcon: css({\n color: theme.colors.error.text\n }),\n normalIcon: css({\n color: theme.colors.text.secondary\n })\n});\n\nexport { ControlsLabel };\n//# sourceMappingURL=ControlsLabel.js.map\n","import { fuzzyFind } from '../filter.js';\n\nfunction getAdhocOptionSearcher(options) {\n const haystack = options.map((o) => {\n var _a;\n return (_a = o.label) != null ? _a : String(o.value);\n });\n return (search) => fuzzyFind(options, haystack, search);\n}\n\nexport { getAdhocOptionSearcher };\n//# sourceMappingURL=getAdhocOptionSearcher.js.map\n","import React, { useState, useMemo } from 'react';\nimport { isMultiValueOperator } from './AdHocFiltersVariable.js';\nimport { useStyles2, Select, Field, Button } from '@grafana/ui';\nimport { cx, css } from '@emotion/css';\nimport { ControlsLabel } from '../../utils/ControlsLabel.js';\nimport { getAdhocOptionSearcher } from './getAdhocOptionSearcher.js';\nimport { handleOptionGroups } from '../utils.js';\nimport { OptionWithCheckbox } from '../components/VariableValueSelect.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction keyLabelToOption(key, label) {\n return key !== \"\" ? {\n value: key,\n label: label || key\n } : null;\n}\nconst filterNoOp = () => true;\nfunction AdHocFilterRenderer({ filter, model }) {\n var _a, _b, _c, _d, _e;\n const styles = useStyles2(getStyles);\n const [keys, setKeys] = useState([]);\n const [values, setValues] = useState([]);\n const [isKeysLoading, setIsKeysLoading] = useState(false);\n const [isValuesLoading, setIsValuesLoading] = useState(false);\n const [isKeysOpen, setIsKeysOpen] = useState(false);\n const [isValuesOpen, setIsValuesOpen] = useState(false);\n const [isOperatorOpen, setIsOperatorOpen] = useState(false);\n const [valueInputValue, setValueInputValue] = useState(\"\");\n const [valueHasCustomValue, setValueHasCustomValue] = useState(false);\n const [uncommittedValue, setUncommittedValue] = useState(\n filter.values ? filter.values.map((value, index) => {\n var _a2;\n return keyLabelToOption(value, (_a2 = filter.valueLabels) == null ? void 0 : _a2[index]);\n }) : []\n );\n const isMultiValue = isMultiValueOperator(filter.operator);\n const keyValue = keyLabelToOption(filter.key, filter.keyLabel);\n const valueValue = keyLabelToOption(filter.value, (_a = filter.valueLabels) == null ? void 0 : _a[0]);\n const optionSearcher = useMemo(() => getAdhocOptionSearcher(values), [values]);\n const onAddCustomValue = model.state.onAddCustomValue;\n const onValueInputChange = (value, { action }) => {\n if (action === \"input-change\") {\n setValueInputValue(value);\n }\n return value;\n };\n const onOperatorChange = (v) => {\n var _a2, _b2;\n const existingOperator = filter.operator;\n const newOperator = v.value;\n const update = { operator: newOperator };\n if (isMultiValueOperator(existingOperator) && !isMultiValueOperator(newOperator)) {\n update.value = \"\";\n update.valueLabels = [\"\"];\n update.values = void 0;\n setUncommittedValue([]);\n } else if (!isMultiValueOperator(existingOperator) && isMultiValueOperator(newOperator) && filter.value) {\n update.values = [filter.value];\n setUncommittedValue([\n {\n value: filter.value,\n label: (_b2 = (_a2 = filter.valueLabels) == null ? void 0 : _a2[0]) != null ? _b2 : filter.value\n }\n ]);\n }\n model._updateFilter(filter, update);\n };\n const filteredValueOptions = useMemo(\n () => handleOptionGroups(optionSearcher(valueInputValue)),\n [optionSearcher, valueInputValue]\n );\n const multiValueProps = {\n isMulti: true,\n value: uncommittedValue,\n components: {\n Option: OptionWithCheckbox\n },\n hideSelectedOptions: false,\n closeMenuOnSelect: false,\n openMenuOnFocus: false,\n onChange: (v) => {\n setUncommittedValue(v);\n if (v.some((value) => value.__isNew__)) {\n setValueInputValue(\"\");\n }\n },\n onBlur: () => {\n var _a2, _b2;\n model._updateFilter(filter, {\n value: (_b2 = (_a2 = uncommittedValue[0]) == null ? void 0 : _a2.value) != null ? _b2 : \"\",\n values: uncommittedValue.map((option) => option.value),\n valueLabels: uncommittedValue.map((option) => option.label)\n });\n }\n };\n const valueSelect = /* @__PURE__ */ React.createElement(Select, __spreadValues({\n virtualized: true,\n allowCustomValue: (_b = model.state.allowCustomValue) != null ? _b : true,\n isValidNewOption: (inputValue) => inputValue.trim().length > 0,\n allowCreateWhileLoading: true,\n formatCreateLabel: (inputValue) => `Use custom value: ${inputValue}`,\n disabled: model.state.readOnly,\n className: cx(styles.value, isValuesOpen ? styles.widthWhenOpen : void 0),\n width: \"auto\",\n value: valueValue,\n filterOption: filterNoOp,\n placeholder: \"Select value\",\n options: filteredValueOptions,\n inputValue: valueInputValue,\n onInputChange: onValueInputChange,\n onChange: (v) => {\n if (onAddCustomValue && v.__isNew__) {\n model._updateFilter(filter, onAddCustomValue(v, filter));\n } else {\n model._updateFilter(filter, {\n value: v.value,\n valueLabels: v.label ? [v.label] : [v.value]\n });\n }\n if (valueHasCustomValue !== v.__isNew__) {\n setValueHasCustomValue(v.__isNew__);\n }\n },\n isOpen: isValuesOpen && !isValuesLoading,\n isLoading: isValuesLoading,\n openMenuOnFocus: true,\n onOpenMenu: async () => {\n var _a2;\n setIsValuesLoading(true);\n setIsValuesOpen(true);\n const values2 = await model._getValuesFor(filter);\n setIsValuesLoading(false);\n setValues(values2);\n if (valueHasCustomValue) {\n setValueInputValue((_a2 = valueValue == null ? void 0 : valueValue.label) != null ? _a2 : \"\");\n }\n },\n onCloseMenu: () => {\n setIsValuesOpen(false);\n setValueInputValue(\"\");\n }\n }, isMultiValue && multiValueProps));\n const keySelect = /* @__PURE__ */ React.createElement(Select, {\n key: `${isValuesLoading ? \"loading\" : \"loaded\"}`,\n disabled: model.state.readOnly,\n className: cx(styles.key, isKeysOpen ? styles.widthWhenOpen : void 0),\n width: \"auto\",\n allowCustomValue: (_c = model.state.allowCustomValue) != null ? _c : true,\n value: keyValue,\n placeholder: \"Select label\",\n options: handleOptionGroups(keys),\n onChange: (v) => {\n model._updateFilter(filter, {\n key: v.value,\n keyLabel: v.label,\n value: \"\",\n valueLabels: [\"\"],\n values: void 0\n });\n setUncommittedValue([]);\n },\n autoFocus: filter.key === \"\",\n isOpen: isKeysOpen && !isKeysLoading,\n isLoading: isKeysLoading,\n onOpenMenu: async () => {\n setIsKeysOpen(true);\n setIsKeysLoading(true);\n const keys2 = await model._getKeys(filter.key);\n setIsKeysLoading(false);\n setKeys(keys2);\n },\n onCloseMenu: () => {\n setIsKeysOpen(false);\n },\n onBlur: () => {\n if (filter.key === \"\") {\n model._removeFilter(filter);\n }\n },\n openMenuOnFocus: true\n });\n const operatorSelect = /* @__PURE__ */ React.createElement(Select, {\n className: cx(styles.operator, {\n [styles.widthWhenOpen]: isOperatorOpen\n }),\n value: filter.operator,\n disabled: model.state.readOnly,\n options: model._getOperators(),\n onChange: onOperatorChange,\n onOpenMenu: () => {\n setIsOperatorOpen(true);\n },\n onCloseMenu: () => {\n setIsOperatorOpen(false);\n }\n });\n if (model.state.layout === \"vertical\") {\n if (filter.key) {\n const label = /* @__PURE__ */ React.createElement(ControlsLabel, {\n layout: \"vertical\",\n label: (_d = filter.key) != null ? _d : \"\",\n onRemove: () => model._removeFilter(filter)\n });\n return /* @__PURE__ */ React.createElement(Field, {\n label,\n \"data-testid\": `AdHocFilter-${filter.key}`,\n className: styles.field\n }, /* @__PURE__ */ React.createElement(\"div\", {\n className: styles.wrapper\n }, operatorSelect, valueSelect));\n } else {\n return /* @__PURE__ */ React.createElement(Field, {\n label: \"Select label\",\n \"data-testid\": `AdHocFilter-${filter.key}`,\n className: styles.field\n }, keySelect);\n }\n }\n return /* @__PURE__ */ React.createElement(\"div\", {\n className: styles.wrapper,\n \"data-testid\": `AdHocFilter-${filter.key}`\n }, keySelect, operatorSelect, valueSelect, /* @__PURE__ */ React.createElement(Button, {\n variant: \"secondary\",\n \"aria-label\": \"Remove filter\",\n title: \"Remove filter\",\n className: styles.removeButton,\n icon: \"times\",\n \"data-testid\": `AdHocFilter-remove-${(_e = filter.key) != null ? _e : \"\"}`,\n onClick: () => model._removeFilter(filter)\n }));\n}\nconst getStyles = (theme) => ({\n field: css({\n marginBottom: 0\n }),\n wrapper: css({\n display: \"flex\",\n \"> *\": {\n \"&:not(:first-child)\": {\n marginLeft: -1\n },\n \"&:first-child\": {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0\n },\n \"&:last-child\": {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0\n },\n \"&:not(:first-child):not(:last-child)\": {\n borderRadius: 0\n },\n position: \"relative\",\n zIndex: 0,\n \"&:hover\": {\n zIndex: 1\n },\n \"&:focus-within\": {\n zIndex: 2\n }\n }\n }),\n widthWhenOpen: css({\n minWidth: theme.spacing(16)\n }),\n value: css({\n flexBasis: \"content\",\n flexShrink: 1,\n minWidth: \"90px\"\n }),\n key: css({\n flexBasis: \"content\",\n minWidth: \"90px\",\n flexShrink: 1\n }),\n operator: css({\n flexShrink: 0,\n flexBasis: \"content\"\n }),\n removeButton: css({\n paddingLeft: theme.spacing(3 / 2),\n paddingRight: theme.spacing(3 / 2),\n borderLeft: \"none\",\n width: theme.spacing(3),\n marginRight: theme.spacing(1),\n boxSizing: \"border-box\",\n position: \"relative\",\n left: \"1px\"\n })\n});\n\nexport { AdHocFilterRenderer };\n//# sourceMappingURL=AdHocFilterRenderer.js.map\n","import React from 'react';\nimport { AdHocFilterRenderer } from './AdHocFilterRenderer.js';\nimport { Button } from '@grafana/ui';\n\nfunction AdHocFilterBuilder({ model, addFilterButtonText }) {\n const { _wip } = model.useState();\n if (!_wip) {\n return /* @__PURE__ */ React.createElement(Button, {\n variant: \"secondary\",\n icon: \"plus\",\n title: \"Add filter\",\n \"aria-label\": \"Add filter\",\n \"data-testid\": `AdHocFilter-add`,\n onClick: () => model._addWip()\n }, addFilterButtonText);\n }\n return /* @__PURE__ */ React.createElement(AdHocFilterRenderer, {\n filter: _wip,\n model\n });\n}\n\nexport { AdHocFilterBuilder };\n//# sourceMappingURL=AdHocFilterBuilder.js.map\n","import { isFilterComplete, isMultiValueOperator, FilterOrigin } from './AdHocFiltersVariable.js';\nimport { escapeUrlPipeDelimiters, escapeInjectedFilterUrlDelimiters, toUrlCommaDelimitedString, unescapeUrlDelimiters } from '../utils.js';\n\nclass AdHocFiltersVariableUrlSyncHandler {\n constructor(_variable) {\n this._variable = _variable;\n }\n getKey() {\n return `var-${this._variable.state.name}`;\n }\n getKeys() {\n return [this.getKey()];\n }\n getUrlState() {\n const filters = this._variable.state.filters;\n const baseFilters = this._variable.state.baseFilters;\n let value = [];\n if (filters.length === 0 && (baseFilters == null ? void 0 : baseFilters.length) === 0) {\n return { [this.getKey()]: [\"\"] };\n }\n if (filters.length) {\n value.push(\n ...filters.filter(isFilterComplete).filter((filter) => !filter.hidden).map((filter) => toArray(filter).map(escapeUrlPipeDelimiters).join(\"|\"))\n );\n }\n if (baseFilters == null ? void 0 : baseFilters.length) {\n value.push(\n ...baseFilters == null ? void 0 : baseFilters.filter(isFilterComplete).filter((filter) => !filter.hidden && filter.origin && filter.originalValue).map(\n (filter) => {\n var _a, _b;\n return toArray(filter).map(escapeInjectedFilterUrlDelimiters).join(\"|\").concat(\n `#${(_b = (_a = filter.originalValue) == null ? void 0 : _a.map(escapeInjectedFilterUrlDelimiters).join(\"|\")) != null ? _b : \"\"}#${filter.origin}`\n );\n }\n )\n );\n }\n return {\n [this.getKey()]: value.length ? value : [\"\"]\n };\n }\n updateFromUrl(values) {\n const urlValue = values[this.getKey()];\n if (urlValue == null) {\n return;\n }\n if (urlValue) {\n const filters = deserializeUrlToFilters(urlValue);\n this._variable.setState({\n filters: filters.filter((f) => !f.origin),\n baseFilters: filters.filter((f) => f.origin)\n });\n }\n }\n}\nfunction deserializeUrlToFilters(value) {\n if (Array.isArray(value)) {\n const values = value;\n return values.map(toFilter).filter(isFilter);\n }\n const filter = toFilter(value);\n return filter === null ? [] : [filter];\n}\nfunction toArray(filter) {\n var _a;\n const result = [toUrlCommaDelimitedString(filter.key, filter.keyLabel), filter.operator];\n if (isMultiValueOperator(filter.operator)) {\n filter.values.forEach((value, index) => {\n var _a2;\n result.push(toUrlCommaDelimitedString(value, (_a2 = filter.valueLabels) == null ? void 0 : _a2[index]));\n });\n } else {\n result.push(toUrlCommaDelimitedString(filter.value, (_a = filter.valueLabels) == null ? void 0 : _a[0]));\n }\n return result;\n}\nfunction toFilter(urlValue) {\n var _a;\n if (typeof urlValue !== \"string\" || urlValue.length === 0) {\n return null;\n }\n const [filter, originalValues, origin] = urlValue.split(\"#\");\n const [key, keyLabel, operator, _operatorLabel, ...values] = filter.split(\"|\").reduce((acc, v) => {\n const [key2, label] = v.split(\",\");\n acc.push(key2, label != null ? label : key2);\n return acc;\n }, []).map(unescapeUrlDelimiters);\n return {\n key,\n keyLabel,\n operator,\n value: values[0],\n values: isMultiValueOperator(operator) ? values.filter((_, index) => index % 2 === 0) : void 0,\n valueLabels: values.filter((_, index) => index % 2 === 1),\n condition: \"\",\n origin: isFilterOrigin(origin) ? origin : void 0,\n originalValue: originalValues && originalValues.length ? (_a = originalValues.split(\"|\")) != null ? _a : [originalValues] : void 0\n };\n}\nfunction isFilterOrigin(value) {\n return value === FilterOrigin.Scopes || value === FilterOrigin.Dashboards;\n}\nfunction isFilter(filter) {\n return filter !== null && typeof filter.key === \"string\" && typeof filter.value === \"string\";\n}\n\nexport { AdHocFiltersVariableUrlSyncHandler };\n//# sourceMappingURL=AdHocFiltersVariableUrlSyncHandler.js.map\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { isShadowRoot, isHTMLElement } from '@floating-ui/utils/dom';\n\nfunction activeElement(doc) {\n let activeElement = doc.activeElement;\n while (((_activeElement = activeElement) == null || (_activeElement = _activeElement.shadowRoot) == null ? void 0 : _activeElement.activeElement) != null) {\n var _activeElement;\n activeElement = activeElement.shadowRoot.activeElement;\n }\n return activeElement;\n}\nfunction contains(parent, child) {\n if (!parent || !child) {\n return false;\n }\n const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();\n\n // First, attempt with faster native method\n if (parent.contains(child)) {\n return true;\n }\n\n // then fallback to custom implementation with Shadow DOM support\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) {\n return true;\n }\n // @ts-ignore\n next = next.parentNode || next.host;\n }\n }\n\n // Give up, the result is false\n return false;\n}\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n const uaData = navigator.userAgentData;\n if (uaData != null && uaData.platform) {\n return uaData.platform;\n }\n return navigator.platform;\n}\nfunction getUserAgent() {\n const uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(_ref => {\n let {\n brand,\n version\n } = _ref;\n return brand + \"/\" + version;\n }).join(' ');\n }\n return navigator.userAgent;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n // FIXME: Firefox is now emitting a deprecation warning for `mozInputSource`.\n // Try to find a workaround for this. `react-aria` source still has the check.\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n if (isAndroid() && event.pointerType) {\n return event.type === 'click' && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n if (isJSDOM()) return false;\n return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse' ||\n // iOS VoiceOver returns 0.333• for width/height.\n event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'touch';\n}\nfunction isSafari() {\n // Chrome DevTools does not complain about navigator.vendor\n return /apple/i.test(navigator.vendor);\n}\nfunction isAndroid() {\n const re = /android/i;\n return re.test(getPlatform()) || re.test(getUserAgent());\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isJSDOM() {\n return getUserAgent().includes('jsdom/');\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n const values = ['mouse', 'pen'];\n if (!strict) {\n values.push('', undefined);\n }\n return values.includes(pointerType);\n}\nfunction isReactEvent(event) {\n return 'nativeEvent' in event;\n}\nfunction isRootElement(element) {\n return element.matches('html,body');\n}\nfunction getDocument(node) {\n return (node == null ? void 0 : node.ownerDocument) || document;\n}\nfunction isEventTargetWithin(event, node) {\n if (node == null) {\n return false;\n }\n if ('composedPath' in event) {\n return event.composedPath().includes(node);\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n const e = event;\n return e.target != null && node.contains(e.target);\n}\nfunction getTarget(event) {\n if ('composedPath' in event) {\n return event.composedPath()[0];\n }\n\n // TS thinks `event` is of type never as it assumes all browsers support\n // `composedPath()`, but browsers without shadow DOM don't.\n return event.target;\n}\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction isTypeableCombobox(element) {\n if (!element) return false;\n return element.getAttribute('role') === 'combobox' && isTypeableElement(element);\n}\n\nexport { TYPEABLE_SELECTOR, activeElement, contains, getDocument, getPlatform, getTarget, getUserAgent, isAndroid, isEventTargetWithin, isJSDOM, isMac, isMouseLikePointerType, isReactEvent, isRootElement, isSafari, isTypeableCombobox, isTypeableElement, isVirtualClick, isVirtualPointerEvent, stopEvent };\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","/*!\n* tabbable 6.2.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\n// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\n// CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes\n// the entire query to fail, resulting in no nodes found, which will break a lot\n// of things... so we have to rely on JS to identify nodes inside an inert container\nvar candidateSelectors = ['input:not([inert])', 'select:not([inert])', 'textarea:not([inert])', 'a[href]:not([inert])', 'button:not([inert])', '[tabindex]:not(slot):not([inert])', 'audio[controls]:not([inert])', 'video[controls]:not([inert])', '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', 'details>summary:first-of-type:not([inert])', 'details:not([inert])'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function (element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Element} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nvar isInert = function isInert(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'inert');\n var inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n // CAREFUL: JSDom does not appear to support certain selectors like `:not([inert] *)`\n // so it likely would not support `:is([inert] *)` either...\n var result = inert || lookUp && node && isInert(node.parentNode); // recursive\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nvar isContentEditable = function isContentEditable(node) {\n var _node$getAttribute2;\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, 'contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert, all its children are inert\n if (isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.}\n */\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n var shadowRoot = element.shadowRoot ||\n // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nvar hasTabIndex = function hasTabIndex(node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nvar getTabIndex = function getTabIndex(node) {\n if (!node) {\n throw new Error('No node provided');\n }\n if (node.tabIndex < 0) {\n // in Chrome,
,