unleash-server 7.4.0 → 7.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -3
- package/dist/lib/addons/feature-event-formatter-md.d.ts.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md.js +1 -0
- package/dist/lib/addons/feature-event-formatter-md.js.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md.test.js +45 -2
- package/dist/lib/addons/feature-event-formatter-md.test.js.map +1 -1
- package/dist/lib/addons/slack-definition.d.ts.map +1 -1
- package/dist/lib/addons/slack-definition.js +3 -1
- package/dist/lib/addons/slack-definition.js.map +1 -1
- package/dist/lib/app.test.js +4 -0
- package/dist/lib/app.test.js.map +1 -1
- package/dist/lib/create-config.d.ts.map +1 -1
- package/dist/lib/create-config.js +6 -1
- package/dist/lib/create-config.js.map +1 -1
- package/dist/lib/db/feature-environment-store.d.ts.map +1 -1
- package/dist/lib/db/feature-environment-store.js.map +1 -1
- package/dist/lib/db/index.d.ts.map +1 -1
- package/dist/lib/db/index.js +5 -2
- package/dist/lib/db/index.js.map +1 -1
- package/dist/lib/features/access/access-read-model.d.ts.map +1 -1
- package/dist/lib/features/access/access-read-model.js +3 -2
- package/dist/lib/features/access/access-read-model.js.map +1 -1
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.d.ts.map +1 -1
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.js +14 -7
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.js.map +1 -1
- package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.test.js +54 -0
- package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.test.js.map +1 -1
- package/dist/lib/features/client-feature-toggles/delta/delta-cache.d.ts +1 -0
- package/dist/lib/features/client-feature-toggles/delta/delta-cache.d.ts.map +1 -1
- package/dist/lib/features/client-feature-toggles/delta/delta-cache.js +14 -0
- package/dist/lib/features/client-feature-toggles/delta/delta-cache.js.map +1 -1
- package/dist/lib/{routes/admin-api/constraints.d.ts → features/constraints/constraints-controller.d.ts} +5 -5
- package/dist/lib/features/constraints/constraints-controller.d.ts.map +1 -0
- package/dist/lib/{routes/admin-api/constraints.js → features/constraints/constraints-controller.js} +6 -6
- package/dist/lib/features/constraints/constraints-controller.js.map +1 -0
- package/dist/lib/features/constraints/constraints-read-model-type.d.ts +6 -0
- package/dist/lib/features/constraints/constraints-read-model-type.d.ts.map +1 -0
- package/dist/lib/features/constraints/constraints-read-model-type.js +2 -0
- package/dist/lib/features/constraints/constraints-read-model-type.js.map +1 -0
- package/dist/lib/features/constraints/constraints-read-model.d.ts +11 -0
- package/dist/lib/features/constraints/constraints-read-model.d.ts.map +1 -0
- package/dist/lib/features/constraints/constraints-read-model.js +55 -0
- package/dist/lib/features/constraints/constraints-read-model.js.map +1 -0
- package/dist/lib/features/constraints/constraints-read-model.test.d.ts +2 -0
- package/dist/lib/features/constraints/constraints-read-model.test.d.ts.map +1 -0
- package/dist/lib/features/constraints/constraints-read-model.test.js +388 -0
- package/dist/lib/features/constraints/constraints-read-model.test.js.map +1 -0
- package/dist/lib/features/constraints/constraints.e2e.test.d.ts.map +1 -0
- package/dist/{test/e2e/api/admin → lib/features/constraints}/constraints.e2e.test.js +4 -4
- package/dist/lib/features/constraints/constraints.e2e.test.js.map +1 -0
- package/dist/lib/features/constraints/createConstraintsReadModel.d.ts +5 -0
- package/dist/lib/features/constraints/createConstraintsReadModel.d.ts.map +1 -0
- package/dist/lib/features/constraints/createConstraintsReadModel.js +9 -0
- package/dist/lib/features/constraints/createConstraintsReadModel.js.map +1 -0
- package/dist/lib/features/constraints/fake-constraints-read-model.d.ts +7 -0
- package/dist/lib/features/constraints/fake-constraints-read-model.d.ts.map +1 -0
- package/dist/lib/features/constraints/fake-constraints-read-model.js +11 -0
- package/dist/lib/features/constraints/fake-constraints-read-model.js.map +1 -0
- package/dist/lib/features/context/context-field-store-type.d.ts +2 -0
- package/dist/lib/features/context/context-field-store-type.d.ts.map +1 -1
- package/dist/lib/features/context/context-field-store.d.ts +2 -0
- package/dist/lib/features/context/context-field-store.d.ts.map +1 -1
- package/dist/lib/features/context/context-field-store.js +11 -0
- package/dist/lib/features/context/context-field-store.js.map +1 -1
- package/dist/lib/features/context/context-service.d.ts +8 -0
- package/dist/lib/features/context/context-service.d.ts.map +1 -1
- package/dist/lib/features/context/context-service.js +31 -0
- package/dist/lib/features/context/context-service.js.map +1 -1
- package/dist/lib/features/context/context.d.ts +10 -4
- package/dist/lib/features/context/context.d.ts.map +1 -1
- package/dist/lib/features/context/context.js +68 -33
- package/dist/lib/features/context/context.js.map +1 -1
- package/dist/lib/features/context/createContextService.js +1 -1
- package/dist/lib/features/context/createContextService.js.map +1 -1
- package/dist/lib/features/context/fake-context-field-store.d.ts +1 -0
- package/dist/lib/features/context/fake-context-field-store.d.ts.map +1 -1
- package/dist/lib/features/context/fake-context-field-store.js +4 -1
- package/dist/lib/features/context/fake-context-field-store.js.map +1 -1
- package/dist/lib/features/dependent-features/dependent-features-controller.d.ts.map +1 -1
- package/dist/lib/features/dependent-features/dependent-features-controller.js +0 -1
- package/dist/lib/features/dependent-features/dependent-features-controller.js.map +1 -1
- package/dist/lib/features/edgetokens/edge-hmac-verifier.d.ts +4 -0
- package/dist/lib/features/edgetokens/edge-hmac-verifier.d.ts.map +1 -0
- package/dist/lib/features/edgetokens/edge-hmac-verifier.js +83 -0
- package/dist/lib/features/edgetokens/edge-hmac-verifier.js.map +1 -0
- package/dist/lib/features/edgetokens/edge-token-store.d.ts +16 -0
- package/dist/lib/features/edgetokens/edge-token-store.d.ts.map +1 -0
- package/dist/lib/features/edgetokens/edge-token-store.js +101 -0
- package/dist/lib/features/edgetokens/edge-token-store.js.map +1 -0
- package/dist/lib/features/edgetokens/edge-tokens.d.ts +2 -0
- package/dist/lib/features/edgetokens/edge-tokens.d.ts.map +1 -0
- package/dist/lib/features/edgetokens/edge-tokens.js +16 -0
- package/dist/lib/features/edgetokens/edge-tokens.js.map +1 -0
- package/dist/lib/features/edgetokens/edge-tokens.test.d.ts +2 -0
- package/dist/lib/features/edgetokens/edge-tokens.test.d.ts.map +1 -0
- package/dist/lib/features/edgetokens/edge-tokens.test.js +22 -0
- package/dist/lib/features/edgetokens/edge-tokens.test.js.map +1 -0
- package/dist/lib/features/edgetokens/edge-verification.d.ts +3 -0
- package/dist/lib/features/edgetokens/edge-verification.d.ts.map +1 -0
- package/dist/lib/features/edgetokens/edge-verification.js +25 -0
- package/dist/lib/features/edgetokens/edge-verification.js.map +1 -0
- package/dist/lib/features/edgetokens/edge-verification.test.d.ts +2 -0
- package/dist/lib/features/edgetokens/edge-verification.test.d.ts.map +1 -0
- package/dist/lib/features/edgetokens/edge-verification.test.js +18 -0
- package/dist/lib/features/edgetokens/edge-verification.test.js.map +1 -0
- package/dist/lib/features/edgetokens/fake-edge-token-store.d.ts +11 -0
- package/dist/lib/features/edgetokens/fake-edge-token-store.d.ts.map +1 -0
- package/dist/lib/features/edgetokens/fake-edge-token-store.js +21 -0
- package/dist/lib/features/edgetokens/fake-edge-token-store.js.map +1 -0
- package/dist/lib/features/events/event-store.d.ts.map +1 -1
- package/dist/lib/features/events/event-store.js +14 -3
- package/dist/lib/features/events/event-store.js.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import-service.d.ts.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import-service.js +10 -1
- package/dist/lib/features/export-import-toggles/export-import-service.js.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import.e2e.test.js +8 -3
- package/dist/lib/features/export-import-toggles/export-import.e2e.test.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-controller.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-controller.js +6 -3
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-controller.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-count-controller.d.ts +5 -4
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-count-controller.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-count-controller.js +11 -4
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-count-controller.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model-type.d.ts +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model-type.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model.d.ts +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model.js +17 -18
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model.test.js +17 -0
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-read-model.test.js.map +1 -1
- package/dist/lib/features/feature-links/createFeatureLinkService.d.ts +4 -1
- package/dist/lib/features/feature-links/createFeatureLinkService.d.ts.map +1 -1
- package/dist/lib/features/feature-links/createFeatureLinkService.js +7 -3
- package/dist/lib/features/feature-links/createFeatureLinkService.js.map +1 -1
- package/dist/lib/features/feature-links/feature-link-controller.d.ts.map +1 -1
- package/dist/lib/features/feature-links/feature-link-controller.js +6 -3
- package/dist/lib/features/feature-links/feature-link-controller.js.map +1 -1
- package/dist/lib/features/feature-links/feature-link-service.d.ts +3 -0
- package/dist/lib/features/feature-links/feature-link-service.d.ts.map +1 -1
- package/dist/lib/features/feature-links/feature-link-service.js +5 -0
- package/dist/lib/features/feature-links/feature-link-service.js.map +1 -1
- package/dist/lib/features/feature-links/feature-link-service.test.js +20 -3
- package/dist/lib/features/feature-links/feature-link-service.test.js.map +1 -1
- package/dist/lib/features/feature-search/createFeatureSearchService.d.ts +3 -2
- package/dist/lib/features/feature-search/createFeatureSearchService.d.ts.map +1 -1
- package/dist/lib/features/feature-search/createFeatureSearchService.js +4 -4
- package/dist/lib/features/feature-search/createFeatureSearchService.js.map +1 -1
- package/dist/lib/features/feature-search/feature-search-controller.js +2 -2
- package/dist/lib/features/feature-search/feature-search-controller.js.map +1 -1
- package/dist/lib/features/feature-search/feature-search-service.d.ts +4 -2
- package/dist/lib/features/feature-search/feature-search-service.d.ts.map +1 -1
- package/dist/lib/features/feature-search/feature-search-service.js +12 -3
- package/dist/lib/features/feature-search/feature-search-service.js.map +1 -1
- package/dist/lib/features/feature-search/feature.search.e2e.test.js +3 -3
- package/dist/lib/features/feature-search/feature.search.e2e.test.js.map +1 -1
- package/dist/lib/features/feature-toggle/configuration-revision-service.d.ts +2 -1
- package/dist/lib/features/feature-toggle/configuration-revision-service.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/configuration-revision-service.js +16 -0
- package/dist/lib/features/feature-toggle/configuration-revision-service.js.map +1 -1
- package/dist/lib/features/feature-toggle/converters/feature-toggle-row-converter.d.ts +1 -1
- package/dist/lib/features/feature-toggle/createFeatureToggleService.d.ts +2 -0
- package/dist/lib/features/feature-toggle/createFeatureToggleService.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/createFeatureToggleService.js +8 -2
- package/dist/lib/features/feature-toggle/createFeatureToggleService.js.map +1 -1
- package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.d.ts +6 -0
- package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.js +6 -2
- package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.js.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts +6 -6
- package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-service.js +6 -44
- package/dist/lib/features/feature-toggle/feature-toggle-service.js.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js +6 -0
- package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js.map +1 -1
- package/dist/lib/features/feature-toggle/tests/feature-toggle-service.constraint-validation.test.d.ts +2 -0
- package/dist/lib/features/feature-toggle/tests/feature-toggle-service.constraint-validation.test.d.ts.map +1 -0
- package/dist/lib/features/feature-toggle/tests/feature-toggle-service.constraint-validation.test.js +185 -0
- package/dist/lib/features/feature-toggle/tests/feature-toggle-service.constraint-validation.test.js.map +1 -0
- package/dist/lib/features/frontend-api/createFrontendApiService.d.ts.map +1 -1
- package/dist/lib/features/frontend-api/createFrontendApiService.js +2 -0
- package/dist/lib/features/frontend-api/createFrontendApiService.js.map +1 -1
- package/dist/lib/features/index.d.ts +1 -0
- package/dist/lib/features/index.d.ts.map +1 -1
- package/dist/lib/features/index.js +1 -0
- package/dist/lib/features/index.js.map +1 -1
- package/dist/lib/features/instance-stats/createInstanceStatsService.d.ts.map +1 -1
- package/dist/lib/features/instance-stats/createInstanceStatsService.js +0 -1
- package/dist/lib/features/instance-stats/createInstanceStatsService.js.map +1 -1
- package/dist/lib/features/instance-stats/getReadOnlyUsers.d.ts.map +1 -1
- package/dist/lib/features/instance-stats/getReadOnlyUsers.js +1 -16
- package/dist/lib/features/instance-stats/getReadOnlyUsers.js.map +1 -1
- package/dist/lib/features/instance-stats/instance-stats-service.d.ts +5 -3
- package/dist/lib/features/instance-stats/instance-stats-service.d.ts.map +1 -1
- package/dist/lib/features/instance-stats/instance-stats-service.js +15 -2
- package/dist/lib/features/instance-stats/instance-stats-service.js.map +1 -1
- package/dist/lib/features/metrics/last-seen/tests/last-seen-service.test.js +2 -2
- package/dist/lib/features/metrics/last-seen/tests/last-seen-service.test.js.map +1 -1
- package/dist/lib/features/metrics/shared/schema.d.ts.map +1 -1
- package/dist/lib/features/metrics/shared/schema.js +10 -2
- package/dist/lib/features/metrics/shared/schema.js.map +1 -1
- package/dist/lib/features/metrics/shared/schema.test.js +18 -0
- package/dist/lib/features/metrics/shared/schema.test.js.map +1 -1
- package/dist/lib/features/pat/createPatService.d.ts +6 -0
- package/dist/lib/features/pat/createPatService.d.ts.map +1 -0
- package/dist/lib/features/pat/createPatService.js +15 -0
- package/dist/lib/features/pat/createPatService.js.map +1 -0
- package/dist/lib/features/pat/fake-pat-store.d.ts +18 -0
- package/dist/lib/features/pat/fake-pat-store.d.ts.map +1 -0
- package/dist/lib/features/pat/fake-pat-store.js +52 -0
- package/dist/lib/features/pat/fake-pat-store.js.map +1 -0
- package/dist/lib/{services → features/pat}/pat-service.d.ts +3 -3
- package/dist/lib/features/pat/pat-service.d.ts.map +1 -0
- package/dist/lib/{services → features/pat}/pat-service.js +5 -5
- package/dist/lib/features/pat/pat-service.js.map +1 -0
- package/dist/lib/{types/stores/pat-store.d.ts → features/pat/pat-store-type.d.ts} +2 -2
- package/dist/lib/features/pat/pat-store-type.d.ts.map +1 -0
- package/dist/lib/features/pat/pat-store-type.js +2 -0
- package/dist/lib/features/pat/pat-store-type.js.map +1 -0
- package/dist/lib/{db → features/pat}/pat-store.d.ts +4 -4
- package/dist/lib/features/pat/pat-store.d.ts.map +1 -0
- package/dist/lib/{db → features/pat}/pat-store.js +1 -1
- package/dist/lib/features/pat/pat-store.js.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.d.ts.map +1 -1
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.js +4 -2
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.js.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/constraint.d.ts +2 -1
- package/dist/lib/features/playground/feature-evaluator/constraint.d.ts.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/constraint.js +18 -0
- package/dist/lib/features/playground/feature-evaluator/constraint.js.map +1 -1
- package/dist/lib/features/playground/offline-unleash-client.test.js +105 -0
- package/dist/lib/features/playground/offline-unleash-client.test.js.map +1 -1
- package/dist/lib/features/private-project/privateProjectStore.js +1 -1
- package/dist/lib/features/private-project/privateProjectStore.js.map +1 -1
- package/dist/lib/features/project/project-controller.d.ts.map +1 -1
- package/dist/lib/features/project/project-controller.js +2 -0
- package/dist/lib/features/project/project-controller.js.map +1 -1
- package/dist/lib/features/project-environments/environment-service.d.ts.map +1 -1
- package/dist/lib/features/project-environments/environment-service.js +4 -0
- package/dist/lib/features/project-environments/environment-service.js.map +1 -1
- package/dist/lib/features/project-status/project-status-controller.d.ts.map +1 -1
- package/dist/lib/features/project-status/project-status-controller.js +2 -1
- package/dist/lib/features/project-status/project-status-controller.js.map +1 -1
- package/dist/lib/features/release-plans/createReleasePlanMilestoneStrategyService.d.ts +12 -0
- package/dist/lib/features/release-plans/createReleasePlanMilestoneStrategyService.d.ts.map +1 -0
- package/dist/lib/features/release-plans/createReleasePlanMilestoneStrategyService.js +26 -0
- package/dist/lib/features/release-plans/createReleasePlanMilestoneStrategyService.js.map +1 -0
- package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.d.ts +20 -0
- package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.d.ts.map +1 -0
- package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.js +37 -0
- package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.js.map +1 -0
- package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.test.d.ts +2 -0
- package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.test.d.ts.map +1 -0
- package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.test.js +69 -0
- package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.test.js.map +1 -0
- package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.d.ts +10 -2
- package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.d.ts.map +1 -1
- package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.js +0 -1
- package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.js.map +1 -1
- package/dist/lib/features/scheduler/schedule-services.d.ts.map +1 -1
- package/dist/lib/features/scheduler/schedule-services.js +3 -2
- package/dist/lib/features/scheduler/schedule-services.js.map +1 -1
- package/dist/lib/features/segment/admin-segment.e2e.test.js +117 -0
- package/dist/lib/features/segment/admin-segment.e2e.test.js.map +1 -1
- package/dist/lib/features/segment/createSegmentService.d.ts.map +1 -1
- package/dist/lib/features/segment/createSegmentService.js +7 -2
- package/dist/lib/features/segment/createSegmentService.js.map +1 -1
- package/dist/lib/features/segment/segment-controller.d.ts +2 -2
- package/dist/lib/features/segment/segment-controller.d.ts.map +1 -1
- package/dist/lib/features/segment/segment-controller.js +8 -5
- package/dist/lib/features/segment/segment-controller.js.map +1 -1
- package/dist/lib/features/segment/segment-service-interface.d.ts +2 -2
- package/dist/lib/features/segment/segment-service-interface.d.ts.map +1 -1
- package/dist/lib/features/segment/segment-service.d.ts +6 -3
- package/dist/lib/features/segment/segment-service.d.ts.map +1 -1
- package/dist/lib/features/segment/segment-service.js +35 -5
- package/dist/lib/features/segment/segment-service.js.map +1 -1
- package/dist/lib/features/users/createUserService.d.ts.map +1 -1
- package/dist/lib/features/users/createUserService.js +3 -1
- package/dist/lib/features/users/createUserService.js.map +1 -1
- package/dist/lib/features/users/user-store.d.ts.map +1 -1
- package/dist/lib/features/users/user-store.js +8 -0
- package/dist/lib/features/users/user-store.js.map +1 -1
- package/dist/lib/features/users/user-updates-read-model.d.ts +3 -0
- package/dist/lib/features/users/user-updates-read-model.d.ts.map +1 -1
- package/dist/lib/features/users/user-updates-read-model.js +3 -0
- package/dist/lib/features/users/user-updates-read-model.js.map +1 -1
- package/dist/lib/metric-events.d.ts +15 -2
- package/dist/lib/metric-events.d.ts.map +1 -1
- package/dist/lib/metric-events.js +2 -1
- package/dist/lib/metric-events.js.map +1 -1
- package/dist/lib/metrics.d.ts.map +1 -1
- package/dist/lib/metrics.js +63 -8
- package/dist/lib/metrics.js.map +1 -1
- package/dist/lib/metrics.test.js +3 -3
- package/dist/lib/metrics.test.js.map +1 -1
- package/dist/lib/middleware/conditional-middleware.d.ts +1 -1
- package/dist/lib/middleware/conditional-middleware.d.ts.map +1 -1
- package/dist/lib/middleware/conditional-middleware.js +2 -5
- package/dist/lib/middleware/conditional-middleware.js.map +1 -1
- package/dist/lib/middleware/response-time-metrics.test.js +4 -0
- package/dist/lib/middleware/response-time-metrics.test.js.map +1 -1
- package/dist/lib/middleware/secure-headers.d.ts.map +1 -1
- package/dist/lib/middleware/secure-headers.js +2 -0
- package/dist/lib/middleware/secure-headers.js.map +1 -1
- package/dist/lib/openapi/spec/admin-segment-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.d.ts +4 -4
- package/dist/lib/openapi/spec/advanced-playground-feature-schema.d.ts +8 -8
- package/dist/lib/openapi/spec/advanced-playground-response-schema.d.ts +17 -17
- package/dist/lib/openapi/spec/client-feature-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/client-features-delta-schema.d.ts +5 -5
- package/dist/lib/openapi/spec/client-features-schema.d.ts +5 -5
- package/dist/lib/openapi/spec/client-features-schema.test.js +12 -0
- package/dist/lib/openapi/spec/client-features-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/client-metrics-schema.d.ts +1 -0
- package/dist/lib/openapi/spec/client-metrics-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/client-metrics-schema.js +1 -0
- package/dist/lib/openapi/spec/client-metrics-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-segment-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/constraint-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/context-field-schema.d.ts +5 -0
- package/dist/lib/openapi/spec/context-field-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/context-field-schema.js +5 -0
- package/dist/lib/openapi/spec/context-field-schema.js.map +1 -1
- package/dist/lib/openapi/spec/context-fields-schema.d.ts +5 -0
- package/dist/lib/openapi/spec/context-fields-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/context-query-parameters.d.ts +12 -0
- package/dist/lib/openapi/spec/context-query-parameters.d.ts.map +1 -0
- package/dist/lib/openapi/spec/context-query-parameters.js +12 -0
- package/dist/lib/openapi/spec/context-query-parameters.js.map +1 -0
- package/dist/lib/openapi/spec/create-context-field-schema.d.ts +5 -0
- package/dist/lib/openapi/spec/create-context-field-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/create-feature-strategy-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/create-user-response-schema.d.ts +19 -1
- package/dist/lib/openapi/spec/create-user-response-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/create-user-response-schema.js +8 -1
- package/dist/lib/openapi/spec/create-user-response-schema.js.map +1 -1
- package/dist/lib/openapi/spec/create-user-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/create-user-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/create-user-schema.js +8 -1
- package/dist/lib/openapi/spec/create-user-schema.js.map +1 -1
- package/dist/lib/openapi/spec/edge-environment-projects-list-schema.d.ts +41 -0
- package/dist/lib/openapi/spec/edge-environment-projects-list-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/edge-environment-projects-list-schema.js +39 -0
- package/dist/lib/openapi/spec/edge-environment-projects-list-schema.js.map +1 -0
- package/dist/lib/openapi/spec/edge-token-schema.d.ts +6 -1
- package/dist/lib/openapi/spec/edge-token-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/edge-token-schema.js +6 -1
- package/dist/lib/openapi/spec/edge-token-schema.js.map +1 -1
- package/dist/lib/openapi/spec/environment-project-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/environments-project-schema.d.ts +4 -4
- package/dist/lib/openapi/spec/export-result-schema.d.ts +73 -68
- package/dist/lib/openapi/spec/export-result-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/feature-environment-schema.d.ts +17 -17
- package/dist/lib/openapi/spec/feature-schema.d.ts +34 -34
- package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts +34 -34
- package/dist/lib/openapi/spec/feature-search-response-schema.d.ts +36 -36
- package/dist/lib/openapi/spec/feature-strategy-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/group-schema.d.ts +36 -0
- package/dist/lib/openapi/spec/group-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/group-user-model-schema.d.ts +18 -0
- package/dist/lib/openapi/spec/group-user-model-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/groups-schema.d.ts +72 -0
- package/dist/lib/openapi/spec/groups-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/health-overview-schema.d.ts +69 -69
- package/dist/lib/openapi/spec/health-report-schema.d.ts +69 -69
- package/dist/lib/openapi/spec/index.d.ts +3 -0
- package/dist/lib/openapi/spec/index.d.ts.map +1 -1
- package/dist/lib/openapi/spec/index.js +3 -0
- package/dist/lib/openapi/spec/index.js.map +1 -1
- package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts +6 -0
- package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/instance-admin-stats-schema.js +6 -0
- package/dist/lib/openapi/spec/instance-admin-stats-schema.js.map +1 -1
- package/dist/lib/openapi/spec/me-schema.d.ts +18 -0
- package/dist/lib/openapi/spec/me-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/playground-constraint-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/playground-feature-schema.d.ts +4 -4
- package/dist/lib/openapi/spec/playground-response-schema.d.ts +9 -9
- package/dist/lib/openapi/spec/playground-segment-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/playground-strategy-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/profile-schema.d.ts +34 -34
- package/dist/lib/openapi/spec/project-environment-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/project-overview-schema.d.ts +69 -69
- package/dist/lib/openapi/spec/public-signup-token-schema.d.ts +18 -0
- package/dist/lib/openapi/spec/public-signup-token-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/public-signup-tokens-schema.d.ts +36 -0
- package/dist/lib/openapi/spec/public-signup-tokens-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/release-plan-milestone-schema.d.ts +4 -4
- package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/release-plan-schema.d.ts +8 -8
- package/dist/lib/openapi/spec/release-plan-template-schema.d.ts +8 -8
- package/dist/lib/openapi/spec/resource-limits-schema.d.ts +6 -0
- package/dist/lib/openapi/spec/resource-limits-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/resource-limits-schema.js +6 -0
- package/dist/lib/openapi/spec/resource-limits-schema.js.map +1 -1
- package/dist/lib/openapi/spec/search-features-schema.d.ts +72 -72
- package/dist/lib/openapi/spec/segment-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/segments-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/signup-data-schema.d.ts +42 -0
- package/dist/lib/openapi/spec/signup-data-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/signup-data-schema.js +40 -0
- package/dist/lib/openapi/spec/signup-data-schema.js.map +1 -0
- package/dist/lib/openapi/spec/submit-signup-data-schema.d.ts +50 -0
- package/dist/lib/openapi/spec/submit-signup-data-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/submit-signup-data-schema.js +26 -0
- package/dist/lib/openapi/spec/submit-signup-data-schema.js.map +1 -0
- package/dist/lib/openapi/spec/ui-config-schema.d.ts +11 -0
- package/dist/lib/openapi/spec/ui-config-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/ui-config-schema.js +5 -0
- package/dist/lib/openapi/spec/ui-config-schema.js.map +1 -1
- package/dist/lib/openapi/spec/update-context-field-schema.d.ts +5 -0
- package/dist/lib/openapi/spec/update-context-field-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/update-context-field-schema.js +5 -0
- package/dist/lib/openapi/spec/update-context-field-schema.js.map +1 -1
- package/dist/lib/openapi/spec/update-feature-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/update-feature-strategy-schema.d.ts +18 -2
- package/dist/lib/openapi/spec/update-feature-strategy-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/update-feature-strategy-schema.js +17 -1
- package/dist/lib/openapi/spec/update-feature-strategy-schema.js.map +1 -1
- package/dist/lib/openapi/spec/update-user-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/update-user-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/update-user-schema.js +8 -1
- package/dist/lib/openapi/spec/update-user-schema.js.map +1 -1
- package/dist/lib/openapi/spec/upsert-segment-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/user-access-overview-schema.d.ts +18 -0
- package/dist/lib/openapi/spec/user-access-overview-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/user-schema.d.ts +18 -0
- package/dist/lib/openapi/spec/user-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/user-schema.js +18 -0
- package/dist/lib/openapi/spec/user-schema.js.map +1 -1
- package/dist/lib/openapi/spec/users-groups-base-schema.d.ts +72 -0
- package/dist/lib/openapi/spec/users-groups-base-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/users-schema.d.ts +18 -0
- package/dist/lib/openapi/spec/users-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/users-search-schema.d.ts +18 -0
- package/dist/lib/openapi/spec/users-search-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/validated-edge-tokens-schema.d.ts +6 -1
- package/dist/lib/openapi/spec/validated-edge-tokens-schema.d.ts.map +1 -1
- package/dist/lib/openapi/util/api-operation.d.ts +23 -5
- package/dist/lib/openapi/util/api-operation.d.ts.map +1 -1
- package/dist/lib/openapi/util/api-stability.d.ts +3 -0
- package/dist/lib/openapi/util/api-stability.d.ts.map +1 -0
- package/dist/lib/openapi/util/api-stability.js +49 -0
- package/dist/lib/openapi/util/api-stability.js.map +1 -0
- package/dist/lib/openapi/util/api-stability.test.d.ts +2 -0
- package/dist/lib/openapi/util/api-stability.test.d.ts.map +1 -0
- package/dist/lib/openapi/util/api-stability.test.js +140 -0
- package/dist/lib/openapi/util/api-stability.test.js.map +1 -0
- package/dist/lib/openapi/util/openapi-tags.d.ts +6 -6
- package/dist/lib/openapi/util/openapi-tags.d.ts.map +1 -1
- package/dist/lib/openapi/util/openapi-tags.js +4 -4
- package/dist/lib/openapi/util/openapi-tags.js.map +1 -1
- package/dist/lib/routes/admin-api/index.js +1 -1
- package/dist/lib/routes/admin-api/index.js.map +1 -1
- package/dist/lib/routes/admin-api/instance-admin.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/instance-admin.js +1 -0
- package/dist/lib/routes/admin-api/instance-admin.js.map +1 -1
- package/dist/lib/routes/admin-api/project/variants.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/project/variants.js +5 -1
- package/dist/lib/routes/admin-api/project/variants.js.map +1 -1
- package/dist/lib/routes/admin-api/user-admin.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/user-admin.js +4 -4
- package/dist/lib/routes/admin-api/user-admin.js.map +1 -1
- package/dist/lib/routes/admin-api/user-splash.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/user-splash.js +2 -1
- package/dist/lib/routes/admin-api/user-splash.js.map +1 -1
- package/dist/lib/routes/edge-api/index.d.ts +4 -3
- package/dist/lib/routes/edge-api/index.d.ts.map +1 -1
- package/dist/lib/routes/edge-api/index.js +39 -7
- package/dist/lib/routes/edge-api/index.js.map +1 -1
- package/dist/lib/schema/feature-schema.test.js +1 -1
- package/dist/lib/schema/feature-schema.test.js.map +1 -1
- package/dist/lib/server-impl.d.ts +3 -2
- package/dist/lib/server-impl.d.ts.map +1 -1
- package/dist/lib/server-impl.js +4 -1
- package/dist/lib/server-impl.js.map +1 -1
- package/dist/lib/services/access-service.test.js +1 -2
- package/dist/lib/services/access-service.test.js.map +1 -1
- package/dist/lib/services/api-token-service.d.ts.map +1 -1
- package/dist/lib/services/api-token-service.js +3 -1
- package/dist/lib/services/api-token-service.js.map +1 -1
- package/dist/lib/services/context-schema.d.ts.map +1 -1
- package/dist/lib/services/context-schema.js +1 -0
- package/dist/lib/services/context-schema.js.map +1 -1
- package/dist/lib/services/edge-service.d.ts +22 -7
- package/dist/lib/services/edge-service.d.ts.map +1 -1
- package/dist/lib/services/edge-service.js +87 -9
- package/dist/lib/services/edge-service.js.map +1 -1
- package/dist/lib/services/index.d.ts +8 -3
- package/dist/lib/services/index.d.ts.map +1 -1
- package/dist/lib/services/index.js +26 -8
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/openapi-service.d.ts +8 -2
- package/dist/lib/services/openapi-service.d.ts.map +1 -1
- package/dist/lib/services/openapi-service.js +49 -7
- package/dist/lib/services/openapi-service.js.map +1 -1
- package/dist/lib/services/openapi-service.test.d.ts +2 -0
- package/dist/lib/services/openapi-service.test.d.ts.map +1 -0
- package/dist/lib/services/openapi-service.test.js +41 -0
- package/dist/lib/services/openapi-service.test.js.map +1 -0
- package/dist/lib/services/user-service.d.ts +6 -1
- package/dist/lib/services/user-service.d.ts.map +1 -1
- package/dist/lib/services/user-service.js +16 -7
- package/dist/lib/services/user-service.js.map +1 -1
- package/dist/lib/services/user-service.test.js +25 -26
- package/dist/lib/services/user-service.test.js.map +1 -1
- package/dist/lib/services/version-service.d.ts +1 -0
- package/dist/lib/services/version-service.d.ts.map +1 -1
- package/dist/lib/services/version-service.js.map +1 -1
- package/dist/lib/services/version-service.test.js +1 -0
- package/dist/lib/services/version-service.test.js.map +1 -1
- package/dist/lib/types/experimental.d.ts +1 -1
- package/dist/lib/types/experimental.d.ts.map +1 -1
- package/dist/lib/types/experimental.js +10 -0
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/lib/types/model.d.ts +10 -1
- package/dist/lib/types/model.d.ts.map +1 -1
- package/dist/lib/types/model.js +1 -0
- package/dist/lib/types/model.js.map +1 -1
- package/dist/lib/types/option.d.ts +5 -0
- package/dist/lib/types/option.d.ts.map +1 -1
- package/dist/lib/types/permissions.d.ts +1 -0
- package/dist/lib/types/permissions.d.ts.map +1 -1
- package/dist/lib/types/permissions.js +2 -0
- package/dist/lib/types/permissions.js.map +1 -1
- package/dist/lib/types/stores/edge-store.d.ts +14 -0
- package/dist/lib/types/stores/edge-store.d.ts.map +1 -0
- package/dist/lib/types/stores/edge-store.js +2 -0
- package/dist/lib/types/stores/edge-store.js.map +1 -0
- package/dist/lib/types/stores/user-store.d.ts +4 -0
- package/dist/lib/types/stores/user-store.d.ts.map +1 -1
- package/dist/lib/types/stores.d.ts +6 -4
- package/dist/lib/types/stores.d.ts.map +1 -1
- package/dist/lib/types/stores.js +1 -1
- package/dist/lib/types/stores.js.map +1 -1
- package/dist/lib/types/user.d.ts +13 -1
- package/dist/lib/types/user.d.ts.map +1 -1
- package/dist/lib/types/user.js +5 -1
- package/dist/lib/types/user.js.map +1 -1
- package/dist/lib/ui-config/ui-config-service.d.ts.map +1 -1
- package/dist/lib/ui-config/ui-config-service.js +1 -0
- package/dist/lib/ui-config/ui-config-service.js.map +1 -1
- package/dist/lib/ui-config/ui-config.test.js +5 -1
- package/dist/lib/ui-config/ui-config.test.js.map +1 -1
- package/dist/lib/util/constants.d.ts +2 -1
- package/dist/lib/util/constants.d.ts.map +1 -1
- package/dist/lib/util/constants.js +2 -0
- package/dist/lib/util/constants.js.map +1 -1
- package/dist/lib/util/validators/constraint-types.d.ts +1 -0
- package/dist/lib/util/validators/constraint-types.d.ts.map +1 -1
- package/dist/lib/util/validators/constraint-types.js +12 -0
- package/dist/lib/util/validators/constraint-types.js.map +1 -1
- package/dist/lib/util/validators/constraint-types.test.js +25 -1
- package/dist/lib/util/validators/constraint-types.test.js.map +1 -1
- package/dist/mailtemplates/getting-started/getting-started.html.mustache +7 -2
- package/dist/mailtemplates/getting-started/getting-started.plain.mustache +6 -1
- package/dist/migrations/20251210144308-add-project-column-to-context-fields.d.ts +3 -0
- package/dist/migrations/20251210144308-add-project-column-to-context-fields.d.ts.map +1 -0
- package/dist/migrations/20251210144308-add-project-column-to-context-fields.js +8 -0
- package/dist/migrations/20251210144308-add-project-column-to-context-fields.js.map +1 -0
- package/dist/migrations/20251218153722-predefined-project-role-reader.d.ts +3 -0
- package/dist/migrations/20251218153722-predefined-project-role-reader.d.ts.map +1 -0
- package/dist/migrations/20251218153722-predefined-project-role-reader.js +24 -0
- package/dist/migrations/20251218153722-predefined-project-role-reader.js.map +1 -0
- package/dist/migrations/20260106164443-users-seat-type.d.ts +3 -0
- package/dist/migrations/20260106164443-users-seat-type.d.ts.map +1 -0
- package/dist/migrations/20260106164443-users-seat-type.js +8 -0
- package/dist/migrations/20260106164443-users-seat-type.js.map +1 -0
- package/dist/migrations/20260112111353-add-project-context-permission.d.ts +3 -0
- package/dist/migrations/20260112111353-add-project-context-permission.d.ts.map +1 -0
- package/dist/migrations/20260112111353-add-project-context-permission.js +9 -0
- package/dist/migrations/20260112111353-add-project-context-permission.js.map +1 -0
- package/dist/migrations/20260115122651-project-owner-crud-project-context.d.ts +3 -0
- package/dist/migrations/20260115122651-project-owner-crud-project-context.d.ts.map +1 -0
- package/dist/migrations/20260115122651-project-owner-crud-project-context.js +14 -0
- package/dist/migrations/20260115122651-project-owner-crud-project-context.js.map +1 -0
- package/dist/migrations/20260115122720-project-owner-crud-project-segment.d.ts +3 -0
- package/dist/migrations/20260115122720-project-owner-crud-project-segment.d.ts.map +1 -0
- package/dist/migrations/20260115122720-project-owner-crud-project-segment.js +14 -0
- package/dist/migrations/20260115122720-project-owner-crud-project-segment.js.map +1 -0
- package/dist/migrations/20260119100647-add-api-key-revision-id-to-edge-observability.d.ts +3 -0
- package/dist/migrations/20260119100647-add-api-key-revision-id-to-edge-observability.d.ts.map +1 -0
- package/dist/migrations/20260119100647-add-api-key-revision-id-to-edge-observability.js +8 -0
- package/dist/migrations/20260119100647-add-api-key-revision-id-to-edge-observability.js.map +1 -0
- package/dist/migrations/20260204150900-add-edge-hmac-verification-tables.d.ts +3 -0
- package/dist/migrations/20260204150900-add-edge-hmac-verification-tables.d.ts.map +1 -0
- package/dist/migrations/20260204150900-add-edge-hmac-verification-tables.js +39 -0
- package/dist/migrations/20260204150900-add-edge-hmac-verification-tables.js.map +1 -0
- package/dist/migrations/20260213095258-users-company-role-and-email-consent.d.ts +3 -0
- package/dist/migrations/20260213095258-users-company-role-and-email-consent.d.ts.map +1 -0
- package/dist/migrations/20260213095258-users-company-role-and-email-consent.js +12 -0
- package/dist/migrations/20260213095258-users-company-role-and-email-consent.js.map +1 -0
- package/dist/server-dev.js +7 -0
- package/dist/server-dev.js.map +1 -1
- package/dist/test/arbitraries.test.d.ts.map +1 -1
- package/dist/test/arbitraries.test.js +3 -9
- package/dist/test/arbitraries.test.js.map +1 -1
- package/dist/test/e2e/api/admin/context-api-include-query-params.e2e.test.d.ts +2 -0
- package/dist/test/e2e/api/admin/context-api-include-query-params.e2e.test.d.ts.map +1 -0
- package/dist/test/e2e/api/admin/context-api-include-query-params.e2e.test.js +81 -0
- package/dist/test/e2e/api/admin/context-api-include-query-params.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/admin/context.e2e.test.js +1 -1
- package/dist/test/e2e/api/admin/context.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/instance-admin.e2e.test.js +1 -1
- package/dist/test/e2e/api/admin/playground.e2e.test.js +11 -10
- package/dist/test/e2e/api/admin/playground.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/variants.e2e.test.js +19 -0
- package/dist/test/e2e/api/admin/project/variants.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project-context.e2e.test.d.ts +2 -0
- package/dist/test/e2e/api/admin/project-context.e2e.test.d.ts.map +1 -0
- package/dist/test/e2e/api/admin/project-context.e2e.test.js +102 -0
- package/dist/test/e2e/api/admin/project-context.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/auth/reset-password-controller.e2e.test.js +3 -0
- package/dist/test/e2e/api/auth/reset-password-controller.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/auth/simple-password-provider.e2e.test.js +3 -0
- package/dist/test/e2e/api/auth/simple-password-provider.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/feature.e2e.test.js +15 -2
- package/dist/test/e2e/api/client/feature.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/feature.optimal304.e2e.test.js +254 -113
- package/dist/test/e2e/api/client/feature.optimal304.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/edge/create-token-request.test.d.ts +2 -0
- package/dist/test/e2e/api/edge/create-token-request.test.d.ts.map +1 -0
- package/dist/test/e2e/api/edge/create-token-request.test.js +215 -0
- package/dist/test/e2e/api/edge/create-token-request.test.js.map +1 -0
- package/dist/test/e2e/services/edge-service.e2e.test.js +106 -3
- package/dist/test/e2e/services/edge-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/reset-token-service.e2e.test.js +3 -0
- package/dist/test/e2e/services/reset-token-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/user-service.e2e.test.js +3 -0
- package/dist/test/e2e/services/user-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/event-store.e2e.test.js +17 -29
- package/dist/test/e2e/stores/event-store.e2e.test.js.map +1 -1
- package/dist/test/e2e/users/inactive/inactive-users-service.test.js +3 -1
- package/dist/test/e2e/users/inactive/inactive-users-service.test.js.map +1 -1
- package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.d.ts +17 -0
- package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.d.ts.map +1 -0
- package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.js +44 -0
- package/dist/test/fixtures/fake-release-plan-milestone-strategy-store.js.map +1 -0
- package/dist/test/fixtures/store.d.ts.map +1 -1
- package/dist/test/fixtures/store.js +5 -2
- package/dist/test/fixtures/store.js.map +1 -1
- package/frontend/build/index.html +2 -2
- package/frontend/build/static/AdvancedPlayground-DRpxJMnK.js +3 -0
- package/frontend/build/static/BackendConnections-_n7OFNmD.js +1 -0
- package/frontend/build/static/{CreateProject-ChlGOrPC.js → CreateProject-068uYB82.js} +1 -1
- package/frontend/build/static/EnterpriseEdge-D8BFcFOL.js +3 -0
- package/frontend/build/static/{FeatureMetricsChart-Bt6HiI-s.js → FeatureMetricsChart-CmPDv0Qg.js} +2 -2
- package/frontend/build/static/FeatureStaleDialog-p_WEko7Q.js +7 -0
- package/frontend/build/static/FeatureViewLazyExport-CsvADBC_.js +10 -0
- package/frontend/build/static/FlagMetricsChart-D0cnIXiN.js +2 -0
- package/frontend/build/static/FrontendNetworkTrafficUsage-DF0QQUFI.js +1 -0
- package/frontend/build/static/GridLayoutWrapper-CvaFKuMM.js +3 -0
- package/frontend/build/static/ImpactMetricsPage-BQnbfPhs.js +1 -0
- package/frontend/build/static/LazyAdminExport-CaPIJWoT.js +38 -0
- package/frontend/build/static/{LazyProjectExport-DPAYnCIy.js → LazyProjectExport-DxVvRHV2.js} +19 -19
- package/frontend/build/static/{LifecycleChartComponent-DubZNJlv.js → LifecycleChartComponent-7r5tp81g.js} +3 -3
- package/frontend/build/static/{LineChartComponent-CY-8M35z.js → LineChartComponent-p_JFdSdE.js} +1 -1
- package/frontend/build/static/{MarkCompletedDialogue-BwS_OP77.js → MarkCompletedDialogue-BHRKKIec.js} +1 -1
- package/frontend/build/static/{NetworkOverview-p_eqqiwO.js → NetworkOverview-Dr4-ROCD.js} +1 -1
- package/frontend/build/static/{NetworkPrometheusAPIWarning-BhqdG7Dp.js → NetworkPrometheusAPIWarning-COfHXZmz.js} +1 -1
- package/frontend/build/static/{NetworkTraffic-NxX5X_w8.js → NetworkTraffic-Dm-2mi3M.js} +1 -1
- package/frontend/build/static/NetworkTrafficUsage-fGr4QA8t.js +1 -0
- package/frontend/build/static/{PercentageDonut-BoaVP9ed.js → PercentageDonut-DystLTgb.js} +1 -1
- package/frontend/build/static/{ReactJSONEditor-DfZdSwoC.js → ReactJSONEditor-CdN66QkS.js} +1 -1
- package/frontend/build/static/RoleCell-BjcvUPQZ.js +1 -0
- package/frontend/build/static/aggregateFeatureMetrics-60FrVlfS.js +1 -0
- package/frontend/build/static/docker-HG7DQx-Z.svg +5 -0
- package/frontend/build/static/{formatTickValue-Csg87IVi.js → formatTickValue-CODpmZvr.js} +2 -2
- package/frontend/build/static/impact-metrics-icon-a6_57VN1.svg +9 -0
- package/frontend/build/static/index-B_EIW-7Y.js +568 -0
- package/frontend/build/static/lenovo-DIzNtfrT.svg +3 -0
- package/frontend/build/static/lloyds-DxlC9g3t.svg +10 -0
- package/frontend/build/static/networkTrafficUsageHighlightPlugin-COgb9_ZU.js +1 -0
- package/frontend/build/static/samsung-DOytOsnV.svg +10 -0
- package/frontend/build/static/unleash_logo_dark_no_label-DHgOj_XN.svg +6 -0
- package/frontend/build/static/unleash_logo_white_no_label-BazgWvcx.svg +6 -0
- package/frontend/build/static/{useApiTokens-Btk4Hd2u.js → useApiTokens-CdZATTgS.js} +1 -1
- package/frontend/build/static/visa-CkneNM2O.svg +10 -0
- package/frontend/package.json +9 -7
- package/package.json +20 -17
- package/dist/lib/db/pat-store.d.ts.map +0 -1
- package/dist/lib/db/pat-store.js.map +0 -1
- package/dist/lib/features/instance-stats/getReadOnlyUsers.e2e.test.d.ts +0 -2
- package/dist/lib/features/instance-stats/getReadOnlyUsers.e2e.test.d.ts.map +0 -1
- package/dist/lib/features/instance-stats/getReadOnlyUsers.e2e.test.js +0 -36
- package/dist/lib/features/instance-stats/getReadOnlyUsers.e2e.test.js.map +0 -1
- package/dist/lib/routes/admin-api/constraints.d.ts.map +0 -1
- package/dist/lib/routes/admin-api/constraints.js.map +0 -1
- package/dist/lib/services/pat-service.d.ts.map +0 -1
- package/dist/lib/services/pat-service.js.map +0 -1
- package/dist/lib/types/stores/pat-store.d.ts.map +0 -1
- package/dist/lib/types/stores/pat-store.js +0 -2
- package/dist/lib/types/stores/pat-store.js.map +0 -1
- package/dist/test/e2e/api/admin/constraints.e2e.test.d.ts.map +0 -1
- package/dist/test/e2e/api/admin/constraints.e2e.test.js.map +0 -1
- package/dist/test/fixtures/fake-pat-store.d.ts +0 -16
- package/dist/test/fixtures/fake-pat-store.d.ts.map +0 -1
- package/dist/test/fixtures/fake-pat-store.js +0 -35
- package/dist/test/fixtures/fake-pat-store.js.map +0 -1
- package/frontend/build/static/AdvancedPlayground-CmMV64it.js +0 -3
- package/frontend/build/static/BackendConnections-MqHimHCS.js +0 -1
- package/frontend/build/static/EnterpriseEdge-cJFso1xz.js +0 -1
- package/frontend/build/static/FeatureStaleDialog-DZEtcHDT.js +0 -7
- package/frontend/build/static/FeatureViewLazyExport-BPB1jWYz.js +0 -10
- package/frontend/build/static/FlagMetricsChart-CvsBPrQG.js +0 -2
- package/frontend/build/static/FrontendNetworkTrafficUsage-D8l5Nldl.js +0 -1
- package/frontend/build/static/GridLayoutWrapper-2osRRgh4.js +0 -3
- package/frontend/build/static/ImpactMetricsPage-Chv_7_jx.js +0 -1
- package/frontend/build/static/LazyAdminExport-BOTczpO1.js +0 -38
- package/frontend/build/static/NetworkTrafficUsage-B-4F8Mzq.js +0 -1
- package/frontend/build/static/RoleCell-Da0TjMne.js +0 -1
- package/frontend/build/static/aggregateFeatureMetrics-yZy5qwho.js +0 -1
- package/frontend/build/static/index-BAMIkcom.js +0 -542
- package/frontend/build/static/networkTrafficUsageHighlightPlugin-Dje5Vuvo.js +0 -1
- /package/dist/{test/e2e/api/admin → lib/features/constraints}/constraints.e2e.test.d.ts +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jv as w,jw as K,jx as v,jy as V,jz as Y,jA as Z,jB as D,jC as p,jD as Q,jE as W,jo as O,jF as ee,jG as re,b as te,bq as ae,r as ie,j as ne,js as oe,jl as se,jm as le,jn as ue,jH as de,jq as fe,jr as ve,jI as he,jJ as ye}from"./index-B_EIW-7Y.js";/*!
|
|
2
2
|
* chartjs-plugin-datalabels v2.2.0
|
|
3
3
|
* https://chartjs-plugin-datalabels.netlify.app
|
|
4
4
|
* (c) 2017-2022 chartjs-plugin-datalabels contributors
|
|
5
5
|
* Released under the MIT license
|
|
6
|
-
*/var $=function(){if(typeof window<"u"){if(window.devicePixelRatio)return window.devicePixelRatio;var e=window.screen;if(e)return(e.deviceXDPI||1)/(e.logicalXDPI||1)}return 1}(),
|
|
7
|
-
`)):Array.isArray(r)?e.push.apply(e,r):p(e)||a.unshift(""+r);return a},textSize:function(e,a,r){var t=[].concat(a),i=t.length,n=e.font,o=0,s;for(e.font=r.string,s=0;s<i;++s)o=Math.max(e.measureText(t[s]).width,o);return e.font=n,{height:i*r.lineHeight,width:o}},bound:function(e,a,r){return Math.max(e,Math.min(a,r))},arrayDiff:function(e,a){var r=e.slice(),t=[],i,n,o,s;for(i=0,o=a.length;i<o;++i)s=a[i],n=r.indexOf(s),n===-1?t.push([s,1]):r.splice(n,1);for(i=0,o=r.length;i<o;++i)t.push([r[i],-1]);return t},rasterize:function(e){return Math.round(e*$)/$}};function I(e,a){var r=a.x,t=a.y;if(r===null)return{x:0,y:-1};if(t===null)return{x:1,y:0};var i=e.x-r,n=e.y-t,o=Math.sqrt(i*i+n*n);return{x:o?i/o:0,y:o?n/o:-1}}function ce(e,a,r,t,i){switch(i){case"center":r=t=0;break;case"bottom":r=0,t=1;break;case"right":r=1,t=0;break;case"left":r=-1,t=0;break;case"top":r=0,t=-1;break;case"start":r=-r,t=-t;break;case"end":break;default:i*=Math.PI/180,r=Math.cos(i),t=Math.sin(i);break}return{x:e,y:a,vx:r,vy:t}}var xe=0,N=1,L=2,F=4,H=8;function M(e,a,r){var t=xe;return e<r.left?t|=N:e>r.right&&(t|=L),a<r.top?t|=H:a>r.bottom&&(t|=F),t}function be(e,a){for(var r=e.x0,t=e.y0,i=e.x1,n=e.y1,o=M(r,t,a),s=M(i,n,a),l,u,d;!(!(o|s)||o&s);)l=o||s,l&H?(u=r+(i-r)*(a.top-t)/(n-t),d=a.top):l&F?(u=r+(i-r)*(a.bottom-t)/(n-t),d=a.bottom):l&L?(d=t+(n-t)*(a.right-r)/(i-r),u=a.right):l&N&&(d=t+(n-t)*(a.left-r)/(i-r),u=a.left),l===o?(r=u,t=d,o=M(r,t,a)):(i=u,n=d,s=M(i,n,a));return{x0:r,x1:i,y0:t,y1:n}}function S(e,a){var r=a.anchor,t=e,i,n;return a.clamp&&(t=be(t,a.area)),r==="start"?(i=t.x0,n=t.y0):r==="end"?(i=t.x1,n=t.y1):(i=(t.x0+t.x1)/2,n=(t.y0+t.y1)/2),ce(i,n,e.vx,e.vy,a.align)}var j={arc:function(e,a){var r=(e.startAngle+e.endAngle)/2,t=Math.cos(r),i=Math.sin(r),n=e.innerRadius,o=e.outerRadius;return S({x0:e.x+t*n,y0:e.y+i*n,x1:e.x+t*o,y1:e.y+i*o,vx:t,vy:i},a)},point:function(e,a){var r=I(e,a.origin),t=r.x*e.options.radius,i=r.y*e.options.radius;return S({x0:e.x-t,y0:e.y-i,x1:e.x+t,y1:e.y+i,vx:r.x,vy:r.y},a)},bar:function(e,a){var r=I(e,a.origin),t=e.x,i=e.y,n=0,o=0;return e.horizontal?(t=Math.min(e.x,e.base),n=Math.abs(e.base-e.x)):(i=Math.min(e.y,e.base),o=Math.abs(e.base-e.y)),S({x0:t,y0:i+o,x1:t+n,y1:i,vx:r.x,vy:r.y},a)},fallback:function(e,a){var r=I(e,a.origin);return S({x0:e.x,y0:e.y,x1:e.x+(e.width||0),y1:e.y+(e.height||0),vx:r.x,vy:r.y},a)}},c=g.rasterize;function _e(e){var a=e.borderWidth||0,r=e.padding,t=e.size.height,i=e.size.width,n=-i/2,o=-t/2;return{frame:{x:n-r.left-a,y:o-r.top-a,w:i+r.width+a*2,h:t+r.height+a*2},text:{x:n,y:o,w:i,h:t}}}function pe(e,a){var r=a.chart.getDatasetMeta(a.datasetIndex).vScale;if(!r)return null;if(r.xCenter!==void 0&&r.yCenter!==void 0)return{x:r.xCenter,y:r.yCenter};var t=r.getBasePixel();return e.horizontal?{x:t,y:null}:{x:null,y:t}}function ge(e){return e instanceof Q?j.arc:e instanceof W?j.point:e instanceof O?j.bar:j.fallback}function me(e,a,r,t,i,n){var o=Math.PI/2;if(n){var s=Math.min(n,i/2,t/2),l=a+s,u=r+s,d=a+t-s,f=r+i-s;e.moveTo(a,u),l<d&&u<f?(e.arc(l,u,s,-Math.PI,-o),e.arc(d,u,s,-o,0),e.arc(d,f,s,0,o),e.arc(l,f,s,o,Math.PI)):l<d?(e.moveTo(l,r),e.arc(d,u,s,-o,o),e.arc(l,u,s,o,Math.PI+o)):u<f?(e.arc(l,u,s,-Math.PI,0),e.arc(l,f,s,0,Math.PI)):e.arc(l,u,s,-Math.PI,Math.PI),e.closePath(),e.moveTo(a,r)}else e.rect(a,r,t,i)}function we(e,a,r){var t=r.backgroundColor,i=r.borderColor,n=r.borderWidth;!t&&(!i||!n)||(e.beginPath(),me(e,c(a.x)+n/2,c(a.y)+n/2,c(a.w)-n,c(a.h)-n,r.borderRadius),e.closePath(),t&&(e.fillStyle=t,e.fill()),i&&n&&(e.strokeStyle=i,e.lineWidth=n,e.lineJoin="miter",e.stroke()))}function ke(e,a,r){var t=r.lineHeight,i=e.w,n=e.x,o=e.y+t/2;return a==="center"?n+=i/2:(a==="end"||a==="right")&&(n+=i),{h:t,w:i,x:n,y:o}}function Me(e,a,r){var t=e.shadowBlur,i=r.stroked,n=c(r.x),o=c(r.y),s=c(r.w);i&&e.strokeText(a,n,o,s),r.filled&&(t&&i&&(e.shadowBlur=0),e.fillText(a,n,o,s),t&&i&&(e.shadowBlur=t))}function Se(e,a,r,t){var i=t.textAlign,n=t.color,o=!!n,s=t.font,l=a.length,u=t.textStrokeColor,d=t.textStrokeWidth,f=u&&d,y;if(!(!l||!o&&!f))for(r=ke(r,i,s),e.font=s.string,e.textAlign=i,e.textBaseline="middle",e.shadowBlur=t.textShadowBlur,e.shadowColor=t.textShadowColor,o&&(e.fillStyle=n),f&&(e.lineJoin="round",e.lineWidth=d,e.strokeStyle=u),y=0,l=a.length;y<l;++y)Me(e,a[y],{stroked:f,filled:o,w:r.w,x:r.x,y:r.y+r.h*y})}var G=function(e,a,r,t){var i=this;i._config=e,i._index=t,i._model=null,i._rects=null,i._ctx=a,i._el=r};w(G.prototype,{_modelize:function(e,a,r,t){var i=this,n=i._index,o=K(v([r.font,{}],t,n)),s=v([r.color,V.color],t,n);return{align:v([r.align,"center"],t,n),anchor:v([r.anchor,"center"],t,n),area:t.chart.chartArea,backgroundColor:v([r.backgroundColor,null],t,n),borderColor:v([r.borderColor,null],t,n),borderRadius:v([r.borderRadius,0],t,n),borderWidth:v([r.borderWidth,0],t,n),clamp:v([r.clamp,!1],t,n),clip:v([r.clip,!1],t,n),color:s,display:e,font:o,lines:a,offset:v([r.offset,4],t,n),opacity:v([r.opacity,1],t,n),origin:pe(i._el,t),padding:Y(v([r.padding,4],t,n)),positioner:ge(i._el),rotation:v([r.rotation,0],t,n)*(Math.PI/180),size:g.textSize(i._ctx,a,o),textAlign:v([r.textAlign,"start"],t,n),textShadowBlur:v([r.textShadowBlur,0],t,n),textShadowColor:v([r.textShadowColor,s],t,n),textStrokeColor:v([r.textStrokeColor,s],t,n),textStrokeWidth:v([r.textStrokeWidth,0],t,n)}},update:function(e){var a=this,r=null,t=null,i=a._index,n=a._config,o,s,l,u=v([n.display,!0],e,i);u&&(o=e.dataset.data[i],s=Z(D(n.formatter,[o,e]),o),l=p(s)?[]:g.toTextLines(s),l.length&&(r=a._modelize(u,l,n,e),t=_e(r))),a._model=r,a._rects=t},geometry:function(){return this._rects?this._rects.frame:{}},rotation:function(){return this._model?this._model.rotation:0},visible:function(){return this._model&&this._model.opacity},model:function(){return this._model},draw:function(e,a){var r=this,t=e.ctx,i=r._model,n=r._rects,o;this.visible()&&(t.save(),i.clip&&(o=i.area,t.beginPath(),t.rect(o.left,o.top,o.right-o.left,o.bottom-o.top),t.clip()),t.globalAlpha=g.bound(0,i.opacity,1),t.translate(c(a.x),c(a.y)),t.rotate(i.rotation),we(t,n.frame,i),Se(t,i.lines,n.text,i),t.restore())}});var je=Number.MIN_SAFE_INTEGER||-9007199254740991,Ce=Number.MAX_SAFE_INTEGER||9007199254740991;function _(e,a,r){var t=Math.cos(r),i=Math.sin(r),n=a.x,o=a.y;return{x:n+t*(e.x-n)-i*(e.y-o),y:o+i*(e.x-n)+t*(e.y-o)}}function B(e,a){var r=Ce,t=je,i=a.origin,n,o,s,l,u;for(n=0;n<e.length;++n)o=e[n],s=o.x-i.x,l=o.y-i.y,u=a.vx*s+a.vy*l,r=Math.min(r,u),t=Math.max(t,u);return{min:r,max:t}}function C(e,a){var r=a.x-e.x,t=a.y-e.y,i=Math.sqrt(r*r+t*t);return{vx:(a.x-e.x)/i,vy:(a.y-e.y)/i,origin:e,ln:i}}var U=function(){this._rotation=0,this._rect={x:0,y:0,w:0,h:0}};w(U.prototype,{center:function(){var e=this._rect;return{x:e.x+e.w/2,y:e.y+e.h/2}},update:function(e,a,r){this._rotation=r,this._rect={x:a.x+e.x,y:a.y+e.y,w:a.w,h:a.h}},contains:function(e){var a=this,r=1,t=a._rect;return e=_(e,a.center(),-a._rotation),!(e.x<t.x-r||e.y<t.y-r||e.x>t.x+t.w+r*2||e.y>t.y+t.h+r*2)},intersects:function(e){var a=this._points(),r=e._points(),t=[C(a[0],a[1]),C(a[0],a[3])],i,n,o;for(this._rotation!==e._rotation&&t.push(C(r[0],r[1]),C(r[0],r[3])),i=0;i<t.length;++i)if(n=B(a,t[i]),o=B(r,t[i]),n.max<o.min||o.max<n.min)return!1;return!0},_points:function(){var e=this,a=e._rect,r=e._rotation,t=e.center();return[_({x:a.x,y:a.y},t,r),_({x:a.x+a.w,y:a.y},t,r),_({x:a.x+a.w,y:a.y+a.h},t,r),_({x:a.x,y:a.y+a.h},t,r)]}});function X(e,a,r){var t=a.positioner(e,a),i=t.vx,n=t.vy;if(!i&&!n)return{x:t.x,y:t.y};var o=r.w,s=r.h,l=a.rotation,u=Math.abs(o/2*Math.cos(l))+Math.abs(s/2*Math.sin(l)),d=Math.abs(o/2*Math.sin(l))+Math.abs(s/2*Math.cos(l)),f=1/Math.max(Math.abs(i),Math.abs(n));return u*=i*f,d*=n*f,u+=a.offset*i,d+=a.offset*n,{x:t.x+u,y:t.y+d}}function Ee(e,a){var r,t,i,n;for(r=e.length-1;r>=0;--r)for(i=e[r].$layout,t=r-1;t>=0&&i._visible;--t)n=e[t].$layout,n._visible&&i._box.intersects(n._box)&&a(i,n);return e}function Pe(e){var a,r,t,i,n,o,s;for(a=0,r=e.length;a<r;++a)t=e[a],i=t.$layout,i._visible&&(s=new Proxy(t._el,{get:(l,u)=>l.getProps([u],!0)[u]}),n=t.geometry(),o=X(s,t.model(),n),i._box.update(o,n,t.rotation()));return Ee(e,function(l,u){var d=l._hidable,f=u._hidable;d&&f||f?u._visible=!1:d&&(l._visible=!1)})}var m={prepare:function(e){var a=[],r,t,i,n,o;for(r=0,i=e.length;r<i;++r)for(t=0,n=e[r].length;t<n;++t)o=e[r][t],a.push(o),o.$layout={_box:new U,_hidable:!1,_visible:!0,_set:r,_idx:o._index};return a.sort(function(s,l){var u=s.$layout,d=l.$layout;return u._idx===d._idx?d._set-u._set:d._idx-u._idx}),this.update(a),a},update:function(e){var a=!1,r,t,i,n,o;for(r=0,t=e.length;r<t;++r)i=e[r],n=i.model(),o=i.$layout,o._hidable=n&&n.display==="auto",o._visible=i.visible(),a|=o._hidable;a&&Pe(e)},lookup:function(e,a){var r,t;for(r=e.length-1;r>=0;--r)if(t=e[r].$layout,t&&t._visible&&t._box.contains(a))return e[r];return null},draw:function(e,a){var r,t,i,n,o,s;for(r=0,t=a.length;r<t;++r)i=a[r],n=i.$layout,n._visible&&(o=i.geometry(),s=X(i._el,i.model(),o),n._box.update(s,o,i.rotation()),i.draw(e,s))}},Ie=function(e){if(p(e))return null;var a=e,r,t,i;if(re(e))if(!p(e.label))a=e.label;else if(!p(e.r))a=e.r;else for(a="",r=Object.keys(e),i=0,t=r.length;i<t;++i)a+=(i!==0?", ":"")+r[i]+": "+e[r[i]];return""+a},Ae={align:"center",anchor:"center",backgroundColor:null,borderColor:null,borderRadius:0,borderWidth:0,clamp:!1,clip:!1,color:void 0,display:!0,font:{family:void 0,lineHeight:1.2,size:void 0,style:void 0,weight:null},formatter:Ie,labels:void 0,listeners:{},offset:4,opacity:1,padding:{top:4,right:4,bottom:4,left:4},rotation:0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,textShadowBlur:0,textShadowColor:void 0},h="$datalabels",q="$default";function ze(e,a){var r=e.datalabels,t={},i=[],n,o;return r===!1?null:(r===!0&&(r={}),a=w({},[a,r]),n=a.labels||{},o=Object.keys(n),delete a.labels,o.length?o.forEach(function(s){n[s]&&i.push(w({},[a,n[s],{_key:s}]))}):i.push(a),t=i.reduce(function(s,l){return ee(l.listeners||{},function(u,d){s[d]=s[d]||{},s[d][l._key||q]=u}),delete l.listeners,s},{}),{labels:i,listeners:t})}function A(e,a,r,t){if(a){var i=r.$context,n=r.$groups,o;a[n._set]&&(o=a[n._set][n._key],o&&D(o,[i,t])===!0&&(e[h]._dirty=!0,r.update(i)))}}function Re(e,a,r,t,i){var n,o;!r&&!t||(r?t?r!==t&&(o=n=!0):o=!0:n=!0,o&&A(e,a.leave,r,i),n&&A(e,a.enter,t,i))}function Te(e,a){var r=e[h],t=r._listeners,i,n;if(!(!t.enter&&!t.leave)){if(a.type==="mousemove")n=m.lookup(r._labels,a);else if(a.type!=="mouseout")return;i=r._hovered,r._hovered=n,Re(e,t,i,n,a)}}function $e(e,a){var r=e[h],t=r._listeners.click,i=t&&m.lookup(r._labels,a);i&&A(e,t,i,a)}var Be={id:"datalabels",defaults:Ae,beforeInit:function(e){e[h]={_actives:[]}},beforeUpdate:function(e){var a=e[h];a._listened=!1,a._listeners={},a._datasets=[],a._labels=[]},afterDatasetUpdate:function(e,a,r){var t=a.index,i=e[h],n=i._datasets[t]=[],o=e.isDatasetVisible(t),s=e.data.datasets[t],l=ze(s,r),u=a.meta.data||[],d=e.ctx,f,y,z,R,E,T,b,x;for(d.save(),f=0,z=u.length;f<z;++f)if(b=u[f],b[h]=[],o&&b&&e.getDataVisibility(f)&&!b.skip)for(y=0,R=l.labels.length;y<R;++y)E=l.labels[y],T=E._key,x=new G(E,d,b,f),x.$groups={_set:t,_key:T||q},x.$context={active:!1,chart:e,dataIndex:f,dataset:s,datasetIndex:t},x.update(x.$context),b[h].push(x),n.push(x);d.restore(),w(i._listeners,l.listeners,{merger:function(k,P,J){P[k]=P[k]||{},P[k][a.index]=J[k],i._listened=!0}})},afterUpdate:function(e){e[h]._labels=m.prepare(e[h]._datasets)},afterDatasetsDraw:function(e){m.draw(e,e[h]._labels)},beforeEvent:function(e,a){if(e[h]._listened){var r=a.event;switch(r.type){case"mousemove":case"mouseout":Te(e,r);break;case"click":$e(e,r);break}}},afterEvent:function(e){var a=e[h],r=a._actives,t=a._actives=e.getActiveElements(),i=g.arrayDiff(r,t),n,o,s,l,u,d,f;for(n=0,o=i.length;n<o;++n)if(u=i[n],u[1])for(f=u[0].element[h]||[],s=0,l=f.length;s<l;++s)d=f[s],d.$context.active=u[1]===1,d.update(d.$context);(a._dirty||i.length)&&(m.update(a._labels),e.render()),delete a._dirty}};const De=e=>({plugins:{legend:{position:"right",maxWidth:150,align:"start",labels:{color:e.palette.text.secondary,usePointStyle:!0,padding:21,boxHeight:8,font:{size:10}}},datalabels:{color:e.palette.text.primary,font:{weight:"bold",size:10},anchor:"end",align:"top",offset:-6}},responsive:!0,maintainAspectRatio:!1,color:e.palette.text.secondary,scales:{y:{beginAtZero:!0,grid:{color:e.palette.divider,borderColor:e.palette.divider,drawBorder:!1},ticks:{stepSize:1,color:e.palette.text.disabled,font:{size:10}}},x:{grid:{display:!1},ticks:{color:e.palette.text.primary,font:{size:10}}}}});function We(e){return ye.all(e.filter(a=>a))}const Ne=({data:e,ariaLabel:a,ariaDescription:r,overrideOptions:t})=>{const i=te(),{locationSettings:n}=ae(),o=ie.useMemo(()=>We([De(i)]),[i,n,t]);return ne.jsx(oe,{options:o,data:e,"aria-label":a,"aria-description":r,plugins:[Be]})};se.register(le,ue,W,O,de,fe,ve,he);export{De as createOptions,Ne as default};
|
|
6
|
+
*/var $=function(){if(typeof window<"u"){if(window.devicePixelRatio)return window.devicePixelRatio;var e=window.screen;if(e)return(e.deviceXDPI||1)/(e.logicalXDPI||1)}return 1}(),m={toTextLines:function(e){var a=[],r;for(e=[].concat(e);e.length;)r=e.pop(),typeof r=="string"?a.unshift.apply(a,r.split(`
|
|
7
|
+
`)):Array.isArray(r)?e.push.apply(e,r):p(e)||a.unshift(""+r);return a},textSize:function(e,a,r){var t=[].concat(a),i=t.length,n=e.font,o=0,s;for(e.font=r.string,s=0;s<i;++s)o=Math.max(e.measureText(t[s]).width,o);return e.font=n,{height:i*r.lineHeight,width:o}},bound:function(e,a,r){return Math.max(e,Math.min(a,r))},arrayDiff:function(e,a){var r=e.slice(),t=[],i,n,o,s;for(i=0,o=a.length;i<o;++i)s=a[i],n=r.indexOf(s),n===-1?t.push([s,1]):r.splice(n,1);for(i=0,o=r.length;i<o;++i)t.push([r[i],-1]);return t},rasterize:function(e){return Math.round(e*$)/$}};function I(e,a){var r=a.x,t=a.y;if(r===null)return{x:0,y:-1};if(t===null)return{x:1,y:0};var i=e.x-r,n=e.y-t,o=Math.sqrt(i*i+n*n);return{x:o?i/o:0,y:o?n/o:-1}}function ce(e,a,r,t,i){switch(i){case"center":r=t=0;break;case"bottom":r=0,t=1;break;case"right":r=1,t=0;break;case"left":r=-1,t=0;break;case"top":r=0,t=-1;break;case"start":r=-r,t=-t;break;case"end":break;default:i*=Math.PI/180,r=Math.cos(i),t=Math.sin(i);break}return{x:e,y:a,vx:r,vy:t}}var xe=0,N=1,L=2,F=4,H=8;function M(e,a,r){var t=xe;return e<r.left?t|=N:e>r.right&&(t|=L),a<r.top?t|=H:a>r.bottom&&(t|=F),t}function be(e,a){for(var r=e.x0,t=e.y0,i=e.x1,n=e.y1,o=M(r,t,a),s=M(i,n,a),l,u,d;!(!(o|s)||o&s);)l=o||s,l&H?(u=r+(i-r)*(a.top-t)/(n-t),d=a.top):l&F?(u=r+(i-r)*(a.bottom-t)/(n-t),d=a.bottom):l&L?(d=t+(n-t)*(a.right-r)/(i-r),u=a.right):l&N&&(d=t+(n-t)*(a.left-r)/(i-r),u=a.left),l===o?(r=u,t=d,o=M(r,t,a)):(i=u,n=d,s=M(i,n,a));return{x0:r,x1:i,y0:t,y1:n}}function S(e,a){var r=a.anchor,t=e,i,n;return a.clamp&&(t=be(t,a.area)),r==="start"?(i=t.x0,n=t.y0):r==="end"?(i=t.x1,n=t.y1):(i=(t.x0+t.x1)/2,n=(t.y0+t.y1)/2),ce(i,n,e.vx,e.vy,a.align)}var j={arc:function(e,a){var r=(e.startAngle+e.endAngle)/2,t=Math.cos(r),i=Math.sin(r),n=e.innerRadius,o=e.outerRadius;return S({x0:e.x+t*n,y0:e.y+i*n,x1:e.x+t*o,y1:e.y+i*o,vx:t,vy:i},a)},point:function(e,a){var r=I(e,a.origin),t=r.x*e.options.radius,i=r.y*e.options.radius;return S({x0:e.x-t,y0:e.y-i,x1:e.x+t,y1:e.y+i,vx:r.x,vy:r.y},a)},bar:function(e,a){var r=I(e,a.origin),t=e.x,i=e.y,n=0,o=0;return e.horizontal?(t=Math.min(e.x,e.base),n=Math.abs(e.base-e.x)):(i=Math.min(e.y,e.base),o=Math.abs(e.base-e.y)),S({x0:t,y0:i+o,x1:t+n,y1:i,vx:r.x,vy:r.y},a)},fallback:function(e,a){var r=I(e,a.origin);return S({x0:e.x,y0:e.y,x1:e.x+(e.width||0),y1:e.y+(e.height||0),vx:r.x,vy:r.y},a)}},c=m.rasterize;function _e(e){var a=e.borderWidth||0,r=e.padding,t=e.size.height,i=e.size.width,n=-i/2,o=-t/2;return{frame:{x:n-r.left-a,y:o-r.top-a,w:i+r.width+a*2,h:t+r.height+a*2},text:{x:n,y:o,w:i,h:t}}}function pe(e,a){var r=a.chart.getDatasetMeta(a.datasetIndex).vScale;if(!r)return null;if(r.xCenter!==void 0&&r.yCenter!==void 0)return{x:r.xCenter,y:r.yCenter};var t=r.getBasePixel();return e.horizontal?{x:t,y:null}:{x:null,y:t}}function me(e){return e instanceof Q?j.arc:e instanceof W?j.point:e instanceof O?j.bar:j.fallback}function ge(e,a,r,t,i,n){var o=Math.PI/2;if(n){var s=Math.min(n,i/2,t/2),l=a+s,u=r+s,d=a+t-s,f=r+i-s;e.moveTo(a,u),l<d&&u<f?(e.arc(l,u,s,-Math.PI,-o),e.arc(d,u,s,-o,0),e.arc(d,f,s,0,o),e.arc(l,f,s,o,Math.PI)):l<d?(e.moveTo(l,r),e.arc(d,u,s,-o,o),e.arc(l,u,s,o,Math.PI+o)):u<f?(e.arc(l,u,s,-Math.PI,0),e.arc(l,f,s,0,Math.PI)):e.arc(l,u,s,-Math.PI,Math.PI),e.closePath(),e.moveTo(a,r)}else e.rect(a,r,t,i)}function we(e,a,r){var t=r.backgroundColor,i=r.borderColor,n=r.borderWidth;!t&&(!i||!n)||(e.beginPath(),ge(e,c(a.x)+n/2,c(a.y)+n/2,c(a.w)-n,c(a.h)-n,r.borderRadius),e.closePath(),t&&(e.fillStyle=t,e.fill()),i&&n&&(e.strokeStyle=i,e.lineWidth=n,e.lineJoin="miter",e.stroke()))}function ke(e,a,r){var t=r.lineHeight,i=e.w,n=e.x,o=e.y+t/2;return a==="center"?n+=i/2:(a==="end"||a==="right")&&(n+=i),{h:t,w:i,x:n,y:o}}function Me(e,a,r){var t=e.shadowBlur,i=r.stroked,n=c(r.x),o=c(r.y),s=c(r.w);i&&e.strokeText(a,n,o,s),r.filled&&(t&&i&&(e.shadowBlur=0),e.fillText(a,n,o,s),t&&i&&(e.shadowBlur=t))}function Se(e,a,r,t){var i=t.textAlign,n=t.color,o=!!n,s=t.font,l=a.length,u=t.textStrokeColor,d=t.textStrokeWidth,f=u&&d,y;if(!(!l||!o&&!f))for(r=ke(r,i,s),e.font=s.string,e.textAlign=i,e.textBaseline="middle",e.shadowBlur=t.textShadowBlur,e.shadowColor=t.textShadowColor,o&&(e.fillStyle=n),f&&(e.lineJoin="round",e.lineWidth=d,e.strokeStyle=u),y=0,l=a.length;y<l;++y)Me(e,a[y],{stroked:f,filled:o,w:r.w,x:r.x,y:r.y+r.h*y})}var G=function(e,a,r,t){var i=this;i._config=e,i._index=t,i._model=null,i._rects=null,i._ctx=a,i._el=r};w(G.prototype,{_modelize:function(e,a,r,t){var i=this,n=i._index,o=K(v([r.font,{}],t,n)),s=v([r.color,V.color],t,n);return{align:v([r.align,"center"],t,n),anchor:v([r.anchor,"center"],t,n),area:t.chart.chartArea,backgroundColor:v([r.backgroundColor,null],t,n),borderColor:v([r.borderColor,null],t,n),borderRadius:v([r.borderRadius,0],t,n),borderWidth:v([r.borderWidth,0],t,n),clamp:v([r.clamp,!1],t,n),clip:v([r.clip,!1],t,n),color:s,display:e,font:o,lines:a,offset:v([r.offset,4],t,n),opacity:v([r.opacity,1],t,n),origin:pe(i._el,t),padding:Y(v([r.padding,4],t,n)),positioner:me(i._el),rotation:v([r.rotation,0],t,n)*(Math.PI/180),size:m.textSize(i._ctx,a,o),textAlign:v([r.textAlign,"start"],t,n),textShadowBlur:v([r.textShadowBlur,0],t,n),textShadowColor:v([r.textShadowColor,s],t,n),textStrokeColor:v([r.textStrokeColor,s],t,n),textStrokeWidth:v([r.textStrokeWidth,0],t,n)}},update:function(e){var a=this,r=null,t=null,i=a._index,n=a._config,o,s,l,u=v([n.display,!0],e,i);u&&(o=e.dataset.data[i],s=Z(D(n.formatter,[o,e]),o),l=p(s)?[]:m.toTextLines(s),l.length&&(r=a._modelize(u,l,n,e),t=_e(r))),a._model=r,a._rects=t},geometry:function(){return this._rects?this._rects.frame:{}},rotation:function(){return this._model?this._model.rotation:0},visible:function(){return this._model&&this._model.opacity},model:function(){return this._model},draw:function(e,a){var r=this,t=e.ctx,i=r._model,n=r._rects,o;this.visible()&&(t.save(),i.clip&&(o=i.area,t.beginPath(),t.rect(o.left,o.top,o.right-o.left,o.bottom-o.top),t.clip()),t.globalAlpha=m.bound(0,i.opacity,1),t.translate(c(a.x),c(a.y)),t.rotate(i.rotation),we(t,n.frame,i),Se(t,i.lines,n.text,i),t.restore())}});var je=Number.MIN_SAFE_INTEGER||-9007199254740991,Ce=Number.MAX_SAFE_INTEGER||9007199254740991;function _(e,a,r){var t=Math.cos(r),i=Math.sin(r),n=a.x,o=a.y;return{x:n+t*(e.x-n)-i*(e.y-o),y:o+i*(e.x-n)+t*(e.y-o)}}function B(e,a){var r=Ce,t=je,i=a.origin,n,o,s,l,u;for(n=0;n<e.length;++n)o=e[n],s=o.x-i.x,l=o.y-i.y,u=a.vx*s+a.vy*l,r=Math.min(r,u),t=Math.max(t,u);return{min:r,max:t}}function C(e,a){var r=a.x-e.x,t=a.y-e.y,i=Math.sqrt(r*r+t*t);return{vx:(a.x-e.x)/i,vy:(a.y-e.y)/i,origin:e,ln:i}}var U=function(){this._rotation=0,this._rect={x:0,y:0,w:0,h:0}};w(U.prototype,{center:function(){var e=this._rect;return{x:e.x+e.w/2,y:e.y+e.h/2}},update:function(e,a,r){this._rotation=r,this._rect={x:a.x+e.x,y:a.y+e.y,w:a.w,h:a.h}},contains:function(e){var a=this,r=1,t=a._rect;return e=_(e,a.center(),-a._rotation),!(e.x<t.x-r||e.y<t.y-r||e.x>t.x+t.w+r*2||e.y>t.y+t.h+r*2)},intersects:function(e){var a=this._points(),r=e._points(),t=[C(a[0],a[1]),C(a[0],a[3])],i,n,o;for(this._rotation!==e._rotation&&t.push(C(r[0],r[1]),C(r[0],r[3])),i=0;i<t.length;++i)if(n=B(a,t[i]),o=B(r,t[i]),n.max<o.min||o.max<n.min)return!1;return!0},_points:function(){var e=this,a=e._rect,r=e._rotation,t=e.center();return[_({x:a.x,y:a.y},t,r),_({x:a.x+a.w,y:a.y},t,r),_({x:a.x+a.w,y:a.y+a.h},t,r),_({x:a.x,y:a.y+a.h},t,r)]}});function X(e,a,r){var t=a.positioner(e,a),i=t.vx,n=t.vy;if(!i&&!n)return{x:t.x,y:t.y};var o=r.w,s=r.h,l=a.rotation,u=Math.abs(o/2*Math.cos(l))+Math.abs(s/2*Math.sin(l)),d=Math.abs(o/2*Math.sin(l))+Math.abs(s/2*Math.cos(l)),f=1/Math.max(Math.abs(i),Math.abs(n));return u*=i*f,d*=n*f,u+=a.offset*i,d+=a.offset*n,{x:t.x+u,y:t.y+d}}function Ee(e,a){var r,t,i,n;for(r=e.length-1;r>=0;--r)for(i=e[r].$layout,t=r-1;t>=0&&i._visible;--t)n=e[t].$layout,n._visible&&i._box.intersects(n._box)&&a(i,n);return e}function Pe(e){var a,r,t,i,n,o,s;for(a=0,r=e.length;a<r;++a)t=e[a],i=t.$layout,i._visible&&(s=new Proxy(t._el,{get:(l,u)=>l.getProps([u],!0)[u]}),n=t.geometry(),o=X(s,t.model(),n),i._box.update(o,n,t.rotation()));return Ee(e,function(l,u){var d=l._hidable,f=u._hidable;d&&f||f?u._visible=!1:d&&(l._visible=!1)})}var g={prepare:function(e){var a=[],r,t,i,n,o;for(r=0,i=e.length;r<i;++r)for(t=0,n=e[r].length;t<n;++t)o=e[r][t],a.push(o),o.$layout={_box:new U,_hidable:!1,_visible:!0,_set:r,_idx:o._index};return a.sort(function(s,l){var u=s.$layout,d=l.$layout;return u._idx===d._idx?d._set-u._set:d._idx-u._idx}),this.update(a),a},update:function(e){var a=!1,r,t,i,n,o;for(r=0,t=e.length;r<t;++r)i=e[r],n=i.model(),o=i.$layout,o._hidable=n&&n.display==="auto",o._visible=i.visible(),a|=o._hidable;a&&Pe(e)},lookup:function(e,a){var r,t;for(r=e.length-1;r>=0;--r)if(t=e[r].$layout,t&&t._visible&&t._box.contains(a))return e[r];return null},draw:function(e,a){var r,t,i,n,o,s;for(r=0,t=a.length;r<t;++r)i=a[r],n=i.$layout,n._visible&&(o=i.geometry(),s=X(i._el,i.model(),o),n._box.update(s,o,i.rotation()),i.draw(e,s))}},Ie=function(e){if(p(e))return null;var a=e,r,t,i;if(re(e))if(!p(e.label))a=e.label;else if(!p(e.r))a=e.r;else for(a="",r=Object.keys(e),i=0,t=r.length;i<t;++i)a+=(i!==0?", ":"")+r[i]+": "+e[r[i]];return""+a},Ae={align:"center",anchor:"center",backgroundColor:null,borderColor:null,borderRadius:0,borderWidth:0,clamp:!1,clip:!1,color:void 0,display:!0,font:{family:void 0,lineHeight:1.2,size:void 0,style:void 0,weight:null},formatter:Ie,labels:void 0,listeners:{},offset:4,opacity:1,padding:{top:4,right:4,bottom:4,left:4},rotation:0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,textShadowBlur:0,textShadowColor:void 0},h="$datalabels",q="$default";function ze(e,a){var r=e.datalabels,t={},i=[],n,o;return r===!1?null:(r===!0&&(r={}),a=w({},[a,r]),n=a.labels||{},o=Object.keys(n),delete a.labels,o.length?o.forEach(function(s){n[s]&&i.push(w({},[a,n[s],{_key:s}]))}):i.push(a),t=i.reduce(function(s,l){return ee(l.listeners||{},function(u,d){s[d]=s[d]||{},s[d][l._key||q]=u}),delete l.listeners,s},{}),{labels:i,listeners:t})}function A(e,a,r,t){if(a){var i=r.$context,n=r.$groups,o;a[n._set]&&(o=a[n._set][n._key],o&&D(o,[i,t])===!0&&(e[h]._dirty=!0,r.update(i)))}}function Re(e,a,r,t,i){var n,o;!r&&!t||(r?t?r!==t&&(o=n=!0):o=!0:n=!0,o&&A(e,a.leave,r,i),n&&A(e,a.enter,t,i))}function Te(e,a){var r=e[h],t=r._listeners,i,n;if(!(!t.enter&&!t.leave)){if(a.type==="mousemove")n=g.lookup(r._labels,a);else if(a.type!=="mouseout")return;i=r._hovered,r._hovered=n,Re(e,t,i,n,a)}}function $e(e,a){var r=e[h],t=r._listeners.click,i=t&&g.lookup(r._labels,a);i&&A(e,t,i,a)}var Be={id:"datalabels",defaults:Ae,beforeInit:function(e){e[h]={_actives:[]}},beforeUpdate:function(e){var a=e[h];a._listened=!1,a._listeners={},a._datasets=[],a._labels=[]},afterDatasetUpdate:function(e,a,r){var t=a.index,i=e[h],n=i._datasets[t]=[],o=e.isDatasetVisible(t),s=e.data.datasets[t],l=ze(s,r),u=a.meta.data||[],d=e.ctx,f,y,z,R,E,T,b,x;for(d.save(),f=0,z=u.length;f<z;++f)if(b=u[f],b[h]=[],o&&b&&e.getDataVisibility(f)&&!b.skip)for(y=0,R=l.labels.length;y<R;++y)E=l.labels[y],T=E._key,x=new G(E,d,b,f),x.$groups={_set:t,_key:T||q},x.$context={active:!1,chart:e,dataIndex:f,dataset:s,datasetIndex:t},x.update(x.$context),b[h].push(x),n.push(x);d.restore(),w(i._listeners,l.listeners,{merger:function(k,P,J){P[k]=P[k]||{},P[k][a.index]=J[k],i._listened=!0}})},afterUpdate:function(e){e[h]._labels=g.prepare(e[h]._datasets)},afterDatasetsDraw:function(e){g.draw(e,e[h]._labels)},beforeEvent:function(e,a){if(e[h]._listened){var r=a.event;switch(r.type){case"mousemove":case"mouseout":Te(e,r);break;case"click":$e(e,r);break}}},afterEvent:function(e){var a=e[h],r=a._actives,t=a._actives=e.getActiveElements(),i=m.arrayDiff(r,t),n,o,s,l,u,d,f;for(n=0,o=i.length;n<o;++n)if(u=i[n],u[1])for(f=u[0].element[h]||[],s=0,l=f.length;s<l;++s)d=f[s],d.$context.active=u[1]===1,d.update(d.$context);(a._dirty||i.length)&&(g.update(a._labels),e.render()),delete a._dirty}};const De=e=>({plugins:{legend:{position:"right",maxWidth:150,align:"start",labels:{color:e.palette.text.secondary,usePointStyle:!0,padding:21,boxHeight:8,font:{size:10}}},datalabels:{color:e.palette.text.primary,font:{weight:"bold",size:10},anchor:"end",align:"top",offset:-6}},responsive:!0,maintainAspectRatio:!1,color:e.palette.text.secondary,scales:{y:{beginAtZero:!0,grid:{color:e.palette.divider,borderColor:e.palette.divider,drawBorder:!1},ticks:{stepSize:1,color:e.palette.text.disabled,font:{size:10}}},x:{grid:{display:!1},ticks:{color:e.palette.text.primary,font:{size:10}}}}});function We(e){return ye.all(e.filter(a=>a))}const Ne=({data:e,ariaLabel:a,ariaDescription:r,overrideOptions:t})=>{const i=te(),{locationSettings:n}=ae(),o=ie.useMemo(()=>We([De(i)]),[i,n,t]);return ne.jsx(oe,{options:o,data:e,"aria-label":a,"aria-description":r,plugins:[Be]})};se.register(le,ue,W,O,de,fe,ve,he);export{De as createOptions,Ne as default};
|
package/frontend/build/static/{LineChartComponent-CY-8M35z.js → LineChartComponent-p_JFdSdE.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jK as g,jL as u,s as x,b as j,bq as y,r as p,j as i,jM as b,jN as m,C,jO as S,jP as h,jQ as f,jl as L,jm as R,jn as w,jE as A,jR as E,jH as T,jq as k,jr as v,jI as M,jJ as _}from"./index-B_EIW-7Y.js";const q={position:"bottom",labels:{boxWidth:12,padding:30,generateLabels:t=>{var l;const s=t.data.datasets,{labels:{usePointStyle:e,pointStyle:o,textAlign:r,color:d}}=((l=t==null?void 0:t.legend)==null?void 0:l.options)||{labels:{}};return t._getSortedDatasetMetas().map(n=>{const a=n.controller.getStyle(e?0:void 0);return{text:s[n.index].label,fillStyle:a.borderColor,fontColor:d,hidden:!n.visible,lineWidth:0,borderRadius:6,strokeStyle:a.borderColor,pointStyle:o||a.pointStyle,textAlign:r||a.textAlign,datasetIndex:n.index}})}}},D=(t,s,e,o)=>({responsive:!0,...o?{animation:{duration:0}}:{},plugins:{legend:{...q,display:!o},tooltip:{enabled:!1,position:"nearest",external:g(e)}},locale:s.locale,interaction:{intersect:!1,axis:"xy",mode:"nearest"},elements:{point:{radius:0,hitRadius:15}},color:t.palette.text.secondary,scales:{y:{beginAtZero:!0,type:"linear",grid:{color:t.palette.divider,borderColor:t.palette.divider},ticks:{color:t.palette.text.secondary,display:!o,precision:0}},x:{adapters:{date:{locale:u(s.locale)}},type:"time",time:{unit:"week",tooltipFormat:"P"},grid:{color:"transparent",borderColor:"transparent"},ticks:{color:t.palette.text.secondary,display:!o,source:"data",maxRotation:90,minRotation:23.5}}}}),F=x("div")(({theme:t})=>({position:"relative"}));function H(t){return _.all(t.filter(s=>s))}const O=({data:t,aspectRatio:s=2.5,cover:e,overrideOptions:o,TooltipComponent:r})=>{const d=j(),{locationSettings:l}=y(),[n,a]=p.useState(null),c=p.useMemo(()=>H([D(d,l,a,!!e),o??{}]),[d,l,a,o,e]);return i.jsxs(F,{children:[i.jsx(b,{options:c,data:t,plugins:[m({width:26})],height:100,width:100*s},e?"cover":"chart"),i.jsx(C,{condition:!e,show:r?i.jsx(S,{tooltip:n,children:i.jsx(r,{tooltip:n})}):i.jsx(h,{tooltip:n}),elseShow:i.jsx(f,{children:e!==!0?e:" "})})]})};L.register(R,w,A,E,T,k,v,M);export{O as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{cj as H,
|
|
1
|
+
import{cj as H,b7 as k,b9 as L,j as e,aV as $,C as p,R as m,T as C,L as y,aT as P,aU as D,f as M,bd as _,fY as E,aR as W,aS as z,i as G,r as f,dE as F,dF as B,s as N,A as J,n as K,m as Y,o as Q,q as X,jt as Z,aq as U,B as T,fg as I,ju as A,fh as b}from"./index-B_EIW-7Y.js";const ee=t=>fetch(t).then(L("ChangeRequest")).then(s=>s.json()),te=(t,s)=>{const r=s.map(i=>`feature=${i}`).join("&"),{data:n,error:a,mutate:o}=H([],k(`api/admin/projects/${t}/change-requests/scheduled?${r}`),ee);return{changeRequests:n,loading:!a&&!n,refetch:o,error:a}},S=()=>e.jsx(m,{severity:"warning",sx:{m:t=>t.spacing(2,0)},children:"Archiving flags with dependencies will also remove those dependencies."}),ne=({ids:t,projectId:s})=>{const r=n=>`/projects/${s}/features/${n}`;return t?e.jsxs(m,{severity:"warning",sx:{m:n=>n.spacing(2,0)},children:[e.jsx(C,{fontWeight:"bold",variant:"body2",display:"inline",children:`${t.length} feature flags `}),e.jsx("span",{children:"have usage from applications. If you archive these feature flags they will not be available to Client SDKs:"}),e.jsx("ul",{children:t==null?void 0:t.map(n=>e.jsx("li",{children:e.jsx(y,{to:r(n),children:n})},n))})]}):null},q=({ids:t,projectId:s})=>{const r=n=>`/projects/${s}/features/${n}`;return t&&t.length>1?e.jsxs(m,{severity:"error",sx:{m:n=>n.spacing(2,0)},children:[e.jsx(C,{fontWeight:"bold",variant:"body2",display:"inline",children:`${t.length} feature flags `}),e.jsx("span",{children:"have child features that depend on them and are not part of the archive operation. These parent features can not be archived:"}),e.jsx("ul",{children:t==null?void 0:t.map(n=>e.jsx("li",{children:e.jsx(y,{to:r(n),children:n})},n))})]}):t&&t.length===1?e.jsxs(m,{severity:"error",sx:{m:n=>n.spacing(2,0)},children:[e.jsx(y,{to:r(t[0]),children:t[0]})," has child features that depend on it and are not part of the archive operation."]}):null},R=({changeRequests:t,projectId:s})=>t&&t.length>0?e.jsxs(m,{severity:"warning",sx:{m:r=>r.spacing(2,0)},children:[e.jsxs("p",{children:["This archive operation would conflict with"," ",t.length," scheduled change request(s). The change request(s) that would be affected by this are:"]}),e.jsx("ul",{children:t.map(({id:r,title:n})=>{const a=n?`#${r} (${n})`:`Change request #${r}`;return e.jsx("li",{children:e.jsx(y,{to:`/projects/${s}/change-requests/${r}`,target:"_blank",rel:"noopener noreferrer",title:`Change request ${r}`,children:a})},r)})})]}):t===void 0?e.jsx(m,{severity:"warning",children:e.jsx("p",{children:"This archive operation might conflict with one or more scheduled change requests. If you complete it, those change requests can no longer be applied."})}):null,se=(t,s)=>{const n=P(t)(),{isChangeRequestConfiguredForReview:a}=D(t);return n&&a(n)&&s?"Add to change request":n&&a(n)?"Add change to draft":s?"Archive flags":"Archive flag"},ae=({projectId:t,featureIds:s,onSuccess:r,onError:n})=>{const{setToastData:a,setToastApiError:o}=M(),{archiveFeatureToggle:i}=_(),{archiveFeatures:c}=E(),{isChangeRequestConfiguredForReview:h}=D(t),{addChange:x}=W(),{refetch:u}=z(t),d=P(t),g=(s==null?void 0:s.length)>1,l=d(),v=async()=>{if(!l){console.error("No change request environment");return}await x(t,l,s.map(w=>({action:"archiveFeature",feature:w,payload:void 0}))),u(),a({type:"success",text:g?"Changes added to a draft":"Change added to a draft"})},j=async()=>{await i(t,s[0]),a({type:"success",text:"Feature flag archived"})},V=async()=>{await c(t,s),a({type:"success",text:"Feature flags archived"})};return async()=>{try{l&&h(l)?await v():g?await V():await j(),r()}catch(w){o(G(w)),n()}}},re=(t,s,r)=>{const[n,a]=f.useState(!0),[o,i]=f.useState([]),[c,h]=f.useState(!1),{verifyArchiveFeatures:x}=E();return f.useEffect(()=>{r&&x(s,t).then(u=>u.json()).then(({hasDeletedDependencies:u,parentsWithChildFeatures:d})=>{d.length===0?(a(!1),i(d)):(a(!0),i(d)),h(u)})},[JSON.stringify(t),r,s,i,a,h]),{disableArchive:n,offendingParents:o,hasDeletedDependencies:c}},ue=({isOpen:t,onClose:s,onConfirm:r,projectId:n,featureIds:a,featuresWithUsage:o})=>{const i=(a==null?void 0:a.length)>1,c=se(n,i),h=i?"Archive feature flags":"Archive feature flag",x=ae({projectId:n,featureIds:a,onSuccess(){r(),s()},onError(){s()}}),{changeRequests:u}=te(n,a),{disableArchive:d,offendingParents:g,hasDeletedDependencies:l}=re(a,n,t),v=g.length===0&&l;return e.jsx($,{onClick:x,open:t,onClose:s,primaryButtonText:c,secondaryButtonText:"Cancel",title:h,disabledPrimaryButton:d,children:e.jsx(p,{condition:i,show:e.jsxs(e.Fragment,{children:[e.jsxs("p",{children:["Are you sure you want to archive"," ",e.jsx("strong",{children:a==null?void 0:a.length})," feature flags?"]}),e.jsx(p,{condition:!!(o&&(o==null?void 0:o.length)>0),show:e.jsx(ne,{ids:o,projectId:n})}),e.jsx(p,{condition:g.length>0,show:e.jsx(q,{ids:g,projectId:n})}),e.jsx(p,{condition:v,show:e.jsx(S,{})}),e.jsx(R,{changeRequests:u,projectId:n}),e.jsx(p,{condition:(a==null?void 0:a.length)<=5,show:e.jsx("ul",{children:a==null?void 0:a.map(j=>e.jsx("li",{children:j},j))})})]}),elseShow:e.jsxs(e.Fragment,{children:[e.jsxs("p",{children:["Are you sure you want to archive"," ",i?"these feature flags":"this feature flag","?"]}),e.jsx(p,{condition:g.length>0,show:e.jsx(q,{ids:g,projectId:n})}),e.jsx(p,{condition:v,show:e.jsx(S,{})}),e.jsx(R,{changeRequests:u,projectId:n})]})})})},ie=(t,s)=>`/api/admin/projects/${t}/features/${s}/parents`,ge=(t,s)=>{const r=k(ie(t,s)),{data:n,loading:a,error:o}=F(r,()=>B(r,"Parent Options"));return{parentOptions:n,loading:a,error:o}},oe=(t,s)=>`/api/admin/projects/${t}/features/${s}/parent-variants`,O=(t,s)=>{const r=k(oe(t,s)),{data:n,loading:a,error:o}=F(r,()=>B(r,"Parent Variant Options"));return{parentVariantOptions:n||[],loading:a,error:o}},ce=N(J)(({theme:t})=>({marginTop:t.spacing(2),marginBottom:t.spacing(1.5)})),le=({project:t,parent:s,onSelect:r})=>{const{parentVariantOptions:n}=O(t,s),a=e.jsx(Q,{fontSize:"small"}),o=e.jsx(X,{fontSize:"small"});return e.jsx(ce,{id:"single-variant-options",options:n,renderOption:(i,c,{selected:h})=>e.jsxs("li",{...i,children:[e.jsx(K,{icon:a,checkedIcon:o,style:{marginRight:8},checked:h}),c]}),renderInput:i=>e.jsx(Y,{...i,placeholder:"Select variant"}),fullWidth:!0,onChange:(i,c)=>{r(String(c))}})},de=({projectId:t,featureId:s,isOpen:r,setIsOpen:n,onComplete:a})=>{const{markFeatureCompleted:o}=Z(),{parentVariantOptions:i}=O(t,s),[c,h]=f.useState("kept"),[x,u]=f.useState(void 0),{trackEvent:d}=U(),g=async()=>{const l=c==="kept-with-variant"?"kept":c;await o(s,t,{status:l,statusValue:x}),n(!1),a(),d("feature-lifecycle",{props:{eventType:"complete",status:l}})};return e.jsx($,{open:r,title:"Mark completed",onClose:()=>{n(!1)},disabledPrimaryButton:c==="kept-with-variant"&&x===null,onClick:g,primaryButtonText:"Mark completed",secondaryButtonText:"Cancel",children:e.jsxs(T,{children:[e.jsxs(T,{sx:{mt:2,mb:4},children:["Marking the feature ",e.jsx("b",{children:s})," as complete does not affect any configuration, but it moves the feature flag into it’s next life cycle stage and is an indication that you have learned what you needed in order to progress with the feature. It serves as a reminder to start cleaning up the feature flag and removing it from the code."]}),e.jsx(C,{sx:{mb:2},children:e.jsx("b",{children:"What was the outcome of this feature?"})}),e.jsxs(I,{"aria-label":"selected-value",name:"selected",sx:{gap:l=>l.spacing(.5)},onChange:(l,v)=>{h(v)},children:[e.jsx(A,{value:"kept",legal:{value:"We decided to keep the feature"},control:e.jsx(b,{})},"kept"),e.jsx(A,{value:"discarded",legal:{value:"We decided to discard the feature"},control:e.jsx(b,{})},"discarded"),e.jsx(p,{condition:i.length>0,show:e.jsx(A,{value:"kept-with-variant",legal:{value:"We decided to keep the feature variant",description:"Choose to specify which feature variant will be kept"},control:e.jsx(b,{})},"kept-with-variant")}),e.jsx(p,{condition:i.length>0&&c==="kept-with-variant",show:e.jsx(le,{parent:s,project:t,onSelect:l=>{u(l)}})})]})]})})};export{ue as F,de as M,ge as a,O as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as i,T as d,
|
|
1
|
+
import{s as i,T as d,cV as h,b as x,r as u,j as t,R as m,gc as c,jS as y,jT as j,jU as f}from"./index-B_EIW-7Y.js";import{u as b,N as v}from"./NetworkPrometheusAPIWarning-COfHXZmz.js";import{u as g}from"./unknownify-B7hmSXnj.js";const w=i("div")(({theme:e})=>({marginBottom:e.spacing(18),display:"flex",justifyContent:"center"})),S=i("div")(({theme:e})=>({display:"flex",justifyContent:"center",gap:e.spacing(4),flexWrap:"wrap"})),p=i("div")(({theme:e})=>({borderRadius:e.shape.borderRadiusMedium,border:"1px solid",borderColor:e.palette.secondary.border,backgroundColor:e.palette.secondary.light,display:"flex",flexDirection:"column",alignItems:"center",padding:e.spacing(1.5),zIndex:1,"& > svg":{width:e.spacing(9),height:e.spacing(9)}})),k=i(d)(({theme:e})=>({fontWeight:e.fontWeight.bold})),A=i(d)(({theme:e})=>({fontSize:e.fontSizes.smallBody,color:e.palette.text.secondary})),q=i(d)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary})),C=e=>e[0]*1e3>Date.now()-6e5,E=e=>{var a,s;const r=(e.values||[]).filter(l=>C(l)),o=r.length?Number.parseFloat(r[r.length-1][1]):0;return{label:e.label,reqs:o,type:g((s=(a=e.metric)==null?void 0:a.endpoint)==null?void 0:s.split("/")[2])}},T=(e,n)=>{var o;const r=n.label+n.type;return e[r]={...n,reqs:n.reqs+(((o=e[r])==null?void 0:o.reqs)??0)},e},B=e=>{var o,a;const r=(((a=(o=e==null?void 0:e.data)==null?void 0:o.result)==null?void 0:a.map(s=>{var l;return{...s,label:g((l=s.metric)==null?void 0:l.appName)}}).filter(s=>s.label!=="unknown"))||[]).map(E).reduce(T,{});return Object.values(r).map(s=>({...s,reqs:s.reqs.toFixed(2)})).filter(s=>s.reqs!=="0.00")??[]},D=()=>{h("Network - Overview");const e=x(),{metrics:n}=b(),r=u.useMemo(()=>B(n),[n]);return r.length===0?t.jsxs(m,{severity:"warning",children:["No data available.",t.jsx(v,{})]}):t.jsxs(c.ArcherContainer,{strokeColor:e.palette.text.primary,endShape:{arrow:{arrowLength:4,arrowThickness:4}},children:[t.jsx(w,{children:t.jsx(c.ArcherElement,{id:"unleash",children:t.jsxs(p,{children:[t.jsx(y,{darkmode:t.jsx(j,{}),lightmode:t.jsx(f,{})}),t.jsx(d,{sx:{marginTop:e.spacing(1)},children:"Unleash"})]})})}),t.jsx(S,{children:r.map(({label:o,reqs:a,type:s},l)=>t.jsx(c.ArcherElement,{id:`${l}`,relations:[{targetId:"unleash",targetAnchor:"bottom",sourceAnchor:"top",style:{strokeColor:e.palette.secondary.border}}],children:t.jsxs(p,{children:[t.jsx(k,{children:o}),t.jsxs(A,{children:[a," req/s"]}),t.jsxs(q,{children:[s," app"]})]})}))})]})};export{D as NetworkOverview,D as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{ba as a,b8 as i,b7 as c,r as u,b9 as h,j as n}from"./index-B_EIW-7Y.js";const f=(e={})=>{const{uiConfig:{prometheusAPIAvailable:r}}=a(),{data:t,error:s,mutate:o}=i(r,{},c("api/admin/metrics/rps"),l,e);return u.useMemo(()=>({metrics:t,loading:!s&&!t,refetch:()=>o(),error:s}),[t,s,o])},l=e=>fetch(e).then(h("Instance Metrics")).then(r=>r.json()),p=()=>{const{uiConfig:{prometheusAPIAvailable:e}}=a();return e?null:n.jsxs("p",{children:["This view requires the ",n.jsx("strong",{children:"PROMETHEUS_API"})," environment variable to be set. Refer to our"," ",n.jsx("a",{href:"https://docs.getunleash.io/concepts/network-view#data-source",target:"_blank",rel:"noreferrer",children:"documentation"})," ","for more information."]})};export{p as N,f as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var f=Object.defineProperty;var h=(e,t,a)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var s=(e,t,a)=>h(e,typeof t!="symbol"?t+"":t,a);import{bq as k,b as C,r as p,cV as w,j as o,C as v,R as P,da as S,jM as N,jl as R,jm as I,jn as M,jE as q,jR as A,jH as T,jr as E,jq as L,jp as _,jj as u,jV as D}from"./index-B_EIW-7Y.js";import{u as H,N as W}from"./NetworkPrometheusAPIWarning-COfHXZmz.js";import{u as g}from"./unknownify-B7hmSXnj.js";const m=["circle","rect","rectRounded","rectRot","triangle"],V=(e,t)=>e.map(a=>({x:a[0],y:t(a[1])})),$=(e,t)=>({locale:t.locale,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},color:e.palette.text.secondary,plugins:{tooltip:{backgroundColor:e.palette.background.paper,bodyColor:e.palette.text.primary,titleColor:e.palette.action.active,borderColor:e.palette.primary.main,borderWidth:1,padding:10,boxPadding:5,usePointStyle:!0,callbacks:{title:a=>u(1e3*a[0].parsed.x,t.locale)},itemSort:(a,i)=>i.parsed.y-a.parsed.y},legend:{position:"bottom",align:"start",labels:{boxWidth:10,boxHeight:10,usePointStyle:!0,padding:24}},title:{text:"Top 10 requests per second in the last 6 hours",position:"top",align:"start",display:!0,font:{size:16,weight:"400"},color:e.palette.text.primary,padding:{bottom:32}}},scales:{y:{type:"linear",title:{display:!0,text:"Requests per second",color:e.palette.text.secondary},suggestedMin:0,ticks:{precision:0,color:e.palette.text.secondary},grid:{color:e.palette.divider,borderColor:e.palette.divider}},x:{type:"time",time:{unit:"minute"},grid:{display:!0,color:e.palette.divider,borderColor:e.palette.divider},ticks:{callback:(a,i,r)=>u(r[i].value*1e3,t.locale)}}}});class z{constructor(t){s(this,"items");s(this,"picked",new Map);this.items=new D(t)}pick(t){return this.picked.has(t)||this.picked.set(t,this.items.next()),this.picked.get(t)}}const B=(e,t)=>{var a;if((a=t==null?void 0:t.data)!=null&&a.result){const i=new z([e.palette.success,e.palette.error,e.palette.primary,e.palette.warning]);return t.data.result.map((r,x)=>{var c,d;const n=g((c=r.metric)==null?void 0:c.endpoint),y=g((d=r.metric)==null?void 0:d.appName),l=i.pick(n),b=r.values||[];return{label:`${n}: ${y}`,borderColor:l.main,backgroundColor:l.main,data:V(b,j=>Number.parseFloat(j)),elements:{point:{radius:4,pointStyle:m[x%m.length]},line:{borderDash:[8,4]}}}})}return[]},K=()=>{const{locationSettings:e}=k(),{metrics:t}=H(),a=C(),i=p.useMemo(()=>$(a,e),[a,e]);w("Network - Traffic");const r=p.useMemo(()=>({datasets:B(a,t)}),[a,t,e]);return o.jsx(v,{condition:r.datasets.length===0,show:o.jsxs(P,{severity:"warning",children:["No data available.",o.jsx(W,{})]}),elseShow:o.jsx(S,{sx:{display:"grid",gap:4},children:o.jsx("div",{style:{height:400},children:o.jsx(N,{data:r,options:i,"aria-label":"An instance metrics line chart with two lines: requests per second for admin API and requests per second for client API"})})})})};R.register(I,M,q,A,T,E,L,_);export{K as NetworkTraffic,K as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as c,bq as E,j as e,M as d,d8 as q,jW as f,ba as y,b7 as v,cm as B,r as A,b9 as I,cV as F,h as M,C as p,R as x,L as j,js as P,jl as _,jm as N,jn as k,jo as $,jp as z,jq as W,jr as H}from"./index-B_EIW-7Y.js";import{a as O}from"./formatTickValue-CODpmZvr.js";import{u as Y,a as G,B as V,S as J,T as K,P as Q,n as X,g as Z}from"./networkTrafficUsageHighlightPlugin-COgb9_ZU.js";import{p as ee,c as l}from"./LazyAdminExport-CaPIJWoT.js";import"./RoleCell-BjcvUPQZ.js";import"./useApiTokens-CdZATTgS.js";import"./PercentageDonut-DystLTgb.js";const S=c("article")(({theme:s})=>({minWidth:"200px",border:`2px solid ${s.palette.divider}`,borderRadius:s.shape.borderRadiusLarge,padding:s.spacing(3),display:"flex",flexDirection:"column",gap:s.spacing(2)})),T=c("h3")(({theme:s})=>({margin:0,fontSize:s.typography.body1.fontSize})),w=c("dl")(({theme:s})=>({display:"flex",flexDirection:"column",gap:s.spacing(2.5),padding:0,margin:0})),a=c("div")(({theme:s})=>({display:"flex",flexFlow:"row wrap",justifyContent:"space-between",gap:s.spacing(1,3),fontSize:s.typography.body2.fontSize,color:s.palette.text.secondary,"& dd":{margin:0,color:s.palette.text.primary}})),se=s=>{const r=n=>n.toLocaleString("en-US",{month:"short",year:"numeric"});if(s.grouping==="monthly"){const n=new Date,t=f(n,s.monthsBack),o=f(n,1);return`Average requests from ${r(t)} to ${r(o)}`}return`Requests used in ${r(ee(s.month))}`},ne=({period:s,usageTotal:r,includedTraffic:n,purchasedTraffic:t,currentMonth:o})=>{const{locationSettings:i}=E();return e.jsxs(S,{children:[e.jsx(T,{children:"Number of requests to Unleash"}),e.jsxs(w,{children:[e.jsxs(a,{children:[e.jsx("dt",{children:se(s)}),e.jsx("dd",{children:e.jsxs(d,{color:n>0?r<=n?"success":"error":"neutral",children:[r.toLocaleString(i.locale??"en-US")," ","requests"]})})]}),n>0&&e.jsxs(a,{children:[e.jsx("dt",{children:"Included in your plan"}),e.jsxs("dd",{children:[n.toLocaleString("en-US")," requests"]})]}),t>0&&o&&e.jsxs(a,{children:[e.jsx("dt",{children:"Additional traffic purchased"}),e.jsxs("dd",{children:[t.toLocaleString("en-US")," requests"]})]}),n>0&&o&&e.jsxs(a,{children:[e.jsx("dt",{children:"Total traffic available"}),e.jsxs("dd",{children:[(n+t).toLocaleString("en-US")," ","requests"]})]})]})]})},te=({overages:s,overageCost:r,estimatedMonthlyCost:n})=>e.jsxs(S,{children:[e.jsx(T,{children:"Accrued traffic charges"}),e.jsxs(w,{children:[e.jsxs(a,{children:[e.jsxs("dt",{children:["Request overages this month (",e.jsx(q,{href:"https://www.getunleash.io/pricing",children:"pricing"}),")"]}),e.jsxs("dd",{children:[s.toLocaleString()," requests"]})]}),e.jsxs(a,{children:[e.jsx("dt",{children:"Accrued traffic charges"}),e.jsx("dd",{children:e.jsxs(d,{color:"secondary",children:[r," USD"]})})]}),n>0&&e.jsxs(a,{children:[e.jsx("dt",{children:"Estimated charges based on current usage"}),e.jsx("dd",{children:e.jsxs(d,{color:"secondary",children:[n," USD"]})})]})]})]}),re=53,oe=259,m=1e6,ae=(s,r)=>!s||r==="pay-as-you-go"?re:oe;function ie(s,r,n){return s===void 0?ae(r,n):s}function ce(s){return s===void 0?0:s}const le=()=>{const{isEnterprise:s,uiConfig:r}=y(),n=v("/api/instance/trafficBundles"),{data:t,error:o,mutate:i}=B(n,de);return{trafficBundles:A.useMemo(()=>({includedTraffic:ie(t==null?void 0:t.includedTraffic,s(),r.billing)*m,purchasedTraffic:ce(t==null?void 0:t.purchasedTraffic)*m}),[t]),loading:!o&&!t,refetch:i}},de=s=>fetch(s).then(I("configuration")).then(r=>r.json()),ue=c("div")(({theme:s})=>({display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, max-content))",flex:1,gap:s.spacing(2,4)})),ye=()=>{F("Network - Data Usage");const s=M("estimateTrafficDataCost"),{isOss:r}=y(),{trafficBundles:n}=le(),t=n.includedTraffic+n.purchasedTraffic,{chartDataSelection:o,setChartDataSelection:i,options:u}=Y(t),{chartData:C,usageTotal:h,overageCost:g,estimatedMonthlyCost:b,requestSummaryUsage:L}=G(t,o),U=o.grouping==="daily"&&o.month===l&&t>0&&h-t>0&&s,D=o.grouping==="daily"&&o.month===l,R=(o.grouping==="monthly"||o.month===l)&&t>0&&g>0;return e.jsx(p,{condition:r(),show:e.jsx(x,{severity:"warning",children:"Not enabled."}),elseShow:e.jsxs(e.Fragment,{children:[e.jsx(p,{condition:R,show:e.jsxs(x,{severity:"warning",sx:{mb:4},children:[e.jsx(V,{children:"Heads up!"})," You are currently consuming more requests than your plan includes and will be billed according to our terms. Please see"," ",e.jsx(j,{to:"https://www.getunleash.io/pricing",children:"this page"})," ","for more information. In order to reduce your traffic consumption, you may configure an"," ",e.jsx(j,{to:"https://docs.getunleash.io/unleash-edge",children:"Unleash Edge instance"})," ","in your own datacenter."]})}),e.jsxs(J,{children:[e.jsxs(K,{children:[e.jsxs(ue,{children:[e.jsx(ne,{period:o,usageTotal:L,includedTraffic:n.includedTraffic,purchasedTraffic:n.purchasedTraffic,currentMonth:D}),U&&e.jsx(te,{overageCost:g,overages:h-t,estimatedMonthlyCost:b})]}),e.jsx(Q,{selectedPeriod:o,setPeriod:i})]}),e.jsx(P,{data:C,plugins:[X],options:u,"aria-label":Z(o)})]})]})})};_.register(O,N,k,$,z,W,H);export{ye as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as l,b as p,j as o}from"./index-
|
|
1
|
+
import{s as l,b as p,j as o}from"./index-B_EIW-7Y.js";const x=l("div")(()=>({display:"flex",alignItems:"center",justifyContent:"center",position:"relative",margin:0})),y=l("div",{shouldForwardProp:e=>e!=="color"})(({theme:e,color:r})=>({position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",color:r,fontSize:e.fontSizes.smallerBody,margin:0})),u=({percentage:e,size:r="4rem",disabled:c=!1,children:d,strokeRatio:h=.2})=>{const s=p(),m={display:"block",borderRadius:"100%",transform:"rotate(-90deg)",height:r,width:r},t=100/(2*Math.PI),n=2*t,a=n*h,i=c?s.palette.neutral.border:s.palette.primary.light;return o.jsxs(x,{children:[o.jsxs("svg",{viewBox:`0 0 ${n} ${n}`,style:m,"aria-hidden":!0,children:[o.jsx("circle",{r:t,cx:t,cy:t,fill:"none",stroke:s.palette.background.elevation2,strokeWidth:a}),o.jsx("circle",{r:t,cx:t,cy:t,fill:"none",stroke:i,strokeWidth:a,strokeDasharray:`${e} 100`})]}),o.jsx(y,{color:i,children:d})]})};export{u as P};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as Db,
|
|
1
|
+
import{g as Db,je as Fb,dx as Bb,s as Ub,r as Ya,U as Vb,j as pu}from"./index-B_EIW-7Y.js";import{L as Hb,G as Jb,I as Kb,J as Wb,K as Gd,M as Gb,N as Qb,V as a1,O as Yb,P as Xb,A as bi,Q as kc,R as s1,T as c1,H as Zb,B as Ua,o as l1,E as Ji,z as Qd,C as ej,U as tj,b as nj,e as rj,g as oj,i as ij,j as aj,k as sj,m as cj,n as lj,p as uj,q as fj,r as dj,t as pj,u as vj,v as mj,w as hj,x as gj,c as yj,d as bj,s as jj,h as $j,f as wj,a as xj,l as Sj,W as Cj,X as kj,y as _j,Y as Ej,Z as Oj,_ as Mj,$ as Va,a0 as Pj,a1 as Tj,a2 as Rj,a3 as Nj}from"./index-Bj8wwcOa.js";function xn(t){return Array.isArray(t)}function In(t){return t!==null&&typeof t=="object"&&(t.constructor===void 0||t.constructor.name==="Object")}function u1(t){return t&&typeof t=="object"?t.op==="add":!1}function f1(t){return t&&typeof t=="object"?t.op==="remove":!1}function vf(t){return t&&typeof t=="object"?t.op==="replace":!1}function vu(t){return t&&typeof t=="object"?t.op==="copy":!1}function la(t){return t&&typeof t=="object"?t.op==="move":!1}function Aj(t,e){return JSON.stringify(t)===JSON.stringify(e)}function Ij(t,e){return t===e}function d1(t){return t.slice(0,t.length-1)}function zj(t){return t[t.length-1]}function qj(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Ij;if(t.length<e.length)return!1;for(let r=0;r<e.length;r++)if(!n(t[r],e[r]))return!1;return!0}function p1(t){return typeof t=="object"&&t!==null}function mf(t){if(xn(t)){const e=t.slice();return Object.getOwnPropertySymbols(t).forEach(n=>{e[n]=t[n]}),e}else if(In(t)){const e={...t};return Object.getOwnPropertySymbols(t).forEach(n=>{e[n]=t[n]}),e}else return t}function hf(t,e,n){if(t[e]===n)return t;{const r=mf(t);return r[e]=n,r}}function We(t,e){let n=t,r=0;for(;r<e.length;)In(n)?n=n[e[r]]:xn(n)?n=n[parseInt(e[r])]:n=void 0,r++;return n}function Yr(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e.length===0)return n;const o=e[0],i=Yr(t?t[o]:void 0,e.slice(1),n,r);if(In(t)||xn(t))return hf(t,o,i);if(r){const a=Lj.test(o)?[]:{};return a[o]=i,a}else throw new Error("Path does not exist")}const Lj=/^\d+$/;function v1(t,e,n){if(e.length===0)return n(t);if(!p1(t))throw new Error("Path doesn't exist");const r=e[0],o=v1(t[r],e.slice(1),n);return hf(t,r,o)}function gf(t,e){if(e.length===0)return t;if(!p1(t))throw new Error("Path does not exist");if(e.length===1){const o=e[0];if(o in t){const i=mf(t);return xn(i)&&i.splice(parseInt(o),1),In(i)&&delete i[o],i}else return t}const n=e[0],r=gf(t[n],e.slice(1));return hf(t,n,r)}function yf(t,e,n){const r=e.slice(0,e.length-1),o=e[e.length-1];return v1(t,r,i=>{if(!Array.isArray(i))throw new TypeError("Array expected at path "+JSON.stringify(r));const a=mf(i);return a.splice(parseInt(o),0,n),a})}function Lr(t,e){return t===void 0?!1:e.length===0?!0:t===null?!1:Lr(t[e[0]],e.slice(1))}function ao(t){const e=t.split("/");return e.shift(),e.map(n=>n.replace(/~1/g,"/").replace(/~0/g,"~"))}function Be(t){return t.map(bf).join("")}function bf(t){return"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1")}function Yd(t,e){return t+bf(e)}function nl(t,e){return t.startsWith(e)&&(t.length===e.length||t[e.length]==="/")}function to(t,e,n){let r=t;for(let o=0;o<e.length;o++){Kj(e[o]);let i=e[o];if(n&&n.before){const l=n.before(r,i);if(l!==void 0){if(l.document!==void 0&&(r=l.document),l.json!==void 0)throw new Error('Deprecation warning: returned object property ".json" has been renamed to ".document"');l.operation!==void 0&&(i=l.operation)}}const a=r,s=yo(r,i.path);if(i.op==="add")r=Bj(r,s,i.value);else if(i.op==="remove")r=Fj(r,s);else if(i.op==="replace")r=Dj(r,s,i.value);else if(i.op==="copy")r=Uj(r,s,mu(i.from));else if(i.op==="move")r=Vj(r,s,mu(i.from));else if(i.op==="test")Hj(r,s,i.value);else throw new Error("Unknown JSONPatch operation "+JSON.stringify(i));if(n&&n.after){const l=n.after(r,i,a);l!==void 0&&(r=l)}}return r}function Dj(t,e,n){return Yr(t,e,n)}function Fj(t,e){return gf(t,e)}function Bj(t,e,n){return Os(t,e)?yf(t,e,n):Yr(t,e,n)}function Uj(t,e,n){const r=We(t,n);if(Os(t,e))return yf(t,e,r);{const o=We(t,n);return Yr(t,e,o)}}function Vj(t,e,n){const r=We(t,n),o=gf(t,n);return Os(o,e)?yf(o,e,r):Yr(o,e,r)}function Hj(t,e,n){if(n===void 0)throw new Error(`Test failed: no value provided (path: "${Be(e)}")`);if(!Lr(t,e))throw new Error(`Test failed: path not found (path: "${Be(e)}")`);const r=We(t,e);if(!Aj(r,n))throw new Error(`Test failed, value differs (path: "${Be(e)}")`)}function Os(t,e){if(e.length===0)return!1;const n=We(t,d1(e));return Array.isArray(n)}function Jj(t,e){if(zj(e)!=="-")return e;const n=d1(e),r=We(t,n);return n.concat(r.length)}function Kj(t){if(!["add","remove","replace","copy","move","test"].includes(t.op))throw new Error("Unknown JSONPatch op "+JSON.stringify(t.op));if(typeof t.path!="string")throw new Error('Required property "path" missing or not a string in operation '+JSON.stringify(t));if((t.op==="copy"||t.op==="move")&&typeof t.from!="string")throw new Error('Required property "from" missing or not a string in operation '+JSON.stringify(t))}function yo(t,e){return Jj(t,ao(e))}function mu(t){return ao(t)}function m1(t,e,n){let r=[];return to(t,e,{before:(i,a)=>{let s;const l=yo(i,a.path);if(a.op==="add")s=y1(i,l);else if(a.op==="remove")s=g1(i,l);else if(a.op==="replace")s=h1(i,l);else if(a.op==="copy")s=Wj(i,l);else if(a.op==="move")s=Gj(i,l,mu(a.from));else if(a.op==="test")s=[];else throw new Error("Unknown JSONPatch operation "+JSON.stringify(a));let c;if(n&&n.before){const u=n.before(i,a,s);if(u&&u.revertOperations&&(s=u.revertOperations),u&&u.document&&(c=u.document),u&&u.json)throw new Error('Deprecation warning: returned object property ".json" has been renamed to ".document"')}if(r=s.concat(r),c!==void 0)return{document:c}}}),r}function h1(t,e){return[{op:"replace",path:Be(e),value:We(t,e)}]}function g1(t,e){return[{op:"add",path:Be(e),value:We(t,e)}]}function y1(t,e){return Os(t,e)||!Lr(t,e)?[{op:"remove",path:Be(e)}]:h1(t,e)}function Wj(t,e){return y1(t,e)}function Gj(t,e,n){if(e.length<n.length&&qj(n,e))return[{op:"replace",path:Be(e),value:t}];const r={op:"move",from:Be(e),path:Be(n)};return!Os(t,e)&&Lr(t,e)?[r,...g1(t,e)]:[r]}var _c={},Xd={b:"\b",f:"\f",n:`
|
|
2
2
|
`,r:"\r",t:" ",'"':'"',"/":"/","\\":"\\"},Qj=97;_c.parse=function(t,e,n){var r={},o=0,i=0,a=0,s=n&&n.bigint&&typeof BigInt<"u";return{data:l("",!0),pointers:r};function l(W,U){c();var te;b(W,"value");var F=m();switch(F){case"t":v("rue"),te=!0;break;case"f":v("alse"),te=!1;break;case"n":v("ull"),te=null;break;case'"':te=u();break;case"[":te=d(W);break;case"{":te=p(W);break;default:g(),"-0123456789".indexOf(F)>=0?te=f():R()}return b(W,"valueEnd"),c(),U&&a<t.length&&R(),te}function c(){e:for(;a<t.length;){switch(t[a]){case" ":i++;break;case" ":i+=4;break;case"\r":i=0;break;case`
|
|
3
3
|
`:i=0,o++;break;default:break e}a++}}function u(){for(var W="",U;U=m(),U!='"';)U=="\\"?(U=m(),U in Xd?W+=Xd[U]:U=="u"?W+=h():D()):W+=U;return W}function f(){var W="",U=!0;t[a]=="-"&&(W+=m()),W+=t[a]=="0"?m():y(),t[a]=="."&&(W+=m()+y(),U=!1),(t[a]=="e"||t[a]=="E")&&(W+=m(),(t[a]=="+"||t[a]=="-")&&(W+=m()),W+=y(),U=!1);var te=+W;return s&&U&&(te>Number.MAX_SAFE_INTEGER||te<Number.MIN_SAFE_INTEGER)?BigInt(W):te}function d(W){c();var U=[],te=0;if(m()=="]")return U;for(g();;){var F=W+"/"+te;U.push(l(F)),c();var J=m();if(J=="]")break;J!=","&&D(),c(),te++}return U}function p(W){c();var U={};if(m()=="}")return U;for(g();;){var te=w();m()!='"'&&D();var F=u(),J=W+"/"+hu(F);S(J,"key",te),b(J,"keyEnd"),c(),m()!=":"&&D(),c(),U[F]=l(J),c();var H=m();if(H=="}")break;H!=","&&D(),c()}return U}function v(W){for(var U=0;U<W.length;U++)m()!==W[U]&&D()}function m(){Z();var W=t[a];return a++,i++,W}function g(){a--,i--}function h(){for(var W=4,U=0;W--;){U<<=4;var te=m().toLowerCase();te>="a"&&te<="f"?U+=te.charCodeAt()-Qj+10:te>="0"&&te<="9"?U+=+te:D()}return String.fromCharCode(U)}function y(){for(var W="";t[a]>="0"&&t[a]<="9";)W+=m();if(W.length)return W;Z(),R()}function b(W,U){S(W,U,w())}function S(W,U,te){r[W]=r[W]||{},r[W][U]=te}function w(){return{line:o,column:i,pos:a}}function R(){throw new SyntaxError("Unexpected token "+t[a]+" in JSON at position "+a)}function D(){g(),R()}function Z(){if(a>=t.length)throw new SyntaxError("Unexpected end of JSON input")}};_c.stringify=function(t,e,n){if(!Js(t))return;var r=0,o,i,a=typeof n=="object"?n.space:n;switch(typeof a){case"number":var s=a>10?10:a<0?0:Math.floor(a);a=s&&S(s," "),o=s,i=s;break;case"string":a=a.slice(0,10),o=0,i=0;for(var l=0;l<a.length;l++){var c=a[l];switch(c){case" ":i++;break;case" ":i+=4;break;case"\r":i=0;break;case`
|
|
4
4
|
`:i=0,r++;break;default:throw new Error("whitespace characters not allowed in JSON")}o++}break;default:a=void 0}var u="",f={},d=0,p=0,v=0,m=n&&n.es6&&typeof Map=="function";return g(t,0,""),{json:u,pointers:f};function g(w,R,D){switch(b(D,"value"),typeof w){case"number":case"bigint":case"boolean":h(""+w);break;case"string":h(Ks(w));break;case"object":w===null?h("null"):typeof w.toJSON=="function"?h(Ks(w.toJSON())):Array.isArray(w)?Z():m?w.constructor.BYTES_PER_ELEMENT?Z():w instanceof Map?U():w instanceof Set?U(!0):W():W()}b(D,"valueEnd");function Z(){if(w.length){h("[");for(var te=R+1,F=0;F<w.length;F++){F&&h(","),y(te);var J=Js(w[F])?w[F]:null,H=D+"/"+F;g(J,te,H)}y(R),h("]")}else h("[]")}function W(){var te=Object.keys(w);if(te.length){h("{");for(var F=R+1,J=0;J<te.length;J++){var H=te[J],X=w[H];if(Js(X)){J&&h(",");var K=D+"/"+hu(H);y(F),b(K,"key"),h(Ks(H)),b(K,"keyEnd"),h(":"),a&&h(" "),g(X,F,K)}}y(R),h("}")}else h("{}")}function U(te){if(w.size){h("{");for(var F=R+1,J=!0,H=w.entries(),X=H.next();!X.done;){var K=X.value,Q=K[0],M=te?!0:K[1];if(Js(M)){J||h(","),J=!1;var A=D+"/"+hu(Q);y(F),b(A,"key"),h(Ks(Q)),b(A,"keyEnd"),h(":"),a&&h(" "),g(M,F,A)}X=H.next()}y(R),h("}")}else h("{}")}}function h(w){p+=w.length,v+=w.length,u+=w}function y(w){if(a){for(u+=`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{aE as ae,aF as le,s as c,r as d,aK as ie,_ as ce,a as $,j as e,aL as de,aN as ue,R as U,f as B,af as q,et as A,y as he,D as pe,fR as V,dj as X,ba as y,er as xe,es as me,ae as je,k as Y,T as v,aj as ge,du as fe,am as be,C as b,B as g,ax as ye,an as Te,aw as K,d8 as L,br as Ce,eH as ke,bf as Ae,j3 as ve,L as Q,ex as we,ai as w,cc as D,ey as E,at as Se,F as Ee,H as Ne,ah as G,fu as Re,al as N,el as Ie,eO as De,aa as C,ab as Ue,cG as J,b1 as Be,aV as Z,i as Le,I as Pe,G as _e,ay as ee,c1 as R,hT as Fe,dO as Me,dN as Oe,e5 as He,e1 as $e,fg as Ke,d$ as Ge,fh as We,gT as ze,cm as qe,b7 as te,b9 as se,b8 as Ve,b6 as Xe,b2 as Ye,dX as Qe}from"./index-B_EIW-7Y.js";import{u as Je}from"./useApiTokens-CdZATTgS.js";function Ze(t){return le("MuiTableContainer",t)}ae("MuiTableContainer",["root"]);const et=["className","component"],tt=t=>{const{classes:s}=t;return ue({root:["root"]},Ze,s)},st=c("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:(t,s)=>s.root})({width:"100%",overflowX:"auto"}),nt=d.forwardRef(function(s,n){const o=ie({props:s,name:"MuiTableContainer"}),{className:r,component:a="div"}=o,l=ce(o,et),u=$({},o,{component:a}),i=tt(u);return e.jsx(st,$({ref:n,as:a,className:de(i.root,r),ownerState:u},l))}),ot=()=>e.jsx(U,{severity:"info",children:e.jsxs("p",{children:["Read the"," ",e.jsx("a",{href:"https://docs.getunleash.io/sdks",target:"_blank",rel:"noreferrer",children:"SDK overview"})," ","to connect Unleash to your application. Please note it can take up to ",e.jsx("strong",{children:"1 minute"})," before a new API key is activated."]})}),k=({title:t,url:s})=>{const{setToastData:n}=B(),o=r=>()=>{X(r),n({type:"success",text:"Copied to clipboard"})};return e.jsxs(q,{children:[e.jsx(A,{component:"th",scope:"row",children:t}),e.jsx(A,{children:e.jsx("pre",{style:{display:"inline"},children:s})}),e.jsx(A,{align:"center",children:e.jsx(he,{title:"Copy URL",arrow:!0,children:e.jsx(pe,{onClick:o(s),size:"small","aria-label":`Copy ${t} to clipboard`,children:e.jsx(V,{})})})})]})},I=c(A)(({theme:t})=>({color:t.palette.text.secondary})),rt=({compact:t})=>{const{uiConfig:s}=y(),[n,o]=d.useState(!t),r=s.unleashUrl&&(n||!s.edgeUrl),a=t&&s.edgeUrl&&s.unleashUrl,l=s.edgeUrl?{edgeUrl:`${s.edgeUrl}/api/`,edgeFrontendUrl:`${s.edgeUrl}/api/frontend/`}:void 0,u=`${s.unleashUrl}/api/`,i=`${s.unleashUrl}/api/frontend/`;return e.jsxs(nt,{role:"region","aria-live":"polite",children:[e.jsxs(xe,{"aria-label":"API URLs",id:"api-urls-table",children:[e.jsx(me,{children:e.jsxs(q,{children:[e.jsx(I,{children:"Type"}),e.jsx(I,{children:"URL"}),e.jsx(I,{align:"center",children:"Actions"})]})}),e.jsxs(je,{children:[l&&e.jsxs(e.Fragment,{children:[e.jsx(k,{title:"Edge Backend",url:l.edgeUrl}),e.jsx(k,{title:"Edge Frontend",url:l.edgeFrontendUrl})]}),r&&e.jsxs(e.Fragment,{children:[e.jsx(k,{title:"Backend",url:u}),e.jsx(k,{title:"Frontend",url:i})]})]})]}),a&&e.jsx(Y,{sx:{mt:1,marginInline:1.5},variant:"text",size:"small","aria-expanded":n,"aria-controls":"api-urls-table",onClick:()=>o(!n),children:n?"Show less":"Show all"})]})},at=["Icon","createdAt","seenAt"],lt=["Icon","project","seenAt"],W=c(v)(({theme:t})=>({margin:0,marginBottom:t.spacing(1.5),fontSize:t.fontSizes.smallBody,color:t.palette.text.primary})),_t=({compact:t=!1,setHiddenColumns:s,columns:n,loading:o,rows:r,headerGroups:a,globalFilter:l,prepareRow:u})=>{const i=ge(fe.breakpoints.down("xl"));return be([{condition:i,columns:at},{condition:t,columns:lt}],s,n),e.jsxs(e.Fragment,{children:[e.jsx(b,{condition:r.length>0,show:e.jsxs(g,{sx:{mb:4},children:[e.jsx(ot,{}),e.jsxs(g,{sx:{marginBlock:4},children:[e.jsx(W,{variant:"h2",children:"API URLs"}),e.jsx(rt,{compact:t})]})]})}),e.jsxs(g,{sx:{overflowX:"auto"},children:[e.jsx(W,{variant:"h2",children:"API Tokens"}),e.jsx(ye,{value:l,children:e.jsx(Te,{rows:r,headerGroups:a,prepareRow:u})})]}),e.jsx(b,{condition:r.length===0&&!o,show:e.jsx(b,{condition:(l==null?void 0:l.length)>0,show:e.jsxs(K,{children:["No tokens found matching “",l,"”"]}),elseShow:e.jsx(K,{children:e.jsxs("span",{children:["No tokens available. Read ",e.jsx(L,{href:"https://docs.getunleash.io/api-overview",target:"_blank",rel:"noreferrer",children:"API How-to guides"})," "," to learn more."]})})})})]})},it=(t,s)=>{const n=s>=t;return{limitReached:n,limitMessage:n?`You have reached the limit of ${t} API tokens`:void 0}},Ft=({path:t,permission:s,project:n})=>{const o=Ce(),{tokens:r,loading:a}=Je(),{uiConfig:l}=y(),{limitReached:u,limitMessage:i}=it(l.resourceLimits.apiTokens,r.length);return e.jsx(ke,{Icon:Ae,onClick:()=>o(t),"data-testid":ve,permission:s,projectId:n,maxWidth:"700px",disabled:a||u,tooltipProps:{title:i},children:"New API token"})},ct=c(Q)(({theme:t})=>({textDecoration:"none",color:t.palette.links,"&:hover, &:focus":{textDecoration:"underline"}})),dt=c("div")({display:"flex",alignItems:"center"}),ut=({projects:t,project:s})=>{const{searchQuery:n}=we(),o=t&&Array.isArray(t)&&t.length>1?t:[];if(o.length>0)return e.jsx(w,{children:e.jsx(D,{title:o.map((r,a)=>e.jsxs(d.Fragment,{children:[a>0&&", ",!r||r==="*"?e.jsx(E,{search:n,children:"*"}):e.jsx(ct,{to:`/projects/${r}`,children:e.jsx(E,{search:n,children:r})})]},r)),placement:"bottom-start",arrow:!0,tabIndex:0,children:e.jsxs("span",{children:[`${o.length}`," projects"]})})});if(o.length===1&&o[0]!=="*"||s&&s!=="*"){const r=s||o[0];return e.jsx(Se,{to:`/projects/${r}`,title:r})}return e.jsx(w,{children:e.jsx(D,{title:"ALL current and future projects.",placement:"bottom",arrow:!0,children:e.jsx(dt,{children:e.jsx(E,{search:n,children:"*"})})})})};var P={},ht=Ne;Object.defineProperty(P,"__esModule",{value:!0});var ne=P.default=void 0,pt=ht(Ee()),xt=e,mt=(0,pt.default)((0,xt.jsx)("path",{d:"M21 10h-8.35C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H13l2 2 2-2 2 2 4-4.04L21 10zM7 15c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z"}),"Key");ne=P.default=mt;const jt=({secret:t,project:s,projects:n})=>{const o=t!=null&&t.includes(":")?"v2":"v1",r=t==null?void 0:t.startsWith("*:"),a=n&&(n==null?void 0:n.length)>1||(n==null?void 0:n.length)===1&&n[0]!=="*"||s&&s!=="*";return o==="v2"&&!r&&!a},gt=({...t})=>jt(t)?e.jsx(G,{icon:e.jsx(D,{title:e.jsxs("p",{children:["This is an orphaned token. All of its original projects have been deleted and it now has access to all current and future projects. You should stop using this token and delete it. Read more in"," ",e.jsx(L,{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/Unleash/unleash/releases/tag/v6.1.0",children:"release notes"}),"."]}),placement:"bottom-start",arrow:!0,children:e.jsx(Re,{"aria-label":"Orphaned token",color:"warning","data-testid":"orphaned-token-icon"})})}):e.jsx(G,{icon:e.jsx(ne,{color:"disabled"})}),Mt=(t,s)=>{const n=d.useMemo(()=>({sortBy:[{id:"createdAt",desc:!0}]}),[]),o=d.useMemo(()=>[{id:"Icon",Cell:p=>e.jsx(gt,{secret:p.row.original.secret,project:p.row.original.project,projects:p.row.original.projects}),disableSortBy:!0,disableGlobalFilter:!0,width:50},{Header:"Token name",accessor:"tokenName",Cell:N,minWidth:35},{Header:"Type",accessor:"type",Cell:({value:p})=>e.jsx(N,{value:z[p.toLowerCase()].label,subtitle:z[p.toLowerCase()].title,subtitleTooltip:!0}),width:180},{Header:"Project",accessor:"project",Cell:p=>e.jsx(ut,{project:p.row.original.project,projects:p.row.original.projects}),width:160},{Header:"Environment",accessor:"environment",Cell:N,width:120},{Header:"Created",accessor:"createdAt",Cell:Ie,width:150,disableGlobalFilter:!0},{Header:"Last seen",accessor:"seenAt",Cell:De,width:140,disableGlobalFilter:!0},{Header:"Actions",width:120,id:"Actions",align:"center",disableSortBy:!0,disableGlobalFilter:!0,Cell:s}],[]),{getTableProps:r,getTableBodyProps:a,headerGroups:l,rows:u,prepareRow:i,state:j,setGlobalFilter:m,setHiddenColumns:f}=C.useTable({columns:o,data:t,initialState:n,sortTypes:Ue,autoResetHiddenColumns:!1,disableSortRemove:!0},C.useGlobalFilter,C.useSortBy,C.useFlexLayout);return{getTableProps:r,getTableBodyProps:a,headerGroups:l,rows:u,prepareRow:i,state:j,setGlobalFilter:m,setHiddenColumns:f,columns:o}},z={client:{label:"BACKEND",title:"Connect backend SDK or Unleash Edge"},backend:{label:"BACKEND",title:"Connect backend SDK or Unleash Edge"},frontend:{label:"FRONTEND",title:"Connect frontend SDK"},admin:{label:"ADMIN",title:"Full access for managing Unleash"}},Ot=({token:t,project:s,permission:n,track:o})=>{const{setToastData:r}=B(),a=l=>{X(l)&&(r({type:"success",text:"Token copied to clipboard"}),o&&typeof o=="function"&&o())};return e.jsx(J,{permission:n,projectId:s,tooltipProps:{title:"Copy token",arrow:!0},onClick:()=>a(t.secret),size:"large",children:e.jsx(V,{})})},ft=c("ul")({marginBottom:0}),Ht=({token:t,permission:s,onRemove:n,project:o})=>{const[r,a]=d.useState(!1),{setToastData:l,setToastApiError:u}=B(),i=async()=>{try{await n(),a(!1),l({type:"success",text:"API token removed"})}catch(j){u(Le(j))}};return e.jsxs(e.Fragment,{children:[e.jsx(J,{permission:s,projectId:o,tooltipProps:{title:"Delete token",arrow:!0},onClick:()=>a(!0),size:"large",children:e.jsx(Be,{})}),e.jsx(Z,{open:r,onClick:i,onClose:()=>a(!1),title:"Confirm deletion",children:e.jsxs("div",{children:["Are you sure you want to delete the following API token?",e.jsx("br",{}),e.jsxs(ft,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"name"}),":"," ",e.jsx("code",{children:t.tokenName})]}),e.jsxs("li",{children:[e.jsx("strong",{children:"type"}),": ",e.jsx("code",{children:t.type})]}),e.jsxs("li",{children:[e.jsx("strong",{children:"environment"}),":"," ",e.jsx("code",{children:t.environment})]})]})]})})]})},bt=c("div")(()=>({maxWidth:"400px"})),yt=c("form")(()=>({display:"flex",flexDirection:"column",height:"100%"})),Tt=c(Pe)(({theme:t})=>({width:"100%",marginBottom:t.spacing(2)})),Ct=c(_e)(({theme:t})=>({marginBottom:t.spacing(2),minWidth:"400px",[t.breakpoints.down("sm")]:{minWidth:"379px"}})),oe=c("p")(({theme:t})=>({marginBottom:t.spacing(1)})),kt=c("label")(({theme:t})=>({marginBottom:t.spacing(1)})),At=c(Y)(({theme:t})=>({marginLeft:t.spacing(3)})),vt=c(g)({marginTop:"auto",display:"flex",justifyContent:"flex-end"}),$t=({children:t,actions:s,handleSubmit:n,handleCancel:o})=>{var l;const{uiConfig:r}=y(),a=!!((l=r==null?void 0:r.flags)!=null&&l.UNLEASH_CLOUD);return e.jsxs(yt,{onSubmit:n,children:[e.jsx(b,{condition:a,show:e.jsxs(U,{severity:"info",sx:{mb:4},children:["Please be aware of our"," ",e.jsx(L,{href:"https://www.getunleash.io/fair-use-policy",children:"fair use policy"}),"."]})}),t,e.jsxs(vt,{children:[s,e.jsx(At,{onClick:o,children:"Cancel"})]})]})};var x=(t=>(t.ADMIN="ADMIN",t.CLIENT="CLIENT",t.FRONTEND="FRONTEND",t))(x||{});const Kt=t=>{var M,O;const{environments:s}=ee(),n=(M=s==null?void 0:s.find(h=>h.enabled))==null?void 0:M.name,o=R(Fe,t),r=[{key:x.CLIENT,label:"Backend SDK",title:"Creates a backend token to connect a backend SDK or Unleash Edge",enabled:R(Me)||o},{key:x.FRONTEND,label:"Frontend SDK",title:"Creates a frontend token to connect a frontend SDK",enabled:R(Oe)||o}],a=(O=r.find(h=>h.enabled))==null?void 0:O.key,[l,u]=d.useState(""),[i,j]=d.useState(a||x.CLIENT),[m,f]=d.useState([t||"*"]),[p,re]=d.useState(m),[_,T]=d.useState(),[F,S]=d.useState({});return d.useEffect(()=>{T(i==="ADMIN"?"*":n)},[i,n]),{tokenName:l,type:i,apiTokenTypes:r,projects:m,environment:_,setTokenName:u,setTokenType:h=>{h==="ADMIN"?(j(x.ADMIN),re(m),f(["*"]),T("*")):(j(h),f(p),T(n))},setProjects:f,setEnvironment:T,getApiTokenPayload:()=>({tokenName:l,type:i,environment:_,projects:m}),isValid:()=>{const h={};return l||(h.tokenName="Token name is required"),m.length===0&&(h.projects="At least one project is required"),S(h),Object.keys(h).length===0},clearErrors:h=>{if(h){const H={...F};delete H[h],S(H)}else S({})},errors:F}},Gt=({open:t,setOpen:s,closeConfirm:n,token:o,type:r})=>e.jsxs(Z,{open:t,setOpen:s,onClick:n,primaryButtonText:"Close",title:"New token created",children:[e.jsx(v,{variant:"body1",children:"Your new token has been created successfully."}),e.jsx(He,{token:o}),e.jsx(b,{condition:r===x.FRONTEND,show:e.jsxs(U,{sx:{mt:2},severity:"info",children:["By default, all ",x.FRONTEND," tokens may be used from any CORS origin. If you'd like to configure a strict set of origins, please use the"," ",e.jsx(Q,{to:"/admin/cors",target:"_blank",rel:"noreferrer",children:"CORS origins configuration page"}),"."]})})]}),Wt=({tokenName:t,setTokenName:s,errors:n,clearErrors:o})=>e.jsxs(e.Fragment,{children:[e.jsx(oe,{children:"What would you like to call this token?"}),e.jsx(Tt,{value:t,name:"tokenName",onChange:r=>s(r.target.value),label:"Token name",error:n.tokenName!==void 0,errorText:n.tokenName,onFocus:()=>o("tokenName"),autoFocus:!0})]}),zt=({type:t,setType:s,apiTokenTypes:n})=>e.jsx(bt,{children:e.jsxs($e,{sx:{mb:2,width:"100%"},children:[e.jsx(kt,{id:"token-type",children:"What do you want to connect?"}),e.jsx(Ke,{"aria-labelledby":"token-type",defaultValue:"CLIENT",name:"radio-buttons-group",value:t,onChange:(o,r)=>s(r),children:n.map(({key:o,label:r,title:a,enabled:l})=>e.jsx(Ge,{value:o,sx:{mb:1},disabled:!l,control:e.jsx(We,{sx:{ml:.75,alignSelf:"flex-start"}}),label:e.jsx(g,{children:e.jsxs(g,{children:[e.jsx(v,{children:r}),e.jsx(v,{variant:"body2",color:"text.secondary",children:a})]})})},o))})]})}),qt=({type:t,environment:s,setEnvironment:n})=>{const{environments:o}=ee(),r=t===x.ADMIN?[{key:"*",label:"ALL"}]:o.map(a=>({key:a.name,label:`${a.name.concat(a.enabled?"":" - deprecated")}`,title:a.name,disabled:!1}));return e.jsxs(e.Fragment,{children:[e.jsx(oe,{children:"Which environment should the token have access to?"}),e.jsx(Ct,{disabled:t===x.ADMIN,options:r,value:s,onChange:n,label:"Environment",id:"api_key_environment",name:"environment",IconComponent:ze,fullWidth:!0})]})},wt=t=>t.map(s=>({...s.user,joinedAt:new Date(s.joinedAt),createdBy:s.createdBy})),Vt=t=>{const{data:s,error:n,mutate:o}=qe(te(`api/admin/groups/${t}`),St);return d.useMemo(()=>({group:s&&{...s,users:wt((s==null?void 0:s.users)??[])},loading:!n&&!s,refetchGroup:()=>o(),error:n}),[s,n,o])},St=t=>fetch(t).then(se("Group")).then(s=>s.json()),Xt=()=>{const{isEnterprise:t}=y(),{data:s,error:n,mutate:o}=Ve(t(),{serviceAccounts:[],rootRoles:[]},te("api/admin/service-account"),Et);return d.useMemo(()=>({serviceAccounts:(s==null?void 0:s.serviceAccounts)??[],roles:(s==null?void 0:s.rootRoles)??[],loading:!n&&!s,refetch:()=>o(),error:n}),[s,n,o])},Et=t=>fetch(t).then(se("Service Accounts")).then(s=>s.json()),Nt=c("div")(({theme:t})=>({display:"flex",flexDirection:"column",gap:t.spacing(.5),"& > *:not(:last-child)":{borderBottom:`1px solid ${t.palette.divider}`,paddingBottom:t.spacing(1)}})),Rt=c(Xe)(()=>({display:"block"})),Yt=({role:t,roles:s,value:n})=>{const{isEnterprise:o}=y();if(o()){const r=s||[t];return e.jsx(w,{children:e.jsx(Ye,{tooltip:e.jsx(Nt,{children:r.map(a=>e.jsx(Qe,{roleId:a,tooltip:!0},a))}),children:e.jsx(Rt,{children:n})})})}return e.jsx(w,{children:n})};export{_t as A,Ft as C,qt as E,Ht as R,oe as S,x as T,Ot as a,Kt as b,$t as c,Wt as d,zt as e,Gt as f,Xt as g,Vt as h,Yt as i,ne as j,wt as m,Mt as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as f,L as m,j as n,aV as g,b7 as d,cm as y,r as p,bb as v,b9 as b,aq as x,ba as k,h as E,G as F}from"./index-B_EIW-7Y.js";const M=f(m)(({theme:a})=>({textDecoration:"none",color:a.palette.primary.main,fontWeight:a.fontWeight.bold})),j=({isOpen:a,onClose:s,features:e,project:t})=>n.jsxs(g,{title:"You can't archive a feature that other features depend on",open:a,primaryButtonText:"OK",onClick:s,children:[n.jsx("p",{children:"The following features depend on your feature:"}),n.jsx("ul",{children:e.map(r=>n.jsx("li",{children:n.jsx(M,{to:`/projects/${t}/features/${r}`,target:"_blank",rel:"noopener noreferrer",children:r})},r))})]}),L=d("api/admin/client-metrics/features"),U=(a,s)=>{const e=d(`api/admin/client-metrics/features/${a}/raw?hoursBack=${s}`),{data:t,error:r}=y(e,()=>R(e)),i=p.useCallback(()=>{v(L).catch(console.warn)},[]);return{featureMetrics:t==null?void 0:t.data,loading:!r&&!t,refetchFeatureMetrics:i,error:r}},R=a=>fetch(a).then(b("Features")).then(s=>s.json()).then(),w=48,$=({hoursBack:a,setHoursBack:s,label:e="Period"})=>{const{trackEvent:t}=x(),r=o=>{s(Number.parseInt(o,10)),t("feature-metrics",{props:{eventType:"change-period",hoursBack:o}})},{isEnterprise:i}=k(),h=E("extendedUsageMetrics"),l=i()&&h?[...u,...A]:u,c=l.map(o=>Number(o.key)).includes(a)?a:w;return p.useEffect(()=>{a!==c&&s(c)},[a]),n.jsx("div",{children:n.jsx(F,{name:"feature-metrics-period",label:e,id:"feature-metrics-period",options:l,value:String(c),onChange:r,fullWidth:!0})})},u=[{key:"1",label:"Last hour"},{key:"24",label:"Last 24 hours"},{key:"48",label:"Last 48 hours"}],A=[{key:`${7*24}`,label:"Last 7 days"},{key:`${30*24}`,label:"Last 30 days"},{key:`${90*24}`,label:"Last 90 days"}],C=a=>{const s=new Map;return a.forEach(e=>{let t=s.get(e.timestamp);if(t||(t={...e,yes:0,no:0,variants:{}},s.set(e.timestamp,t)),t.yes+=e.yes,t.no+=e.no,e.variants){t.variants=t.variants||{};for(const[r,i]of Object.entries(e.variants))t.variants[r]=(t.variants[r]||0)+i}}),Array.from(s.values()).map(e=>({...e,variants:e.variants&&Object.keys(e.variants).length===0?void 0:e.variants}))};export{j as F,w as a,C as b,$ as c,U as u};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg width="77" height="23" viewBox="0 0 77 23" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M36.0493 7.37928C35.6781 7.36707 35.3673 7.65805 35.3551 8.02925C35.3546 8.04402 35.3546 8.05879 35.3551 8.07356V11.412C33.7442 10.1184 31.3898 10.3756 30.0962 11.9863C29.5626 12.6508 29.2718 13.4776 29.272 14.3298C29.2368 16.3949 30.8821 18.0975 32.9472 18.1328C35.0122 18.168 36.7148 16.5227 36.7502 14.4576C36.7509 14.415 36.7509 14.3725 36.7502 14.3299V8.07688C36.7529 7.98423 36.7362 7.89202 36.7011 7.80618C36.666 7.7204 36.6133 7.6429 36.5464 7.57875C36.4808 7.5146 36.403 7.46419 36.3176 7.43051C36.2323 7.39683 36.1411 7.38053 36.0493 7.38255M35.1708 15.2302C34.932 15.7919 34.4864 16.2402 33.9261 16.4825C33.6356 16.6055 33.3233 16.6689 33.0078 16.6689C32.6923 16.6689 32.38 16.6055 32.0896 16.4825C31.5304 16.2425 31.0865 15.7946 30.8514 15.2334C30.7298 14.9462 30.6671 14.6374 30.6671 14.3255C30.6671 14.0136 30.7298 13.7048 30.8514 13.4176C31.087 12.8583 31.5311 12.4127 32.0896 12.175C32.38 12.052 32.6923 11.9887 33.0078 11.9887C33.3233 11.9887 33.6356 12.052 33.9261 12.175C34.4864 12.4173 34.932 12.8657 35.1708 13.4274C35.2924 13.7135 35.3551 14.0212 35.3551 14.3321C35.3551 14.6429 35.2924 14.9506 35.1708 15.2367M43.8566 11.6824C42.3956 10.2226 40.0278 10.2237 38.568 11.6847C37.8677 12.3856 37.4743 13.3357 37.4739 14.3265C37.4386 16.3916 39.084 18.0942 41.1491 18.1295C43.2141 18.1648 44.9167 16.5193 44.952 14.4544C44.9528 14.4117 44.9528 14.3692 44.952 14.3266C44.9523 13.8348 44.8583 13.3475 44.6752 12.8911C44.4864 12.4372 44.2081 12.026 43.8566 11.6824ZM43.3738 15.2269C43.2544 15.504 43.0843 15.7565 42.8724 15.9713C42.6586 16.1862 42.4059 16.3585 42.1279 16.4792C41.8376 16.6022 41.5255 16.6657 41.2102 16.6657C40.8949 16.6657 40.5828 16.6022 40.2925 16.4792C39.7328 16.2397 39.2883 15.7918 39.0532 15.2302C38.9317 14.9429 38.869 14.6342 38.869 14.3223C38.869 14.0103 38.9317 13.7016 39.0532 13.4143C39.2895 12.8558 39.734 12.4114 40.2925 12.175C40.5828 12.052 40.8949 11.9886 41.2102 11.9886C41.5255 11.9886 41.8376 12.052 42.1279 12.175C42.4059 12.2958 42.6586 12.4682 42.8724 12.683C43.0844 12.8978 43.2544 13.1502 43.3738 13.4274C43.4947 13.7137 43.5569 14.0213 43.5569 14.3321C43.5569 14.6428 43.4947 14.9504 43.3738 15.2367M59.3165 11.2813C59.3171 11.1894 59.298 11.0983 59.2609 11.0142C59.2228 10.9335 59.1716 10.8598 59.1094 10.7962C59.0473 10.7319 58.9732 10.6807 58.8914 10.6458C58.8048 10.61 58.7116 10.5919 58.6178 10.5924C58.4854 10.5915 58.3551 10.6294 58.2439 10.7014L54.2514 13.2987V8.08337C54.2532 7.99104 54.236 7.89927 54.2009 7.81381C54.1659 7.7283 54.1137 7.65091 54.0476 7.58638C53.9841 7.51962 53.9074 7.46675 53.8224 7.43111C53.7374 7.39546 53.646 7.37781 53.5539 7.37928C53.1692 7.37688 52.8554 7.68671 52.853 8.07138V17.361C52.8519 17.4528 52.8694 17.5438 52.9044 17.6287C52.9395 17.7135 52.9913 17.7904 53.0569 17.8547C53.1209 17.9217 53.1981 17.9747 53.2836 18.0104C53.3692 18.046 53.4612 18.0635 53.5539 18.0618C53.6457 18.0633 53.7368 18.0457 53.8214 18.01C53.906 17.9743 53.9823 17.9215 54.0454 17.8547C54.111 17.7904 54.1628 17.7135 54.1978 17.6287C54.2328 17.5438 54.2503 17.4528 54.2492 17.361V14.9544L55.0633 14.4203L58.1491 17.8853C58.2107 17.9447 58.2843 17.9913 58.3644 18.0222C58.4445 18.0531 58.5295 18.0676 58.6156 18.0651C58.7094 18.0661 58.8026 18.048 58.8892 18.0117C58.9715 17.9776 59.0457 17.9268 59.1072 17.8623C59.1705 17.7972 59.2217 17.7211 59.2588 17.6378C59.2958 17.5537 59.3149 17.4627 59.3143 17.3708C59.3149 17.1897 59.2457 17.0153 59.1214 16.8836L56.2525 13.6518L59.0495 11.8361C59.1383 11.7747 59.2097 11.6912 59.256 11.594C59.3029 11.4967 59.3236 11.3889 59.3165 11.2813ZM47.7324 12.6677C47.948 12.4546 48.2021 12.2845 48.4813 12.1663C48.7704 12.0434 49.0815 11.981 49.3957 11.9832C49.6738 11.9806 49.95 12.0302 50.2099 12.1293C50.4703 12.234 50.7116 12.3814 50.9238 12.5653C51.0527 12.668 51.2134 12.7227 51.3783 12.7201C51.4712 12.7239 51.5639 12.7085 51.6506 12.6748C51.7373 12.641 51.8161 12.5896 51.8818 12.5238C51.9466 12.4578 51.9975 12.3793 52.0314 12.2932C52.0653 12.2071 52.0815 12.115 52.0791 12.0224C52.0802 11.9222 52.0592 11.823 52.0176 11.7318C51.976 11.6406 51.9147 11.5597 51.8382 11.4949C51.1692 10.8961 50.2988 10.5719 49.4011 10.587C47.3357 10.587 45.6615 12.2613 45.6615 14.3266C45.6564 16.3889 47.324 18.0649 49.3863 18.0701C50.2866 18.0723 51.1573 17.7493 51.8382 17.1604C51.9077 17.0943 51.9629 17.0146 52.0004 16.9263C52.0379 16.8381 52.0569 16.743 52.0562 16.6471C52.0684 16.2758 51.7775 15.965 51.4063 15.9527C51.3915 15.9523 51.3767 15.9523 51.3619 15.9527C51.203 15.9535 51.0484 16.0046 50.9204 16.0988C50.7118 16.2827 50.4723 16.4284 50.2131 16.5293C49.9529 16.6271 49.6769 16.676 49.3989 16.6732C49.0848 16.6754 48.7736 16.6131 48.4845 16.4901C48.2056 16.3716 47.9515 16.2015 47.7357 15.9888C46.8195 15.0781 46.815 13.5971 47.7257 12.6809L47.7357 12.6709M73.1858 11.0546C73.0506 10.9279 72.8904 10.8312 72.7149 10.7712C72.5144 10.6992 72.3067 10.6509 72.0947 10.6273C71.8854 10.6016 71.6745 10.5885 71.4636 10.588C71.0358 10.5867 70.6107 10.6605 70.2084 10.806C69.8139 10.9499 69.4454 11.1576 69.1184 11.4208V11.2813C69.1032 10.8958 68.7778 10.5956 68.3925 10.6108C68.0284 10.6252 67.7363 10.9171 67.7221 11.2813V17.3708C67.7374 17.7564 68.0622 18.0565 68.4475 18.0413C68.8121 18.027 69.1037 17.735 69.1184 17.3708V14.3266C69.1163 14.0121 69.1784 13.7005 69.3016 13.4111C69.4187 13.1334 69.5888 12.8811 69.8019 12.6677C70.0161 12.455 70.2684 12.2849 70.5458 12.1663C70.8357 12.0434 71.1469 11.981 71.4614 11.9832C71.7742 11.9802 72.0849 12.0367 72.3759 12.15C72.468 12.1943 72.5683 12.2191 72.6702 12.223C72.764 12.2239 72.8572 12.2057 72.9438 12.1696C73.0261 12.1349 73.1002 12.0837 73.1618 12.0192C73.224 11.9557 73.2752 11.882 73.3122 11.8012C73.3504 11.715 73.3695 11.6218 73.3689 11.5276C73.3722 11.4409 73.3575 11.3544 73.3253 11.2739C73.2926 11.1933 73.2441 11.1205 73.1814 11.06M66.6975 12.8966C66.1035 11.5083 64.7426 10.6049 63.2324 10.5968C61.1679 10.5962 59.4936 12.2695 59.4931 14.3342V14.3353C59.4926 16.4012 61.1668 18.0764 63.2329 18.0767C64.13 18.0768 64.9971 17.7548 65.6762 17.1691C65.686 17.1593 65.7013 17.1463 65.7034 17.143C65.7645 17.0937 65.8173 17.0357 65.8615 16.9708C66.086 16.6475 66.0059 16.2036 65.6827 15.979C65.5514 15.8935 65.3944 15.8546 65.2385 15.8687C65.0821 15.8827 64.935 15.9488 64.8205 16.0564C64.7976 16.0771 64.7322 16.1381 64.7213 16.1468L64.7115 16.1555C64.5126 16.3248 64.2853 16.4576 64.0401 16.5479C63.7807 16.6393 63.5076 16.6843 63.2324 16.6809C62.979 16.6821 62.7272 16.6416 62.4868 16.561C62.253 16.4828 62.0323 16.3692 61.8328 16.2242C61.6344 16.0788 61.4595 15.9029 61.3156 15.7032C61.1679 15.4992 61.0551 15.2724 60.9821 15.0318H66.2691C66.3613 15.0339 66.4523 15.0175 66.5378 14.9836C66.6229 14.9497 66.7008 14.899 66.7662 14.8345C66.8332 14.7709 66.8861 14.6936 66.9215 14.6079C66.9564 14.5222 66.9733 14.4301 66.97 14.3375C66.9744 13.8446 66.8812 13.3557 66.6964 12.8988M60.9804 13.6432C61.0507 13.4023 61.1614 13.1753 61.3074 12.9718C61.4529 12.7717 61.6284 12.5958 61.8284 12.4508C62.0312 12.3059 62.2541 12.1924 62.4901 12.114C62.7293 12.0344 62.9795 11.9939 63.2313 11.9941C63.482 11.9938 63.7305 12.0343 63.9681 12.114C64.4396 12.2706 64.8505 12.5706 65.1432 12.9718C65.2925 13.175 65.407 13.402 65.4811 13.6432H60.9804ZM70.8009 17.0547C70.5338 17.0589 70.3207 17.279 70.3251 17.5462C70.3289 17.8135 70.5491 18.0267 70.8161 18.0225C71.0821 18.0183 71.2946 17.8009 71.2925 17.5353C71.2897 17.2669 71.0695 17.0517 70.8009 17.0547ZM70.8009 17.919C70.5894 17.9287 70.4101 17.7648 70.4003 17.5532C70.391 17.3415 70.5545 17.1621 70.766 17.1525C70.978 17.1429 71.1573 17.3066 71.1671 17.5183C71.1671 17.525 71.1671 17.5318 71.1671 17.5386C71.1747 17.7413 71.0161 17.9115 70.8134 17.9187C70.809 17.919 70.8052 17.919 70.8009 17.919Z" fill="currentColor"/>
|
|
3
|
+
<path d="M70.9126 17.5453V17.5387C70.9387 17.5337 70.9627 17.5204 70.9807 17.5007C70.9981 17.4811 71.0096 17.4562 71.0118 17.4297C71.0128 17.4092 71.009 17.3887 71.0009 17.3698C70.9932 17.3509 70.9807 17.3341 70.9649 17.3207C70.9137 17.2936 70.8559 17.2815 70.7981 17.2859C70.7365 17.285 70.6749 17.2902 70.6139 17.3012V17.7808H70.7229V17.5878H70.7752C70.8373 17.5878 70.8657 17.6107 70.8755 17.6641C70.882 17.7046 70.8946 17.7439 70.9126 17.7808H71.0336C71.015 17.7431 71.003 17.7026 70.9976 17.6608C70.9954 17.6352 70.9861 17.6108 70.9703 17.5902C70.9551 17.5696 70.9344 17.5537 70.9104 17.5442M70.7785 17.5093H70.7251V17.3709C70.7458 17.3684 70.7665 17.3684 70.7872 17.3709C70.857 17.3709 70.8897 17.4003 70.8897 17.4439C70.8897 17.4876 70.8395 17.5147 70.7807 17.5147M27.9919 8.94455C27.9232 8.88999 27.2824 8.40608 25.9308 8.40608C25.5739 8.40766 25.2178 8.43829 24.8659 8.49764C24.6043 6.70469 23.122 5.83055 23.0555 5.79131L22.6926 5.58203L22.4539 5.92647C22.155 6.38913 21.9368 6.8992 21.8087 7.43494C21.5667 8.4584 21.7138 9.41974 22.2337 10.2415C21.6059 10.5914 20.5988 10.6776 20.395 10.6852H3.72107C3.28555 10.6858 2.93215 11.0377 2.92977 11.4732C2.91033 12.9339 3.1578 14.3859 3.66003 15.7578C4.23442 17.264 5.08895 18.3736 6.20072 19.0526C7.44649 19.8156 9.47053 20.2516 11.7648 20.2516C12.8013 20.2548 13.8359 20.1611 14.8548 19.9715C16.2714 19.7114 17.6344 19.2163 18.8876 18.5065C19.9203 17.9086 20.8496 17.1479 21.6398 16.2537C22.9608 14.7583 23.7477 13.0928 24.333 11.6127H24.5662C26.0126 11.6127 26.902 11.0339 27.3925 10.5489C27.7184 10.2396 27.9729 9.86277 28.138 9.44481L28.2415 9.14184L27.9919 8.94455Z" fill="currentColor"/>
|
|
4
|
+
<path d="M5.26638 10.199H7.50075C7.55247 10.199 7.60212 10.1785 7.63869 10.1419C7.67532 10.1053 7.69586 10.0556 7.69586 10.0039V8.01368C7.69597 7.98806 7.69107 7.96266 7.68142 7.9389C7.67172 7.91519 7.65749 7.89361 7.63945 7.87541C7.62147 7.8572 7.60005 7.84271 7.57645 7.83273C7.5528 7.82281 7.52746 7.81764 7.50184 7.81747H5.26638C5.21464 7.81747 5.16501 7.83802 5.12843 7.87464C5.09184 7.91121 5.07129 7.96081 5.07129 8.01258V10.0039C5.07128 10.0295 5.07633 10.0549 5.08613 10.0786C5.09593 10.1022 5.1103 10.1238 5.12842 10.1419C5.14653 10.16 5.16804 10.1743 5.19171 10.1842C5.21538 10.194 5.24075 10.199 5.26638 10.199ZM8.34545 10.199H10.5799C10.6316 10.199 10.6812 10.1785 10.7178 10.1419C10.7544 10.1053 10.7749 10.0556 10.7749 10.0039V8.01368C10.7751 7.98806 10.7702 7.96266 10.7605 7.9389C10.7508 7.91519 10.7366 7.89361 10.7186 7.87541C10.7005 7.85715 10.6791 7.84265 10.6555 7.83273C10.6319 7.82281 10.6065 7.81764 10.5809 7.81747H8.34545C8.31968 7.81747 8.29417 7.82254 8.27035 7.83241C8.24654 7.84227 8.2249 7.85671 8.2067 7.87492C8.18849 7.89317 8.17405 7.91476 8.16419 7.93857C8.15432 7.96239 8.14925 7.9879 8.14925 8.01368V10.0039C8.14952 10.0558 8.17034 10.1053 8.20713 10.1419C8.24387 10.1785 8.29362 10.199 8.34545 10.199ZM11.4714 10.199H13.7058C13.7575 10.199 13.8072 10.1785 13.8437 10.1419C13.8803 10.1053 13.9009 10.0556 13.9009 10.0039V8.01368C13.901 7.98806 13.8961 7.96266 13.8865 7.9389C13.8768 7.91519 13.8625 7.89361 13.8445 7.87541C13.8265 7.85715 13.805 7.84265 13.7814 7.83273C13.7578 7.82281 13.7324 7.81764 13.7068 7.81747H11.4714C11.4196 7.81747 11.37 7.83802 11.3334 7.87464C11.2968 7.91121 11.2763 7.96081 11.2763 8.01258V10.0039C11.2763 10.0556 11.2969 10.1052 11.3334 10.1419C11.37 10.1784 11.4197 10.199 11.4714 10.199ZM14.5603 10.199H16.7947C16.8465 10.199 16.8963 10.1785 16.933 10.142C16.9698 10.1054 16.9906 10.0558 16.9909 10.0039V8.01368C16.9909 7.9879 16.9858 7.96239 16.9759 7.93857C16.9661 7.91476 16.9516 7.89317 16.9334 7.87492C16.9152 7.85671 16.8936 7.84227 16.8698 7.83241C16.8459 7.82254 16.8204 7.81747 16.7947 7.81747H14.5603C14.5086 7.81747 14.4589 7.83802 14.4224 7.87464C14.3858 7.91121 14.3653 7.96081 14.3653 8.01258V10.0039C14.3653 10.0556 14.3858 10.1052 14.4224 10.1419C14.4589 10.1784 14.5086 10.199 14.5603 10.199ZM8.34545 7.33574H10.5799C10.6317 7.33542 10.6813 7.31465 10.7179 7.27786C10.7544 7.24113 10.7749 7.19137 10.7749 7.13954V5.14932C10.7749 5.09758 10.7544 5.04795 10.7178 5.01137C10.6812 4.97478 10.6316 4.95423 10.5799 4.95423H8.34545C8.29362 4.95423 8.24392 4.97475 8.20713 5.0113C8.1704 5.04786 8.14958 5.09747 8.14931 5.14932V7.13954C8.14958 7.19148 8.17034 7.24124 8.20708 7.27797C8.24381 7.31471 8.29352 7.33547 8.34545 7.33574ZM11.4714 7.33574H13.7058C13.7576 7.33542 13.8072 7.31465 13.8438 7.27786C13.8804 7.24113 13.9009 7.19137 13.9009 7.13954V5.14932C13.9009 5.09758 13.8803 5.04795 13.8437 5.01137C13.8072 4.97478 13.7575 4.95423 13.7058 4.95423H11.4714C11.4197 4.95423 11.3701 4.97478 11.3334 5.01137C11.2969 5.04795 11.2763 5.09758 11.2763 5.14932V7.13954C11.2763 7.19137 11.2969 7.24113 11.3334 7.27786C11.37 7.31465 11.4196 7.33542 11.4714 7.33574ZM14.5603 7.33574H16.7947C16.8467 7.33547 16.8964 7.31471 16.9331 7.27797C16.9698 7.24124 16.9906 7.19148 16.9909 7.13954V5.14932C16.9906 5.09747 16.9698 5.04785 16.933 5.01129C16.8963 4.97473 16.8465 4.95422 16.7947 4.95423H14.5603C14.5086 4.95423 14.4589 4.97478 14.4224 5.01137C14.3858 5.04795 14.3653 5.09758 14.3653 5.14932V7.13954C14.3653 7.19137 14.3857 7.24113 14.4223 7.27786C14.4589 7.31465 14.5085 7.33542 14.5603 7.33574ZM14.5603 4.47138H16.7947C16.8465 4.47138 16.8963 4.45086 16.933 4.41431C16.9698 4.37776 16.9906 4.32813 16.9909 4.27629V2.28493C16.9906 2.23309 16.9698 2.18346 16.933 2.14691C16.8963 2.11035 16.8465 2.08984 16.7947 2.08984H14.5603C14.5347 2.08984 14.5093 2.09489 14.4856 2.10468C14.462 2.11449 14.4405 2.12886 14.4224 2.14698C14.4042 2.16509 14.3899 2.1866 14.3801 2.21027C14.3703 2.23394 14.3652 2.25931 14.3653 2.28493V4.27626C14.3653 4.328 14.3858 4.37763 14.4224 4.41422C14.4589 4.45081 14.5086 4.47137 14.5603 4.47138ZM17.6765 10.199H19.9108C19.9627 10.199 20.0124 10.1785 20.0492 10.142C20.0859 10.1054 20.1068 10.0558 20.107 10.0039V8.01368C20.107 7.9879 20.102 7.96239 20.0921 7.93857C20.0822 7.91476 20.0678 7.89317 20.0496 7.87492C20.0313 7.85671 20.0098 7.84227 19.9859 7.83241C19.9621 7.82254 19.9366 7.81747 19.9108 7.81747H17.6765C17.6247 7.81747 17.5751 7.83807 17.5385 7.87464C17.5019 7.91121 17.4814 7.96081 17.4814 8.01258V10.0039C17.4814 10.0556 17.5019 10.1052 17.5385 10.1419C17.5751 10.1784 17.6247 10.199 17.6765 10.199Z" fill="currentColor"/>
|
|
5
|
+
</svg>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jy as ct,j_ as R,j$ as w,k0 as p,jz as Q,k1 as fe,k2 as ut,k3 as b,jl as oe,jG as B,k4 as D,k5 as ft,k6 as ht,jA as X,jB as he,jw as G,k7 as yt,k8 as bt,k9 as _,ka as J,kb as ke,kc as gt,kd as Ce,ke as T,kf as $e,kg as Ve,kh as mt}from"./index-B_EIW-7Y.js";/*!
|
|
2
2
|
* chartjs-plugin-annotation v2.2.1
|
|
3
3
|
* https://www.chartjs.org/chartjs-plugin-annotation/index
|
|
4
4
|
* (c) 2023 chartjs-plugin-annotation Contributors
|
|
5
5
|
* Released under the MIT License
|
|
6
|
-
*/const ke={modes:{point(t,e){return q(t,e,{intersect:!0})},nearest(t,e,n){return xt(t,e,n)},x(t,e,n){return q(t,e,{intersect:n.intersect,axis:"x"})},y(t,e,n){return q(t,e,{intersect:n.intersect,axis:"y"})}}};function ye(t,e,n){return(ke.modes[n.mode]||ke.modes.nearest)(t,e,n)}function pt(t,e,n){return n!=="x"&&n!=="y"?t.inRange(e.x,e.y,"x",!0)||t.inRange(e.x,e.y,"y",!0):t.inRange(e.x,e.y,n,!0)}function wt(t,e,n){return n==="x"?{x:t.x,y:e.y}:n==="y"?{x:e.x,y:t.y}:e}function q(t,e,n){return t.visibleElements.filter(o=>n.intersect?o.inRange(e.x,e.y):pt(o,e,n.axis))}function xt(t,e,n){let o=Number.POSITIVE_INFINITY;return q(t,e,n).reduce((r,i)=>{const s=i.getCenterPoint(),a=wt(e,s,n.axis),d=fe(e,a);return d<o?(r=[i],o=d):d===o&&r.push(i),r},[]).sort((r,i)=>r._index-i._index).slice(0,1)}const St=(t,e)=>e>t||t.length>e.length&&t.slice(0,e.length)===e,A=.001,F=(t,e,n)=>Math.min(n,Math.max(e,t));function Mt(t,e,n){for(const o of Object.keys(t))t[o]=F(t[o],e,n);return t}function Ct(t,e,n,o){if(!t||!e||n<=0)return!1;const r=o/2;return Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)<=Math.pow(n+r,2)}function Je(t,{x:e,y:n,x2:o,y2:r},i,s){const a=s/2,d=t.x>=e-a-A&&t.x<=o+a+A,l=t.y>=n-a-A&&t.y<=r+a+A;return i==="x"?d:(i==="y"||d)&&l}function E(t,e){const{centerX:n,centerY:o}=t.getProps(["centerX","centerY"],e);return{x:n,y:o}}function Pt(t,e,n,o=!0){const r=n.split(".");let i=0;for(const s of e.split(".")){const a=r[i++];if(parseInt(s,10)<parseInt(a,10))break;if(St(a,s)){if(o)throw new Error(`${t} v${n} is not supported. v${e} or newer is required.`);return!1}}return!0}const Ue=t=>typeof t=="string"&&t.endsWith("%"),qe=t=>parseFloat(t)/100,Ke=t=>F(qe(t),0,1);function be(t,e){return e==="start"?0:e==="end"?t:Ue(e)?Ke(e)*t:t/2}function C(t,e,n=!0){return typeof e=="number"?e:Ue(e)?(n?Ke(e):qe(e))*t:t}function kt(t,e){const{x:n,width:o}=t,r=e.textAlign;return r==="center"?n+o/2:r==="end"||r==="right"?n+o:n}function ge(t,e="center"){return B(t)?{x:z(t.x,e),y:z(t.y,e)}:(t=z(t,e),{x:t,y:t})}function Ge(t){return t&&(p(t.xValue)||p(t.yValue))}function H(t,e,n,o=!1){const r=n.init;if(r){if(r===!0)return Fe(e,o)}else return;return vt(e,o,he(r,[{chart:t,properties:e,options:n}]))}function Qe(t,e,n){let o=!1;return e.forEach(r=>{T(t[r])?(o=!0,n[r]=t[r]):p(n[r])&&delete n[r]}),o}function Fe({centerX:t,centerY:e},n){return n?{centerX:t,centerY:e,radius:0,width:0,height:0}:{x:t,y:e,x2:t,y2:e,width:0,height:0}}function vt(t,e,n){if(n===!0)return Fe(t,e);if(B(n))return n}const re=new Map,At=t=>isNaN(t)||t<=0,Dt=t=>t.reduce(function(e,n){return e+=n.string,e},"");function Z(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object HTMLImageElement]"||e==="[object HTMLCanvasElement]"}}function me(t,{x:e,y:n},o){o&&(t.translate(e,n),t.rotate(w(o)),t.translate(-e,-n))}function P(t,e){if(e&&e.borderWidth)return t.lineCap=e.borderCapStyle,t.setLineDash(e.borderDash),t.lineDashOffset=e.borderDashOffset,t.lineJoin=e.borderJoinStyle,t.lineWidth=e.borderWidth,t.strokeStyle=e.borderColor,!0}function W(t,e){t.shadowColor=e.backgroundShadowColor,t.shadowBlur=e.shadowBlur,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY}function pe(t,e){const n=e.content;if(Z(n))return{width:C(n.width,e.width),height:C(n.height,e.height)};const o=e.font,r=D(o)?o.map(d=>K(d)):[K(o)],i=e.textStrokeWidth,s=D(n)?n:[n],a=s.join()+Dt(r)+i+(t._measureText?"-spriting":"");return re.has(a)||re.set(a,Rt(t,s,r,i)),re.get(a)}function Ze(t,e,n){const{x:o,y:r,width:i,height:s}=e;t.save(),W(t,n);const a=P(t,n);t.fillStyle=n.backgroundColor,t.beginPath(),yt(t,{x:o,y:r,w:i,h:s,radius:Mt(bt(n.borderRadius),0,Math.min(i,s)/2)}),t.closePath(),t.fill(),a&&(t.shadowColor=n.borderShadowColor,t.stroke()),t.restore()}function jt(t,e,n){const o=n.content;if(Z(o)){t.save(),t.globalAlpha=Lt(n.opacity,o.style.opacity),t.drawImage(o,e.x,e.y,e.width,e.height),t.restore();return}const r=D(o)?o:[o],i=n.font,s=D(i)?i.map(u=>K(u)):[K(i)],a=n.color,d=D(a)?a:[a],l=kt(e,n),c=e.y+n.textStrokeWidth/2;t.save(),t.textBaseline="middle",t.textAlign=n.textAlign,It(t,n)&&Et(t,{x:l,y:c},r,s),Wt(t,{x:l,y:c},r,{fonts:s,colors:d}),t.restore()}function It(t,e){if(e.textStrokeWidth>0)return t.lineJoin="round",t.miterLimit=2,t.lineWidth=e.textStrokeWidth,t.strokeStyle=e.textStrokeColor,!0}function Tt(t,e,n,o){const{radius:r,options:i}=e,s=i.pointStyle,a=i.rotation;let d=(a||0)*$e;if(Z(s)){t.save(),t.translate(n,o),t.rotate(d),t.drawImage(s,-s.width/2,-s.height/2,s.width,s.height),t.restore();return}At(r)||Ot(t,{x:n,y:o,radius:r,rotation:a,style:s,rad:d})}function Ot(t,{x:e,y:n,radius:o,rotation:r,style:i,rad:s}){let a,d,l,c;switch(t.beginPath(),i){default:t.arc(e,n,o,0,gt),t.closePath();break;case"triangle":t.moveTo(e+Math.sin(s)*o,n-Math.cos(s)*o),s+=Ce,t.lineTo(e+Math.sin(s)*o,n-Math.cos(s)*o),s+=Ce,t.lineTo(e+Math.sin(s)*o,n-Math.cos(s)*o),t.closePath();break;case"rectRounded":c=o*.516,l=o-c,a=Math.cos(s+_)*l,d=Math.sin(s+_)*l,t.arc(e-a,n-d,c,s-b,s-J),t.arc(e+d,n-a,c,s-J,s),t.arc(e+a,n+d,c,s,s+J),t.arc(e-d,n+a,c,s+J,s+b),t.closePath();break;case"rect":if(!r){l=Math.SQRT1_2*o,t.rect(e-l,n-l,2*l,2*l);break}s+=_;case"rectRot":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+d,n-a),t.lineTo(e+a,n+d),t.lineTo(e-d,n+a),t.closePath();break;case"crossRot":s+=_;case"cross":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a);break;case"star":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a),s+=_,a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a);break;case"line":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d);break;case"dash":t.moveTo(e,n),t.lineTo(e+Math.cos(s)*o,n+Math.sin(s)*o);break}t.fill()}function Rt(t,e,n,o){t.save();const r=e.length;let i=0,s=o;for(let a=0;a<r;a++){const d=n[Math.min(a,n.length-1)];t.font=d.string;const l=e[a];i=Math.max(i,t.measureText(l).width+o),s+=d.lineHeight}return t.restore(),{width:i,height:s}}function Et(t,{x:e,y:n},o,r){t.beginPath();let i=0;o.forEach(function(s,a){const d=r[Math.min(a,r.length-1)],l=d.lineHeight;t.font=d.string,t.strokeText(s,e,n+l/2+i),i+=l}),t.stroke()}function Wt(t,{x:e,y:n},o,{fonts:r,colors:i}){let s=0;o.forEach(function(a,d){const l=i[Math.min(d,i.length-1)],c=r[Math.min(d,r.length-1)],u=c.lineHeight;t.beginPath(),t.font=c.string,t.fillStyle=l,t.fillText(a,e,n+u/2+s),s+=u,t.fill()})}function Lt(t,e){const n=Pe(t)?t:e;return Pe(n)?F(n,0,1):1}const ve={xScaleID:{min:"xMin",max:"xMax",start:"left",end:"right",startProp:"x",endProp:"x2"},yScaleID:{min:"yMin",max:"yMax",start:"bottom",end:"top",startProp:"y",endProp:"y2"}};function O(t,e,n){return e=typeof e=="number"?e:t.parse(e),Ve(e)?t.getPixelForValue(e):n}function j(t,e,n){const o=e[n];if(o||n==="scaleID")return o;const r=n.charAt(0),i=Object.values(t).filter(s=>s.axis&&s.axis===r);return i.length?i[0].id:r}function et(t,e){if(t){const n=t.options.reverse,o=O(t,e.min,n?e.end:e.start),r=O(t,e.max,n?e.start:e.end);return{start:o,end:r}}}function tt(t,e){const{chartArea:n,scales:o}=t,r=o[j(o,e,"xScaleID")],i=o[j(o,e,"yScaleID")];let s=n.width/2,a=n.height/2;return r&&(s=O(r,e.xValue,r.left+r.width/2)),i&&(a=O(i,e.yValue,i.top+i.height/2)),{x:s,y:a}}function we(t,e){const n=t.scales,o=n[j(n,e,"xScaleID")],r=n[j(n,e,"yScaleID")];if(!o&&!r)return{};let{left:i,right:s}=o||t.chartArea,{top:a,bottom:d}=r||t.chartArea;const l=Ae(o,{min:e.xMin,max:e.xMax,start:i,end:s});i=l.start,s=l.end;const c=Ae(r,{min:e.yMin,max:e.yMax,start:d,end:a});return a=c.start,d=c.end,{x:i,y:a,x2:s,y2:d,width:s-i,height:d-a,centerX:i+(s-i)/2,centerY:a+(d-a)/2}}function nt(t,e){if(!Ge(e)){const n=we(t,e);let o=e.radius;(!o||isNaN(o))&&(o=Math.min(n.width,n.height)/2,e.radius=o);const r=o*2,i=n.centerX+e.xAdjust,s=n.centerY+e.yAdjust;return{x:i-o,y:s-o,x2:i+o,y2:s+o,centerX:i,centerY:s,width:r,height:r,radius:o}}return _t(t,e)}function Yt(t,e){const{scales:n,chartArea:o}=t,r=n[e.scaleID],i={x:o.left,y:o.top,x2:o.right,y2:o.bottom};return r?Xt(r,i,e):zt(n,i,e),i}function ot(t,e,n){const o=we(t,e);return o.initProperties=H(t,o,e,n),o.elements=[{type:"label",optionScope:"label",properties:Nt(t,o,e),initProperties:o.initProperties}],o}function _t(t,e){const n=tt(t,e),o=e.radius*2;return{x:n.x-e.radius+e.xAdjust,y:n.y-e.radius+e.yAdjust,x2:n.x+e.radius+e.xAdjust,y2:n.y+e.radius+e.yAdjust,centerX:n.x+e.xAdjust,centerY:n.y+e.yAdjust,radius:e.radius,width:o,height:o}}function Ae(t,e){const n=et(t,e)||e;return{start:Math.min(n.start,n.end),end:Math.max(n.start,n.end)}}function Xt(t,e,n){const o=O(t,n.value,NaN),r=O(t,n.endValue,o);t.isHorizontal()?(e.x=o,e.x2=r):(e.y=o,e.y2=r)}function zt(t,e,n){for(const o of Object.keys(ve)){const r=t[j(t,n,o)];if(r){const{min:i,max:s,start:a,end:d,startProp:l,endProp:c}=ve[o],u=et(r,{min:n[i],max:n[s],start:r[a],end:r[d]});e[l]=u.start,e[c]=u.end}}}function Bt({properties:t,options:e},n,o,r){const{x:i,x2:s,width:a}=t;return rt({start:i,end:s,size:a,borderWidth:e.borderWidth},{position:o.x,padding:{start:r.left,end:r.right},adjust:e.label.xAdjust,size:n.width})}function Ht({properties:t,options:e},n,o,r){const{y:i,y2:s,height:a}=t;return rt({start:i,end:s,size:a,borderWidth:e.borderWidth},{position:o.y,padding:{start:r.top,end:r.bottom},adjust:e.label.yAdjust,size:n.height})}function rt(t,e){const{start:n,end:o,borderWidth:r}=t,{position:i,padding:{start:s,end:a},adjust:d}=e,l=o-r-n-s-a-e.size;return n+r/2+d+be(l,i)}function Nt(t,e,n){const o=n.label;o.backgroundColor="transparent",o.callout.display=!1;const r=ge(o.position),i=Q(o.padding),s=pe(t.ctx,o),a=Bt({properties:e,options:n},s,r,i),d=Ht({properties:e,options:n},s,r,i),l=s.width+i.width,c=s.height+i.height;return{x:a,y:d,x2:a+l,y2:d+c,width:l,height:c,centerX:a+l/2,centerY:d+c/2,rotation:o.rotation}}function I(t,e,n){const o=Math.cos(n),r=Math.sin(n),i=e.x,s=e.y;return{x:i+o*(t.x-i)-r*(t.y-s),y:s+r*(t.x-i)+o*(t.y-s)}}const ie=["enter","leave"],xe=ie.concat("click");function Vt(t,e,n){e.listened=Qe(n,xe,e.listeners),e.moveListened=!1,e._getElements=ye,ie.forEach(o=>{T(n[o])&&(e.moveListened=!0)}),(!e.listened||!e.moveListened)&&e.annotations.forEach(o=>{!e.listened&&T(o.click)&&(e.listened=!0),e.moveListened||ie.forEach(r=>{T(o[r])&&(e.listened=!0,e.moveListened=!0)})})}function $t(t,e,n){if(t.listened)switch(e.type){case"mousemove":case"mouseout":return Jt(t,e,n);case"click":return Ut(t,e,n)}}function Jt(t,e,n){if(!t.moveListened)return;let o;e.type==="mousemove"?o=ye(t,e,n.interaction):o=[];const r=t.hovered;t.hovered=o;const i={state:t,event:e};let s=De(i,"leave",r,o);return De(i,"enter",o,r)||s}function De({state:t,event:e},n,o,r){let i;for(const s of o)r.indexOf(s)<0&&(i=it(s.options[n]||t.listeners[n],s,e)||i);return i}function Ut(t,e,n){const o=t.listeners,r=ye(t,e,n.interaction);let i;for(const s of r)i=it(s.options.click||o.click,s,e)||i;return i}function it(t,e,n){return he(t,[e.$context,n])===!0}const G=["afterDraw","beforeDraw"];function qt(t,e,n){const o=e.visibleElements;e.hooked=Qe(n,G,e.hooks),e.hooked||o.forEach(r=>{e.hooked||G.forEach(i=>{T(r.options[i])&&(e.hooked=!0)})})}function je(t,e,n){if(t.hooked){const o=e.options[n]||t.hooks[n];return he(o,[e.$context])}}function Kt(t,e,n){const o=en(t.scales,e,n);let r=Ie(e,o,"min","suggestedMin");r=Ie(e,o,"max","suggestedMax")||r,r&&T(e.handleTickRangeOptions)&&e.handleTickRangeOptions()}function Gt(t,e){for(const n of t)Ft(n,e)}function Ie(t,e,n,o){if(Ve(e[n])&&!Qt(t.options,n,o)){const r=t[n]!==e[n];return t[n]=e[n],r}}function Qt(t,e,n){return p(t[e])||p(t[n])}function Ft(t,e){for(const n of["scaleID","xScaleID","yScaleID"]){const o=j(e,t,n);o&&!e[o]&&Zt(t,n)&&console.warn(`No scale found with id '${o}' for annotation '${t.id}'`)}}function Zt(t,e){if(e==="scaleID")return!0;const n=e.charAt(0);for(const o of["Min","Max","Value"])if(p(t[n+o]))return!0;return!1}function en(t,e,n){const o=e.axis,r=e.id,i=o+"ScaleID",s={min:z(e.min,Number.NEGATIVE_INFINITY),max:z(e.max,Number.POSITIVE_INFINITY)};for(const a of n)a.scaleID===r?Te(a,e,["value","endValue"],s):j(t,a,i)===r&&Te(a,e,[o+"Min",o+"Max",o+"Value"],s);return s}function Te(t,e,n,o){for(const r of n){const i=t[r];if(p(i)){const s=e.parse(i);o.min=Math.min(o.min,s),o.max=Math.max(o.max,s)}}}class L extends R{inRange(e,n,o,r){const{x:i,y:s}=I({x:e,y:n},this.getCenterPoint(r),w(-this.options.rotation));return Je({x:i,y:s},this.getProps(["x","y","x2","y2"],r),o,this.options.borderWidth)}getCenterPoint(e){return E(this,e)}draw(e){e.save(),me(e,this.getCenterPoint(),this.options.rotation),Ze(e,this,this.options),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return ot(e,n)}}L.id="boxAnnotation";L.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:{backgroundColor:"transparent",borderWidth:0,callout:{display:!1},color:"black",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:void 0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};L.defaultRoutes={borderColor:"color",backgroundColor:"color"};L.descriptors={label:{_fallback:!0}};const st=["left","bottom","top","right"];class N extends R{inRange(e,n,o,r){const{x:i,y:s}=I({x:e,y:n},this.getCenterPoint(r),w(-this.rotation));return Je({x:i,y:s},this.getProps(["x","y","x2","y2"],r),o,this.options.borderWidth)}getCenterPoint(e){return E(this,e)}draw(e){const n=this.options,o=!p(this._visible)||this._visible;!n.display||!n.content||!o||(e.save(),me(e,this.getCenterPoint(),this.rotation),nn(e,this),Ze(e,this,n),jt(e,cn(this),n),e.restore())}resolveElementProperties(e,n){let o;if(Ge(n))o=tt(e,n);else{const{centerX:a,centerY:d}=we(e,n);o={x:a,y:d}}const r=Q(n.padding),i=pe(e.ctx,n),s=tn(o,i,n,r);return{initProperties:H(e,s,n),pointX:o.x,pointY:o.y,...s,rotation:n.rotation}}}N.id="labelAnnotation";N.defaults={adjustScaleRange:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:0,callout:{borderCapStyle:"butt",borderColor:void 0,borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:1,display:!1,margin:5,position:"auto",side:5,start:"50%"},color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,init:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};N.defaultRoutes={borderColor:"color"};function tn(t,e,n,o){const r=e.width+o.width+n.borderWidth,i=e.height+o.height+n.borderWidth,s=ge(n.position,"center"),a=Oe(t.x,r,n.xAdjust,s.x),d=Oe(t.y,i,n.yAdjust,s.y);return{x:a,y:d,x2:a+r,y2:d+i,width:r,height:i,centerX:a+r/2,centerY:d+i/2}}function Oe(t,e,n=0,o){return t-be(e,o)+n}function nn(t,e){const{pointX:n,pointY:o,options:r}=e,i=r.callout,s=i&&i.display&&dn(e,i);if(!s||un(e,i,s))return;if(t.save(),t.beginPath(),!P(t,i))return t.restore();const{separatorStart:d,separatorEnd:l}=on(e,s),{sideStart:c,sideEnd:u}=sn(e,s,d);(i.margin>0||r.borderWidth===0)&&(t.moveTo(d.x,d.y),t.lineTo(l.x,l.y)),t.moveTo(c.x,c.y),t.lineTo(u.x,u.y);const f=I({x:n,y:o},e.getCenterPoint(),w(-e.rotation));t.lineTo(f.x,f.y),t.stroke(),t.restore()}function on(t,e){const{x:n,y:o,x2:r,y2:i}=t,s=rn(t,e);let a,d;return e==="left"||e==="right"?(a={x:n+s,y:o},d={x:a.x,y:i}):(a={x:n,y:o+s},d={x:r,y:a.y}),{separatorStart:a,separatorEnd:d}}function rn(t,e){const{width:n,height:o,options:r}=t,i=r.callout.margin+r.borderWidth/2;return e==="right"?n+i:e==="bottom"?o+i:-i}function sn(t,e,n){const{y:o,width:r,height:i,options:s}=t,a=s.callout.start,d=an(e,s.callout);let l,c;return e==="left"||e==="right"?(l={x:n.x,y:o+C(i,a)},c={x:l.x+d,y:l.y}):(l={x:n.x+C(r,a),y:n.y},c={x:l.x,y:l.y+d}),{sideStart:l,sideEnd:c}}function an(t,e){const n=e.side;return t==="left"||t==="top"?-n:n}function dn(t,e){const n=e.position;return st.includes(n)?n:ln(t,e)}function ln(t,e){const{x:n,y:o,x2:r,y2:i,width:s,height:a,pointX:d,pointY:l,centerX:c,centerY:u,rotation:f}=t,h={x:c,y:u},y=e.start,x=C(s,y),Y=C(a,y),g=[n,n+x,n+x,r],m=[o+Y,i,o,i],k=[];for(let v=0;v<4;v++){const ne=I({x:g[v],y:m[v]},h,w(f));k.push({position:st[v],distance:fe(ne,{x:d,y:l})})}return k.sort((v,ne)=>v.distance-ne.distance)[0].position}function cn({x:t,y:e,width:n,height:o,options:r}){const i=r.borderWidth/2,s=Q(r.padding);return{x:t+s.left+i,y:e+s.top+i,width:n-s.left-s.right-r.borderWidth,height:o-s.top-s.bottom-r.borderWidth}}function un(t,e,n){const{pointX:o,pointY:r}=t,i=e.margin;let s=o,a=r;return n==="left"?s+=i:n==="right"?s-=i:n==="top"?a+=i:n==="bottom"&&(a-=i),t.inRange(s,a)}const Se=(t,e,n)=>({x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}),se=(t,e,n)=>Se(e,n,Math.abs((t-e.y)/(n.y-e.y))).x,Re=(t,e,n)=>Se(e,n,Math.abs((t-e.x)/(n.x-e.x))).y,X=t=>t*t,fn=(t,e,{x:n,y:o,x2:r,y2:i},s)=>s==="y"?{start:Math.min(o,i),end:Math.max(o,i),value:e}:{start:Math.min(n,r),end:Math.max(n,r),value:t},Ee=(t,e,n,o)=>(1-o)*(1-o)*t+2*(1-o)*o*e+o*o*n,ae=(t,e,n,o)=>({x:Ee(t.x,e.x,n.x,o),y:Ee(t.y,e.y,n.y,o)}),We=(t,e,n,o)=>2*(1-o)*(e-t)+2*o*(n-e),Le=(t,e,n,o)=>-Math.atan2(We(t.x,e.x,n.x,o),We(t.y,e.y,n.y,o))+.5*b;class V extends R{inRange(e,n,o,r){const i=this.options.borderWidth/2;if(o!=="x"&&o!=="y"){const s={mouseX:e,mouseY:n},{path:a,ctx:d}=this;if(a){P(d,this.options);const{chart:c}=this.$context,u=e*c.currentDevicePixelRatio,f=n*c.currentDevicePixelRatio,h=d.isPointInStroke(a,u,f)||de(this,s,r);return d.restore(),h}const l=X(i);return gn(this,s,l,r)||de(this,s,r)}return hn(this,{mouseX:e,mouseY:n},o,{hBorderWidth:i,useFinalPosition:r})}getCenterPoint(e){return E(this,e)}draw(e){const{x:n,y:o,x2:r,y2:i,cp:s,options:a}=this;if(e.save(),!P(e,a))return e.restore();W(e,a);const d=Math.sqrt(Math.pow(r-n,2)+Math.pow(i-o,2));if(a.curve&&s)return Pn(e,this,s,d),e.restore();const{startOpts:l,endOpts:c,startAdjust:u,endAdjust:f}=at(this),h=Math.atan2(i-o,r-n);e.translate(n,o),e.rotate(h),e.beginPath(),e.moveTo(0+u,0),e.lineTo(d-f,0),e.shadowColor=a.borderShadowColor,e.stroke(),le(e,0,u,l),le(e,d,-f,c),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){const o=Yt(e,n),{x:r,y:i,x2:s,y2:a}=o,d=yn(o,e.chartArea),l=d?bn({x:r,y:i},{x:s,y:a},e.chartArea):{x:r,y:i,x2:s,y2:a,width:Math.abs(s-r),height:Math.abs(a-i)};if(l.centerX=(s+r)/2,l.centerY=(a+i)/2,l.initProperties=H(e,l,n),n.curve){const u={x:l.x,y:l.y},f={x:l.x2,y:l.y2};l.cp=Cn(l,n,fe(u,f))}const c=mn(e,l,n.label);return c._visible=d,l.elements=[{type:"label",optionScope:"label",properties:c,initProperties:l.initProperties}],l}}V.id="lineAnnotation";const Ye={backgroundColor:void 0,backgroundShadowColor:void 0,borderColor:void 0,borderDash:void 0,borderDashOffset:void 0,borderShadowColor:void 0,borderWidth:void 0,display:void 0,fill:void 0,length:void 0,shadowBlur:void 0,shadowOffsetX:void 0,shadowOffsetY:void 0,width:void 0};V.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},Ye),fill:!1,length:12,start:Object.assign({},Ye),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:2,curve:!1,controlPoint:{y:"-50%"},display:!0,endValue:void 0,init:void 0,label:{backgroundColor:"rgba(0,0,0,0.8)",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderColor:"black",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:6,borderShadowColor:"transparent",borderWidth:0,callout:Object.assign({},N.defaults.callout),color:"#fff",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},scaleID:void 0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,value:void 0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};V.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}};V.defaultRoutes={borderColor:"color"};function hn(t,{mouseX:e,mouseY:n},o,{hBorderWidth:r,useFinalPosition:i}){const s=fn(e,n,t.getProps(["x","y","x2","y2"],i),o);return s.value>=s.start-r&&s.value<=s.end+r||de(t,{mouseX:e,mouseY:n},i,o)}function yn({x:t,y:e,x2:n,y2:o},{top:r,right:i,bottom:s,left:a}){return!(t<a&&n<a||t>i&&n>i||e<r&&o<r||e>s&&o>s)}function _e({x:t,y:e},n,{top:o,right:r,bottom:i,left:s}){return t<s&&(e=Re(s,{x:t,y:e},n),t=s),t>r&&(e=Re(r,{x:t,y:e},n),t=r),e<o&&(t=se(o,{x:t,y:e},n),e=o),e>i&&(t=se(i,{x:t,y:e},n),e=i),{x:t,y:e}}function bn(t,e,n){const{x:o,y:r}=_e(t,e,n),{x:i,y:s}=_e(e,t,n);return{x:o,y:r,x2:i,y2:s,width:Math.abs(i-o),height:Math.abs(s-r)}}function gn(t,{mouseX:e,mouseY:n},o=A,r){const{x:i,y:s,x2:a,y2:d}=t.getProps(["x","y","x2","y2"],r),l=a-i,c=d-s,u=X(l)+X(c),f=u===0?-1:((e-i)*l+(n-s)*c)/u;let h,y;return f<0?(h=i,y=s):f>1?(h=a,y=d):(h=i+f*l,y=s+f*c),X(e-h)+X(n-y)<=o}function de(t,{mouseX:e,mouseY:n},o,r){const i=t.label;return i.options.display&&i.inRange(e,n,r,o)}function mn(t,e,n){const o=n.borderWidth,r=Q(n.padding),i=pe(t.ctx,n),s=i.width+r.width+o,a=i.height+r.height+o;return wn(e,n,{width:s,height:a,padding:r},t.chartArea)}function pn(t){const{x:e,y:n,x2:o,y2:r}=t,i=Math.atan2(r-n,o-e);return i>b/2?i-b:i<b/-2?i+b:i}function wn(t,e,n,o){const{width:r,height:i,padding:s}=n,{xAdjust:a,yAdjust:d}=e,l={x:t.x,y:t.y},c={x:t.x2,y:t.y2},u=e.rotation==="auto"?pn(t):w(e.rotation),f=xn(r,i,u),h=Sn(t,e,{labelSize:f,padding:s},o),y=t.cp?ae(l,t.cp,c,h):Se(l,c,h),x={size:f.w,min:o.left,max:o.right,padding:s.left},Y={size:f.h,min:o.top,max:o.bottom,padding:s.top},g=ze(y.x,x)+a,m=ze(y.y,Y)+d;return{x:g-r/2,y:m-i/2,x2:g+r/2,y2:m+i/2,centerX:g,centerY:m,pointX:y.x,pointY:y.y,width:r,height:i,rotation:ut(u)}}function xn(t,e,n){const o=Math.cos(n),r=Math.sin(n);return{w:Math.abs(t*o)+Math.abs(e*r),h:Math.abs(t*r)+Math.abs(e*o)}}function Sn(t,e,n,o){let r;const i=Mn(t,o);return e.position==="start"?r=Xe({w:t.x2-t.x,h:t.y2-t.y},n,e,i):e.position==="end"?r=1-Xe({w:t.x-t.x2,h:t.y-t.y2},n,e,i):r=be(1,e.position),r}function Xe(t,e,n,o){const{labelSize:r,padding:i}=e,s=t.w*o.dx,a=t.h*o.dy,d=s>0&&(r.w/2+i.left-o.x)/s,l=a>0&&(r.h/2+i.top-o.y)/a;return F(Math.max(d,l),0,.25)}function Mn(t,e){const{x:n,x2:o,y:r,y2:i}=t,s=Math.min(r,i)-e.top,a=Math.min(n,o)-e.left,d=e.bottom-Math.max(r,i),l=e.right-Math.max(n,o);return{x:Math.min(a,l),y:Math.min(s,d),dx:a<=l?1:-1,dy:s<=d?1:-1}}function ze(t,e){const{size:n,min:o,max:r,padding:i}=e,s=n/2;return n>r-o?(r+o)/2:(o>=t-i-s&&(t=o+i+s),r<=t+i+s&&(t=r-i-s),t)}function at(t){const e=t.options,n=e.arrowHeads&&e.arrowHeads.start,o=e.arrowHeads&&e.arrowHeads.end;return{startOpts:n,endOpts:o,startAdjust:Be(t,n),endAdjust:Be(t,o)}}function Be(t,e){if(!e||!e.display)return 0;const{length:n,width:o}=e,r=t.options.borderWidth/2,i={x:n,y:o+r};return Math.abs(se(0,i,{x:0,y:r}))}function le(t,e,n,o){if(!o||!o.display)return;const{length:r,width:i,fill:s,backgroundColor:a,borderColor:d}=o,l=Math.abs(e-r)+n;t.beginPath(),W(t,o),P(t,o),t.moveTo(l,-i),t.lineTo(e+n,0),t.lineTo(l,i),s===!0?(t.fillStyle=a||d,t.closePath(),t.fill(),t.shadowColor="transparent"):t.shadowColor=o.borderShadowColor,t.stroke()}function Cn(t,e,n){const{x:o,y:r,x2:i,y2:s,centerX:a,centerY:d}=t,l=Math.atan2(s-r,i-o),c=ge(e.controlPoint,0),u={x:a+C(n,c.x,!1),y:d+C(n,c.y,!1)};return I(u,{x:a,y:d},l)}function He(t,{x:e,y:n},{angle:o,adjust:r},i){!i||!i.display||(t.save(),t.translate(e,n),t.rotate(o),le(t,0,-r,i),t.restore())}function Pn(t,e,n,o){const{x:r,y:i,x2:s,y2:a,options:d}=e,{startOpts:l,endOpts:c,startAdjust:u,endAdjust:f}=at(e),h={x:r,y:i},y={x:s,y:a},x=Le(h,n,y,0),Y=Le(h,n,y,1)-b,g=ae(h,n,y,u/o),m=ae(h,n,y,1-f/o),k=new Path2D;t.beginPath(),k.moveTo(g.x,g.y),k.quadraticCurveTo(n.x,n.y,m.x,m.y),t.shadowColor=d.borderShadowColor,t.stroke(k),e.path=k,e.ctx=t,He(t,g,{angle:x,adjust:u},l),He(t,m,{angle:Y,adjust:f},c)}class $ extends R{inRange(e,n,o,r){const i=this.options.rotation,s=this.options.borderWidth;if(o!=="x"&&o!=="y")return kn({x:e,y:n},this.getProps(["width","height","centerX","centerY"],r),i,s);const{x:a,y:d,x2:l,y2:c}=this.getProps(["x","y","x2","y2"],r),u=s/2,f=o==="y"?{start:d,end:c}:{start:a,end:l},h=I({x:e,y:n},this.getCenterPoint(r),w(-i));return h[o]>=f.start-u-A&&h[o]<=f.end+u+A}getCenterPoint(e){return E(this,e)}draw(e){const{width:n,height:o,centerX:r,centerY:i,options:s}=this;e.save(),me(e,this.getCenterPoint(),s.rotation),W(e,this.options),e.beginPath(),e.fillStyle=s.backgroundColor;const a=P(e,s);e.ellipse(r,i,o/2,n/2,b/2,0,2*b),e.fill(),a&&(e.shadowColor=s.borderShadowColor,e.stroke()),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return ot(e,n,!0)}}$.id="ellipseAnnotation";$.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:Object.assign({},L.defaults.label),rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};$.defaultRoutes={borderColor:"color",backgroundColor:"color"};$.descriptors={label:{_fallback:!0}};function kn(t,e,n,o){const{width:r,height:i,centerX:s,centerY:a}=e,d=r/2,l=i/2;if(d<=0||l<=0)return!1;const c=w(n||0),u=o/2||0,f=Math.cos(c),h=Math.sin(c),y=Math.pow(f*(t.x-s)+h*(t.y-a),2),x=Math.pow(h*(t.x-s)-f*(t.y-a),2);return y/Math.pow(d+u,2)+x/Math.pow(l+u,2)<=1.0001}class ee extends R{inRange(e,n,o,r){const{x:i,y:s,x2:a,y2:d,width:l}=this.getProps(["x","y","x2","y2","width"],r),c=this.options.borderWidth;if(o!=="x"&&o!=="y")return Ct({x:e,y:n},this.getCenterPoint(r),l/2,c);const u=c/2,f=o==="y"?{start:s,end:d,value:n}:{start:i,end:a,value:e};return f.value>=f.start-u&&f.value<=f.end+u}getCenterPoint(e){return E(this,e)}draw(e){const n=this.options,o=n.borderWidth;if(n.radius<.1)return;e.save(),e.fillStyle=n.backgroundColor,W(e,n);const r=P(e,n);Tt(e,this,this.centerX,this.centerY),r&&!Z(n.pointStyle)&&(e.shadowColor=n.borderShadowColor,e.stroke()),e.restore(),n.borderWidth=o}resolveElementProperties(e,n){const o=nt(e,n);return o.initProperties=H(e,o,n,!0),o}}ee.id="pointAnnotation";ee.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,pointStyle:"circle",radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};ee.defaultRoutes={borderColor:"color",backgroundColor:"color"};class te extends R{inRange(e,n,o,r){if(o!=="x"&&o!=="y")return this.options.radius>=.1&&this.elements.length>1&&An(this.elements,e,n,r);const i=I({x:e,y:n},this.getCenterPoint(r),w(-this.options.rotation)),s=this.elements.map(l=>o==="y"?l.bY:l.bX),a=Math.min(...s),d=Math.max(...s);return i[o]>=a&&i[o]<=d}getCenterPoint(e){return E(this,e)}draw(e){const{elements:n,options:o}=this;e.save(),e.beginPath(),e.fillStyle=o.backgroundColor,W(e,o);const r=P(e,o);let i=!0;for(const s of n)i?(e.moveTo(s.x,s.y),i=!1):e.lineTo(s.x,s.y);e.closePath(),e.fill(),r&&(e.shadowColor=o.borderShadowColor,e.stroke()),e.restore()}resolveElementProperties(e,n){const o=nt(e,n),{sides:r,rotation:i}=n,s=[],a=2*b/r;let d=i*$e;for(let l=0;l<r;l++,d+=a){const c=vn(o,n,d);c.initProperties=H(e,o,n),s.push(c)}return o.elements=s,o}}te.id="polygonAnnotation";te.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,point:{radius:0},radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,sides:3,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};te.defaultRoutes={borderColor:"color",backgroundColor:"color"};function vn({centerX:t,centerY:e},{radius:n,borderWidth:o},r){const i=o/2,s=Math.sin(r),a=Math.cos(r),d={x:t+s*n,y:e-a*n};return{type:"point",optionScope:"point",properties:{x:d.x,y:d.y,centerX:d.x,centerY:d.y,bX:t+s*(n+i),bY:e-a*(n+i)}}}function An(t,e,n,o){let r=!1,i=t[t.length-1].getProps(["bX","bY"],o);for(const s of t){const a=s.getProps(["bX","bY"],o);a.bY>n!=i.bY>n&&e<(i.bX-a.bX)*(n-a.bY)/(i.bY-a.bY)+a.bX&&(r=!r),i=a}return r}const M={box:L,ellipse:$,label:N,line:V,point:ee,polygon:te};Object.keys(M).forEach(t=>{ct.describe(`elements.${M[t].id}`,{_fallback:"plugins.annotation.common"})});const Dn={update:Object.assign},jn=xe.concat(G),Ne=(t,e)=>B(e)?ue(t,e):t,ce=t=>t==="color"||t==="font";function Me(t="line"){return M[t]?t:(console.warn(`Unknown annotation type: '${t}', defaulting to 'line'`),"line")}function In(t,e,n,o){const r=On(t,n.animations,o),i=e.annotations,s=Wn(e.elements,i);for(let a=0;a<i.length;a++){const d=i[a],l=dt(s,a,d.type),c=d.setContext(En(t,l,d)),u=l.resolveElementProperties(t,c);u.skip=Tn(u),"elements"in u&&(Rn(l,u.elements,c,r),delete u.elements),p(l.x)||Object.assign(l,u),Object.assign(l,u.initProperties),u.options=lt(c),r.update(l,u)}}function Tn(t){return isNaN(t.x)||isNaN(t.y)}function On(t,e,n){return n==="reset"||n==="none"||n==="resize"?Dn:new mt(t,e)}function Rn(t,e,n,o){const r=t.elements||(t.elements=[]);r.length=e.length;for(let i=0;i<e.length;i++){const s=e[i],a=s.properties,d=dt(r,i,s.type,s.initProperties),l=n[s.optionScope].override(s);a.options=lt(l),o.update(d,a)}}function dt(t,e,n,o){const r=M[Me(n)];let i=t[e];return(!i||!(i instanceof r))&&(i=t[e]=new r,Object.assign(i,o)),i}function lt(t){const e=M[Me(t.type)],n={};n.id=t.id,n.type=t.type,n.drawTime=t.drawTime,Object.assign(n,ue(t,e.defaults),ue(t,e.defaultRoutes));for(const o of jn)n[o]=t[o];return n}function ue(t,e){const n={};for(const o of Object.keys(e)){const r=e[o],i=t[o];ce(o)&&D(i)?n[o]=i.map(s=>Ne(s,r)):n[o]=Ne(i,r)}return n}function En(t,e,n){return e.$context||(e.$context=Object.assign(Object.create(t.getContext()),{element:e,id:n.id,type:"annotation"}))}function Wn(t,e){const n=e.length,o=t.length;if(o<n){const r=n-o;t.splice(o,0,...new Array(r))}else o>n&&t.splice(n,o-n);return t}var Ln="2.2.1";const S=new Map,Yn=xe.concat(G);var Bn={id:"annotation",version:Ln,beforeRegister(){Pt("chart.js","3.7",oe.version)},afterRegister(){oe.register(M)},afterUnregister(){oe.unregister(M)},beforeInit(t){S.set(t,{annotations:[],elements:[],visibleElements:[],listeners:{},listened:!1,moveListened:!1,hooks:{},hooked:!1,hovered:[]})},beforeUpdate(t,e,n){const o=S.get(t),r=o.annotations=[];let i=n.annotations;B(i)?Object.keys(i).forEach(s=>{const a=i[s];B(a)&&(a.id=s,r.push(a))}):D(i)&&r.push(...i),Gt(r,t.scales)},afterDataLimits(t,e){const n=S.get(t);Kt(t,e.scale,n.annotations.filter(o=>o.display&&o.adjustScaleRange))},afterUpdate(t,e,n){const o=S.get(t);Vt(t,o,n),In(t,o,n,e.mode),o.visibleElements=o.elements.filter(r=>!r.skip&&r.options.display),qt(t,o,n)},beforeDatasetsDraw(t,e,n){U(t,"beforeDatasetsDraw",n.clip)},afterDatasetsDraw(t,e,n){U(t,"afterDatasetsDraw",n.clip)},beforeDraw(t,e,n){U(t,"beforeDraw",n.clip)},afterDraw(t,e,n){U(t,"afterDraw",n.clip)},beforeEvent(t,e,n){const o=S.get(t);$t(o,e.event,n)&&(e.changed=!0)},afterDestroy(t){S.delete(t)},_getState(t){return S.get(t)},defaults:{animations:{numbers:{properties:["x","y","x2","y2","width","height","centerX","centerY","pointX","pointY","radius"],type:"number"}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:"afterDatasetsDraw",init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:t=>!Yn.includes(t)&&t!=="init",annotations:{_allKeys:!1,_fallback:(t,e)=>`elements.${M[Me(e.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:ce,_fallback:!0},_indexable:ce}},additionalOptionScopes:[""]};function U(t,e,n){const{ctx:o,chartArea:r}=t,i=S.get(t);n&&ft(o,r);const s=_n(i.visibleElements,e).sort((a,d)=>a.element.options.z-d.element.options.z);for(const a of s)Xn(o,r,i,a);n&&ht(o)}function _n(t,e){const n=[];for(const o of t)if(o.options.drawTime===e&&n.push({element:o,main:!0}),o.elements&&o.elements.length)for(const r of o.elements)r.options.display&&r.options.drawTime===e&&n.push({element:r});return n}function Xn(t,e,n,o){const r=o.element;o.main?(je(n,r,"beforeDraw"),r.draw(t,e),je(n,r,"afterDraw")):r.draw(t,e)}const Hn=(t,e,n)=>{if(typeof t=="string")return t;const o=Number.parseInt(t.toString(),10);return o>999999?`${o/1e6}M`:o>999?`${o/1e3}k`:o};export{Bn as a,Hn as f};
|
|
6
|
+
*/const Pe={modes:{point(t,e){return q(t,e,{intersect:!0})},nearest(t,e,n){return xt(t,e,n)},x(t,e,n){return q(t,e,{intersect:n.intersect,axis:"x"})},y(t,e,n){return q(t,e,{intersect:n.intersect,axis:"y"})}}};function ye(t,e,n){return(Pe.modes[n.mode]||Pe.modes.nearest)(t,e,n)}function pt(t,e,n){return n!=="x"&&n!=="y"?t.inRange(e.x,e.y,"x",!0)||t.inRange(e.x,e.y,"y",!0):t.inRange(e.x,e.y,n,!0)}function wt(t,e,n){return n==="x"?{x:t.x,y:e.y}:n==="y"?{x:e.x,y:t.y}:e}function q(t,e,n){return t.visibleElements.filter(o=>n.intersect?o.inRange(e.x,e.y):pt(o,e,n.axis))}function xt(t,e,n){let o=Number.POSITIVE_INFINITY;return q(t,e,n).reduce((r,i)=>{const s=i.getCenterPoint(),a=wt(e,s,n.axis),d=fe(e,a);return d<o?(r=[i],o=d):d===o&&r.push(i),r},[]).sort((r,i)=>r._index-i._index).slice(0,1)}const St=(t,e)=>e>t||t.length>e.length&&t.slice(0,e.length)===e,A=.001,F=(t,e,n)=>Math.min(n,Math.max(e,t));function Mt(t,e,n){for(const o of Object.keys(t))t[o]=F(t[o],e,n);return t}function kt(t,e,n,o){if(!t||!e||n<=0)return!1;const r=o/2;return Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)<=Math.pow(n+r,2)}function Je(t,{x:e,y:n,x2:o,y2:r},i,s){const a=s/2,d=t.x>=e-a-A&&t.x<=o+a+A,l=t.y>=n-a-A&&t.y<=r+a+A;return i==="x"?d:(i==="y"||d)&&l}function E(t,e){const{centerX:n,centerY:o}=t.getProps(["centerX","centerY"],e);return{x:n,y:o}}function Ct(t,e,n,o=!0){const r=n.split(".");let i=0;for(const s of e.split(".")){const a=r[i++];if(parseInt(s,10)<parseInt(a,10))break;if(St(a,s)){if(o)throw new Error(`${t} v${n} is not supported. v${e} or newer is required.`);return!1}}return!0}const Ue=t=>typeof t=="string"&&t.endsWith("%"),qe=t=>parseFloat(t)/100,Ge=t=>F(qe(t),0,1);function be(t,e){return e==="start"?0:e==="end"?t:Ue(e)?Ge(e)*t:t/2}function k(t,e,n=!0){return typeof e=="number"?e:Ue(e)?(n?Ge(e):qe(e))*t:t}function Pt(t,e){const{x:n,width:o}=t,r=e.textAlign;return r==="center"?n+o/2:r==="end"||r==="right"?n+o:n}function ge(t,e="center"){return B(t)?{x:X(t.x,e),y:X(t.y,e)}:(t=X(t,e),{x:t,y:t})}function Ke(t){return t&&(p(t.xValue)||p(t.yValue))}function H(t,e,n,o=!1){const r=n.init;if(r){if(r===!0)return Fe(e,o)}else return;return vt(e,o,he(r,[{chart:t,properties:e,options:n}]))}function Qe(t,e,n){let o=!1;return e.forEach(r=>{T(t[r])?(o=!0,n[r]=t[r]):p(n[r])&&delete n[r]}),o}function Fe({centerX:t,centerY:e},n){return n?{centerX:t,centerY:e,radius:0,width:0,height:0}:{x:t,y:e,x2:t,y2:e,width:0,height:0}}function vt(t,e,n){if(n===!0)return Fe(t,e);if(B(n))return n}const re=new Map,At=t=>isNaN(t)||t<=0,Dt=t=>t.reduce(function(e,n){return e+=n.string,e},"");function Z(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object HTMLImageElement]"||e==="[object HTMLCanvasElement]"}}function me(t,{x:e,y:n},o){o&&(t.translate(e,n),t.rotate(w(o)),t.translate(-e,-n))}function C(t,e){if(e&&e.borderWidth)return t.lineCap=e.borderCapStyle,t.setLineDash(e.borderDash),t.lineDashOffset=e.borderDashOffset,t.lineJoin=e.borderJoinStyle,t.lineWidth=e.borderWidth,t.strokeStyle=e.borderColor,!0}function W(t,e){t.shadowColor=e.backgroundShadowColor,t.shadowBlur=e.shadowBlur,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY}function pe(t,e){const n=e.content;if(Z(n))return{width:k(n.width,e.width),height:k(n.height,e.height)};const o=e.font,r=D(o)?o.map(d=>G(d)):[G(o)],i=e.textStrokeWidth,s=D(n)?n:[n],a=s.join()+Dt(r)+i+(t._measureText?"-spriting":"");return re.has(a)||re.set(a,Rt(t,s,r,i)),re.get(a)}function Ze(t,e,n){const{x:o,y:r,width:i,height:s}=e;t.save(),W(t,n);const a=C(t,n);t.fillStyle=n.backgroundColor,t.beginPath(),yt(t,{x:o,y:r,w:i,h:s,radius:Mt(bt(n.borderRadius),0,Math.min(i,s)/2)}),t.closePath(),t.fill(),a&&(t.shadowColor=n.borderShadowColor,t.stroke()),t.restore()}function jt(t,e,n){const o=n.content;if(Z(o)){t.save(),t.globalAlpha=Lt(n.opacity,o.style.opacity),t.drawImage(o,e.x,e.y,e.width,e.height),t.restore();return}const r=D(o)?o:[o],i=n.font,s=D(i)?i.map(u=>G(u)):[G(i)],a=n.color,d=D(a)?a:[a],l=Pt(e,n),c=e.y+n.textStrokeWidth/2;t.save(),t.textBaseline="middle",t.textAlign=n.textAlign,It(t,n)&&Et(t,{x:l,y:c},r,s),Wt(t,{x:l,y:c},r,{fonts:s,colors:d}),t.restore()}function It(t,e){if(e.textStrokeWidth>0)return t.lineJoin="round",t.miterLimit=2,t.lineWidth=e.textStrokeWidth,t.strokeStyle=e.textStrokeColor,!0}function Tt(t,e,n,o){const{radius:r,options:i}=e,s=i.pointStyle,a=i.rotation;let d=(a||0)*Ve;if(Z(s)){t.save(),t.translate(n,o),t.rotate(d),t.drawImage(s,-s.width/2,-s.height/2,s.width,s.height),t.restore();return}At(r)||Ot(t,{x:n,y:o,radius:r,rotation:a,style:s,rad:d})}function Ot(t,{x:e,y:n,radius:o,rotation:r,style:i,rad:s}){let a,d,l,c;switch(t.beginPath(),i){default:t.arc(e,n,o,0,gt),t.closePath();break;case"triangle":t.moveTo(e+Math.sin(s)*o,n-Math.cos(s)*o),s+=ke,t.lineTo(e+Math.sin(s)*o,n-Math.cos(s)*o),s+=ke,t.lineTo(e+Math.sin(s)*o,n-Math.cos(s)*o),t.closePath();break;case"rectRounded":c=o*.516,l=o-c,a=Math.cos(s+_)*l,d=Math.sin(s+_)*l,t.arc(e-a,n-d,c,s-b,s-J),t.arc(e+d,n-a,c,s-J,s),t.arc(e+a,n+d,c,s,s+J),t.arc(e-d,n+a,c,s+J,s+b),t.closePath();break;case"rect":if(!r){l=Math.SQRT1_2*o,t.rect(e-l,n-l,2*l,2*l);break}s+=_;case"rectRot":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+d,n-a),t.lineTo(e+a,n+d),t.lineTo(e-d,n+a),t.closePath();break;case"crossRot":s+=_;case"cross":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a);break;case"star":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a),s+=_,a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a);break;case"line":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d);break;case"dash":t.moveTo(e,n),t.lineTo(e+Math.cos(s)*o,n+Math.sin(s)*o);break}t.fill()}function Rt(t,e,n,o){t.save();const r=e.length;let i=0,s=o;for(let a=0;a<r;a++){const d=n[Math.min(a,n.length-1)];t.font=d.string;const l=e[a];i=Math.max(i,t.measureText(l).width+o),s+=d.lineHeight}return t.restore(),{width:i,height:s}}function Et(t,{x:e,y:n},o,r){t.beginPath();let i=0;o.forEach(function(s,a){const d=r[Math.min(a,r.length-1)],l=d.lineHeight;t.font=d.string,t.strokeText(s,e,n+l/2+i),i+=l}),t.stroke()}function Wt(t,{x:e,y:n},o,{fonts:r,colors:i}){let s=0;o.forEach(function(a,d){const l=i[Math.min(d,i.length-1)],c=r[Math.min(d,r.length-1)],u=c.lineHeight;t.beginPath(),t.font=c.string,t.fillStyle=l,t.fillText(a,e,n+u/2+s),s+=u,t.fill()})}function Lt(t,e){const n=Ce(t)?t:e;return Ce(n)?F(n,0,1):1}const ve={xScaleID:{min:"xMin",max:"xMax",start:"left",end:"right",startProp:"x",endProp:"x2"},yScaleID:{min:"yMin",max:"yMax",start:"bottom",end:"top",startProp:"y",endProp:"y2"}};function O(t,e,n){return e=typeof e=="number"?e:t.parse(e),$e(e)?t.getPixelForValue(e):n}function j(t,e,n){const o=e[n];if(o||n==="scaleID")return o;const r=n.charAt(0),i=Object.values(t).filter(s=>s.axis&&s.axis===r);return i.length?i[0].id:r}function et(t,e){if(t){const n=t.options.reverse,o=O(t,e.min,n?e.end:e.start),r=O(t,e.max,n?e.start:e.end);return{start:o,end:r}}}function tt(t,e){const{chartArea:n,scales:o}=t,r=o[j(o,e,"xScaleID")],i=o[j(o,e,"yScaleID")];let s=n.width/2,a=n.height/2;return r&&(s=O(r,e.xValue,r.left+r.width/2)),i&&(a=O(i,e.yValue,i.top+i.height/2)),{x:s,y:a}}function we(t,e){const n=t.scales,o=n[j(n,e,"xScaleID")],r=n[j(n,e,"yScaleID")];if(!o&&!r)return{};let{left:i,right:s}=o||t.chartArea,{top:a,bottom:d}=r||t.chartArea;const l=Ae(o,{min:e.xMin,max:e.xMax,start:i,end:s});i=l.start,s=l.end;const c=Ae(r,{min:e.yMin,max:e.yMax,start:d,end:a});return a=c.start,d=c.end,{x:i,y:a,x2:s,y2:d,width:s-i,height:d-a,centerX:i+(s-i)/2,centerY:a+(d-a)/2}}function nt(t,e){if(!Ke(e)){const n=we(t,e);let o=e.radius;(!o||isNaN(o))&&(o=Math.min(n.width,n.height)/2,e.radius=o);const r=o*2,i=n.centerX+e.xAdjust,s=n.centerY+e.yAdjust;return{x:i-o,y:s-o,x2:i+o,y2:s+o,centerX:i,centerY:s,width:r,height:r,radius:o}}return _t(t,e)}function Yt(t,e){const{scales:n,chartArea:o}=t,r=n[e.scaleID],i={x:o.left,y:o.top,x2:o.right,y2:o.bottom};return r?zt(r,i,e):Xt(n,i,e),i}function ot(t,e,n){const o=we(t,e);return o.initProperties=H(t,o,e,n),o.elements=[{type:"label",optionScope:"label",properties:Nt(t,o,e),initProperties:o.initProperties}],o}function _t(t,e){const n=tt(t,e),o=e.radius*2;return{x:n.x-e.radius+e.xAdjust,y:n.y-e.radius+e.yAdjust,x2:n.x+e.radius+e.xAdjust,y2:n.y+e.radius+e.yAdjust,centerX:n.x+e.xAdjust,centerY:n.y+e.yAdjust,radius:e.radius,width:o,height:o}}function Ae(t,e){const n=et(t,e)||e;return{start:Math.min(n.start,n.end),end:Math.max(n.start,n.end)}}function zt(t,e,n){const o=O(t,n.value,NaN),r=O(t,n.endValue,o);t.isHorizontal()?(e.x=o,e.x2=r):(e.y=o,e.y2=r)}function Xt(t,e,n){for(const o of Object.keys(ve)){const r=t[j(t,n,o)];if(r){const{min:i,max:s,start:a,end:d,startProp:l,endProp:c}=ve[o],u=et(r,{min:n[i],max:n[s],start:r[a],end:r[d]});e[l]=u.start,e[c]=u.end}}}function Bt({properties:t,options:e},n,o,r){const{x:i,x2:s,width:a}=t;return rt({start:i,end:s,size:a,borderWidth:e.borderWidth},{position:o.x,padding:{start:r.left,end:r.right},adjust:e.label.xAdjust,size:n.width})}function Ht({properties:t,options:e},n,o,r){const{y:i,y2:s,height:a}=t;return rt({start:i,end:s,size:a,borderWidth:e.borderWidth},{position:o.y,padding:{start:r.top,end:r.bottom},adjust:e.label.yAdjust,size:n.height})}function rt(t,e){const{start:n,end:o,borderWidth:r}=t,{position:i,padding:{start:s,end:a},adjust:d}=e,l=o-r-n-s-a-e.size;return n+r/2+d+be(l,i)}function Nt(t,e,n){const o=n.label;o.backgroundColor="transparent",o.callout.display=!1;const r=ge(o.position),i=Q(o.padding),s=pe(t.ctx,o),a=Bt({properties:e,options:n},s,r,i),d=Ht({properties:e,options:n},s,r,i),l=s.width+i.width,c=s.height+i.height;return{x:a,y:d,x2:a+l,y2:d+c,width:l,height:c,centerX:a+l/2,centerY:d+c/2,rotation:o.rotation}}function I(t,e,n){const o=Math.cos(n),r=Math.sin(n),i=e.x,s=e.y;return{x:i+o*(t.x-i)-r*(t.y-s),y:s+r*(t.x-i)+o*(t.y-s)}}const ie=["enter","leave"],xe=ie.concat("click");function $t(t,e,n){e.listened=Qe(n,xe,e.listeners),e.moveListened=!1,e._getElements=ye,ie.forEach(o=>{T(n[o])&&(e.moveListened=!0)}),(!e.listened||!e.moveListened)&&e.annotations.forEach(o=>{!e.listened&&T(o.click)&&(e.listened=!0),e.moveListened||ie.forEach(r=>{T(o[r])&&(e.listened=!0,e.moveListened=!0)})})}function Vt(t,e,n){if(t.listened)switch(e.type){case"mousemove":case"mouseout":return Jt(t,e,n);case"click":return Ut(t,e,n)}}function Jt(t,e,n){if(!t.moveListened)return;let o;e.type==="mousemove"?o=ye(t,e,n.interaction):o=[];const r=t.hovered;t.hovered=o;const i={state:t,event:e};let s=De(i,"leave",r,o);return De(i,"enter",o,r)||s}function De({state:t,event:e},n,o,r){let i;for(const s of o)r.indexOf(s)<0&&(i=it(s.options[n]||t.listeners[n],s,e)||i);return i}function Ut(t,e,n){const o=t.listeners,r=ye(t,e,n.interaction);let i;for(const s of r)i=it(s.options.click||o.click,s,e)||i;return i}function it(t,e,n){return he(t,[e.$context,n])===!0}const K=["afterDraw","beforeDraw"];function qt(t,e,n){const o=e.visibleElements;e.hooked=Qe(n,K,e.hooks),e.hooked||o.forEach(r=>{e.hooked||K.forEach(i=>{T(r.options[i])&&(e.hooked=!0)})})}function je(t,e,n){if(t.hooked){const o=e.options[n]||t.hooks[n];return he(o,[e.$context])}}function Gt(t,e,n){const o=en(t.scales,e,n);let r=Ie(e,o,"min","suggestedMin");r=Ie(e,o,"max","suggestedMax")||r,r&&T(e.handleTickRangeOptions)&&e.handleTickRangeOptions()}function Kt(t,e){for(const n of t)Ft(n,e)}function Ie(t,e,n,o){if($e(e[n])&&!Qt(t.options,n,o)){const r=t[n]!==e[n];return t[n]=e[n],r}}function Qt(t,e,n){return p(t[e])||p(t[n])}function Ft(t,e){for(const n of["scaleID","xScaleID","yScaleID"]){const o=j(e,t,n);o&&!e[o]&&Zt(t,n)&&console.warn(`No scale found with id '${o}' for annotation '${t.id}'`)}}function Zt(t,e){if(e==="scaleID")return!0;const n=e.charAt(0);for(const o of["Min","Max","Value"])if(p(t[n+o]))return!0;return!1}function en(t,e,n){const o=e.axis,r=e.id,i=o+"ScaleID",s={min:X(e.min,Number.NEGATIVE_INFINITY),max:X(e.max,Number.POSITIVE_INFINITY)};for(const a of n)a.scaleID===r?Te(a,e,["value","endValue"],s):j(t,a,i)===r&&Te(a,e,[o+"Min",o+"Max",o+"Value"],s);return s}function Te(t,e,n,o){for(const r of n){const i=t[r];if(p(i)){const s=e.parse(i);o.min=Math.min(o.min,s),o.max=Math.max(o.max,s)}}}class L extends R{inRange(e,n,o,r){const{x:i,y:s}=I({x:e,y:n},this.getCenterPoint(r),w(-this.options.rotation));return Je({x:i,y:s},this.getProps(["x","y","x2","y2"],r),o,this.options.borderWidth)}getCenterPoint(e){return E(this,e)}draw(e){e.save(),me(e,this.getCenterPoint(),this.options.rotation),Ze(e,this,this.options),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return ot(e,n)}}L.id="boxAnnotation";L.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:{backgroundColor:"transparent",borderWidth:0,callout:{display:!1},color:"black",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:void 0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};L.defaultRoutes={borderColor:"color",backgroundColor:"color"};L.descriptors={label:{_fallback:!0}};const st=["left","bottom","top","right"];class N extends R{inRange(e,n,o,r){const{x:i,y:s}=I({x:e,y:n},this.getCenterPoint(r),w(-this.rotation));return Je({x:i,y:s},this.getProps(["x","y","x2","y2"],r),o,this.options.borderWidth)}getCenterPoint(e){return E(this,e)}draw(e){const n=this.options,o=!p(this._visible)||this._visible;!n.display||!n.content||!o||(e.save(),me(e,this.getCenterPoint(),this.rotation),nn(e,this),Ze(e,this,n),jt(e,cn(this),n),e.restore())}resolveElementProperties(e,n){let o;if(Ke(n))o=tt(e,n);else{const{centerX:a,centerY:d}=we(e,n);o={x:a,y:d}}const r=Q(n.padding),i=pe(e.ctx,n),s=tn(o,i,n,r);return{initProperties:H(e,s,n),pointX:o.x,pointY:o.y,...s,rotation:n.rotation}}}N.id="labelAnnotation";N.defaults={adjustScaleRange:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:0,callout:{borderCapStyle:"butt",borderColor:void 0,borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:1,display:!1,margin:5,position:"auto",side:5,start:"50%"},color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,init:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};N.defaultRoutes={borderColor:"color"};function tn(t,e,n,o){const r=e.width+o.width+n.borderWidth,i=e.height+o.height+n.borderWidth,s=ge(n.position,"center"),a=Oe(t.x,r,n.xAdjust,s.x),d=Oe(t.y,i,n.yAdjust,s.y);return{x:a,y:d,x2:a+r,y2:d+i,width:r,height:i,centerX:a+r/2,centerY:d+i/2}}function Oe(t,e,n=0,o){return t-be(e,o)+n}function nn(t,e){const{pointX:n,pointY:o,options:r}=e,i=r.callout,s=i&&i.display&&dn(e,i);if(!s||un(e,i,s))return;if(t.save(),t.beginPath(),!C(t,i))return t.restore();const{separatorStart:d,separatorEnd:l}=on(e,s),{sideStart:c,sideEnd:u}=sn(e,s,d);(i.margin>0||r.borderWidth===0)&&(t.moveTo(d.x,d.y),t.lineTo(l.x,l.y)),t.moveTo(c.x,c.y),t.lineTo(u.x,u.y);const f=I({x:n,y:o},e.getCenterPoint(),w(-e.rotation));t.lineTo(f.x,f.y),t.stroke(),t.restore()}function on(t,e){const{x:n,y:o,x2:r,y2:i}=t,s=rn(t,e);let a,d;return e==="left"||e==="right"?(a={x:n+s,y:o},d={x:a.x,y:i}):(a={x:n,y:o+s},d={x:r,y:a.y}),{separatorStart:a,separatorEnd:d}}function rn(t,e){const{width:n,height:o,options:r}=t,i=r.callout.margin+r.borderWidth/2;return e==="right"?n+i:e==="bottom"?o+i:-i}function sn(t,e,n){const{y:o,width:r,height:i,options:s}=t,a=s.callout.start,d=an(e,s.callout);let l,c;return e==="left"||e==="right"?(l={x:n.x,y:o+k(i,a)},c={x:l.x+d,y:l.y}):(l={x:n.x+k(r,a),y:n.y},c={x:l.x,y:l.y+d}),{sideStart:l,sideEnd:c}}function an(t,e){const n=e.side;return t==="left"||t==="top"?-n:n}function dn(t,e){const n=e.position;return st.includes(n)?n:ln(t,e)}function ln(t,e){const{x:n,y:o,x2:r,y2:i,width:s,height:a,pointX:d,pointY:l,centerX:c,centerY:u,rotation:f}=t,h={x:c,y:u},y=e.start,x=k(s,y),Y=k(a,y),g=[n,n+x,n+x,r],m=[o+Y,i,o,i],P=[];for(let v=0;v<4;v++){const ne=I({x:g[v],y:m[v]},h,w(f));P.push({position:st[v],distance:fe(ne,{x:d,y:l})})}return P.sort((v,ne)=>v.distance-ne.distance)[0].position}function cn({x:t,y:e,width:n,height:o,options:r}){const i=r.borderWidth/2,s=Q(r.padding);return{x:t+s.left+i,y:e+s.top+i,width:n-s.left-s.right-r.borderWidth,height:o-s.top-s.bottom-r.borderWidth}}function un(t,e,n){const{pointX:o,pointY:r}=t,i=e.margin;let s=o,a=r;return n==="left"?s+=i:n==="right"?s-=i:n==="top"?a+=i:n==="bottom"&&(a-=i),t.inRange(s,a)}const Se=(t,e,n)=>({x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}),se=(t,e,n)=>Se(e,n,Math.abs((t-e.y)/(n.y-e.y))).x,Re=(t,e,n)=>Se(e,n,Math.abs((t-e.x)/(n.x-e.x))).y,z=t=>t*t,fn=(t,e,{x:n,y:o,x2:r,y2:i},s)=>s==="y"?{start:Math.min(o,i),end:Math.max(o,i),value:e}:{start:Math.min(n,r),end:Math.max(n,r),value:t},Ee=(t,e,n,o)=>(1-o)*(1-o)*t+2*(1-o)*o*e+o*o*n,ae=(t,e,n,o)=>({x:Ee(t.x,e.x,n.x,o),y:Ee(t.y,e.y,n.y,o)}),We=(t,e,n,o)=>2*(1-o)*(e-t)+2*o*(n-e),Le=(t,e,n,o)=>-Math.atan2(We(t.x,e.x,n.x,o),We(t.y,e.y,n.y,o))+.5*b;class $ extends R{inRange(e,n,o,r){const i=this.options.borderWidth/2;if(o!=="x"&&o!=="y"){const s={mouseX:e,mouseY:n},{path:a,ctx:d}=this;if(a){C(d,this.options);const{chart:c}=this.$context,u=e*c.currentDevicePixelRatio,f=n*c.currentDevicePixelRatio,h=d.isPointInStroke(a,u,f)||de(this,s,r);return d.restore(),h}const l=z(i);return gn(this,s,l,r)||de(this,s,r)}return hn(this,{mouseX:e,mouseY:n},o,{hBorderWidth:i,useFinalPosition:r})}getCenterPoint(e){return E(this,e)}draw(e){const{x:n,y:o,x2:r,y2:i,cp:s,options:a}=this;if(e.save(),!C(e,a))return e.restore();W(e,a);const d=Math.sqrt(Math.pow(r-n,2)+Math.pow(i-o,2));if(a.curve&&s)return Cn(e,this,s,d),e.restore();const{startOpts:l,endOpts:c,startAdjust:u,endAdjust:f}=at(this),h=Math.atan2(i-o,r-n);e.translate(n,o),e.rotate(h),e.beginPath(),e.moveTo(0+u,0),e.lineTo(d-f,0),e.shadowColor=a.borderShadowColor,e.stroke(),le(e,0,u,l),le(e,d,-f,c),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){const o=Yt(e,n),{x:r,y:i,x2:s,y2:a}=o,d=yn(o,e.chartArea),l=d?bn({x:r,y:i},{x:s,y:a},e.chartArea):{x:r,y:i,x2:s,y2:a,width:Math.abs(s-r),height:Math.abs(a-i)};if(l.centerX=(s+r)/2,l.centerY=(a+i)/2,l.initProperties=H(e,l,n),n.curve){const u={x:l.x,y:l.y},f={x:l.x2,y:l.y2};l.cp=kn(l,n,fe(u,f))}const c=mn(e,l,n.label);return c._visible=d,l.elements=[{type:"label",optionScope:"label",properties:c,initProperties:l.initProperties}],l}}$.id="lineAnnotation";const Ye={backgroundColor:void 0,backgroundShadowColor:void 0,borderColor:void 0,borderDash:void 0,borderDashOffset:void 0,borderShadowColor:void 0,borderWidth:void 0,display:void 0,fill:void 0,length:void 0,shadowBlur:void 0,shadowOffsetX:void 0,shadowOffsetY:void 0,width:void 0};$.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},Ye),fill:!1,length:12,start:Object.assign({},Ye),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:2,curve:!1,controlPoint:{y:"-50%"},display:!0,endValue:void 0,init:void 0,label:{backgroundColor:"rgba(0,0,0,0.8)",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderColor:"black",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:6,borderShadowColor:"transparent",borderWidth:0,callout:Object.assign({},N.defaults.callout),color:"#fff",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},scaleID:void 0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,value:void 0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};$.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}};$.defaultRoutes={borderColor:"color"};function hn(t,{mouseX:e,mouseY:n},o,{hBorderWidth:r,useFinalPosition:i}){const s=fn(e,n,t.getProps(["x","y","x2","y2"],i),o);return s.value>=s.start-r&&s.value<=s.end+r||de(t,{mouseX:e,mouseY:n},i,o)}function yn({x:t,y:e,x2:n,y2:o},{top:r,right:i,bottom:s,left:a}){return!(t<a&&n<a||t>i&&n>i||e<r&&o<r||e>s&&o>s)}function _e({x:t,y:e},n,{top:o,right:r,bottom:i,left:s}){return t<s&&(e=Re(s,{x:t,y:e},n),t=s),t>r&&(e=Re(r,{x:t,y:e},n),t=r),e<o&&(t=se(o,{x:t,y:e},n),e=o),e>i&&(t=se(i,{x:t,y:e},n),e=i),{x:t,y:e}}function bn(t,e,n){const{x:o,y:r}=_e(t,e,n),{x:i,y:s}=_e(e,t,n);return{x:o,y:r,x2:i,y2:s,width:Math.abs(i-o),height:Math.abs(s-r)}}function gn(t,{mouseX:e,mouseY:n},o=A,r){const{x:i,y:s,x2:a,y2:d}=t.getProps(["x","y","x2","y2"],r),l=a-i,c=d-s,u=z(l)+z(c),f=u===0?-1:((e-i)*l+(n-s)*c)/u;let h,y;return f<0?(h=i,y=s):f>1?(h=a,y=d):(h=i+f*l,y=s+f*c),z(e-h)+z(n-y)<=o}function de(t,{mouseX:e,mouseY:n},o,r){const i=t.label;return i.options.display&&i.inRange(e,n,r,o)}function mn(t,e,n){const o=n.borderWidth,r=Q(n.padding),i=pe(t.ctx,n),s=i.width+r.width+o,a=i.height+r.height+o;return wn(e,n,{width:s,height:a,padding:r},t.chartArea)}function pn(t){const{x:e,y:n,x2:o,y2:r}=t,i=Math.atan2(r-n,o-e);return i>b/2?i-b:i<b/-2?i+b:i}function wn(t,e,n,o){const{width:r,height:i,padding:s}=n,{xAdjust:a,yAdjust:d}=e,l={x:t.x,y:t.y},c={x:t.x2,y:t.y2},u=e.rotation==="auto"?pn(t):w(e.rotation),f=xn(r,i,u),h=Sn(t,e,{labelSize:f,padding:s},o),y=t.cp?ae(l,t.cp,c,h):Se(l,c,h),x={size:f.w,min:o.left,max:o.right,padding:s.left},Y={size:f.h,min:o.top,max:o.bottom,padding:s.top},g=Xe(y.x,x)+a,m=Xe(y.y,Y)+d;return{x:g-r/2,y:m-i/2,x2:g+r/2,y2:m+i/2,centerX:g,centerY:m,pointX:y.x,pointY:y.y,width:r,height:i,rotation:ut(u)}}function xn(t,e,n){const o=Math.cos(n),r=Math.sin(n);return{w:Math.abs(t*o)+Math.abs(e*r),h:Math.abs(t*r)+Math.abs(e*o)}}function Sn(t,e,n,o){let r;const i=Mn(t,o);return e.position==="start"?r=ze({w:t.x2-t.x,h:t.y2-t.y},n,e,i):e.position==="end"?r=1-ze({w:t.x-t.x2,h:t.y-t.y2},n,e,i):r=be(1,e.position),r}function ze(t,e,n,o){const{labelSize:r,padding:i}=e,s=t.w*o.dx,a=t.h*o.dy,d=s>0&&(r.w/2+i.left-o.x)/s,l=a>0&&(r.h/2+i.top-o.y)/a;return F(Math.max(d,l),0,.25)}function Mn(t,e){const{x:n,x2:o,y:r,y2:i}=t,s=Math.min(r,i)-e.top,a=Math.min(n,o)-e.left,d=e.bottom-Math.max(r,i),l=e.right-Math.max(n,o);return{x:Math.min(a,l),y:Math.min(s,d),dx:a<=l?1:-1,dy:s<=d?1:-1}}function Xe(t,e){const{size:n,min:o,max:r,padding:i}=e,s=n/2;return n>r-o?(r+o)/2:(o>=t-i-s&&(t=o+i+s),r<=t+i+s&&(t=r-i-s),t)}function at(t){const e=t.options,n=e.arrowHeads&&e.arrowHeads.start,o=e.arrowHeads&&e.arrowHeads.end;return{startOpts:n,endOpts:o,startAdjust:Be(t,n),endAdjust:Be(t,o)}}function Be(t,e){if(!e||!e.display)return 0;const{length:n,width:o}=e,r=t.options.borderWidth/2,i={x:n,y:o+r};return Math.abs(se(0,i,{x:0,y:r}))}function le(t,e,n,o){if(!o||!o.display)return;const{length:r,width:i,fill:s,backgroundColor:a,borderColor:d}=o,l=Math.abs(e-r)+n;t.beginPath(),W(t,o),C(t,o),t.moveTo(l,-i),t.lineTo(e+n,0),t.lineTo(l,i),s===!0?(t.fillStyle=a||d,t.closePath(),t.fill(),t.shadowColor="transparent"):t.shadowColor=o.borderShadowColor,t.stroke()}function kn(t,e,n){const{x:o,y:r,x2:i,y2:s,centerX:a,centerY:d}=t,l=Math.atan2(s-r,i-o),c=ge(e.controlPoint,0),u={x:a+k(n,c.x,!1),y:d+k(n,c.y,!1)};return I(u,{x:a,y:d},l)}function He(t,{x:e,y:n},{angle:o,adjust:r},i){!i||!i.display||(t.save(),t.translate(e,n),t.rotate(o),le(t,0,-r,i),t.restore())}function Cn(t,e,n,o){const{x:r,y:i,x2:s,y2:a,options:d}=e,{startOpts:l,endOpts:c,startAdjust:u,endAdjust:f}=at(e),h={x:r,y:i},y={x:s,y:a},x=Le(h,n,y,0),Y=Le(h,n,y,1)-b,g=ae(h,n,y,u/o),m=ae(h,n,y,1-f/o),P=new Path2D;t.beginPath(),P.moveTo(g.x,g.y),P.quadraticCurveTo(n.x,n.y,m.x,m.y),t.shadowColor=d.borderShadowColor,t.stroke(P),e.path=P,e.ctx=t,He(t,g,{angle:x,adjust:u},l),He(t,m,{angle:Y,adjust:f},c)}class V extends R{inRange(e,n,o,r){const i=this.options.rotation,s=this.options.borderWidth;if(o!=="x"&&o!=="y")return Pn({x:e,y:n},this.getProps(["width","height","centerX","centerY"],r),i,s);const{x:a,y:d,x2:l,y2:c}=this.getProps(["x","y","x2","y2"],r),u=s/2,f=o==="y"?{start:d,end:c}:{start:a,end:l},h=I({x:e,y:n},this.getCenterPoint(r),w(-i));return h[o]>=f.start-u-A&&h[o]<=f.end+u+A}getCenterPoint(e){return E(this,e)}draw(e){const{width:n,height:o,centerX:r,centerY:i,options:s}=this;e.save(),me(e,this.getCenterPoint(),s.rotation),W(e,this.options),e.beginPath(),e.fillStyle=s.backgroundColor;const a=C(e,s);e.ellipse(r,i,o/2,n/2,b/2,0,2*b),e.fill(),a&&(e.shadowColor=s.borderShadowColor,e.stroke()),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return ot(e,n,!0)}}V.id="ellipseAnnotation";V.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:Object.assign({},L.defaults.label),rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};V.defaultRoutes={borderColor:"color",backgroundColor:"color"};V.descriptors={label:{_fallback:!0}};function Pn(t,e,n,o){const{width:r,height:i,centerX:s,centerY:a}=e,d=r/2,l=i/2;if(d<=0||l<=0)return!1;const c=w(n||0),u=o/2||0,f=Math.cos(c),h=Math.sin(c),y=Math.pow(f*(t.x-s)+h*(t.y-a),2),x=Math.pow(h*(t.x-s)-f*(t.y-a),2);return y/Math.pow(d+u,2)+x/Math.pow(l+u,2)<=1.0001}class ee extends R{inRange(e,n,o,r){const{x:i,y:s,x2:a,y2:d,width:l}=this.getProps(["x","y","x2","y2","width"],r),c=this.options.borderWidth;if(o!=="x"&&o!=="y")return kt({x:e,y:n},this.getCenterPoint(r),l/2,c);const u=c/2,f=o==="y"?{start:s,end:d,value:n}:{start:i,end:a,value:e};return f.value>=f.start-u&&f.value<=f.end+u}getCenterPoint(e){return E(this,e)}draw(e){const n=this.options,o=n.borderWidth;if(n.radius<.1)return;e.save(),e.fillStyle=n.backgroundColor,W(e,n);const r=C(e,n);Tt(e,this,this.centerX,this.centerY),r&&!Z(n.pointStyle)&&(e.shadowColor=n.borderShadowColor,e.stroke()),e.restore(),n.borderWidth=o}resolveElementProperties(e,n){const o=nt(e,n);return o.initProperties=H(e,o,n,!0),o}}ee.id="pointAnnotation";ee.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,pointStyle:"circle",radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};ee.defaultRoutes={borderColor:"color",backgroundColor:"color"};class te extends R{inRange(e,n,o,r){if(o!=="x"&&o!=="y")return this.options.radius>=.1&&this.elements.length>1&&An(this.elements,e,n,r);const i=I({x:e,y:n},this.getCenterPoint(r),w(-this.options.rotation)),s=this.elements.map(l=>o==="y"?l.bY:l.bX),a=Math.min(...s),d=Math.max(...s);return i[o]>=a&&i[o]<=d}getCenterPoint(e){return E(this,e)}draw(e){const{elements:n,options:o}=this;e.save(),e.beginPath(),e.fillStyle=o.backgroundColor,W(e,o);const r=C(e,o);let i=!0;for(const s of n)i?(e.moveTo(s.x,s.y),i=!1):e.lineTo(s.x,s.y);e.closePath(),e.fill(),r&&(e.shadowColor=o.borderShadowColor,e.stroke()),e.restore()}resolveElementProperties(e,n){const o=nt(e,n),{sides:r,rotation:i}=n,s=[],a=2*b/r;let d=i*Ve;for(let l=0;l<r;l++,d+=a){const c=vn(o,n,d);c.initProperties=H(e,o,n),s.push(c)}return o.elements=s,o}}te.id="polygonAnnotation";te.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,point:{radius:0},radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,sides:3,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};te.defaultRoutes={borderColor:"color",backgroundColor:"color"};function vn({centerX:t,centerY:e},{radius:n,borderWidth:o},r){const i=o/2,s=Math.sin(r),a=Math.cos(r),d={x:t+s*n,y:e-a*n};return{type:"point",optionScope:"point",properties:{x:d.x,y:d.y,centerX:d.x,centerY:d.y,bX:t+s*(n+i),bY:e-a*(n+i)}}}function An(t,e,n,o){let r=!1,i=t[t.length-1].getProps(["bX","bY"],o);for(const s of t){const a=s.getProps(["bX","bY"],o);a.bY>n!=i.bY>n&&e<(i.bX-a.bX)*(n-a.bY)/(i.bY-a.bY)+a.bX&&(r=!r),i=a}return r}const M={box:L,ellipse:V,label:N,line:$,point:ee,polygon:te};Object.keys(M).forEach(t=>{ct.describe(`elements.${M[t].id}`,{_fallback:"plugins.annotation.common"})});const Dn={update:Object.assign},jn=xe.concat(K),Ne=(t,e)=>B(e)?ue(t,e):t,ce=t=>t==="color"||t==="font";function Me(t="line"){return M[t]?t:(console.warn(`Unknown annotation type: '${t}', defaulting to 'line'`),"line")}function In(t,e,n,o){const r=On(t,n.animations,o),i=e.annotations,s=Wn(e.elements,i);for(let a=0;a<i.length;a++){const d=i[a],l=dt(s,a,d.type),c=d.setContext(En(t,l,d)),u=l.resolveElementProperties(t,c);u.skip=Tn(u),"elements"in u&&(Rn(l,u.elements,c,r),delete u.elements),p(l.x)||Object.assign(l,u),Object.assign(l,u.initProperties),u.options=lt(c),r.update(l,u)}}function Tn(t){return isNaN(t.x)||isNaN(t.y)}function On(t,e,n){return n==="reset"||n==="none"||n==="resize"?Dn:new mt(t,e)}function Rn(t,e,n,o){const r=t.elements||(t.elements=[]);r.length=e.length;for(let i=0;i<e.length;i++){const s=e[i],a=s.properties,d=dt(r,i,s.type,s.initProperties),l=n[s.optionScope].override(s);a.options=lt(l),o.update(d,a)}}function dt(t,e,n,o){const r=M[Me(n)];let i=t[e];return(!i||!(i instanceof r))&&(i=t[e]=new r,Object.assign(i,o)),i}function lt(t){const e=M[Me(t.type)],n={};n.id=t.id,n.type=t.type,n.drawTime=t.drawTime,Object.assign(n,ue(t,e.defaults),ue(t,e.defaultRoutes));for(const o of jn)n[o]=t[o];return n}function ue(t,e){const n={};for(const o of Object.keys(e)){const r=e[o],i=t[o];ce(o)&&D(i)?n[o]=i.map(s=>Ne(s,r)):n[o]=Ne(i,r)}return n}function En(t,e,n){return e.$context||(e.$context=Object.assign(Object.create(t.getContext()),{element:e,id:n.id,type:"annotation"}))}function Wn(t,e){const n=e.length,o=t.length;if(o<n){const r=n-o;t.splice(o,0,...new Array(r))}else o>n&&t.splice(n,o-n);return t}var Ln="2.2.1";const S=new Map,Yn=xe.concat(K);var Bn={id:"annotation",version:Ln,beforeRegister(){Ct("chart.js","3.7",oe.version)},afterRegister(){oe.register(M)},afterUnregister(){oe.unregister(M)},beforeInit(t){S.set(t,{annotations:[],elements:[],visibleElements:[],listeners:{},listened:!1,moveListened:!1,hooks:{},hooked:!1,hovered:[]})},beforeUpdate(t,e,n){const o=S.get(t),r=o.annotations=[];let i=n.annotations;B(i)?Object.keys(i).forEach(s=>{const a=i[s];B(a)&&(a.id=s,r.push(a))}):D(i)&&r.push(...i),Kt(r,t.scales)},afterDataLimits(t,e){const n=S.get(t);Gt(t,e.scale,n.annotations.filter(o=>o.display&&o.adjustScaleRange))},afterUpdate(t,e,n){const o=S.get(t);$t(t,o,n),In(t,o,n,e.mode),o.visibleElements=o.elements.filter(r=>!r.skip&&r.options.display),qt(t,o,n)},beforeDatasetsDraw(t,e,n){U(t,"beforeDatasetsDraw",n.clip)},afterDatasetsDraw(t,e,n){U(t,"afterDatasetsDraw",n.clip)},beforeDraw(t,e,n){U(t,"beforeDraw",n.clip)},afterDraw(t,e,n){U(t,"afterDraw",n.clip)},beforeEvent(t,e,n){const o=S.get(t);Vt(o,e.event,n)&&(e.changed=!0)},afterDestroy(t){S.delete(t)},_getState(t){return S.get(t)},defaults:{animations:{numbers:{properties:["x","y","x2","y2","width","height","centerX","centerY","pointX","pointY","radius"],type:"number"}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:"afterDatasetsDraw",init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:t=>!Yn.includes(t)&&t!=="init",annotations:{_allKeys:!1,_fallback:(t,e)=>`elements.${M[Me(e.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:ce,_fallback:!0},_indexable:ce}},additionalOptionScopes:[""]};function U(t,e,n){const{ctx:o,chartArea:r}=t,i=S.get(t);n&&ft(o,r);const s=_n(i.visibleElements,e).sort((a,d)=>a.element.options.z-d.element.options.z);for(const a of s)zn(o,r,i,a);n&&ht(o)}function _n(t,e){const n=[];for(const o of t)if(o.options.drawTime===e&&n.push({element:o,main:!0}),o.elements&&o.elements.length)for(const r of o.elements)r.options.display&&r.options.drawTime===e&&n.push({element:r});return n}function zn(t,e,n,o){const r=o.element;o.main?(je(n,r,"beforeDraw"),r.draw(t,e),je(n,r,"afterDraw")):r.draw(t,e)}const Hn=(t,e,n)=>{if(typeof t=="string")return t;const o=Number.parseInt(t.toString(),10);return o>999999?`${o/1e6}M`:o>999?`${o/1e3}k`:o};export{Bn as a,Hn as f};
|