diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 2a9eb71da2..0000000000 --- a/.gitattributes +++ /dev/null @@ -1,9 +0,0 @@ -# Markdown -*.md linguist-detectable=true -*.md linguist-documentation=false - -# JSON -*.json linguist-detectable=true - -# YAML -*.yml linguist-detectable=true diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index e705887d41..0000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: 'bug' -assignees: 'AnandChowdhary' - ---- - - - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 5c1e200992..0000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,8 +0,0 @@ -blank_issues_enabled: true -contact_links: - - name: Feature requests and ideas - url: https://github.com/upptime/upptime/discussions/new?category=ideas - about: Suggest an idea for this project - - name: Questions - url: https://github.com/upptime/upptime/discussions/new?category=q-a - about: Please ask and answer questions here diff --git a/.github/workflows/graphs.yml b/.github/workflows/graphs.yml deleted file mode 100644 index 66fba8ed96..0000000000 --- a/.github/workflows/graphs.yml +++ /dev/null @@ -1,39 +0,0 @@ -# -# =============================== -# Do not edit this file directly! -# =============================== -# -# Your changes will be overwritten when the Upptime template updates (by default, weekly) -# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly. -# -# 🔼 Upptime @v1.41.0 -# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary - -# * Source: https://github.com/upptime/upptime -# * Docs and more: https://upptime.js.org -# * More by Anand Chowdhary: https://anandchowdhary.com - - -name: Graphs CI -on: - schedule: - - cron: "0 0 * * *" - repository_dispatch: - types: [graphs] - workflow_dispatch: -jobs: - release: - name: Generate graphs - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.head_ref }} - token: ${{ secrets.GH_PAT || github.token }} - - name: Generate graphs - uses: upptime/uptime-monitor@v1.41.0 - with: - command: "graphs" - env: - GH_PAT: ${{ secrets.GH_PAT || github.token }} diff --git a/.github/workflows/response-time.yml b/.github/workflows/response-time.yml deleted file mode 100644 index 8427aa61ed..0000000000 --- a/.github/workflows/response-time.yml +++ /dev/null @@ -1,40 +0,0 @@ -# -# =============================== -# Do not edit this file directly! -# =============================== -# -# Your changes will be overwritten when the Upptime template updates (by default, weekly) -# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly. -# -# 🔼 Upptime @v1.41.0 -# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary - -# * Source: https://github.com/upptime/upptime -# * Docs and more: https://upptime.js.org -# * More by Anand Chowdhary: https://anandchowdhary.com - - -name: Response Time CI -on: - schedule: - - cron: "0 23 * * *" - repository_dispatch: - types: [response_time] - workflow_dispatch: -jobs: - release: - name: Check status - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.head_ref }} - token: ${{ secrets.GH_PAT || github.token }} - - name: Update response time - uses: upptime/uptime-monitor@v1.41.0 - with: - command: "response-time" - env: - GH_PAT: ${{ secrets.GH_PAT || github.token }} - SECRETS_CONTEXT: ${{ toJson(secrets) }} diff --git a/.github/workflows/setup.yml b/.github/workflows/setup.yml deleted file mode 100644 index 237ebdf36b..0000000000 --- a/.github/workflows/setup.yml +++ /dev/null @@ -1,72 +0,0 @@ -# -# =============================== -# Do not edit this file directly! -# =============================== -# -# Your changes will be overwritten when the Upptime template updates (by default, weekly) -# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly. -# -# 🔼 Upptime @v1.41.0 -# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary - -# * Source: https://github.com/upptime/upptime -# * Docs and more: https://upptime.js.org -# * More by Anand Chowdhary: https://anandchowdhary.com - - -name: Setup CI -on: - push: - paths: - - ".upptimerc.yml" - repository_dispatch: - types: [setup] - workflow_dispatch: -jobs: - release: - name: Setup Upptime - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.head_ref }} - token: ${{ secrets.GH_PAT || github.token }} - - name: Update template - uses: upptime/uptime-monitor@v1.41.0 - with: - command: "update-template" - env: - GH_PAT: ${{ secrets.GH_PAT || github.token }} - - name: Update response time - uses: upptime/uptime-monitor@v1.41.0 - with: - command: "response-time" - env: - GH_PAT: ${{ secrets.GH_PAT || github.token }} - SECRETS_CONTEXT: ${{ toJson(secrets) }} - - name: Update summary in README - uses: upptime/uptime-monitor@v1.41.0 - with: - command: "readme" - env: - GH_PAT: ${{ secrets.GH_PAT || github.token }} - - name: Generate graphs - uses: benc-uk/workflow-dispatch@v1 - with: - workflow: Graphs CI - token: ${{ secrets.GH_PAT || github.token }} - - name: Generate site - uses: upptime/uptime-monitor@v1.41.0 - with: - command: "site" - env: - GH_PAT: ${{ secrets.GH_PAT || github.token }} - - uses: peaceiris/actions-gh-pages@v4 - name: GitHub Pages Deploy - with: - github_token: ${{ secrets.GH_PAT || github.token }} - publish_dir: "site/status-page/__sapper__/export/" - force_orphan: "false" - user_name: "Upptime Bot" - user_email: "73812536+upptime-bot@users.noreply.github.com" diff --git a/.github/workflows/site.yml b/.github/workflows/site.yml deleted file mode 100644 index ed220474e9..0000000000 --- a/.github/workflows/site.yml +++ /dev/null @@ -1,48 +0,0 @@ -# -# =============================== -# Do not edit this file directly! -# =============================== -# -# Your changes will be overwritten when the Upptime template updates (by default, weekly) -# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly. -# -# 🔼 Upptime @v1.41.0 -# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary - -# * Source: https://github.com/upptime/upptime -# * Docs and more: https://upptime.js.org -# * More by Anand Chowdhary: https://anandchowdhary.com - - -name: Static Site CI -on: - schedule: - - cron: "0 1 * * *" - repository_dispatch: - types: [static_site] - workflow_dispatch: -jobs: - release: - name: Build and deploy site - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, '[skip ci]')" - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.head_ref }} - token: ${{ secrets.GH_PAT || github.token }} - - name: Generate site - uses: upptime/uptime-monitor@v1.41.0 - with: - command: "site" - env: - GH_PAT: ${{ secrets.GH_PAT || github.token }} - - uses: peaceiris/actions-gh-pages@v4 - name: GitHub Pages Deploy - with: - github_token: ${{ secrets.GH_PAT || github.token }} - publish_dir: "site/status-page/__sapper__/export/" - force_orphan: "false" - user_name: "Upptime Bot" - user_email: "73812536+upptime-bot@users.noreply.github.com" diff --git a/.github/workflows/summary.yml b/.github/workflows/summary.yml deleted file mode 100644 index 59185cc968..0000000000 --- a/.github/workflows/summary.yml +++ /dev/null @@ -1,39 +0,0 @@ -# -# =============================== -# Do not edit this file directly! -# =============================== -# -# Your changes will be overwritten when the Upptime template updates (by default, weekly) -# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly. -# -# 🔼 Upptime @v1.41.0 -# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary - -# * Source: https://github.com/upptime/upptime -# * Docs and more: https://upptime.js.org -# * More by Anand Chowdhary: https://anandchowdhary.com - - -name: Summary CI -on: - schedule: - - cron: "0 0 * * *" - repository_dispatch: - types: [summary] - workflow_dispatch: -jobs: - release: - name: Generate README - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.head_ref }} - token: ${{ secrets.GH_PAT || github.token }} - - name: Update summary in README - uses: upptime/uptime-monitor@v1.41.0 - with: - command: "readme" - env: - GH_PAT: ${{ secrets.GH_PAT || github.token }} diff --git a/.github/workflows/update-template.yml b/.github/workflows/update-template.yml deleted file mode 100644 index b940cc9498..0000000000 --- a/.github/workflows/update-template.yml +++ /dev/null @@ -1,39 +0,0 @@ -# -# =============================== -# Do not edit this file directly! -# =============================== -# -# Your changes will be overwritten when the Upptime template updates (by default, weekly) -# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly. -# -# 🔼 Upptime @v1.41.0 -# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary - -# * Source: https://github.com/upptime/upptime -# * Docs and more: https://upptime.js.org -# * More by Anand Chowdhary: https://anandchowdhary.com - - -name: Update Template CI -on: - schedule: - - cron: "0 0 * * *" - repository_dispatch: - types: [update_template] - workflow_dispatch: -jobs: - release: - name: Build - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.head_ref }} - token: ${{ secrets.GH_PAT || github.token }} - - name: Update template - uses: upptime/uptime-monitor@master - with: - command: "update-template" - env: - GH_PAT: ${{ secrets.GH_PAT || github.token }} diff --git a/.github/workflows/updates.yml b/.github/workflows/updates.yml deleted file mode 100644 index 459d0ca8cf..0000000000 --- a/.github/workflows/updates.yml +++ /dev/null @@ -1,37 +0,0 @@ -# -# =============================== -# Do not edit this file directly! -# =============================== -# -# Your changes will be overwritten when the Upptime template updates (by default, weekly) -# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly. -# -# 🔼 Upptime @v1.41.0 -# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary - -# * Source: https://github.com/upptime/upptime -# * Docs and more: https://upptime.js.org -# * More by Anand Chowdhary: https://anandchowdhary.com - - -name: Updates CI -on: - schedule: - - cron: "0 3 * * *" - repository_dispatch: - types: [updates] - workflow_dispatch: -jobs: - release: - name: Deploy updates - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.head_ref }} - token: ${{ secrets.GH_PAT || github.token }} - - name: Update code - uses: upptime/updates@master - env: - GH_PAT: ${{ secrets.GH_PAT || github.token }} diff --git a/.github/workflows/uptime.yml b/.github/workflows/uptime.yml deleted file mode 100644 index 4773d0cadb..0000000000 --- a/.github/workflows/uptime.yml +++ /dev/null @@ -1,40 +0,0 @@ -# -# =============================== -# Do not edit this file directly! -# =============================== -# -# Your changes will be overwritten when the Upptime template updates (by default, weekly) -# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly. -# -# 🔼 Upptime @v1.41.0 -# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary - -# * Source: https://github.com/upptime/upptime -# * Docs and more: https://upptime.js.org -# * More by Anand Chowdhary: https://anandchowdhary.com - - -name: Uptime CI -on: - schedule: - - cron: "*/5 * * * *" - repository_dispatch: - types: [uptime] - workflow_dispatch: -jobs: - release: - name: Check status - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.head_ref }} - token: ${{ secrets.GH_PAT || github.token }} - - name: Check endpoint status - uses: upptime/uptime-monitor@v1.41.0 - with: - command: "update" - env: - GH_PAT: ${{ secrets.GH_PAT || github.token }} - SECRETS_CONTEXT: ${{ toJson(secrets) }} diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.upptimerc.yml b/.upptimerc.yml deleted file mode 100644 index df939be57a..0000000000 --- a/.upptimerc.yml +++ /dev/null @@ -1,64 +0,0 @@ -# Change these first -owner: xibosignage # Your GitHub organization or username, where this repository lives -repo: status-page # The name of this repository - -sites: - - name: Xibo Signage Website - url: https://xibosignage.com - showAverageResponseTime: false - - name: Xibo Cloud United Kingdom/London - url: $CLOUD_GB_URL - showAverageResponseTime: false - - name: Xibo Cloud CDN United Kingdom/London - url: $CLOUD_GB_CDN_URL - showAverageResponseTime: false - - name: Xibo Cloud United States/New York - url: $CLOUD_NYC_URL - showAverageResponseTime: false - - name: Xibo Cloud CDN United States/New York - url: $CLOUD_NYC_CDN_URL - showAverageResponseTime: false - - name: Xibo Cloud Germany/Frankfurt - url: $CLOUD_DEU_URL - showAverageResponseTime: false - - name: Xibo Cloud CDN Germany/Frankfurt - url: $CLOUD_DEU_CDN_URL - showAverageResponseTime: false - - name: Xibo Cloud Singapore/Singapore - url: $CLOUD_SGP_URL - showAverageResponseTime: false - - name: Xibo Cloud CDN Singapore/Singapore - url: $CLOUD_SGP_CDN_URL - showAverageResponseTime: false - - name: Xibo Cloud Australia/Sydney - url: $CLOUD_AUS_URL - showAverageResponseTime: false - - name: Xibo Cloud CDN Australia/Sydney - url: $CLOUD_AUS_CDN_URL - showAverageResponseTime: false - - name: Xibo Player License Service - url: $PLAYER_LICENSE_URL - showAverageResponseTime: false - -assignees: - - alexharrington - - BenePhetes - - raulgrajeda24 - -status-website: - # Add your custom domain name, or remove the `cname` line if you don't have a domain - # Uncomment the `baseUrl` line if you don't have a custom domain and add your repo name there - # cname: demo.upptime.js.org - baseUrl: /status-page - logoUrl: https://raw.githubusercontent.com/xibosignage/status-page/master/assets/xibo-logo.png - name: Xibo Signage Service Status - introTitle: "Live Service Status" - introMessage: If you are having an issue and all services are up and running, please open a ticket with our support team who can assist you. - navbar: - - title: Status - href: /status-page/ - - title: Support - href: https://xibosignage.com/help - -# Upptime also supports notifications, assigning issues, and more -# See https://upptime.js.org/docs/configuration diff --git a/404.html b/404.html new file mode 100644 index 0000000000..f0c4033ae6 --- /dev/null +++ b/404.html @@ -0,0 +1,26 @@ +
\ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index f76bb38c5d..0000000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Anand Chowdhary - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index 53aee91311..0000000000 --- a/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# [📈 Live Status](https://xibosignage.github.io/status-page): **🟩 All systems operational** - -This repository contains the open-source uptime monitor and status page for [Xibo Digital Signage](https://xibo.org.uk), powered by [Upptime](https://github.com/upptime/upptime). - -[![Uptime CI](https://github.com/xibosignage/status-page/workflows/Uptime%20CI/badge.svg)](https://github.com/xibosignage/status-page/actions?query=workflow%3A%22Uptime+CI%22) -[![Response Time CI](https://github.com/xibosignage/status-page/workflows/Response%20Time%20CI/badge.svg)](https://github.com/xibosignage/status-page/actions?query=workflow%3A%22Response+Time+CI%22) -[![Graphs CI](https://github.com/xibosignage/status-page/workflows/Graphs%20CI/badge.svg)](https://github.com/xibosignage/status-page/actions?query=workflow%3A%22Graphs+CI%22) -[![Static Site CI](https://github.com/xibosignage/status-page/workflows/Static%20Site%20CI/badge.svg)](https://github.com/xibosignage/status-page/actions?query=workflow%3A%22Static+Site+CI%22) -[![Summary CI](https://github.com/xibosignage/status-page/workflows/Summary%20CI/badge.svg)](https://github.com/xibosignage/status-page/actions?query=workflow%3A%22Summary+CI%22) - -With [Upptime](https://upptime.js.org), you can get your own unlimited and free uptime monitor and status page, powered entirely by a GitHub repository. We use [Issues](https://github.com/xibosignage/status-page/issues) as incident reports, [Actions](https://github.com/xibosignage/status-page/actions) as uptime monitors, and [Pages](https://xibosignage.github.io/status-page) for the status page. - - - - - -| URL | Status | History | Response Time | Uptime | -| --- | ------ | ------- | ------------- | ------ | -| [Xibo Signage Website](https://xibosignage.com) | 🟩 Up | [xibo-signage-website.yml](https://github.com/xibosignage/status-page/commits/HEAD/history/xibo-signage-website.yml) |
Response time graph 710ms
Response time 641
24-hour response time 672
7-day response time 710
30-day response time 690
1-year response time 636
|
100.00%All-time uptime 100.00%
24-hour uptime 100.00%
7-day uptime 100.00%
30-day uptime 100.00%
1-year uptime 100.00%
-| Xibo Cloud United Kingdom/London | 🟩 Up | [xibo-cloud-united-kingdom-london.yml](https://github.com/xibosignage/status-page/commits/HEAD/history/xibo-cloud-united-kingdom-london.yml) |
Response time graph 405ms
Response time 343
24-hour response time 734
7-day response time 405
30-day response time 346
1-year response time 312
|
100.00%All-time uptime 99.99%
24-hour uptime 100.00%
7-day uptime 100.00%
30-day uptime 100.00%
1-year uptime 100.00%
-| Xibo Cloud CDN United Kingdom/London | 🟩 Up | [xibo-cloud-cdn-united-kingdom-london.yml](https://github.com/xibosignage/status-page/commits/HEAD/history/xibo-cloud-cdn-united-kingdom-london.yml) |
Response time graph 444ms
Response time 445
24-hour response time 333
7-day response time 444
30-day response time 464
1-year response time 457
|
100.00%All-time uptime 100.00%
24-hour uptime 100.00%
7-day uptime 100.00%
30-day uptime 100.00%
1-year uptime 100.00%
-| Xibo Cloud United States/New York | 🟩 Up | [xibo-cloud-united-states-new-york.yml](https://github.com/xibosignage/status-page/commits/HEAD/history/xibo-cloud-united-states-new-york.yml) |
Response time graph 203ms
Response time 179
24-hour response time 376
7-day response time 203
30-day response time 185
1-year response time 184
|
100.00%All-time uptime 100.00%
24-hour uptime 100.00%
7-day uptime 100.00%
30-day uptime 100.00%
1-year uptime 100.00%
-| Xibo Cloud CDN United States/New York | 🟩 Up | [xibo-cloud-cdn-united-states-new-york.yml](https://github.com/xibosignage/status-page/commits/HEAD/history/xibo-cloud-cdn-united-states-new-york.yml) |
Response time graph 258ms
Response time 206
24-hour response time 318
7-day response time 258
30-day response time 253
1-year response time 213
|
100.00%All-time uptime 100.00%
24-hour uptime 100.00%
7-day uptime 100.00%
30-day uptime 100.00%
1-year uptime 100.00%
-| Xibo Cloud Germany/Frankfurt | 🟩 Up | [xibo-cloud-germany-frankfurt.yml](https://github.com/xibosignage/status-page/commits/HEAD/history/xibo-cloud-germany-frankfurt.yml) |
Response time graph 292ms
Response time 322
24-hour response time 237
7-day response time 292
30-day response time 299
1-year response time 299
|
100.00%All-time uptime 100.00%
24-hour uptime 100.00%
7-day uptime 100.00%
30-day uptime 100.00%
1-year uptime 99.99%
-| Xibo Cloud CDN Germany/Frankfurt | 🟩 Up | [xibo-cloud-cdn-germany-frankfurt.yml](https://github.com/xibosignage/status-page/commits/HEAD/history/xibo-cloud-cdn-germany-frankfurt.yml) |
Response time graph 482ms
Response time 443
24-hour response time 580
7-day response time 482
30-day response time 441
1-year response time 451
|
100.00%All-time uptime 100.00%
24-hour uptime 100.00%
7-day uptime 100.00%
30-day uptime 100.00%
1-year uptime 100.00%
-| Xibo Cloud Singapore/Singapore | 🟩 Up | [xibo-cloud-singapore-singapore.yml](https://github.com/xibosignage/status-page/commits/HEAD/history/xibo-cloud-singapore-singapore.yml) |
Response time graph 463ms
Response time 470
24-hour response time 446
7-day response time 463
30-day response time 456
1-year response time 478
|
100.00%All-time uptime 100.00%
24-hour uptime 100.00%
7-day uptime 100.00%
30-day uptime 100.00%
1-year uptime 100.00%
-| Xibo Cloud CDN Singapore/Singapore | 🟩 Up | [xibo-cloud-cdn-singapore-singapore.yml](https://github.com/xibosignage/status-page/commits/HEAD/history/xibo-cloud-cdn-singapore-singapore.yml) |
Response time graph 649ms
Response time 691
24-hour response time 663
7-day response time 649
30-day response time 668
1-year response time 700
|
100.00%All-time uptime 100.00%
24-hour uptime 100.00%
7-day uptime 100.00%
30-day uptime 100.00%
1-year uptime 100.00%
-| Xibo Cloud Australia/Sydney | 🟩 Up | [xibo-cloud-australia-sydney.yml](https://github.com/xibosignage/status-page/commits/HEAD/history/xibo-cloud-australia-sydney.yml) |
Response time graph 518ms
Response time 559
24-hour response time 513
7-day response time 518
30-day response time 476
1-year response time 537
|
100.00%All-time uptime 99.98%
24-hour uptime 100.00%
7-day uptime 100.00%
30-day uptime 100.00%
1-year uptime 99.99%
-| Xibo Cloud CDN Australia/Sydney | 🟩 Up | [xibo-cloud-cdn-australia-sydney.yml](https://github.com/xibosignage/status-page/commits/HEAD/history/xibo-cloud-cdn-australia-sydney.yml) |
Response time graph 734ms
Response time 610
24-hour response time 697
7-day response time 734
30-day response time 651
1-year response time 619
|
100.00%All-time uptime 100.00%
24-hour uptime 100.00%
7-day uptime 100.00%
30-day uptime 100.00%
1-year uptime 100.00%
-| Xibo Player License Service | 🟩 Up | [xibo-player-license-service.yml](https://github.com/xibosignage/status-page/commits/HEAD/history/xibo-player-license-service.yml) |
Response time graph 301ms
Response time 332
24-hour response time 276
7-day response time 301
30-day response time 292
1-year response time 301
|
99.73%All-time uptime 99.99%
24-hour uptime 98.09%
7-day uptime 99.73%
30-day uptime 99.94%
1-year uptime 99.99%
- - - -[**Visit our status website →**](https://xibosignage.github.io/status-page) - -## 📄 License - -- Powered by: [Upptime](https://github.com/upptime/upptime) -- Code: [MIT](./LICENSE) © [Xibo Digital Signage](https://xibo.org.uk) -- Data in the `./history` directory: [Open Database License](https://opendatacommons.org/licenses/odbl/1-0/) diff --git a/api/xibo-cloud-australia-sydney/response-time-day.json b/api/xibo-cloud-australia-sydney/response-time-day.json deleted file mode 100644 index 38ab80ddee..0000000000 --- a/api/xibo-cloud-australia-sydney/response-time-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 24h","message":"513 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-australia-sydney/response-time-month.json b/api/xibo-cloud-australia-sydney/response-time-month.json deleted file mode 100644 index 51e228f7a8..0000000000 --- a/api/xibo-cloud-australia-sydney/response-time-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 30d","message":"476 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-australia-sydney/response-time-week.json b/api/xibo-cloud-australia-sydney/response-time-week.json deleted file mode 100644 index 769a2e346c..0000000000 --- a/api/xibo-cloud-australia-sydney/response-time-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 7d","message":"518 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-australia-sydney/response-time-year.json b/api/xibo-cloud-australia-sydney/response-time-year.json deleted file mode 100644 index 4d2ba8b6ea..0000000000 --- a/api/xibo-cloud-australia-sydney/response-time-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 1y","message":"537 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-australia-sydney/response-time.json b/api/xibo-cloud-australia-sydney/response-time.json deleted file mode 100644 index 223d03e370..0000000000 --- a/api/xibo-cloud-australia-sydney/response-time.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time","message":"559 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-australia-sydney/uptime-day.json b/api/xibo-cloud-australia-sydney/uptime-day.json deleted file mode 100644 index 226baeab58..0000000000 --- a/api/xibo-cloud-australia-sydney/uptime-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 24h","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-australia-sydney/uptime-month.json b/api/xibo-cloud-australia-sydney/uptime-month.json deleted file mode 100644 index 059c01da0a..0000000000 --- a/api/xibo-cloud-australia-sydney/uptime-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 30d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-australia-sydney/uptime-week.json b/api/xibo-cloud-australia-sydney/uptime-week.json deleted file mode 100644 index fccd794d26..0000000000 --- a/api/xibo-cloud-australia-sydney/uptime-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 7d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-australia-sydney/uptime-year.json b/api/xibo-cloud-australia-sydney/uptime-year.json deleted file mode 100644 index e26af93c15..0000000000 --- a/api/xibo-cloud-australia-sydney/uptime-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 1y","message":"99.99%","color":"brightgreen"} diff --git a/api/xibo-cloud-australia-sydney/uptime.json b/api/xibo-cloud-australia-sydney/uptime.json deleted file mode 100644 index 13b33e8dc7..0000000000 --- a/api/xibo-cloud-australia-sydney/uptime.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime","message":"99.98%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-australia-sydney/response-time-day.json b/api/xibo-cloud-cdn-australia-sydney/response-time-day.json deleted file mode 100644 index ed6aae7ef4..0000000000 --- a/api/xibo-cloud-cdn-australia-sydney/response-time-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 24h","message":"697 ms","color":"yellow"} diff --git a/api/xibo-cloud-cdn-australia-sydney/response-time-month.json b/api/xibo-cloud-cdn-australia-sydney/response-time-month.json deleted file mode 100644 index b0e19cf5e2..0000000000 --- a/api/xibo-cloud-cdn-australia-sydney/response-time-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 30d","message":"651 ms","color":"yellow"} diff --git a/api/xibo-cloud-cdn-australia-sydney/response-time-week.json b/api/xibo-cloud-cdn-australia-sydney/response-time-week.json deleted file mode 100644 index 0b0a8df877..0000000000 --- a/api/xibo-cloud-cdn-australia-sydney/response-time-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 7d","message":"734 ms","color":"yellow"} diff --git a/api/xibo-cloud-cdn-australia-sydney/response-time-year.json b/api/xibo-cloud-cdn-australia-sydney/response-time-year.json deleted file mode 100644 index 7919eccd8d..0000000000 --- a/api/xibo-cloud-cdn-australia-sydney/response-time-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 1y","message":"619 ms","color":"yellow"} diff --git a/api/xibo-cloud-cdn-australia-sydney/response-time.json b/api/xibo-cloud-cdn-australia-sydney/response-time.json deleted file mode 100644 index 43c9c29363..0000000000 --- a/api/xibo-cloud-cdn-australia-sydney/response-time.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time","message":"610 ms","color":"yellow"} diff --git a/api/xibo-cloud-cdn-australia-sydney/uptime-day.json b/api/xibo-cloud-cdn-australia-sydney/uptime-day.json deleted file mode 100644 index 226baeab58..0000000000 --- a/api/xibo-cloud-cdn-australia-sydney/uptime-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 24h","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-australia-sydney/uptime-month.json b/api/xibo-cloud-cdn-australia-sydney/uptime-month.json deleted file mode 100644 index 059c01da0a..0000000000 --- a/api/xibo-cloud-cdn-australia-sydney/uptime-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 30d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-australia-sydney/uptime-week.json b/api/xibo-cloud-cdn-australia-sydney/uptime-week.json deleted file mode 100644 index fccd794d26..0000000000 --- a/api/xibo-cloud-cdn-australia-sydney/uptime-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 7d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-australia-sydney/uptime-year.json b/api/xibo-cloud-cdn-australia-sydney/uptime-year.json deleted file mode 100644 index 8923b68ad6..0000000000 --- a/api/xibo-cloud-cdn-australia-sydney/uptime-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 1y","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-australia-sydney/uptime.json b/api/xibo-cloud-cdn-australia-sydney/uptime.json deleted file mode 100644 index bd71d6f882..0000000000 --- a/api/xibo-cloud-cdn-australia-sydney/uptime.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-germany-frankfurt/response-time-day.json b/api/xibo-cloud-cdn-germany-frankfurt/response-time-day.json deleted file mode 100644 index 82feb618d8..0000000000 --- a/api/xibo-cloud-cdn-germany-frankfurt/response-time-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 24h","message":"580 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-cdn-germany-frankfurt/response-time-month.json b/api/xibo-cloud-cdn-germany-frankfurt/response-time-month.json deleted file mode 100644 index 95fd173131..0000000000 --- a/api/xibo-cloud-cdn-germany-frankfurt/response-time-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 30d","message":"441 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-cdn-germany-frankfurt/response-time-week.json b/api/xibo-cloud-cdn-germany-frankfurt/response-time-week.json deleted file mode 100644 index ca7694accb..0000000000 --- a/api/xibo-cloud-cdn-germany-frankfurt/response-time-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 7d","message":"482 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-cdn-germany-frankfurt/response-time-year.json b/api/xibo-cloud-cdn-germany-frankfurt/response-time-year.json deleted file mode 100644 index 8638e3cbb0..0000000000 --- a/api/xibo-cloud-cdn-germany-frankfurt/response-time-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 1y","message":"451 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-cdn-germany-frankfurt/response-time.json b/api/xibo-cloud-cdn-germany-frankfurt/response-time.json deleted file mode 100644 index 8b6055f92c..0000000000 --- a/api/xibo-cloud-cdn-germany-frankfurt/response-time.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time","message":"443 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-cdn-germany-frankfurt/uptime-day.json b/api/xibo-cloud-cdn-germany-frankfurt/uptime-day.json deleted file mode 100644 index 226baeab58..0000000000 --- a/api/xibo-cloud-cdn-germany-frankfurt/uptime-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 24h","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-germany-frankfurt/uptime-month.json b/api/xibo-cloud-cdn-germany-frankfurt/uptime-month.json deleted file mode 100644 index 059c01da0a..0000000000 --- a/api/xibo-cloud-cdn-germany-frankfurt/uptime-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 30d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-germany-frankfurt/uptime-week.json b/api/xibo-cloud-cdn-germany-frankfurt/uptime-week.json deleted file mode 100644 index fccd794d26..0000000000 --- a/api/xibo-cloud-cdn-germany-frankfurt/uptime-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 7d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-germany-frankfurt/uptime-year.json b/api/xibo-cloud-cdn-germany-frankfurt/uptime-year.json deleted file mode 100644 index 8923b68ad6..0000000000 --- a/api/xibo-cloud-cdn-germany-frankfurt/uptime-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 1y","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-germany-frankfurt/uptime.json b/api/xibo-cloud-cdn-germany-frankfurt/uptime.json deleted file mode 100644 index bd71d6f882..0000000000 --- a/api/xibo-cloud-cdn-germany-frankfurt/uptime.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-singapore-singapore/response-time-day.json b/api/xibo-cloud-cdn-singapore-singapore/response-time-day.json deleted file mode 100644 index f2ebec4577..0000000000 --- a/api/xibo-cloud-cdn-singapore-singapore/response-time-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 24h","message":"663 ms","color":"yellow"} diff --git a/api/xibo-cloud-cdn-singapore-singapore/response-time-month.json b/api/xibo-cloud-cdn-singapore-singapore/response-time-month.json deleted file mode 100644 index 1832f6cabb..0000000000 --- a/api/xibo-cloud-cdn-singapore-singapore/response-time-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 30d","message":"668 ms","color":"yellow"} diff --git a/api/xibo-cloud-cdn-singapore-singapore/response-time-week.json b/api/xibo-cloud-cdn-singapore-singapore/response-time-week.json deleted file mode 100644 index 104eb37af5..0000000000 --- a/api/xibo-cloud-cdn-singapore-singapore/response-time-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 7d","message":"649 ms","color":"yellow"} diff --git a/api/xibo-cloud-cdn-singapore-singapore/response-time-year.json b/api/xibo-cloud-cdn-singapore-singapore/response-time-year.json deleted file mode 100644 index 9ccd54f7e1..0000000000 --- a/api/xibo-cloud-cdn-singapore-singapore/response-time-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 1y","message":"700 ms","color":"yellow"} diff --git a/api/xibo-cloud-cdn-singapore-singapore/response-time.json b/api/xibo-cloud-cdn-singapore-singapore/response-time.json deleted file mode 100644 index 8b260a00e1..0000000000 --- a/api/xibo-cloud-cdn-singapore-singapore/response-time.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time","message":"691 ms","color":"yellow"} diff --git a/api/xibo-cloud-cdn-singapore-singapore/uptime-day.json b/api/xibo-cloud-cdn-singapore-singapore/uptime-day.json deleted file mode 100644 index 226baeab58..0000000000 --- a/api/xibo-cloud-cdn-singapore-singapore/uptime-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 24h","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-singapore-singapore/uptime-month.json b/api/xibo-cloud-cdn-singapore-singapore/uptime-month.json deleted file mode 100644 index 059c01da0a..0000000000 --- a/api/xibo-cloud-cdn-singapore-singapore/uptime-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 30d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-singapore-singapore/uptime-week.json b/api/xibo-cloud-cdn-singapore-singapore/uptime-week.json deleted file mode 100644 index fccd794d26..0000000000 --- a/api/xibo-cloud-cdn-singapore-singapore/uptime-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 7d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-singapore-singapore/uptime-year.json b/api/xibo-cloud-cdn-singapore-singapore/uptime-year.json deleted file mode 100644 index 8923b68ad6..0000000000 --- a/api/xibo-cloud-cdn-singapore-singapore/uptime-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 1y","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-singapore-singapore/uptime.json b/api/xibo-cloud-cdn-singapore-singapore/uptime.json deleted file mode 100644 index bd71d6f882..0000000000 --- a/api/xibo-cloud-cdn-singapore-singapore/uptime.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-united-kingdom-london/response-time-day.json b/api/xibo-cloud-cdn-united-kingdom-london/response-time-day.json deleted file mode 100644 index 6a185c2df9..0000000000 --- a/api/xibo-cloud-cdn-united-kingdom-london/response-time-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 24h","message":"333 ms","color":"green"} diff --git a/api/xibo-cloud-cdn-united-kingdom-london/response-time-month.json b/api/xibo-cloud-cdn-united-kingdom-london/response-time-month.json deleted file mode 100644 index 589f47211d..0000000000 --- a/api/xibo-cloud-cdn-united-kingdom-london/response-time-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 30d","message":"464 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-cdn-united-kingdom-london/response-time-week.json b/api/xibo-cloud-cdn-united-kingdom-london/response-time-week.json deleted file mode 100644 index 6b9e49233b..0000000000 --- a/api/xibo-cloud-cdn-united-kingdom-london/response-time-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 7d","message":"444 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-cdn-united-kingdom-london/response-time-year.json b/api/xibo-cloud-cdn-united-kingdom-london/response-time-year.json deleted file mode 100644 index de82249ee4..0000000000 --- a/api/xibo-cloud-cdn-united-kingdom-london/response-time-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 1y","message":"457 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-cdn-united-kingdom-london/response-time.json b/api/xibo-cloud-cdn-united-kingdom-london/response-time.json deleted file mode 100644 index c9969a7ef5..0000000000 --- a/api/xibo-cloud-cdn-united-kingdom-london/response-time.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time","message":"445 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-cdn-united-kingdom-london/uptime-day.json b/api/xibo-cloud-cdn-united-kingdom-london/uptime-day.json deleted file mode 100644 index 226baeab58..0000000000 --- a/api/xibo-cloud-cdn-united-kingdom-london/uptime-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 24h","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-united-kingdom-london/uptime-month.json b/api/xibo-cloud-cdn-united-kingdom-london/uptime-month.json deleted file mode 100644 index 059c01da0a..0000000000 --- a/api/xibo-cloud-cdn-united-kingdom-london/uptime-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 30d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-united-kingdom-london/uptime-week.json b/api/xibo-cloud-cdn-united-kingdom-london/uptime-week.json deleted file mode 100644 index fccd794d26..0000000000 --- a/api/xibo-cloud-cdn-united-kingdom-london/uptime-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 7d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-united-kingdom-london/uptime-year.json b/api/xibo-cloud-cdn-united-kingdom-london/uptime-year.json deleted file mode 100644 index 8923b68ad6..0000000000 --- a/api/xibo-cloud-cdn-united-kingdom-london/uptime-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 1y","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-united-kingdom-london/uptime.json b/api/xibo-cloud-cdn-united-kingdom-london/uptime.json deleted file mode 100644 index bd71d6f882..0000000000 --- a/api/xibo-cloud-cdn-united-kingdom-london/uptime.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-united-states-new-york/response-time-day.json b/api/xibo-cloud-cdn-united-states-new-york/response-time-day.json deleted file mode 100644 index 9fc2212a3c..0000000000 --- a/api/xibo-cloud-cdn-united-states-new-york/response-time-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 24h","message":"318 ms","color":"green"} diff --git a/api/xibo-cloud-cdn-united-states-new-york/response-time-month.json b/api/xibo-cloud-cdn-united-states-new-york/response-time-month.json deleted file mode 100644 index 5ec76e5eca..0000000000 --- a/api/xibo-cloud-cdn-united-states-new-york/response-time-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 30d","message":"253 ms","color":"green"} diff --git a/api/xibo-cloud-cdn-united-states-new-york/response-time-week.json b/api/xibo-cloud-cdn-united-states-new-york/response-time-week.json deleted file mode 100644 index 35611de099..0000000000 --- a/api/xibo-cloud-cdn-united-states-new-york/response-time-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 7d","message":"258 ms","color":"green"} diff --git a/api/xibo-cloud-cdn-united-states-new-york/response-time-year.json b/api/xibo-cloud-cdn-united-states-new-york/response-time-year.json deleted file mode 100644 index dbf8424e1e..0000000000 --- a/api/xibo-cloud-cdn-united-states-new-york/response-time-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 1y","message":"213 ms","color":"green"} diff --git a/api/xibo-cloud-cdn-united-states-new-york/response-time.json b/api/xibo-cloud-cdn-united-states-new-york/response-time.json deleted file mode 100644 index 8cdb471861..0000000000 --- a/api/xibo-cloud-cdn-united-states-new-york/response-time.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time","message":"206 ms","color":"green"} diff --git a/api/xibo-cloud-cdn-united-states-new-york/uptime-day.json b/api/xibo-cloud-cdn-united-states-new-york/uptime-day.json deleted file mode 100644 index 226baeab58..0000000000 --- a/api/xibo-cloud-cdn-united-states-new-york/uptime-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 24h","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-united-states-new-york/uptime-month.json b/api/xibo-cloud-cdn-united-states-new-york/uptime-month.json deleted file mode 100644 index 059c01da0a..0000000000 --- a/api/xibo-cloud-cdn-united-states-new-york/uptime-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 30d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-united-states-new-york/uptime-week.json b/api/xibo-cloud-cdn-united-states-new-york/uptime-week.json deleted file mode 100644 index fccd794d26..0000000000 --- a/api/xibo-cloud-cdn-united-states-new-york/uptime-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 7d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-united-states-new-york/uptime-year.json b/api/xibo-cloud-cdn-united-states-new-york/uptime-year.json deleted file mode 100644 index 8923b68ad6..0000000000 --- a/api/xibo-cloud-cdn-united-states-new-york/uptime-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 1y","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-cdn-united-states-new-york/uptime.json b/api/xibo-cloud-cdn-united-states-new-york/uptime.json deleted file mode 100644 index bd71d6f882..0000000000 --- a/api/xibo-cloud-cdn-united-states-new-york/uptime.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-germany-frankfurt/response-time-day.json b/api/xibo-cloud-germany-frankfurt/response-time-day.json deleted file mode 100644 index ef9f043306..0000000000 --- a/api/xibo-cloud-germany-frankfurt/response-time-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 24h","message":"237 ms","color":"green"} diff --git a/api/xibo-cloud-germany-frankfurt/response-time-month.json b/api/xibo-cloud-germany-frankfurt/response-time-month.json deleted file mode 100644 index e0a9caa1e6..0000000000 --- a/api/xibo-cloud-germany-frankfurt/response-time-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 30d","message":"299 ms","color":"green"} diff --git a/api/xibo-cloud-germany-frankfurt/response-time-week.json b/api/xibo-cloud-germany-frankfurt/response-time-week.json deleted file mode 100644 index 5fd0a85c57..0000000000 --- a/api/xibo-cloud-germany-frankfurt/response-time-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 7d","message":"292 ms","color":"green"} diff --git a/api/xibo-cloud-germany-frankfurt/response-time-year.json b/api/xibo-cloud-germany-frankfurt/response-time-year.json deleted file mode 100644 index 2d297696f4..0000000000 --- a/api/xibo-cloud-germany-frankfurt/response-time-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 1y","message":"299 ms","color":"green"} diff --git a/api/xibo-cloud-germany-frankfurt/response-time.json b/api/xibo-cloud-germany-frankfurt/response-time.json deleted file mode 100644 index 85057a2bc4..0000000000 --- a/api/xibo-cloud-germany-frankfurt/response-time.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time","message":"322 ms","color":"green"} diff --git a/api/xibo-cloud-germany-frankfurt/uptime-day.json b/api/xibo-cloud-germany-frankfurt/uptime-day.json deleted file mode 100644 index 226baeab58..0000000000 --- a/api/xibo-cloud-germany-frankfurt/uptime-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 24h","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-germany-frankfurt/uptime-month.json b/api/xibo-cloud-germany-frankfurt/uptime-month.json deleted file mode 100644 index 059c01da0a..0000000000 --- a/api/xibo-cloud-germany-frankfurt/uptime-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 30d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-germany-frankfurt/uptime-week.json b/api/xibo-cloud-germany-frankfurt/uptime-week.json deleted file mode 100644 index fccd794d26..0000000000 --- a/api/xibo-cloud-germany-frankfurt/uptime-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 7d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-germany-frankfurt/uptime-year.json b/api/xibo-cloud-germany-frankfurt/uptime-year.json deleted file mode 100644 index e26af93c15..0000000000 --- a/api/xibo-cloud-germany-frankfurt/uptime-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 1y","message":"99.99%","color":"brightgreen"} diff --git a/api/xibo-cloud-germany-frankfurt/uptime.json b/api/xibo-cloud-germany-frankfurt/uptime.json deleted file mode 100644 index bd71d6f882..0000000000 --- a/api/xibo-cloud-germany-frankfurt/uptime.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-singapore-singapore/response-time-day.json b/api/xibo-cloud-singapore-singapore/response-time-day.json deleted file mode 100644 index 8c5b760ef2..0000000000 --- a/api/xibo-cloud-singapore-singapore/response-time-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 24h","message":"446 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-singapore-singapore/response-time-month.json b/api/xibo-cloud-singapore-singapore/response-time-month.json deleted file mode 100644 index 42c9077a91..0000000000 --- a/api/xibo-cloud-singapore-singapore/response-time-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 30d","message":"456 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-singapore-singapore/response-time-week.json b/api/xibo-cloud-singapore-singapore/response-time-week.json deleted file mode 100644 index 684909384f..0000000000 --- a/api/xibo-cloud-singapore-singapore/response-time-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 7d","message":"463 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-singapore-singapore/response-time-year.json b/api/xibo-cloud-singapore-singapore/response-time-year.json deleted file mode 100644 index 5a4788b60e..0000000000 --- a/api/xibo-cloud-singapore-singapore/response-time-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 1y","message":"478 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-singapore-singapore/response-time.json b/api/xibo-cloud-singapore-singapore/response-time.json deleted file mode 100644 index 8729880332..0000000000 --- a/api/xibo-cloud-singapore-singapore/response-time.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time","message":"470 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-singapore-singapore/uptime-day.json b/api/xibo-cloud-singapore-singapore/uptime-day.json deleted file mode 100644 index 226baeab58..0000000000 --- a/api/xibo-cloud-singapore-singapore/uptime-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 24h","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-singapore-singapore/uptime-month.json b/api/xibo-cloud-singapore-singapore/uptime-month.json deleted file mode 100644 index 059c01da0a..0000000000 --- a/api/xibo-cloud-singapore-singapore/uptime-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 30d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-singapore-singapore/uptime-week.json b/api/xibo-cloud-singapore-singapore/uptime-week.json deleted file mode 100644 index fccd794d26..0000000000 --- a/api/xibo-cloud-singapore-singapore/uptime-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 7d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-singapore-singapore/uptime-year.json b/api/xibo-cloud-singapore-singapore/uptime-year.json deleted file mode 100644 index 8923b68ad6..0000000000 --- a/api/xibo-cloud-singapore-singapore/uptime-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 1y","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-singapore-singapore/uptime.json b/api/xibo-cloud-singapore-singapore/uptime.json deleted file mode 100644 index bd71d6f882..0000000000 --- a/api/xibo-cloud-singapore-singapore/uptime.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-united-kingdom-london/response-time-day.json b/api/xibo-cloud-united-kingdom-london/response-time-day.json deleted file mode 100644 index 3cd008cdb3..0000000000 --- a/api/xibo-cloud-united-kingdom-london/response-time-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 24h","message":"734 ms","color":"yellow"} diff --git a/api/xibo-cloud-united-kingdom-london/response-time-month.json b/api/xibo-cloud-united-kingdom-london/response-time-month.json deleted file mode 100644 index c33ef6a850..0000000000 --- a/api/xibo-cloud-united-kingdom-london/response-time-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 30d","message":"346 ms","color":"green"} diff --git a/api/xibo-cloud-united-kingdom-london/response-time-week.json b/api/xibo-cloud-united-kingdom-london/response-time-week.json deleted file mode 100644 index e858c0b207..0000000000 --- a/api/xibo-cloud-united-kingdom-london/response-time-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 7d","message":"405 ms","color":"yellowgreen"} diff --git a/api/xibo-cloud-united-kingdom-london/response-time-year.json b/api/xibo-cloud-united-kingdom-london/response-time-year.json deleted file mode 100644 index 1d6876dae8..0000000000 --- a/api/xibo-cloud-united-kingdom-london/response-time-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 1y","message":"312 ms","color":"green"} diff --git a/api/xibo-cloud-united-kingdom-london/response-time.json b/api/xibo-cloud-united-kingdom-london/response-time.json deleted file mode 100644 index 2775ef5dea..0000000000 --- a/api/xibo-cloud-united-kingdom-london/response-time.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time","message":"343 ms","color":"green"} diff --git a/api/xibo-cloud-united-kingdom-london/uptime-day.json b/api/xibo-cloud-united-kingdom-london/uptime-day.json deleted file mode 100644 index 226baeab58..0000000000 --- a/api/xibo-cloud-united-kingdom-london/uptime-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 24h","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-united-kingdom-london/uptime-month.json b/api/xibo-cloud-united-kingdom-london/uptime-month.json deleted file mode 100644 index 059c01da0a..0000000000 --- a/api/xibo-cloud-united-kingdom-london/uptime-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 30d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-united-kingdom-london/uptime-week.json b/api/xibo-cloud-united-kingdom-london/uptime-week.json deleted file mode 100644 index fccd794d26..0000000000 --- a/api/xibo-cloud-united-kingdom-london/uptime-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 7d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-united-kingdom-london/uptime-year.json b/api/xibo-cloud-united-kingdom-london/uptime-year.json deleted file mode 100644 index 8923b68ad6..0000000000 --- a/api/xibo-cloud-united-kingdom-london/uptime-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 1y","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-united-kingdom-london/uptime.json b/api/xibo-cloud-united-kingdom-london/uptime.json deleted file mode 100644 index c30fdd0aad..0000000000 --- a/api/xibo-cloud-united-kingdom-london/uptime.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime","message":"99.99%","color":"brightgreen"} diff --git a/api/xibo-cloud-united-states-new-york/response-time-day.json b/api/xibo-cloud-united-states-new-york/response-time-day.json deleted file mode 100644 index 396048cc7f..0000000000 --- a/api/xibo-cloud-united-states-new-york/response-time-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 24h","message":"376 ms","color":"green"} diff --git a/api/xibo-cloud-united-states-new-york/response-time-month.json b/api/xibo-cloud-united-states-new-york/response-time-month.json deleted file mode 100644 index bd67aad2e1..0000000000 --- a/api/xibo-cloud-united-states-new-york/response-time-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 30d","message":"185 ms","color":"brightgreen"} diff --git a/api/xibo-cloud-united-states-new-york/response-time-week.json b/api/xibo-cloud-united-states-new-york/response-time-week.json deleted file mode 100644 index 2756e56d47..0000000000 --- a/api/xibo-cloud-united-states-new-york/response-time-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 7d","message":"203 ms","color":"green"} diff --git a/api/xibo-cloud-united-states-new-york/response-time-year.json b/api/xibo-cloud-united-states-new-york/response-time-year.json deleted file mode 100644 index 62e6dfc1d5..0000000000 --- a/api/xibo-cloud-united-states-new-york/response-time-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 1y","message":"184 ms","color":"brightgreen"} diff --git a/api/xibo-cloud-united-states-new-york/response-time.json b/api/xibo-cloud-united-states-new-york/response-time.json deleted file mode 100644 index 89a0ded9c6..0000000000 --- a/api/xibo-cloud-united-states-new-york/response-time.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time","message":"179 ms","color":"brightgreen"} diff --git a/api/xibo-cloud-united-states-new-york/uptime-day.json b/api/xibo-cloud-united-states-new-york/uptime-day.json deleted file mode 100644 index 226baeab58..0000000000 --- a/api/xibo-cloud-united-states-new-york/uptime-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 24h","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-united-states-new-york/uptime-month.json b/api/xibo-cloud-united-states-new-york/uptime-month.json deleted file mode 100644 index 059c01da0a..0000000000 --- a/api/xibo-cloud-united-states-new-york/uptime-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 30d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-united-states-new-york/uptime-week.json b/api/xibo-cloud-united-states-new-york/uptime-week.json deleted file mode 100644 index fccd794d26..0000000000 --- a/api/xibo-cloud-united-states-new-york/uptime-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 7d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-united-states-new-york/uptime-year.json b/api/xibo-cloud-united-states-new-york/uptime-year.json deleted file mode 100644 index 8923b68ad6..0000000000 --- a/api/xibo-cloud-united-states-new-york/uptime-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 1y","message":"100%","color":"brightgreen"} diff --git a/api/xibo-cloud-united-states-new-york/uptime.json b/api/xibo-cloud-united-states-new-york/uptime.json deleted file mode 100644 index bd71d6f882..0000000000 --- a/api/xibo-cloud-united-states-new-york/uptime.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime","message":"100%","color":"brightgreen"} diff --git a/api/xibo-player-license-service/response-time-day.json b/api/xibo-player-license-service/response-time-day.json deleted file mode 100644 index b37f6a7461..0000000000 --- a/api/xibo-player-license-service/response-time-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 24h","message":"276 ms","color":"green"} diff --git a/api/xibo-player-license-service/response-time-month.json b/api/xibo-player-license-service/response-time-month.json deleted file mode 100644 index fb1e2400e4..0000000000 --- a/api/xibo-player-license-service/response-time-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 30d","message":"292 ms","color":"green"} diff --git a/api/xibo-player-license-service/response-time-week.json b/api/xibo-player-license-service/response-time-week.json deleted file mode 100644 index 0a0b6e9e17..0000000000 --- a/api/xibo-player-license-service/response-time-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 7d","message":"301 ms","color":"green"} diff --git a/api/xibo-player-license-service/response-time-year.json b/api/xibo-player-license-service/response-time-year.json deleted file mode 100644 index 9f7099cc05..0000000000 --- a/api/xibo-player-license-service/response-time-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 1y","message":"301 ms","color":"green"} diff --git a/api/xibo-player-license-service/response-time.json b/api/xibo-player-license-service/response-time.json deleted file mode 100644 index 4951069104..0000000000 --- a/api/xibo-player-license-service/response-time.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time","message":"332 ms","color":"green"} diff --git a/api/xibo-player-license-service/uptime-day.json b/api/xibo-player-license-service/uptime-day.json deleted file mode 100644 index e767dd5679..0000000000 --- a/api/xibo-player-license-service/uptime-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 24h","message":"98.09%","color":"brightgreen"} diff --git a/api/xibo-player-license-service/uptime-month.json b/api/xibo-player-license-service/uptime-month.json deleted file mode 100644 index 64f4d333b4..0000000000 --- a/api/xibo-player-license-service/uptime-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 30d","message":"99.94%","color":"brightgreen"} diff --git a/api/xibo-player-license-service/uptime-week.json b/api/xibo-player-license-service/uptime-week.json deleted file mode 100644 index 38b06e6462..0000000000 --- a/api/xibo-player-license-service/uptime-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 7d","message":"99.73%","color":"brightgreen"} diff --git a/api/xibo-player-license-service/uptime-year.json b/api/xibo-player-license-service/uptime-year.json deleted file mode 100644 index e26af93c15..0000000000 --- a/api/xibo-player-license-service/uptime-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 1y","message":"99.99%","color":"brightgreen"} diff --git a/api/xibo-player-license-service/uptime.json b/api/xibo-player-license-service/uptime.json deleted file mode 100644 index c30fdd0aad..0000000000 --- a/api/xibo-player-license-service/uptime.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime","message":"99.99%","color":"brightgreen"} diff --git a/api/xibo-signage-website/response-time-day.json b/api/xibo-signage-website/response-time-day.json deleted file mode 100644 index ba622e55b8..0000000000 --- a/api/xibo-signage-website/response-time-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 24h","message":"672 ms","color":"yellow"} diff --git a/api/xibo-signage-website/response-time-month.json b/api/xibo-signage-website/response-time-month.json deleted file mode 100644 index 73f42aafee..0000000000 --- a/api/xibo-signage-website/response-time-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 30d","message":"690 ms","color":"yellow"} diff --git a/api/xibo-signage-website/response-time-week.json b/api/xibo-signage-website/response-time-week.json deleted file mode 100644 index 8f41d36d97..0000000000 --- a/api/xibo-signage-website/response-time-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 7d","message":"710 ms","color":"yellow"} diff --git a/api/xibo-signage-website/response-time-year.json b/api/xibo-signage-website/response-time-year.json deleted file mode 100644 index 71ecfbfa46..0000000000 --- a/api/xibo-signage-website/response-time-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time 1y","message":"636 ms","color":"yellow"} diff --git a/api/xibo-signage-website/response-time.json b/api/xibo-signage-website/response-time.json deleted file mode 100644 index 7b8a0bfb28..0000000000 --- a/api/xibo-signage-website/response-time.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"response time","message":"641 ms","color":"yellow"} diff --git a/api/xibo-signage-website/uptime-day.json b/api/xibo-signage-website/uptime-day.json deleted file mode 100644 index 226baeab58..0000000000 --- a/api/xibo-signage-website/uptime-day.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 24h","message":"100%","color":"brightgreen"} diff --git a/api/xibo-signage-website/uptime-month.json b/api/xibo-signage-website/uptime-month.json deleted file mode 100644 index 059c01da0a..0000000000 --- a/api/xibo-signage-website/uptime-month.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 30d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-signage-website/uptime-week.json b/api/xibo-signage-website/uptime-week.json deleted file mode 100644 index fccd794d26..0000000000 --- a/api/xibo-signage-website/uptime-week.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 7d","message":"100%","color":"brightgreen"} diff --git a/api/xibo-signage-website/uptime-year.json b/api/xibo-signage-website/uptime-year.json deleted file mode 100644 index 8923b68ad6..0000000000 --- a/api/xibo-signage-website/uptime-year.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime 1y","message":"100%","color":"brightgreen"} diff --git a/api/xibo-signage-website/uptime.json b/api/xibo-signage-website/uptime.json deleted file mode 100644 index bd71d6f882..0000000000 --- a/api/xibo-signage-website/uptime.json +++ /dev/null @@ -1 +0,0 @@ -{"schemaVersion":1,"label":"uptime","message":"100%","color":"brightgreen"} diff --git a/client/_number_-971b332f.css b/client/_number_-971b332f.css new file mode 100644 index 0000000000..2c75085222 --- /dev/null +++ b/client/_number_-971b332f.css @@ -0,0 +1,4 @@ +.no-underline.svelte-1d3m0a{text-decoration:none} +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VtbWFyeS5zdmVsdGUiLCJzb3VyY2VzIjpbIlN1bW1hcnkuc3ZlbHRlIl0sInNvdXJjZXNDb250ZW50IjpbIjxzY3JpcHQ+XG4gIGltcG9ydCBMb2FkaW5nIGZyb20gXCIuLi9jb21wb25lbnRzL0xvYWRpbmcuc3ZlbHRlXCI7XG4gIGltcG9ydCB7IG9uTW91bnQgfSBmcm9tIFwic3ZlbHRlXCI7XG4gIGltcG9ydCBjb25maWcgZnJvbSBcIi4uL2RhdGEvY29uZmlnLmpzb25cIjtcbiAgaW1wb3J0IHsgaGFuZGxlRXJyb3IgfSBmcm9tIFwiLi4vdXRpbHMvY3JlYXRlT2N0b2tpdFwiO1xuXG4gIGV4cG9ydCBsZXQgc2x1ZztcbiAgbGV0IGxvYWRpbmcgPSB0cnVlO1xuXG4gIGxldCB7IGFwaUJhc2VVcmwsdXNlckNvbnRlbnRCYXNlVXJsIH0gPSBjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXSB8fCB7fTtcbiAgaWYgKCFhcGlCYXNlVXJsKSBhcGlCYXNlVXJsID0gXCJodHRwczovL2FwaS5naXRodWIuY29tXCI7XG4gIGlmICghdXNlckNvbnRlbnRCYXNlVXJsKSAgdXNlckNvbnRlbnRCYXNlVXJsID0gXCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb21cIjtcblxuICBjb25zdCBvd25lciA9IGNvbmZpZy5vd25lcjtcbiAgY29uc3QgcmVwbyA9IGNvbmZpZy5yZXBvO1xuICBsZXQgc3VtbWFyeSA9IG51bGw7XG5cbiAgb25Nb3VudChhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKGAke3VzZXJDb250ZW50QmFzZVVybH0vJHtvd25lcn0vJHtyZXBvfS9tYXN0ZXIvaGlzdG9yeS9zdW1tYXJ5Lmpzb25gKTtcbiAgICAgIHN1bW1hcnkgPSAoYXdhaXQgcmVzLmpzb24oKSkuZmluZCgoaXRlbSkgPT4gaXRlbS5zbHVnID09PSBzbHVnKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICBsb2FkaW5nID0gZmFsc2U7XG4gIH0pO1xuPC9zY3JpcHQ+XG5cbjxzdHlsZT5cbiAgLm5vLXVuZGVybGluZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG48L3N0eWxlPlxuXG48c2VjdGlvbj5cbiAgeyNpZiBsb2FkaW5nfVxuICAgIDxMb2FkaW5nIC8+XG4gIHs6ZWxzZSBpZiBzdW1tYXJ5fVxuICAgIDxoMT5cbiAgICAgIDxhIGNsYXNzPVwibm8tdW5kZXJsaW5lXCIgaHJlZj17c3VtbWFyeS51cmwuc3RhcnRzV2l0aCgnJCcpID8gJyMnIDogc3VtbWFyeS51cmx9PntzdW1tYXJ5Lm5hbWV9PC9hPlxuICAgICAgPHNwYW4gY2xhc3M9e2B0YWcgJHtzdW1tYXJ5LnN0YXR1c31gfT5cbiAgICAgICAge3N1bW1hcnkuc3RhdHVzID09PSAndXAnID8gY29uZmlnLmkxOG4udXAgOiBjb25maWcuaTE4bi5kb3dufVxuICAgICAgPC9zcGFuPlxuICAgIDwvaDE+XG4gICAgPGRsPlxuICAgICAgPGR0Pntjb25maWcuaTE4bi5vdmVyYWxsVXB0aW1lVGl0bGV9PC9kdD5cbiAgICAgIDxkZD57c3VtbWFyeS51cHRpbWV9PC9kZD5cbiAgICAgIHsjaWYgc3VtbWFyeS5zaG93QXZlcmFnZVJlc3BvbnNlVGltZSA9PT0gdW5kZWZpbmVkIHx8IHN1bW1hcnkuc2hvd0F2ZXJhZ2VSZXNwb25zZVRpbWV9XG4gICAgICAgIDxkdD57Y29uZmlnLmkxOG4uYXZlcmFnZVJlc3BvbnNlVGltZVRpdGxlfTwvZHQ+XG4gICAgICAgIDxkZD57c3VtbWFyeS50aW1lfXtjb25maWcuaTE4bi5tc308L2RkPlxuICAgICAgey9pZn1cbiAgICA8L2RsPlxuICB7L2lmfVxuPC9zZWN0aW9uPlxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZCRSwyQkFBYyxDQUNaLGVBQWUsQ0FBRSxJQUNuQiJ9 */ +h2.svelte-18y4uo2{margin-top:2rem} +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGlzdG9yeS5zdmVsdGUiLCJzb3VyY2VzIjpbIkhpc3Rvcnkuc3ZlbHRlIl0sInNvdXJjZXNDb250ZW50IjpbIjxzY3JpcHQ+XG4gIGltcG9ydCBMb2FkaW5nIGZyb20gXCIuLi9jb21wb25lbnRzL0xvYWRpbmcuc3ZlbHRlXCI7XG4gIGltcG9ydCB7IG9uTW91bnQgfSBmcm9tIFwic3ZlbHRlXCI7XG4gIGltcG9ydCBjb25maWcgZnJvbSBcIi4uL2RhdGEvY29uZmlnLmpzb25cIjtcbiAgaW1wb3J0IHsgY2FjaGVkUmVzcG9uc2UsIGNyZWF0ZU9jdG9raXQsIGhhbmRsZUVycm9yIH0gZnJvbSBcIi4uL3V0aWxzL2NyZWF0ZU9jdG9raXRcIjtcblxuICBleHBvcnQgbGV0IHNsdWc7XG4gIGxldCBsb2FkaW5nID0gdHJ1ZTtcbiAgY29uc3Qgb2N0b2tpdCA9IGNyZWF0ZU9jdG9raXQoKTtcbiAgY29uc3Qgb3duZXIgPSBjb25maWcub3duZXI7XG4gIGNvbnN0IHJlcG8gPSBjb25maWcucmVwbztcbiAgbGV0IGluY2lkZW50cyA9IFtdO1xuXG4gIG9uTW91bnQoYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBpbmNpZGVudHMgPSAoXG4gICAgICAgIGF3YWl0IGNhY2hlZFJlc3BvbnNlKGBjbG9zZWQtaXNzdWVzLSR7b3duZXJ9LSR7cmVwb30tJHtzbHVnfWAsICgpID0+XG4gICAgICAgICAgb2N0b2tpdC5pc3N1ZXMubGlzdEZvclJlcG8oe1xuICAgICAgICAgICAgb3duZXIsXG4gICAgICAgICAgICByZXBvLFxuICAgICAgICAgICAgc3RhdGU6IFwiY2xvc2VkXCIsXG4gICAgICAgICAgICBmaWx0ZXI6IFwiYWxsXCIsXG4gICAgICAgICAgICBzb3J0OiBcImNyZWF0ZWRcIixcbiAgICAgICAgICAgIGRpcmVjdGlvbjogXCJkZXNjXCIsXG4gICAgICAgICAgICBsYWJlbHM6IGBzdGF0dXMsJHtzbHVnfWAsXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKS5kYXRhO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBoYW5kbGVFcnJvcihlcnJvcik7XG4gICAgfVxuICAgIGluY2lkZW50cyA9IGluY2lkZW50cy5tYXAoKGluY2lkZW50LCBpbmRleCkgPT4ge1xuICAgICAgaW5jaWRlbnQuc2hvd0hlYWRpbmcgPVxuICAgICAgICBpbmRleCA9PT0gMCB8fFxuICAgICAgICBuZXcgRGF0ZShpbmNpZGVudHNbaW5kZXggLSAxXS5jcmVhdGVkX2F0KS50b0xvY2FsZURhdGVTdHJpbmcoKSAhPT1cbiAgICAgICAgICBuZXcgRGF0ZShpbmNpZGVudC5jcmVhdGVkX2F0KS50b0xvY2FsZURhdGVTdHJpbmcoKTtcbiAgICAgIHJldHVybiBpbmNpZGVudDtcbiAgICB9KTtcbiAgICBsb2FkaW5nID0gZmFsc2U7XG4gIH0pO1xuPC9zY3JpcHQ+XG5cbjxzdHlsZT5cbiAgaDIge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gIH1cbjwvc3R5bGU+XG5cbjxzZWN0aW9uPlxuICB7I2lmIGxvYWRpbmd9XG4gICAgPExvYWRpbmcgLz5cbiAgezplbHNlIGlmIGluY2lkZW50cy5sZW5ndGh9XG4gICAgPGgyPntjb25maWcuaTE4bi5wYXN0SW5jaWRlbnRzfTwvaDI+XG4gICAgeyNlYWNoIGluY2lkZW50cyBhcyBpbmNpZGVudH1cbiAgICAgIHsjaWYgaW5jaWRlbnQuc2hvd0hlYWRpbmd9XG4gICAgICAgIDxoMz57bmV3IERhdGUoaW5jaWRlbnQuY3JlYXRlZF9hdCkudG9Mb2NhbGVEYXRlU3RyaW5nKGNvbmZpZy5pMThuLmxvY2FsZSl9PC9oMz5cbiAgICAgIHsvaWZ9XG4gICAgICA8YXJ0aWNsZSBjbGFzcz1cImRvd24gbGluayB7aW5jaWRlbnQudGl0bGUuaW5jbHVkZXMoJ2RlZ3JhZGVkJykgPyAnZGVncmFkZWQnIDogJyd9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoND57aW5jaWRlbnQudGl0bGUucmVwbGFjZSgn8J+bkScsICcnKS5yZXBsYWNlKCfimqDvuI8nLCAnJykudHJpbSgpfTwvaDQ+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICB7QGh0bWwgY29uZmlnLmkxOG4ucGFzdEluY2lkZW50c1Jlc29sdmVkXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAvXFwkTUlOVVRFUy9nLFxuICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAobmV3IERhdGUoaW5jaWRlbnQuY2xvc2VkX2F0KS5nZXRUaW1lKCkgLVxuICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKGluY2lkZW50LmNyZWF0ZWRfYXQpLmdldFRpbWUoKSkgL1xuICAgICAgICAgICAgICAgICAgICA2MDAwMFxuICAgICAgICAgICAgICAgICAgKS50b0ZpeGVkKDApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXCRQT1NUUy9nLCBpbmNpZGVudC5jb21tZW50cyl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZiByXCI+XG4gICAgICAgICAgICA8YSBocmVmPXtgJHtjb25maWcucGF0aH0vaW5jaWRlbnQvJHtpbmNpZGVudC5udW1iZXJ9YH0+XG4gICAgICAgICAgICAgIHtjb25maWcuaTE4bi5pbmNpZGVudFJlcG9ydC5yZXBsYWNlKC9cXCROVU1CRVIvZywgaW5jaWRlbnQubnVtYmVyKX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2FydGljbGU+XG4gICAgey9lYWNofVxuICB7L2lmfVxuPC9zZWN0aW9uPlxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDRSxpQkFBRyxDQUNELFVBQVUsQ0FBRSxJQUNkIn0= */ diff --git a/client/_number_-d4d16748.css b/client/_number_-d4d16748.css new file mode 100644 index 0000000000..88ad9a3e43 --- /dev/null +++ b/client/_number_-d4d16748.css @@ -0,0 +1,2 @@ +footer.svelte-4o16l6{margin-top:2rem}p.svelte-4o16l6{margin-top:0}h2.svelte-4o16l6{line-height:1}.r.svelte-4o16l6{text-align:right} +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5jaWRlbnQuc3ZlbHRlIiwic291cmNlcyI6WyJJbmNpZGVudC5zdmVsdGUiXSwic291cmNlc0NvbnRlbnQiOlsiPHNjcmlwdD5cbiAgaW1wb3J0IExvYWRpbmcgZnJvbSBcIi4uL2NvbXBvbmVudHMvTG9hZGluZy5zdmVsdGVcIjtcbiAgaW1wb3J0IHsgb25Nb3VudCB9IGZyb20gXCJzdmVsdGVcIjtcbiAgaW1wb3J0IHNuYXJrZG93biBmcm9tIFwic25hcmtkb3duXCI7XG4gIGltcG9ydCBjb25maWcgZnJvbSBcIi4uL2RhdGEvY29uZmlnLmpzb25cIjtcbiAgaW1wb3J0IHsgY2FjaGVkUmVzcG9uc2UsIGNyZWF0ZU9jdG9raXQsIGhhbmRsZUVycm9yIH0gZnJvbSBcIi4uL3V0aWxzL2NyZWF0ZU9jdG9raXRcIjtcblxuICBleHBvcnQgbGV0IG51bWJlcjtcblxuICBsZXQgbWQgPSBzbmFya2Rvd247XG4gIGxldCBsb2FkaW5nID0gdHJ1ZTtcbiAgbGV0IGxvYWRpbmdJbmNpZGVudCA9IHRydWU7XG5cbiAgY29uc3Qgb2N0b2tpdCA9IGNyZWF0ZU9jdG9raXQoKTtcbiAgY29uc3Qgb3duZXIgPSBjb25maWcub3duZXI7XG4gIGNvbnN0IHJlcG8gPSBjb25maWcucmVwbztcbiAgbGV0IGNvbW1lbnRzID0gW107XG4gIGxldCBpbmNpZGVudCA9IHt9O1xuXG4gIG9uTW91bnQoYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBpbmNpZGVudCA9IChcbiAgICAgICAgYXdhaXQgY2FjaGVkUmVzcG9uc2UoYGlzc3VlLSR7b3duZXJ9LSR7cmVwb30tJHtudW1iZXJ9YCwgKCkgPT5cbiAgICAgICAgICBvY3Rva2l0Lmlzc3Vlcy5nZXQoe1xuICAgICAgICAgICAgb3duZXIsXG4gICAgICAgICAgICByZXBvLFxuICAgICAgICAgICAgaXNzdWVfbnVtYmVyOiBudW1iZXIsXG4gICAgICAgICAgICBzb3J0OiBcImNyZWF0ZWRcIixcbiAgICAgICAgICAgIGRpcmVjdGlvbjogXCJkZXNjXCIsXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKS5kYXRhO1xuICAgICAgaW5jaWRlbnQubWV0YWRhdGEgPSB7fTtcbiAgICAgIGlmIChpbmNpZGVudC5ib2R5LmluY2x1ZGVzKFwiPCEtLVwiKSkge1xuICAgICAgICBjb25zdCBzdW1tYXJ5ID0gaW5jaWRlbnQuYm9keS5zcGxpdChcIjwhLS1cIilbMV0uc3BsaXQoXCItLT5cIilbMF07XG4gICAgICAgIGNvbnN0IGxpbmVzID0gc3VtbWFyeVxuICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAgIC5maWx0ZXIoKGkpID0+IGkudHJpbSgpKVxuICAgICAgICAgIC5maWx0ZXIoKGkpID0+IGkuaW5jbHVkZXMoXCI6XCIpKTtcbiAgICAgICAgbGluZXMuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgICAgIGluY2lkZW50Lm1ldGFkYXRhW2kuc3BsaXQoLzooLispLylbMF0udHJpbSgpXSA9IGkuc3BsaXQoLzooLispLylbMV0udHJpbSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICBsb2FkaW5nSW5jaWRlbnQgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgY29tbWVudHMgPSAoXG4gICAgICAgIGF3YWl0IGNhY2hlZFJlc3BvbnNlKGBpc3N1ZS1jb21tZW50cy0ke293bmVyfS0ke3JlcG99LSR7bnVtYmVyfWAsICgpID0+XG4gICAgICAgICAgb2N0b2tpdC5pc3N1ZXMubGlzdENvbW1lbnRzKHtcbiAgICAgICAgICAgIG93bmVyLFxuICAgICAgICAgICAgcmVwbyxcbiAgICAgICAgICAgIGlzc3VlX251bWJlcjogbnVtYmVyLFxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICkuZGF0YS5yZXZlcnNlKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGhhbmRsZUVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgbG9hZGluZyA9IGZhbHNlO1xuICB9KTtcbjwvc2NyaXB0PlxuXG48c3ZlbHRlOmhlYWQ+XG4gIDx0aXRsZT57Y29uZmlnLmkxOG4uaW5jaWRlbnRUaXRsZS5yZXBsYWNlKFwiJE5VTUJFUlwiLCBudW1iZXIpfTwvdGl0bGU+XG48L3N2ZWx0ZTpoZWFkPlxuXG48aDI+XG4gIHsjaWYgbG9hZGluZ0luY2lkZW50fVxuICAgIHtjb25maWcuaTE4bi5pbmNpZGVudERldGFpbHN9XG4gIHs6ZWxzZX1cbiAgICB7aW5jaWRlbnQudGl0bGV9XG4gICAgPHNwYW4gY2xhc3M9e2B0YWcgJHtpbmNpZGVudC5zdGF0ZX1gfT5cbiAgICAgIHtpbmNpZGVudC5zdGF0ZSA9PT0gXCJjbG9zZWRcIlxuICAgICAgICA/IGluY2lkZW50Lm1ldGFkYXRhLnN0YXJ0XG4gICAgICAgICAgPyBjb25maWcuaTE4bi5pbmNpZGVudENvbXBsZXRlZFxuICAgICAgICAgIDogY29uZmlnLmkxOG4uaW5jaWRlbnRGaXhlZFxuICAgICAgICA6IGluY2lkZW50Lm1ldGFkYXRhLnN0YXJ0XG4gICAgICAgID8gY29uZmlnLmkxOG4uaW5jaWRlbnRTY2hlZHVsZWRcbiAgICAgICAgOiBjb25maWcuaTE4bi5pbmNpZGVudE9uZ29pbmd9XG4gICAgPC9zcGFuPlxuICB7L2lmfVxuPC9oMj5cblxuPHNlY3Rpb24+XG4gIHsjaWYgbG9hZGluZ31cbiAgICA8TG9hZGluZyAvPlxuICB7OmVsc2V9XG4gICAgPGRpdiBjbGFzcz1cImZcIj5cbiAgICAgIDxkbD5cbiAgICAgICAgeyNpZiBpbmNpZGVudC5tZXRhZGF0YS5zdGFydH1cbiAgICAgICAgICA8ZHQ+XG4gICAgICAgICAgICB7bmV3IERhdGUoaW5jaWRlbnQubWV0YWRhdGEuc3RhcnQpLmdldFRpbWUoKSA8IG5ldyBEYXRlKCkuZ2V0VGltZSgpXG4gICAgICAgICAgICAgID8gY29uZmlnLmkxOG4uc3RhcnRlZEF0XG4gICAgICAgICAgICAgIDogY29uZmlnLmkxOG4uc3RhcnRzQXR9XG4gICAgICAgICAgPC9kdD5cbiAgICAgICAgICA8ZGQ+e25ldyBEYXRlKGluY2lkZW50Lm1ldGFkYXRhLnN0YXJ0KS50b0xvY2FsZVN0cmluZyhjb25maWcuaTE4bi5sb2NhbGUpfTwvZGQ+XG4gICAgICAgIHs6ZWxzZX1cbiAgICAgICAgICA8ZHQ+e2NvbmZpZy5pMThuLmluY2lkZW50T3BlbmVkQXR9PC9kdD5cbiAgICAgICAgICA8ZGQ+e25ldyBEYXRlKGluY2lkZW50LmNyZWF0ZWRfYXQpLnRvTG9jYWxlU3RyaW5nKGNvbmZpZy5pMThuLmxvY2FsZSl9PC9kZD5cbiAgICAgICAgey9pZn1cbiAgICAgICAgeyNpZiBpbmNpZGVudC5tZXRhZGF0YS5zdGFydCAmJiBpbmNpZGVudC5tZXRhZGF0YS5lbmR9XG4gICAgICAgICAgPGR0Pntjb25maWcuaTE4bi5kdXJhdGlvbn08L2R0PlxuICAgICAgICAgIDxkZD5cbiAgICAgICAgICAgIHtjb25maWcuaTE4bi5kdXJhdGlvbk1pbi5yZXBsYWNlKFxuICAgICAgICAgICAgICAvXFwkRFVSQVRJT04vZyxcbiAgICAgICAgICAgICAgTWF0aC5mbG9vcihcbiAgICAgICAgICAgICAgICAobmV3IERhdGUoaW5jaWRlbnQubWV0YWRhdGEuZW5kKS5nZXRUaW1lKCkgLVxuICAgICAgICAgICAgICAgICAgbmV3IERhdGUoaW5jaWRlbnQubWV0YWRhdGEuc3RhcnQpLmdldFRpbWUoKSkgL1xuICAgICAgICAgICAgICAgICAgNjAwMDBcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2RkPlxuICAgICAgICB7OmVsc2UgaWYgaW5jaWRlbnQuY2xvc2VkX2F0fVxuICAgICAgICAgIDxkdD57Y29uZmlnLmkxOG4uaW5jaWRlbnRDbG9zZWRBdH08L2R0PlxuICAgICAgICAgIDxkZD57bmV3IERhdGUoaW5jaWRlbnQuY2xvc2VkX2F0KS50b0xvY2FsZVN0cmluZyhjb25maWcuaTE4bi5sb2NhbGUpfTwvZGQ+XG4gICAgICAgIHsvaWZ9XG4gICAgICA8L2RsPlxuICAgICAgPGRpdiBjbGFzcz1cInJcIj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPGEgaHJlZj17YGh0dHBzOi8vZ2l0aHViLmNvbS8ke2NvbmZpZy5vd25lcn0vJHtjb25maWcucmVwb30vaXNzdWVzLyR7bnVtYmVyfWB9PlxuICAgICAgICAgICAge2NvbmZpZy5pMThuLmluY2lkZW50Vmlld09uR2l0SHVifVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgeyNlYWNoIGNvbW1lbnRzIGFzIGNvbW1lbnR9XG4gICAgICA8YXJ0aWNsZT5cbiAgICAgICAgPHA+XG4gICAgICAgICAge0BodG1sIG1kKGNvbW1lbnQuYm9keSl9XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7QGh0bWwgY29uZmlnLmkxOG4uaW5jaWRlbnRDb21tZW50U3VtbWFyeVxuICAgICAgICAgICAgLnJlcGxhY2UoXG4gICAgICAgICAgICAgIC9cXCREQVRFL2csXG4gICAgICAgICAgICAgIGA8YSBocmVmPSR7Y29tbWVudC5odG1sX3VybH0+JHtuZXcgRGF0ZShjb21tZW50LmNyZWF0ZWRfYXQpLnRvTG9jYWxlU3RyaW5nKGNvbmZpZy5pMThuLmxvY2FsZSl9PC9hPmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXCRBVVRIT1IvZywgYDxhIGhyZWY9JHtjb21tZW50LnVzZXIuaHRtbF91cmx9PkAke2NvbW1lbnQudXNlci5sb2dpbn08L2E+YCl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcnRpY2xlPlxuICAgIHsvZWFjaH1cbiAgey9pZn1cbjwvc2VjdGlvbj5cblxuPGZvb3Rlcj48YSBocmVmPXtjb25maWcucGF0aH0+e2NvbmZpZy5pMThuLmluY2lkZW50QmFja308L2E+PC9mb290ZXI+XG5cbjxzdHlsZT5cbiAgZm9vdGVyIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuICB9XG4gIHAge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgaDIge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG4gIC5yIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuPC9zdHlsZT5cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvSkUsb0JBQU8sQ0FDTCxVQUFVLENBQUUsSUFDZCxDQUNBLGVBQUUsQ0FDQSxVQUFVLENBQUUsQ0FDZCxDQUNBLGdCQUFHLENBQ0QsV0FBVyxDQUFFLENBQ2YsQ0FDQSxnQkFBRyxDQUNELFVBQVUsQ0FBRSxLQUNkIn0= */ diff --git a/client/_number_.68e2dc9e.js b/client/_number_.68e2dc9e.js new file mode 100644 index 0000000000..aa6ffbf44b --- /dev/null +++ b/client/_number_.68e2dc9e.js @@ -0,0 +1,21 @@ +import{S as t,i as e,s as i,e as s,b as n,d as o,f as a,h as r,j as l,t as h,k as c,l as d,o as u,r as f,m as g,a as p,n as m,c as b,g as x,I as _,p as y,A as v,q as w,w as M,x as k,y as S,z as D,u as P,v as O,R as C,T as A,U as T,V as E,W as L,E as R,X as I,Y as z,Z as F,_ as $}from"./client.5d2441db.js";import{h as V,L as B,c as N,a as W}from"./createOctokit.e2a69796.js";function H(t){let e,i,l,h,c,d,u,M,k,S,D,P,O,C,A=t[1].name+"",T=("up"===t[1].status?f.i18n.up:f.i18n.down)+"",E=f.i18n.overallUptimeTitle+"",L=t[1].uptime+"",R=(void 0===t[1].showAverageResponseTime||t[1].showAverageResponseTime)&&Y(t);return{c(){e=s("h1"),i=s("a"),l=g(A),c=p(),d=s("span"),u=g(T),k=p(),S=s("dl"),D=s("dt"),P=g(E),O=s("dd"),C=g(L),R&&R.c(),this.h()},l(t){e=n(t,"H1",{});var s=o(e);i=n(s,"A",{class:!0,href:!0});var r=o(i);l=m(r,A),r.forEach(a),c=b(s),d=n(s,"SPAN",{class:!0});var h=o(d);u=m(h,T),h.forEach(a),s.forEach(a),k=b(t),S=n(t,"DL",{});var f=o(S);D=n(f,"DT",{});var g=o(D);P=m(g,E),g.forEach(a),O=n(f,"DD",{});var p=o(O);C=m(p,L),p.forEach(a),R&&R.l(f),f.forEach(a),this.h()},h(){x(i,"class","no-underline svelte-1d3m0a"),x(i,"href",h=t[1].url.startsWith("$")?"#":t[1].url),x(d,"class",M=_(`tag ${t[1].status}`)+" svelte-1d3m0a")},m(t,s){r(t,e,s),y(e,i),y(i,l),y(e,c),y(e,d),y(d,u),r(t,k,s),r(t,S,s),y(S,D),y(D,P),y(S,O),y(O,C),R&&R.m(S,null)},p(t,e){2&e&&A!==(A=t[1].name+"")&&v(l,A),2&e&&h!==(h=t[1].url.startsWith("$")?"#":t[1].url)&&x(i,"href",h),2&e&&T!==(T=("up"===t[1].status?f.i18n.up:f.i18n.down)+"")&&v(u,T),2&e&&M!==(M=_(`tag ${t[1].status}`)+" svelte-1d3m0a")&&x(d,"class",M),2&e&&L!==(L=t[1].uptime+"")&&v(C,L),void 0===t[1].showAverageResponseTime||t[1].showAverageResponseTime?R?R.p(t,e):(R=Y(t),R.c(),R.m(S,null)):R&&(R.d(1),R=null)},i:w,o:w,d(t){t&&a(e),t&&a(k),t&&a(S),R&&R.d()}}}function j(t){let e,i;return e=new B({}),{c(){M(e.$$.fragment)},l(t){k(e.$$.fragment,t)},m(t,s){S(e,t,s),i=!0},p:w,i(t){i||(d(e.$$.fragment,t),i=!0)},o(t){h(e.$$.fragment,t),i=!1},d(t){D(e,t)}}}function Y(t){let e,i,l,h,c,d=f.i18n.averageResponseTimeTitle+"",u=t[1].time+"",p=f.i18n.ms+"";return{c(){e=s("dt"),i=g(d),l=s("dd"),h=g(u),c=g(p)},l(t){e=n(t,"DT",{});var s=o(e);i=m(s,d),s.forEach(a),l=n(t,"DD",{});var r=o(l);h=m(r,u),c=m(r,p),r.forEach(a)},m(t,s){r(t,e,s),y(e,i),r(t,l,s),y(l,h),y(l,c)},p(t,e){2&e&&u!==(u=t[1].time+"")&&v(h,u)},d(t){t&&a(e),t&&a(l)}}}function U(t){let e,i,u,f;const g=[j,H],p=[];function m(t,e){return t[0]?0:t[1]?1:-1}return~(i=m(t))&&(u=p[i]=g[i](t)),{c(){e=s("section"),u&&u.c()},l(t){e=n(t,"SECTION",{});var i=o(e);u&&u.l(i),i.forEach(a)},m(t,s){r(t,e,s),~i&&p[i].m(e,null),f=!0},p(t,[s]){let n=i;i=m(t),i===n?~i&&p[i].p(t,s):(u&&(l(),h(p[n],1,1,()=>{p[n]=null}),c()),~i?(u=p[i],u?u.p(t,s):(u=p[i]=g[i](t),u.c()),d(u,1),u.m(e,null)):u=null)},i(t){f||(d(u),f=!0)},o(t){h(u),f=!1},d(t){t&&a(e),~i&&p[i].d()}}}function X(t,e,i){let{slug:s}=e,n=!0,{apiBaseUrl:o,userContentBaseUrl:a}=f["status-website"]||{};o||(o="https://api.github.com"),a||(a="https://raw.githubusercontent.com");const r=f.owner,l=f.repo;let h=null;return u(async()=>{try{const t=await fetch(`${a}/${r}/${l}/master/history/summary.json`);i(1,h=(await t.json()).find(t=>t.slug===s))}catch(t){V(t)}i(0,n=!1)}),t.$$set=t=>{"slug"in t&&i(2,s=t.slug)},[n,h,s]}class q extends t{constructor(t){super(),e(this,t,X,U,i,{slug:2})}}function K(t,e,i){const s=t.slice();return s[6]=e[i],s}function G(t){let e,i,l,h,c=f.i18n.pastIncidents+"",d=t[1],u=[];for(let e=0;e{p[n]=null}),c()),~i?(u=p[i],u?u.p(t,s):(u=p[i]=g[i](t),u.c()),d(u,1),u.m(e,null)):u=null)},i(t){f||(d(u),f=!0)},o(t){h(u),f=!1},d(t){t&&a(e),~i&&p[i].d()}}}function et(t,e,i){let{slug:s}=e,n=!0;const o=N(),a=f.owner,r=f.repo;let l=[];return u(async()=>{try{i(1,l=(await W(`closed-issues-${a}-${r}-${s}`,()=>o.issues.listForRepo({owner:a,repo:r,state:"closed",filter:"all",sort:"created",direction:"desc",labels:`status,${s}`}))).data)}catch(t){V(t)}i(1,l=l.map((t,e)=>(t.showHeading=0===e||new Date(l[e-1].created_at).toLocaleDateString()!==new Date(t.created_at).toLocaleDateString(),t))),i(0,n=!1)}),t.$$set=t=>{"slug"in t&&i(2,s=t.slug)},[n,l,s]}class it extends t{constructor(t){super(),e(this,t,et,tt,i,{slug:2})}} +/*! + * Chart.js v3.9.1 + * https://www.chartjs.org + * (c) 2022 Chart.js Contributors + * Released under the MIT License + */ +function st(){}const nt=function(){let t=0;return function(){return t++}}();function ot(t){return null==t}function at(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function rt(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}const lt=t=>("number"==typeof t||t instanceof Number)&&isFinite(+t);function ht(t,e){return lt(t)?t:e}function ct(t,e){return void 0===t?e:t}const dt=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function ut(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)}function ft(t,e,i,s){let n,o,a;if(at(t))if(o=t.length,s)for(n=o-1;n>=0;n--)e.call(i,t[n],n);else for(n=0;nt,x:t=>t.x,y:t=>t.y};function wt(t,e){const i=vt[e]||(vt[e]=function(t){const e=function(t){const e=t.split("."),i=[];let s="";for(const t of e)s+=t,s.endsWith("\\")?s=s.slice(0,-1)+".":(i.push(s),s="");return i}(t);return t=>{for(const i of e){if(""===i)break;t=t&&t[i]}return t}}(e));return i(t)}function Mt(t){return t.charAt(0).toUpperCase()+t.slice(1)}const kt=t=>void 0!==t,St=t=>"function"==typeof t,Dt=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};const Pt=Math.PI,Ot=2*Pt,Ct=Ot+Pt,At=Number.POSITIVE_INFINITY,Tt=Pt/180,Et=Pt/2,Lt=Pt/4,Rt=2*Pt/3,It=Math.log10,zt=Math.sign;function Ft(t){const e=Math.round(t);t=Vt(t,e,t/1e3)?e:t;const i=Math.pow(10,Math.floor(It(t))),s=t/i;return(s<=1?1:s<=2?2:s<=5?5:10)*i}function $t(t){return!isNaN(parseFloat(t))&&isFinite(t)}function Vt(t,e,i){return Math.abs(t-e)l&&h=Math.min(e,i)-s&&t<=Math.max(e,i)+s}function Zt(t,e,i){i=i||(i=>t[i]1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const Jt=(t,e,i,s)=>Zt(t,i,s?s=>t[s][e]<=i:s=>t[s][e]Zt(t,i,s=>t[s][e]>=i);const te=["push","pop","shift","splice","unshift"];function ee(t,e){const i=t._chartjs;if(!i)return;const s=i.listeners,n=s.indexOf(e);-1!==n&&s.splice(n,1),s.length>0||(te.forEach(e=>{delete t[e]}),delete t._chartjs)}function ie(t){const e=new Set;let i,s;for(i=0,s=t.length;iArray.prototype.slice.call(t));let n=!1,o=[];return function(...i){o=s(i),n||(n=!0,se.call(window,()=>{n=!1,t.apply(e,o)}))}}const oe=t=>"start"===t?"left":"end"===t?"right":"center",ae=(t,e,i)=>"start"===t?e:"end"===t?i:(e+i)/2;function re(t,e,i){const s=e.length;let n=0,o=s;if(t._sorted){const{iScale:a,_parsed:r}=t,l=a.axis,{min:h,max:c,minDefined:d,maxDefined:u}=a.getUserBounds();d&&(n=Kt(Math.min(Jt(r,a.axis,h).lo,i?s:Jt(e,l,a.getPixelForValue(h)).lo),0,s-1)),o=u?Kt(Math.max(Jt(r,a.axis,c,!0).hi+1,i?0:Jt(e,l,a.getPixelForValue(c),!0).hi+1),n,s)-n:s-n}return{start:n,count:o}}function le(t){const{xScale:e,yScale:i,_scaleRanges:s}=t,n={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!s)return t._scaleRanges=n,!0;const o=s.xmin!==e.min||s.xmax!==e.max||s.ymin!==i.min||s.ymax!==i.max;return Object.assign(s,n),o}const he=t=>0===t||1===t,ce=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*Ot/i),de=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*Ot/i)+1,ue={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*Et),easeOutSine:t=>Math.sin(t*Et),easeInOutSine:t=>-.5*(Math.cos(Pt*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>he(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>he(t)?t:ce(t,.075,.3),easeOutElastic:t=>he(t)?t:de(t,.075,.3),easeInOutElastic(t){const e=.1125;return he(t)?t:t<.5?.5*ce(2*t,e,.45):.5+.5*de(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-ue.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375},easeInOutBounce:t=>t<.5?.5*ue.easeInBounce(2*t):.5*ue.easeOutBounce(2*t-1)+.5}; +/*! + * @kurkle/color v0.2.1 + * https://github.com/kurkle/color#readme + * (c) 2022 Jukka Kurkela + * Released under the MIT License + */ +function fe(t){return t+.5|0}const ge=(t,e,i)=>Math.max(Math.min(t,i),e);function pe(t){return ge(fe(2.55*t),0,255)}function me(t){return ge(fe(255*t),0,255)}function be(t){return ge(fe(t/2.55)/100,0,1)}function xe(t){return ge(fe(100*t),0,100)}const _e={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},ye=[..."0123456789ABCDEF"],ve=t=>ye[15&t],we=t=>ye[(240&t)>>4]+ye[15&t],Me=t=>(240&t)>>4==(15&t);function ke(t){var e=(t=>Me(t.r)&&Me(t.g)&&Me(t.b)&&Me(t.a))(t)?ve:we;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const Se=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function De(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Pe(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Oe(t,e,i){const s=De(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function Ce(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e>16&255,o>>8&255,255&o]}return t}(),ze.transparent=[0,0,0,0]);const e=ze[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $e=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const Ve=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Be=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Ne(t,e,i){if(t){let s=Ce(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),s=Te(s),t.r=s[0],t.g=s[1],t.b=s[2]}}function We(t,e){return t?Object.assign(e||{},t):t}function He(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=me(t[3]))):(e=We(t,{r:0,g:0,b:0,a:1})).a=me(e.a),e}function je(t){return"r"===t.charAt(0)?function(t){const e=$e.exec(t);let i,s,n,o=255;if(e){if(e[7]!==i){const t=+e[7];o=e[8]?pe(t):ge(255*t,0,255)}return i=+e[1],s=+e[3],n=+e[5],i=255&(e[2]?pe(i):ge(i,0,255)),s=255&(e[4]?pe(s):ge(s,0,255)),n=255&(e[6]?pe(n):ge(n,0,255)),{r:i,g:s,b:n,a:o}}}(t):Le(t)}class Ye{constructor(t){if(t instanceof Ye)return t;const e=typeof t;let i;var s,n,o;"object"===e?i=He(t):"string"===e&&(o=(s=t).length,"#"===s[0]&&(4===o||5===o?n={r:255&17*_e[s[1]],g:255&17*_e[s[2]],b:255&17*_e[s[3]],a:5===o?17*_e[s[4]]:255}:7!==o&&9!==o||(n={r:_e[s[1]]<<4|_e[s[2]],g:_e[s[3]]<<4|_e[s[4]],b:_e[s[5]]<<4|_e[s[6]],a:9===o?_e[s[7]]<<4|_e[s[8]]:255})),i=n||Fe(t)||je(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=We(this._rgb);return t&&(t.a=be(t.a)),t}set rgb(t){this._rgb=He(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${be(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):void 0;var t}hexString(){return this._valid?ke(this._rgb):void 0}hslString(){return this._valid?function(t){if(!t)return;const e=Ce(t),i=e[0],s=xe(e[1]),n=xe(e[2]);return t.a<255?`hsla(${i}, ${s}%, ${n}%, ${be(t.a)})`:`hsl(${i}, ${s}%, ${n}%)`}(this._rgb):void 0}mix(t,e){if(t){const i=this.rgb,s=t.rgb;let n;const o=e===n?.5:e,a=2*o-1,r=i.a-s.a,l=((a*r===-1?a:(a+r)/(1+a*r))+1)/2;n=1-l,i.r=255&l*i.r+n*s.r+.5,i.g=255&l*i.g+n*s.g+.5,i.b=255&l*i.b+n*s.b+.5,i.a=o*i.a+(1-o)*s.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=function(t,e,i){const s=Be(be(t.r)),n=Be(be(t.g)),o=Be(be(t.b));return{r:me(Ve(s+i*(Be(be(e.r))-s))),g:me(Ve(n+i*(Be(be(e.g))-n))),b:me(Ve(o+i*(Be(be(e.b))-o))),a:t.a+i*(e.a-t.a)}}(this._rgb,t._rgb,e)),this}clone(){return new Ye(this.rgb)}alpha(t){return this._rgb.a=me(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=fe(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return Ne(this._rgb,2,t),this}darken(t){return Ne(this._rgb,2,-t),this}saturate(t){return Ne(this._rgb,1,t),this}desaturate(t){return Ne(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=Ce(t);i[0]=Ee(i[0]+e),i=Te(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function Ue(t){return new Ye(t)}function Xe(t){if(t&&"object"==typeof t){const e=t.toString();return"[object CanvasPattern]"===e||"[object CanvasGradient]"===e}return!1}function qe(t){return Xe(t)?t:Ue(t)}function Ke(t){return Xe(t)?t:Ue(t).saturate(.5).darken(.1).hexString()}const Ge=Object.create(null),Ze=Object.create(null);function Je(t,e){if(!e)return t;const i=e.split(".");for(let e=0,s=i.length;et.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>Ke(e.backgroundColor),this.hoverBorderColor=(t,e)=>Ke(e.borderColor),this.hoverColor=(t,e)=>Ke(e.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t)}set(t,e){return Qe(this,t,e)}get(t){return Je(this,t)}describe(t,e){return Qe(Ze,t,e)}override(t,e){return Qe(Ge,t,e)}route(t,e,i,s){const n=Je(this,t),o=Je(this,i),a="_"+e;Object.defineProperties(n,{[a]:{value:n[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[a],e=o[s];return rt(t)?Object.assign({},e,t):ct(t,e)},set(t){this[a]=t}}})}}({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}});function ei(t,e,i,s,n){let o=e[n];return o||(o=e[n]=t.measureText(n).width,i.push(n)),o>s&&(s=o),s}function ii(t,e,i,s){let n=(s=s||{}).data=s.data||{},o=s.garbageCollect=s.garbageCollect||[];s.font!==e&&(n=s.data={},o=s.garbageCollect=[],s.font=e),t.save(),t.font=e;let a=0;const r=i.length;let l,h,c,d,u;for(l=0;li.length){for(l=0;l0&&t.stroke()}}function ri(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.xe.top-i&&t.y0&&""!==o.strokeColor;let l,h;for(t.save(),t.font=n.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]);ot(e.rotation)||t.rotate(e.rotation);e.color&&(t.fillStyle=e.color);e.textAlign&&(t.textAlign=e.textAlign);e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,o),l=0;l+t||0;function _i(t,e){const i={},s=rt(e),n=s?Object.keys(e):e,o=rt(t)?s?i=>ct(t[i],t[e[i]]):e=>t[e]:()=>t;for(const t of n)i[t]=xi(o(t));return i}function yi(t){return _i(t,{top:"y",right:"x",bottom:"y",left:"x"})}function vi(t){return _i(t,["topLeft","topRight","bottomLeft","bottomRight"])}function wi(t){const e=yi(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function Mi(t,e){t=t||{},e=e||ti.font;let i=ct(t.size,e.size);"string"==typeof i&&(i=parseInt(i,10));let s=ct(t.style,e.style);s&&!(""+s).match(mi)&&(console.warn('Invalid font style specified: "'+s+'"'),s="");const n={family:ct(t.family,e.family),lineHeight:bi(ct(t.lineHeight,e.lineHeight),i),size:i,style:s,weight:ct(t.weight,e.weight),string:""};return n.string=function(t){return!t||ot(t.size)||ot(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(n),n}function ki(t,e,i,s){let n,o,a,r=!0;for(n=0,o=t.length;nt[0]){kt(s)||(s=Fi("_fallback",t));const o={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:i,_fallback:s,_getTarget:n,override:n=>Di([n,...t],e,i,s)};return new Proxy(o,{deleteProperty:(e,i)=>(delete e[i],delete e._keys,delete t[0][i],!0),get:(i,s)=>Ti(i,s,()=>function(t,e,i,s){let n;for(const o of e)if(n=Fi(Ci(o,t),i),kt(n))return Ai(t,n)?Ii(i,s,t,n):n}(s,e,t,i)),getOwnPropertyDescriptor:(t,e)=>Reflect.getOwnPropertyDescriptor(t._scopes[0],e),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(t,e)=>$i(t).includes(e),ownKeys:t=>$i(t),set(t,e,i){const s=t._storage||(t._storage=n());return t[e]=s[e]=i,delete t._keys,!0}})}function Pi(t,e,i,s){const n={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:Oi(t,s),setContext:e=>Pi(t,e,i,s),override:n=>Pi(t.override(n),e,i,s)};return new Proxy(n,{deleteProperty:(e,i)=>(delete e[i],delete t[i],!0),get:(t,e,i)=>Ti(t,e,()=>function(t,e,i){const{_proxy:s,_context:n,_subProxy:o,_descriptors:a}=t;let r=s[e];St(r)&&a.isScriptable(e)&&(r=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_stack:r}=i;if(r.has(t))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+t);r.add(t),e=e(o,a||s),r.delete(t),Ai(t,e)&&(e=Ii(n._scopes,n,t,e));return e}(e,r,t,i));at(r)&&r.length&&(r=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_descriptors:r}=i;if(kt(o.index)&&s(t))e=e[o.index%e.length];else if(rt(e[0])){const i=e,s=n._scopes.filter(t=>t!==i);e=[];for(const l of i){const i=Ii(s,n,t,l);e.push(Pi(i,o,a&&a[t],r))}}return e}(e,r,t,a.isIndexable));Ai(e,r)&&(r=Pi(r,n,o&&o[e],a));return r}(t,e,i)),getOwnPropertyDescriptor:(e,i)=>e._descriptors.allKeys?Reflect.has(t,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,i),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(e,i)=>Reflect.has(t,i),ownKeys:()=>Reflect.ownKeys(t),set:(e,i,s)=>(t[i]=s,delete e[i],!0)})}function Oi(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:s=e.indexable,_allKeys:n=e.allKeys}=t;return{allKeys:n,scriptable:i,indexable:s,isScriptable:St(i)?i:()=>i,isIndexable:St(s)?s:()=>s}}const Ci=(t,e)=>t?t+Mt(e):e,Ai=(t,e)=>rt(e)&&"adapters"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function Ti(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e))return t[e];const s=i();return t[e]=s,s}function Ei(t,e,i){return St(t)?t(e,i):t}const Li=(t,e)=>!0===t?e:"string"==typeof t?wt(e,t):void 0;function Ri(t,e,i,s,n){for(const o of e){const e=Li(i,o);if(e){t.add(e);const o=Ei(e._fallback,i,n);if(kt(o)&&o!==i&&o!==s)return o}else if(!1===e&&kt(s)&&i!==s)return null}return!1}function Ii(t,e,i,s){const n=e._rootScopes,o=Ei(e._fallback,i,s),a=[...t,...n],r=new Set;r.add(s);let l=zi(r,a,i,o||i,s);return null!==l&&((!kt(o)||o===i||(l=zi(r,a,o,l,s),null!==l))&&Di(Array.from(r),[""],n,o,()=>function(t,e,i){const s=t._getTarget();e in s||(s[e]={});const n=s[e];if(at(n)&&rt(i))return i;return n}(e,i,s)))}function zi(t,e,i,s,n){for(;i;)i=Ri(t,e,i,s,n);return i}function Fi(t,e){for(const i of e){if(!i)continue;const e=i[t];if(kt(e))return e}}function $i(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const i of t)for(const t of Object.keys(i).filter(t=>!t.startsWith("_")))e.add(t);return Array.from(e)}(t._scopes)),e}function Vi(t,e,i,s){const{iScale:n}=t,{key:o="r"}=this._parsing,a=new Array(s);let r,l,h,c;for(r=0,l=s;re"x"===t?"y":"x";function Hi(t,e,i,s){const n=t.skip?e:t,o=e,a=i.skip?e:i,r=Yt(o,n),l=Yt(a,o);let h=r/(r+l),c=l/(r+l);h=isNaN(h)?0:h,c=isNaN(c)?0:c;const d=s*h,u=s*c;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function ji(t,e="x"){const i=Wi(e),s=t.length,n=Array(s).fill(0),o=Array(s);let a,r,l,h=Ni(t,0);for(a=0;a!t.skip)),"monotone"===e.cubicInterpolationMode)ji(t,n);else{let i=s?t[t.length-1]:t[0];for(o=0,a=t.length;owindow.getComputedStyle(t,null);const Zi=["top","right","bottom","left"];function Ji(t,e,i){const s={};i=i?"-"+i:"";for(let n=0;n<4;n++){const o=Zi[n];s[o]=parseFloat(t[e+"-"+o+i])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}function Qi(t,e){if("native"in t)return t;const{canvas:i,currentDevicePixelRatio:s}=e,n=Gi(i),o="border-box"===n.boxSizing,a=Ji(n,"padding"),r=Ji(n,"border","width"),{x:l,y:h,box:c}=function(t,e){const i=t.touches,s=i&&i.length?i[0]:t,{offsetX:n,offsetY:o}=s;let a,r,l=!1;if(((t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot))(n,o,t.target))a=n,r=o;else{const t=e.getBoundingClientRect();a=s.clientX-t.left,r=s.clientY-t.top,l=!0}return{x:a,y:r,box:l}}(t,i),d=a.left+(c&&r.left),u=a.top+(c&&r.top);let{width:f,height:g}=e;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)/f*i.width/s),y:Math.round((h-u)/g*i.height/s)}}const ts=t=>Math.round(10*t)/10;function es(t,e,i,s){const n=Gi(t),o=Ji(n,"margin"),a=Ki(n.maxWidth,t,"clientWidth")||At,r=Ki(n.maxHeight,t,"clientHeight")||At,l=function(t,e,i){let s,n;if(void 0===e||void 0===i){const o=qi(t);if(o){const t=o.getBoundingClientRect(),a=Gi(o),r=Ji(a,"border","width"),l=Ji(a,"padding");e=t.width-l.width-r.width,i=t.height-l.height-r.height,s=Ki(a.maxWidth,o,"clientWidth"),n=Ki(a.maxHeight,o,"clientHeight")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:s||At,maxHeight:n||At}}(t,e,i);let{width:h,height:c}=l;if("content-box"===n.boxSizing){const t=Ji(n,"border","width"),e=Ji(n,"padding");h-=e.width+t.width,c-=e.height+t.height}return h=Math.max(0,h-o.width),c=Math.max(0,s?Math.floor(h/s):c-o.height),h=ts(Math.min(h,a,l.maxWidth)),c=ts(Math.min(c,r,l.maxHeight)),h&&!c&&(c=ts(h/2)),{width:h,height:c}}function is(t,e,i){const s=e||1,n=Math.floor(t.height*s),o=Math.floor(t.width*s);t.height=n/s,t.width=o/s;const a=t.canvas;return a.style&&(i||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==s||a.height!==n||a.width!==o)&&(t.currentDevicePixelRatio=s,a.height=n,a.width=o,t.ctx.setTransform(s,0,0,s,0,0),!0)}const ss=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(t){}return t}();function ns(t,e){const i=function(t,e){return Gi(t).getPropertyValue(e)}(t,e),s=i&&i.match(/^(\d+)(\.\d+)?px$/);return s?+s[1]:void 0}function os(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function as(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:"middle"===s?i<.5?t.y:e.y:"after"===s?i<1?t.y:e.y:i>0?e.y:t.y}}function rs(t,e,i,s){const n={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=os(t,n,i),r=os(n,o,i),l=os(o,e,i),h=os(a,r,i),c=os(r,l,i);return os(h,c,i)}const ls=new Map;function hs(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let s=ls.get(i);return s||(s=new Intl.NumberFormat(t,e),ls.set(i,s)),s}(e,i).format(t)}function cs(t,e,i){return t?function(t,e){return{x:i=>t+t+e-i,setWidth(t){e=t},textAlign:t=>"center"===t?t:"right"===t?"left":"right",xPlus:(t,e)=>t-e,leftForLtr:(t,e)=>t-e}}(e,i):{x:t=>t,setWidth(t){},textAlign:t=>t,xPlus:(t,e)=>t+e,leftForLtr:(t,e)=>t}}function ds(t,e){let i,s;"ltr"!==e&&"rtl"!==e||(i=t.canvas.style,s=[i.getPropertyValue("direction"),i.getPropertyPriority("direction")],i.setProperty("direction",e,"important"),t.prevTextDirection=s)}function us(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function fs(t){return"angle"===t?{between:qt,compare:Ut,normalize:Xt}:{between:Gt,compare:(t,e)=>t-e,normalize:t=>t}}function gs({start:t,end:e,count:i,loop:s,style:n}){return{start:t%i,end:e%i,loop:s&&(e-t+1)%i==0,style:n}}function ps(t,e,i){if(!i)return[t];const{property:s,start:n,end:o}=i,a=e.length,{compare:r,between:l,normalize:h}=fs(s),{start:c,end:d,loop:u,style:f}=function(t,e,i){const{property:s,start:n,end:o}=i,{between:a,normalize:r}=fs(s),l=e.length;let h,c,{start:d,end:u,loop:f}=t;if(f){for(d+=l,u+=l,h=0,c=l;hx||l(n,b,p)&&0!==r(n,b),v=()=>!x||0===r(o,p)||l(o,b,p);for(let t=c,i=c;t<=d;++t)m=e[t%a],m.skip||(p=h(m[s]),p!==b&&(x=l(p,n,o),null===_&&y()&&(_=0===r(p,n)?t:i),null!==_&&v()&&(g.push(gs({start:_,end:t,loop:u,count:a,style:f})),_=null),i=t,b=p));return null!==_&&g.push(gs({start:_,end:d,loop:u,count:a,style:f})),g}function ms(t,e){const i=[],s=t.segments;for(let n=0;ns({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)}))}_refresh(){this._request||(this._running=!0,this._request=se.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(t=Date.now()){let e=0;this._charts.forEach((i,s)=>{if(!i.running||!i.items.length)return;const n=i.items;let o,a=n.length-1,r=!1;for(;a>=0;--a)o=n[a],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),r=!0):(n[a]=n[n.length-1],n.pop());r&&(s.draw(),this._notify(s,i,t,"progress")),n.length||(i.running=!1,this._notify(s,i,t,"complete"),i.initial=!1),e+=n.length}),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce((t,e)=>Math.max(t,e._duration),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}};const vs="transparent",ws={boolean:(t,e,i)=>i>.5?e:t,color(t,e,i){const s=qe(t||vs),n=s.valid&&qe(e||vs);return n&&n.valid?n.mix(s,i).hexString():e},number:(t,e,i)=>t+(e-t)*i};class Ms{constructor(t,e,i,s){const n=e[i];s=ki([t.to,s,n,t.from]);const o=ki([t.from,n,s]);this._active=!0,this._fn=t.fn||ws[t.type||typeof o],this._easing=ue[t.easing]||ue.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);const s=this._target[this._prop],n=i-this._start,o=this._duration-n;this._start=i,this._duration=Math.floor(Math.max(o,t.duration)),this._total+=n,this._loop=!!t.loop,this._to=ki([t.to,e,s,t.from]),this._from=ki([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,i=this._duration,s=this._prop,n=this._from,o=this._loop,a=this._to;let r;if(this._active=n!==a&&(o||e1?2-r:r,r=this._easing(Math.min(1,Math.max(0,r))),this._target[s]=this._fn(n,a,r))}wait(){const t=this._promises||(this._promises=[]);return new Promise((e,i)=>{t.push({res:e,rej:i})})}_notify(t){const e=t?"res":"rej",i=this._promises||[];for(let t=0;t"onProgress"!==t&&"onComplete"!==t&&"fn"!==t}),ti.set("animations",{colors:{type:"color",properties:["color","borderColor","backgroundColor"]},numbers:{type:"number",properties:["x","y","borderWidth","radius","tension"]}}),ti.describe("animations",{_fallback:"animation"}),ti.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>0|t}}}});class Ss{constructor(t,e){this._chart=t,this._properties=new Map,this.configure(e)}configure(t){if(!rt(t))return;const e=this._properties;Object.getOwnPropertyNames(t).forEach(i=>{const s=t[i];if(!rt(s))return;const n={};for(const t of ks)n[t]=s[t];(at(s.properties)&&s.properties||[i]).forEach(t=>{t!==i&&e.has(t)||e.set(t,n)})})}_animateOptions(t,e){const i=e.options,s=function(t,e){if(!e)return;let i=t.options;if(!i)return void(t.options=e);i.$shared&&(t.options=i=Object.assign({},i,{$shared:!1,$animations:{}}));return i}(t,i);if(!s)return[];const n=this._createAnimations(s,i);return i.$shared&&function(t,e){const i=[],s=Object.keys(e);for(let e=0;e{t.options=i},()=>{}),n}_createAnimations(t,e){const i=this._properties,s=[],n=t.$animations||(t.$animations={}),o=Object.keys(e),a=Date.now();let r;for(r=o.length-1;r>=0;--r){const l=o[r];if("$"===l.charAt(0))continue;if("options"===l){s.push(...this._animateOptions(t,e));continue}const h=e[l];let c=n[l];const d=i.get(l);if(c){if(d&&c.active()){c.update(d,h,a);continue}c.cancel()}d&&d.duration?(n[l]=c=new Ms(d,t,l,h),s.push(c)):t[l]=h}return s}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const i=this._createAnimations(t,e);return i.length?(ys.add(this._chart,i),!0):void 0}}function Ds(t,e){const i=t&&t.options||{},s=i.reverse,n=void 0===i.min?e:0,o=void 0===i.max?e:0;return{start:s?o:n,end:s?n:o}}function Ps(t,e){const i=[],s=t._getSortedDatasetMetas(e);let n,o;for(n=0,o=s.length;n0||!i&&e<0)return n.index}return null}function Es(t,e){const{chart:i,_cachedMeta:s}=t,n=i._stacks||(i._stacks={}),{iScale:o,vScale:a,index:r}=s,l=o.axis,h=a.axis,c=function(t,e,i){return`${t.id}.${e.id}.${i.stack||i.type}`}(o,a,s),d=e.length;let u;for(let t=0;ti[t].axis===e).shift()}function Rs(t,e){const i=t.controller.index,s=t.vScale&&t.vScale.axis;if(s){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[s]||void 0===e[s][i])return;delete e[s][i]}}}const Is=t=>"reset"===t||"none"===t,zs=(t,e)=>e?t:Object.assign({},t);class Fs{constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=Cs(t.vScale,t),this.addElements()}updateIndex(t){this.index!==t&&Rs(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(t,e,i,s)=>"x"===t?e:"r"===t?s:i,n=e.xAxisID=ct(i.xAxisID,Ls(t,"x")),o=e.yAxisID=ct(i.yAxisID,Ls(t,"y")),a=e.rAxisID=ct(i.rAxisID,Ls(t,"r")),r=e.indexAxis,l=e.iAxisID=s(r,n,o,a),h=e.vAxisID=s(r,o,n,a);e.xScale=this.getScaleForId(n),e.yScale=this.getScaleForId(o),e.rScale=this.getScaleForId(a),e.iScale=this.getScaleForId(l),e.vScale=this.getScaleForId(h)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&ee(this._data,this),t._stacked&&Rs(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if(rt(e))this._data=function(t){const e=Object.keys(t),i=new Array(e.length);let s,n,o;for(s=0,n=e.length;s{const e="_onData"+Mt(t),i=s[t];Object.defineProperty(s,t,{configurable:!0,enumerable:!1,value(...t){const n=i.apply(this,t);return s._chartjs.listeners.forEach(i=>{"function"==typeof i[e]&&i[e](...t)}),n}})}))),this._syncList=[],this._data=e}var s,n}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const e=this._cachedMeta,i=this.getDataset();let s=!1;this._dataCheck();const n=e._stacked;e._stacked=Cs(e.vScale,e),e.stack!==i.stack&&(s=!0,Rs(e),e.stack=i.stack),this._resyncElements(t),(s||n!==e._stacked)&&Es(this,e._parsed)}configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type),i=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){const{_cachedMeta:i,_data:s}=this,{iScale:n,_stacked:o}=i,a=n.axis;let r,l,h,c=0===t&&e===s.length||i._sorted,d=t>0&&i._parsed[t-1];if(!1===this._parsing)i._parsed=s,i._sorted=!0,h=s;else{h=at(s[t])?this.parseArrayData(i,s,t,e):rt(s[t])?this.parseObjectData(i,s,t,e):this.parsePrimitiveData(i,s,t,e);const n=()=>null===l[a]||d&&l[a]t&&!e.hidden&&e._stacked&&{keys:Ps(i,!0),values:null})(e,i,this.chart),l={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:h,max:c}=function(t){const{min:e,max:i,minDefined:s,maxDefined:n}=t.getUserBounds();return{min:s?e:Number.NEGATIVE_INFINITY,max:n?i:Number.POSITIVE_INFINITY}}(a);let d,u;function f(){u=s[d];const e=u[a.axis];return!lt(u[t.axis])||h>e||c=0;--d)if(!f()){this.updateRangeFromParsed(l,t,u,r);break}return l}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let s,n,o;for(s=0,n=e.length;s=0&&tthis.getContext(i,s),c);return f.$shared&&(f.$shared=r,n[o]=Object.freeze(zs(f,r))),f}_resolveAnimations(t,e,i){const s=this.chart,n=this._cachedDataOpts,o=`animation-${e}`,a=n[o];if(a)return a;let r;if(!1!==s.options.animation){const s=this.chart.config,n=s.datasetAnimationScopeKeys(this._type,e),o=s.getOptionScopes(this.getDataset(),n);r=s.createResolver(o,this.getContext(t,i,e))}const l=new Ss(s,r&&r.animations);return r&&r._cacheable&&(n[o]=Object.freeze(l)),l}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||Is(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const i=this.resolveDataElementOptions(t,e),s=this._sharedOptions,n=this.getSharedOptions(i),o=this.includeOptions(e,n)||n!==s;return this.updateSharedOptions(n,e,i),{sharedOptions:n,includeOptions:o}}updateElement(t,e,i,s){Is(s)?Object.assign(t,i):this._resolveAnimations(e,s).update(t,i)}updateSharedOptions(t,e,i){t&&!Is(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,s){t.active=s;const n=this.getStyle(e,s);this._resolveAnimations(e,i,s).update(t,{options:!s&&this.getSharedOptions(n)||n})}removeHoverStyle(t,e,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,i=this._cachedMeta.data;for(const[t,e,i]of this._syncList)this[t](e,i);this._syncList=[];const s=i.length,n=e.length,o=Math.min(n,s);o&&this.parse(0,o),n>s?this._insertElements(s,n-s,t):n{for(t.length+=e,a=t.length-1;a>=o;a--)t[a]=t[a-e]};for(r(n),a=t;at-e))}return t._cache.$bar}(e,t.type);let s,n,o,a,r=e._length;const l=()=>{32767!==o&&-32768!==o&&(kt(a)&&(r=Math.min(r,Math.abs(o-a)||r)),a=o)};for(s=0,n=i.length;sMath.abs(r)&&(l=r,h=a),e[i.axis]=h,e._custom={barStart:l,barEnd:h,start:n,end:o,min:a,max:r}}(t,e,i,s):e[i.axis]=i.parse(t,s),e}function Bs(t,e,i,s){const n=t.iScale,o=t.vScale,a=n.getLabels(),r=n===o,l=[];let h,c,d,u;for(h=i,c=i+s;ht.x,i="left",s="right"):(e=t.baset.controller.options.grouped),n=i.options.stacked,o=[],a=t=>{const i=t.controller.getParsed(e),s=i&&i[t.vScale.axis];if(ot(s)||isNaN(s))return!0};for(const i of s)if((void 0===e||!a(i))&&((!1===n||-1===o.indexOf(i.stack)||void 0===n&&void 0===i.stack)&&o.push(i.stack),i.index===t))break;return o.length||o.push(void 0),o}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,i){const s=this._getStacks(t,i),n=void 0!==e?s.indexOf(e):-1;return-1===n?s.length-1:n}_getRuler(){const t=this.options,e=this._cachedMeta,i=e.iScale,s=[];let n,o;for(n=0,o=e.data.length;n=i?1:-1)}(c,e,o)*n,d===o&&(p-=c/2);const t=e.getPixelForDecimal(0),i=e.getPixelForDecimal(1),s=Math.min(t,i),a=Math.max(t,i);p=Math.max(Math.min(p,a),s),h=p+c}if(p===e.getPixelForValue(o)){const t=zt(c)*e.getLineWidthForValue(o)/2;p+=t,c-=t}return{size:c,base:p,head:h,center:h+c/2}}_calculateBarIndexPixels(t,e){const i=e.scale,s=this.options,n=s.skipNull,o=ct(s.maxBarThickness,1/0);let a,r;if(e.grouped){const i=n?this._getStackCount(t):e.stackCount,l="flex"===s.barThickness?function(t,e,i,s){const n=e.pixels,o=n[t];let a=t>0?n[t-1]:null,r=t=0;--i)e=Math.max(e,t[i].size(this.resolveDataElementOptions(i))/2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,{xScale:i,yScale:s}=e,n=this.getParsed(t),o=i.getLabelForValue(n.x),a=s.getLabelForValue(n.y),r=n._custom;return{label:e.label,value:"("+o+", "+a+(r?", "+r:"")+")"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,i,s){const n="reset"===s,{iScale:o,vScale:a}=this._cachedMeta,{sharedOptions:r,includeOptions:l}=this._getSharedOptions(e,s),h=o.axis,c=a.axis;for(let d=e;d""}}}};class qs extends Fs{constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const i=this.getDataset().data,s=this._cachedMeta;if(!1===this._parsing)s._parsed=i;else{let n,o,a=t=>+i[t];if(rt(i[t])){const{key:t="value"}=this._parsing;a=e=>+wt(i[e],t)}for(n=t,o=t+e;nqt(t,r,l,!0)?1:Math.max(e,e*i,s,s*i),g=(t,e,s)=>qt(t,r,l,!0)?-1:Math.min(e,e*i,s,s*i),p=f(0,h,d),m=f(Et,c,u),b=g(Pt,h,d),x=g(Pt+Et,c,u);s=(p-b)/2,n=(m-x)/2,o=-(p+b)/2,a=-(m+x)/2}return{ratioX:s,ratioY:n,offsetX:o,offsetY:a}}(u,d,r),b=(i.width-o)/f,x=(i.height-o)/g,_=Math.max(Math.min(b,x)/2,0),y=dt(this.options.radius,_),v=(y-Math.max(y*r,0))/this._getVisibleDatasetWeightTotal();this.offsetX=p*y,this.offsetY=m*y,s.total=this.calculateTotal(),this.outerRadius=y-v*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-v*c,0),this.updateElements(n,0,n.length,t)}_circumference(t,e){const i=this.options,s=this._cachedMeta,n=this._getCircumference();return e&&i.animation.animateRotate||!this.chart.getDataVisibility(t)||null===s._parsed[t]||s.data[t].hidden?0:this.calculateCircumference(s._parsed[t]*n/Ot)}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.chartArea,r=o.options.animation,l=(a.left+a.right)/2,h=(a.top+a.bottom)/2,c=n&&r.animateScale,d=c?0:this.innerRadius,u=c?0:this.outerRadius,{sharedOptions:f,includeOptions:g}=this._getSharedOptions(e,s);let p,m=this._getRotation();for(p=0;p0&&!isNaN(t)?Ot*(Math.abs(t)/e):0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=hs(e._parsed[t],i.options.locale);return{label:s[t]||"",value:n}}getMaxBorderWidth(t){let e=0;const i=this.chart;let s,n,o,a,r;if(!t)for(s=0,n=i.data.datasets.length;s"spacing"!==t,_indexable:t=>"spacing"!==t},qs.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:i}}=t.legend.options;return e.labels.map((e,s)=>{const n=t.getDatasetMeta(0).controller.getStyle(s);return{text:e,fillStyle:n.backgroundColor,strokeStyle:n.borderColor,lineWidth:n.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(s),index:s}})}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}},tooltip:{callbacks:{title:()=>"",label(t){let e=t.label;const i=": "+t.formattedValue;return at(e)?(e=e.slice(),e[0]+=i):e+=i,e}}}}};class Ks extends Fs{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const e=this._cachedMeta,{dataset:i,data:s=[],_dataset:n}=e,o=this.chart._animationsDisabled;let{start:a,count:r}=re(e,s,o);this._drawStart=a,this._drawCount=r,le(e)&&(a=0,r=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!n._decimated,i.points=s;const l=this.resolveDatasetElementOptions(t);this.options.showLine||(l.borderWidth=0),l.segment=this.options.segment,this.updateElement(i,void 0,{animated:!o,options:l},t),this.updateElements(s,a,r,t)}updateElements(t,e,i,s){const n="reset"===s,{iScale:o,vScale:a,_stacked:r,_dataset:l}=this._cachedMeta,{sharedOptions:h,includeOptions:c}=this._getSharedOptions(e,s),d=o.axis,u=a.axis,{spanGaps:f,segment:g}=this.options,p=$t(f)?f:Number.POSITIVE_INFINITY,m=this.chart._animationsDisabled||n||"none"===s;let b=e>0&&this.getParsed(e-1);for(let f=e;f0&&Math.abs(i[d]-b[d])>p,g&&(x.parsed=i,x.raw=l.data[f]),c&&(x.options=h||this.resolveDataElementOptions(f,e.active?"active":s)),m||this.updateElement(e,f,x,s),b=i}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,s=t.data||[];if(!s.length)return i;const n=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,n,o)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}Ks.id="line",Ks.defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1},Ks.overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};class Gs extends Fs{constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=hs(e._parsed[t].r,i.options.locale);return{label:s[t]||"",value:n}}parseObjectData(t,e,i,s){return Vi.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){const t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach((t,i)=>{const s=this.getParsed(i).r;!isNaN(s)&&this.chart.getDataVisibility(i)&&(se.max&&(e.max=s))}),e}_updateRadius(){const t=this.chart,e=t.chartArea,i=t.options,s=Math.min(e.right-e.left,e.bottom-e.top),n=Math.max(s/2,0),o=(n-Math.max(i.cutoutPercentage?n/100*i.cutoutPercentage:1,0))/t.getVisibleDatasetCount();this.outerRadius=n-o*this.index,this.innerRadius=this.outerRadius-o}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.options.animation,r=this._cachedMeta.rScale,l=r.xCenter,h=r.yCenter,c=r.getIndexAngle(0)-.5*Pt;let d,u=c;const f=360/this.countVisibleElements();for(d=0;d{!isNaN(this.getParsed(i).r)&&this.chart.getDataVisibility(i)&&e++}),e}_computeAngle(t,e,i){return this.chart.getDataVisibility(t)?Nt(this.resolveDataElementOptions(t,e).angle||i):0}}Gs.id="polarArea",Gs.defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0},Gs.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:i}}=t.legend.options;return e.labels.map((e,s)=>{const n=t.getDatasetMeta(0).controller.getStyle(s);return{text:e,fillStyle:n.backgroundColor,strokeStyle:n.borderColor,lineWidth:n.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(s),index:s}})}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}},tooltip:{callbacks:{title:()=>"",label:t=>t.chart.data.labels[t.dataIndex]+": "+t.formattedValue}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};class Zs extends qs{}Zs.id="pie",Zs.defaults={cutout:0,rotation:0,circumference:360,radius:"100%"};class Js extends Fs{getLabelAndValue(t){const e=this._cachedMeta.vScale,i=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(i[e.axis])}}parseObjectData(t,e,i,s){return Vi.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta,i=e.dataset,s=e.data||[],n=e.iScale.getLabels();if(i.points=s,"resize"!==t){const e=this.resolveDatasetElementOptions(t);this.options.showLine||(e.borderWidth=0);const o={_loop:!0,_fullLoop:n.length===s.length,options:e};this.updateElement(i,void 0,o,t)}this.updateElements(s,0,s.length,t)}updateElements(t,e,i,s){const n=this._cachedMeta.rScale,o="reset"===s;for(let a=e;a{s[t]=i[t]&&i[t].active()?i[t]._to:this[t]}),s}}Qs.defaults={},Qs.defaultRoutes=void 0;const tn={values:t=>at(t)?t:""+t,numeric(t,e,i){if(0===t)return"0";const s=this.chart.options.locale;let n,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e<1e-4||e>1e15)&&(n="scientific"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const a=It(Math.abs(o)),r=Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),hs(t,s,l)},logarithmic(t,e,i){if(0===t)return"0";const s=t/Math.pow(10,Math.floor(It(t)));return 1===s||2===s||5===s?tn.numeric.call(this,t,e,i):""}};var en={formatters:tn};function sn(t,e){const i=t.options.ticks,s=i.maxTicksLimit||function(t){const e=t.options.offset,i=t._tickSize(),s=t._length/i+(e?0:1),n=t._maxLength/i;return Math.floor(Math.min(s,n))}(t),n=i.major.enabled?function(t){const e=[];let i,s;for(i=0,s=t.length;is)return function(t,e,i,s){let n,o=0,a=i[0];for(s=Math.ceil(s),n=0;nt-e).pop(),e}(s);for(let t=0,e=o.length-1;tn)return e}return Math.max(n,1)}(n,e,s);if(o>0){let t,i;const s=o>1?Math.round((r-a)/(o-1)):null;for(nn(e,l,h,ot(s)?0:a-s,a),t=0,i=o-1;te.lineWidth,tickColor:(t,e)=>e.color,offset:!1,borderDash:[],borderDashOffset:0,borderWidth:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:en.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),ti.route("scale.ticks","color","","color"),ti.route("scale.grid","color","","borderColor"),ti.route("scale.grid","borderColor","","borderColor"),ti.route("scale.title","color","","color"),ti.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&"callback"!==t&&"parser"!==t,_indexable:t=>"borderDash"!==t&&"tickBorderDash"!==t}),ti.describe("scales",{_fallback:"scale"}),ti.describe("scale.ticks",{_scriptable:t=>"backdropPadding"!==t&&"callback"!==t,_indexable:t=>"backdropPadding"!==t});const on=(t,e,i)=>"top"===e||"left"===e?t[e]+i:t[e]-i;function an(t,e){const i=[],s=t.length/e,n=t.length;let o=0;for(;oa+r)))return h}function ln(t){return t.drawTicks?t.tickLength:0}function hn(t,e){if(!t.display)return 0;const i=Mi(t.font,e),s=wi(t.padding);return(at(t.text)?t.text.length:1)*i.lineHeight+s.height}function cn(t,e,i){let s=oe(t);return(i&&"right"!==e||!i&&"right"===e)&&(s=(t=>"left"===t?"right":"right"===t?"left":t)(s)),s}class dn extends Qs{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,e){return t}getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:i,_suggestedMax:s}=this;return t=ht(t,Number.POSITIVE_INFINITY),e=ht(e,Number.NEGATIVE_INFINITY),i=ht(i,Number.POSITIVE_INFINITY),s=ht(s,Number.NEGATIVE_INFINITY),{min:ht(t,i),max:ht(e,s),minDefined:lt(t),maxDefined:lt(e)}}getMinMax(t){let e,{min:i,max:s,minDefined:n,maxDefined:o}=this.getUserBounds();if(n&&o)return{min:i,max:s};const a=this.getMatchingVisibleMetas();for(let r=0,l=a.length;rs?s:i,s=n&&i>s?i:s,{min:ht(i,ht(s,i)),max:ht(s,ht(i,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){ut(this.options.beforeUpdate,[this])}update(t,e,i){const{beginAtZero:s,grace:n,ticks:o}=this.options,a=o.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=function(t,e,i){const{min:s,max:n}=t,o=dt(e,(n-s)/2),a=(t,e)=>i&&0===t?0:t+e;return{min:a(s,-Math.abs(o)),max:a(n,o)}}(this,n,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const r=a=n||i<=1||!this.isHorizontal())return void(this.labelRotation=s);const h=this._getLabelSizes(),c=h.widest.width,d=h.highest.height,u=Kt(this.chart.width-c,0,this.maxWidth);o=t.offset?this.maxWidth/i:u/(i-1),c+6>o&&(o=u/(i-(t.offset?.5:1)),a=this.maxHeight-ln(t.grid)-e.padding-hn(t.title,this.chart.options.font),r=Math.sqrt(c*c+d*d),l=Wt(Math.min(Math.asin(Kt((h.highest.height+6)/o,-1,1)),Math.asin(Kt(a/r,-1,1))-Math.asin(Kt(d/r,-1,1)))),l=Math.max(s,Math.min(n,l))),this.labelRotation=l}afterCalculateLabelRotation(){ut(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){ut(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:n}}=this,o=this._isVisible(),a=this.isHorizontal();if(o){const o=hn(s,e.options.font);if(a?(t.width=this.maxWidth,t.height=ln(n)+o):(t.height=this.maxHeight,t.width=ln(n)+o),i.display&&this.ticks.length){const{first:e,last:s,widest:n,highest:o}=this._getLabelSizes(),r=2*i.padding,l=Nt(this.labelRotation),h=Math.cos(l),c=Math.sin(l);if(a){const e=i.mirror?0:c*n.width+h*o.height;t.height=Math.min(this.maxHeight,t.height+e+r)}else{const e=i.mirror?0:h*n.width+c*o.height;t.width=Math.min(this.maxWidth,t.width+e+r)}this._calculatePadding(e,s,c,h)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,s){const{ticks:{align:n,padding:o},position:a}=this.options,r=0!==this.labelRotation,l="top"!==a&&"x"===this.axis;if(this.isHorizontal()){const a=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let c=0,d=0;r?l?(c=s*t.width,d=i*e.height):(c=i*t.height,d=s*e.width):"start"===n?d=e.width:"end"===n?c=t.width:"inner"!==n&&(c=t.width/2,d=e.width/2),this.paddingLeft=Math.max((c-a+o)*this.width/(this.width-a),0),this.paddingRight=Math.max((d-h+o)*this.width/(this.width-h),0)}else{let i=e.height/2,s=t.height/2;"start"===n?(i=0,s=t.height):"end"===n&&(i=e.height,s=0),this.paddingTop=i+o,this.paddingBottom=s+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){ut(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||"bottom"===e||"x"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,i=t.length;e{const i=t.gc,s=i.length/2;let n;if(s>e){for(n=0;n({width:n[t]||0,height:o[t]||0});return{first:v(0),last:v(e-1),widest:v(_),highest:v(y),widths:n,heights:o}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return Kt(this._alignToPixels?si(this.chart,e,0):e,-32768,32767)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&ta*s?a/i:r/s:r*s0}_computeGridLineItems(t){const e=this.axis,i=this.chart,s=this.options,{grid:n,position:o}=s,a=n.offset,r=this.isHorizontal(),l=this.ticks.length+(a?1:0),h=ln(n),c=[],d=n.setContext(this.getContext()),u=d.drawBorder?d.borderWidth:0,f=u/2,g=function(t){return si(i,t,u)};let p,m,b,x,_,y,v,w,M,k,S,D;if("top"===o)p=g(this.bottom),y=this.bottom-h,w=p-f,k=g(t.top)+f,D=t.bottom;else if("bottom"===o)p=g(this.top),k=t.top,D=g(t.bottom)-f,y=p+f,w=this.top+h;else if("left"===o)p=g(this.right),_=this.right-h,v=p-f,M=g(t.left)+f,S=t.right;else if("right"===o)p=g(this.left),M=t.left,S=g(t.right)-f,_=p+f,v=this.left+h;else if("x"===e){if("center"===o)p=g((t.top+t.bottom)/2+.5);else if(rt(o)){const t=Object.keys(o)[0],e=o[t];p=g(this.chart.scales[t].getPixelForValue(e))}k=t.top,D=t.bottom,y=p+f,w=y+h}else if("y"===e){if("center"===o)p=g((t.left+t.right)/2);else if(rt(o)){const t=Object.keys(o)[0],e=o[t];p=g(this.chart.scales[t].getPixelForValue(e))}_=p-f,v=_-h,M=t.left,S=t.right}const P=ct(s.ticks.maxTicksLimit,l),O=Math.max(1,Math.ceil(l/P));for(m=0;me.value===t);if(i>=0){return e.setContext(this.getContext(i)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let n,o;const a=(t,e,s)=>{s.width&&s.color&&(i.save(),i.lineWidth=s.width,i.strokeStyle=s.color,i.setLineDash(s.borderDash||[]),i.lineDashOffset=s.borderDashOffset,i.beginPath(),i.moveTo(t.x,t.y),i.lineTo(e.x,e.y),i.stroke(),i.restore())};if(e.display)for(n=0,o=s.length;n{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:i+1,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let n,o;for(n=0,o=e.length;n{const s=i.split("."),n=s.pop(),o=[t].concat(s).join("."),a=e[i].split("."),r=a.pop(),l=a.join(".");ti.route(o,n,l,r)})}(e,t.defaultRoutes);t.descriptors&&ti.describe(e,t.descriptors)}(t,o,i),this.override&&ti.override(t.id,t.overrides)),o}get(t){return this.items[t]}unregister(t){const e=this.items,i=t.id,s=this.scope;i in e&&delete e[i],s&&i in ti[s]&&(delete ti[s][i],this.override&&delete Ge[i])}}var fn=new class{constructor(){this.controllers=new un(Fs,"datasets",!0),this.elements=new un(Qs,"elements"),this.plugins=new un(Object,"plugins"),this.scales=new un(dn,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,i){[...e].forEach(e=>{const s=i||this._getRegistryForType(e);i||s.isForType(e)||s===this.plugins&&e.id?this._exec(t,s,e):ft(e,e=>{const s=i||this._getRegistryForType(e);this._exec(t,s,e)})})}_exec(t,e,i){const s=Mt(t);ut(i["before"+s],[],i),e[t](i),ut(i["after"+s],[],i)}_getRegistryForType(t){for(let e=0;e0&&this.getParsed(e-1);for(let h=e;h0&&Math.abs(i[u]-x[u])>m,p&&(g.parsed=i,g.raw=l.data[h]),d&&(g.options=c||this.resolveDataElementOptions(h,e.active?"active":s)),b||this.updateElement(e,h,g,s),x=i}this.updateSharedOptions(c,s,h)}getMaxOverflow(){const t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let t=0;for(let i=e.length-1;i>=0;--i)t=Math.max(t,e[i].size(this.resolveDataElementOptions(i))/2);return t>0&&t}const i=t.dataset,s=i.options&&i.options.borderWidth||0;if(!e.length)return s;const n=e[0].size(this.resolveDataElementOptions(0)),o=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(s,n,o)/2}}gn.id="scatter",gn.defaults={datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1},gn.overrides={interaction:{mode:"point"},plugins:{tooltip:{callbacks:{title:()=>"",label:t=>"("+t.label+", "+t.formattedValue+")"}}},scales:{x:{type:"linear"},y:{type:"linear"}}};var pn=Object.freeze({__proto__:null,BarController:Us,BubbleController:Xs,DoughnutController:qs,LineController:Ks,PolarAreaController:Gs,PieController:Zs,RadarController:Js,ScatterController:gn});function mn(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class bn{constructor(t){this.options=t||{}}init(t){}formats(){return mn()}parse(t,e){return mn()}format(t,e){return mn()}add(t,e,i){return mn()}diff(t,e,i){return mn()}startOf(t,e,i){return mn()}endOf(t,e){return mn()}}bn.override=function(t){Object.assign(bn.prototype,t)};var xn={_date:bn};function _n(t,e,i,s){const{controller:n,data:o,_sorted:a}=t,r=n._cachedMeta.iScale;if(r&&e===r.axis&&"r"!==e&&a&&o.length){const t=r._reversePixels?Qt:Jt;if(!s)return t(o,e,i);if(n._sharedOptions){const s=o[0],n="function"==typeof s.getRange&&s.getRange(e);if(n){const s=t(o,e,i-n),a=t(o,e,i+n);return{lo:s.lo,hi:a.hi}}}}return{lo:0,hi:o.length-1}}function yn(t,e,i,s,n){const o=t.getSortedVisibleDatasetMetas(),a=i[e];for(let t=0,i=o.length;t{t[a](e[i],n)&&(o.push({element:t,datasetIndex:s,index:l}),r=r||t.inRange(e.x,e.y,n))}),s&&!r?[]:o}var Sn={evaluateInteractionItems:yn,modes:{index(t,e,i,s){const n=Qi(e,t),o=i.axis||"x",a=i.includeInvisible||!1,r=i.intersect?vn(t,n,o,s,a):Mn(t,n,o,!1,s,a),l=[];return r.length?(t.getSortedVisibleDatasetMetas().forEach(t=>{const e=r[0].index,i=t.data[e];i&&!i.skip&&l.push({element:i,datasetIndex:t.index,index:e})}),l):[]},dataset(t,e,i,s){const n=Qi(e,t),o=i.axis||"xy",a=i.includeInvisible||!1;let r=i.intersect?vn(t,n,o,s,a):Mn(t,n,o,!1,s,a);if(r.length>0){const e=r[0].datasetIndex,i=t.getDatasetMeta(e).data;r=[];for(let t=0;tvn(t,Qi(e,t),i.axis||"xy",s,i.includeInvisible||!1),nearest(t,e,i,s){const n=Qi(e,t),o=i.axis||"xy",a=i.includeInvisible||!1;return Mn(t,n,o,i.intersect,s,a)},x:(t,e,i,s)=>kn(t,Qi(e,t),"x",i.intersect,s),y:(t,e,i,s)=>kn(t,Qi(e,t),"y",i.intersect,s)}};const Dn=["left","top","right","bottom"];function Pn(t,e){return t.filter(t=>t.pos===e)}function On(t,e){return t.filter(t=>-1===Dn.indexOf(t.pos)&&t.box.axis===e)}function Cn(t,e){return t.sort((t,i)=>{const s=e?i:t,n=e?t:i;return s.weight===n.weight?s.index-n.index:s.weight-n.weight})}function An(t,e){const i=function(t){const e={};for(const i of t){const{stack:t,pos:s,stackWeight:n}=i;if(!t||!Dn.includes(s))continue;const o=e[t]||(e[t]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=n}return e}(t),{vBoxMaxWidth:s,hBoxMaxHeight:n}=e;let o,a,r;for(o=0,a=t.length;o{s[t]=Math.max(e[t],i[t])}),s}return s(t?["left","right"]:["top","bottom"])}function In(t,e,i,s){const n=[];let o,a,r,l,h,c;for(o=0,a=t.length,h=0;ot.box.fullSize),!0),s=Cn(Pn(e,"left"),!0),n=Cn(Pn(e,"right")),o=Cn(Pn(e,"top"),!0),a=Cn(Pn(e,"bottom")),r=On(e,"x"),l=On(e,"y");return{fullSize:i,leftAndTop:s.concat(o),rightAndBottom:n.concat(l).concat(a).concat(r),chartArea:Pn(e,"chartArea"),vertical:s.concat(n).concat(l),horizontal:o.concat(a).concat(r)}}(t.boxes),l=r.vertical,h=r.horizontal;ft(t.boxes,t=>{"function"==typeof t.beforeLayout&&t.beforeLayout()});const c=l.reduce((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1,0)||1,d=Object.freeze({outerWidth:e,outerHeight:i,padding:n,availableWidth:o,availableHeight:a,vBoxMaxWidth:o/2/c,hBoxMaxHeight:a/2}),u=Object.assign({},n);En(u,wi(s));const f=Object.assign({maxPadding:u,w:o,h:a,x:n.left,y:n.top},n),g=An(l.concat(h),d);In(r.fullSize,f,d,g),In(l,f,d,g),In(h,f,d,g)&&In(l,f,d,g),function(t){const e=t.maxPadding;function i(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=i("top"),t.x+=i("left"),i("right"),i("bottom")}(f),Fn(r.leftAndTop,f,d,g),f.x+=f.w,f.y+=f.h,Fn(r.rightAndBottom,f,d,g),t.chartArea={left:f.left,top:f.top,right:f.left+f.w,bottom:f.top+f.h,height:f.h,width:f.w},ft(r.chartArea,e=>{const i=e.box;Object.assign(i,t.chartArea),i.update(f.w,f.h,{left:0,top:0,right:0,bottom:0})})}};class Vn{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,s?Math.floor(e/s):i)}}isAttached(t){return!0}updateConfig(t){}}class Bn extends Vn{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const Nn="$chartjs",Wn={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Hn=t=>null===t||""===t;const jn=!!ss&&{passive:!0};function Yn(t,e,i){t.canvas.removeEventListener(e,i,jn)}function Un(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function Xn(t,e,i){const s=t.canvas,n=new MutationObserver(t=>{let e=!1;for(const i of t)e=e||Un(i.addedNodes,s),e=e&&!Un(i.removedNodes,s);e&&i()});return n.observe(document,{childList:!0,subtree:!0}),n}function qn(t,e,i){const s=t.canvas,n=new MutationObserver(t=>{let e=!1;for(const i of t)e=e||Un(i.removedNodes,s),e=e&&!Un(i.addedNodes,s);e&&i()});return n.observe(document,{childList:!0,subtree:!0}),n}const Kn=new Map;let Gn=0;function Zn(){const t=window.devicePixelRatio;t!==Gn&&(Gn=t,Kn.forEach((e,i)=>{i.currentDevicePixelRatio!==t&&e()}))}function Jn(t,e,i){const s=t.canvas,n=s&&qi(s);if(!n)return;const o=ne((t,e)=>{const s=n.clientWidth;i(t,e),s{const e=t[0],i=e.contentRect.width,s=e.contentRect.height;0===i&&0===s||o(i,s)});return a.observe(n),function(t,e){Kn.size||window.addEventListener("resize",Zn),Kn.set(t,e)}(t,o),a}function Qn(t,e,i){i&&i.disconnect(),"resize"===e&&function(t){Kn.delete(t),Kn.size||window.removeEventListener("resize",Zn)}(t)}function to(t,e,i){const s=t.canvas,n=ne(e=>{null!==t.ctx&&i(function(t,e){const i=Wn[t.type]||t.type,{x:s,y:n}=Qi(t,e);return{type:i,chart:e,native:t,x:void 0!==s?s:null,y:void 0!==n?n:null}}(e,t))},t,t=>{const e=t[0];return[e,e.offsetX,e.offsetY]});return function(t,e,i){t.addEventListener(e,i,jn)}(s,e,n),n}class eo extends Vn{acquireContext(t,e){const i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t,e){const i=t.style,s=t.getAttribute("height"),n=t.getAttribute("width");if(t[Nn]={initial:{height:s,width:n,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",i.boxSizing=i.boxSizing||"border-box",Hn(n)){const e=ns(t,"width");void 0!==e&&(t.width=e)}if(Hn(s))if(""===t.style.height)t.height=t.width/(e||2);else{const e=ns(t,"height");void 0!==e&&(t.height=e)}}(t,e),i):null}releaseContext(t){const e=t.canvas;if(!e[Nn])return!1;const i=e[Nn].initial;["height","width"].forEach(t=>{const s=i[t];ot(s)?e.removeAttribute(t):e.setAttribute(t,s)});const s=i.style||{};return Object.keys(s).forEach(t=>{e.style[t]=s[t]}),e.width=e.width,delete e[Nn],!0}addEventListener(t,e,i){this.removeEventListener(t,e);const s=t.$proxies||(t.$proxies={}),n={attach:Xn,detach:qn,resize:Jn}[e]||to;s[e]=n(t,e,i)}removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),s=i[e];if(!s)return;({attach:Qn,detach:Qn,resize:Qn}[e]||Yn)(t,e,s),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return es(t,e,i,s)}isAttached(t){const e=qi(t);return!(!e||!e.isConnected)}}class io{constructor(){this._init=[]}notify(t,e,i,s){"beforeInit"===e&&(this._init=this._createDescriptors(t,!0),this._notify(this._init,t,"install"));const n=s?this._descriptors(t).filter(s):this._descriptors(t),o=this._notify(n,t,e,i);return"afterDestroy"===e&&(this._notify(n,t,"stop"),this._notify(this._init,t,"uninstall")),o}_notify(t,e,i,s){s=s||{};for(const n of t){const t=n.plugin;if(!1===ut(t[i],[e,s,n.options],t)&&s.cancelable)return!1}return!0}invalidate(){ot(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(t){if(this._cache)return this._cache;const e=this._cache=this._createDescriptors(t);return this._notifyStateChanges(t),e}_createDescriptors(t,e){const i=t&&t.config,s=ct(i.options&&i.options.plugins,{}),n=function(t){const e={},i=[],s=Object.keys(fn.plugins.items);for(let t=0;tt.filter(t=>!e.some(e=>t.plugin.id===e.plugin.id));this._notify(s(e,i),t,"stop"),this._notify(s(i,e),t,"start")}}function so(t,e){return e||!1!==t?!0===t?{}:t:null}function no(t,{plugin:e,local:i},s,n){const o=t.pluginScopeKeys(e),a=t.getOptionScopes(s,o);return i&&e.defaults&&a.push(e.defaults),t.createResolver(a,n,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function oo(t,e){const i=ti.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||i.indexAxis||"x"}function ao(t,e){return"x"===t||"y"===t?t:e.axis||("top"===(i=e.position)||"bottom"===i?"x":"left"===i||"right"===i?"y":void 0)||t.charAt(0).toLowerCase();var i}function ro(t){const e=t.options||(t.options={});e.plugins=ct(e.plugins,{}),e.scales=function(t,e){const i=Ge[t.type]||{scales:{}},s=e.scales||{},n=oo(t.type,e),o=Object.create(null),a=Object.create(null);return Object.keys(s).forEach(t=>{const e=s[t];if(!rt(e))return console.error(`Invalid scale configuration for scale: ${t}`);if(e._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${t}`);const r=ao(t,e),l=function(t,e){return t===e?"_index_":"_value_"}(r,n),h=i.scales||{};o[r]=o[r]||t,a[t]=_t(Object.create(null),[{axis:r},e,h[r],h[l]])}),t.data.datasets.forEach(i=>{const n=i.type||t.type,r=i.indexAxis||oo(n,e),l=(Ge[n]||{}).scales||{};Object.keys(l).forEach(t=>{const e=function(t,e){let i=t;return"_index_"===t?i=e:"_value_"===t&&(i="x"===e?"y":"x"),i}(t,r),n=i[e+"AxisID"]||o[e]||e;a[n]=a[n]||Object.create(null),_t(a[n],[{axis:e},s[n],l[t]])})}),Object.keys(a).forEach(t=>{const e=a[t];_t(e,[ti.scales[e.type],ti.scale])}),a}(t,e)}function lo(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const ho=new Map,co=new Set;function uo(t,e){let i=ho.get(t);return i||(i=e(),ho.set(t,i),co.add(i)),i}const fo=(t,e,i)=>{const s=wt(e,i);void 0!==s&&t.add(s)};class go{constructor(t){this._config=function(t){return(t=t||{}).data=lo(t.data),ro(t),t}(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=lo(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),ro(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return uo(t,()=>[[`datasets.${t}`,""]])}datasetAnimationScopeKeys(t,e){return uo(`${t}.transition.${e}`,()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]])}datasetElementScopeKeys(t,e){return uo(`${t}-${e}`,()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]])}pluginScopeKeys(t){const e=t.id;return uo(`${this.type}-plugin-${e}`,()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]])}_cachedScopes(t,e){const i=this._scopeCache;let s=i.get(t);return s&&!e||(s=new Map,i.set(t,s)),s}getOptionScopes(t,e,i){const{options:s,type:n}=this,o=this._cachedScopes(t,i),a=o.get(e);if(a)return a;const r=new Set;e.forEach(e=>{t&&(r.add(t),e.forEach(e=>fo(r,t,e))),e.forEach(t=>fo(r,s,t)),e.forEach(t=>fo(r,Ge[n]||{},t)),e.forEach(t=>fo(r,ti,t)),e.forEach(t=>fo(r,Ze,t))});const l=Array.from(r);return 0===l.length&&l.push(Object.create(null)),co.has(e)&&o.set(e,l),l}chartOptionScopes(){const{options:t,type:e}=this;return[t,Ge[e]||{},ti.datasets[e]||{},{type:e},ti,Ze]}resolveNamedOptions(t,e,i,s=[""]){const n={$shared:!0},{resolver:o,subPrefixes:a}=po(this._resolverCache,t,s);let r=o;if(function(t,e){const{isScriptable:i,isIndexable:s}=Oi(t);for(const n of e){const e=i(n),o=s(n),a=(o||e)&&t[n];if(e&&(St(a)||mo(a))||o&&at(a))return!0}return!1}(o,e)){n.$shared=!1;r=Pi(o,i=St(i)?i():i,this.createResolver(t,i,a))}for(const t of e)n[t]=r[t];return n}createResolver(t,e,i=[""],s){const{resolver:n}=po(this._resolverCache,t,i);return rt(e)?Pi(n,e,void 0,s):n}}function po(t,e,i){let s=t.get(e);s||(s=new Map,t.set(e,s));const n=i.join();let o=s.get(n);if(!o){o={resolver:Di(e,i),subPrefixes:i.filter(t=>!t.toLowerCase().includes("hover"))},s.set(n,o)}return o}const mo=t=>rt(t)&&Object.getOwnPropertyNames(t).reduce((e,i)=>e||St(t[i]),!1);const bo=["top","bottom","left","right","chartArea"];function xo(t,e){return"top"===t||"bottom"===t||-1===bo.indexOf(t)&&"x"===e}function _o(t,e){return function(i,s){return i[t]===s[t]?i[e]-s[e]:i[t]-s[t]}}function yo(t){const e=t.chart,i=e.options.animation;e.notifyPlugins("afterRender"),ut(i&&i.onComplete,[t],e)}function vo(t){const e=t.chart,i=e.options.animation;ut(i&&i.onProgress,[t],e)}function wo(t){return Xi()&&"string"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const Mo={},ko=t=>{const e=wo(t);return Object.values(Mo).filter(t=>t.canvas===e).pop()};function So(t,e,i){const s=Object.keys(t);for(const n of s){const s=+n;if(s>=e){const o=t[n];delete t[n],(i>0||s>e)&&(t[s+i]=o)}}}class Do{constructor(t,e){const i=this.config=new go(e),s=wo(t),n=ko(s);if(n)throw new Error("Canvas is already in use. Chart with ID '"+n.id+"' must be destroyed before the canvas with ID '"+n.canvas.id+"' can be reused.");const o=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||function(t){return!Xi()||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas?Bn:eo}(s)),this.platform.updateConfig(i);const a=this.platform.acquireContext(s,o.aspectRatio),r=a&&a.canvas,l=r&&r.height,h=r&&r.width;this.id=nt(),this.ctx=a,this.canvas=r,this.width=h,this.height=l,this._options=o,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new io,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=function(t,e){let i;return function(...s){return e?(clearTimeout(i),i=setTimeout(t,e,s)):t.apply(this,s),e}}(t=>this.update(t),o.resizeDelay||0),this._dataChanges=[],Mo[this.id]=this,a&&r?(ys.listen(this,"complete",yo),ys.listen(this,"progress",vo),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:i,height:s,_aspectRatio:n}=this;return ot(t)?e&&n?n:s?i/s:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():is(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return ni(this.canvas,this.ctx),this}stop(){return ys.stop(this),this}resize(t,e){ys.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,s=this.canvas,n=i.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(s,t,e,n),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),r=this.width?"resize":"attach";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,is(this,a,!0)&&(this.notifyPlugins("resize",{size:o}),ut(i.onResize,[this,o],this),this.attached&&this._doResize(r)&&this.render())}ensureScalesHaveIDs(){ft(this.options.scales||{},(t,e)=>{t.id=e})}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce((t,e)=>(t[e]=!1,t),{});let n=[];e&&(n=n.concat(Object.keys(e).map(t=>{const i=e[t],s=ao(t,i),n="r"===s,o="x"===s;return{options:i,dposition:n?"chartArea":o?"bottom":"left",dtype:n?"radialLinear":o?"category":"linear"}}))),ft(n,e=>{const n=e.options,o=n.id,a=ao(o,n),r=ct(n.type,e.dtype);void 0!==n.position&&xo(n.position,a)===xo(e.dposition)||(n.position=e.dposition),s[o]=!0;let l=null;if(o in i&&i[o].type===r)l=i[o];else{l=new(fn.getScale(r))({id:o,type:r,ctx:this.ctx,chart:this}),i[l.id]=l}l.init(n,t)}),ft(s,(t,e)=>{t||delete i[e]}),ft(i,t=>{$n.configure(this,t,t.options),$n.addBox(this,t)})}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort((t,e)=>t.index-e.index),i>e){for(let t=e;te.length&&delete this._stacks,t.forEach((t,i)=>{0===e.filter(e=>e===t._dataset).length&&this._destroyDatasetMeta(i)})}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0}))return;const n=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let o=0;for(let t=0,e=this.data.datasets.length;t{t.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(_o("z","_idx"));const{_active:a,_lastEvent:r}=this;r?this._eventHandler(r,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){ft(this.scales,t=>{$n.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);Dt(e,i)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:n}of e){So(t,s,"_removeElements"===i?-n:n)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=e=>new Set(t.filter(t=>t[0]===e).map((t,e)=>e+","+t.splice(1).join(","))),s=i(0);for(let t=1;tt.split(",")).map(t=>({method:t[1],start:+t[2],count:+t[3]}))}_updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;$n.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],ft(this.boxes,t=>{i&&"chartArea"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))},this),this._layers.forEach((t,e)=>{t._idx=e}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,i=t._clip,s=!i.disabled,n=this.chartArea,o={meta:t,index:t.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",o)&&(s&&li(e,{left:!1===i.left?0:n.left-i.left,right:!1===i.right?this.width:n.right+i.right,top:!1===i.top?0:n.top-i.top,bottom:!1===i.bottom?this.height:n.bottom+i.bottom}),t.controller.draw(),s&&hi(e),o.cancelable=!1,this.notifyPlugins("afterDatasetDraw",o))}isPointInArea(t){return ri(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,s){const n=Sn.modes[e];return"function"==typeof n?n(this,t,i,s):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let s=i.filter(t=>t&&t._dataset===e).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=Si(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return"boolean"==typeof i.hidden?!i.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const s=i?"show":"hide",n=this.getDatasetMeta(t),o=n.controller._resolveAnimations(void 0,s);kt(e)?(n.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),o.update(n,{visible:i}),this.update(e=>e.datasetIndex===t?s:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),ys.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,i,s),t[i]=s},s=(t,e,i)=>{t.offsetX=e,t.offsetY=i,this._eventHandler(t)};ft(this.options.events,t=>i(t,s))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(i,s)=>{t[i]&&(e.removeEventListener(this,i,s),delete t[i])},n=(t,e)=>{this.canvas&&this.resize(t,e)};let o;const a=()=>{s("attach",a),this.attached=!0,this.resize(),i("resize",n),i("detach",o)};o=()=>{this.attached=!1,s("resize",n),this._stop(),this._resize(0,0),i("attach",a)},e.isAttached(this.canvas)?a():o()}unbindEvents(){ft(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},ft(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const s=i?"set":"remove";let n,o,a,r;for("dataset"===e&&(n=this.getDatasetMeta(t[0].datasetIndex),n.controller["_"+s+"DatasetHoverStyle"]()),a=0,r=t.length;a{const i=this.getDatasetMeta(t);if(!i)throw new Error("No dataset found at index "+t);return{datasetIndex:t,element:i.data[e],index:e}});!gt(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}_updateHoverStyles(t,e,i){const s=this.options.hover,n=(t,e)=>t.filter(t=>!e.some(e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)),o=n(e,t),a=i?t:n(t,e);o.length&&this.updateHoverStyle(o,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},s=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins("beforeEvent",i,s))return;const n=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(n||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:s=[],options:n}=this,o=e,a=this._getActiveElements(t,s,i,o),r=function(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}(t),l=function(t,e,i,s){return i&&"mouseout"!==t.type?s?e:t:null}(t,this._lastEvent,i,r);i&&(this._lastEvent=null,ut(n.onHover,[t,a,this],this),r&&ut(n.onClick,[t,a,this],this));const h=!gt(a,s);return(h||e)&&(this._active=a,this._updateHoverStyles(a,s,e)),this._lastEvent=l,h}_getActiveElements(t,e,i,s){if("mouseout"===t.type)return[];if(!i)return e;const n=this.options.hover;return this.getElementsAtEventForMode(t,n.mode,n,s)}}const Po=()=>ft(Do.instances,t=>t._plugins.invalidate()),Oo=!0;function Co(t,e,i){const{startAngle:s,pixelMargin:n,x:o,y:a,outerRadius:r,innerRadius:l}=e;let h=n/r;t.beginPath(),t.arc(o,a,r,s-h,i+h),l>n?(h=n/l,t.arc(o,a,l,i+h,s-h,!0)):t.arc(o,a,n,i+Et,s-Et),t.closePath(),t.clip()}function Ao(t,e,i,s){const n=_i(t.options.borderRadius,["outerStart","outerEnd","innerStart","innerEnd"]);const o=(i-e)/2,a=Math.min(o,s*e/2),r=t=>{const e=(i-Math.min(o,t))*s/2;return Kt(t,0,Math.min(o,e))};return{outerStart:r(n.outerStart),outerEnd:r(n.outerEnd),innerStart:Kt(n.innerStart,0,a),innerEnd:Kt(n.innerEnd,0,a)}}function To(t,e,i,s){return{x:i+t*Math.cos(e),y:s+t*Math.sin(e)}}function Eo(t,e,i,s,n,o){const{x:a,y:r,startAngle:l,pixelMargin:h,innerRadius:c}=e,d=Math.max(e.outerRadius+s+i-h,0),u=c>0?c+s+i+h:0;let f=0;const g=n-l;if(s){const t=((c>0?c-s:0)+(d>0?d-s:0))/2;f=(g-(0!==t?g*t/(t+s):g))/2}const p=(g-Math.max(.001,g*d-i/Pt)/d)/2,m=l+p+f,b=n-p-f,{outerStart:x,outerEnd:_,innerStart:y,innerEnd:v}=Ao(e,u,d,b-m),w=d-x,M=d-_,k=m+x/w,S=b-_/M,D=u+y,P=u+v,O=m+y/D,C=b-v/P;if(t.beginPath(),o){if(t.arc(a,r,d,k,S),_>0){const e=To(M,S,a,r);t.arc(e.x,e.y,_,S,b+Et)}const e=To(P,b,a,r);if(t.lineTo(e.x,e.y),v>0){const e=To(P,C,a,r);t.arc(e.x,e.y,v,b+Et,C+Math.PI)}if(t.arc(a,r,u,b-v/u,m+y/u,!0),y>0){const e=To(D,O,a,r);t.arc(e.x,e.y,y,O+Math.PI,m-Et)}const i=To(w,m,a,r);if(t.lineTo(i.x,i.y),x>0){const e=To(w,k,a,r);t.arc(e.x,e.y,x,m-Et,k)}}else{t.moveTo(a,r);const e=Math.cos(k)*d+a,i=Math.sin(k)*d+r;t.lineTo(e,i);const s=Math.cos(S)*d+a,n=Math.sin(S)*d+r;t.lineTo(s,n)}t.closePath()}function Lo(t,e,i,s,n,o){const{options:a}=e,{borderWidth:r,borderJoinStyle:l}=a,h="inner"===a.borderAlign;r&&(h?(t.lineWidth=2*r,t.lineJoin=l||"round"):(t.lineWidth=r,t.lineJoin=l||"bevel"),e.fullCircles&&function(t,e,i){const{x:s,y:n,startAngle:o,pixelMargin:a,fullCircles:r}=e,l=Math.max(e.outerRadius-a,0),h=e.innerRadius+a;let c;for(i&&Co(t,e,o+Ot),t.beginPath(),t.arc(s,n,h,o+Ot,o,!0),c=0;c{fn.add(...t),Po()}},unregister:{enumerable:Oo,value:(...t)=>{fn.remove(...t),Po()}}});class Ro extends Qs{constructor(t){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.getProps(["x","y"],i),{angle:n,distance:o}=jt(s,{x:t,y:e}),{startAngle:a,endAngle:r,innerRadius:l,outerRadius:h,circumference:c}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),d=this.options.spacing/2,u=ct(c,r-a)>=Ot||qt(n,a,r),f=Gt(o,l+d,h+d);return u&&f}getCenterPoint(t){const{x:e,y:i,startAngle:s,endAngle:n,innerRadius:o,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],t),{offset:r,spacing:l}=this.options,h=(s+n)/2,c=(o+a+l+r)/2;return{x:e+Math.cos(h)*c,y:i+Math.sin(h)*c}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){const{options:e,circumference:i}=this,s=(e.offset||0)/2,n=(e.spacing||0)/2,o=e.circular;if(this.pixelMargin="inner"===e.borderAlign?.33:0,this.fullCircles=i>Ot?Math.floor(i/Ot):0,0===i||this.innerRadius<0||this.outerRadius<0)return;t.save();let a=0;if(s){a=s/2;const e=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(e)*a,Math.sin(e)*a),this.circumference>=Pt&&(a=s)}t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor;const r=function(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r}=e;let l=e.endAngle;if(o){Eo(t,e,i,s,a+Ot,n);for(let e=0;er&&o>r;return{count:s,start:l,loop:e.loop,ilen:h(a+(h?r-t:t))%o,_=()=>{f!==g&&(t.lineTo(m,g),t.lineTo(m,f),t.lineTo(m,p))};for(l&&(d=n[x(0)],t.moveTo(d.x,d.y)),c=0;c<=r;++c){if(d=n[x(c)],d.skip)continue;const e=d.x,i=d.y,s=0|e;s===u?(ig&&(g=i),m=(b*m+e)/++b):(_(),t.lineTo(e,i),u=s,b=0,f=g=i),p=i}_()}function Bo(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!(t._decimated||t._loop||e.tension||"monotone"===e.cubicInterpolationMode||e.stepped||i)?Vo:$o}Ro.id="arc",Ro.defaults={borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0},Ro.defaultRoutes={backgroundColor:"backgroundColor"};const No="function"==typeof Path2D;function Wo(t,e,i,s){No&&!e.options.segment?function(t,e,i,s){let n=e._path;n||(n=e._path=new Path2D,e.path(n,i,s)&&n.closePath()),Io(t,e.options),t.stroke(n)}(t,e,i,s):function(t,e,i,s){const{segments:n,options:o}=e,a=Bo(e);for(const r of n)Io(t,o,r.style),t.beginPath(),a(t,e,r,{start:i,end:i+s-1})&&t.closePath(),t.stroke()}(t,e,i,s)}class Ho extends Qs{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||"monotone"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;Ui(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=function(t,e){const i=t.points,s=t.options.spanGaps,n=i.length;if(!n)return[];const o=!!t._loop,{start:a,end:r}=function(t,e,i,s){let n=0,o=e-1;if(i&&!s)for(;nn&&t[o%e].skip;)o--;return o%=e,{start:n,end:o}}(i,n,o,s);return bs(t,!0===s?[{start:a,end:r,loop:o}]:function(t,e,i,s){const n=t.length,o=[];let a,r=e,l=t[e];for(a=e+1;a<=i;++a){const i=t[a%n];i.skip||i.stop?l.skip||(s=!1,o.push({start:e%n,end:(a-1)%n,loop:s}),e=r=i.stop?a:null):(r=a,l.skip&&(e=a)),l=i}return null!==r&&o.push({start:e%n,end:r%n,loop:s}),o}(i,a,r"borderDash"!==t&&"fill"!==t};class Yo extends Qs{constructor(t){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.options,{x:n,y:o}=this.getProps(["x","y"],i);return Math.pow(t-n,2)+Math.pow(e-o,2){ta(t)})}var ia={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(t,e,i)=>{if(!i.enabled)return void ea(t);const s=t.width;t.data.datasets.forEach((e,n)=>{const{_data:o,indexAxis:a}=e,r=t.getDatasetMeta(n),l=o||e.data;if("y"===ki([a,t.options.indexAxis]))return;if(!r.controller.supportsDecimation)return;const h=t.scales[r.xAxisID];if("linear"!==h.type&&"time"!==h.type)return;if(t.options.parsing)return;let{start:c,count:d}=function(t,e){const i=e.length;let s,n=0;const{iScale:o}=t,{min:a,max:r,minDefined:l,maxDefined:h}=o.getUserBounds();return l&&(n=Kt(Jt(e,o.axis,a).lo,0,i-1)),s=h?Kt(Jt(e,o.axis,r).hi+1,n,i)-n:i-n,{start:n,count:s}}(r,l);if(d<=(i.threshold||4*s))return void ta(e);let u;switch(ot(o)&&(e._data=l,delete e.data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(t){this._data=t}})),i.algorithm){case"lttb":u=function(t,e,i,s,n){const o=n.samples||s;if(o>=i)return t.slice(e,e+i);const a=[],r=(i-2)/(o-2);let l=0;const h=e+i-1;let c,d,u,f,g,p=e;for(a[l++]=t[p],c=0;cu&&(u=f,d=t[s],g=s);a[l++]=d,p=g}return a[l++]=t[h],a}(l,c,d,s,i);break;case"min-max":u=function(t,e,i,s){let n,o,a,r,l,h,c,d,u,f,g=0,p=0;const m=[],b=e+i-1,x=t[e].x,_=t[b].x-x;for(n=e;nf&&(f=r,c=n),g=(p*g+o.x)/++p;else{const i=n-1;if(!ot(h)&&!ot(c)){const e=Math.min(h,c),s=Math.max(h,c);e!==d&&e!==i&&m.push({...t[e],x:g}),s!==d&&s!==i&&m.push({...t[s],x:g})}n>0&&i!==d&&m.push(t[i]),m.push(o),l=e,p=0,u=f=r,h=c=d=n}}return m}(l,c,d,s);break;default:throw new Error(`Unsupported decimation algorithm '${i.algorithm}'`)}e._decimated=u})},destroy(t){ea(t)}};function sa(t,e,i,s){if(s)return;let n=e[t],o=i[t];return"angle"===t&&(n=Xt(n),o=Xt(o)),{property:t,start:n,end:o}}function na(t,e,i){for(;e>t;e--){const t=i[e];if(!isNaN(t.x)&&!isNaN(t.y))break}return e}function oa(t,e,i,s){return t&&e?s(t[i],e[i]):t?t[i]:e?e[i]:0}function aa(t,e){let i=[],s=!1;return at(t)?(s=!0,i=t):i=function(t,e){const{x:i=null,y:s=null}=t||{},n=e.points,o=[];return e.segments.forEach(({start:t,end:e})=>{e=na(t,e,n);const a=n[t],r=n[e];null!==s?(o.push({x:a.x,y:s}),o.push({x:r.x,y:s})):null!==i&&(o.push({x:i,y:a.y}),o.push({x:i,y:r.y}))}),o}(t,e),i.length?new Ho({points:i,options:{tension:0},_loop:s,_fullLoop:s}):null}function ra(t){return t&&!1!==t.fill}function la(t,e,i){let s=t[e].fill;const n=[e];let o;if(!i)return s;for(;!1!==s&&-1===n.indexOf(s);){if(!lt(s))return s;if(o=t[s],!o)return!1;if(o.visible)return s;n.push(s),s=o.fill}return!1}function ha(t,e,i){const s=function(t){const e=t.options,i=e.fill;let s=ct(i&&i.target,i);void 0===s&&(s=!!e.backgroundColor);if(!1===s||null===s)return!1;if(!0===s)return"origin";return s}(t);if(rt(s))return!isNaN(s.value)&&s;let n=parseFloat(s);return lt(n)&&Math.floor(n)===n?function(t,e,i,s){"-"!==t&&"+"!==t||(i=e+i);if(i===e||i<0||i>=s)return!1;return i}(s[0],e,n,i):["origin","start","end","stack","shape"].indexOf(s)>=0&&s}function ca(t,e,i){const s=[];for(let n=0;n=0;--e){const i=n[e].$filler;i&&(i.line.updateControlPoints(o,i.axis),s&&i.fill&&ga(t.ctx,i,o))}},beforeDatasetsDraw(t,e,i){if("beforeDatasetsDraw"!==i.drawTime)return;const s=t.getSortedVisibleDatasetMetas();for(let e=s.length-1;e>=0;--e){const i=s[e].$filler;ra(i)&&ga(t.ctx,i,t.chartArea)}},beforeDatasetDraw(t,e,i){const s=e.meta.$filler;ra(s)&&"beforeDatasetDraw"===i.drawTime&&ga(t.ctx,s,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const ya=(t,e)=>{let{boxHeight:i=e,boxWidth:s=e}=t;return t.usePointStyle&&(i=Math.min(i,e),s=t.pointStyleWidth||Math.min(s,e)),{boxWidth:s,boxHeight:i,itemHeight:Math.max(e,i)}};class va extends Qs{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=ut(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter(e=>t.filter(e,this.chart.data))),t.sort&&(e=e.sort((e,i)=>t.sort(e,i,this.chart.data))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const i=t.labels,s=Mi(i.font),n=s.size,o=this._computeTitleHeight(),{boxWidth:a,itemHeight:r}=ya(i,n);let l,h;e.font=s.string,this.isHorizontal()?(l=this.maxWidth,h=this._fitRows(o,n,a,r)+10):(h=this.maxHeight,l=this._fitCols(o,n,a,r)+10),this.width=Math.min(l,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,s){const{ctx:n,maxWidth:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.lineWidths=[0],h=s+a;let c=t;n.textAlign="left",n.textBaseline="middle";let d=-1,u=-h;return this.legendItems.forEach((t,f)=>{const g=i+e/2+n.measureText(t.text).width;(0===f||l[l.length-1]+g+2*a>o)&&(c+=h,l[l.length-(f>0?0:1)]=0,u+=h,d++),r[f]={left:0,top:u,row:d,width:g,height:s},l[l.length-1]+=g+a}),c}_fitCols(t,e,i,s){const{ctx:n,maxHeight:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.columnSizes=[],h=o-t;let c=a,d=0,u=0,f=0,g=0;return this.legendItems.forEach((t,o)=>{const p=i+e/2+n.measureText(t.text).width;o>0&&u+s+2*a>h&&(c+=d+a,l.push({width:d,height:u}),f+=d+a,g++,d=u=0),r[o]={left:f,top:u,col:g,width:p,height:s},d=Math.max(d,p),u+=s+a}),c+=d,l.push({width:d,height:u}),c}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:n}}=this,o=cs(n,this.left,this.width);if(this.isHorizontal()){let n=0,a=ae(i,this.left+s,this.right-this.lineWidths[n]);for(const r of e)n!==r.row&&(n=r.row,a=ae(i,this.left+s,this.right-this.lineWidths[n])),r.top+=this.top+t+s,r.left=o.leftForLtr(o.x(a),r.width),a+=r.width+s}else{let n=0,a=ae(i,this.top+t+s,this.bottom-this.columnSizes[n].height);for(const r of e)r.col!==n&&(n=r.col,a=ae(i,this.top+t+s,this.bottom-this.columnSizes[n].height)),r.top=a,r.left+=this.left+s,r.left=o.leftForLtr(o.x(r.left),r.width),a+=r.height+s}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const t=this.ctx;li(t,this),this._draw(),hi(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:n,labels:o}=t,a=ti.color,r=cs(t.rtl,this.left,this.width),l=Mi(o.font),{color:h,padding:c}=o,d=l.size,u=d/2;let f;this.drawTitle(),s.textAlign=r.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=l.string;const{boxWidth:g,boxHeight:p,itemHeight:m}=ya(o,d),b=this.isHorizontal(),x=this._computeTitleHeight();f=b?{x:ae(n,this.left+c,this.right-i[0]),y:this.top+c+x,line:0}:{x:this.left+c,y:ae(n,this.top+x+c,this.bottom-e[0].height),line:0},ds(this.ctx,t.textDirection);const _=m+c;this.legendItems.forEach((y,v)=>{s.strokeStyle=y.fontColor||h,s.fillStyle=y.fontColor||h;const w=s.measureText(y.text).width,M=r.textAlign(y.textAlign||(y.textAlign=o.textAlign)),k=g+u+w;let S=f.x,D=f.y;r.setWidth(this.width),b?v>0&&S+k+c>this.right&&(D=f.y+=_,f.line++,S=f.x=ae(n,this.left+c,this.right-i[f.line])):v>0&&D+_>this.bottom&&(S=f.x=S+e[f.line].width+c,f.line++,D=f.y=ae(n,this.top+x+c,this.bottom-e[f.line].height));!function(t,e,i){if(isNaN(g)||g<=0||isNaN(p)||p<0)return;s.save();const n=ct(i.lineWidth,1);if(s.fillStyle=ct(i.fillStyle,a),s.lineCap=ct(i.lineCap,"butt"),s.lineDashOffset=ct(i.lineDashOffset,0),s.lineJoin=ct(i.lineJoin,"miter"),s.lineWidth=n,s.strokeStyle=ct(i.strokeStyle,a),s.setLineDash(ct(i.lineDash,[])),o.usePointStyle){const a={radius:p*Math.SQRT2/2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:n},l=r.xPlus(t,g/2);ai(s,a,l,e+u,o.pointStyleWidth&&g)}else{const o=e+Math.max((d-p)/2,0),a=r.leftForLtr(t,g),l=vi(i.borderRadius);s.beginPath(),Object.values(l).some(t=>0!==t)?gi(s,{x:a,y:o,w:g,h:p,radius:l}):s.rect(a,o,g,p),s.fill(),0!==n&&s.stroke()}s.restore()}(r.x(S),D,y),S=((t,e,i,s)=>t===(s?"left":"right")?i:"center"===t?(e+i)/2:e)(M,S+g+u,b?S+k:this.right,t.rtl),function(t,e,i){ui(s,i.text,t,e+m/2,l,{strikethrough:i.hidden,textAlign:r.textAlign(i.textAlign)})}(r.x(S),D,y),b?f.x+=k+c:f.y+=_}),us(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,i=Mi(e.font),s=wi(e.padding);if(!e.display)return;const n=cs(t.rtl,this.left,this.width),o=this.ctx,a=e.position,r=i.size/2,l=s.top+r;let h,c=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),h=this.top+l,c=ae(t.align,c,this.right-d);else{const e=this.columnSizes.reduce((t,e)=>Math.max(t,e.height),0);h=l+ae(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const u=ae(a,c,c+d);o.textAlign=n.textAlign(oe(a)),o.textBaseline="middle",o.strokeStyle=e.color,o.fillStyle=e.color,o.font=i.string,ui(o,e.text,u,h,i)}_computeTitleHeight(){const t=this.options.title,e=Mi(t.font),i=wi(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,n;if(Gt(t,this.left,this.right)&&Gt(e,this.top,this.bottom))for(n=this.legendHitBoxes,i=0;it.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:i,pointStyle:s,textAlign:n,color:o}}=t.legend.options;return t._getSortedDatasetMetas().map(t=>{const a=t.controller.getStyle(i?0:void 0),r=wi(a.borderWidth);return{text:e[t.index].label,fillStyle:a.backgroundColor,fontColor:o,hidden:!t.visible,lineCap:a.borderCapStyle,lineDash:a.borderDash,lineDashOffset:a.borderDashOffset,lineJoin:a.borderJoinStyle,lineWidth:(r.width+r.height)/4,strokeStyle:a.borderColor,pointStyle:s||a.pointStyle,rotation:a.rotation,textAlign:n||a.textAlign,borderRadius:0,datasetIndex:t.index}},this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};class Ma extends Qs{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const i=this.options;if(this.left=0,this.top=0,!i.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=t,this.height=this.bottom=e;const s=at(i.text)?i.text.length:1;this._padding=wi(i.padding);const n=s*Mi(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=n:this.width=n}isHorizontal(){const t=this.options.position;return"top"===t||"bottom"===t}_drawArgs(t){const{top:e,left:i,bottom:s,right:n,options:o}=this,a=o.align;let r,l,h,c=0;return this.isHorizontal()?(l=ae(a,i,n),h=e+t,r=n-i):("left"===o.position?(l=i+t,h=ae(a,s,e),c=-.5*Pt):(l=n-t,h=ae(a,e,s),c=.5*Pt),r=s-e),{titleX:l,titleY:h,maxWidth:r,rotation:c}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const i=Mi(e.font),s=i.lineHeight/2+this._padding.top,{titleX:n,titleY:o,maxWidth:a,rotation:r}=this._drawArgs(s);ui(t,e.text,0,0,i,{color:e.color,maxWidth:a,rotation:r,textAlign:oe(e.align),textBaseline:"middle",translation:[n,o]})}}var ka={id:"title",_element:Ma,start(t,e,i){!function(t,e){const i=new Ma({ctx:t.ctx,options:e,chart:t});$n.configure(t,i,e),$n.addBox(t,i),t.titleBlock=i}(t,i)},stop(t){const e=t.titleBlock;$n.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,i){const s=t.titleBlock;$n.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Sa=new WeakMap;var Da={id:"subtitle",start(t,e,i){const s=new Ma({ctx:t.ctx,options:i,chart:t});$n.configure(t,s,i),$n.addBox(t,s),Sa.set(t,s)},stop(t){$n.removeBox(t,Sa.get(t)),Sa.delete(t)},beforeUpdate(t,e,i){const s=Sa.get(t);$n.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Pa={average(t){if(!t.length)return!1;let e,i,s=0,n=0,o=0;for(e=0,i=t.length;e-1?t.split("\n"):t}function Aa(t,e){const{element:i,datasetIndex:s,index:n}=e,o=t.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:t,label:a,parsed:o.getParsed(n),raw:t.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:i}}function Ta(t,e){const i=t.chart.ctx,{body:s,footer:n,title:o}=t,{boxWidth:a,boxHeight:r}=e,l=Mi(e.bodyFont),h=Mi(e.titleFont),c=Mi(e.footerFont),d=o.length,u=n.length,f=s.length,g=wi(e.padding);let p=g.height,m=0,b=s.reduce((t,e)=>t+e.before.length+e.lines.length+e.after.length,0);if(b+=t.beforeBody.length+t.afterBody.length,d&&(p+=d*h.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),b){p+=f*(e.displayColors?Math.max(r,l.lineHeight):l.lineHeight)+(b-f)*l.lineHeight+(b-1)*e.bodySpacing}u&&(p+=e.footerMarginTop+u*c.lineHeight+(u-1)*e.footerSpacing);let x=0;const _=function(t){m=Math.max(m,i.measureText(t).width+x)};return i.save(),i.font=h.string,ft(t.title,_),i.font=l.string,ft(t.beforeBody.concat(t.afterBody),_),x=e.displayColors?a+2+e.boxPadding:0,ft(s,t=>{ft(t.before,_),ft(t.lines,_),ft(t.after,_)}),x=0,i.font=c.string,ft(t.footer,_),i.restore(),m+=g.width,{width:m,height:p}}function Ea(t,e,i,s){const{x:n,width:o}=i,{width:a,chartArea:{left:r,right:l}}=t;let h="center";return"center"===s?h=n<=(r+l)/2?"left":"right":n<=o/2?h="left":n>=a-o/2&&(h="right"),function(t,e,i,s){const{x:n,width:o}=s,a=i.caretSize+i.caretPadding;return"left"===t&&n+o+a>e.width||"right"===t&&n-o-a<0||void 0}(h,t,e,i)&&(h="center"),h}function La(t,e,i){const s=i.yAlign||e.yAlign||function(t,e){const{y:i,height:s}=e;return it.height-s/2?"bottom":"center"}(t,i);return{xAlign:i.xAlign||e.xAlign||Ea(t,e,i,s),yAlign:s}}function Ra(t,e,i,s){const{caretSize:n,caretPadding:o,cornerRadius:a}=t,{xAlign:r,yAlign:l}=i,h=n+o,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=vi(a);let g=function(t,e){let{x:i,width:s}=t;return"right"===e?i-=s:"center"===e&&(i-=s/2),i}(e,r);const p=function(t,e,i){let{y:s,height:n}=t;return"top"===e?s+=i:s-="bottom"===e?n+i:n/2,s}(e,l,h);return"center"===l?"left"===r?g+=h:"right"===r&&(g-=h):"left"===r?g-=Math.max(c,u)+n:"right"===r&&(g+=Math.max(d,f)+n),{x:Kt(g,0,s.width-e.width),y:Kt(p,0,s.height-e.height)}}function Ia(t,e,i){const s=wi(i.padding);return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-s.right:t.x+s.left}function za(t){return Oa([],Ca(t))}function Fa(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}class $a extends Qs{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart||t._chart,this._chart=this.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const e=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&e.options.animation&&i.animations,n=new Ss(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(n)),n}getContext(){return this.$context||(this.$context=(t=this.chart.getContext(),e=this,i=this._tooltipItems,Si(t,{tooltip:e,tooltipItems:i,type:"tooltip"})));var t,e,i}getTitle(t,e){const{callbacks:i}=e,s=i.beforeTitle.apply(this,[t]),n=i.title.apply(this,[t]),o=i.afterTitle.apply(this,[t]);let a=[];return a=Oa(a,Ca(s)),a=Oa(a,Ca(n)),a=Oa(a,Ca(o)),a}getBeforeBody(t,e){return za(e.callbacks.beforeBody.apply(this,[t]))}getBody(t,e){const{callbacks:i}=e,s=[];return ft(t,t=>{const e={before:[],lines:[],after:[]},n=Fa(i,t);Oa(e.before,Ca(n.beforeLabel.call(this,t))),Oa(e.lines,n.label.call(this,t)),Oa(e.after,Ca(n.afterLabel.call(this,t))),s.push(e)}),s}getAfterBody(t,e){return za(e.callbacks.afterBody.apply(this,[t]))}getFooter(t,e){const{callbacks:i}=e,s=i.beforeFooter.apply(this,[t]),n=i.footer.apply(this,[t]),o=i.afterFooter.apply(this,[t]);let a=[];return a=Oa(a,Ca(s)),a=Oa(a,Ca(n)),a=Oa(a,Ca(o)),a}_createItems(t){const e=this._active,i=this.chart.data,s=[],n=[],o=[];let a,r,l=[];for(a=0,r=e.length;at.filter(e,s,n,i))),t.itemSort&&(l=l.sort((e,s)=>t.itemSort(e,s,i))),ft(l,e=>{const i=Fa(t.callbacks,e);s.push(i.labelColor.call(this,e)),n.push(i.labelPointStyle.call(this,e)),o.push(i.labelTextColor.call(this,e))}),this.labelColors=s,this.labelPointStyles=n,this.labelTextColors=o,this.dataPoints=l,l}update(t,e){const i=this.options.setContext(this.getContext()),s=this._active;let n,o=[];if(s.length){const t=Pa[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const e=this._size=Ta(this,i),a=Object.assign({},t,e),r=La(this.chart,i,a),l=Ra(i,a,r,this.chart);this.xAlign=r.xAlign,this.yAlign=r.yAlign,n={opacity:1,x:l.x,y:l.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(n={opacity:0});this._tooltipItems=o,this.$context=void 0,n&&this._resolveAnimations().update(this,n),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,s){const n=this.getCaretPosition(t,i,s);e.lineTo(n.x1,n.y1),e.lineTo(n.x2,n.y2),e.lineTo(n.x3,n.y3)}getCaretPosition(t,e,i){const{xAlign:s,yAlign:n}=this,{caretSize:o,cornerRadius:a}=i,{topLeft:r,topRight:l,bottomLeft:h,bottomRight:c}=vi(a),{x:d,y:u}=t,{width:f,height:g}=e;let p,m,b,x,_,y;return"center"===n?(_=u+g/2,"left"===s?(p=d,m=p-o,x=_+o,y=_-o):(p=d+f,m=p+o,x=_-o,y=_+o),b=p):(m="left"===s?d+Math.max(r,h)+o:"right"===s?d+f-Math.max(l,c)-o:this.caretX,"top"===n?(x=u,_=x-o,p=m-o,b=m+o):(x=u+g,_=x+o,p=m+o,b=m-o),y=x),{x1:p,x2:m,x3:b,y1:x,y2:_,y3:y}}drawTitle(t,e,i){const s=this.title,n=s.length;let o,a,r;if(n){const l=cs(i.rtl,this.x,this.width);for(t.x=Ia(this,i.titleAlign,i),e.textAlign=l.textAlign(i.titleAlign),e.textBaseline="middle",o=Mi(i.titleFont),a=i.titleSpacing,e.fillStyle=i.titleColor,e.font=o.string,r=0;r0!==t)?(t.beginPath(),t.fillStyle=n.multiKeyBackground,gi(t,{x:e,y:g,w:l,h:r,radius:a}),t.fill(),t.stroke(),t.fillStyle=o.backgroundColor,t.beginPath(),gi(t,{x:i,y:g+1,w:l-2,h:r-2,radius:a}),t.fill()):(t.fillStyle=n.multiKeyBackground,t.fillRect(e,g,l,r),t.strokeRect(e,g,l,r),t.fillStyle=o.backgroundColor,t.fillRect(i,g+1,l-2,r-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){const{body:s}=this,{bodySpacing:n,bodyAlign:o,displayColors:a,boxHeight:r,boxWidth:l,boxPadding:h}=i,c=Mi(i.bodyFont);let d=c.lineHeight,u=0;const f=cs(i.rtl,this.x,this.width),g=function(i){e.fillText(i,f.x(t.x+u),t.y+d/2),t.y+=d+n},p=f.textAlign(o);let m,b,x,_,y,v,w;for(e.textAlign=o,e.textBaseline="middle",e.font=c.string,t.x=Ia(this,p,i),e.fillStyle=i.bodyColor,ft(this.beforeBody,g),u=a&&"right"!==p?"center"===o?l/2+h:l+2+h:0,_=0,v=s.length;_0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,i=this.$animations,s=i&&i.x,n=i&&i.y;if(s||n){const i=Pa[t.position].call(this,this._active,this._eventPosition);if(!i)return;const o=this._size=Ta(this,t),a=Object.assign({},i,this._size),r=La(e,t,a),l=Ra(t,a,r,e);s._to===l.x&&n._to===l.y||(this.xAlign=r.xAlign,this.yAlign=r.yAlign,this.width=o.width,this.height=o.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,l))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(e);const s={width:this.width,height:this.height},n={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const o=wi(e.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(n,t,s,e),ds(t,e.textDirection),n.y+=o.top,this.drawTitle(n,t,e),this.drawBody(n,t,e),this.drawFooter(n,t,e),us(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const i=this._active,s=t.map(({datasetIndex:t,index:e})=>{const i=this.chart.getDatasetMeta(t);if(!i)throw new Error("Cannot find a dataset at index "+t);return{datasetIndex:t,element:i.data[e],index:e}}),n=!gt(i,s),o=this._positionChanged(s,e);(n||o)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,n=this._active||[],o=this._getActiveElements(t,n,e,i),a=this._positionChanged(o,t),r=e||!gt(o,n)||a;return r&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),r}_getActiveElements(t,e,i,s){const n=this.options;if("mouseout"===t.type)return[];if(!s)return e;const o=this.chart.getElementsAtEventForMode(t,n.mode,n,i);return n.reverse&&o.reverse(),o}_positionChanged(t,e){const{caretX:i,caretY:s,options:n}=this,o=Pa[n.position].call(this,t,e);return!1!==o&&(i!==o.x||s!==o.y)}}$a.positioners=Pa;var Va={id:"tooltip",_element:$a,positioners:Pa,afterInit(t,e,i){i&&(t.tooltip=new $a({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const i={tooltip:e};if(!1===t.notifyPlugins("beforeTooltipDraw",i))return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",i)}},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:{beforeTitle:st,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,s=i?i.length:0;if(this&&this.options&&"dataset"===this.options.mode)return e.dataset.label||"";if(e.label)return e.label;if(s>0&&e.dataIndex"filter"!==t&&"itemSort"!==t&&"external"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},Ba=Object.freeze({__proto__:null,Decimation:ia,Filler:_a,Legend:wa,SubTitle:Da,Title:ka,Tooltip:Va});function Na(t,e,i,s){const n=t.indexOf(e);if(-1===n)return((t,e,i,s)=>("string"==typeof e?(i=t.push(e)-1,s.unshift({index:i,label:e})):isNaN(e)&&(i=null),i))(t,e,i,s);return n!==t.lastIndexOf(e)?i:n}class Wa extends dn{constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();for(const{index:i,label:s}of e)t[i]===s&&t.splice(i,1);this._addedLabels=[]}super.init(t)}parse(t,e){if(ot(t))return null;const i=this.getLabels();return((t,e)=>null===t?null:Kt(Math.round(t),0,e))(e=isFinite(e)&&i[e]===t?e:Na(i,t,ct(e,t),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);"ticks"===this.options.bounds&&(t||(i=0),e||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const t=this.min,e=this.max,i=this.options.offset,s=[];let n=this.getLabels();n=0===t&&e===n.length-1?n:n.slice(t,e+1),this._valueRange=Math.max(n.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let i=t;i<=e;i++)s.push({value:i});return s}getLabelForValue(t){const e=this.getLabels();return t>=0&&te.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}function Ha(t,e){const i=[],{bounds:s,step:n,min:o,max:a,precision:r,count:l,maxTicks:h,maxDigits:c,includeBounds:d}=t,u=n||1,f=h-1,{min:g,max:p}=e,m=!ot(o),b=!ot(a),x=!ot(l),_=(p-g)/(c+1);let y,v,w,M,k=Ft((p-g)/f/u)*u;if(k<1e-14&&!m&&!b)return[{value:g},{value:p}];M=Math.ceil(p/k)-Math.floor(g/k),M>f&&(k=Ft(M*k/f/u)*u),ot(r)||(y=Math.pow(10,r),k=Math.ceil(k*y)/y),"ticks"===s?(v=Math.floor(g/k)*k,w=Math.ceil(p/k)*k):(v=g,w=p),m&&b&&n&&function(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}((a-o)/n,k/1e3)?(M=Math.round(Math.min((a-o)/k,h)),k=(a-o)/M,v=o,w=a):x?(v=m?o:v,w=b?a:w,M=l-1,k=(w-v)/M):(M=(w-v)/k,M=Vt(M,Math.round(M),k/1e3)?Math.round(M):Math.ceil(M));const S=Math.max(Ht(k),Ht(v));y=Math.pow(10,ot(r)?S:r),v=Math.round(v*y)/y,w=Math.round(w*y)/y;let D=0;for(m&&(d&&v!==o?(i.push({value:o}),vs=e?s:t,a=t=>n=i?n:t;if(t){const t=zt(s),e=zt(n);t<0&&e<0?a(0):t>0&&e>0&&o(0)}if(s===n){let e=1;(n>=Number.MAX_SAFE_INTEGER||s<=Number.MIN_SAFE_INTEGER)&&(e=Math.abs(.05*n)),a(n+e),t||o(s-e)}this.min=s,this.max=n}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:i,stepSize:s}=t;return s?(e=Math.ceil(this.max/s)-Math.floor(this.min/s)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let i=this.getTickLimit();i=Math.max(2,i);const s=Ha({maxTicks:i,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:!1!==e.includeBounds},this._range||this);return"ticks"===t.bounds&&Bt(s,this,"value"),t.reverse?(s.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),s}configure(){const t=this.ticks;let e=this.min,i=this.max;if(super.configure(),this.options.offset&&t.length){const s=(i-e)/Math.max(t.length-1,1)/2;e-=s,i+=s}this._startValue=e,this._endValue=i,this._valueRange=i-e}getLabelForValue(t){return hs(t,this.chart.options.locale,this.options.ticks.format)}}class Ua extends Ya{determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=lt(t)?t:0,this.max=lt(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,i=Nt(this.options.ticks.minRotation),s=(t?Math.sin(i):Math.cos(i))||.001,n=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,n.lineHeight/s))}getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}function Xa(t){return 1===t/Math.pow(10,Math.floor(It(t)))}Ua.id="linear",Ua.defaults={ticks:{callback:en.formatters.numeric}};class qa extends dn{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const i=Ya.prototype.parse.apply(this,[t,e]);if(0!==i)return lt(i)&&i>0?i:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=lt(t)?Math.max(0,t):null,this.max=lt(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let i=this.min,s=this.max;const n=e=>i=t?i:e,o=t=>s=e?s:t,a=(t,e)=>Math.pow(10,Math.floor(It(t))+e);i===s&&(i<=0?(n(1),o(10)):(n(a(i,-1)),o(a(s,1)))),i<=0&&n(a(s,-1)),s<=0&&o(a(i,1)),this._zero&&this.min!==this._suggestedMin&&i===a(this.min,0)&&n(a(i,-1)),this.min=i,this.max=s}buildTicks(){const t=this.options,e=function(t,e){const i=Math.floor(It(e.max)),s=Math.ceil(e.max/Math.pow(10,i)),n=[];let o=ht(t.min,Math.pow(10,Math.floor(It(e.min)))),a=Math.floor(It(o)),r=Math.floor(o/Math.pow(10,a)),l=a<0?Math.pow(10,Math.abs(a)):1;do{n.push({value:o,major:Xa(o)}),++r,10===r&&(r=1,++a,l=a>=0?1:l),o=Math.round(r*Math.pow(10,a)*l)/l}while(an?{start:e-i,end:e}:{start:e,end:e+i}}function Ja(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},i=Object.assign({},e),s=[],n=[],o=t._pointLabels.length,a=t.options.pointLabels,r=a.centerPointLabels?Pt/o:0;for(let l=0;le.r&&(r=(s.end-e.r)/o,t.r=Math.max(t.r,e.r+r)),n.starte.b&&(l=(n.end-e.b)/a,t.b=Math.max(t.b,e.b+l))}function tr(t){return 0===t||180===t?"center":t<180?"left":"right"}function er(t,e,i){return"right"===i?t-=e:"center"===i&&(t-=e/2),t}function ir(t,e,i){return 90===i||270===i?t-=e/2:(i>270||i<90)&&(t-=e),t}function sr(t,e,i,s){const{ctx:n}=t;if(i)n.arc(t.xCenter,t.yCenter,e,0,Ot);else{let i=t.getPointPosition(0,e);n.moveTo(i.x,i.y);for(let o=1;o{const i=ut(this.options.pointLabels.callback,[t,e],this);return i||0===i?i:""}).filter((t,e)=>this.chart.getDataVisibility(e))}fit(){const t=this.options;t.display&&t.pointLabels.display?Ja(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,s){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,s))}getIndexAngle(t){return Xt(t*(Ot/(this._pointLabels.length||1))+Nt(this.options.startAngle||0))}getDistanceFromCenterForValue(t){if(ot(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(ot(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t=0;n--){const e=s.setContext(t.getPointLabelContext(n)),o=Mi(e.font),{x:a,y:r,textAlign:l,left:h,top:c,right:d,bottom:u}=t._pointLabelItems[n],{backdropColor:f}=e;if(!ot(f)){const t=vi(e.borderRadius),s=wi(e.backdropPadding);i.fillStyle=f;const n=h-s.left,o=c-s.top,a=d-h+s.width,r=u-c+s.height;Object.values(t).some(t=>0!==t)?(i.beginPath(),gi(i,{x:n,y:o,w:a,h:r,radius:t}),i.fill()):i.fillRect(n,o,a,r)}ui(i,t._pointLabels[n],a,r+o.lineHeight/2,o,{color:e.color,textAlign:l,textBaseline:"middle"})}}(this,n),s.display&&this.ticks.forEach((t,e)=>{if(0!==e){a=this.getDistanceFromCenterForValue(t.value);!function(t,e,i,s){const n=t.ctx,o=e.circular,{color:a,lineWidth:r}=e;!o&&!s||!a||!r||i<0||(n.save(),n.strokeStyle=a,n.lineWidth=r,n.setLineDash(e.borderDash),n.lineDashOffset=e.borderDashOffset,n.beginPath(),sr(t,i,o,s),n.closePath(),n.stroke(),n.restore())}(this,s.setContext(this.getContext(e-1)),a,n)}}),i.display){for(t.save(),o=n-1;o>=0;o--){const s=i.setContext(this.getPointLabelContext(o)),{color:n,lineWidth:l}=s;l&&n&&(t.lineWidth=l,t.strokeStyle=n,t.setLineDash(s.borderDash),t.lineDashOffset=s.borderDashOffset,a=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),r=this.getPointPosition(o,a),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(r.x,r.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;const s=this.getIndexAngle(0);let n,o;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach((s,a)=>{if(0===a&&!e.reverse)return;const r=i.setContext(this.getContext(a)),l=Mi(r.font);if(n=this.getDistanceFromCenterForValue(this.ticks[a].value),r.showLabelBackdrop){t.font=l.string,o=t.measureText(s.label).width,t.fillStyle=r.backdropColor;const e=wi(r.backdropPadding);t.fillRect(-o/2-e.left,-n-l.size/2-e.top,o+e.width,l.size+e.height)}ui(t,s.label,0,-n,l,{color:r.color})}),t.restore()}drawTitle(){}}nr.id="radialLinear",nr.defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:en.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback:t=>t,padding:5,centerPointLabels:!1}},nr.defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"},nr.descriptors={angleLines:{_fallback:"grid"}};const or={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ar=Object.keys(or);function rr(t,e){return t-e}function lr(t,e){if(ot(e))return null;const i=t._adapter,{parser:s,round:n,isoWeekday:o}=t._parseOpts;let a=e;return"function"==typeof s&&(a=s(a)),lt(a)||(a="string"==typeof s?i.parse(a,s):i.parse(a)),null===a?null:(n&&(a="week"!==n||!$t(o)&&!0!==o?i.startOf(a,n):i.startOf(a,"isoWeek",o)),+a)}function hr(t,e,i,s){const n=ar.length;for(let o=ar.indexOf(t);o=e?i[s]:i[n]]=!0}}else t[e]=!0}function dr(t,e,i){const s=[],n={},o=e.length;let a,r;for(a=0;a=0&&(e[l].major=!0);return e}(t,s,n,i):s}class ur extends dn{constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,e){const i=t.time||(t.time={}),s=this._adapter=new xn._date(t.adapters.date);s.init(e),_t(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=e.normalized}parse(t,e){return void 0===t?null:lr(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,e=this._adapter,i=t.time.unit||"day";let{min:s,max:n,minDefined:o,maxDefined:a}=this.getUserBounds();function r(t){o||isNaN(t.min)||(s=Math.min(s,t.min)),a||isNaN(t.max)||(n=Math.max(n,t.max))}o&&a||(r(this._getLabelBounds()),"ticks"===t.bounds&&"labels"===t.ticks.source||r(this.getMinMax(!1))),s=lt(s)&&!isNaN(s)?s:+e.startOf(Date.now(),i),n=lt(n)&&!isNaN(n)?n:+e.endOf(Date.now(),i)+1,this.min=Math.min(s,n-1),this.max=Math.max(s+1,n)}_getLabelBounds(){const t=this.getLabelTimestamps();let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(e=t[0],i=t[t.length-1]),{min:e,max:i}}buildTicks(){const t=this.options,e=t.time,i=t.ticks,s="labels"===i.source?this.getLabelTimestamps():this._generate();"ticks"===t.bounds&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const n=this.min,o=function(t,e,i){let s=0,n=t.length;for(;ss&&t[n-1]>i;)n--;return s>0||n=ar.indexOf(i);o--){const i=ar[o];if(or[i].common&&t._adapter.diff(n,s,i)>=e-1)return i}return ar[i?ar.indexOf(i):0]}(this,o.length,e.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&"year"!==this._unit?function(t){for(let e=ar.indexOf(t)+1,i=ar.length;e+t.value))}initOffsets(t){let e,i,s=0,n=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),s=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)/2,i=this.getDecimalForValue(t[t.length-1]),n=1===t.length?i:(i-this.getDecimalForValue(t[t.length-2]))/2);const o=t.length<3?.5:.25;s=Kt(s,0,o),n=Kt(n,0,o),this._offsets={start:s,end:n,factor:1/(s+1+n)}}_generate(){const t=this._adapter,e=this.min,i=this.max,s=this.options,n=s.time,o=n.unit||hr(n.minUnit,e,i,this._getLabelCapacity(e)),a=ct(n.stepSize,1),r="week"===o&&n.isoWeekday,l=$t(r)||!0===r,h={};let c,d,u=e;if(l&&(u=+t.startOf(u,"isoWeek",r)),u=+t.startOf(u,l?"day":o),t.diff(i,e,o)>1e5*a)throw new Error(e+" and "+i+" are too far apart with stepSize of "+a+" "+o);const f="data"===s.ticks.source&&this.getDataTimestamps();for(c=u,d=0;ct-e).map(t=>+t)}getLabelForValue(t){const e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}_tickFormatFunction(t,e,i,s){const n=this.options,o=n.time.displayFormats,a=this._unit,r=this._majorUnit,l=a&&o[a],h=r&&o[r],c=i[e],d=r&&h&&c&&c.major,u=this._adapter.format(t,s||(d?h:l)),f=n.ticks.callback;return f?ut(f,[u,e,i],this):u}generateTickLabels(t){let e,i,s;for(e=0,i=t.length;e0?a:1}getDataTimestamps(){let t,e,i=this._cache.data||[];if(i.length)return i;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(t=0,e=s.length;t=t[r].pos&&e<=t[l].pos&&({lo:r,hi:l}=Jt(t,"pos",e)),({pos:s,time:o}=t[r]),({pos:n,time:a}=t[l])):(e>=t[r].time&&e<=t[l].time&&({lo:r,hi:l}=Jt(t,"time",e)),({time:s,pos:o}=t[r]),({time:n,pos:a}=t[l]));const h=n-s;return h?o+(a-o)*(e-s)/h:o}ur.id="time",ur.defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",major:{enabled:!1}}};class gr extends ur{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=fr(e,this.min),this._tableRange=fr(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:i}=this,s=[],n=[];let o,a,r,l,h;for(o=0,a=t.length;o=e&&l<=i&&s.push(l);if(s.length<2)return[{time:e,pos:0},{time:i,pos:1}];for(o=0,a=s.length;o{l=new Do(s,{type:o,data:n,options:a,plugins:r})}),T(()=>{l&&(l.data=n,l.type=o,l.options=a,l.plugins=r,l.update())}),E(()=>{l&&l.destroy(),l=null}),t.$$set=t=>{i(8,e=C(C({},e),L(t))),"data"in t&&i(2,n=t.data),"type"in t&&i(3,o=t.type),"options"in t&&i(4,a=t.options),"plugins"in t&&i(5,r=t.plugins)},e=L(e),[s,h,n,o,a,r,function(t){R[t?"unshift":"push"](()=>{s=t,i(0,s)})}]}class xr extends t{constructor(t){super(),e(this,t,br,mr,i,{data:2,type:3,options:4,plugins:5})}}function _r(t){let e,i;const s=[t[0],{type:"line"}];let n={};for(let t=0;t{i(0,e=C(C({},e),L(t)))},[e=L(e)]}class vr extends t{constructor(t){super(),e(this,t,yr,_r,i,{})}}function wr(t){let e,i,l,c,u,x=f.i18n.sevelDayResponseTime+"";return c=new vr({props:{data:{labels:t[1],datasets:[{label:f.i18n.responseTimeMs,backgroundColor:f.graphBackgroundColor||"#89e0cf",borderColor:f.graphBorderColor||"#1abc9c",data:t[2]}]},width:t[3],height:400,options:{responsive:!0,maintainAspectRatio:!0,scales:{xAxes:[{display:!1,gridLines:{display:!1}}]}}}}),{c(){e=s("h2"),i=g(x),l=p(),M(c.$$.fragment)},l(t){e=n(t,"H2",{});var s=o(e);i=m(s,x),s.forEach(a),l=b(t),k(c.$$.fragment,t)},m(t,s){r(t,e,s),y(e,i),r(t,l,s),S(c,t,s),u=!0},p(t,e){const i={};6&e&&(i.data={labels:t[1],datasets:[{label:f.i18n.responseTimeMs,backgroundColor:f.graphBackgroundColor||"#89e0cf",borderColor:f.graphBorderColor||"#1abc9c",data:t[2]}]}),8&e&&(i.width=t[3]),c.$set(i)},i(t){u||(d(c.$$.fragment,t),u=!0)},o(t){h(c.$$.fragment,t),u=!1},d(t){t&&a(e),t&&a(l),D(c,t)}}}function Mr(t){let e,i;return e=new B({}),{c(){M(e.$$.fragment)},l(t){k(e.$$.fragment,t)},m(t,s){S(e,t,s),i=!0},p:w,i(t){i||(d(e.$$.fragment,t),i=!0)},o(t){h(e.$$.fragment,t),i=!1},d(t){D(e,t)}}}function kr(t){let e,i,u,f,g;const p=[Mr,wr],m=[];function b(t,e){return t[0]?0:t[2].length?1:-1}return~(i=b(t))&&(u=m[i]=p[i](t)),{c(){e=s("section"),u&&u.c(),this.h()},l(t){e=n(t,"SECTION",{});var i=o(e);u&&u.l(i),i.forEach(a),this.h()},h(){F(()=>t[5].call(e))},m(s,n){r(s,e,n),~i&&m[i].m(e,null),f=$(e,t[5].bind(e)),g=!0},p(t,[s]){let n=i;i=b(t),i===n?~i&&m[i].p(t,s):(u&&(l(),h(m[n],1,1,()=>{m[n]=null}),c()),~i?(u=m[i],u?u.p(t,s):(u=m[i]=p[i](t),u.c()),d(u,1),u.m(e,null)):u=null)},i(t){g||(d(u),g=!0)},o(t){h(u),g=!1},d(t){t&&a(e),~i&&m[i].d(),f()}}}function Sr(t,e,i){let{slug:s}=e,n=!0;const o=N(),a=f.owner,r=f.repo;let l=[],h=[],c=[],d=800;return u(async()=>{try{l=(await W(`commits-${a}-${r}-${s}`,()=>o.repos.listCommits({owner:a,repo:r,path:`history/${s}.yml`,per_page:28}))).data.reverse()}catch(t){V(t)}l=l.map((t,e)=>(t.showHeading=0===e||new Date(l[e-1].created_at).toLocaleDateString()!==new Date(t.created_at).toLocaleDateString(),t)),i(2,c=l.filter(t=>t.commit.message.includes("ms) [skip ci]")).map(t=>parseInt(t.commit.message.split(" in ")[1].split("ms")[0]))),i(1,h=l.filter(t=>t.commit.message.includes("ms) [skip ci]")).map(t=>new Date(t.commit.committer.date).toLocaleString(f.i18n.locale))),i(0,n=!1)}),t.$$set=t=>{"slug"in t&&i(4,s=t.slug)},[n,h,c,d,s,function(){d=this.clientWidth,i(3,d)}]}class Dr extends t{constructor(t){super(),e(this,t,Sr,kr,i,{slug:4})}}function Pr(t){let e,i,s,n,o,l;return e=new q({props:{slug:t[0]}}),s=new Dr({props:{slug:t[0]}}),o=new it({props:{slug:t[0]}}),{c(){M(e.$$.fragment),i=p(),M(s.$$.fragment),n=p(),M(o.$$.fragment)},l(t){k(e.$$.fragment,t),i=b(t),k(s.$$.fragment,t),n=b(t),k(o.$$.fragment,t)},m(t,a){S(e,t,a),r(t,i,a),S(s,t,a),r(t,n,a),S(o,t,a),l=!0},p(t,[i]){const n={};1&i&&(n.slug=t[0]),e.$set(n);const a={};1&i&&(a.slug=t[0]),s.$set(a);const r={};1&i&&(r.slug=t[0]),o.$set(r)},i(t){l||(d(e.$$.fragment,t),d(s.$$.fragment,t),d(o.$$.fragment,t),l=!0)},o(t){h(e.$$.fragment,t),h(s.$$.fragment,t),h(o.$$.fragment,t),l=!1},d(t){D(e,t),t&&a(i),D(s,t),t&&a(n),D(o,t)}}}async function Or(t){const{number:e}=t.params;return{slug:e}}function Cr(t,e,i){let{slug:s}=e;return t.$$set=t=>{"slug"in t&&i(0,s=t.slug)},[s]}class Ar extends t{constructor(t){super(),e(this,t,Cr,Pr,i,{slug:0})}}export{Ar as default,Or as preload}; diff --git a/client/_number_.95d412ab.js b/client/_number_.95d412ab.js new file mode 100644 index 0000000000..daf3ab1843 --- /dev/null +++ b/client/_number_.95d412ab.js @@ -0,0 +1 @@ +import{S as t,i as e,s as a,r as n,a as r,e as i,m as s,K as l,f as c,c as o,b as d,d as m,n as u,g as h,h as f,p,j as $,t as g,k as D,l as v,o as E,L as w,I as T,A as b,q as A,u as L,v as S,w as _,x as O,y,z as M}from"./client.5d2441db.js";import{c as x,a as C,h as H,L as I}from"./createOctokit.e2a69796.js";function R(t,e,a){const n=t.slice();return n[9]=e[a],n}function N(t){let e,a,l,$,g,D=t[4].title+"",v=("closed"===t[4].state?t[4].metadata.start?n.i18n.incidentCompleted:n.i18n.incidentFixed:t[4].metadata.start?n.i18n.incidentScheduled:n.i18n.incidentOngoing)+"";return{c(){e=s(D),a=r(),l=i("span"),$=s(v),this.h()},l(t){e=u(t,D),a=o(t),l=d(t,"SPAN",{class:!0});var n=m(l);$=u(n,v),n.forEach(c),this.h()},h(){h(l,"class",g=T(`tag ${t[4].state}`)+" svelte-4o16l6")},m(t,n){f(t,e,n),f(t,a,n),f(t,l,n),p(l,$)},p(t,a){16&a&&D!==(D=t[4].title+"")&&b(e,D),16&a&&v!==(v=("closed"===t[4].state?t[4].metadata.start?n.i18n.incidentCompleted:n.i18n.incidentFixed:t[4].metadata.start?n.i18n.incidentScheduled:n.i18n.incidentOngoing)+"")&&b($,v),16&a&&g!==(g=T(`tag ${t[4].state}`)+" svelte-4o16l6")&&h(l,"class",g)},d(t){t&&c(e),t&&c(a),t&&c(l)}}}function U(t){let e,a=n.i18n.incidentDetails+"";return{c(){e=s(a)},l(t){e=u(t,a)},m(t,a){f(t,e,a)},p:A,d(t){t&&c(e)}}}function V(t){let e,a,l,$,g,D,v,E,w,T,b,_=n.i18n.incidentViewOnGitHub+"";function O(t,e){return t[4].metadata.start?B:k}let y=O(t),M=y(t);function x(t,e){return t[4].metadata.start&&t[4].metadata.end?P:t[4].closed_at?F:void 0}let C=x(t),H=C&&C(t),I=t[3],N=[];for(let e=0;e${new Date(t[9].created_at).toLocaleString(n.i18n.locale)}`).replace(/\$AUTHOR/g,`@${t[9].user.login}`)+"";return{c(){e=i("article"),a=i("p"),s=r(),l=i("div"),u=r(),this.h()},l(t){e=d(t,"ARTICLE",{});var n=m(e);a=d(n,"P",{class:!0}),m(a).forEach(c),s=o(n),l=d(n,"DIV",{}),m(l).forEach(c),u=o(n),n.forEach(c),this.h()},h(){h(a,"class","svelte-4o16l6")},m(t,n){f(t,e,n),p(e,a),a.innerHTML=$,p(e,s),p(e,l),l.innerHTML=g,p(e,u)},p(t,e){8&e&&$!==($=t[5](t[9].body)+"")&&(a.innerHTML=$),8&e&&g!==(g=n.i18n.incidentCommentSummary.replace(/\$DATE/g,`${new Date(t[9].created_at).toLocaleString(n.i18n.locale)}`).replace(/\$AUTHOR/g,`@${t[9].user.login}`)+"")&&(l.innerHTML=g)},d(t){t&&c(e)}}}function z(t){let e,a,E,w,T,b,A,L,S,_,O,y,M=n.i18n.incidentBack+"";function x(t,e){return t[2]?U:N}document.title=e=n.i18n.incidentTitle.replace("$NUMBER",t[0]);let C=x(t),H=C(t);const I=[j,V],R=[];function k(t,e){return t[1]?0:1}return b=k(t),A=R[b]=I[b](t),{c(){a=r(),E=i("h2"),H.c(),w=r(),T=i("section"),A.c(),L=r(),S=i("footer"),_=i("a"),O=s(M),this.h()},l(t){l("svelte-slinv8",document.head).forEach(c),a=o(t),E=d(t,"H2",{class:!0});var e=m(E);H.l(e),e.forEach(c),w=o(t),T=d(t,"SECTION",{});var n=m(T);A.l(n),n.forEach(c),L=o(t),S=d(t,"FOOTER",{class:!0});var r=m(S);_=d(r,"A",{href:!0});var i=m(_);O=u(i,M),i.forEach(c),r.forEach(c),this.h()},h(){h(E,"class","svelte-4o16l6"),h(_,"href",n.path),h(S,"class","svelte-4o16l6")},m(t,e){f(t,a,e),f(t,E,e),H.m(E,null),f(t,w,e),f(t,T,e),R[b].m(T,null),f(t,L,e),f(t,S,e),p(S,_),p(_,O),y=!0},p(t,[a]){(!y||1&a)&&e!==(e=n.i18n.incidentTitle.replace("$NUMBER",t[0]))&&(document.title=e),C===(C=x(t))&&H?H.p(t,a):(H.d(1),H=C(t),H&&(H.c(),H.m(E,null)));let r=b;b=k(t),b===r?R[b].p(t,a):($(),g(R[r],1,1,()=>{R[r]=null}),D(),A=R[b],A?A.p(t,a):(A=R[b]=I[b](t),A.c()),v(A,1),A.m(T,null))},i(t){y||(v(A),y=!0)},o(t){g(A),y=!1},d(t){t&&c(a),t&&c(E),H.d(),t&&c(w),t&&c(T),R[b].d(),t&&c(L),t&&c(S)}}}function G(t,e,a){let{number:r}=e,i=w,s=!0,l=!0;const c=x(),o=n.owner,d=n.repo;let m=[],u={};return E(async()=>{try{if(a(4,u=(await C(`issue-${o}-${d}-${r}`,()=>c.issues.get({owner:o,repo:d,issue_number:r,sort:"created",direction:"desc"}))).data),a(4,u.metadata={},u),u.body.includes("\x3c!--")){const t=u.body.split("\x3c!--")[1].split("--\x3e")[0];t.split("\n").filter(t=>t.trim()).filter(t=>t.includes(":")).forEach(t=>{a(4,u.metadata[t.split(/:(.+)/)[0].trim()]=t.split(/:(.+)/)[1].trim(),u)})}}catch(t){H(t)}a(2,l=!1);try{a(3,m=(await C(`issue-comments-${o}-${d}-${r}`,()=>c.issues.listComments({owner:o,repo:d,issue_number:r}))).data.reverse())}catch(t){H(t)}a(1,s=!1)}),t.$$set=t=>{"number"in t&&a(0,r=t.number)},[r,s,l,m,u,i]}class K extends t{constructor(t){super(),e(this,t,G,z,a,{number:0})}}function J(t){let e,a;return e=new K({props:{number:t[0]}}),{c(){_(e.$$.fragment)},l(t){O(e.$$.fragment,t)},m(t,n){y(e,t,n),a=!0},p(t,[a]){const n={};1&a&&(n.number=t[0]),e.$set(n)},i(t){a||(v(e.$$.fragment,t),a=!0)},o(t){g(e.$$.fragment,t),a=!1},d(t){M(e,t)}}}async function Q(t){const{number:e}=t.params;return{number:e}}function W(t,e,a){let{number:n}=e;return t.$$set=t=>{"number"in t&&a(0,n=t.number)},[n]}class X extends t{constructor(t){super(),e(this,t,W,J,a,{number:0})}}export{X as default,Q as preload}; diff --git a/client/client-31a52aa5.css b/client/client-31a52aa5.css new file mode 100644 index 0000000000..d32560ac0c --- /dev/null +++ b/client/client-31a52aa5.css @@ -0,0 +1,6 @@ +nav.svelte-a08hsz.svelte-a08hsz{font-weight:300;padding:0 1em;margin-bottom:2rem;white-space:nowrap;overflow-x:auto}ul.svelte-a08hsz.svelte-a08hsz{margin:0;padding:0;display:flex;list-style:none;align-items:center;justify-content:center}a.svelte-a08hsz.svelte-a08hsz{text-decoration:none;padding:1.5rem 2rem;display:block}.logo.svelte-a08hsz.svelte-a08hsz{float:left;display:flex;align-items:center;padding:0.5rem 0;font-weight:bold;margin-right:2rem}.logo.svelte-a08hsz img.svelte-a08hsz{margin-right:1rem;height:3rem;border-radius:0.2rem}.container.svelte-a08hsz.svelte-a08hsz{display:flex;justify-content:space-between;align-items:center} +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmF2LnN2ZWx0ZSIsInNvdXJjZXMiOlsiTmF2LnN2ZWx0ZSJdLCJzb3VyY2VzQ29udGVudCI6WyI8c2NyaXB0PlxuICBpbXBvcnQgY29uZmlnIGZyb20gXCIuLi9kYXRhL2NvbmZpZy5qc29uXCI7XG4gIGV4cG9ydCBsZXQgc2VnbWVudDtcbjwvc2NyaXB0PlxuXG48bmF2PlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgeyNpZiBjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXSAmJiBjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXS5sb2dvVXJsfVxuICAgICAgPGRpdj5cbiAgICAgICAgPGEgaHJlZj17Y29uZmlnW1wic3RhdHVzLXdlYnNpdGVcIl0ubG9nb0hyZWYgfHwgY29uZmlnLnBhdGh9IGNsYXNzPVwibG9nb1wiPlxuICAgICAgICAgIHsjaWYgY29uZmlnW1wic3RhdHVzLXdlYnNpdGVcIl0gJiYgIWNvbmZpZ1tcInN0YXR1cy13ZWJzaXRlXCJdLmhpZGVOYXZMb2dvfVxuICAgICAgICAgICAgPGltZyBhbHQ9XCJcIiBzcmM9e2NvbmZpZ1tcInN0YXR1cy13ZWJzaXRlXCJdLmxvZ29Vcmx9IC8+XG4gICAgICAgICAgey9pZn1cbiAgICAgICAgICB7I2lmIGNvbmZpZ1tcInN0YXR1cy13ZWJzaXRlXCJdICYmICFjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXS5oaWRlTmF2VGl0bGV9XG4gICAgICAgICAgICA8ZGl2Pntjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXS5uYW1lfTwvZGl2PlxuICAgICAgICAgIHsvaWZ9XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgIHsvaWZ9XG4gICAgPHVsPlxuICAgICAgeyNpZiBjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXSAmJiBjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXS5uYXZiYXJ9XG4gICAgICAgIHsjZWFjaCBjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXS5uYXZiYXIgYXMgaXRlbX1cbiAgICAgICAgICA8bGk+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBhcmlhLWN1cnJlbnQ9e3NlZ21lbnQgPT09IChpdGVtLmhyZWYgPT09IFwiL1wiID8gdW5kZWZpbmVkIDogaXRlbS5ocmVmKVxuICAgICAgICAgICAgICAgID8gXCJwYWdlXCJcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgaHJlZj17aXRlbS5ocmVmLnJlcGxhY2UoXCIkT1dORVJcIiwgY29uZmlnLm93bmVyKS5yZXBsYWNlKFwiJFJFUE9cIiwgY29uZmlnLnJlcG8pfVxuICAgICAgICAgICAgICB0YXJnZXQ9e2l0ZW0udGFyZ2V0IHx8IFwiX3NlbGZcIn0+XG4gICAgICAgICAgICAgIHtpdGVtLnRpdGxlfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIHsvZWFjaH1cbiAgICAgIHsvaWZ9XG4gICAgICB7I2lmIGNvbmZpZ1tcInN0YXR1cy13ZWJzaXRlXCJdICYmIGNvbmZpZ1tcInN0YXR1cy13ZWJzaXRlXCJdLm5hdmJhckdpdEh1YiAmJiAhY29uZmlnW1wic3RhdHVzLXdlYnNpdGVcIl0ubmF2YmFyfVxuICAgICAgICA8bGk+XG4gICAgICAgICAgPGEgaHJlZj17YGh0dHBzOi8vZ2l0aHViLmNvbS8ke2NvbmZpZy5vd25lcn0vJHtjb25maWcucmVwb31gfT5cbiAgICAgICAgICAgIHtjb25maWcuaTE4bi5uYXZHaXRIdWJ9XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgey9pZn1cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvbmF2PlxuXG48c3R5bGU+XG4gIG5hdiB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBwYWRkaW5nOiAwIDFlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxuXG4gIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMnJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5sb2dvIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMC41cmVtIDA7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAycmVtO1xuICB9XG4gIC5sb2dvIGltZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIGhlaWdodDogM3JlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwLjJyZW07XG4gIH1cbiAgLmNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuPC9zdHlsZT5cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4Q0UsK0JBQUksQ0FDRixXQUFXLENBQUUsR0FBRyxDQUNoQixPQUFPLENBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDZCxhQUFhLENBQUUsSUFBSSxDQUNuQixXQUFXLENBQUUsTUFBTSxDQUNuQixVQUFVLENBQUUsSUFDZCxDQUVBLDhCQUFHLENBQ0QsTUFBTSxDQUFFLENBQUMsQ0FDVCxPQUFPLENBQUUsQ0FBQyxDQUNWLE9BQU8sQ0FBRSxJQUFJLENBQ2IsVUFBVSxDQUFFLElBQUksQ0FDaEIsV0FBVyxDQUFFLE1BQU0sQ0FDbkIsZUFBZSxDQUFFLE1BQ25CLENBRUEsNkJBQUUsQ0FDQSxlQUFlLENBQUUsSUFBSSxDQUNyQixPQUFPLENBQUUsTUFBTSxDQUFDLElBQUksQ0FDcEIsT0FBTyxDQUFFLEtBQ1gsQ0FFQSxpQ0FBTSxDQUNKLEtBQUssQ0FBRSxJQUFJLENBQ1gsT0FBTyxDQUFFLElBQUksQ0FDYixXQUFXLENBQUUsTUFBTSxDQUNuQixPQUFPLENBQUUsTUFBTSxDQUFDLENBQUMsQ0FDakIsV0FBVyxDQUFFLElBQUksQ0FDakIsWUFBWSxDQUFFLElBQ2hCLENBQ0EsbUJBQUssQ0FBQyxpQkFBSSxDQUNSLFlBQVksQ0FBRSxJQUFJLENBQ2xCLE1BQU0sQ0FBRSxJQUFJLENBQ1osYUFBYSxDQUFFLE1BQ2pCLENBQ0Esc0NBQVcsQ0FDVCxPQUFPLENBQUUsSUFBSSxDQUNiLGVBQWUsQ0FBRSxhQUFhLENBQzlCLFdBQVcsQ0FBRSxNQUNmIn0= */ +footer.svelte-jbr799{text-align:center;opacity:0.75;margin-top:3rem} +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2xheW91dC5zdmVsdGUiLCJzb3VyY2VzIjpbIl9sYXlvdXQuc3ZlbHRlIl0sInNvdXJjZXNDb250ZW50IjpbIjxzY3JpcHQ+XG4gIGltcG9ydCBOYXYgZnJvbSBcIi4uL2NvbXBvbmVudHMvTmF2LnN2ZWx0ZVwiO1xuICBpbXBvcnQgY29uZmlnIGZyb20gXCIuLi9kYXRhL2NvbmZpZy5qc29uXCI7XG4gIGltcG9ydCBzbmFya2Rvd24gZnJvbSBcInNuYXJrZG93blwiO1xuICBleHBvcnQgbGV0IHNlZ21lbnQ7XG48L3NjcmlwdD5cblxuPHN2ZWx0ZTpoZWFkPlxuICB7I2lmIChjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXSB8fCB7fSkuY3VzdG9tSGVhZEh0bWx9XG4gICAge0BodG1sIChjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXSB8fCB7fSkuY3VzdG9tSGVhZEh0bWx9XG4gIHsvaWZ9XG4gIHsjaWYgKGNvbmZpZ1tcInN0YXR1cy13ZWJzaXRlXCJdIHx8IHt9KS50aGVtZVVybH1cbiAgICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj17KGNvbmZpZ1tcInN0YXR1cy13ZWJzaXRlXCJdIHx8IHt9KS50aGVtZVVybH0gLz5cbiAgezplbHNlIGlmIChjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXSB8fCB7fSkudGhlbWV9XG4gICAgPGxpbmtcbiAgICAgIHJlbD1cInN0eWxlc2hlZXRcIlxuICAgICAgaHJlZj17YCR7Y29uZmlnLnBhdGh9L3RoZW1lcy8ke2NvbmZpZ1tcInN0YXR1cy13ZWJzaXRlXCJdLnRoZW1lfS5jc3NgfVxuICAgIC8+XG4gIHs6ZWxzZX1cbiAgICA8IS0tIGh0dHBzOi8vY2FuaXVzZS5jb20vcHJlZmVycy1jb2xvci1zY2hlbWUgLS0+XG4gICAgPCEtLSBodHRwczovL3dlYi5kZXYvcHJlZmVycy1jb2xvci1zY2hlbWUvIC0tPlxuICAgIDxzY3JpcHQ+XG4gICAgICAvLyBJZiBgcHJlZmVycy1jb2xvci1zY2hlbWVgIGlzIG5vdCBzdXBwb3J0ZWQsIGZhbGwgYmFjayB0byBsaWdodCBtb2RlLlxuICAgICAgLy8gSW4gdGhpcyBjYXNlLCBsaWdodC5jc3Mgd2lsbCBiZSBkb3dubG9hZGVkIHdpdGggYGhpZ2hlc3RgIHByaW9yaXR5LlxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiICYmIFwibWF0Y2hNZWRpYVwiIGluIHdpbmRvdyAmJiB3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpLm1lZGlhID09PSAnbm90IGFsbCcpIHtcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIGRvY3VtZW50LmhlYWQuaW5zZXJ0QWRqYWNlbnRIVE1MKFxuICAgICAgICAgICdiZWZvcmVlbmQnLFxuICAgICAgICAgICc8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj17YCR7Y29uZmlnLnBhdGh9L3RoZW1lcy9saWdodC5jc3NgfSBvbmxvYWQ9XCJkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFxcJ1xcJ1wiPicsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgPC9zY3JpcHQ+XG4gICAgPGxpbmtcbiAgICAgIHJlbD1cInN0eWxlc2hlZXRcIlxuICAgICAgaHJlZj17YCR7Y29uZmlnLnBhdGh9L3RoZW1lcy9saWdodC5jc3NgfVxuICAgICAgbWVkaWE9XCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KVwiXG4gICAgLz5cbiAgICA8bGlua1xuICAgICAgcmVsPVwic3R5bGVzaGVldFwiXG4gICAgICBocmVmPXtgJHtjb25maWcucGF0aH0vdGhlbWVzL2RhcmsuY3NzYH1cbiAgICAgIG1lZGlhPVwiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKVwiXG4gICAgLz5cbiAgey9pZn1cbiAgPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIGhyZWY9e2Ake2NvbmZpZy5wYXRofS9nbG9iYWwuY3NzYH0gLz5cbiAgPGxpbmtcbiAgICByZWw9XCJpY29uXCJcbiAgICB0eXBlPVwiaW1hZ2Uvc3ZnXCJcbiAgICBocmVmPXsoY29uZmlnW1wic3RhdHVzLXdlYnNpdGVcIl0gfHwge30pLmZhdmljb25TdmcgfHxcbiAgICAgIChjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXSB8fCB7fSkuZmF2aWNvbiB8fFxuICAgICAgYGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS91cHB0aW1lL3VwcHRpbWUvbWFzdGVyL2Fzc2V0cy91cHB0aW1lLWljb24uc3ZnYH1cbiAgLz5cbiAgPGxpbmtcbiAgICByZWw9XCJpY29uXCJcbiAgICB0eXBlPVwiaW1hZ2UvcG5nXCJcbiAgICBocmVmPXsoY29uZmlnW1wic3RhdHVzLXdlYnNpdGVcIl0gfHwge30pLmZhdmljb24gfHwgYC9sb2dvLTE5Mi5wbmdgfVxuICAvPlxuICB7I2lmIChjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXSB8fCB7fSkuc2NyaXB0c31cbiAgICB7I2VhY2ggKGNvbmZpZ1tcInN0YXR1cy13ZWJzaXRlXCJdIHx8IHt9KS5zY3JpcHRzIGFzIHNjcmlwdH08c2NyaXB0XG4gICAgICAgIHNyYz17c2NyaXB0LnNyY31cbiAgICAgICAgYXN5bmM9eyEhc2NyaXB0LmFzeW5jfVxuICAgICAgICBkZWZlcj17ISFzY3JpcHQuYXN5bmN9PlxuICAgICAgPC9zY3JpcHQ+ey9lYWNofVxuICB7L2lmfVxuICB7I2lmIChjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXSB8fCB7fSkubGlua3N9XG4gICAgeyNlYWNoIChjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXSB8fCB7fSkubGlua3MgYXMgbGlua31cbiAgICAgIDxsaW5rIHJlbD17bGluay5yZWx9IGhyZWY9e2xpbmsuaHJlZn0gbWVkaWE9e2xpbmsubWVkaWF9IC8+XG4gICAgey9lYWNofVxuICB7L2lmfVxuICB7I2lmIChjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXSB8fCB7fSkubWV0YVRhZ3N9XG4gICAgeyNlYWNoIChjb25maWdbXCJzdGF0dXMtd2Vic2l0ZVwiXSB8fCB7fSkubWV0YVRhZ3MgYXMgbGlua31cbiAgICAgIDxtZXRhIG5hbWU9e2xpbmsubmFtZX0gY29udGVudD17bGluay5jb250ZW50fSAvPlxuICAgIHsvZWFjaH1cbiAgey9pZn1cbiAgeyNpZiBjb25maWdbJ3N0YXR1cy13ZWJzaXRlJ10uY3NzfVxuICAgIHtAaHRtbCBgPHN0eWxlPiR7Y29uZmlnWydzdGF0dXMtd2Vic2l0ZSddLmNzc308L3N0eWxlPmB9XG4gIHsvaWZ9XG4gIHsjaWYgY29uZmlnWydzdGF0dXMtd2Vic2l0ZSddLmpzfVxuICAgIHtAaHRtbCBgPHNjcmlwdD4ke2NvbmZpZ1snc3RhdHVzLXdlYnNpdGUnXS5qc308L3NjcmlwdD5gfVxuICB7L2lmfVxuPC9zdmVsdGU6aGVhZD5cblxueyNpZiAoY29uZmlnW1wic3RhdHVzLXdlYnNpdGVcIl0gfHwge30pLmN1c3RvbUJvZHlIdG1sfVxuICB7QGh0bWwgKGNvbmZpZ1tcInN0YXR1cy13ZWJzaXRlXCJdIHx8IHt9KS5jdXN0b21Cb2R5SHRtbH1cbnsvaWZ9XG5cbjxOYXYge3NlZ21lbnR9IC8+XG5cbjxtYWluIGNsYXNzPVwiY29udGFpbmVyXCI+XG4gIDxzbG90IC8+XG48L21haW4+XG5cbjxmb290ZXI+XG4gIDxwPlxuICAgIHtAaHRtbCBzbmFya2Rvd24oXG4gICAgICBjb25maWcuaTE4bi5mb290ZXIucmVwbGFjZSgvXFwkUkVQTy8sIGBodHRwczovL2dpdGh1Yi5jb20vJHtjb25maWcub3duZXJ9LyR7Y29uZmlnLnJlcG99YClcbiAgICApfVxuICA8L3A+XG48L2Zvb3Rlcj5cblxuPHN0eWxlPlxuICBmb290ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAwLjc1O1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG4gIH1cbjwvc3R5bGU+XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0dFLG9CQUFPLENBQ0wsVUFBVSxDQUFFLE1BQU0sQ0FDbEIsT0FBTyxDQUFFLElBQUksQ0FDYixVQUFVLENBQUUsSUFDZCJ9 */ +h1.svelte-17w3omn,p.svelte-17w3omn{margin:0 auto}h1.svelte-17w3omn{font-size:2.8em;font-weight:700;margin:0 0 0.5em 0}p.svelte-17w3omn{margin:1em auto}@media(min-width: 480px){h1.svelte-17w3omn{font-size:4em}} +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2Vycm9yLnN2ZWx0ZSIsInNvdXJjZXMiOlsiX2Vycm9yLnN2ZWx0ZSJdLCJzb3VyY2VzQ29udGVudCI6WyI8c2NyaXB0PlxuICBleHBvcnQgbGV0IHN0YXR1cztcbiAgZXhwb3J0IGxldCBlcnJvcjtcblxuICBjb25zdCBkZXYgPSB1bmRlZmluZWQgPT09IFwiZGV2ZWxvcG1lbnRcIjtcbjwvc2NyaXB0PlxuXG48c3R5bGU+XG4gIGgxLFxuICBwIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDIuOGVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgMC41ZW0gMDtcbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbjogMWVtIGF1dG87XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICBoMSB7XG4gICAgICBmb250LXNpemU6IDRlbTtcbiAgICB9XG4gIH1cbjwvc3R5bGU+XG5cbjxzdmVsdGU6aGVhZD5cbiAgPHRpdGxlPntzdGF0dXN9PC90aXRsZT5cbjwvc3ZlbHRlOmhlYWQ+XG5cbjxoMT57c3RhdHVzfTwvaDE+XG5cbjxwPntlcnJvci5tZXNzYWdlfTwvcD5cblxueyNpZiBkZXYgJiYgZXJyb3Iuc3RhY2t9XG4gIDxwcmU+e2Vycm9yLnN0YWNrfTwvcHJlPlxuey9pZn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRRSxpQkFBRSxDQUNGLGdCQUFFLENBQ0EsTUFBTSxDQUFFLENBQUMsQ0FBQyxJQUNaLENBRUEsaUJBQUcsQ0FDRCxTQUFTLENBQUUsS0FBSyxDQUNoQixXQUFXLENBQUUsR0FBRyxDQUNoQixNQUFNLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDcEIsQ0FFQSxnQkFBRSxDQUNBLE1BQU0sQ0FBRSxHQUFHLENBQUMsSUFDZCxDQUVBLE1BQU8sWUFBWSxLQUFLLENBQUUsQ0FDeEIsaUJBQUcsQ0FDRCxTQUFTLENBQUUsR0FDYixDQUNGIn0= */ diff --git a/client/client.5d2441db.js b/client/client.5d2441db.js new file mode 100644 index 0000000000..a3b21a0458 --- /dev/null +++ b/client/client.5d2441db.js @@ -0,0 +1,18 @@ +function e(){}function t(e,t){for(const n in t)e[n]=t[n];return e}function n(e){return e()}function s(){return Object.create(null)}function r(e){e.forEach(n)}function o(e){return"function"==typeof e}function i(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}let a;function c(e,t){return a||(a=document.createElement("a")),a.href=t,e===a.href}function l(e,n,s,r){return e[1]&&r?t(s.ctx.slice(),e[1](r(n))):s.ctx}function u(e){const t={};for(const n in e)"$"!==n[0]&&(t[n]=e[n]);return t}function d(e){return null==e?"":e}let f=!1;function h(e,t,n,s){for(;e>1);n(r)<=s?e=r+1:t=r}return e}function p(e,t){if(f){for(!function(e){if(e.hydrate_init)return;e.hydrate_init=!0;let t=e.childNodes;if("HEAD"===e.nodeName){const e=[];for(let n=0;n0&&t[n[r]].claim_order<=o?r+1:h(1,r,e=>t[n[e]].claim_order,o))-1;s[e]=n[i]+1;const a=i+1;n[a]=e,r=Math.max(a,r)}const o=[],i=[];let a=t.length-1;for(let e=n[r]+1;0!=e;e=s[e-1]){for(o.push(t[e-1]);a>=e;a--)i.push(t[a]);a--}for(;a>=0;a--)i.push(t[a]);o.reverse(),i.sort((e,t)=>e.claim_order-t.claim_order);for(let t=0,n=0;t=o[n].claim_order;)n++;const s=ne.removeEventListener(t,n,s)}function T(e){return function(t){return t.preventDefault(),e.call(this,t)}}function x(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}const A=["width","height"];function L(e,t){const n=Object.getOwnPropertyDescriptors(e.__proto__);for(const s in t)null==t[s]?e.removeAttribute(s):"style"===s?e.style.cssText=t[s]:"__value"===s?e.value=e[s]=t[s]:n[s]&&n[s].set&&-1===A.indexOf(s)?e[s]=t[s]:x(e,s,t[s])}function N(e){let t;return{p(...n){t=n,t.forEach(t=>e.push(t))},r(){t.forEach(t=>e.splice(e.indexOf(t),1))}}}function R(e){return Array.from(e.childNodes)}function C(e){void 0===e.claim_info&&(e.claim_info={last_index:0,total_claimed:0})}function P(e,t,n,s,r=!1){C(e);const o=(()=>{for(let s=e.claim_info.last_index;s=0;s--){const o=e[s];if(t(o)){const t=n(o);return void 0===t?e.splice(s,1):e[s]=t,r?void 0===t&&e.claim_info.last_index--:e.claim_info.last_index=s,o}}return s()})();return o.claim_order=e.claim_info.total_claimed,e.claim_info.total_claimed+=1,o}function U(e,t,n,s){return P(e,e=>e.nodeName===t,e=>{const t=[];for(let s=0;se.removeAttribute(t))},()=>s(t))}function I(e,t,n){return U(e,t,n,v)}function k(e,t,n){return U(e,t,n,w)}function O(e,t){return P(e,e=>3===e.nodeType,e=>{const n=""+t;if(e.data.startsWith(n)){if(e.data.length!==n.length)return e.splitText(n.length)}else e.data=n},()=>y(t),!0)}function D(e){return O(e," ")}function H(e,t,n){for(let s=n;s{e.source===n.contentWindow&&t()})):(n.src="about:blank",n.onload=()=>{r=S(n.contentWindow,"resize",t),t()}),function(e,t){e.appendChild(t)}(e,n),()=>{(s||r&&n.contentWindow)&&r(),b(n)}}function Y(e,t){const n=[];let s=0;for(const r of t.childNodes)if(8===r.nodeType){const t=r.textContent.trim();t===`HEAD_${e}_END`?(s-=1,n.push(r)):t===`HEAD_${e}_START`&&(s+=1,n.push(r))}else s>0&&n.push(r);return n}class J{constructor(e=!1){this.is_svg=!1,this.is_svg=e,this.e=this.n=null}c(e){this.h(e)}m(e,t,n=null){this.e||(this.is_svg?this.e=w(t.nodeName):this.e=v(11===t.nodeType?"TEMPLATE":t.nodeName),this.t="TEMPLATE"!==t.tagName?t:t.content,this.c(e)),this.i(n)}h(e){this.e.innerHTML=e,this.n=Array.from("TEMPLATE"===this.e.nodeName?this.e.content.childNodes:this.e.childNodes)}i(e){for(let t=0;t{he.delete(e),s&&(n&&e.d(1),s())}),e.o(t)}else s&&s()}function ve(e,t){const n={},s={},r={$$scope:1};let o=e.length;for(;o--;){const i=e[o],a=t[o];if(a){for(const e in i)e in a||(s[e]=1);for(const e in a)r[e]||(n[e]=a[e],r[e]=1);e[o]=a}else for(const e in i)r[e]=1}for(const e in s)e in n||(n[e]=void 0);return n}function we(e){return"object"==typeof e&&null!==e?e:{}}function ye(e){e&&e.c()}function $e(e,t){e&&e.l(t)}function Ee(e,t,s,i){const{fragment:a,after_update:c}=e.$$;a&&a.m(t,s),i||ce(()=>{const t=e.$$.on_mount.map(n).filter(o);e.$$.on_destroy?e.$$.on_destroy.push(...t):r(t),e.$$.on_mount=[]}),c.forEach(ce)}function Se(e,t){const n=e.$$;null!==n.fragment&&(!function(e){const t=[],n=[];re.forEach(s=>-1===e.indexOf(s)?t.push(s):n.push(s)),n.forEach(e=>e()),re=t}(n.after_update),r(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function Te(e,t){-1===e.$$.dirty[0]&&(ne.push(e),ae||(ae=!0,ie.then(de)),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const r=s.length?s[0]:n;return h.ctx&&a(h.ctx[e],h.ctx[e]=r)&&(!h.skip_bound&&h.bound[e]&&h.bound[e](r),p&&Te(t,e)),n}):[],h.update(),p=!0,r(h.before_update),h.fragment=!!i&&i(h.ctx),n.target){if(n.hydrate){f=!0;const e=R(n.target);h.fragment&&h.fragment.l(e),e.forEach(b)}else h.fragment&&h.fragment.c();n.intro&&be(t.$$.fragment),Ee(t,n.target,n.anchor,n.customElement),f=!1,de()}F(d)}class Ae{$destroy(){Se(this,1),this.$destroy=e}$on(t,n){if(!o(n))return e;const s=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return s.push(n),()=>{const e=s.indexOf(n);-1!==e&&s.splice(e,1)}}$set(e){var t;this.$$set&&(t=e,0!==Object.keys(t).length)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const Le=[];function Ne(t,n=e){let s;const r=new Set;function o(e){if(i(t,e)&&(t=e,s)){const e=!Le.length;for(const e of r)e[1](),Le.push(e,t);if(e){for(let e=0;e{r.delete(c),0===r.size&&s&&(s(),s=null)}}}}const Re={};var Ce={owner:"xibosignage",repo:"status-page",sites:[{name:"Xibo Signage Website",url:"https://xibosignage.com",showAverageResponseTime:!1},{name:"Xibo Cloud United Kingdom/London",url:"$CLOUD_GB_URL",showAverageResponseTime:!1},{name:"Xibo Cloud CDN United Kingdom/London",url:"$CLOUD_GB_CDN_URL",showAverageResponseTime:!1},{name:"Xibo Cloud United States/New York",url:"$CLOUD_NYC_URL",showAverageResponseTime:!1},{name:"Xibo Cloud CDN United States/New York",url:"$CLOUD_NYC_CDN_URL",showAverageResponseTime:!1},{name:"Xibo Cloud Germany/Frankfurt",url:"$CLOUD_DEU_URL",showAverageResponseTime:!1},{name:"Xibo Cloud CDN Germany/Frankfurt",url:"$CLOUD_DEU_CDN_URL",showAverageResponseTime:!1},{name:"Xibo Cloud Singapore/Singapore",url:"$CLOUD_SGP_URL",showAverageResponseTime:!1},{name:"Xibo Cloud CDN Singapore/Singapore",url:"$CLOUD_SGP_CDN_URL",showAverageResponseTime:!1},{name:"Xibo Cloud Australia/Sydney",url:"$CLOUD_AUS_URL",showAverageResponseTime:!1},{name:"Xibo Cloud CDN Australia/Sydney",url:"$CLOUD_AUS_CDN_URL",showAverageResponseTime:!1},{name:"Xibo Player License Service",url:"$PLAYER_LICENSE_URL",showAverageResponseTime:!1}],assignees:["alexharrington","BenePhetes","raulgrajeda24"],"status-website":{baseUrl:"/status-page",logoUrl:"https://raw.githubusercontent.com/xibosignage/status-page/master/assets/xibo-logo.png",name:"Xibo Signage Service Status",introTitle:"Live Service Status",introMessage:"If you are having an issue and all services are up and running, please open a ticket with our support team who can assist you.",navbar:[{title:"Status",href:"/status-page/"},{title:"Support",href:"https://xibosignage.com/help"}]},path:"https://xibosignage.github.io/status-page",i18n:{activeIncidents:"Active Incidents",allSystemsOperational:"All systems are operational",incidentReport:"Incident #$NUMBER report →",activeIncidentSummary:"Opened at $DATE with $POSTS posts",incidentTitle:"Incident $NUMBER Details",incidentDetails:"Incident Details",incidentFixed:"Fixed",incidentOngoing:"Ongoing",incidentOpenedAt:"Opened at",incidentClosedAt:"Closed at",incidentViewOnGitHub:"View and Subscribe on GitHub",incidentCommentSummary:"Posted at $DATE by $AUTHOR",incidentBack:"← Back to all incidents",pastIncidents:"Past Incidents",pastIncidentsResolved:"Resolved in $MINUTES minutes with $POSTS posts",liveStatus:"Live Status",overallUptime:"Overall uptime: $UPTIME",overallUptimeTitle:"Overall uptime",averageResponseTime:"Average response time: $TIMEms",averageResponseTimeTitle:"Average response",sevelDayResponseTime:"7-day response time",responseTimeMs:"Response time (ms)",up:"Up",down:"Down",degraded:"Degraded",ms:"ms",loading:"Loading",navGitHub:"GitHub",footer:"This page is [open source]($REPO), powered by [Upptime](https://upptime.js.org)",rateLimitExceededTitle:"Rate limit exceeded",rateLimitExceededIntro:"You have exceeded the number of requests you can do in an hour, so you'll have to wait before accessing this website again. Alternately, you can add a GitHub Personal Access Token to continue to use this website.",rateLimitExceededWhatDoesErrorMean:"What does this error mean?",rateLimitExceededErrorMeaning:"This website uses the GitHub API to access real-time data about our websites' status. By default, GitHub allows each IP address 60 requests per hour, which you have consumed.",rateLimitExceededErrorHowCanFix:"How can I fix it?",rateLimitExceededErrorFix:"You can wait for another hour and your IP address' limit will be restored. Alternately, you can add your GitHub Personal Access Token, which gives you an additional 5,000 requests per hour.",rateLimitExceededGeneratePAT:"Learn how to generate a Personal Access Token",rateLimitExceededHasSet:"You have a personal access token set.",rateLimitExceededRemoveToken:"Remove token",rateLimitExceededGitHubPAT:"GitHub Personal Access Token",rateLimitExceededCopyPastePAT:"Copy and paste your token",rateLimitExceededSaveToken:"Save token",errorTitle:"An error occurred",errorIntro:"An error occurred in trying to get the latest status details.",errorText:"You can try again in a few moments.",errorHome:"Go to the homepage",pastScheduledMaintenance:"Past Scheduled Maintenance",scheduledMaintenance:"Scheduled Maintenance",scheduledMaintenanceSummaryStarted:"Started at $DATE for $DURATION minutes",scheduledMaintenanceSummaryStarts:"Starts at $DATE for $DURATION minutes",startedAt:"Started at",startsAt:"Starts at",duration:"Duration",durationMin:"$DURATION minutes",incidentCompleted:"Completed",incidentScheduled:"Scheduled",duration24H:"24h",duration7D:"7d",duration30D:"30d",duration1Y:"1y",durationAll:"all",locale:"en-US"}};function Pe(e,t,n){const s=e.slice();return s[1]=t[n],s}function Ue(t){let n,s,r,o=Ce["status-website"]&&!Ce["status-website"].hideNavLogo&&function(){let t,n;return{c(){t=v("img"),this.h()},l(e){t=I(e,"IMG",{alt:!0,src:!0,class:!0}),this.h()},h(){x(t,"alt",""),c(t.src,n=Ce["status-website"].logoUrl)||x(t,"src",n),x(t,"class","svelte-a08hsz")},m(e,n){g(e,t,n)},p:e,d(e){e&&b(t)}}}(),i=Ce["status-website"]&&!Ce["status-website"].hideNavTitle&&function(){let t,n,s=Ce["status-website"].name+"";return{c(){t=v("div"),n=y(s)},l(e){t=I(e,"DIV",{});var r=R(t);n=O(r,s),r.forEach(b)},m(e,s){g(e,t,s),p(t,n)},p:e,d(e){e&&b(t)}}}();return{c(){n=v("div"),s=v("a"),o&&o.c(),r=$(),i&&i.c(),this.h()},l(e){n=I(e,"DIV",{});var t=R(n);s=I(t,"A",{href:!0,class:!0});var a=R(s);o&&o.l(a),r=D(a),i&&i.l(a),a.forEach(b),t.forEach(b),this.h()},h(){x(s,"href",Ce["status-website"].logoHref||Ce.path),x(s,"class","logo svelte-a08hsz")},m(e,t){g(e,n,t),p(n,s),o&&o.m(s,null),p(s,r),i&&i.m(s,null)},p(e,t){Ce["status-website"]&&!Ce["status-website"].hideNavLogo&&o.p(e,t),Ce["status-website"]&&!Ce["status-website"].hideNavTitle&&i.p(e,t)},d(e){e&&b(n),o&&o.d(),i&&i.d()}}}function Ie(e){let t,n,s,r,o,i=e[1].title+"";return{c(){t=v("li"),n=v("a"),s=y(i),o=$(),this.h()},l(e){t=I(e,"LI",{});var r=R(t);n=I(r,"A",{"aria-current":!0,href:!0,target:!0,class:!0});var a=R(n);s=O(a,i),a.forEach(b),o=D(r),r.forEach(b),this.h()},h(){x(n,"aria-current",r=e[0]===("/"===e[1].href?void 0:e[1].href)?"page":void 0),x(n,"href",e[1].href.replace("$OWNER",Ce.owner).replace("$REPO",Ce.repo)),x(n,"target",e[1].target||"_self"),x(n,"class","svelte-a08hsz")},m(e,r){g(e,t,r),p(t,n),p(n,s),p(t,o)},p(e,t){1&t&&r!==(r=e[0]===("/"===e[1].href?void 0:e[1].href)?"page":void 0)&&x(n,"aria-current",r)},d(e){e&&b(t)}}}function ke(t){let n,s,r,o,i,a=Ce["status-website"]&&Ce["status-website"].logoUrl&&Ue(),c=Ce["status-website"]&&Ce["status-website"].navbar&&function(e){let t,n=Ce["status-website"].navbar,s=[];for(let t=0;t{"segment"in e&&n(0,s=e.segment)},[s]}class De extends Ae{constructor(e){super(),xe(this,e,Oe,ke,i,{segment:0})}}var He={"":["",""],_:["",""],"*":["",""],"~":["",""],"\n":["
"]," ":["
"],"-":["
"]};function Me(e){return e.replace(RegExp("^"+(e.match(/^(\t| )+/)||"")[0],"gm"),"")}function je(e){return(e+"").replace(/"/g,""").replace(//g,">")}function Ge(e,t){var n,s,r,o,i,a=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,c=[],l="",u=t||{},d=0;function f(e){var t=He[e[1]||""],n=c[c.length-1]==e;return t?t[1]?(n?c.pop():c.push(e),t[0|n]):t[0]:e}function h(){for(var e="";c.length;)e+=f(c[c.length-1]);return e}for(e=e.replace(/^\[(.+?)\]:\s*(.+)$/gm,function(e,t,n){return u[t.toLowerCase()]=n,""}).replace(/^\n+|\n+$/g,"");r=a.exec(e);)s=e.substring(d,r.index),d=a.lastIndex,n=r[0],s.match(/[^\\](\\\\)*\\$/)||((i=r[3]||r[4])?n='
"+Me(je(i).replace(/^\n+|\n+$/g,""))+"
":(i=r[6])?(i.match(/\./)&&(r[5]=r[5].replace(/^\d+/gm,"")),o=Ge(Me(r[5].replace(/^\s*[>*+.-]/gm,""))),">"==i?i="blockquote":(i=i.match(/\./)?"ol":"ul",o=o.replace(/^(.*)(\n|$)/gm,"
  • $1
  • ")),n="<"+i+">"+o+""):r[8]?n=''+je(r[7])+'':r[10]?(l=l.replace("",''),n=h()+""):r[9]?n="":r[12]||r[14]?n="<"+(i="h"+(r[14]?r[14].length:r[13]>"="?1:2))+">"+Ge(r[12]||r[15],u)+"":r[16]?n=""+je(r[16])+"":(r[17]||r[1])&&(n=f(r[17]||"--"))),l+=s,l+=n;return(l+e.substring(d)+h()).replace(/^\n+|\n+$/g,"")}function Be(e,t,n){const s=e.slice();return s[3]=t[n],s}function qe(e,t,n){const s=e.slice();return s[3]=t[n],s}function ze(e,t,n){const s=e.slice();return s[8]=t[n],s}function Ke(t){let n,s,r,o,i,a;return{c(){n=v("script"),s=y("// If `prefers-color-scheme` is not supported, fall back to light mode.\n // In this case, light.css will be downloaded with `highest` priority.\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\" && \"matchMedia\" in window && window.matchMedia('(prefers-color-scheme: dark)').media === 'not all') {\n document.documentElement.style.display = 'none';\n document.head.insertAdjacentHTML(\n 'beforeend',\n '',\n );\n }"),r=$(),o=v("link"),i=$(),a=v("link"),this.h()},l(e){n=I(e,"SCRIPT",{});var t=R(n);s=O(t,"// If `prefers-color-scheme` is not supported, fall back to light mode.\n // In this case, light.css will be downloaded with `highest` priority.\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\" && \"matchMedia\" in window && window.matchMedia('(prefers-color-scheme: dark)').media === 'not all') {\n document.documentElement.style.display = 'none';\n document.head.insertAdjacentHTML(\n 'beforeend',\n '',\n );\n }"),t.forEach(b),r=D(e),o=I(e,"LINK",{rel:!0,href:!0,media:!0}),i=D(e),a=I(e,"LINK",{rel:!0,href:!0,media:!0}),this.h()},h(){x(o,"rel","stylesheet"),x(o,"href",`${Ce.path}/themes/light.css`),x(o,"media","(prefers-color-scheme: light)"),x(a,"rel","stylesheet"),x(a,"href",`${Ce.path}/themes/dark.css`),x(a,"media","(prefers-color-scheme: dark)")},m(e,t){g(e,n,t),p(n,s),g(e,r,t),g(e,o,t),g(e,i,t),g(e,a,t)},p:e,d(e){e&&b(n),e&&b(r),e&&b(o),e&&b(i),e&&b(a)}}}function Xe(t){let n;return{c(){n=v("link"),this.h()},l(e){n=I(e,"LINK",{rel:!0,href:!0}),this.h()},h(){x(n,"rel","stylesheet"),x(n,"href",`${Ce.path}/themes/${Ce["status-website"].theme}.css`)},m(e,t){g(e,n,t)},p:e,d(e){e&&b(n)}}}function Ye(t){let n;return{c(){n=v("link"),this.h()},l(e){n=I(e,"LINK",{rel:!0,href:!0}),this.h()},h(){x(n,"rel","stylesheet"),x(n,"href",(Ce["status-website"]||{}).themeUrl)},m(e,t){g(e,n,t)},p:e,d(e){e&&b(n)}}}function Je(t){let n,s;return{c(){n=v("script"),this.h()},l(e){n=I(e,"SCRIPT",{src:!0}),R(n).forEach(b),this.h()},h(){c(n.src,s=t[8].src)||x(n,"src",s),n.async=!!t[8].async,n.defer=!!t[8].async},m(e,t){g(e,n,t)},p:e,d(e){e&&b(n)}}}function Ve(t){let n;return{c(){n=v("link"),this.h()},l(e){n=I(e,"LINK",{rel:!0,href:!0,media:!0}),this.h()},h(){x(n,"rel",t[3].rel),x(n,"href",t[3].href),x(n,"media",t[3].media)},m(e,t){g(e,n,t)},p:e,d(e){e&&b(n)}}}function We(t){let n;return{c(){n=v("meta"),this.h()},l(e){n=I(e,"META",{name:!0,content:!0}),this.h()},h(){x(n,"name",t[3].name),x(n,"content",t[3].content)},m(e,t){g(e,n,t)},p:e,d(e){e&&b(n)}}}function Fe(t){let n,s,r,o,i,a,c,u,d,f,h,m,w,y,S,T,A,L,N=Ge(Ce.i18n.footer.replace(/\$REPO/,`https://github.com/${Ce.owner}/${Ce.repo}`))+"",C=(Ce["status-website"]||{}).customHeadHtml&&function(){let t,n,s=(Ce["status-website"]||{}).customHeadHtml+"";return{c(){t=new V(!1),n=E(),this.h()},l(e){t=M(e,!1),n=E(),this.h()},h(){t.a=n},m(e,r){t.m(s,e,r),g(e,n,r)},p:e,d(e){e&&b(n),e&&t.d()}}}();let P=((Ce["status-website"]||{}).themeUrl?Ye:(Ce["status-website"]||{}).theme?Xe:Ke)(t),U=(Ce["status-website"]||{}).scripts&&function(e){let t,n=(Ce["status-website"]||{}).scripts,s=[];for(let t=0;t${Ce["status-website"].css}`;return{c(){t=new V(!1),n=E(),this.h()},l(e){t=M(e,!1),n=E(),this.h()},h(){t.a=n},m(e,r){t.m(s,e,r),g(e,n,r)},p:e,d(e){e&&b(n),e&&t.d()}}}(),j=Ce["status-website"].js&&function(){let t,n,s=` Xibo Signage Service Status

    Live Service Status

    If you are having an issue and all services are up and running, please open a ticket with our support team who can assist you.

    Live Status

    \ No newline at end of file diff --git a/logo-192.png b/logo-192.png new file mode 100644 index 0000000000..e3d30f1dc4 Binary files /dev/null and b/logo-192.png differ diff --git a/logo-512.png b/logo-512.png new file mode 100644 index 0000000000..0eaa713258 Binary files /dev/null and b/logo-512.png differ diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000000..491d3a797f --- /dev/null +++ b/manifest.json @@ -0,0 +1,20 @@ +{ + "background_color": "#ffffff", + "theme_color": "#333333", + "name": "Upptime", + "short_name": "Upptime", + "display": "minimal-ui", + "start_url": "/", + "icons": [ + { + "src": "logo-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "logo-512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} diff --git a/service-worker-index.html b/service-worker-index.html new file mode 100644 index 0000000000..f0c4033ae6 --- /dev/null +++ b/service-worker-index.html @@ -0,0 +1,26 @@ + \ No newline at end of file diff --git a/service-worker.js b/service-worker.js new file mode 100644 index 0000000000..40c9cfa3bd --- /dev/null +++ b/service-worker.js @@ -0,0 +1 @@ +!function(){"use strict";self.addEventListener("install",function(){self.skipWaiting()}),self.addEventListener("activate",function(){self.registration.unregister().then(function(){return self.clients.matchAll()}).then(function(t){t.forEach(t=>t.navigate(t.url))}).catch(function(){})})}(); diff --git a/themes/dark.css b/themes/dark.css new file mode 100644 index 0000000000..f98f57e7f4 --- /dev/null +++ b/themes/dark.css @@ -0,0 +1,26 @@ +:root { + --body-background-color: #001716; + --body-text-color: #f0ffff; + --card-background-color: #002b29; + --nav-background-color: #002b29; + --nav-border-bottom-color: #015450; + --nav-current-border-bottom-color: #1abc9c; + --card-border-color: #015450; + --down-border-left-color: #eb3b5a; + --down-background-color: #6b1020; + --degraded-border-left-color: #f7b731; + --up-border-left-color: #20bf6b; + --tag-color: #002b29; + --tag-up-background-color: #20bf6b; + --tag-down-background-color: #eb3b5a; + --tag-degraded-background-color: #f7b731; + --change-background-color: #f7b731; + --error-button-border-color: #1a46ad; + --error-button-background-color: #3867d6; + --error-button-color: #ffffff; + --submit-button-border-color: #1a46ad; + --submit-button-background-color: #3867d6; + --submit-button-color: #ffffff; + --graph-opacity: 1; + --graph-filter: none; +} diff --git a/themes/light.css b/themes/light.css new file mode 100644 index 0000000000..a9f32a8735 --- /dev/null +++ b/themes/light.css @@ -0,0 +1,26 @@ +:root { + --body-background-color: #f0f7f7; + --body-text-color: #002626; + --card-background-color: #ffffff; + --nav-background-color: #ffffff; + --nav-border-bottom-color: #d8e8e4; + --nav-current-border-bottom-color: #1abc9c; + --card-border-color: #d8e8e4; + --down-border-left-color: #eb3b5a; + --down-background-color: #ffd0d2; + --degraded-border-left-color: #f7b731; + --up-border-left-color: #20bf6b; + --tag-color: #ffffff; + --tag-up-background-color: #20bf6b; + --tag-down-background-color: #eb3b5a; + --tag-degraded-background-color: #f7b731; + --change-background-color: #f7b731; + --error-button-border-color: #1a46ad; + --error-button-background-color: #3867d6; + --error-button-color: #ffffff; + --submit-button-border-color: #1a46ad; + --submit-button-background-color: #3867d6; + --submit-button-color: #ffffff; + --graph-opacity: 1; + --graph-filter: none; +} diff --git a/themes/night.css b/themes/night.css new file mode 100644 index 0000000000..f409007969 --- /dev/null +++ b/themes/night.css @@ -0,0 +1,26 @@ +:root { + --body-background-color: #0d1117; + --body-text-color: #c9d1d9; + --card-background-color: #30363D; + --nav-background-color: #161b22; + --nav-border-bottom-color: #161b22; + --nav-current-border-bottom-color: #1abc9c; + --card-border-color: #30363D; + --down-border-left-color: #eb3b5a; + --down-background-color: #6b1020; + --degraded-border-left-color: #f7b731; + --up-border-left-color: #22993D; + --tag-color: #0d1117; + --tag-up-background-color: #22993D; + --tag-down-background-color: #F03A17; + --tag-degraded-background-color: #f7b731; + --change-background-color: #f7b731; + --error-button-border-color: #1a46ad; + --error-button-background-color: #3867d6; + --error-button-color: #ffffff; + --submit-button-border-color: #1a46ad; + --submit-button-background-color: #3867d6; + --submit-button-color: #ffffff; + --graph-opacity: 1; + /* --graph-filter: brightness(0.35) sepia(1) hue-rotate(88deg) saturate(8); */ +} diff --git a/themes/ocean.css b/themes/ocean.css new file mode 100644 index 0000000000..b32ba63d4c --- /dev/null +++ b/themes/ocean.css @@ -0,0 +1,26 @@ +:root { + --body-background-color: #011945; + --body-text-color: #f0ffff; + --card-background-color: #0d2f6e; + --nav-background-color: #0d2f6e; + --nav-border-bottom-color: #002d80; + --nav-current-border-bottom-color: #1abc9c; + --card-border-color: #002d80; + --down-border-left-color: #eb3b5a; + --down-background-color: #6b1020; + --degraded-border-left-color: #f7b731; + --up-border-left-color: #20bf6b; + --tag-color: #0d2f6e; + --tag-up-background-color: #20bf6b; + --tag-down-background-color: #eb3b5a; + --tag-degraded-background-color: #f7b731; + --change-background-color: #f7b731; + --error-button-border-color: #1a46ad; + --error-button-background-color: #3867d6; + --error-button-color: #ffffff; + --submit-button-border-color: #1a46ad; + --submit-button-background-color: #3867d6; + --submit-button-color: #ffffff; + --graph-opacity: 1; + --graph-filter: none; +} diff --git a/assets/xibo-logo.png b/xibo-logo.png similarity index 100% rename from assets/xibo-logo.png rename to xibo-logo.png