@aceshooting/lyra-ui 26.0.0 → 28.0.0
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/CHANGELOG.md +55 -675
- package/README.md +285 -1130
- package/design-tokens.json +1 -1
- package/dist/ai/types.d.ts +5 -5
- package/dist/autoloader.js +1 -1
- package/dist/cli/agent-registry.mjs +1 -0
- package/dist/cli/component-inventory.mjs +1 -1
- package/dist/cli/css-declarations.mjs +1 -0
- package/dist/cli/init-agents.mjs +40 -0
- package/dist/cli/is-main-module.mjs +1 -0
- package/dist/cli/lyra-rename-ledger.mjs +1 -1
- package/dist/cli/lyra-ui.mjs +11 -0
- package/dist/cli/migrate-wa.mjs +12 -5
- package/dist/cli/migration-contract.json +1 -1
- package/dist/cli/migration-renames.mjs +2 -2
- package/dist/cli/migration-theme-scopes.mjs +3 -0
- package/dist/cli/theme-scope-vocabulary.generated.mjs +1 -0
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js +1 -1
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.d.ts +1 -1
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +2 -2
- package/dist/components/agent-tools/agent-question/agent-question.class.js +1 -1
- package/dist/components/agent-tools/agent-run/agent-run.class.js +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.class.js +1 -1
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js +1 -1
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.js +1 -1
- package/dist/components/agent-tools/background-runs/background-runs.class.js +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.class.js +1 -1
- package/dist/components/agent-tools/budget-meter/budget-meter.class.js +1 -1
- package/dist/components/agent-tools/change-review/change-review.class.js +1 -1
- package/dist/components/agent-tools/commit-card/commit-card.class.js +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.class.js +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +2 -2
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
- package/dist/components/agent-tools/connector-manager/connector-manager.class.d.ts +4 -2
- package/dist/components/agent-tools/connector-manager/connector-manager.class.js +6 -3
- package/dist/components/agent-tools/connector-manager/connector-manager.d.ts +1 -1
- package/dist/components/agent-tools/connector-manager/connector-manager.js +1 -1
- package/dist/components/agent-tools/connector-manager/connector-manager.styles.js +1 -1
- package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +2 -2
- package/dist/components/agent-tools/context-inspector/context-inspector.class.js +6 -6
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +8 -33
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js +27 -4
- package/dist/components/agent-tools/eval-dataset/eval-dataset.d.ts +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.js +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +1 -1
- package/dist/components/agent-tools/eval-result/eval-result.class.js +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +1 -1
- package/dist/components/agent-tools/mcp-app/mcp-app.class.js +1 -1
- package/dist/components/agent-tools/permission-grant/permission-grant.class.d.ts +4 -2
- package/dist/components/agent-tools/permission-grant/permission-grant.class.js +6 -3
- package/dist/components/agent-tools/permission-grant/permission-grant.d.ts +1 -1
- package/dist/components/agent-tools/permission-grant/permission-grant.js +1 -1
- package/dist/components/agent-tools/permission-grant/permission-grant.styles.js +1 -1
- package/dist/components/agent-tools/permission-rules/permission-rules.class.js +1 -1
- package/dist/components/agent-tools/policy-summary/policy-summary.class.js +1 -1
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts +1 -1
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +2 -2
- package/dist/components/agent-tools/result-card/result-field.class.js +1 -1
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts +3 -1
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js +1 -1
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js +1 -1
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +2 -2
- package/dist/components/agent-tools/task-list/task-list.class.d.ts +2 -2
- package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
- package/dist/components/agent-tools/test-results/test-results.class.js +1 -1
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +15 -9
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +1 -1
- package/dist/components/agent-tools/tool-call-block/tool-call-block.class.d.ts +2 -2
- package/dist/components/agent-tools/tool-call-block/tool-call-block.class.js +1 -1
- package/dist/components/agent-tools/tool-call-block/tool-call-block.styles.js +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +2 -7
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-constraints.js +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +3 -5
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +1 -1
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.d.ts +2 -5
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.js +1 -1
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +1 -1
- package/dist/components/agent-tools/tool-result-view/registry.d.ts +4 -12
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +2 -2
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +1 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js +1 -1
- package/dist/components/agent-tools/tool-status.d.ts +7 -0
- package/dist/components/agent-tools/tool-status.styles.js +1 -0
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.d.ts +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.js +1 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.class.js +2 -2
- package/dist/components/charts/chart/box-plot.class.d.ts +1 -1
- package/dist/components/charts/chart/box-plot.class.js +1 -1
- package/dist/components/charts/chart/box-plot.styles.js +1 -1
- package/dist/components/charts/chart/chart-surface-shared.js +1 -0
- package/dist/components/charts/chart/chart-surface.styles.js +1 -1
- package/dist/components/charts/chart/chart-table-sampling.js +1 -1
- package/dist/components/charts/chart/chart-token-cache.js +2 -2
- package/dist/components/charts/chart/chart.class.d.ts +3 -3
- package/dist/components/charts/chart/chart.class.js +3 -3
- package/dist/components/charts/chart/chart.styles.js +1 -1
- package/dist/components/charts/chart/histogram.class.js +1 -1
- package/dist/components/charts/chart/lite-chart.class.d.ts +1 -1
- package/dist/components/charts/chart/lite-chart.class.js +4 -4
- package/dist/components/conversation/agent-workspace/agent-workspace.class.js +1 -1
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js +1 -1
- package/dist/components/conversation/branch-picker/branch-picker.class.js +1 -1
- package/dist/components/conversation/catalog-picker-element.d.ts +28 -13
- package/dist/components/conversation/catalog-picker-element.js +1 -1
- package/dist/components/conversation/catalog-picker-trigger.styles.js +1 -0
- package/dist/components/conversation/chat-composer/chat-composer.class.js +1 -1
- package/dist/components/conversation/chat-message/chat-message.class.js +1 -1
- package/dist/components/conversation/chat-message/chat-message.styles.js +1 -1
- package/dist/components/conversation/chat-viewport/chat-viewport.class.d.ts +1 -1
- package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
- package/dist/components/conversation/checkpoint/checkpoint.class.js +1 -1
- package/dist/components/conversation/code-block/code-block-base.class.js +1 -1
- package/dist/components/conversation/code-block/code-block-core.class.js +1 -1
- package/dist/components/conversation/code-block/code-block-shared.js +1 -1
- package/dist/components/conversation/code-block/code-block.class.js +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.class.js +1 -1
- package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
- package/dist/components/conversation/handoff-divider/handoff-divider.class.js +1 -1
- package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
- package/dist/components/conversation/markdown/markdown-code-header.js +1 -1
- package/dist/components/conversation/markdown/markdown-core.class.js +1 -1
- package/dist/components/conversation/markdown/markdown.class.js +1 -1
- package/dist/components/conversation/message-actions/message-actions.class.js +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.class.js +1 -1
- package/dist/components/conversation/message-parts/message-parts.class.js +1 -1
- package/dist/components/conversation/model-select/model-select.class.d.ts +7 -34
- package/dist/components/conversation/model-select/model-select.class.js +3 -3
- package/dist/components/conversation/model-select/model-select.styles.js +1 -1
- package/dist/components/conversation/model-settings-panel/model-settings-panel.class.js +1 -1
- package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +7 -2
- package/dist/components/conversation/prompt-input/prompt-input.class.js +5 -2
- package/dist/components/conversation/prompt-queue/prompt-queue.class.js +1 -1
- package/dist/components/conversation/push-to-talk/push-to-talk.class.js +1 -1
- package/dist/components/conversation/realtime-session/realtime-session.class.js +1 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +1 -1
- package/dist/components/conversation/stream-status/stream-status.class.js +1 -1
- package/dist/components/conversation/suggestion-chips/suggestion-chips.class.js +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.js +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -1
- package/dist/components/conversation/typing-indicator/typing-indicator.class.js +1 -1
- package/dist/components/conversation/usage-badge/usage-badge.class.js +1 -1
- package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +10 -27
- package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
- package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
- package/dist/components/data/calendar/calendar.class.js +1 -1
- package/dist/components/data/condition-builder/condition-builder.class.js +1 -1
- package/dist/components/data/context-meter/context-meter.class.js +1 -1
- package/dist/components/data/data-grid/data-grid.class.d.ts +2 -2
- package/dist/components/data/data-grid/data-grid.class.js +3 -3
- package/dist/components/data/document-library/document-library.class.d.ts +2 -2
- package/dist/components/data/document-library/document-library.class.js +2 -2
- package/dist/components/data/env-list/env-list.class.js +1 -1
- package/dist/components/data/file-tree/file-tree.class.d.ts +2 -2
- package/dist/components/data/file-tree/file-tree.class.js +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.js +1 -1
- package/dist/components/data/flow-controls/flow-controls.class.js +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.class.js +1 -1
- package/dist/components/data/flow-node/flow-node.class.js +1 -1
- package/dist/components/data/flow-run-status/flow-run-status.class.js +1 -1
- package/dist/components/data/funnel/funnel.class.js +1 -1
- package/dist/components/data/gauge/gauge.class.js +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +3 -3
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
- package/dist/components/data/heatmap/heatmap.class.js +2 -2
- package/dist/components/data/pagination/pagination.class.d.ts +2 -0
- package/dist/components/data/pagination/pagination.class.js +1 -1
- package/dist/components/data/pagination/pagination.styles.js +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.js +1 -1
- package/dist/components/data/sparkline/sparkline.class.js +1 -1
- package/dist/components/data/stat/stat.class.js +1 -1
- package/dist/components/data/table/table.class.d.ts +33 -197
- package/dist/components/data/table/table.class.js +6 -4
- package/dist/components/data/table/table.styles.js +1 -1
- package/dist/components/data/timeline/timeline.class.js +1 -1
- package/dist/components/data/tree/tree.class.js +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.js +1 -1
- package/dist/components/forms/button/button.class.d.ts +3 -3
- package/dist/components/forms/button/button.class.js +1 -1
- package/dist/components/forms/catalog-picker-base.js +1 -1
- package/dist/components/forms/checkbox/checkbox.class.d.ts +13 -34
- package/dist/components/forms/checkbox/checkbox.class.js +3 -3
- package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +3 -3
- package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
- package/dist/components/forms/code-editor/code-editor.class.js +1 -1
- package/dist/components/forms/color-picker/color-picker.class.d.ts +8 -4
- package/dist/components/forms/color-picker/color-picker.class.js +2 -2
- package/dist/components/forms/combobox/combobox.class.d.ts +6 -6
- package/dist/components/forms/combobox/combobox.class.js +3 -2
- package/dist/components/forms/combobox/option.class.d.ts +3 -0
- package/dist/components/forms/combobox/option.class.js +2 -2
- package/dist/components/forms/country-picker/country-picker.class.js +1 -1
- package/dist/components/forms/currency-picker/currency-picker.class.js +1 -1
- package/dist/components/forms/date-picker/date-input.class.d.ts +10 -11
- package/dist/components/forms/date-picker/date-input.class.js +4 -3
- package/dist/components/forms/date-picker/date-input.styles.js +1 -1
- package/dist/components/forms/date-picker/date-picker.class.d.ts +6 -0
- package/dist/components/forms/date-picker/date-picker.class.js +1 -1
- package/dist/components/forms/date-picker/date-picker.styles.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +7 -4
- package/dist/components/forms/emoji-picker/emoji-picker.class.js +5 -5
- package/dist/components/forms/icon-button/icon-button.class.d.ts +4 -0
- package/dist/components/forms/icon-button/icon-button.class.js +1 -1
- package/dist/components/forms/icon-button/icon-button.styles.js +1 -1
- package/dist/components/forms/input/input-shared.js +1 -1
- package/dist/components/forms/input/input.class.js +1 -1
- package/dist/components/forms/input/input.styles.js +1 -1
- package/dist/components/forms/input/native-time-input.class.js +1 -1
- package/dist/components/forms/input/number-input.class.js +1 -1
- package/dist/components/forms/input/time-input.class.d.ts +1 -1
- package/dist/components/forms/input/time-input.class.js +1 -1
- package/dist/components/forms/input/time-input.styles.js +1 -1
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts +5 -5
- package/dist/components/forms/locale-picker/locale-picker.class.js +1 -1
- package/dist/components/forms/otp-input/otp-input.class.js +2 -1
- package/dist/components/forms/phone-input/phone-input.class.d.ts +7 -9
- package/dist/components/forms/phone-input/phone-input.class.js +6 -5
- package/dist/components/forms/phone-input/phone-input.styles.js +1 -1
- package/dist/components/forms/radio/radio-group.class.d.ts +4 -4
- package/dist/components/forms/radio/radio-group.class.js +1 -1
- package/dist/components/forms/radio/radio.class.d.ts +11 -19
- package/dist/components/forms/radio/radio.class.js +2 -2
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts +3 -5
- package/dist/components/forms/rubric-form/rubric-form.class.js +4 -4
- package/dist/components/forms/select/select.class.d.ts +5 -7
- package/dist/components/forms/select/select.class.js +3 -2
- package/dist/components/forms/signature-pad/signature-pad.class.js +1 -1
- package/dist/components/forms/slider/slider.class.d.ts +3 -3
- package/dist/components/forms/slider/slider.class.js +1 -1
- package/dist/components/forms/slider/slider.styles.js +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
- package/dist/components/forms/switch/switch.class.d.ts +11 -36
- package/dist/components/forms/switch/switch.class.js +2 -2
- package/dist/components/forms/textarea/textarea.class.js +2 -1
- package/dist/components/forms/textarea/textarea.styles.js +1 -1
- package/dist/components/forms/time-range/time-range.class.d.ts +5 -3
- package/dist/components/forms/time-range/time-range.class.js +1 -1
- package/dist/components/forms/time-range/time-range.styles.js +1 -1
- package/dist/components/forms/time-zone-picker/time-zone-picker.class.js +1 -1
- package/dist/components/forms/toggle-group/toggle-group.class.d.ts +2 -2
- package/dist/components/forms/toggle-group/toggle-group.class.js +1 -1
- package/dist/components/forms/token-input/token-input.class.d.ts +3 -3
- package/dist/components/forms/token-input/token-input.class.js +1 -1
- package/dist/components/forms/unit-picker/unit-picker.class.js +1 -1
- package/dist/components/layout/app-rail/app-rail-item.class.js +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +71 -8
- package/dist/components/layout/app-rail/app-rail.class.js +16 -4
- package/dist/components/layout/app-rail/app-rail.styles.js +1 -1
- package/dist/components/layout/app-rail-group/app-rail-group.class.js +1 -1
- package/dist/components/layout/breadcrumb/breadcrumb-item.class.js +1 -1
- package/dist/components/layout/breadcrumb/breadcrumb.class.js +1 -1
- package/dist/components/layout/card/card.class.js +1 -1
- package/dist/components/layout/carousel/carousel.class.js +1 -1
- package/dist/components/layout/command-palette/command-palette.class.d.ts +6 -2
- package/dist/components/layout/command-palette/command-palette.class.js +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +1 -1
- package/dist/components/layout/details/accordion-item.class.js +1 -1
- package/dist/components/layout/details/accordion.class.js +1 -1
- package/dist/components/layout/details/details.class.js +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.d.ts +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.js +1 -1
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
- package/dist/components/layout/filter-bar/filter-bar.class.d.ts +3 -2
- package/dist/components/layout/filter-bar/filter-bar.class.js +18 -15
- package/dist/components/layout/filter-bar/filter-bar.styles.js +1 -1
- package/dist/components/layout/menu/menu.class.d.ts +1 -1
- package/dist/components/layout/menu/menu.class.js +1 -1
- package/dist/components/layout/menubar/menubar.class.js +1 -1
- package/dist/components/layout/multi-split/multi-split.class.d.ts +1 -1
- package/dist/components/layout/multi-split/multi-split.class.js +1 -1
- package/dist/components/layout/navigation-menu/navigation-menu.class.js +1 -1
- package/dist/components/layout/navigation-menu-item/navigation-menu-item.class.js +1 -1
- package/dist/components/layout/page/page.class.d.ts +1 -1
- package/dist/components/layout/page/page.class.js +1 -1
- package/dist/components/layout/reorder-list/reorder-item.class.js +1 -1
- package/dist/components/layout/reorder-list/reorder-list.class.js +1 -1
- package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +1 -1
- package/dist/components/layout/responsive-panel/responsive-panel.class.js +1 -1
- package/dist/components/layout/scroller/scroller.class.js +1 -1
- package/dist/components/layout/segmented/segmented.class.d.ts +7 -4
- package/dist/components/layout/segmented/segmented.class.js +1 -1
- package/dist/components/layout/segmented/segmented.styles.js +1 -1
- package/dist/components/layout/split-panel/split-panel.class.js +1 -1
- package/dist/components/layout/stepper/stepper.class.js +2 -2
- package/dist/components/layout/tab-group/tab-group.class.js +1 -1
- package/dist/components/layout/tab-group/tab.class.js +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
- package/dist/components/layout/virtual-list/virtual-list.styles.js +1 -1
- package/dist/components/layout/widget/widget.class.d.ts +1 -1
- package/dist/components/layout/widget/widget.class.js +3 -3
- package/dist/components/media/animated-image/animated-image.class.js +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.js +1 -1
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js +2 -2
- package/dist/components/media/av-player/av-player.class.js +1 -1
- package/dist/components/media/avatar-group/avatar-group.class.js +1 -1
- package/dist/components/media/drop-zone/drop-zone.class.d.ts +10 -0
- package/dist/components/media/drop-zone/drop-zone.class.js +2 -2
- package/dist/components/media/file-icon/file-icon.class.js +1 -1
- package/dist/components/media/file-input/file-input.class.d.ts +3 -3
- package/dist/components/media/file-input/file-input.class.js +2 -2
- package/dist/components/media/file-input/file-intake.d.ts +5 -1
- package/dist/components/media/file-input/file-intake.js +1 -1
- package/dist/components/media/flag/flag.class.js +1 -1
- package/dist/components/media/image-comparer/image-comparer.class.js +1 -1
- package/dist/components/media/image-viewer/image-viewer.class.d.ts +2 -1
- package/dist/components/media/image-viewer/image-viewer.class.js +4 -2
- package/dist/components/media/image-viewer/image-viewer.styles.js +1 -1
- package/dist/components/media/lightbox/lightbox.class.js +1 -1
- package/dist/components/media/map/map.class.js +2 -2
- package/dist/components/media/media-card/media-card.class.js +1 -1
- package/dist/components/media/pan-zoom/pan-zoom.class.js +1 -1
- package/dist/components/media/qr-code/qr-code-loader.js +1 -1
- package/dist/components/media/qr-code/qr-code.class.d.ts +2 -2
- package/dist/components/media/qr-code/qr-code.class.js +1 -1
- package/dist/components/media/sequence-playback/sequence-playback.class.js +1 -1
- package/dist/components/media/video/video.class.js +3 -3
- package/dist/components/media/video-playlist/video-playlist.class.js +1 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +2 -2
- package/dist/components/media/zoomable-frame/zoomable-frame.class.js +1 -1
- package/dist/components/overlays/alert/alert.class.d.ts +3 -3
- package/dist/components/overlays/alert/alert.class.js +1 -1
- package/dist/components/overlays/badge/badge.class.d.ts +2 -2
- package/dist/components/overlays/badge/badge.class.js +1 -1
- package/dist/components/overlays/badge/tag.class.d.ts +3 -1
- package/dist/components/overlays/badge/tag.class.js +3 -2
- package/dist/components/overlays/badge/tag.styles.js +1 -1
- package/dist/components/overlays/callout/callout.class.d.ts +2 -2
- package/dist/components/overlays/callout/callout.class.js +1 -1
- package/dist/components/overlays/chip/chip-group.class.js +1 -1
- package/dist/components/overlays/chip/chip.class.d.ts +4 -2
- package/dist/components/overlays/chip/chip.class.js +2 -2
- package/dist/components/overlays/context-menu/context-menu.class.js +1 -1
- package/dist/components/overlays/dialog/confirm.js +1 -1
- package/dist/components/overlays/dialog/dialog.class.d.ts +1 -1
- package/dist/components/overlays/dialog/dialog.class.js +1 -1
- package/dist/components/overlays/kbd/kbd.class.js +1 -1
- package/dist/components/overlays/overlay/overlay-shared.d.ts +9 -0
- package/dist/components/overlays/overlay/overlay-shared.js +1 -1
- package/dist/components/overlays/overlay/popover.class.d.ts +2 -2
- package/dist/components/overlays/overlay/popover.class.js +1 -1
- package/dist/components/overlays/overlay/tooltip.class.d.ts +1 -1
- package/dist/components/overlays/overlay/tooltip.class.js +1 -1
- package/dist/components/overlays/progress/progress-bar.class.d.ts +5 -22
- package/dist/components/overlays/progress/progress-bar.class.js +4 -4
- package/dist/components/overlays/progress/progress-base.d.ts +25 -0
- package/dist/components/overlays/progress/progress-base.js +1 -0
- package/dist/components/overlays/progress/progress-ring.class.d.ts +3 -24
- package/dist/components/overlays/progress/progress-ring.class.js +4 -4
- package/dist/components/overlays/rating/rating.class.d.ts +3 -3
- package/dist/components/overlays/rating/rating.class.js +1 -1
- package/dist/components/overlays/skeleton/skeleton.class.js +1 -1
- package/dist/components/overlays/spinner/spinner.class.js +1 -1
- package/dist/components/overlays/toast/toast-item.class.js +1 -1
- package/dist/components/overlays/toast/toast.class.js +1 -1
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts +4 -2
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js +4 -4
- package/dist/components/retrieval/citation-badge/citation-badge.class.js +1 -1
- package/dist/components/retrieval/claim-evidence/claim-evidence.class.js +1 -1
- package/dist/components/retrieval/community-card/community-card.class.js +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +1 -1
- package/dist/components/retrieval/entity-card/entity-card.class.js +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.class.js +1 -1
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +1 -1
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.js +1 -1
- package/dist/components/retrieval/graph/graph-canvas.js +1 -1
- package/dist/components/retrieval/graph/graph-model.js +1 -1
- package/dist/components/retrieval/graph/graph.class.d.ts +1 -3
- package/dist/components/retrieval/graph/graph.class.js +1 -1
- package/dist/components/retrieval/graph-legend/graph-legend.class.js +1 -1
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts +1 -1
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.js +2 -2
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +1 -1
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +1 -1
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +2 -2
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +1 -1
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +1 -0
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -1
- package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts +6 -2
- package/dist/components/retrieval/memory-panel/memory-panel.class.js +2 -2
- package/dist/components/retrieval/memory-panel/memory-panel.styles.js +1 -1
- package/dist/components/retrieval/mind-map/mind-map.class.js +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +1 -1
- package/dist/components/retrieval/node-palette/node-palette.class.js +1 -1
- package/dist/components/retrieval/path-strip/path-strip.class.js +1 -1
- package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +1 -1
- package/dist/components/retrieval/provenance-panel/provenance-panel.class.js +1 -1
- package/dist/components/retrieval/rag-answer/rag-answer.class.js +1 -1
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +1 -1
- package/dist/components/retrieval/research-progress/research-progress.class.d.ts +5 -1
- package/dist/components/retrieval/research-progress/research-progress.class.js +3 -3
- package/dist/components/retrieval/research-progress/research-progress.d.ts +1 -1
- package/dist/components/retrieval/research-progress/research-progress.js +1 -1
- package/dist/components/retrieval/research-progress/research-progress.styles.js +1 -1
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.d.ts +6 -2
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.js +2 -2
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.js +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +2 -2
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +3 -2
- package/dist/components/retrieval/retrieval-search/retrieval-search.class.js +3 -3
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts +6 -2
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +2 -2
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +1 -1
- package/dist/components/retrieval/source-card/source-card.class.js +1 -1
- package/dist/components/retrieval/source-list/source-list.class.js +1 -1
- package/dist/components/retrieval/source-picker/source-picker.class.js +1 -1
- package/dist/components/utility/copy-button/copy-button.class.js +1 -1
- package/dist/components/utility/diff-view/diff-view.class.js +1 -1
- package/dist/components/utility/export-button/export-button.class.d.ts +1 -1
- package/dist/components/utility/export-button/export-button.class.js +1 -1
- package/dist/components/utility/icon/dompurify-loader.js +1 -1
- package/dist/components/utility/icon/icon.class.js +1 -1
- package/dist/components/utility/json-viewer/json-viewer.class.js +2 -2
- package/dist/components/utility/known-date/known-date.class.js +1 -1
- package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
- package/dist/components/utility/mutation-observer/mutation-observer.class.js +1 -1
- package/dist/components/utility/poll-status/poll-status.class.js +1 -1
- package/dist/components/utility/random-content/random-content.class.d.ts +1 -1
- package/dist/components/utility/random-content/random-content.class.js +1 -1
- package/dist/components/utility/tour/tour.class.d.ts +1 -1
- package/dist/components/utility/tour/tour.class.js +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +3 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +1 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts +3 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.class.js +2 -2
- package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts +2 -2
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js +4 -18
- package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +2 -2
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +4 -18
- package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +1 -1
- package/dist/components/viewers/document-compare/document-compare.class.js +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.d.ts +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.js +3 -16
- package/dist/components/viewers/document-viewer/document-viewer.class.js +1 -1
- package/dist/components/viewers/document-viewer/ooxml-part-guard.js +1 -0
- package/dist/components/viewers/docx-viewer/docx-loader.js +1 -1
- package/dist/components/viewers/docx-viewer/docx-resource-guard.js +1 -1
- package/dist/components/viewers/docx-viewer/docx-viewer.class.d.ts +3 -3
- package/dist/components/viewers/docx-viewer/docx-viewer.class.js +3 -3
- package/dist/components/viewers/ebook-viewer/ebook-loader.js +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +2 -1
- package/dist/components/viewers/ebook-viewer/epub-resource-guard.js +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -2
- package/dist/components/viewers/geojson-view/geojson-view.class.js +1 -1
- package/dist/components/viewers/geojson-view/geojson-viewer.class.d.ts +1 -4
- package/dist/components/viewers/geojson-view/geojson-viewer.class.js +1 -1
- package/dist/components/viewers/highlight-layer/highlight-layer.class.js +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +3 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.js +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.styles.js +1 -1
- package/dist/components/viewers/include/include.class.js +1 -1
- package/dist/components/viewers/notebook-viewer/dompurify-loader.js +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +2 -2
- package/dist/components/viewers/page-rail/page-rail.class.d.ts +1 -1
- package/dist/components/viewers/page-rail/page-rail.class.js +3 -3
- package/dist/components/viewers/passive-markup.js +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +3 -3
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
- package/dist/components/viewers/pptx-viewer/pptx-loader.js +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-resource-guard.js +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +1 -1
- package/dist/components/viewers/region-highlight-layer.js +15 -2
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +2 -2
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +4 -18
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.class.js +2 -15
- package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +1 -1
- package/dist/components/viewers/table-viewer-shared.js +15 -1
- package/dist/components/viewers/table-viewer-shared.styles.js +1 -0
- package/dist/components/viewers/xml-viewer/xml-viewer.class.js +1 -1
- package/dist/events.d.ts +25 -19
- package/dist/framework-types.d.ts +1 -1
- package/dist/internal/accessibility-visibility.d.ts +3 -1
- package/dist/internal/accessibility-visibility.js +1 -1
- package/dist/internal/accessible-text-controller.js +1 -1
- package/dist/internal/active-element.d.ts +11 -0
- package/dist/internal/active-element.js +1 -1
- package/dist/internal/adjacent-runs.js +1 -1
- package/dist/internal/approval-wait-until.d.ts +7 -0
- package/dist/internal/approval-wait-until.js +1 -0
- package/dist/internal/aria-controls.js +1 -1
- package/dist/internal/catalog-picker.d.ts +2 -2
- package/dist/internal/catalog-picker.js +1 -1
- package/dist/internal/collection-snapshot.js +1 -1
- package/dist/internal/composed-tree.d.ts +18 -0
- package/dist/internal/composed-tree.js +1 -1
- package/dist/internal/copy-feedback.js +1 -0
- package/dist/internal/css-length.js +1 -1
- package/dist/internal/css-motion-time.js +1 -1
- package/dist/internal/css-number.js +1 -0
- package/dist/internal/default-strings/agent-tools.generated.js +1 -0
- package/dist/internal/default-strings/charts.generated.js +1 -0
- package/dist/internal/default-strings/conversation.generated.js +1 -0
- package/dist/internal/default-strings/data.generated.js +1 -0
- package/dist/internal/default-strings/forms.generated.js +1 -0
- package/dist/internal/default-strings/layout.generated.js +1 -0
- package/dist/internal/default-strings/media.generated.js +1 -0
- package/dist/internal/default-strings/overlays.generated.js +1 -0
- package/dist/internal/default-strings/retrieval.generated.js +1 -0
- package/dist/internal/default-strings/shared.generated.js +1 -0
- package/dist/internal/default-strings/utility.generated.js +1 -0
- package/dist/internal/default-strings/viewers.generated.js +5 -0
- package/dist/internal/deferred-focus-return.d.ts +33 -0
- package/dist/internal/deferred-focus-return.js +1 -1
- package/dist/internal/dev-mode-attribute-warning.development.js +1 -1
- package/dist/internal/dev-mode-attribute-warning.production.js +1 -1
- package/dist/internal/document-tokens.d.ts +11 -0
- package/dist/internal/document-tokens.generated.js +15 -0
- package/dist/internal/document-tokens.js +3 -0
- package/dist/internal/fixed-containing-block.js +1 -1
- package/dist/internal/form-associated.d.ts +39 -3
- package/dist/internal/form-associated.js +1 -1
- package/dist/internal/form-control-element.d.ts +13 -0
- package/dist/internal/form-control-element.js +1 -0
- package/dist/internal/form-control.styles.js +1 -1
- package/dist/internal/glass-surface.styles.js +1 -1
- package/dist/internal/host-tokens.styles.js +1 -0
- package/dist/internal/image-zoom.js +1 -0
- package/dist/internal/inherited-attribute-hub.js +1 -1
- package/dist/internal/intl-cache.js +1 -1
- package/dist/internal/locale-loaders.generated.js +1 -1
- package/dist/internal/localization-types.d.ts +1 -1
- package/dist/internal/localization.js +2 -2
- package/dist/internal/lyra-element.d.ts +4 -2
- package/dist/internal/lyra-element.js +2 -2
- package/dist/internal/modal-surface-controller.js +1 -1
- package/dist/internal/object-guards.js +1 -1
- package/dist/internal/opaque-content-border.styles.js +1 -1
- package/dist/internal/open-overlay-raise.styles.js +1 -0
- package/dist/internal/optional-peer-capabilities.d.ts +3 -1
- package/dist/internal/optional-peer-capabilities.js +1 -1
- package/dist/internal/optional-peer-failure.js +1 -0
- package/dist/internal/orientation-breakpoint.js +1 -1
- package/dist/internal/overlay-manager.d.ts +6 -1
- package/dist/internal/overlay-manager.js +1 -1
- package/dist/internal/overlay-stack.d.ts +7 -3
- package/dist/internal/overlay-stack.js +1 -1
- package/dist/internal/package-metadata.js +1 -1
- package/dist/internal/persisted-restore.js +1 -1
- package/dist/internal/popup-controller.js +1 -0
- package/dist/internal/prefix.js +1 -1
- package/dist/internal/rendered-tree-traversal.d.ts +3 -1
- package/dist/internal/rendered-tree-traversal.js +1 -1
- package/dist/internal/retry-forwarder.js +1 -0
- package/dist/internal/roving-toolbar.js +1 -1
- package/dist/internal/scoped-definitions.generated.js +1 -1
- package/dist/internal/score-tiers.d.ts +4 -0
- package/dist/internal/score-tiers.js +1 -0
- package/dist/internal/semantic-variant.d.ts +7 -0
- package/dist/internal/semantic-variant.js +1 -0
- package/dist/internal/shared-unions.d.ts +1 -1
- package/dist/internal/specialist-host-tokens.styles.js +1 -0
- package/dist/internal/specialist-tokens.generated.js +2 -0
- package/dist/internal/step-value.js +1 -1
- package/dist/internal/theme-observation.js +1 -1
- package/dist/internal/theme-scopes.d.ts +11 -0
- package/dist/internal/theme-scopes.js +1 -0
- package/dist/internal/viewer-search.js +1 -1
- package/dist/looks/shadcn.css +1 -1
- package/dist/lyra.d.ts +1 -1
- package/dist/lyra.js +1 -1
- package/dist/styles/design-tokens.css +1 -1
- package/dist/styles/tokens-root.css +1 -1
- package/dist/surfaces/glass.css +1 -1
- package/dist/testing/happy-dom-shims.d.ts +37 -0
- package/dist/testing/happy-dom-shims.js +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +1 -1
- package/dist/testing/interaction-drivers.d.ts +66 -7
- package/dist/testing/interaction-drivers.js +1 -1
- package/dist/testing/jsdom-shims.d.ts +70 -0
- package/dist/testing/jsdom-shims.js +1 -0
- package/dist/theme/look-inputs.d.ts +1 -1
- package/dist/theme/look-inputs.js +37 -41
- package/dist/theme/theme.d.ts +13 -0
- package/dist/theme/theme.js +1 -1
- package/dist/theme.css +1 -1
- package/dist/utilities/index.d.ts +1 -1
- package/dist/utilities/index.js +1 -1
- package/dist/utilities/scoped-registry.d.ts +3 -0
- package/dist/utilities/scoped-registry.js +1 -1
- package/dist/utilities/theme-scopes.d.ts +1 -0
- package/dist/utilities/theme-scopes.js +1 -0
- package/dist/utilities/tokens.d.ts +1 -0
- package/dist/utilities/tokens.js +1 -0
- package/llms/components/lr-accordion-item.md +1 -1
- package/llms/components/lr-accordion.md +1 -1
- package/llms/components/lr-alert.md +2 -2
- package/llms/components/lr-app-rail-group.md +1 -1
- package/llms/components/lr-app-rail-item.md +1 -1
- package/llms/components/lr-app-rail.md +52 -5
- package/llms/components/lr-attachment-chip.md +1 -10
- package/llms/components/lr-attachment-trigger.md +0 -10
- package/llms/components/lr-avatar.md +4 -8
- package/llms/components/lr-badge.md +16 -20
- package/llms/components/lr-box-plot.md +1 -1
- package/llms/components/lr-breadcrumb-item.md +1 -1
- package/llms/components/lr-breadcrumb.md +1 -1
- package/llms/components/lr-button-group.md +1 -1
- package/llms/components/lr-button.md +1 -1
- package/llms/components/lr-calendar.md +1 -1
- package/llms/components/lr-callout.md +3 -13
- package/llms/components/lr-card.md +1 -1
- package/llms/components/lr-carousel-item.md +1 -1
- package/llms/components/lr-carousel.md +1 -1
- package/llms/components/lr-chart.md +5 -7
- package/llms/components/lr-checkbox-group.md +1 -1
- package/llms/components/lr-checkbox.md +2 -1
- package/llms/components/lr-chip.md +3 -17
- package/llms/components/lr-chunk-inspector.md +2 -1
- package/llms/components/lr-citation-badge.md +2 -2
- package/llms/components/lr-code-block.md +0 -10
- package/llms/components/lr-code-editor.md +1 -1
- package/llms/components/lr-color-picker.md +1 -1
- package/llms/components/lr-combobox.md +6 -3
- package/llms/components/lr-command-palette.md +5 -2
- package/llms/components/lr-commit-card.md +1 -3
- package/llms/components/lr-condition-builder.md +1 -1
- package/llms/components/lr-confirm-bar.md +7 -13
- package/llms/components/lr-connector-manager.md +3 -1
- package/llms/components/lr-context-inspector.md +1 -1
- package/llms/components/lr-context-meter.md +1 -1
- package/llms/components/lr-control-group.md +1 -1
- package/llms/components/lr-copy-button.md +8 -10
- package/llms/components/lr-country-picker.md +1 -1
- package/llms/components/lr-currency-picker.md +1 -1
- package/llms/components/lr-dashboard-grid.md +1 -1
- package/llms/components/lr-data-grid.md +1 -1
- package/llms/components/lr-date-input.md +1 -1
- package/llms/components/lr-date-picker.md +11 -4
- package/llms/components/lr-details.md +1 -1
- package/llms/components/lr-dialog.md +8 -31
- package/llms/components/lr-diff-view.md +1 -1
- package/llms/components/lr-divider.md +1 -1
- package/llms/components/lr-dock-panel.md +1 -1
- package/llms/components/lr-document-library.md +1 -1
- package/llms/components/lr-drawer.md +1 -13
- package/llms/components/lr-drilldown-panel.md +1 -1
- package/llms/components/lr-drop-zone.md +4 -0
- package/llms/components/lr-dropdown-item.md +1 -1
- package/llms/components/lr-ebook-viewer.md +4 -3
- package/llms/components/lr-emoji-picker.md +14 -9
- package/llms/components/lr-entity-chip.md +2 -2
- package/llms/components/lr-env-list.md +1 -1
- package/llms/components/lr-eval-dataset.md +4 -19
- package/llms/components/lr-export-button.md +3 -3
- package/llms/components/lr-file-icon.md +0 -5
- package/llms/components/lr-file-input.md +3 -5
- package/llms/components/lr-file-tree.md +1 -1
- package/llms/components/lr-filter-bar.md +5 -1
- package/llms/components/lr-flag.md +1 -2
- package/llms/components/lr-flow-canvas.md +1 -1
- package/llms/components/lr-flow-controls.md +1 -1
- package/llms/components/lr-flow-minimap.md +2 -2
- package/llms/components/lr-flow-node.md +1 -1
- package/llms/components/lr-flow-run-status.md +1 -1
- package/llms/components/lr-format-bytes.md +2 -3
- package/llms/components/lr-format-date.md +2 -3
- package/llms/components/lr-format-number.md +1 -1
- package/llms/components/lr-funnel.md +1 -1
- package/llms/components/lr-gauge.md +1 -1
- package/llms/components/lr-generation-metrics.md +1 -1
- package/llms/components/lr-graph-query-builder.md +1 -1
- package/llms/components/lr-heatmap.md +1 -1
- package/llms/components/lr-icon-button.md +14 -2
- package/llms/components/lr-icon.md +1 -1
- package/llms/components/lr-image-viewer.md +8 -0
- package/llms/components/lr-input.md +1 -1
- package/llms/components/lr-intersection-observer.md +1 -1
- package/llms/components/lr-json-viewer.md +1 -1
- package/llms/components/lr-knowledge-graph-explorer.md +2 -2
- package/llms/components/lr-known-date.md +1 -1
- package/llms/components/lr-lite-chart.md +3 -4
- package/llms/components/lr-live-region.md +1 -1
- package/llms/components/lr-locale-picker.md +1 -1
- package/llms/components/lr-map.md +1 -3
- package/llms/components/lr-media-card.md +1 -10
- package/llms/components/lr-memory-panel.md +2 -0
- package/llms/components/lr-mention-popover.md +3 -3
- package/llms/components/lr-menu-item.md +1 -1
- package/llms/components/lr-menu-label.md +1 -1
- package/llms/components/lr-menu.md +1 -1
- package/llms/components/lr-menubar-item.md +1 -1
- package/llms/components/lr-menubar.md +1 -1
- package/llms/components/lr-message-actions.md +1 -11
- package/llms/components/lr-message-parts.md +3 -5
- package/llms/components/lr-model-select.md +2 -4
- package/llms/components/lr-multi-split.md +1 -1
- package/llms/components/lr-mutation-observer.md +2 -2
- package/llms/components/lr-native-time-input.md +1 -1
- package/llms/components/lr-navigation-menu-item.md +1 -1
- package/llms/components/lr-navigation-menu.md +1 -1
- package/llms/components/lr-number-input.md +1 -1
- package/llms/components/lr-option.md +1 -1
- package/llms/components/lr-otp-input.md +1 -1
- package/llms/components/lr-page.md +1 -1
- package/llms/components/lr-pagination.md +5 -3
- package/llms/components/lr-pan-zoom.md +1 -3
- package/llms/components/lr-permission-grant.md +3 -1
- package/llms/components/lr-phone-input.md +7 -5
- package/llms/components/lr-poll-status.md +1 -1
- package/llms/components/lr-popover.md +5 -9
- package/llms/components/lr-popup.md +1 -3
- package/llms/components/lr-progress-bar.md +2 -1
- package/llms/components/lr-progress-ring.md +4 -8
- package/llms/components/lr-prompt-input.md +3 -1
- package/llms/components/lr-prompt-studio.md +4 -4
- package/llms/components/lr-radio-button.md +2 -2
- package/llms/components/lr-radio-group.md +1 -1
- package/llms/components/lr-radio.md +3 -2
- package/llms/components/lr-random-content.md +1 -1
- package/llms/components/lr-rating.md +2 -3
- package/llms/components/lr-relative-time.md +2 -3
- package/llms/components/lr-reorder-item.md +1 -1
- package/llms/components/lr-reorder-list.md +1 -1
- package/llms/components/lr-research-progress.md +2 -0
- package/llms/components/lr-resize-observer.md +1 -1
- package/llms/components/lr-responsive-panel.md +1 -1
- package/llms/components/lr-retrieval-compare.md +2 -0
- package/llms/components/lr-retrieval-trace.md +2 -0
- package/llms/components/lr-rubric-form.md +1 -1
- package/llms/components/lr-scroller.md +1 -1
- package/llms/components/lr-segmented.md +8 -4
- package/llms/components/lr-select.md +1 -1
- package/llms/components/lr-sequence-playback.md +1 -2
- package/llms/components/lr-sequence-strip.md +1 -1
- package/llms/components/lr-signature-pad.md +1 -1
- package/llms/components/lr-skeleton.md +2 -4
- package/llms/components/lr-slider.md +1 -1
- package/llms/components/lr-sparkline.md +1 -1
- package/llms/components/lr-split-panel.md +1 -1
- package/llms/components/lr-stat.md +1 -1
- package/llms/components/lr-stepper.md +1 -1
- package/llms/components/lr-swatch-picker.md +1 -1
- package/llms/components/lr-switch.md +2 -1
- package/llms/components/lr-tab-group.md +1 -1
- package/llms/components/lr-tab-panel.md +1 -1
- package/llms/components/lr-tab.md +1 -1
- package/llms/components/lr-table.md +16 -14
- package/llms/components/lr-task-list.md +3 -3
- package/llms/components/lr-test-results.md +2 -4
- package/llms/components/lr-textarea.md +1 -1
- package/llms/components/lr-thread-list.md +4 -3
- package/llms/components/lr-time-input.md +1 -1
- package/llms/components/lr-time-range.md +5 -4
- package/llms/components/lr-time-zone-picker.md +1 -1
- package/llms/components/lr-timeline-item.md +1 -1
- package/llms/components/lr-timeline.md +1 -1
- package/llms/components/lr-toggle-group.md +1 -1
- package/llms/components/lr-toggle.md +1 -1
- package/llms/components/lr-token-input.md +1 -1
- package/llms/components/lr-tool-approval-dialog.md +12 -10
- package/llms/components/lr-tool-call-block.md +1 -1
- package/llms/components/lr-tool-call-chip.md +1 -3
- package/llms/components/lr-tool-result-view.md +3 -3
- package/llms/components/lr-tool-timeline.md +2 -2
- package/llms/components/lr-tooltip.md +8 -11
- package/llms/components/lr-tour.md +2 -2
- package/llms/components/lr-tree-item.md +1 -1
- package/llms/components/lr-tree.md +1 -1
- package/llms/components/lr-unit-picker.md +1 -1
- package/llms/components/lr-usage-badge.md +1 -3
- package/llms/components/lr-video.md +1 -2
- package/llms/components/lr-virtual-list.md +1 -1
- package/llms/components/lr-visually-hidden.md +1 -1
- package/llms/components/lr-voice-picker.md +1 -1
- package/llms/components/lr-widget.md +1 -1
- package/llms/components/lr-word-cloud.md +1 -1
- package/llms/components/lr-zoomable-frame.md +1 -6
- package/llms/migration.md +105 -2
- package/llms/peers.md +3 -2
- package/llms/shared/ai-and-peers.md +2 -2
- package/llms/shared/events-and-types.md +45 -1
- package/llms/shared/frameworks-and-ssr.md +16 -0
- package/llms/shared/imports-and-registration.md +6 -5
- package/llms/shared/localization-and-rtl.md +18 -18
- package/llms/shared/native-styles-and-utilities.md +38 -3
- package/llms/shared/styles-and-tokens.md +243 -103
- package/llms/shared/testing-and-utilities.md +134 -49
- package/llms/shared.md +502 -181
- package/llms/tokens.md +31 -49
- package/llms.txt +14 -12
- package/locales.json +1002 -1002
- package/package.json +28 -6884
- package/registrations.json +1 -1
- package/skills/compose-lyra-interfaces/SKILL.md +60 -0
- package/skills/compose-lyra-interfaces/agents/openai.yaml +4 -0
- package/skills/compose-lyra-interfaces/references/composition-patterns.md +77 -0
- package/skills/lyra-ui/SKILL.md +145 -0
- package/skills/lyra-ui/commands/frontend.md +37 -0
- package/skills/lyra-ui/commands/migrate.md +44 -0
- package/skills/lyra-ui/commands/new-component.md +19 -0
- package/skills/lyra-ui/commands/review.md +247 -0
- package/skills/lyra-ui/commands/update.md +30 -0
- package/skills/lyra-ui/reporting.md +137 -0
- package/custom-elements.json +0 -1
- package/dist/internal/default-strings.generated.js +0 -5
- package/dist/internal/side-effect-only.d.ts +0 -1
- package/dist/internal/specialist-tokens.styles.js +0 -1
- package/dist/internal/tokens/palette.styles.js +0 -1
- package/dist/internal/tokens.styles.js +0 -1
- package/dist/translations/am/agent-tools.js +0 -1
- package/dist/translations/am/charts.js +0 -1
- package/dist/translations/am/conversation.js +0 -1
- package/dist/translations/am/data.js +0 -1
- package/dist/translations/am/forms.js +0 -1
- package/dist/translations/am/layout.js +0 -1
- package/dist/translations/am/media.js +0 -1
- package/dist/translations/am/overlays.js +0 -1
- package/dist/translations/am/retrieval.js +0 -1
- package/dist/translations/am/shared.js +0 -1
- package/dist/translations/am/utility.js +0 -1
- package/dist/translations/am/viewers.js +0 -5
- package/dist/translations/am.js +0 -1
- package/dist/translations/ar/agent-tools.js +0 -1
- package/dist/translations/ar/charts.js +0 -1
- package/dist/translations/ar/conversation.js +0 -1
- package/dist/translations/ar/data.js +0 -1
- package/dist/translations/ar/forms.js +0 -1
- package/dist/translations/ar/layout.js +0 -1
- package/dist/translations/ar/media.js +0 -1
- package/dist/translations/ar/overlays.js +0 -1
- package/dist/translations/ar/retrieval.js +0 -1
- package/dist/translations/ar/shared.js +0 -1
- package/dist/translations/ar/utility.js +0 -1
- package/dist/translations/ar/viewers.js +0 -5
- package/dist/translations/ar.js +0 -1
- package/dist/translations/bho/agent-tools.js +0 -1
- package/dist/translations/bho/charts.js +0 -1
- package/dist/translations/bho/conversation.js +0 -1
- package/dist/translations/bho/data.js +0 -1
- package/dist/translations/bho/forms.js +0 -1
- package/dist/translations/bho/layout.js +0 -1
- package/dist/translations/bho/media.js +0 -1
- package/dist/translations/bho/overlays.js +0 -1
- package/dist/translations/bho/retrieval.js +0 -1
- package/dist/translations/bho/shared.js +0 -1
- package/dist/translations/bho/utility.js +0 -1
- package/dist/translations/bho/viewers.js +0 -5
- package/dist/translations/bho.js +0 -1
- package/dist/translations/bn/agent-tools.js +0 -1
- package/dist/translations/bn/charts.js +0 -1
- package/dist/translations/bn/conversation.js +0 -1
- package/dist/translations/bn/data.js +0 -1
- package/dist/translations/bn/forms.js +0 -1
- package/dist/translations/bn/layout.js +0 -1
- package/dist/translations/bn/media.js +0 -1
- package/dist/translations/bn/overlays.js +0 -1
- package/dist/translations/bn/retrieval.js +0 -1
- package/dist/translations/bn/shared.js +0 -1
- package/dist/translations/bn/utility.js +0 -1
- package/dist/translations/bn/viewers.js +0 -5
- package/dist/translations/bn.js +0 -1
- package/dist/translations/cs/agent-tools.js +0 -1
- package/dist/translations/cs/charts.js +0 -1
- package/dist/translations/cs/conversation.js +0 -1
- package/dist/translations/cs/data.js +0 -1
- package/dist/translations/cs/forms.js +0 -1
- package/dist/translations/cs/layout.js +0 -1
- package/dist/translations/cs/media.js +0 -1
- package/dist/translations/cs/overlays.js +0 -1
- package/dist/translations/cs/retrieval.js +0 -1
- package/dist/translations/cs/shared.js +0 -1
- package/dist/translations/cs/utility.js +0 -1
- package/dist/translations/cs/viewers.js +0 -5
- package/dist/translations/cs.js +0 -1
- package/dist/translations/da/agent-tools.js +0 -1
- package/dist/translations/da/charts.js +0 -1
- package/dist/translations/da/conversation.js +0 -1
- package/dist/translations/da/data.js +0 -1
- package/dist/translations/da/forms.js +0 -1
- package/dist/translations/da/layout.js +0 -1
- package/dist/translations/da/media.js +0 -1
- package/dist/translations/da/overlays.js +0 -1
- package/dist/translations/da/retrieval.js +0 -1
- package/dist/translations/da/shared.js +0 -1
- package/dist/translations/da/utility.js +0 -1
- package/dist/translations/da/viewers.js +0 -5
- package/dist/translations/da.js +0 -1
- package/dist/translations/de/agent-tools.js +0 -1
- package/dist/translations/de/charts.js +0 -1
- package/dist/translations/de/conversation.js +0 -1
- package/dist/translations/de/data.js +0 -1
- package/dist/translations/de/forms.js +0 -1
- package/dist/translations/de/layout.js +0 -1
- package/dist/translations/de/media.js +0 -1
- package/dist/translations/de/overlays.js +0 -1
- package/dist/translations/de/retrieval.js +0 -1
- package/dist/translations/de/shared.js +0 -1
- package/dist/translations/de/utility.js +0 -1
- package/dist/translations/de/viewers.js +0 -5
- package/dist/translations/de-CH/agent-tools.js +0 -1
- package/dist/translations/de-CH/charts.js +0 -1
- package/dist/translations/de-CH/conversation.js +0 -1
- package/dist/translations/de-CH/data.js +0 -1
- package/dist/translations/de-CH/forms.js +0 -1
- package/dist/translations/de-CH/layout.js +0 -1
- package/dist/translations/de-CH/media.js +0 -1
- package/dist/translations/de-CH/overlays.js +0 -1
- package/dist/translations/de-CH/retrieval.js +0 -1
- package/dist/translations/de-CH/shared.js +0 -1
- package/dist/translations/de-CH/utility.js +0 -1
- package/dist/translations/de-CH/viewers.js +0 -1
- package/dist/translations/de-CH.js +0 -1
- package/dist/translations/de.js +0 -1
- package/dist/translations/el/agent-tools.js +0 -1
- package/dist/translations/el/charts.js +0 -1
- package/dist/translations/el/conversation.js +0 -1
- package/dist/translations/el/data.js +0 -1
- package/dist/translations/el/forms.js +0 -1
- package/dist/translations/el/layout.js +0 -1
- package/dist/translations/el/media.js +0 -1
- package/dist/translations/el/overlays.js +0 -1
- package/dist/translations/el/retrieval.js +0 -1
- package/dist/translations/el/shared.js +0 -1
- package/dist/translations/el/utility.js +0 -1
- package/dist/translations/el/viewers.js +0 -5
- package/dist/translations/el.js +0 -1
- package/dist/translations/es/agent-tools.js +0 -1
- package/dist/translations/es/charts.js +0 -1
- package/dist/translations/es/conversation.js +0 -1
- package/dist/translations/es/data.js +0 -1
- package/dist/translations/es/forms.js +0 -1
- package/dist/translations/es/layout.js +0 -1
- package/dist/translations/es/media.js +0 -1
- package/dist/translations/es/overlays.js +0 -1
- package/dist/translations/es/retrieval.js +0 -1
- package/dist/translations/es/shared.js +0 -1
- package/dist/translations/es/utility.js +0 -1
- package/dist/translations/es/viewers.js +0 -5
- package/dist/translations/es.js +0 -1
- package/dist/translations/fa/agent-tools.js +0 -1
- package/dist/translations/fa/charts.js +0 -1
- package/dist/translations/fa/conversation.js +0 -1
- package/dist/translations/fa/data.js +0 -1
- package/dist/translations/fa/forms.js +0 -1
- package/dist/translations/fa/layout.js +0 -1
- package/dist/translations/fa/media.js +0 -1
- package/dist/translations/fa/overlays.js +0 -1
- package/dist/translations/fa/retrieval.js +0 -1
- package/dist/translations/fa/shared.js +0 -1
- package/dist/translations/fa/utility.js +0 -1
- package/dist/translations/fa/viewers.js +0 -5
- package/dist/translations/fa-AF/agent-tools.js +0 -1
- package/dist/translations/fa-AF/charts.js +0 -1
- package/dist/translations/fa-AF/conversation.js +0 -1
- package/dist/translations/fa-AF/data.js +0 -1
- package/dist/translations/fa-AF/forms.js +0 -1
- package/dist/translations/fa-AF/layout.js +0 -1
- package/dist/translations/fa-AF/media.js +0 -1
- package/dist/translations/fa-AF/overlays.js +0 -1
- package/dist/translations/fa-AF/retrieval.js +0 -1
- package/dist/translations/fa-AF/shared.js +0 -1
- package/dist/translations/fa-AF/utility.js +0 -1
- package/dist/translations/fa-AF/viewers.js +0 -5
- package/dist/translations/fa-AF.js +0 -1
- package/dist/translations/fa.js +0 -1
- package/dist/translations/fi/agent-tools.js +0 -1
- package/dist/translations/fi/charts.js +0 -1
- package/dist/translations/fi/conversation.js +0 -1
- package/dist/translations/fi/data.js +0 -1
- package/dist/translations/fi/forms.js +0 -1
- package/dist/translations/fi/layout.js +0 -1
- package/dist/translations/fi/media.js +0 -1
- package/dist/translations/fi/overlays.js +0 -1
- package/dist/translations/fi/retrieval.js +0 -1
- package/dist/translations/fi/shared.js +0 -1
- package/dist/translations/fi/utility.js +0 -1
- package/dist/translations/fi/viewers.js +0 -5
- package/dist/translations/fi.js +0 -1
- package/dist/translations/fr/agent-tools.js +0 -1
- package/dist/translations/fr/charts.js +0 -1
- package/dist/translations/fr/conversation.js +0 -1
- package/dist/translations/fr/data.js +0 -1
- package/dist/translations/fr/forms.js +0 -1
- package/dist/translations/fr/layout.js +0 -1
- package/dist/translations/fr/media.js +0 -1
- package/dist/translations/fr/overlays.js +0 -1
- package/dist/translations/fr/retrieval.js +0 -1
- package/dist/translations/fr/shared.js +0 -1
- package/dist/translations/fr/utility.js +0 -1
- package/dist/translations/fr/viewers.js +0 -5
- package/dist/translations/fr.js +0 -1
- package/dist/translations/gu/agent-tools.js +0 -1
- package/dist/translations/gu/charts.js +0 -1
- package/dist/translations/gu/conversation.js +0 -1
- package/dist/translations/gu/data.js +0 -1
- package/dist/translations/gu/forms.js +0 -1
- package/dist/translations/gu/layout.js +0 -1
- package/dist/translations/gu/media.js +0 -1
- package/dist/translations/gu/overlays.js +0 -1
- package/dist/translations/gu/retrieval.js +0 -1
- package/dist/translations/gu/shared.js +0 -1
- package/dist/translations/gu/utility.js +0 -1
- package/dist/translations/gu/viewers.js +0 -5
- package/dist/translations/gu.js +0 -1
- package/dist/translations/ha/agent-tools.js +0 -1
- package/dist/translations/ha/charts.js +0 -1
- package/dist/translations/ha/conversation.js +0 -1
- package/dist/translations/ha/data.js +0 -1
- package/dist/translations/ha/forms.js +0 -1
- package/dist/translations/ha/layout.js +0 -1
- package/dist/translations/ha/media.js +0 -1
- package/dist/translations/ha/overlays.js +0 -1
- package/dist/translations/ha/retrieval.js +0 -1
- package/dist/translations/ha/shared.js +0 -1
- package/dist/translations/ha/utility.js +0 -1
- package/dist/translations/ha/viewers.js +0 -5
- package/dist/translations/ha.js +0 -1
- package/dist/translations/he/agent-tools.js +0 -1
- package/dist/translations/he/charts.js +0 -1
- package/dist/translations/he/conversation.js +0 -1
- package/dist/translations/he/data.js +0 -1
- package/dist/translations/he/forms.js +0 -1
- package/dist/translations/he/layout.js +0 -1
- package/dist/translations/he/media.js +0 -1
- package/dist/translations/he/overlays.js +0 -1
- package/dist/translations/he/retrieval.js +0 -1
- package/dist/translations/he/shared.js +0 -1
- package/dist/translations/he/utility.js +0 -1
- package/dist/translations/he/viewers.js +0 -5
- package/dist/translations/he.js +0 -1
- package/dist/translations/hi/agent-tools.js +0 -1
- package/dist/translations/hi/charts.js +0 -1
- package/dist/translations/hi/conversation.js +0 -1
- package/dist/translations/hi/data.js +0 -1
- package/dist/translations/hi/forms.js +0 -1
- package/dist/translations/hi/layout.js +0 -1
- package/dist/translations/hi/media.js +0 -1
- package/dist/translations/hi/overlays.js +0 -1
- package/dist/translations/hi/retrieval.js +0 -1
- package/dist/translations/hi/shared.js +0 -1
- package/dist/translations/hi/utility.js +0 -1
- package/dist/translations/hi/viewers.js +0 -5
- package/dist/translations/hi.js +0 -1
- package/dist/translations/hr/agent-tools.js +0 -1
- package/dist/translations/hr/charts.js +0 -1
- package/dist/translations/hr/conversation.js +0 -1
- package/dist/translations/hr/data.js +0 -1
- package/dist/translations/hr/forms.js +0 -1
- package/dist/translations/hr/layout.js +0 -1
- package/dist/translations/hr/media.js +0 -1
- package/dist/translations/hr/overlays.js +0 -1
- package/dist/translations/hr/retrieval.js +0 -1
- package/dist/translations/hr/shared.js +0 -1
- package/dist/translations/hr/utility.js +0 -1
- package/dist/translations/hr/viewers.js +0 -5
- package/dist/translations/hr.js +0 -1
- package/dist/translations/hu/agent-tools.js +0 -1
- package/dist/translations/hu/charts.js +0 -1
- package/dist/translations/hu/conversation.js +0 -1
- package/dist/translations/hu/data.js +0 -1
- package/dist/translations/hu/forms.js +0 -1
- package/dist/translations/hu/layout.js +0 -1
- package/dist/translations/hu/media.js +0 -1
- package/dist/translations/hu/overlays.js +0 -1
- package/dist/translations/hu/retrieval.js +0 -1
- package/dist/translations/hu/shared.js +0 -1
- package/dist/translations/hu/utility.js +0 -1
- package/dist/translations/hu/viewers.js +0 -5
- package/dist/translations/hu.js +0 -1
- package/dist/translations/id/agent-tools.js +0 -1
- package/dist/translations/id/charts.js +0 -1
- package/dist/translations/id/conversation.js +0 -1
- package/dist/translations/id/data.js +0 -1
- package/dist/translations/id/forms.js +0 -1
- package/dist/translations/id/layout.js +0 -1
- package/dist/translations/id/media.js +0 -1
- package/dist/translations/id/overlays.js +0 -1
- package/dist/translations/id/retrieval.js +0 -1
- package/dist/translations/id/shared.js +0 -1
- package/dist/translations/id/utility.js +0 -1
- package/dist/translations/id/viewers.js +0 -5
- package/dist/translations/id.js +0 -1
- package/dist/translations/ig/agent-tools.js +0 -1
- package/dist/translations/ig/charts.js +0 -1
- package/dist/translations/ig/conversation.js +0 -1
- package/dist/translations/ig/data.js +0 -1
- package/dist/translations/ig/forms.js +0 -1
- package/dist/translations/ig/layout.js +0 -1
- package/dist/translations/ig/media.js +0 -1
- package/dist/translations/ig/overlays.js +0 -1
- package/dist/translations/ig/retrieval.js +0 -1
- package/dist/translations/ig/shared.js +0 -1
- package/dist/translations/ig/utility.js +0 -1
- package/dist/translations/ig/viewers.js +0 -5
- package/dist/translations/ig.js +0 -1
- package/dist/translations/it/agent-tools.js +0 -1
- package/dist/translations/it/charts.js +0 -1
- package/dist/translations/it/conversation.js +0 -1
- package/dist/translations/it/data.js +0 -1
- package/dist/translations/it/forms.js +0 -1
- package/dist/translations/it/layout.js +0 -1
- package/dist/translations/it/media.js +0 -1
- package/dist/translations/it/overlays.js +0 -1
- package/dist/translations/it/retrieval.js +0 -1
- package/dist/translations/it/shared.js +0 -1
- package/dist/translations/it/utility.js +0 -1
- package/dist/translations/it/viewers.js +0 -5
- package/dist/translations/it.js +0 -1
- package/dist/translations/ja/agent-tools.js +0 -1
- package/dist/translations/ja/charts.js +0 -1
- package/dist/translations/ja/conversation.js +0 -1
- package/dist/translations/ja/data.js +0 -1
- package/dist/translations/ja/forms.js +0 -1
- package/dist/translations/ja/layout.js +0 -1
- package/dist/translations/ja/media.js +0 -1
- package/dist/translations/ja/overlays.js +0 -1
- package/dist/translations/ja/retrieval.js +0 -1
- package/dist/translations/ja/shared.js +0 -1
- package/dist/translations/ja/utility.js +0 -1
- package/dist/translations/ja/viewers.js +0 -4
- package/dist/translations/ja.js +0 -1
- package/dist/translations/jv/agent-tools.js +0 -1
- package/dist/translations/jv/charts.js +0 -1
- package/dist/translations/jv/conversation.js +0 -1
- package/dist/translations/jv/data.js +0 -1
- package/dist/translations/jv/forms.js +0 -1
- package/dist/translations/jv/layout.js +0 -1
- package/dist/translations/jv/media.js +0 -1
- package/dist/translations/jv/overlays.js +0 -1
- package/dist/translations/jv/retrieval.js +0 -1
- package/dist/translations/jv/shared.js +0 -1
- package/dist/translations/jv/utility.js +0 -1
- package/dist/translations/jv/viewers.js +0 -5
- package/dist/translations/jv.js +0 -1
- package/dist/translations/kk/agent-tools.js +0 -1
- package/dist/translations/kk/charts.js +0 -1
- package/dist/translations/kk/conversation.js +0 -1
- package/dist/translations/kk/data.js +0 -1
- package/dist/translations/kk/forms.js +0 -1
- package/dist/translations/kk/layout.js +0 -1
- package/dist/translations/kk/media.js +0 -1
- package/dist/translations/kk/overlays.js +0 -1
- package/dist/translations/kk/retrieval.js +0 -1
- package/dist/translations/kk/shared.js +0 -1
- package/dist/translations/kk/utility.js +0 -1
- package/dist/translations/kk/viewers.js +0 -5
- package/dist/translations/kk.js +0 -1
- package/dist/translations/kn/agent-tools.js +0 -1
- package/dist/translations/kn/charts.js +0 -1
- package/dist/translations/kn/conversation.js +0 -1
- package/dist/translations/kn/data.js +0 -1
- package/dist/translations/kn/forms.js +0 -1
- package/dist/translations/kn/layout.js +0 -1
- package/dist/translations/kn/media.js +0 -1
- package/dist/translations/kn/overlays.js +0 -1
- package/dist/translations/kn/retrieval.js +0 -1
- package/dist/translations/kn/shared.js +0 -1
- package/dist/translations/kn/utility.js +0 -1
- package/dist/translations/kn/viewers.js +0 -5
- package/dist/translations/kn.js +0 -1
- package/dist/translations/ko/agent-tools.js +0 -1
- package/dist/translations/ko/charts.js +0 -1
- package/dist/translations/ko/conversation.js +0 -1
- package/dist/translations/ko/data.js +0 -1
- package/dist/translations/ko/forms.js +0 -1
- package/dist/translations/ko/layout.js +0 -1
- package/dist/translations/ko/media.js +0 -1
- package/dist/translations/ko/overlays.js +0 -1
- package/dist/translations/ko/retrieval.js +0 -1
- package/dist/translations/ko/shared.js +0 -1
- package/dist/translations/ko/utility.js +0 -1
- package/dist/translations/ko/viewers.js +0 -5
- package/dist/translations/ko.js +0 -1
- package/dist/translations/ln/agent-tools.js +0 -1
- package/dist/translations/ln/charts.js +0 -1
- package/dist/translations/ln/conversation.js +0 -1
- package/dist/translations/ln/data.js +0 -1
- package/dist/translations/ln/forms.js +0 -1
- package/dist/translations/ln/layout.js +0 -1
- package/dist/translations/ln/media.js +0 -1
- package/dist/translations/ln/overlays.js +0 -1
- package/dist/translations/ln/retrieval.js +0 -1
- package/dist/translations/ln/shared.js +0 -1
- package/dist/translations/ln/utility.js +0 -1
- package/dist/translations/ln/viewers.js +0 -5
- package/dist/translations/ln.js +0 -1
- package/dist/translations/ml/agent-tools.js +0 -1
- package/dist/translations/ml/charts.js +0 -1
- package/dist/translations/ml/conversation.js +0 -1
- package/dist/translations/ml/data.js +0 -1
- package/dist/translations/ml/forms.js +0 -1
- package/dist/translations/ml/layout.js +0 -1
- package/dist/translations/ml/media.js +0 -1
- package/dist/translations/ml/overlays.js +0 -1
- package/dist/translations/ml/retrieval.js +0 -1
- package/dist/translations/ml/shared.js +0 -1
- package/dist/translations/ml/utility.js +0 -1
- package/dist/translations/ml/viewers.js +0 -5
- package/dist/translations/ml.js +0 -1
- package/dist/translations/mr/agent-tools.js +0 -1
- package/dist/translations/mr/charts.js +0 -1
- package/dist/translations/mr/conversation.js +0 -1
- package/dist/translations/mr/data.js +0 -1
- package/dist/translations/mr/forms.js +0 -1
- package/dist/translations/mr/layout.js +0 -1
- package/dist/translations/mr/media.js +0 -1
- package/dist/translations/mr/overlays.js +0 -1
- package/dist/translations/mr/retrieval.js +0 -1
- package/dist/translations/mr/shared.js +0 -1
- package/dist/translations/mr/utility.js +0 -1
- package/dist/translations/mr/viewers.js +0 -5
- package/dist/translations/mr.js +0 -1
- package/dist/translations/ms/agent-tools.js +0 -1
- package/dist/translations/ms/charts.js +0 -1
- package/dist/translations/ms/conversation.js +0 -1
- package/dist/translations/ms/data.js +0 -1
- package/dist/translations/ms/forms.js +0 -1
- package/dist/translations/ms/layout.js +0 -1
- package/dist/translations/ms/media.js +0 -1
- package/dist/translations/ms/overlays.js +0 -1
- package/dist/translations/ms/retrieval.js +0 -1
- package/dist/translations/ms/shared.js +0 -1
- package/dist/translations/ms/utility.js +0 -1
- package/dist/translations/ms/viewers.js +0 -5
- package/dist/translations/ms.js +0 -1
- package/dist/translations/my/agent-tools.js +0 -1
- package/dist/translations/my/charts.js +0 -1
- package/dist/translations/my/conversation.js +0 -1
- package/dist/translations/my/data.js +0 -1
- package/dist/translations/my/forms.js +0 -1
- package/dist/translations/my/layout.js +0 -1
- package/dist/translations/my/media.js +0 -1
- package/dist/translations/my/overlays.js +0 -1
- package/dist/translations/my/retrieval.js +0 -1
- package/dist/translations/my/shared.js +0 -1
- package/dist/translations/my/utility.js +0 -1
- package/dist/translations/my/viewers.js +0 -5
- package/dist/translations/my.js +0 -1
- package/dist/translations/nb/agent-tools.js +0 -1
- package/dist/translations/nb/charts.js +0 -1
- package/dist/translations/nb/conversation.js +0 -1
- package/dist/translations/nb/data.js +0 -1
- package/dist/translations/nb/forms.js +0 -1
- package/dist/translations/nb/layout.js +0 -1
- package/dist/translations/nb/media.js +0 -1
- package/dist/translations/nb/overlays.js +0 -1
- package/dist/translations/nb/retrieval.js +0 -1
- package/dist/translations/nb/shared.js +0 -1
- package/dist/translations/nb/utility.js +0 -1
- package/dist/translations/nb/viewers.js +0 -5
- package/dist/translations/nb.js +0 -1
- package/dist/translations/ne/agent-tools.js +0 -1
- package/dist/translations/ne/charts.js +0 -1
- package/dist/translations/ne/conversation.js +0 -1
- package/dist/translations/ne/data.js +0 -1
- package/dist/translations/ne/forms.js +0 -1
- package/dist/translations/ne/layout.js +0 -1
- package/dist/translations/ne/media.js +0 -1
- package/dist/translations/ne/overlays.js +0 -1
- package/dist/translations/ne/retrieval.js +0 -1
- package/dist/translations/ne/shared.js +0 -1
- package/dist/translations/ne/utility.js +0 -1
- package/dist/translations/ne/viewers.js +0 -5
- package/dist/translations/ne.js +0 -1
- package/dist/translations/nl/agent-tools.js +0 -1
- package/dist/translations/nl/charts.js +0 -1
- package/dist/translations/nl/conversation.js +0 -1
- package/dist/translations/nl/data.js +0 -1
- package/dist/translations/nl/forms.js +0 -1
- package/dist/translations/nl/layout.js +0 -1
- package/dist/translations/nl/media.js +0 -1
- package/dist/translations/nl/overlays.js +0 -1
- package/dist/translations/nl/retrieval.js +0 -1
- package/dist/translations/nl/shared.js +0 -1
- package/dist/translations/nl/utility.js +0 -1
- package/dist/translations/nl/viewers.js +0 -5
- package/dist/translations/nl.js +0 -1
- package/dist/translations/nn/agent-tools.js +0 -1
- package/dist/translations/nn/charts.js +0 -1
- package/dist/translations/nn/conversation.js +0 -1
- package/dist/translations/nn/data.js +0 -1
- package/dist/translations/nn/forms.js +0 -1
- package/dist/translations/nn/layout.js +0 -1
- package/dist/translations/nn/media.js +0 -1
- package/dist/translations/nn/overlays.js +0 -1
- package/dist/translations/nn/retrieval.js +0 -1
- package/dist/translations/nn/shared.js +0 -1
- package/dist/translations/nn/utility.js +0 -1
- package/dist/translations/nn/viewers.js +0 -5
- package/dist/translations/nn.js +0 -1
- package/dist/translations/om/agent-tools.js +0 -1
- package/dist/translations/om/charts.js +0 -1
- package/dist/translations/om/conversation.js +0 -1
- package/dist/translations/om/data.js +0 -1
- package/dist/translations/om/forms.js +0 -1
- package/dist/translations/om/layout.js +0 -1
- package/dist/translations/om/media.js +0 -1
- package/dist/translations/om/overlays.js +0 -1
- package/dist/translations/om/retrieval.js +0 -1
- package/dist/translations/om/shared.js +0 -1
- package/dist/translations/om/utility.js +0 -1
- package/dist/translations/om/viewers.js +0 -5
- package/dist/translations/om.js +0 -1
- package/dist/translations/or/agent-tools.js +0 -1
- package/dist/translations/or/charts.js +0 -1
- package/dist/translations/or/conversation.js +0 -1
- package/dist/translations/or/data.js +0 -1
- package/dist/translations/or/forms.js +0 -1
- package/dist/translations/or/layout.js +0 -1
- package/dist/translations/or/media.js +0 -1
- package/dist/translations/or/overlays.js +0 -1
- package/dist/translations/or/retrieval.js +0 -1
- package/dist/translations/or/shared.js +0 -1
- package/dist/translations/or/utility.js +0 -1
- package/dist/translations/or/viewers.js +0 -5
- package/dist/translations/or.js +0 -1
- package/dist/translations/pa/agent-tools.js +0 -1
- package/dist/translations/pa/charts.js +0 -1
- package/dist/translations/pa/conversation.js +0 -1
- package/dist/translations/pa/data.js +0 -1
- package/dist/translations/pa/forms.js +0 -1
- package/dist/translations/pa/layout.js +0 -1
- package/dist/translations/pa/media.js +0 -1
- package/dist/translations/pa/overlays.js +0 -1
- package/dist/translations/pa/retrieval.js +0 -1
- package/dist/translations/pa/shared.js +0 -1
- package/dist/translations/pa/utility.js +0 -1
- package/dist/translations/pa/viewers.js +0 -5
- package/dist/translations/pa.js +0 -1
- package/dist/translations/pcm/agent-tools.js +0 -1
- package/dist/translations/pcm/charts.js +0 -1
- package/dist/translations/pcm/conversation.js +0 -1
- package/dist/translations/pcm/data.js +0 -1
- package/dist/translations/pcm/forms.js +0 -1
- package/dist/translations/pcm/layout.js +0 -1
- package/dist/translations/pcm/media.js +0 -1
- package/dist/translations/pcm/overlays.js +0 -1
- package/dist/translations/pcm/retrieval.js +0 -1
- package/dist/translations/pcm/shared.js +0 -1
- package/dist/translations/pcm/utility.js +0 -1
- package/dist/translations/pcm/viewers.js +0 -5
- package/dist/translations/pcm.js +0 -1
- package/dist/translations/pl/agent-tools.js +0 -1
- package/dist/translations/pl/charts.js +0 -1
- package/dist/translations/pl/conversation.js +0 -1
- package/dist/translations/pl/data.js +0 -1
- package/dist/translations/pl/forms.js +0 -1
- package/dist/translations/pl/layout.js +0 -1
- package/dist/translations/pl/media.js +0 -1
- package/dist/translations/pl/overlays.js +0 -1
- package/dist/translations/pl/retrieval.js +0 -1
- package/dist/translations/pl/shared.js +0 -1
- package/dist/translations/pl/utility.js +0 -1
- package/dist/translations/pl/viewers.js +0 -5
- package/dist/translations/pl.js +0 -1
- package/dist/translations/pnb/agent-tools.js +0 -1
- package/dist/translations/pnb/charts.js +0 -1
- package/dist/translations/pnb/conversation.js +0 -1
- package/dist/translations/pnb/data.js +0 -1
- package/dist/translations/pnb/forms.js +0 -1
- package/dist/translations/pnb/layout.js +0 -1
- package/dist/translations/pnb/media.js +0 -1
- package/dist/translations/pnb/overlays.js +0 -1
- package/dist/translations/pnb/retrieval.js +0 -1
- package/dist/translations/pnb/shared.js +0 -1
- package/dist/translations/pnb/utility.js +0 -1
- package/dist/translations/pnb/viewers.js +0 -5
- package/dist/translations/pnb.js +0 -1
- package/dist/translations/ps/agent-tools.js +0 -1
- package/dist/translations/ps/charts.js +0 -1
- package/dist/translations/ps/conversation.js +0 -1
- package/dist/translations/ps/data.js +0 -1
- package/dist/translations/ps/forms.js +0 -1
- package/dist/translations/ps/layout.js +0 -1
- package/dist/translations/ps/media.js +0 -1
- package/dist/translations/ps/overlays.js +0 -1
- package/dist/translations/ps/retrieval.js +0 -1
- package/dist/translations/ps/shared.js +0 -1
- package/dist/translations/ps/utility.js +0 -1
- package/dist/translations/ps/viewers.js +0 -5
- package/dist/translations/ps.js +0 -1
- package/dist/translations/pt-BR/agent-tools.js +0 -1
- package/dist/translations/pt-BR/charts.js +0 -1
- package/dist/translations/pt-BR/conversation.js +0 -1
- package/dist/translations/pt-BR/data.js +0 -1
- package/dist/translations/pt-BR/forms.js +0 -1
- package/dist/translations/pt-BR/layout.js +0 -1
- package/dist/translations/pt-BR/media.js +0 -1
- package/dist/translations/pt-BR/overlays.js +0 -1
- package/dist/translations/pt-BR/retrieval.js +0 -1
- package/dist/translations/pt-BR/shared.js +0 -1
- package/dist/translations/pt-BR/utility.js +0 -1
- package/dist/translations/pt-BR/viewers.js +0 -5
- package/dist/translations/pt-BR.js +0 -1
- package/dist/translations/pt-PT/agent-tools.js +0 -1
- package/dist/translations/pt-PT/charts.js +0 -1
- package/dist/translations/pt-PT/conversation.js +0 -1
- package/dist/translations/pt-PT/data.js +0 -1
- package/dist/translations/pt-PT/forms.js +0 -1
- package/dist/translations/pt-PT/layout.js +0 -1
- package/dist/translations/pt-PT/media.js +0 -1
- package/dist/translations/pt-PT/overlays.js +0 -1
- package/dist/translations/pt-PT/retrieval.js +0 -1
- package/dist/translations/pt-PT/shared.js +0 -1
- package/dist/translations/pt-PT/utility.js +0 -1
- package/dist/translations/pt-PT/viewers.js +0 -5
- package/dist/translations/pt-PT.js +0 -1
- package/dist/translations/ro/agent-tools.js +0 -1
- package/dist/translations/ro/charts.js +0 -1
- package/dist/translations/ro/conversation.js +0 -1
- package/dist/translations/ro/data.js +0 -1
- package/dist/translations/ro/forms.js +0 -1
- package/dist/translations/ro/layout.js +0 -1
- package/dist/translations/ro/media.js +0 -1
- package/dist/translations/ro/overlays.js +0 -1
- package/dist/translations/ro/retrieval.js +0 -1
- package/dist/translations/ro/shared.js +0 -1
- package/dist/translations/ro/utility.js +0 -1
- package/dist/translations/ro/viewers.js +0 -5
- package/dist/translations/ro.js +0 -1
- package/dist/translations/ru/agent-tools.js +0 -1
- package/dist/translations/ru/charts.js +0 -1
- package/dist/translations/ru/conversation.js +0 -1
- package/dist/translations/ru/data.js +0 -1
- package/dist/translations/ru/forms.js +0 -1
- package/dist/translations/ru/layout.js +0 -1
- package/dist/translations/ru/media.js +0 -1
- package/dist/translations/ru/overlays.js +0 -1
- package/dist/translations/ru/retrieval.js +0 -1
- package/dist/translations/ru/shared.js +0 -1
- package/dist/translations/ru/utility.js +0 -1
- package/dist/translations/ru/viewers.js +0 -5
- package/dist/translations/ru.js +0 -1
- package/dist/translations/sd/agent-tools.js +0 -1
- package/dist/translations/sd/charts.js +0 -1
- package/dist/translations/sd/conversation.js +0 -1
- package/dist/translations/sd/data.js +0 -1
- package/dist/translations/sd/forms.js +0 -1
- package/dist/translations/sd/layout.js +0 -1
- package/dist/translations/sd/media.js +0 -1
- package/dist/translations/sd/overlays.js +0 -1
- package/dist/translations/sd/retrieval.js +0 -1
- package/dist/translations/sd/shared.js +0 -1
- package/dist/translations/sd/utility.js +0 -1
- package/dist/translations/sd/viewers.js +0 -5
- package/dist/translations/sd.js +0 -1
- package/dist/translations/sl/agent-tools.js +0 -1
- package/dist/translations/sl/charts.js +0 -1
- package/dist/translations/sl/conversation.js +0 -1
- package/dist/translations/sl/data.js +0 -1
- package/dist/translations/sl/forms.js +0 -1
- package/dist/translations/sl/layout.js +0 -1
- package/dist/translations/sl/media.js +0 -1
- package/dist/translations/sl/overlays.js +0 -1
- package/dist/translations/sl/retrieval.js +0 -1
- package/dist/translations/sl/shared.js +0 -1
- package/dist/translations/sl/utility.js +0 -1
- package/dist/translations/sl/viewers.js +0 -5
- package/dist/translations/sl.js +0 -1
- package/dist/translations/su/agent-tools.js +0 -1
- package/dist/translations/su/charts.js +0 -1
- package/dist/translations/su/conversation.js +0 -1
- package/dist/translations/su/data.js +0 -1
- package/dist/translations/su/forms.js +0 -1
- package/dist/translations/su/layout.js +0 -1
- package/dist/translations/su/media.js +0 -1
- package/dist/translations/su/overlays.js +0 -1
- package/dist/translations/su/retrieval.js +0 -1
- package/dist/translations/su/shared.js +0 -1
- package/dist/translations/su/utility.js +0 -1
- package/dist/translations/su/viewers.js +0 -5
- package/dist/translations/su.js +0 -1
- package/dist/translations/sv/agent-tools.js +0 -1
- package/dist/translations/sv/charts.js +0 -1
- package/dist/translations/sv/conversation.js +0 -1
- package/dist/translations/sv/data.js +0 -1
- package/dist/translations/sv/forms.js +0 -1
- package/dist/translations/sv/layout.js +0 -1
- package/dist/translations/sv/media.js +0 -1
- package/dist/translations/sv/overlays.js +0 -1
- package/dist/translations/sv/retrieval.js +0 -1
- package/dist/translations/sv/shared.js +0 -1
- package/dist/translations/sv/utility.js +0 -1
- package/dist/translations/sv/viewers.js +0 -5
- package/dist/translations/sv.js +0 -1
- package/dist/translations/sw/agent-tools.js +0 -1
- package/dist/translations/sw/charts.js +0 -1
- package/dist/translations/sw/conversation.js +0 -1
- package/dist/translations/sw/data.js +0 -1
- package/dist/translations/sw/forms.js +0 -1
- package/dist/translations/sw/layout.js +0 -1
- package/dist/translations/sw/media.js +0 -1
- package/dist/translations/sw/overlays.js +0 -1
- package/dist/translations/sw/retrieval.js +0 -1
- package/dist/translations/sw/shared.js +0 -1
- package/dist/translations/sw/utility.js +0 -1
- package/dist/translations/sw/viewers.js +0 -5
- package/dist/translations/sw.js +0 -1
- package/dist/translations/ta/agent-tools.js +0 -1
- package/dist/translations/ta/charts.js +0 -1
- package/dist/translations/ta/conversation.js +0 -1
- package/dist/translations/ta/data.js +0 -1
- package/dist/translations/ta/forms.js +0 -1
- package/dist/translations/ta/layout.js +0 -1
- package/dist/translations/ta/media.js +0 -1
- package/dist/translations/ta/overlays.js +0 -1
- package/dist/translations/ta/retrieval.js +0 -1
- package/dist/translations/ta/shared.js +0 -1
- package/dist/translations/ta/utility.js +0 -1
- package/dist/translations/ta/viewers.js +0 -5
- package/dist/translations/ta.js +0 -1
- package/dist/translations/te/agent-tools.js +0 -1
- package/dist/translations/te/charts.js +0 -1
- package/dist/translations/te/conversation.js +0 -1
- package/dist/translations/te/data.js +0 -1
- package/dist/translations/te/forms.js +0 -1
- package/dist/translations/te/layout.js +0 -1
- package/dist/translations/te/media.js +0 -1
- package/dist/translations/te/overlays.js +0 -1
- package/dist/translations/te/retrieval.js +0 -1
- package/dist/translations/te/shared.js +0 -1
- package/dist/translations/te/utility.js +0 -1
- package/dist/translations/te/viewers.js +0 -5
- package/dist/translations/te.js +0 -1
- package/dist/translations/th/agent-tools.js +0 -1
- package/dist/translations/th/charts.js +0 -1
- package/dist/translations/th/conversation.js +0 -1
- package/dist/translations/th/data.js +0 -1
- package/dist/translations/th/forms.js +0 -1
- package/dist/translations/th/layout.js +0 -1
- package/dist/translations/th/media.js +0 -1
- package/dist/translations/th/overlays.js +0 -1
- package/dist/translations/th/retrieval.js +0 -1
- package/dist/translations/th/shared.js +0 -1
- package/dist/translations/th/utility.js +0 -1
- package/dist/translations/th/viewers.js +0 -5
- package/dist/translations/th.js +0 -1
- package/dist/translations/tl/agent-tools.js +0 -1
- package/dist/translations/tl/charts.js +0 -1
- package/dist/translations/tl/conversation.js +0 -1
- package/dist/translations/tl/data.js +0 -1
- package/dist/translations/tl/forms.js +0 -1
- package/dist/translations/tl/layout.js +0 -1
- package/dist/translations/tl/media.js +0 -1
- package/dist/translations/tl/overlays.js +0 -1
- package/dist/translations/tl/retrieval.js +0 -1
- package/dist/translations/tl/shared.js +0 -1
- package/dist/translations/tl/utility.js +0 -1
- package/dist/translations/tl/viewers.js +0 -5
- package/dist/translations/tl.js +0 -1
- package/dist/translations/tr/agent-tools.js +0 -1
- package/dist/translations/tr/charts.js +0 -1
- package/dist/translations/tr/conversation.js +0 -1
- package/dist/translations/tr/data.js +0 -1
- package/dist/translations/tr/forms.js +0 -1
- package/dist/translations/tr/layout.js +0 -1
- package/dist/translations/tr/media.js +0 -1
- package/dist/translations/tr/overlays.js +0 -1
- package/dist/translations/tr/retrieval.js +0 -1
- package/dist/translations/tr/shared.js +0 -1
- package/dist/translations/tr/utility.js +0 -1
- package/dist/translations/tr/viewers.js +0 -5
- package/dist/translations/tr.js +0 -1
- package/dist/translations/uk/agent-tools.js +0 -1
- package/dist/translations/uk/charts.js +0 -1
- package/dist/translations/uk/conversation.js +0 -1
- package/dist/translations/uk/data.js +0 -1
- package/dist/translations/uk/forms.js +0 -1
- package/dist/translations/uk/layout.js +0 -1
- package/dist/translations/uk/media.js +0 -1
- package/dist/translations/uk/overlays.js +0 -1
- package/dist/translations/uk/retrieval.js +0 -1
- package/dist/translations/uk/shared.js +0 -1
- package/dist/translations/uk/utility.js +0 -1
- package/dist/translations/uk/viewers.js +0 -5
- package/dist/translations/uk.js +0 -1
- package/dist/translations/ur/agent-tools.js +0 -1
- package/dist/translations/ur/charts.js +0 -1
- package/dist/translations/ur/conversation.js +0 -1
- package/dist/translations/ur/data.js +0 -1
- package/dist/translations/ur/forms.js +0 -1
- package/dist/translations/ur/layout.js +0 -1
- package/dist/translations/ur/media.js +0 -1
- package/dist/translations/ur/overlays.js +0 -1
- package/dist/translations/ur/retrieval.js +0 -1
- package/dist/translations/ur/shared.js +0 -1
- package/dist/translations/ur/utility.js +0 -1
- package/dist/translations/ur/viewers.js +0 -5
- package/dist/translations/ur.js +0 -1
- package/dist/translations/uz/agent-tools.js +0 -1
- package/dist/translations/uz/charts.js +0 -1
- package/dist/translations/uz/conversation.js +0 -1
- package/dist/translations/uz/data.js +0 -1
- package/dist/translations/uz/forms.js +0 -1
- package/dist/translations/uz/layout.js +0 -1
- package/dist/translations/uz/media.js +0 -1
- package/dist/translations/uz/overlays.js +0 -1
- package/dist/translations/uz/retrieval.js +0 -1
- package/dist/translations/uz/shared.js +0 -1
- package/dist/translations/uz/utility.js +0 -1
- package/dist/translations/uz/viewers.js +0 -5
- package/dist/translations/uz.js +0 -1
- package/dist/translations/vi/agent-tools.js +0 -1
- package/dist/translations/vi/charts.js +0 -1
- package/dist/translations/vi/conversation.js +0 -1
- package/dist/translations/vi/data.js +0 -1
- package/dist/translations/vi/forms.js +0 -1
- package/dist/translations/vi/layout.js +0 -1
- package/dist/translations/vi/media.js +0 -1
- package/dist/translations/vi/overlays.js +0 -1
- package/dist/translations/vi/retrieval.js +0 -1
- package/dist/translations/vi/shared.js +0 -1
- package/dist/translations/vi/utility.js +0 -1
- package/dist/translations/vi/viewers.js +0 -5
- package/dist/translations/vi.js +0 -1
- package/dist/translations/yo/agent-tools.js +0 -1
- package/dist/translations/yo/charts.js +0 -1
- package/dist/translations/yo/conversation.js +0 -1
- package/dist/translations/yo/data.js +0 -1
- package/dist/translations/yo/forms.js +0 -1
- package/dist/translations/yo/layout.js +0 -1
- package/dist/translations/yo/media.js +0 -1
- package/dist/translations/yo/overlays.js +0 -1
- package/dist/translations/yo/retrieval.js +0 -1
- package/dist/translations/yo/shared.js +0 -1
- package/dist/translations/yo/utility.js +0 -1
- package/dist/translations/yo/viewers.js +0 -5
- package/dist/translations/yo.js +0 -1
- package/dist/translations/zh-CN/agent-tools.js +0 -1
- package/dist/translations/zh-CN/charts.js +0 -1
- package/dist/translations/zh-CN/conversation.js +0 -1
- package/dist/translations/zh-CN/data.js +0 -1
- package/dist/translations/zh-CN/forms.js +0 -1
- package/dist/translations/zh-CN/layout.js +0 -1
- package/dist/translations/zh-CN/media.js +0 -1
- package/dist/translations/zh-CN/overlays.js +0 -1
- package/dist/translations/zh-CN/retrieval.js +0 -1
- package/dist/translations/zh-CN/shared.js +0 -1
- package/dist/translations/zh-CN/utility.js +0 -1
- package/dist/translations/zh-CN/viewers.js +0 -5
- package/dist/translations/zh-CN.js +0 -1
- package/dist/translations/zh-TW/agent-tools.js +0 -1
- package/dist/translations/zh-TW/charts.js +0 -1
- package/dist/translations/zh-TW/conversation.js +0 -1
- package/dist/translations/zh-TW/data.js +0 -1
- package/dist/translations/zh-TW/forms.js +0 -1
- package/dist/translations/zh-TW/layout.js +0 -1
- package/dist/translations/zh-TW/media.js +0 -1
- package/dist/translations/zh-TW/overlays.js +0 -1
- package/dist/translations/zh-TW/retrieval.js +0 -1
- package/dist/translations/zh-TW/shared.js +0 -1
- package/dist/translations/zh-TW/utility.js +0 -1
- package/dist/translations/zh-TW/viewers.js +0 -5
- package/dist/translations/zh-TW.js +0 -1
- package/dist/translations/zu/agent-tools.js +0 -1
- package/dist/translations/zu/charts.js +0 -1
- package/dist/translations/zu/conversation.js +0 -1
- package/dist/translations/zu/data.js +0 -1
- package/dist/translations/zu/forms.js +0 -1
- package/dist/translations/zu/layout.js +0 -1
- package/dist/translations/zu/media.js +0 -1
- package/dist/translations/zu/overlays.js +0 -1
- package/dist/translations/zu/retrieval.js +0 -1
- package/dist/translations/zu/shared.js +0 -1
- package/dist/translations/zu/utility.js +0 -1
- package/dist/translations/zu/viewers.js +0 -5
- package/dist/translations/zu.js +0 -1
- package/vscode-css-data.json +0 -1
- package/vscode-html-data.json +0 -1
- package/web-types.json +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import{__decorate}from"tslib";import{snapshotStructuredData,admitSnapshotArray,snapshotArrayStillAdmitted as chartArrayIsStillAdmitted,projectSnapshotArray}from"../../../internal/structured-snapshot.js";import{LazyChartSyncController}from"./chart-sync-lazy.js";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{specialistTokens}from"../../../internal/specialist-tokens.styles.js";import{nextId,srOnly}from"../../../internal/a11y.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{observeReducedMotion}from"../../../internal/motion-observer.js";import{ThemeWatcher}from"../../../internal/theme-watcher.js";import{loadChartJs}from"./chart-core-loader.js";import{onAnnotationPluginRegistered}from"../../../internal/chart-annotation-registration.js";import{collectInitialSlotAssignment}from"../../../internal/initial-slot-collection.js";import{loadChartJsWithZoom,loadChartJsWithZoomResult,loadChartJsWithDataLabelsResult,loadChartJsWithAnnotationResult}from"./chart-feature-loader.js";import{styles}from"./chart.styles.js";import{chartSurfaceStyles}from"./chart-surface.styles.js";import"../../overlays/skeleton/skeleton.class.js";import{getListFormat,getNumberFormat}from"../../../internal/intl-cache.js";import{formatChartValue}from"./chart-number-format.js";import{escapeCsvField}from"../../utility/export-button/csv.js";import{finiteAdd,finiteNumber}from"../../../internal/numbers.js";import{isKeyboardFocusEvent}from"../../../internal/focus-modality.js";import{showChartActiveDatum}from"./chart-active-datum.js";import{devWarnOnce}from"../../../internal/dev-warning.js";import{getOwnDataDescriptor,MISSING_OWN_DATA_DESCRIPTOR,UNSAFE_OWN_DATA_DESCRIPTOR}from"../../../internal/data-descriptors.js";import{sanitizeCssLength}from"../../../internal/safe-css.js";import{AnnouncementSinkController}from"../../../internal/announcer.js";import{FALLBACK_GRID_COLOR,FALLBACK_LEGEND_COLOR,FALLBACK_TICK_COLOR,FALLBACK_TICK_FONT_SIZE,FALLBACK_TOOLTIP_BG,FALLBACK_TOOLTIP_TEXT,resolveCanvasColors}from"./chart-colors.js";import{ChartTokenCache}from"./chart-token-cache.js";import{chartDataTableVisible,hasSlottedChartDataTable}from"./chart-data-table.js";import{normalizeSize}from"../../../internal/variants.js";import{createForcedColorPattern,forcedColorEncoding,forcedColorsActive}from"./chart-forced-colors.js";import{legendVisibilityDetail,normalizeHiddenDatasets}from"./chart-legend-visibility.js";import{sampleChartTableIndexes}from"./chart-table-sampling.js";import{canvasSentence,canvasTextDirection,isolateCanvasLabel,isolateCanvasText,isolatedMessage,isolateScaleTickLabels,tooltipIsolationHook,bidiStyles,isolateHtml}from"./chart-bidi.js";import{LYRA_DEFAULT_chart,LYRA_DEFAULT_chartAnnotationsUnavailable,LYRA_DEFAULT_chartAxisTotal,LYRA_DEFAULT_chartBubblePointCoordinates,LYRA_DEFAULT_chartCategory,LYRA_DEFAULT_chartData,LYRA_DEFAULT_chartDataLabelsUnavailable,LYRA_DEFAULT_chartDataSampled,LYRA_DEFAULT_chartLabeledPoint,LYRA_DEFAULT_chartMissingLibrary,LYRA_DEFAULT_chartPlotSampled,LYRA_DEFAULT_chartPointCoordinates,LYRA_DEFAULT_chartPointLabel,LYRA_DEFAULT_chartPrimaryAxis,LYRA_DEFAULT_chartSecondaryAxis,LYRA_DEFAULT_chartSeriesLabel,LYRA_DEFAULT_chartSeriesNoData,LYRA_DEFAULT_chartStackTotalsUnavailable,LYRA_DEFAULT_chartSummary,LYRA_DEFAULT_chartSummaryEmpty,LYRA_DEFAULT_chartSummarySeparator,LYRA_DEFAULT_chartSummaryWithData,LYRA_DEFAULT_chartTotal,LYRA_DEFAULT_chartTrendDecreasing,LYRA_DEFAULT_chartTrendFlat,LYRA_DEFAULT_chartTrendIncreasing,LYRA_DEFAULT_chartTypeBar,LYRA_DEFAULT_chartTypeBubble,LYRA_DEFAULT_chartTypeDoughnut,LYRA_DEFAULT_chartTypeLine,LYRA_DEFAULT_chartTypePie,LYRA_DEFAULT_chartTypePolarArea,LYRA_DEFAULT_chartTypeRadar,LYRA_DEFAULT_chartTypeScatter,LYRA_DEFAULT_chartValueLabel,LYRA_DEFAULT_chartValuePercentageLabel,LYRA_DEFAULT_chartZoomUnavailable,LYRA_DEFAULT_liteChartMarkSummary,LYRA_DEFAULT_loading,LYRA_DEFAULT_noData,LYRA_DEFAULT_resetZoom}from"../../../internal/default-strings.generated.js";import{seriesPalette}from"./chart-colors.js";const CHART_TYPES=new Set(["line","bar","scatter","pie","doughnut","radar","polarArea","bubble"]);function normalizeChartType(value){return typeof value=="string"&&CHART_TYPES.has(value)?value:"bar"}function normalizeChartGrid(value){return value==="x"||value==="y"||value==="none"||value==="both"?value:"both"}function normalizeLegendPosition(value){return value==="left"||value==="top"||value==="right"||value==="bottom"||value==="center"||value==="chartArea"||value==="start"||value==="end"||value==="auto"?value:projectLegendPosition(value)??"top"}function isArcDatasetType(datasetType){return datasetType==="pie"||datasetType==="doughnut"||datasetType==="polarArea"}function isPointDatasetType(datasetType){return datasetType==="line"||datasetType==="radar"||datasetType==="scatter"||datasetType==="bubble"}function isChartRecord(value){try{return typeof value=="object"&&value!==null&&!Array.isArray(value)}catch{return!1}}const MAX_CHART_INPUT_ENTRIES=1e4,CHART_INPUT_CAP_WARNING_KEY="lr-chart-input-cap",MAX_CHART_CONFIGURATION_DEPTH=32,OMIT_CHART_CONFIGURATION_VALUE=Symbol("omit-chart-configuration-value");function warnChartInputCap(){devWarnOnce(CHART_INPUT_CAP_WARNING_KEY,"lr-chart: an input array exceeded 10,000 entries; only the first 10,000 are used.")}function admitChartArray(value){return admitSnapshotArray(value,warnChartInputCap)}function copyChartArrayEntries(admission){return projectSnapshotArray(admission,value=>value,{missing:void 0})??Object.freeze([])}function chartEnumerableKeys(value){try{return Object.keys(value)}catch{return}}const canonicalChartSeriesSnapshots=new WeakMap,admittedChartPlugins=new WeakSet,canonicalChartDatasetValues=new WeakMap,canonicalChartDatasetDataValues=new WeakMap;function canonicalChartSeries(value){if(isChartRecord(value))return canonicalChartSeriesSnapshots.has(value)?value:projectChartSeries(value)}function canonicalSeriesData(series){const canonical=canonicalChartSeries(series);return canonical?canonicalChartSeriesSnapshots.get(canonical)?.data??[]:[]}function canonicalSeriesPoints(series){const canonical=canonicalChartSeries(series);return canonical?canonicalChartSeriesSnapshots.get(canonical)?.points:void 0}function chartRecordValue(value,property2){return getOwnDataDescriptor(value,property2)}function projectChartNumberData(value,admission=admitChartArray(value)){return projectSnapshotArray(admission,entry=>typeof entry=="number"&&Number.isFinite(entry)?entry:null,{missing:null})}function projectChartPoint(value){if(!isChartRecord(value))return null;const x=chartRecordValue(value,"x"),y=chartRecordValue(value,"y"),r=chartRecordValue(value,"r"),id=chartRecordValue(value,"id"),label=chartRecordValue(value,"label");return x===MISSING_OWN_DATA_DESCRIPTOR||x===UNSAFE_OWN_DATA_DESCRIPTOR||y===MISSING_OWN_DATA_DESCRIPTOR||y===UNSAFE_OWN_DATA_DESCRIPTOR||r===UNSAFE_OWN_DATA_DESCRIPTOR||id===UNSAFE_OWN_DATA_DESCRIPTOR||label===UNSAFE_OWN_DATA_DESCRIPTOR||typeof x.value!="number"||!Number.isFinite(x.value)||typeof y.value!="number"||!Number.isFinite(y.value)?null:Object.freeze({x:x.value,y:y.value,...r!==MISSING_OWN_DATA_DESCRIPTOR&&typeof r.value=="number"&&Number.isFinite(r.value)&&r.value>=0?{r:r.value}:{},...id!==MISSING_OWN_DATA_DESCRIPTOR&&(typeof id.value=="string"||typeof id.value=="number"&&Number.isFinite(id.value))?{id:id.value}:{},...label!==MISSING_OWN_DATA_DESCRIPTOR&&typeof label.value=="string"?{label:label.value}:{}})}function projectChartDatum(value){if(typeof value=="number")return Number.isFinite(value)?value:null;if(typeof value=="string"||typeof value=="bigint")return value;if(!isChartRecord(value))return null;const x=chartRecordValue(value,"x"),y=chartRecordValue(value,"y"),r=chartRecordValue(value,"r"),id=chartRecordValue(value,"id"),label=chartRecordValue(value,"label"),output={};let hasValue=!1;for(const[property2,descriptor]of[["x",x],["y",y],["r",r]])descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||typeof descriptor.value!="number"||!Number.isFinite(descriptor.value)||(output[property2]=descriptor.value,hasValue=!0);return label!==MISSING_OWN_DATA_DESCRIPTOR&&label!==UNSAFE_OWN_DATA_DESCRIPTOR&&typeof label.value=="string"&&(output.label=label.value,hasValue=!0),id!==MISSING_OWN_DATA_DESCRIPTOR&&id!==UNSAFE_OWN_DATA_DESCRIPTOR&&(typeof id.value=="string"||typeof id.value=="number"&&Number.isFinite(id.value))&&(output.id=id.value,hasValue=!0),hasValue?Object.freeze(output):null}function projectChartDatasetValues(admission){return projectSnapshotArray(admission,projectChartDatum,{missing:null})??Object.freeze([])}function projectChartPoints(value,admission=admitChartArray(value)){return projectSnapshotArray(admission,projectChartPoint,{missing:null})}function projectChartStrings(value,admission=admitChartArray(value)){return projectSnapshotArray(admission,entry=>typeof entry=="string"?entry:"",{missing:""})}function projectChartPointRadii(value,admission=admitChartArray(value)){return projectSnapshotArray(admission,entry=>typeof entry=="number"&&Number.isFinite(entry)?entry:Number.NaN,{missing:Number.NaN})}function projectHiddenDatasetIndexes(value){if(value!==void 0)return projectSnapshotArray(admitChartArray(value),entry=>typeof entry=="number"&&Number.isInteger(entry)?entry:void 0,{compact:!0})??Object.freeze([])}const CHART_ANNOTATION_TONES=new Set(["neutral","brand","success","warning","danger"]);function projectChartAnnotations(value){if(!Array.isArray(value))return Object.freeze([]);const output=[];for(const annotation of value){if(!isChartRecord(annotation))continue;const own=key=>Object.hasOwn(annotation,key)?annotation[key]:void 0,axis=own("axis"),line=own("value"),from=own("from"),to=own("to"),label=own("label"),tone=own("tone");if(axis!==void 0&&axis!=="x"&&axis!=="y"||label!==void 0&&typeof label!="string"||tone!==void 0&&(typeof tone!="string"||!CHART_ANNOTATION_TONES.has(tone)))continue;const common={...axis==="x"||axis==="y"?{axis}:{},...typeof label=="string"?{label}:{},...typeof tone=="string"?{tone}:{}};typeof line=="number"&&Number.isFinite(line)?output.push(Object.freeze({...common,value:line})):typeof from=="number"&&Number.isFinite(from)&&typeof to=="number"&&Number.isFinite(to)&&output.push(Object.freeze({...common,from:Math.min(from,to),to:Math.max(from,to)}))}return Object.freeze(output)}const CHART_SERIES_PROPERTIES=["label","data","points","color","fill","width","dash","noTooltip","axis","stack","pointColors","pointRadius","segmentColors","type"];function projectChartSeries(value){try{if(!isChartRecord(value))return;const descriptors=new Map;for(const property2 of CHART_SERIES_PROPERTIES){const descriptor=chartRecordValue(value,property2);if(descriptor===UNSAFE_OWN_DATA_DESCRIPTOR)return;descriptors.set(property2,descriptor)}const valueAt=property2=>{const descriptor=descriptors.get(property2);return descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||descriptor===void 0?void 0:descriptor.value},label=valueAt("label");if(label!==void 0&&typeof label!="string")return;const output={label:label??""},rawData=valueAt("data"),rawDataAdmission=admitChartArray(rawData),data=projectChartNumberData(rawData,rawDataAdmission),rawPoints=valueAt("points"),rawPointsAdmission=admitChartArray(rawPoints),points=projectChartPoints(rawPoints,rawPointsAdmission),color=valueAt("color"),fill=valueAt("fill"),width=valueAt("width"),dash=valueAt("dash"),noTooltip=valueAt("noTooltip"),axis=valueAt("axis"),stack=valueAt("stack"),pointColors=projectChartStrings(valueAt("pointColors")),pointRadius=valueAt("pointRadius"),segmentColors=projectChartStrings(valueAt("segmentColors")),type=valueAt("type");if(data&&rawDataAdmission&&(output.data=rawDataAdmission.source),points&&rawPointsAdmission&&(output.points=rawPointsAdmission.source),typeof color=="string")output.color=color;else{const colors=projectChartStrings(color);colors&&(output.color=colors)}if(typeof fill=="boolean"&&(output.fill=fill),typeof width=="number"&&Number.isFinite(width)&&(output.width=width),typeof dash=="boolean"&&(output.dash=dash),typeof noTooltip=="boolean"&&(output.noTooltip=noTooltip),(axis==="y"||axis==="y2")&&(output.axis=axis),typeof stack=="string"&&(output.stack=stack),pointColors&&(output.pointColors=pointColors),typeof pointRadius=="number"&&Number.isFinite(pointRadius))output.pointRadius=pointRadius;else{const radii=projectChartPointRadii(pointRadius);radii&&(output.pointRadius=radii)}segmentColors&&(output.segmentColors=segmentColors),(type==="line"||type==="bar")&&(output.type=type);const series=Object.freeze(output);return canonicalChartSeriesSnapshots.set(series,{data:data??Object.freeze([]),...points?{points}:{}}),series}catch{return}}function normalizeChartSeries(value){return projectSnapshotArray(admitChartArray(value),canonicalChartSeries,{compact:!0})??Object.freeze([])}function isSafeChartConfigurationRecord(value){if(!isChartRecord(value))return!1;try{const prototype=Object.getPrototypeOf(value);if(prototype===null)return!0;const constructor=getOwnDataDescriptor(prototype,"constructor");if(constructor===MISSING_OWN_DATA_DESCRIPTOR||constructor===UNSAFE_OWN_DATA_DESCRIPTOR||typeof constructor.value!="function")return!1;const name=getOwnDataDescriptor(constructor.value,"name"),constructorPrototype=getOwnDataDescriptor(constructor.value,"prototype");return name!==MISSING_OWN_DATA_DESCRIPTOR&&name!==UNSAFE_OWN_DATA_DESCRIPTOR&&name.value==="Object"&&constructorPrototype!==MISSING_OWN_DATA_DESCRIPTOR&&constructorPrototype!==UNSAFE_OWN_DATA_DESCRIPTOR&&constructorPrototype.value===prototype}catch{return!1}}function projectLegendPosition(value){if(!isSafeChartConfigurationRecord(value))return;const keys=chartEnumerableKeys(value);if(!keys||keys.length>MAX_CHART_INPUT_ENTRIES)return;const output={};for(const key of keys){if(UNSAFE_KEYS.has(key))return;const descriptor=chartRecordValue(value,key);if(descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||!descriptor.enumerable||typeof descriptor.value!="number"||!Number.isFinite(descriptor.value))return;output[key]=descriptor.value}return Object.freeze(output)}function copyChartConfigurationValue(value,profile="chart"){const snapshot=snapshotStructuredData(value,{profile,omitKeys:UNSAFE_KEYS,onArrayTruncate:warnChartInputCap,onClone:(source,copied)=>{const canonical=canonicalChartDatasetDataValues.get(source);canonical&&canonicalChartDatasetDataValues.set(copied,canonical)}});return snapshot.value===void 0&&value!==void 0?OMIT_CHART_CONFIGURATION_VALUE:snapshot.value}function projectChartPlugins(value,admission=admitChartArray(value)){return projectSnapshotArray(admission,candidate=>{if(candidate===null||typeof candidate!="object"&&typeof candidate!="function")return;const plugin=candidate;if(admittedChartPlugins.has(plugin))return plugin;const id=chartRecordValue(plugin,"id");if(!(id===MISSING_OWN_DATA_DESCRIPTOR||id===UNSAFE_OWN_DATA_DESCRIPTOR||typeof id.value!="string"||id.value.trim()===""))return admittedChartPlugins.add(plugin),plugin},{compact:!0})??Object.freeze([])}function projectChartDatasetConfiguration(value){if(!isSafeChartConfigurationRecord(value))return;const keys=chartEnumerableKeys(value);if(!keys)return;const output=Object.create(null),priorCanonicalValues=canonicalChartDatasetValues.get(value);let canonicalValues;for(const key of keys){if(UNSAFE_KEYS.has(key))continue;const descriptor=chartRecordValue(value,key);if(descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||!descriptor.enumerable)continue;const candidate=descriptor.value,array=admitChartArray(candidate);if(key==="data"){if(array){if(!chartArrayIsStillAdmitted(array)){output[key]=Object.freeze([]),canonicalValues=Object.freeze([]);continue}const copied=copyChartArrayEntries(array);output[key]=copied;const canonical=priorCanonicalValues??canonicalChartDatasetDataValues.get(array.source)??projectChartDatasetValues(array);canonicalValues=canonical,canonicalChartDatasetDataValues.set(copied,canonical)}continue}if(key==="label"){typeof candidate=="string"||typeof candidate=="number"||typeof candidate=="boolean"||typeof candidate=="bigint"?output[key]=candidate:array&&(output[key]=copyChartArrayEntries(array));continue}if(key==="hidden"||key==="noTooltip"){typeof candidate=="boolean"&&(output[key]=candidate);continue}if(key==="axis"||key==="yAxisID"||key==="type"||key==="stack"){typeof candidate=="string"&&(output[key]=candidate);continue}output[key]=array?copyChartArrayEntries(array):candidate}const dataset=Object.freeze(output);return canonicalValues&&canonicalChartDatasetValues.set(dataset,canonicalValues),dataset}function projectChartDatasetConfigurations(value,admission=admitChartArray(value)){return projectSnapshotArray(admission,projectChartDatasetConfiguration,{compact:!0})??Object.freeze([])}function projectChartDataConfiguration(value){if(!isSafeChartConfigurationRecord(value))return;const keys=chartEnumerableKeys(value);if(!keys)return;const output=Object.create(null);for(const key of keys){if(UNSAFE_KEYS.has(key))continue;const descriptor=chartRecordValue(value,key);if(!(descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||!descriptor.enumerable)){if(key==="labels"){const labels=admitChartArray(descriptor.value);output[key]=labels?copyChartArrayEntries(labels):Object.freeze([]);continue}if(key==="datasets"){output[key]=projectChartDatasetConfigurations(descriptor.value);continue}output[key]=descriptor.value}}return Object.freeze(output)}function projectChartConfiguration(value){if(!isSafeChartConfigurationRecord(value))return;const output=Object.create(null),type=chartRecordValue(value,"type"),data=chartRecordValue(value,"data"),options=chartRecordValue(value,"options"),plugins=chartRecordValue(value,"plugins");type!==MISSING_OWN_DATA_DESCRIPTOR&&type!==UNSAFE_OWN_DATA_DESCRIPTOR&&typeof type.value=="string"&&(output.type=type.value);for(const[property2,descriptor]of[["data",data],["options",options]]){if(descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR)continue;const copied=copyChartConfigurationValue(descriptor.value,property2==="data"?"chartData":"chart");if(copied!==OMIT_CHART_CONFIGURATION_VALUE){if(property2==="data"){const projected=projectChartDataConfiguration(copied);output[property2]=projected??copied;continue}output[property2]=copied}}if(plugins!==MISSING_OWN_DATA_DESCRIPTOR&&plugins!==UNSAFE_OWN_DATA_DESCRIPTOR){const pluginArray=admitChartArray(plugins.value);if(pluginArray)output.plugins=projectChartPlugins(plugins.value,pluginArray);else{const copied=copyChartConfigurationValue(plugins.value);copied!==OMIT_CHART_CONFIGURATION_VALUE&&(output.plugins=copied)}}return Object.freeze(output)}const UNSAFE_KEYS=new Set(["__proto__","constructor","prototype"]);function deepMerge(base,override,seen=new WeakMap){if(!isSafeChartConfigurationRecord(base)||!isSafeChartConfigurationRecord(override))return override===void 0?base:override;const baseRecord=base,overrideRecord=override,baseKeys=chartEnumerableKeys(baseRecord),overrideKeys=chartEnumerableKeys(overrideRecord);if(!baseKeys||!overrideKeys)return override;const previous=seen.get(overrideRecord);if(previous!==void 0)return previous;const result={};for(const key of baseKeys){if(UNSAFE_KEYS.has(key))continue;const descriptor=chartRecordValue(baseRecord,key);descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||!descriptor.enumerable||(result[key]=descriptor.value)}seen.set(overrideRecord,result);try{for(const key of overrideKeys){if(UNSAFE_KEYS.has(key))continue;const descriptor=chartRecordValue(overrideRecord,key);if(descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||!descriptor.enumerable)continue;const baseDescriptor=chartRecordValue(baseRecord,key),baseValue=baseDescriptor===MISSING_OWN_DATA_DESCRIPTOR||baseDescriptor===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:baseDescriptor.value;result[key]=deepMerge(baseValue,descriptor.value,seen)}}finally{seen.delete(overrideRecord)}return result}function normalizedChartPoint(value){return projectChartPoint(projectChartDatum(value))}function chartNumericValue(value){const numeric=typeof value=="number"?value:typeof value=="string"||typeof value=="bigint"?Number(value):Number.NaN;return Number.isFinite(numeric)?numeric:void 0}function chartDatumNumericValue(value){const projected=projectChartDatum(value);if(isChartRecord(projected))for(const property2 of["y","r","x"]){const descriptor=chartRecordValue(projected,property2);if(descriptor!==MISSING_OWN_DATA_DESCRIPTOR&&descriptor!==UNSAFE_OWN_DATA_DESCRIPTOR&&typeof descriptor.value=="number"&&Number.isFinite(descriptor.value))return descriptor.value}return chartNumericValue(projected)}function nonNegativeFinite(value,fallback){return typeof value=="number"&&Number.isFinite(value)&&value>=0?value:fallback}function labelText(value,depth=0){if(value==null)return"";if(typeof value=="string"||typeof value=="number"||typeof value=="boolean"||typeof value=="bigint")return String(value);const admission=admitChartArray(value);if(depth<MAX_CHART_CONFIGURATION_DEPTH&&admission){const values=[];for(let index=0;index<admission.length;index+=1){const descriptor=chartRecordValue(admission.source,String(index));values.push(descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR?"":labelText(descriptor.value,depth+1))}return values.join(" ")}return""}function chartDatasetValue(dataset,property2){if(!isChartRecord(dataset))return;const descriptor=chartRecordValue(dataset,property2);return descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:descriptor.value}function chartDatasetLabel(dataset){return labelText(chartDatasetValue(dataset,"label"))}function chartDatasetValues(dataset){if(isChartRecord(dataset)){const snapshot=canonicalChartDatasetValues.get(dataset);if(snapshot)return snapshot}const data=chartDatasetValue(dataset,"data"),admission=admitChartArray(data);return admission?canonicalChartDatasetDataValues.get(admission.source)??copyChartArrayEntries(admission):Object.freeze([])}function chartDatasetPeerValues(dataset){const admission=admitChartArray(chartDatasetValue(dataset,"data"));return admission?copyChartArrayEntries(admission):Object.freeze([])}function chartIndex(value){return typeof value=="number"&&Number.isSafeInteger(value)&&value>=0?value:void 0}function chartCallbackDatasetIndex(value){return chartIndex(chartDatasetValue(value,"datasetIndex"))}function chartCallbackIndexes(value){const datasetIndex=chartCallbackDatasetIndex(value),index=chartIndex(chartDatasetValue(value,"index"))??chartIndex(chartDatasetValue(value,"dataIndex"));return datasetIndex===void 0||index===void 0?void 0:{datasetIndex,index}}function projectChartLegendItem(value){if(!isChartRecord(value))return;const keys=chartEnumerableKeys(value);if(!keys||keys.length>MAX_CHART_INPUT_ENTRIES)return;const output=Object.create(null);for(const key of keys){if(UNSAFE_KEYS.has(key))continue;const descriptor=chartRecordValue(value,key);descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||!descriptor.enumerable||(output[key]=descriptor.value)}return output}function projectChartLegendItems(value){const admission=admitChartArray(value);if(!admission||!chartArrayIsStillAdmitted(admission))return;const output=[];for(let index=0;index<admission.length;index+=1){const descriptor=chartRecordValue(admission.source,String(index));if(descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR)continue;const item=projectChartLegendItem(descriptor.value);item&&output.push(item)}return Object.freeze(output)}function chartDatasetBoolean(dataset,property2){const value=chartDatasetValue(dataset,property2);return typeof value=="boolean"?value:void 0}function chartDatasetAxis(dataset){return chartDatasetValue(dataset,"yAxisID")==="y2"||chartDatasetValue(dataset,"axis")==="y2"?"y2":"y"}function chartDatasetStack(dataset){const value=chartDatasetValue(dataset,"stack");return typeof value=="string"?value:void 0}function isDenseChartSize(size){const step=normalizeSize(size);return step==="s"||step==="xs"||step==="2xs"}class LyraChart extends LyraElement{static{this.defaultStrings={...super.defaultStrings,chart:LYRA_DEFAULT_chart,chartAnnotationsUnavailable:LYRA_DEFAULT_chartAnnotationsUnavailable,chartAxisTotal:LYRA_DEFAULT_chartAxisTotal,chartBubblePointCoordinates:LYRA_DEFAULT_chartBubblePointCoordinates,chartCategory:LYRA_DEFAULT_chartCategory,chartData:LYRA_DEFAULT_chartData,chartDataLabelsUnavailable:LYRA_DEFAULT_chartDataLabelsUnavailable,chartDataSampled:LYRA_DEFAULT_chartDataSampled,chartLabeledPoint:LYRA_DEFAULT_chartLabeledPoint,chartMissingLibrary:LYRA_DEFAULT_chartMissingLibrary,chartPlotSampled:LYRA_DEFAULT_chartPlotSampled,chartPointCoordinates:LYRA_DEFAULT_chartPointCoordinates,chartPointLabel:LYRA_DEFAULT_chartPointLabel,chartPrimaryAxis:LYRA_DEFAULT_chartPrimaryAxis,chartSecondaryAxis:LYRA_DEFAULT_chartSecondaryAxis,chartSeriesLabel:LYRA_DEFAULT_chartSeriesLabel,chartSeriesNoData:LYRA_DEFAULT_chartSeriesNoData,chartStackTotalsUnavailable:LYRA_DEFAULT_chartStackTotalsUnavailable,chartSummary:LYRA_DEFAULT_chartSummary,chartSummaryEmpty:LYRA_DEFAULT_chartSummaryEmpty,chartSummarySeparator:LYRA_DEFAULT_chartSummarySeparator,chartSummaryWithData:LYRA_DEFAULT_chartSummaryWithData,chartTotal:LYRA_DEFAULT_chartTotal,chartTrendDecreasing:LYRA_DEFAULT_chartTrendDecreasing,chartTrendFlat:LYRA_DEFAULT_chartTrendFlat,chartTrendIncreasing:LYRA_DEFAULT_chartTrendIncreasing,chartTypeBar:LYRA_DEFAULT_chartTypeBar,chartTypeBubble:LYRA_DEFAULT_chartTypeBubble,chartTypeDoughnut:LYRA_DEFAULT_chartTypeDoughnut,chartTypeLine:LYRA_DEFAULT_chartTypeLine,chartTypePie:LYRA_DEFAULT_chartTypePie,chartTypePolarArea:LYRA_DEFAULT_chartTypePolarArea,chartTypeRadar:LYRA_DEFAULT_chartTypeRadar,chartTypeScatter:LYRA_DEFAULT_chartTypeScatter,chartValueLabel:LYRA_DEFAULT_chartValueLabel,chartValuePercentageLabel:LYRA_DEFAULT_chartValuePercentageLabel,chartZoomUnavailable:LYRA_DEFAULT_chartZoomUnavailable,liteChartMarkSummary:LYRA_DEFAULT_liteChartMarkSummary,loading:LYRA_DEFAULT_loading,noData:LYRA_DEFAULT_noData,resetZoom:LYRA_DEFAULT_resetZoom}}static{this.collectionSupport=collectionSupport}static{this.immutableEventDetails=Object.freeze(["lr-legend-visibility-change-request","lr-legend-visibility-change","lr-datum-visibility-change-request","lr-datum-visibility-change"])}static{this.ownedCollectionProperties=Object.freeze(["annotations","hiddenDatasets"])}static{this.styles=[LyraElement.styles,specialistTokens,chartSurfaceStyles,styles,srOnly,bidiStyles]}constructor(){super(),this.canvasTokens=new ChartTokenCache(this),this.type="bar",this.labels=[],this._datasets=Object.freeze([]),this.datasetsSource=this._datasets,this._hiddenDatums=Object.freeze([]),this.hiddenDatumsSource=this._hiddenDatums,this.legendMode="auto",this.legendDisplay="auto",this.description=null,this.grid="both",this.axes="both",this.size="m",this.indexAxis="x",this.label=null,this.legendPosition="top",this.scaleType="linear",this.annotations=[],this.max=null,this.min=null,this._plugins=Object.freeze([]),this.pluginsSource=this._plugins,this.area=!1,this.zoomable=!1,this.height="280px",this.xLabel=null,this.yLabel=null,this.y2Label="",this.withoutZeroBaseline=!1,this.withDataTable=!1,this.dataTableToggle=!1,this.dataTableExpandedOverride=null,this.dataTableId=nextId("chart-data-table"),this.stacked=!1,this.withoutAnimation=!1,this.withoutLegend=!1,this.withoutTooltip=!1,this.dataLabels=!1,this.stackTotals=!1,this.configSource=void 0,this.loading=!0,this.loadFailed=!1,this.loadLibrary=withZoom=>withZoom?loadChartJsWithZoom():loadChartJs(),this.loadZoomFeature=()=>loadChartJsWithZoomResult(),this.loadDataLabelsFeature=()=>loadChartJsWithDataLabelsResult(),this.loadAnnotationFeature=()=>loadChartJsWithAnnotationResult(),this.loadGeneration=0,this.zoomLoadGeneration=0,this.dataLabelsLoadGeneration=0,this.annotationLoadGeneration=0,this.zoomFeatureState="idle",this.dataLabelsFeatureState="idle",this.annotationFeatureState="idle",this.zoomed=!1,this.visible=!0,this.intersectionGeneration=0,this.scaledSliceDatasets=new Set,this.autoLegendPosition="right",this.chartAreaUpdateQueued=!1,this.chartAreaPlugin={id:"lyra-chart-area",afterLayout:chart=>this.updateChartArea(chart),beforeTooltipDraw:tooltipIsolationHook(()=>this.effectiveDirection)},this.builtPlugins=[],this.suppressZoomComplete=!1,this.descriptionId=nextId("chart-description"),this.keyboardDatumIndex=0,this.keyboardDatumAnnouncement="",this.announcements=new AnnouncementSinkController(this),this.lastDataTruncationAnnouncement="",this.isMounting=!0,this.announcedFeatureWarnings=new Set,this.syncGroup="",this.chartSync=new LazyChartSyncController(this,(label,index)=>this.syncPresentation(label,index),()=>this.resetSyncTooltip(),target=>target===this.canvasEl),this.onReducedMotionChange=()=>{this.isConnected&&this.drawIfVisible()},this.forcedColorPatterns=new Map,this.visualPositions=new WeakMap,this.keyboardDatumShown=!1,this.onCanvasBlur=()=>{this.showKeyboardDatum(void 0)},new ThemeWatcher(this,()=>{this.chart&&this.canvasTokens.hasThemeChanged()&&this.refreshTheme()})}canonicalLabels(){const source=this.labels;if(this.labelsSnapshot&&Object.is(this.labelsSnapshot.source,source))return this.labelsSnapshot.value;const value=projectChartStrings(source)??Object.freeze([]);return this.labelsSnapshot={source,value},value}canonicalAnnotations(){const source=this.annotations;if(this.annotationsSnapshot&&Object.is(this.annotationsSnapshot.source,source))return this.annotationsSnapshot.value;const value=projectChartAnnotations(source);return this.annotationsSnapshot={source,value},value}canonicalHiddenDatasets(){const source=this.hiddenDatasets;if(this.hiddenDatasetsSnapshot&&Object.is(this.hiddenDatasetsSnapshot.source,source))return this.hiddenDatasetsSnapshot.value;const value=source===void 0?void 0:Object.freeze(Array.isArray(source)?source.filter(index=>typeof index=="number"&&Number.isInteger(index)):[]);return this.hiddenDatasetsSnapshot={source,value},value}get datasets(){return this._datasets}set datasets(value){if(Object.is(value,this.datasetsSource)||Object.is(value,this._datasets))return;const previous=this._datasets;this._datasets=normalizeChartSeries(value),this.datasetsSource=value,this.requestUpdate("datasets",previous)}get hiddenDatums(){return this._hiddenDatums}set hiddenDatums(value){if(Object.is(value,this.hiddenDatumsSource)||Object.is(value,this._hiddenDatums))return;const previous=this._hiddenDatums;this._hiddenDatums=projectHiddenDatasetIndexes(value)??Object.freeze([]),this.hiddenDatumsSource=value,this.requestUpdate("hiddenDatums",previous)}get compactPlot(){return isDenseChartSize(this.size)}get plugins(){return this._plugins}set plugins(value){if(Object.is(value,this.pluginsSource)||Object.is(value,this._plugins))return;const previous=this._plugins;this._plugins=projectChartPlugins(value),this.pluginsSource=value,this.requestUpdate("plugins",previous)}get dataTableVisible(){return chartDataTableVisible(this.withDataTable,this.dataTableToggle,this.dataTableExpandedOverride)}toggleDataTable(){this.dataTableExpandedOverride=!this.dataTableVisible}get config(){return this._config}set config(value){if(Object.is(value,this.configSource)||value!==void 0&&Object.is(value,this._config))return;const previous=this._config;this._config=projectChartConfiguration(value),this.configSource=value,this.requestUpdate("config",previous)}normalizeEffectiveConfig(config){return config}effectiveConfig(){return this.normalizeEffectiveConfig(this.config??this.slottedConfig)}onConfigSlotChange(event){const slot=event.currentTarget;slot===this.configSlotEl&&this.collectConfigFromSlot(slot)}collectConfigFromSlot(slot){const script=slot.assignedElements({flatten:!0}).find(element=>element.localName==="script"&&element.type.trim().toLowerCase()==="application/json");let next;if(script)try{const parsed=JSON.parse(script.textContent??"");next=projectChartConfiguration(parsed)}catch{next=void 0}this.slottedConfig=next}effectiveData(){const labels=this.canonicalLabels(),datasets=this.datasets,config=this.config??this.slottedConfig,memo=this.effectiveDataMemo;if(memo?.labels===labels&&memo.datasets===datasets&&memo.config===config)return memo.value;const generated={labels:[...labels],datasets:datasets.map(series=>{const{points:_points,...safeSeries}=series;return{...safeSeries,data:[...canonicalSeriesPoints(series)??canonicalSeriesData(series)],yAxisID:series.axis==="y2"?"y2":"y"}})},override=projectChartDataConfiguration(this.effectiveConfig()?.data),merged=override?deepMerge(generated,override):generated,projected=projectChartDataConfiguration(merged),value={labels:projected?.labels??[],datasets:projected?.datasets??[]};return this.effectiveDataMemo={labels,datasets,config,value},value}callbackDatasetIndex(value,effective=this.effectiveData()){const datasetIndex=chartCallbackDatasetIndex(value);if(datasetIndex===void 0)return;const visualDatasetCount=this.visualDatasetSourceIndexes?.length??effective.datasets.length;if(datasetIndex>=visualDatasetCount)return;const sourceDatasetIndex=this.visualDatasetSourceIndexes?.[datasetIndex]??datasetIndex;return effective.datasets[sourceDatasetIndex]?datasetIndex:void 0}callbackIndexes(value,effective=this.effectiveData()){const hit=chartCallbackIndexes(value);if(!hit)return;const visualDatasetCount=this.visualDatasetSourceIndexes?.length??effective.datasets.length;if(hit.datasetIndex>=visualDatasetCount)return;const sourceDatasetIndex=this.visualDatasetSourceIndexes?.[hit.datasetIndex]??hit.datasetIndex,dataset=effective.datasets[sourceDatasetIndex];if(!dataset)return;const visualRowCount=this.visualRowSourceIndexes?.length??this.datasetValues(dataset).length;return hit.index<visualRowCount?hit:void 0}effectiveHiddenDatasetIndexes(){const effective=this.effectiveData(),controlled=normalizeHiddenDatasets(this.canonicalHiddenDatasets(),effective.datasets.length);return controlled!==void 0?controlled:effective.datasets.flatMap((dataset,index)=>chartDatasetBoolean(dataset,"hidden")===!0?[index]:[])}applyDatasetVisibility(){if(!this.chart)return!1;const chart=this.chart,sourceDatasetCount=this.effectiveData().datasets.length,datasetCount=this.visualDatasetSourceIndexes?.length??sourceDatasetCount,controlled=normalizeHiddenDatasets(this.canonicalHiddenDatasets(),sourceDatasetCount);if(controlled===void 0){for(let index=0;index<datasetCount;index++)try{const metadata=chart.getDatasetMeta?.(index);metadata&&(metadata.hidden=null)}catch{}return datasetCount>0}const hidden=new Set(controlled);for(let index=0;index<datasetCount;index++){const sourceIndex=this.visualDatasetSourceIndexes?.[index]??index;try{chart.setDatasetVisibility(index,!hidden.has(sourceIndex))}catch{}}return datasetCount>0}isSliceChart(){return["pie","doughnut","polarArea"].includes(this.effectiveType())}applyDatumVisibility(){if(!this.chart||!this.isSliceChart())return!1;const sample=this.dataTableSample(),rows=this.visualRowSourceIndexes,hidden=new Set(normalizeHiddenDatasets(this.hiddenDatums,sample.rowCount));let changed=!1;for(let index=0;index<(rows?.length??sample.rowCount);index++){const visible=!hidden.has(rows?.[index]??index);try{this.chart.getDataVisibility?.(index)===!visible&&(this.chart.toggleDataVisibility?.(index),changed=!0)}catch{}}return changed}hasExplicitConfigData(){const config=this.effectiveConfig();if(!isSafeChartConfigurationRecord(config))return!1;const data=chartRecordValue(config,"data");return data!==MISSING_OWN_DATA_DESCRIPTOR&&data!==UNSAFE_OWN_DATA_DESCRIPTOR}datasetLabel(dataset,index){return chartDatasetLabel(dataset)||this.localize("chartPointLabel",void 0,{n:getNumberFormat(this.effectiveLocale).format(index+1)})}datasetValues(dataset){return chartDatasetValues(dataset)}isPointDataset(dataset){const values=this.datasetValues(dataset);return this.effectiveType()==="scatter"||this.effectiveType()==="bubble"||values.some(value=>normalizedChartPoint(value)!==null)}appendData(label,values,maxPoints=0){const requested=Number.isFinite(maxPoints)?Math.max(0,Math.floor(maxPoints)):0,limit=requested>0?Math.min(requested,MAX_CHART_INPUT_ENTRIES):MAX_CHART_INPUT_ENTRIES,appendedValues=projectChartNumberData(values)??Object.freeze([]);if(this.hasExplicitConfigData()){const effective=this.effectiveData();let domainLength2=effective.labels.length;for(const dataset of effective.datasets)this.isPointDataset(dataset)||(domainLength2=Math.max(domainLength2,this.datasetValues(dataset).length));const labels2=[...effective.labels,...Array.from({length:Math.max(0,domainLength2-effective.labels.length)},()=>""),label],effectiveConfig=this.effectiveConfig(),currentData=projectChartDataConfiguration(effectiveConfig?.data)??{},explicitLabels=admitChartArray(currentData.labels)!==void 0,explicitDatasets=admitChartArray(currentData.datasets)!==void 0,nextLabels=labels2.slice(-limit);if(explicitLabels||(this.labels=nextLabels.map(labelText)),!explicitDatasets){const datasets2=this.datasets.map((series,index)=>{if(canonicalSeriesPoints(series)!==void 0)return series;const current=canonicalSeriesData(series),data=[...current,...Array.from({length:Math.max(0,domainLength2-current.length)},()=>null),appendedValues[index]??null];return{...series,data:data.slice(-limit)}});this.datasets=datasets2}if(explicitLabels||explicitDatasets){const nextData={...currentData};explicitLabels&&(nextData.labels=nextLabels),explicitDatasets&&(nextData.datasets=effective.datasets.map((dataset,index)=>{if(this.isPointDataset(dataset))return dataset;const current=this.datasetValues(dataset),peer=chartDatasetPeerValues(dataset),padding=Array.from({length:Math.max(0,domainLength2-current.length)},()=>null),data=[...peer,...padding,appendedValues[index]??null],canonical=[...current,...padding,appendedValues[index]??null],nextData2=data.slice(-limit),nextCanonical=canonical.slice(-limit);return canonicalChartDatasetDataValues.set(nextData2,Object.freeze(nextCanonical)),{...dataset,data:nextData2}})),this.config={...effectiveConfig,data:nextData}}return}const currentLabels=this.canonicalLabels();let domainLength=currentLabels.length;for(const series of this.datasets)canonicalSeriesPoints(series)===void 0&&(domainLength=Math.max(domainLength,canonicalSeriesData(series).length));const labels=[...currentLabels,...Array.from({length:Math.max(0,domainLength-currentLabels.length)},()=>""),label],datasets=this.datasets.map((series,index)=>{if(canonicalSeriesPoints(series)!==void 0)return series;const current=canonicalSeriesData(series),data=[...current,...Array.from({length:Math.max(0,domainLength-current.length)},()=>null),appendedValues[index]??null];return{...series,data:data.slice(-limit)}});this.labels=labels.slice(-limit),this.datasets=datasets}exportData(format){if(format==="png")return this.chart?.toBase64Image?.()??"";const effective=this.effectiveData(),columns=effective.datasets.map((dataset,datasetIndex)=>{const values=this.datasetValues(dataset),label=this.datasetLabel(dataset,datasetIndex),points=values.map(normalizedChartPoint).filter(point=>point!==null);return{dataset,label,point:this.isPointDataset(dataset),radius:points.some(point=>point.r!=null),pointLabel:points.some(point=>point.label!=null)}}),header=["label",...columns.flatMap(column=>column.point?[`${column.label} x`,`${column.label} y`,...column.radius?[`${column.label} r`]:[],...column.pointLabel?[`${column.label} label`]:[]]:[column.label])].map(escapeCsvField).join(",");let rowCount=effective.labels.length;for(const dataset of effective.datasets)rowCount=Math.max(rowCount,this.datasetValues(dataset).length);const exportCell=(value,metadata)=>typeof value!="number"||!Number.isFinite(value)?value??"":this.formatExportValue(value,metadata)??value,rows=Array.from({length:rowCount},(_,index)=>{const firstPoint=effective.datasets.map(dataset=>normalizedChartPoint(this.datasetValues(dataset)[index])).find(point=>point!==null),label=labelText(effective.labels[index])||firstPoint?.label||"";return[label,...columns.flatMap((column,datasetIndex)=>{const value=this.datasetValues(column.dataset)[index],axis=this.datasetValueAxis(column.dataset),metadata={datasetIndex,index,label:label||void 0,seriesLabel:column.label,...axis===void 0?{}:{axis}};if(!column.point)return[exportCell(value,metadata)];const point=normalizedChartPoint(value);return point?[exportCell(point.x,{...metadata,statistic:"x"}),exportCell(point.y,{...metadata,statistic:"y"}),...column.radius?[point.r==null?"":exportCell(point.r,{...metadata,statistic:"r"})]:[],...column.pointLabel?[point.label??""]:[]]:["","",...column.radius?[""]:[],...column.pointLabel?[""]:[]]})].map(escapeCsvField).join(",")});return[header,...rows].join(`\r
|
|
2
|
-
`)}connectedCallback(){super.connectedCallback(),this.stopAnnotationRegistrationWatch?.(),this.stopAnnotationRegistrationWatch=onAnnotationPluginRegistered(()=>this.rebuildAfterAnnotationRegistration()),this.visible=!this.ownerWindow?.IntersectionObserver,this.armReducedMotionWatcher();const ownerWindow=this.ownerWindow,ResizeObserverCtor=ownerWindow?.ResizeObserver;ResizeObserverCtor&&(this.resizeObserver=new ResizeObserverCtor(entries=>{const width=entries[0]?.contentRect.width??this.getBoundingClientRect().width;if(Number.isFinite(width)&&this.lastObservedInlineSize!==void 0&&Math.abs(width-this.lastObservedInlineSize)<.5||(this.lastObservedInlineSize=width,this.resizeDrawFrame!==void 0))return;const frameOwner=this.ownerWindow;frameOwner&&(this.resizeDrawFrameOwner=frameOwner,this.resizeDrawFrame=frameOwner.requestAnimationFrame(()=>{this.resizeDrawFrame=void 0,this.resizeDrawFrameOwner=void 0,!(!this.isConnected||this.ownerWindow!==frameOwner)&&(this.updateAutoLegendPosition()||this.drawIfVisible())}))}),this.resizeObserver.observe(this)),this.updateAutoLegendPosition();const generation=++this.loadGeneration;this.zoomable&&this.requestZoomFeature(),this.loadLibrary(this.zoomable).then(async mod=>{try{await this.updateComplete}catch{return}if(await new Promise(resolve=>this.updateBrowserDerivedState(resolve)),!(generation!==this.loadGeneration||!this.isConnected)){if(this.loading=!1,!mod){this.loadFailed=!0;return}this.loadFailed=!1,this.chartJsModule=mod,this.drawIfVisible()}}),this.needsDataLabels&&this.requestDataLabelsFeature(),this.needsAnnotations&&this.requestAnnotationFeature();const IntersectionObserverCtor=ownerWindow?.IntersectionObserver;if(IntersectionObserverCtor){const observerGeneration=++this.intersectionGeneration,observer=new IntersectionObserverCtor(entries=>{if(observerGeneration!==this.intersectionGeneration||this.intersectionObserver!==observer||!this.isConnected||this.ownerWindow!==ownerWindow)return;const wasVisible=this.visible;this.visible=entries[0]?.isIntersecting??!0,this.visible&&!wasVisible&&this.drawIfVisible()});this.intersectionObserver=observer,observer.observe(this)}}disconnectedCallback(){this.chartSync.disconnect(),super.disconnectedCallback(),this.stopAnnotationRegistrationWatch?.(),this.stopAnnotationRegistrationWatch=void 0,this.lastDataTruncationAnnouncement="",this.isMounting=!0,this.announcedFeatureWarnings.clear(),this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.resizeDrawFrame!==void 0&&this.resizeDrawFrameOwner?.cancelAnimationFrame(this.resizeDrawFrame),this.resizeDrawFrame=void 0,this.resizeDrawFrameOwner=void 0,this.lastObservedInlineSize=void 0,this.loadGeneration+=1,this.zoomLoadGeneration+=1,this.dataLabelsLoadGeneration+=1,this.annotationLoadGeneration+=1,this.discardChart(!1),this.builtPlugins=[],this.intersectionObserver?.disconnect(),this.intersectionObserver=void 0,this.intersectionGeneration+=1,this.visible=!0,this.disarmReducedMotionWatcher()}adoptedCallback(){this.chartSync.disconnect(),this.canvasTokens.clear(),super.adoptedCallback(),this.announcements.adopted(),this.requestUpdate(),this.disarmReducedMotionWatcher(),this.armReducedMotionWatcher()}armReducedMotionWatcher(){this.stopReducedMotionWatch||(this.disarmReducedMotionWatcher(),this.stopReducedMotionWatch=observeReducedMotion(this,this.onReducedMotionChange))}disarmReducedMotionWatcher(){this.stopReducedMotionWatch?.(),this.stopReducedMotionWatch=void 0}get ownerWindow(){return this.ownerDocument?.defaultView??void 0}computedStyle(element=this){const view=this.ownerWindow;return view?view.getComputedStyle(element):"style"in element?element.style:this.style}applyDataLabelsPlugin(plugin){this.dataLabelsPlugin=plugin;let rebuilt=!1;plugin&&this.needsDataLabels&&this.chart&&(this.discardChart(!0),this.builtType=void 0,this.builtPlugins=[],rebuilt=!0),this.drawIfVisible(),rebuilt&&this.showsLegend&&this.requestUpdate()}get zoomFeatureAvailable(){return this.zoomable&&this.zoomFeatureState==="available"}featureWarningMessages(){if(this.loading||this.loadFailed)return[];const messages=[];return this.zoomable&&this.zoomFeatureState==="unavailable"&&messages.push(this.localize("chartZoomUnavailable")),this.dataLabelsFeatureState==="unavailable"&&(this.dataLabels&&messages.push(this.localize("chartDataLabelsUnavailable")),this.stackTotals&&messages.push(this.localize("chartStackTotalsUnavailable"))),this.needsAnnotations&&this.annotationFeatureState==="unavailable"&&messages.push(this.localize("chartAnnotationsUnavailable")),messages}requestZoomFeature(){const generation=++this.zoomLoadGeneration;if(!this.zoomable){this.zoomFeatureState="idle";return}this.zoomFeatureState="loading",this.loadZoomFeature().then(result=>{generation!==this.zoomLoadGeneration||!this.isConnected||!this.zoomable||(this.zoomFeatureState=result.kind==="available"?"available":"unavailable",result.kind!=="core-unavailable"&&!this.loading&&!this.chartJsModule&&(this.chartJsModule=result.mod),this.drawIfVisible(),this.requestUpdate())})}requestAnnotationFeature(){const generation=++this.annotationLoadGeneration;if(!this.needsAnnotations){this.annotationFeatureState="idle";return}this.annotationFeatureState="loading",this.loadAnnotationFeature().then(result=>{generation!==this.annotationLoadGeneration||!this.isConnected||!this.needsAnnotations||(result.kind!=="core-unavailable"&&!this.loading&&!this.chartJsModule&&(this.chartJsModule=result.mod),this.annotationFeatureState=result.kind==="available"?"available":"unavailable",this.applyAnnotationPlugin(result.kind==="available"?result.plugin:void 0),this.requestUpdate())})}applyAnnotationPlugin(plugin){this.annotationPlugin=plugin,plugin&&this.needsAnnotations&&this.chart&&(this.discardChart(!0),this.builtType=void 0,this.builtPlugins=[]),this.drawIfVisible()}rebuildAfterAnnotationRegistration(){!this.chart||this.needsAnnotations||(this.discardChart(!0),this.builtType=void 0,this.builtPlugins=[],this.drawIfVisible())}requestDataLabelsFeature(){const generation=++this.dataLabelsLoadGeneration;if(!this.needsDataLabels){this.dataLabelsFeatureState="idle";return}this.dataLabelsFeatureState="loading",this.loadDataLabelsFeature().then(result=>{generation!==this.dataLabelsLoadGeneration||!this.isConnected||!this.needsDataLabels||(this.dataLabelsFeatureState=result.kind==="available"?"available":"unavailable",result.kind!=="core-unavailable"&&!this.loading&&!this.chartJsModule&&(this.chartJsModule=result.mod),this.applyDataLabelsPlugin(result.kind==="available"?result.plugin:void 0),this.requestUpdate())})}willUpdate(changed){super.willUpdate(changed),this.zoomed&&this.effectiveType()!==this.builtType&&(this.zoomed=!1,this.emit("lr-zoom",{zoomed:!1}))}firstUpdated(changed){super.firstUpdated(changed),queueMicrotask(()=>{collectInitialSlotAssignment(this.configSlotEl,s=>this.collectConfigFromSlot(s))})}updated(changed){if(super.updated(changed),!this.isConnected)return;const contentChanged=this.chartContentChanged(changed),syncDataChanged=contentChanged||changed.has("hiddenDatums");this.chartSync.update(this.syncGroup,typeof this.syncGroup=="string"&&this.syncGroup.trim()!==""&&this.syncCompatible(),syncDataChanged);const wasMounting=this.isMounting;this.isMounting=!1,changed.has("keyboardDatumAnnouncement")&&changed.get("keyboardDatumAnnouncement")!==void 0&&this.keyboardDatumAnnouncement!==""&&this.announcements.announcePolite(this.keyboardDatumAnnouncement),changed.has("loadFailed")&&changed.get("loadFailed")!==void 0&&this.loadFailed&&this.announcements.announceAssertive(this.localize("chartMissingLibrary"));const dataTruncation=this.dataTruncationMessage();if(wasMounting&&(this.lastDataTruncationAnnouncement=dataTruncation),!this.loading&&!this.loadFailed){const featureWarnings=this.featureWarningMessages();for(const warning of featureWarnings)this.announcedFeatureWarnings.has(warning)||this.announcements.announceAssertive(warning);this.announcedFeatureWarnings=new Set(featureWarnings),!wasMounting&&dataTruncation!==this.lastDataTruncationAnnouncement&&(this.lastDataTruncationAnnouncement=dataTruncation,dataTruncation&&this.announcements.announcePolite(dataTruncation))}if(this.setAttribute("aria-busy",String(this.loading)),changed.has("height")){const height=sanitizeCssLength(this.height,"height");height?this.style.setProperty("--_lr-chart-height",height):this.style.removeProperty("--_lr-chart-height")}if(this.loading)return;changed.has("zoomable")&&this.requestZoomFeature(),(changed.has("dataLabels")||changed.has("stackTotals"))&&this.requestDataLabelsFeature(),changed.has("annotations")&&this.requestAnnotationFeature();const effectiveDirection=this.effectiveDirection,effectiveLocale=this.effectiveLocale,contextChanged=this.lastDrawnDirection!==void 0&&this.lastDrawnDirection!==effectiveDirection||this.lastDrawnLocale!==void 0&&this.lastDrawnLocale!==effectiveLocale;if(this.lastDrawnDirection=effectiveDirection,this.lastDrawnLocale=effectiveLocale,!contentChanged&&!contextChanged){changed.has("hiddenDatums")&&this.visible&&this.applyDatumVisibility()&&this.chart?.update("none");return}this.drawIfVisible()}chartContentChanged(changed){return["type","labels","datasets","hiddenDatasets","grid","axes","size","indexAxis","legendPosition","min","max","scaleType","annotations","plugins","autoLegendPosition","valueFormatter","formatter","tooltipTitleFormatter","tooltipFooterFormatter","area","height","xLabel","yLabel","y2Label","withoutZeroBaseline","stacked","stackedAxes","withoutAnimation","withoutLegend","withoutTooltip","syncGroup","dataLabels","stackTotals","config","slottedConfig","zoomable","locale","strings","loading"].some(name=>changed.has(name))}seriesToDataset(s,index,palette,effectiveType,chartStyle=this.chartStyleOptions(palette),rowIndexes){const series=canonicalChartSeries(s);if(!series)return{label:"",data:[]};const points=canonicalSeriesPoints(series),fullNormalizedData=points?points.map(normalizedChartPoint):canonicalSeriesData(series).map(value=>typeof value=="number"&&Number.isFinite(value)?value:null),normalizedData=rowIndexes?rowIndexes.map(rowIndex=>fullNormalizedData[rowIndex]??null):fullNormalizedData,borderFallback=chartStyle.borderColors[index%chartStyle.borderColors.length]??palette[index%palette.length],fillFallback=chartStyle.fillColors[index%chartStyle.fillColors.length]??palette[index%palette.length],sourceColors=projectChartStrings(series.color),authoredColors=sourceColors&&rowIndexes?rowIndexes.map(rowIndex=>sourceColors[rowIndex]??""):typeof series.color=="string"?series.color:sourceColors,colors=typeof authoredColors=="string"?[this.canvasTokens.resolve(authoredColors,borderFallback??"transparent")]:authoredColors?resolveCanvasColors(this,authoredColors,borderFallback??"transparent"):void 0,sliceChart=effectiveType==="pie"||effectiveType==="doughnut"||effectiveType==="polarArea",sliceFillColors=sliceChart&&chartStyle.fillColors.length?normalizedData.map((_,itemIndex)=>{const sourceIndex=rowIndexes?.[itemIndex]??itemIndex;return chartStyle.fillColors[sourceIndex%chartStyle.fillColors.length]}):void 0,sliceBorderColors=sliceChart&&chartStyle.borderColors.length?normalizedData.map((_,itemIndex)=>{const sourceIndex=rowIndexes?.[itemIndex]??itemIndex;return chartStyle.borderColors[sourceIndex%chartStyle.borderColors.length]}):void 0,fill=series.fill??this.area,backgroundColor=colors??sliceFillColors??fillFallback,datasetType=series.type??effectiveType,authoredSegmentColors=series.segmentColors?.length&&rowIndexes?rowIndexes.map(rowIndex=>series.segmentColors[rowIndex%series.segmentColors.length]):series.segmentColors,segmentColors=authoredSegmentColors?resolveCanvasColors(this,authoredSegmentColors,colors?.[0]??borderFallback??"transparent"):void 0,authoredPointColors=series.pointColors&&rowIndexes?rowIndexes.map(rowIndex=>series.pointColors[rowIndex]??""):series.pointColors,backgroundColors=projectChartStrings(backgroundColor),backgroundColorValue=typeof backgroundColor=="string"?backgroundColor:void 0,resolvedBackgroundColor=datasetType==="line"&&fill&&(colors||!chartStyle.authoredFillColors[index%chartStyle.authoredFillColors.length])?backgroundColors?backgroundColors.map(color=>this.canvasTokens.translucent(color)):backgroundColorValue&&this.canvasTokens.translucent(backgroundColorValue):backgroundColor,encoding=forcedColorEncoding(index),resolvedBackgroundColors=projectChartStrings(resolvedBackgroundColor),resolvedBackgroundColorValue=typeof resolvedBackgroundColor=="string"?resolvedBackgroundColor:void 0,encodedBackgroundColor=chartStyle.forcedColors?resolvedBackgroundColors?resolvedBackgroundColors.map((color,itemIndex)=>this.forcedColorPattern(sliceChart?itemIndex:index,color)):resolvedBackgroundColorValue&&this.forcedColorPattern(index,resolvedBackgroundColorValue):resolvedBackgroundColor,pointRadii=projectChartPointRadii(series.pointRadius);return{label:series.label,data:normalizedData,type:series.type,fill,...datasetType==="bar"&&this.hasConfiguredBarOption("borderRadius")?{}:{borderRadius:chartStyle.borderRadius},...datasetType==="bar"&&!Number.isFinite(series.width)&&this.hasConfiguredBarOption("borderWidth")||isArcDatasetType(datasetType)&&this.hasConfiguredElementOption(datasetType,"arc","borderWidth")?{}:{borderWidth:nonNegativeFinite(series.width,datasetType==="line"||datasetType==="radar"?chartStyle.lineBorderWidth:chartStyle.borderWidth)},borderDash:series.dash?[4,4]:chartStyle.forcedColors?[...encoding.dash]:void 0,pointStyle:chartStyle.forcedColors?encoding.pointStyle:void 0,backgroundColor:encodedBackgroundColor,borderColor:colors?.[0]??sliceBorderColors??borderFallback,pointBackgroundColor:authoredPointColors?resolveCanvasColors(this,authoredPointColors,colors?.[0]??borderFallback??"transparent"):void 0,...isPointDatasetType(datasetType)&&this.hasConfiguredElementOption(datasetType,"point","radius")?{}:{pointRadius:pointRadii?(rowIndexes?rowIndexes.map(rowIndex=>pointRadii[rowIndex]):pointRadii).map(radius=>nonNegativeFinite(radius,chartStyle.pointRadius)):nonNegativeFinite(series.pointRadius,chartStyle.pointRadius)},...segmentColors?.length?{segment:{borderColor:ctx=>segmentColors[ctx.p0DataIndex%segmentColors.length]}}:{},yAxisID:series.axis==="y2"?"y2":"y",...series.stack!==void 0?{stack:series.stack}:{}}}hasConfiguredElementOption(datasetTypeKey,elementKey,option){const read=(value,key)=>{if(!isChartRecord(value))return;const descriptor=chartRecordValue(value,key);return descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:descriptor.value},options=this.effectiveConfig()?.options,dataset=read(read(options,"datasets"),datasetTypeKey),scopes=[dataset,read(read(dataset,"elements"),elementKey),read(read(options,"elements"),elementKey),options],prefixed=`${elementKey}${option[0].toUpperCase()}${option.slice(1)}`;return scopes.some(scope=>read(scope,prefixed)!==void 0||read(scope,option)!==void 0)}hasConfiguredBarOption(option){return this.hasConfiguredElementOption("bar","bar",option)}themeColors(){const cs=this.canvasTokens.sync()??this.computedStyle(),grid=cs.getPropertyValue("--grid-color").trim()||cs.getPropertyValue("--lr-chart-grid-color").trim()||cs.getPropertyValue("--_lr-chart-grid-color").trim(),tick=cs.getPropertyValue("--lr-chart-tick-color").trim()||cs.getPropertyValue("--_lr-chart-tick-color").trim(),legend=cs.getPropertyValue("--lr-chart-legend-color").trim()||cs.getPropertyValue("--_lr-chart-legend-color").trim(),tooltipBg=cs.getPropertyValue("--lr-chart-tooltip-bg").trim()||cs.getPropertyValue("--_lr-chart-tooltip-bg").trim(),tooltipText=cs.getPropertyValue("--lr-chart-tooltip-color").trim()||cs.getPropertyValue("--_lr-chart-tooltip-color").trim();return{grid:this.canvasTokens.resolve(grid,FALLBACK_GRID_COLOR),tick:this.canvasTokens.resolve(tick,FALLBACK_TICK_COLOR),tickFontSize:this.styleNumber("--lr-chart-tick-font-size","--_lr-chart-tick-font-size",FALLBACK_TICK_FONT_SIZE),legend:this.canvasTokens.resolve(legend,FALLBACK_LEGEND_COLOR),tooltipBg:this.canvasTokens.resolve(tooltipBg,FALLBACK_TOOLTIP_BG),tooltipText:this.canvasTokens.resolve(tooltipText,FALLBACK_TOOLTIP_TEXT)}}styleColor(name,fallback){const value=this.computedStyle().getPropertyValue(name).trim();return value?this.canvasTokens.resolve(value,fallback):fallback}styleNumber(name,fallbackToken,fallback){const computed=this.computedStyle(),value=computed.getPropertyValue(name).trim()||computed.getPropertyValue(fallbackToken).trim(),direct=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))(?:px)?$/i.exec(value);if(direct){const resolved2=Number.parseFloat(direct[1]);if(Number.isFinite(resolved2)&&resolved2>=0)return resolved2}if(!value||!this.ownerWindow)return fallback;const resolved=this.canvasTokens.length(value,()=>{const probe=this.ownerDocument.createElement("span");probe.hidden=!0,probe.setAttribute("aria-hidden","true"),probe.style.inlineSize=value,(this.shadowRoot??this).append(probe);try{return Number.parseFloat(this.computedStyle(probe).inlineSize)}finally{probe.remove()}});return Number.isFinite(resolved)&&resolved>=0?resolved:fallback}explicitTickFontSize(){const resolved=this.styleNumber("--lr-chart-tick-font-size","--lr-chart-tick-font-size",NaN);return Number.isNaN(resolved)?void 0:resolved}forcedColorPattern(index,background){if(!this.ownerWindow)return background;const surface=this.styleColor("--lr-color-surface",FALLBACK_TOOLTIP_BG),key=`${forcedColorEncoding(index).name}
|
|
1
|
+
import{__decorate}from"tslib";import{snapshotStructuredData,admitSnapshotArray,snapshotArrayStillAdmitted as chartArrayIsStillAdmitted,projectSnapshotArray}from"../../../internal/structured-snapshot.js";import{LazyChartSyncController}from"./chart-sync-lazy.js";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{specialistTokens}from"../../../internal/specialist-host-tokens.styles.js";import{nextId,srOnly}from"../../../internal/a11y.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{createReducedMotionWatch}from"./chart-surface-shared.js";import{ThemeWatcher}from"../../../internal/theme-watcher.js";import{loadChartJs}from"./chart-core-loader.js";import{onAnnotationPluginRegistered}from"../../../internal/chart-annotation-registration.js";import{collectInitialSlotAssignment}from"../../../internal/initial-slot-collection.js";import{loadChartJsWithZoom,loadChartJsWithZoomResult,loadChartJsWithDataLabelsResult,loadChartJsWithAnnotationResult}from"./chart-feature-loader.js";import{styles}from"./chart.styles.js";import{chartSurfaceStyles}from"./chart-surface.styles.js";import"../../overlays/skeleton/skeleton.class.js";import{getListFormat,getNumberFormat}from"../../../internal/intl-cache.js";import{formatChartValue}from"./chart-number-format.js";import{escapeCsvField}from"../../utility/export-button/csv.js";import{finiteAdd,finiteNumber}from"../../../internal/numbers.js";import{isKeyboardFocusEvent}from"../../../internal/focus-modality.js";import{showChartActiveDatum}from"./chart-active-datum.js";import{devWarnOnce}from"../../../internal/dev-warning.js";import{getOwnDataDescriptor,MISSING_OWN_DATA_DESCRIPTOR,UNSAFE_OWN_DATA_DESCRIPTOR}from"../../../internal/data-descriptors.js";import{sanitizeCssLength}from"../../../internal/safe-css.js";import{AnnouncementSinkController}from"../../../internal/announcer.js";import{FALLBACK_GRID_COLOR,FALLBACK_LEGEND_COLOR,FALLBACK_TICK_COLOR,FALLBACK_TICK_FONT_SIZE,FALLBACK_TOOLTIP_BG,FALLBACK_TOOLTIP_TEXT}from"./chart-colors.js";import{ChartTokenCache}from"./chart-token-cache.js";import{chartDataTableVisible,hasSlottedChartDataTable}from"./chart-data-table.js";import{normalizeSize}from"../../../internal/variants.js";import{createForcedColorPattern,forcedColorEncoding,forcedColorsActive}from"./chart-forced-colors.js";import{legendVisibilityDetail,normalizeHiddenDatasets}from"./chart-legend-visibility.js";import{sampleChartTableIndexes}from"./chart-table-sampling.js";import{canvasSentence,canvasTextDirection,isolateCanvasLabel,isolateCanvasText,isolatedMessage,isolateScaleTickLabels,tooltipIsolationHook,bidiStyles,isolateHtml}from"./chart-bidi.js";import{CSS_NUMBER_SOURCE}from"../../../internal/css-number.js";import{LYRA_DEFAULT_chartAnnotationsUnavailable,LYRA_DEFAULT_chartAxisTotal,LYRA_DEFAULT_chartBubblePointCoordinates,LYRA_DEFAULT_chartCategory,LYRA_DEFAULT_chartData,LYRA_DEFAULT_chartDataLabelsUnavailable,LYRA_DEFAULT_chartDataSampled,LYRA_DEFAULT_chartLabeledPoint,LYRA_DEFAULT_chartMissingLibrary,LYRA_DEFAULT_chartPlotSampled,LYRA_DEFAULT_chartPointCoordinates,LYRA_DEFAULT_chartPointLabel,LYRA_DEFAULT_chartPrimaryAxis,LYRA_DEFAULT_chartSecondaryAxis,LYRA_DEFAULT_chartSeriesLabel,LYRA_DEFAULT_chartSeriesNoData,LYRA_DEFAULT_chartStackTotalsUnavailable,LYRA_DEFAULT_chartSummary,LYRA_DEFAULT_chartSummaryEmpty,LYRA_DEFAULT_chartSummarySeparator,LYRA_DEFAULT_chartSummaryWithData,LYRA_DEFAULT_chartTotal,LYRA_DEFAULT_chartTrendDecreasing,LYRA_DEFAULT_chartTrendFlat,LYRA_DEFAULT_chartTrendIncreasing,LYRA_DEFAULT_chartTypeBar,LYRA_DEFAULT_chartTypeBubble,LYRA_DEFAULT_chartTypeDoughnut,LYRA_DEFAULT_chartTypeLine,LYRA_DEFAULT_chartTypePie,LYRA_DEFAULT_chartTypePolarArea,LYRA_DEFAULT_chartTypeRadar,LYRA_DEFAULT_chartTypeScatter,LYRA_DEFAULT_chartValuePercentageLabel,LYRA_DEFAULT_chartZoomUnavailable,LYRA_DEFAULT_liteChartMarkSummary}from"../../../internal/default-strings/charts.generated.js";import{LYRA_DEFAULT_chart,LYRA_DEFAULT_chartValueLabel,LYRA_DEFAULT_loading,LYRA_DEFAULT_noData,LYRA_DEFAULT_resetZoom}from"../../../internal/default-strings/shared.generated.js";const DIRECT_PIXEL_NUMBER=new RegExp(`^(${CSS_NUMBER_SOURCE})(?:px)?$`,"i");import{seriesPalette}from"./chart-colors.js";const CHART_TYPES=new Set(["line","bar","scatter","pie","doughnut","radar","polarArea","bubble"]);function normalizeChartType(value){return typeof value=="string"&&CHART_TYPES.has(value)?value:"bar"}function normalizeChartGrid(value){return value==="x"||value==="y"||value==="none"||value==="both"?value:"both"}function normalizeLegendPosition(value){return value==="left"||value==="top"||value==="right"||value==="bottom"||value==="center"||value==="chartArea"||value==="start"||value==="end"||value==="auto"?value:projectLegendPosition(value)??"top"}function isArcDatasetType(datasetType){return datasetType==="pie"||datasetType==="doughnut"||datasetType==="polarArea"}function isPointDatasetType(datasetType){return datasetType==="line"||datasetType==="radar"||datasetType==="scatter"||datasetType==="bubble"}function isChartRecord(value){try{return typeof value=="object"&&value!==null&&!Array.isArray(value)}catch{return!1}}const MAX_CHART_INPUT_ENTRIES=1e4,CHART_INPUT_CAP_WARNING_KEY="lr-chart-input-cap",MAX_CHART_CONFIGURATION_DEPTH=32,OMIT_CHART_CONFIGURATION_VALUE=Symbol("omit-chart-configuration-value");function warnChartInputCap(){devWarnOnce(CHART_INPUT_CAP_WARNING_KEY,"lr-chart: an input array exceeded 10,000 entries; only the first 10,000 are used.")}function admitChartArray(value){return admitSnapshotArray(value,warnChartInputCap)}function copyChartArrayEntries(admission){return projectSnapshotArray(admission,value=>value,{missing:void 0})??Object.freeze([])}function chartEnumerableKeys(value){try{return Object.keys(value)}catch{return}}const canonicalChartSeriesSnapshots=new WeakMap,admittedChartPlugins=new WeakSet,canonicalChartDatasetValues=new WeakMap,canonicalChartDatasetDataValues=new WeakMap;function canonicalChartSeries(value){if(isChartRecord(value))return canonicalChartSeriesSnapshots.has(value)?value:projectChartSeries(value)}function canonicalSeriesData(series){const canonical=canonicalChartSeries(series);return canonical?canonicalChartSeriesSnapshots.get(canonical)?.data??[]:[]}function canonicalSeriesPoints(series){const canonical=canonicalChartSeries(series);return canonical?canonicalChartSeriesSnapshots.get(canonical)?.points:void 0}function chartRecordValue(value,property2){return getOwnDataDescriptor(value,property2)}function projectChartNumberData(value,admission=admitChartArray(value)){return projectSnapshotArray(admission,entry=>typeof entry=="number"&&Number.isFinite(entry)?entry:null,{missing:null})}function projectChartPoint(value){if(!isChartRecord(value))return null;const x=chartRecordValue(value,"x"),y=chartRecordValue(value,"y"),r=chartRecordValue(value,"r"),id=chartRecordValue(value,"id"),label=chartRecordValue(value,"label");return x===MISSING_OWN_DATA_DESCRIPTOR||x===UNSAFE_OWN_DATA_DESCRIPTOR||y===MISSING_OWN_DATA_DESCRIPTOR||y===UNSAFE_OWN_DATA_DESCRIPTOR||r===UNSAFE_OWN_DATA_DESCRIPTOR||id===UNSAFE_OWN_DATA_DESCRIPTOR||label===UNSAFE_OWN_DATA_DESCRIPTOR||typeof x.value!="number"||!Number.isFinite(x.value)||typeof y.value!="number"||!Number.isFinite(y.value)?null:Object.freeze({x:x.value,y:y.value,...r!==MISSING_OWN_DATA_DESCRIPTOR&&typeof r.value=="number"&&Number.isFinite(r.value)&&r.value>=0?{r:r.value}:{},...id!==MISSING_OWN_DATA_DESCRIPTOR&&(typeof id.value=="string"||typeof id.value=="number"&&Number.isFinite(id.value))?{id:id.value}:{},...label!==MISSING_OWN_DATA_DESCRIPTOR&&typeof label.value=="string"?{label:label.value}:{}})}function projectChartDatum(value){if(typeof value=="number")return Number.isFinite(value)?value:null;if(typeof value=="string"||typeof value=="bigint")return value;if(!isChartRecord(value))return null;const x=chartRecordValue(value,"x"),y=chartRecordValue(value,"y"),r=chartRecordValue(value,"r"),id=chartRecordValue(value,"id"),label=chartRecordValue(value,"label"),output={};let hasValue=!1;for(const[property2,descriptor]of[["x",x],["y",y],["r",r]])descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||typeof descriptor.value!="number"||!Number.isFinite(descriptor.value)||(output[property2]=descriptor.value,hasValue=!0);return label!==MISSING_OWN_DATA_DESCRIPTOR&&label!==UNSAFE_OWN_DATA_DESCRIPTOR&&typeof label.value=="string"&&(output.label=label.value,hasValue=!0),id!==MISSING_OWN_DATA_DESCRIPTOR&&id!==UNSAFE_OWN_DATA_DESCRIPTOR&&(typeof id.value=="string"||typeof id.value=="number"&&Number.isFinite(id.value))&&(output.id=id.value,hasValue=!0),hasValue?Object.freeze(output):null}function projectChartDatasetValues(admission){return projectSnapshotArray(admission,projectChartDatum,{missing:null})??Object.freeze([])}function projectChartPoints(value,admission=admitChartArray(value)){return projectSnapshotArray(admission,projectChartPoint,{missing:null})}function projectChartStrings(value,admission=admitChartArray(value)){return projectSnapshotArray(admission,entry=>typeof entry=="string"?entry:"",{missing:""})}function projectChartPointRadii(value,admission=admitChartArray(value)){return projectSnapshotArray(admission,entry=>typeof entry=="number"&&Number.isFinite(entry)?entry:Number.NaN,{missing:Number.NaN})}function projectHiddenDatasetIndexes(value){if(value!==void 0)return projectSnapshotArray(admitChartArray(value),entry=>typeof entry=="number"&&Number.isInteger(entry)?entry:void 0,{compact:!0})??Object.freeze([])}const CHART_ANNOTATION_TONES=new Set(["neutral","brand","success","warning","danger"]);function projectChartAnnotations(value){if(!Array.isArray(value))return Object.freeze([]);const output=[];for(const annotation of value){if(!isChartRecord(annotation))continue;const own=key=>Object.hasOwn(annotation,key)?annotation[key]:void 0,axis=own("axis"),line=own("value"),from=own("from"),to=own("to"),label=own("label"),tone=own("tone");if(axis!==void 0&&axis!=="x"&&axis!=="y"||label!==void 0&&typeof label!="string"||tone!==void 0&&(typeof tone!="string"||!CHART_ANNOTATION_TONES.has(tone)))continue;const common={...axis==="x"||axis==="y"?{axis}:{},...typeof label=="string"?{label}:{},...typeof tone=="string"?{tone}:{}};typeof line=="number"&&Number.isFinite(line)?output.push(Object.freeze({...common,value:line})):typeof from=="number"&&Number.isFinite(from)&&typeof to=="number"&&Number.isFinite(to)&&output.push(Object.freeze({...common,from:Math.min(from,to),to:Math.max(from,to)}))}return Object.freeze(output)}const CHART_SERIES_PROPERTIES=["label","data","points","color","fill","width","dash","noTooltip","axis","stack","pointColors","pointRadius","segmentColors","type"];function projectChartSeries(value){try{if(!isChartRecord(value))return;const descriptors=new Map;for(const property2 of CHART_SERIES_PROPERTIES){const descriptor=chartRecordValue(value,property2);if(descriptor===UNSAFE_OWN_DATA_DESCRIPTOR)return;descriptors.set(property2,descriptor)}const valueAt=property2=>{const descriptor=descriptors.get(property2);return descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||descriptor===void 0?void 0:descriptor.value},label=valueAt("label");if(label!==void 0&&typeof label!="string")return;const output={label:label??""},rawData=valueAt("data"),rawDataAdmission=admitChartArray(rawData),data=projectChartNumberData(rawData,rawDataAdmission),rawPoints=valueAt("points"),rawPointsAdmission=admitChartArray(rawPoints),points=projectChartPoints(rawPoints,rawPointsAdmission),color=valueAt("color"),fill=valueAt("fill"),width=valueAt("width"),dash=valueAt("dash"),noTooltip=valueAt("noTooltip"),axis=valueAt("axis"),stack=valueAt("stack"),pointColors=projectChartStrings(valueAt("pointColors")),pointRadius=valueAt("pointRadius"),segmentColors=projectChartStrings(valueAt("segmentColors")),type=valueAt("type");if(data&&rawDataAdmission&&(output.data=rawDataAdmission.source),points&&rawPointsAdmission&&(output.points=rawPointsAdmission.source),typeof color=="string")output.color=color;else{const colors=projectChartStrings(color);colors&&(output.color=colors)}if(typeof fill=="boolean"&&(output.fill=fill),typeof width=="number"&&Number.isFinite(width)&&(output.width=width),typeof dash=="boolean"&&(output.dash=dash),typeof noTooltip=="boolean"&&(output.noTooltip=noTooltip),(axis==="y"||axis==="y2")&&(output.axis=axis),typeof stack=="string"&&(output.stack=stack),pointColors&&(output.pointColors=pointColors),typeof pointRadius=="number"&&Number.isFinite(pointRadius))output.pointRadius=pointRadius;else{const radii=projectChartPointRadii(pointRadius);radii&&(output.pointRadius=radii)}segmentColors&&(output.segmentColors=segmentColors),(type==="line"||type==="bar")&&(output.type=type);const series=Object.freeze(output);return canonicalChartSeriesSnapshots.set(series,{data:data??Object.freeze([]),...points?{points}:{}}),series}catch{return}}function normalizeChartSeries(value){return projectSnapshotArray(admitChartArray(value),canonicalChartSeries,{compact:!0})??Object.freeze([])}function isSafeChartConfigurationRecord(value){if(!isChartRecord(value))return!1;try{const prototype=Object.getPrototypeOf(value);if(prototype===null)return!0;const constructor=getOwnDataDescriptor(prototype,"constructor");if(constructor===MISSING_OWN_DATA_DESCRIPTOR||constructor===UNSAFE_OWN_DATA_DESCRIPTOR||typeof constructor.value!="function")return!1;const name=getOwnDataDescriptor(constructor.value,"name"),constructorPrototype=getOwnDataDescriptor(constructor.value,"prototype");return name!==MISSING_OWN_DATA_DESCRIPTOR&&name!==UNSAFE_OWN_DATA_DESCRIPTOR&&name.value==="Object"&&constructorPrototype!==MISSING_OWN_DATA_DESCRIPTOR&&constructorPrototype!==UNSAFE_OWN_DATA_DESCRIPTOR&&constructorPrototype.value===prototype}catch{return!1}}function projectLegendPosition(value){if(!isSafeChartConfigurationRecord(value))return;const keys=chartEnumerableKeys(value);if(!keys||keys.length>MAX_CHART_INPUT_ENTRIES)return;const output={};for(const key of keys){if(UNSAFE_KEYS.has(key))return;const descriptor=chartRecordValue(value,key);if(descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||!descriptor.enumerable||typeof descriptor.value!="number"||!Number.isFinite(descriptor.value))return;output[key]=descriptor.value}return Object.freeze(output)}function copyChartConfigurationValue(value,profile="chart"){const snapshot=snapshotStructuredData(value,{profile,omitKeys:UNSAFE_KEYS,onArrayTruncate:warnChartInputCap,onClone:(source,copied)=>{const canonical=canonicalChartDatasetDataValues.get(source);canonical&&canonicalChartDatasetDataValues.set(copied,canonical)}});return snapshot.value===void 0&&value!==void 0?OMIT_CHART_CONFIGURATION_VALUE:snapshot.value}function projectChartPlugins(value,admission=admitChartArray(value)){return projectSnapshotArray(admission,candidate=>{if(candidate===null||typeof candidate!="object"&&typeof candidate!="function")return;const plugin=candidate;if(admittedChartPlugins.has(plugin))return plugin;const id=chartRecordValue(plugin,"id");if(!(id===MISSING_OWN_DATA_DESCRIPTOR||id===UNSAFE_OWN_DATA_DESCRIPTOR||typeof id.value!="string"||id.value.trim()===""))return admittedChartPlugins.add(plugin),plugin},{compact:!0})??Object.freeze([])}function projectChartDatasetConfiguration(value){if(!isSafeChartConfigurationRecord(value))return;const keys=chartEnumerableKeys(value);if(!keys)return;const output=Object.create(null),priorCanonicalValues=canonicalChartDatasetValues.get(value);let canonicalValues;for(const key of keys){if(UNSAFE_KEYS.has(key))continue;const descriptor=chartRecordValue(value,key);if(descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||!descriptor.enumerable)continue;const candidate=descriptor.value,array=admitChartArray(candidate);if(key==="data"){if(array){if(!chartArrayIsStillAdmitted(array)){output[key]=Object.freeze([]),canonicalValues=Object.freeze([]);continue}const copied=copyChartArrayEntries(array);output[key]=copied;const canonical=priorCanonicalValues??canonicalChartDatasetDataValues.get(array.source)??projectChartDatasetValues(array);canonicalValues=canonical,canonicalChartDatasetDataValues.set(copied,canonical)}continue}if(key==="label"){typeof candidate=="string"||typeof candidate=="number"||typeof candidate=="boolean"||typeof candidate=="bigint"?output[key]=candidate:array&&(output[key]=copyChartArrayEntries(array));continue}if(key==="hidden"||key==="noTooltip"){typeof candidate=="boolean"&&(output[key]=candidate);continue}if(key==="axis"||key==="yAxisID"||key==="type"||key==="stack"){typeof candidate=="string"&&(output[key]=candidate);continue}output[key]=array?copyChartArrayEntries(array):candidate}const dataset=Object.freeze(output);return canonicalValues&&canonicalChartDatasetValues.set(dataset,canonicalValues),dataset}function projectChartDatasetConfigurations(value,admission=admitChartArray(value)){return projectSnapshotArray(admission,projectChartDatasetConfiguration,{compact:!0})??Object.freeze([])}function projectChartDataConfiguration(value){if(!isSafeChartConfigurationRecord(value))return;const keys=chartEnumerableKeys(value);if(!keys)return;const output=Object.create(null);for(const key of keys){if(UNSAFE_KEYS.has(key))continue;const descriptor=chartRecordValue(value,key);if(!(descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||!descriptor.enumerable)){if(key==="labels"){const labels=admitChartArray(descriptor.value);output[key]=labels?copyChartArrayEntries(labels):Object.freeze([]);continue}if(key==="datasets"){output[key]=projectChartDatasetConfigurations(descriptor.value);continue}output[key]=descriptor.value}}return Object.freeze(output)}function projectChartConfiguration(value){if(!isSafeChartConfigurationRecord(value))return;const output=Object.create(null),type=chartRecordValue(value,"type"),data=chartRecordValue(value,"data"),options=chartRecordValue(value,"options"),plugins=chartRecordValue(value,"plugins");type!==MISSING_OWN_DATA_DESCRIPTOR&&type!==UNSAFE_OWN_DATA_DESCRIPTOR&&typeof type.value=="string"&&(output.type=type.value);for(const[property2,descriptor]of[["data",data],["options",options]]){if(descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR)continue;const copied=copyChartConfigurationValue(descriptor.value,property2==="data"?"chartData":"chart");if(copied!==OMIT_CHART_CONFIGURATION_VALUE){if(property2==="data"){const projected=projectChartDataConfiguration(copied);output[property2]=projected??copied;continue}output[property2]=copied}}if(plugins!==MISSING_OWN_DATA_DESCRIPTOR&&plugins!==UNSAFE_OWN_DATA_DESCRIPTOR){const pluginArray=admitChartArray(plugins.value);if(pluginArray)output.plugins=projectChartPlugins(plugins.value,pluginArray);else{const copied=copyChartConfigurationValue(plugins.value);copied!==OMIT_CHART_CONFIGURATION_VALUE&&(output.plugins=copied)}}return Object.freeze(output)}const UNSAFE_KEYS=new Set(["__proto__","constructor","prototype"]);function deepMerge(base,override,seen=new WeakMap){if(!isSafeChartConfigurationRecord(base)||!isSafeChartConfigurationRecord(override))return override===void 0?base:override;const baseRecord=base,overrideRecord=override,baseKeys=chartEnumerableKeys(baseRecord),overrideKeys=chartEnumerableKeys(overrideRecord);if(!baseKeys||!overrideKeys)return override;const previous=seen.get(overrideRecord);if(previous!==void 0)return previous;const result={};for(const key of baseKeys){if(UNSAFE_KEYS.has(key))continue;const descriptor=chartRecordValue(baseRecord,key);descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||!descriptor.enumerable||(result[key]=descriptor.value)}seen.set(overrideRecord,result);try{for(const key of overrideKeys){if(UNSAFE_KEYS.has(key))continue;const descriptor=chartRecordValue(overrideRecord,key);if(descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||!descriptor.enumerable)continue;const baseDescriptor=chartRecordValue(baseRecord,key),baseValue=baseDescriptor===MISSING_OWN_DATA_DESCRIPTOR||baseDescriptor===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:baseDescriptor.value;result[key]=deepMerge(baseValue,descriptor.value,seen)}}finally{seen.delete(overrideRecord)}return result}function normalizedChartPoint(value){return projectChartPoint(projectChartDatum(value))}function chartNumericValue(value){const numeric=typeof value=="number"?value:typeof value=="string"||typeof value=="bigint"?Number(value):Number.NaN;return Number.isFinite(numeric)?numeric:void 0}function chartDatumNumericValue(value){const projected=projectChartDatum(value);if(isChartRecord(projected))for(const property2 of["y","r","x"]){const descriptor=chartRecordValue(projected,property2);if(descriptor!==MISSING_OWN_DATA_DESCRIPTOR&&descriptor!==UNSAFE_OWN_DATA_DESCRIPTOR&&typeof descriptor.value=="number"&&Number.isFinite(descriptor.value))return descriptor.value}return chartNumericValue(projected)}function nonNegativeFinite(value,fallback){return typeof value=="number"&&Number.isFinite(value)&&value>=0?value:fallback}function labelText(value,depth=0){if(value==null)return"";if(typeof value=="string"||typeof value=="number"||typeof value=="boolean"||typeof value=="bigint")return String(value);const admission=admitChartArray(value);if(depth<MAX_CHART_CONFIGURATION_DEPTH&&admission){const values=[];for(let index=0;index<admission.length;index+=1){const descriptor=chartRecordValue(admission.source,String(index));values.push(descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR?"":labelText(descriptor.value,depth+1))}return values.join(" ")}return""}function chartDatasetValue(dataset,property2){if(!isChartRecord(dataset))return;const descriptor=chartRecordValue(dataset,property2);return descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:descriptor.value}function chartDatasetLabel(dataset){return labelText(chartDatasetValue(dataset,"label"))}function chartDatasetValues(dataset){if(isChartRecord(dataset)){const snapshot=canonicalChartDatasetValues.get(dataset);if(snapshot)return snapshot}const data=chartDatasetValue(dataset,"data"),admission=admitChartArray(data);return admission?canonicalChartDatasetDataValues.get(admission.source)??copyChartArrayEntries(admission):Object.freeze([])}function chartDatasetPeerValues(dataset){const admission=admitChartArray(chartDatasetValue(dataset,"data"));return admission?copyChartArrayEntries(admission):Object.freeze([])}function chartIndex(value){return typeof value=="number"&&Number.isSafeInteger(value)&&value>=0?value:void 0}function chartCallbackDatasetIndex(value){return chartIndex(chartDatasetValue(value,"datasetIndex"))}function chartCallbackIndexes(value){const datasetIndex=chartCallbackDatasetIndex(value),index=chartIndex(chartDatasetValue(value,"index"))??chartIndex(chartDatasetValue(value,"dataIndex"));return datasetIndex===void 0||index===void 0?void 0:{datasetIndex,index}}function projectChartLegendItem(value){if(!isChartRecord(value))return;const keys=chartEnumerableKeys(value);if(!keys||keys.length>MAX_CHART_INPUT_ENTRIES)return;const output=Object.create(null);for(const key of keys){if(UNSAFE_KEYS.has(key))continue;const descriptor=chartRecordValue(value,key);descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR||!descriptor.enumerable||(output[key]=descriptor.value)}return output}function projectChartLegendItems(value){const admission=admitChartArray(value);if(!admission||!chartArrayIsStillAdmitted(admission))return;const output=[];for(let index=0;index<admission.length;index+=1){const descriptor=chartRecordValue(admission.source,String(index));if(descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR)continue;const item=projectChartLegendItem(descriptor.value);item&&output.push(item)}return Object.freeze(output)}function chartDatasetBoolean(dataset,property2){const value=chartDatasetValue(dataset,property2);return typeof value=="boolean"?value:void 0}function chartDatasetAxis(dataset){return chartDatasetValue(dataset,"yAxisID")==="y2"||chartDatasetValue(dataset,"axis")==="y2"?"y2":"y"}function chartDatasetStack(dataset){const value=chartDatasetValue(dataset,"stack");return typeof value=="string"?value:void 0}function isDenseChartSize(size){const step=normalizeSize(size);return step==="s"||step==="xs"||step==="2xs"}class LyraChart extends LyraElement{static{this.defaultStrings={...super.defaultStrings,chart:LYRA_DEFAULT_chart,chartAnnotationsUnavailable:LYRA_DEFAULT_chartAnnotationsUnavailable,chartAxisTotal:LYRA_DEFAULT_chartAxisTotal,chartBubblePointCoordinates:LYRA_DEFAULT_chartBubblePointCoordinates,chartCategory:LYRA_DEFAULT_chartCategory,chartData:LYRA_DEFAULT_chartData,chartDataLabelsUnavailable:LYRA_DEFAULT_chartDataLabelsUnavailable,chartDataSampled:LYRA_DEFAULT_chartDataSampled,chartLabeledPoint:LYRA_DEFAULT_chartLabeledPoint,chartMissingLibrary:LYRA_DEFAULT_chartMissingLibrary,chartPlotSampled:LYRA_DEFAULT_chartPlotSampled,chartPointCoordinates:LYRA_DEFAULT_chartPointCoordinates,chartPointLabel:LYRA_DEFAULT_chartPointLabel,chartPrimaryAxis:LYRA_DEFAULT_chartPrimaryAxis,chartSecondaryAxis:LYRA_DEFAULT_chartSecondaryAxis,chartSeriesLabel:LYRA_DEFAULT_chartSeriesLabel,chartSeriesNoData:LYRA_DEFAULT_chartSeriesNoData,chartStackTotalsUnavailable:LYRA_DEFAULT_chartStackTotalsUnavailable,chartSummary:LYRA_DEFAULT_chartSummary,chartSummaryEmpty:LYRA_DEFAULT_chartSummaryEmpty,chartSummarySeparator:LYRA_DEFAULT_chartSummarySeparator,chartSummaryWithData:LYRA_DEFAULT_chartSummaryWithData,chartTotal:LYRA_DEFAULT_chartTotal,chartTrendDecreasing:LYRA_DEFAULT_chartTrendDecreasing,chartTrendFlat:LYRA_DEFAULT_chartTrendFlat,chartTrendIncreasing:LYRA_DEFAULT_chartTrendIncreasing,chartTypeBar:LYRA_DEFAULT_chartTypeBar,chartTypeBubble:LYRA_DEFAULT_chartTypeBubble,chartTypeDoughnut:LYRA_DEFAULT_chartTypeDoughnut,chartTypeLine:LYRA_DEFAULT_chartTypeLine,chartTypePie:LYRA_DEFAULT_chartTypePie,chartTypePolarArea:LYRA_DEFAULT_chartTypePolarArea,chartTypeRadar:LYRA_DEFAULT_chartTypeRadar,chartTypeScatter:LYRA_DEFAULT_chartTypeScatter,chartValueLabel:LYRA_DEFAULT_chartValueLabel,chartValuePercentageLabel:LYRA_DEFAULT_chartValuePercentageLabel,chartZoomUnavailable:LYRA_DEFAULT_chartZoomUnavailable,liteChartMarkSummary:LYRA_DEFAULT_liteChartMarkSummary,loading:LYRA_DEFAULT_loading,noData:LYRA_DEFAULT_noData,resetZoom:LYRA_DEFAULT_resetZoom}}static{this.collectionSupport=collectionSupport}static{this.immutableEventDetails=Object.freeze(["lr-legend-visibility-change-request","lr-legend-visibility-change","lr-datum-visibility-change-request","lr-datum-visibility-change"])}static{this.ownedCollectionProperties=Object.freeze(["annotations","hiddenDatasets"])}static{this.styles=[LyraElement.styles,specialistTokens,chartSurfaceStyles,styles,srOnly,bidiStyles]}constructor(){super(),this.canvasTokens=new ChartTokenCache(this),this.type="bar",this.labels=[],this._datasets=Object.freeze([]),this.datasetsSource=this._datasets,this._hiddenDatums=Object.freeze([]),this.hiddenDatumsSource=this._hiddenDatums,this.legendMode="auto",this.legendDisplay="auto",this.description=null,this.grid="both",this.axes="both",this.size="m",this.indexAxis="x",this.label=null,this.legendPosition="top",this.scaleType="linear",this.annotations=[],this.max=null,this.min=null,this._plugins=Object.freeze([]),this.pluginsSource=this._plugins,this.area=!1,this.zoomable=!1,this.height="280px",this.xLabel=null,this.yLabel=null,this.y2Label="",this.withoutZeroBaseline=!1,this.withDataTable=!1,this.dataTableToggle=!1,this.dataTableExpandedOverride=null,this.dataTableId=nextId("chart-data-table"),this.stacked=!1,this.withoutAnimation=!1,this.withoutLegend=!1,this.withoutTooltip=!1,this.dataLabels=!1,this.stackTotals=!1,this.configSource=void 0,this.loading=!0,this.loadFailed=!1,this.loadLibrary=withZoom=>withZoom?loadChartJsWithZoom():loadChartJs(),this.loadZoomFeature=()=>loadChartJsWithZoomResult(),this.loadDataLabelsFeature=()=>loadChartJsWithDataLabelsResult(),this.loadAnnotationFeature=()=>loadChartJsWithAnnotationResult(),this.loadGeneration=0,this.zoomLoadGeneration=0,this.dataLabelsLoadGeneration=0,this.annotationLoadGeneration=0,this.zoomFeatureState="idle",this.dataLabelsFeatureState="idle",this.annotationFeatureState="idle",this.zoomed=!1,this.visible=!0,this.intersectionGeneration=0,this.reducedMotionWatch=createReducedMotionWatch(this,()=>this.drawIfVisible()),this.scaledSliceDatasets=new Set,this.autoLegendPosition="right",this.chartAreaUpdateQueued=!1,this.chartAreaPlugin={id:"lyra-chart-area",afterLayout:chart=>this.updateChartArea(chart),beforeTooltipDraw:tooltipIsolationHook(()=>this.effectiveDirection)},this.builtPlugins=[],this.suppressZoomComplete=!1,this.descriptionId=nextId("chart-description"),this.keyboardDatumIndex=0,this.keyboardDatumAnnouncement="",this.announcements=new AnnouncementSinkController(this),this.lastDataTruncationAnnouncement="",this.isMounting=!0,this.announcedFeatureWarnings=new Set,this.syncGroup="",this.chartSync=new LazyChartSyncController(this,(label,index)=>this.syncPresentation(label,index),()=>this.resetSyncTooltip(),target=>target===this.canvasEl),this.forcedColorPatterns=new Map,this.visualPositions=new WeakMap,this.keyboardDatumShown=!1,this.onCanvasBlur=()=>{this.showKeyboardDatum(void 0)},new ThemeWatcher(this,()=>{this.chart&&this.canvasTokens.hasThemeChanged()&&this.refreshTheme()})}canonicalLabels(){const source=this.labels;if(this.labelsSnapshot&&Object.is(this.labelsSnapshot.source,source))return this.labelsSnapshot.value;const value=projectChartStrings(source)??Object.freeze([]);return this.labelsSnapshot={source,value},value}canonicalAnnotations(){const source=this.annotations;if(this.annotationsSnapshot&&Object.is(this.annotationsSnapshot.source,source))return this.annotationsSnapshot.value;const value=projectChartAnnotations(source);return this.annotationsSnapshot={source,value},value}canonicalHiddenDatasets(){const source=this.hiddenDatasets;if(this.hiddenDatasetsSnapshot&&Object.is(this.hiddenDatasetsSnapshot.source,source))return this.hiddenDatasetsSnapshot.value;const value=source===void 0?void 0:Object.freeze(Array.isArray(source)?source.filter(index=>typeof index=="number"&&Number.isInteger(index)):[]);return this.hiddenDatasetsSnapshot={source,value},value}get datasets(){return this._datasets}set datasets(value){if(Object.is(value,this.datasetsSource)||Object.is(value,this._datasets))return;const previous=this._datasets;this._datasets=normalizeChartSeries(value),this.datasetsSource=value,this.requestUpdate("datasets",previous)}get hiddenDatums(){return this._hiddenDatums}set hiddenDatums(value){if(Object.is(value,this.hiddenDatumsSource)||Object.is(value,this._hiddenDatums))return;const previous=this._hiddenDatums;this._hiddenDatums=projectHiddenDatasetIndexes(value)??Object.freeze([]),this.hiddenDatumsSource=value,this.requestUpdate("hiddenDatums",previous)}get compactPlot(){return isDenseChartSize(this.size)}get plugins(){return this._plugins}set plugins(value){if(Object.is(value,this.pluginsSource)||Object.is(value,this._plugins))return;const previous=this._plugins;this._plugins=projectChartPlugins(value),this.pluginsSource=value,this.requestUpdate("plugins",previous)}get dataTableVisible(){return chartDataTableVisible(this.withDataTable,this.dataTableToggle,this.dataTableExpandedOverride)}toggleDataTable(){this.dataTableExpandedOverride=!this.dataTableVisible}get config(){return this._config}set config(value){if(Object.is(value,this.configSource)||value!==void 0&&Object.is(value,this._config))return;const previous=this._config;this._config=projectChartConfiguration(value),this.configSource=value,this.requestUpdate("config",previous)}normalizeEffectiveConfig(config){return config}effectiveConfig(){return this.normalizeEffectiveConfig(this.config??this.slottedConfig)}onConfigSlotChange(event){const slot=event.currentTarget;slot===this.configSlotEl&&this.collectConfigFromSlot(slot)}collectConfigFromSlot(slot){const script=slot.assignedElements({flatten:!0}).find(element=>element.localName==="script"&&element.type.trim().toLowerCase()==="application/json");let next;if(script)try{const parsed=JSON.parse(script.textContent??"");next=projectChartConfiguration(parsed)}catch{next=void 0}this.slottedConfig=next}effectiveData(){const labels=this.canonicalLabels(),datasets=this.datasets,config=this.config??this.slottedConfig,memo=this.effectiveDataMemo;if(memo?.labels===labels&&memo.datasets===datasets&&memo.config===config)return memo.value;const generated={labels:[...labels],datasets:datasets.map(series=>{const{points:_points,...safeSeries}=series;return{...safeSeries,data:[...canonicalSeriesPoints(series)??canonicalSeriesData(series)],yAxisID:series.axis==="y2"?"y2":"y"}})},override=projectChartDataConfiguration(this.effectiveConfig()?.data),merged=override?deepMerge(generated,override):generated,projected=projectChartDataConfiguration(merged),value={labels:projected?.labels??[],datasets:projected?.datasets??[]};return this.effectiveDataMemo={labels,datasets,config,value},value}callbackDatasetIndex(value,effective=this.effectiveData()){const datasetIndex=chartCallbackDatasetIndex(value);if(datasetIndex===void 0)return;const visualDatasetCount=this.visualDatasetSourceIndexes?.length??effective.datasets.length;if(datasetIndex>=visualDatasetCount)return;const sourceDatasetIndex=this.visualDatasetSourceIndexes?.[datasetIndex]??datasetIndex;return effective.datasets[sourceDatasetIndex]?datasetIndex:void 0}callbackIndexes(value,effective=this.effectiveData()){const hit=chartCallbackIndexes(value);if(!hit)return;const visualDatasetCount=this.visualDatasetSourceIndexes?.length??effective.datasets.length;if(hit.datasetIndex>=visualDatasetCount)return;const sourceDatasetIndex=this.visualDatasetSourceIndexes?.[hit.datasetIndex]??hit.datasetIndex,dataset=effective.datasets[sourceDatasetIndex];if(!dataset)return;const visualRowCount=this.visualRowSourceIndexes?.length??this.datasetValues(dataset).length;return hit.index<visualRowCount?hit:void 0}effectiveHiddenDatasetIndexes(){const effective=this.effectiveData(),controlled=normalizeHiddenDatasets(this.canonicalHiddenDatasets(),effective.datasets.length);return controlled!==void 0?controlled:effective.datasets.flatMap((dataset,index)=>chartDatasetBoolean(dataset,"hidden")===!0?[index]:[])}applyDatasetVisibility(){if(!this.chart)return!1;const chart=this.chart,sourceDatasetCount=this.effectiveData().datasets.length,datasetCount=this.visualDatasetSourceIndexes?.length??sourceDatasetCount,controlled=normalizeHiddenDatasets(this.canonicalHiddenDatasets(),sourceDatasetCount);if(controlled===void 0){for(let index=0;index<datasetCount;index++)try{const metadata=chart.getDatasetMeta?.(index);metadata&&(metadata.hidden=null)}catch{}return datasetCount>0}const hidden=new Set(controlled);for(let index=0;index<datasetCount;index++){const sourceIndex=this.visualDatasetSourceIndexes?.[index]??index;try{chart.setDatasetVisibility(index,!hidden.has(sourceIndex))}catch{}}return datasetCount>0}isSliceChart(){return["pie","doughnut","polarArea"].includes(this.effectiveType())}applyDatumVisibility(){if(!this.chart||!this.isSliceChart())return!1;const sample=this.dataTableSample(),rows=this.visualRowSourceIndexes,hidden=new Set(normalizeHiddenDatasets(this.hiddenDatums,sample.rowCount));let changed=!1;for(let index=0;index<(rows?.length??sample.rowCount);index++){const visible=!hidden.has(rows?.[index]??index);try{this.chart.getDataVisibility?.(index)===!visible&&(this.chart.toggleDataVisibility?.(index),changed=!0)}catch{}}return changed}hasExplicitConfigData(){const config=this.effectiveConfig();if(!isSafeChartConfigurationRecord(config))return!1;const data=chartRecordValue(config,"data");return data!==MISSING_OWN_DATA_DESCRIPTOR&&data!==UNSAFE_OWN_DATA_DESCRIPTOR}datasetLabel(dataset,index){return chartDatasetLabel(dataset)||this.localize("chartPointLabel",void 0,{n:getNumberFormat(this.effectiveLocale).format(index+1)})}datasetValues(dataset){return chartDatasetValues(dataset)}isPointDataset(dataset){const values=this.datasetValues(dataset);return this.effectiveType()==="scatter"||this.effectiveType()==="bubble"||values.some(value=>normalizedChartPoint(value)!==null)}appendData(label,values,maxPoints=0){const requested=Number.isFinite(maxPoints)?Math.max(0,Math.floor(maxPoints)):0,limit=requested>0?Math.min(requested,MAX_CHART_INPUT_ENTRIES):MAX_CHART_INPUT_ENTRIES,appendedValues=projectChartNumberData(values)??Object.freeze([]);if(this.hasExplicitConfigData()){const effective=this.effectiveData();let domainLength2=effective.labels.length;for(const dataset of effective.datasets)this.isPointDataset(dataset)||(domainLength2=Math.max(domainLength2,this.datasetValues(dataset).length));const labels2=[...effective.labels,...Array.from({length:Math.max(0,domainLength2-effective.labels.length)},()=>""),label],effectiveConfig=this.effectiveConfig(),currentData=projectChartDataConfiguration(effectiveConfig?.data)??{},explicitLabels=admitChartArray(currentData.labels)!==void 0,explicitDatasets=admitChartArray(currentData.datasets)!==void 0,nextLabels=labels2.slice(-limit);if(explicitLabels||(this.labels=nextLabels.map(labelText)),!explicitDatasets){const datasets2=this.datasets.map((series,index)=>{if(canonicalSeriesPoints(series)!==void 0)return series;const current=canonicalSeriesData(series),data=[...current,...Array.from({length:Math.max(0,domainLength2-current.length)},()=>null),appendedValues[index]??null];return{...series,data:data.slice(-limit)}});this.datasets=datasets2}if(explicitLabels||explicitDatasets){const nextData={...currentData};explicitLabels&&(nextData.labels=nextLabels),explicitDatasets&&(nextData.datasets=effective.datasets.map((dataset,index)=>{if(this.isPointDataset(dataset))return dataset;const current=this.datasetValues(dataset),peer=chartDatasetPeerValues(dataset),padding=Array.from({length:Math.max(0,domainLength2-current.length)},()=>null),data=[...peer,...padding,appendedValues[index]??null],canonical=[...current,...padding,appendedValues[index]??null],nextData2=data.slice(-limit),nextCanonical=canonical.slice(-limit);return canonicalChartDatasetDataValues.set(nextData2,Object.freeze(nextCanonical)),{...dataset,data:nextData2}})),this.config={...effectiveConfig,data:nextData}}return}const currentLabels=this.canonicalLabels();let domainLength=currentLabels.length;for(const series of this.datasets)canonicalSeriesPoints(series)===void 0&&(domainLength=Math.max(domainLength,canonicalSeriesData(series).length));const labels=[...currentLabels,...Array.from({length:Math.max(0,domainLength-currentLabels.length)},()=>""),label],datasets=this.datasets.map((series,index)=>{if(canonicalSeriesPoints(series)!==void 0)return series;const current=canonicalSeriesData(series),data=[...current,...Array.from({length:Math.max(0,domainLength-current.length)},()=>null),appendedValues[index]??null];return{...series,data:data.slice(-limit)}});this.labels=labels.slice(-limit),this.datasets=datasets}exportData(format){if(format==="png")return this.chart?.toBase64Image?.()??"";const effective=this.effectiveData(),columns=effective.datasets.map((dataset,datasetIndex)=>{const values=this.datasetValues(dataset),label=this.datasetLabel(dataset,datasetIndex),points=values.map(normalizedChartPoint).filter(point=>point!==null);return{dataset,label,point:this.isPointDataset(dataset),radius:points.some(point=>point.r!=null),pointLabel:points.some(point=>point.label!=null)}}),header=["label",...columns.flatMap(column=>column.point?[`${column.label} x`,`${column.label} y`,...column.radius?[`${column.label} r`]:[],...column.pointLabel?[`${column.label} label`]:[]]:[column.label])].map(escapeCsvField).join(",");let rowCount=effective.labels.length;for(const dataset of effective.datasets)rowCount=Math.max(rowCount,this.datasetValues(dataset).length);const exportCell=(value,metadata)=>typeof value!="number"||!Number.isFinite(value)?value??"":this.formatExportValue(value,metadata)??value,rows=Array.from({length:rowCount},(_,index)=>{const firstPoint=effective.datasets.map(dataset=>normalizedChartPoint(this.datasetValues(dataset)[index])).find(point=>point!==null),label=labelText(effective.labels[index])||firstPoint?.label||"";return[label,...columns.flatMap((column,datasetIndex)=>{const value=this.datasetValues(column.dataset)[index],axis=this.datasetValueAxis(column.dataset),metadata={datasetIndex,index,label:label||void 0,seriesLabel:column.label,...axis===void 0?{}:{axis}};if(!column.point)return[exportCell(value,metadata)];const point=normalizedChartPoint(value);return point?[exportCell(point.x,{...metadata,statistic:"x"}),exportCell(point.y,{...metadata,statistic:"y"}),...column.radius?[point.r==null?"":exportCell(point.r,{...metadata,statistic:"r"})]:[],...column.pointLabel?[point.label??""]:[]]:["","",...column.radius?[""]:[],...column.pointLabel?[""]:[]]})].map(escapeCsvField).join(",")});return[header,...rows].join(`\r
|
|
2
|
+
`)}connectedCallback(){super.connectedCallback(),this.stopAnnotationRegistrationWatch?.(),this.stopAnnotationRegistrationWatch=onAnnotationPluginRegistered(()=>this.rebuildAfterAnnotationRegistration()),this.visible=!this.ownerWindow?.IntersectionObserver,this.armReducedMotionWatcher();const ownerWindow=this.ownerWindow,ResizeObserverCtor=ownerWindow?.ResizeObserver;ResizeObserverCtor&&(this.resizeObserver=new ResizeObserverCtor(entries=>{const width=entries[0]?.contentRect.width??this.getBoundingClientRect().width;if(Number.isFinite(width)&&this.lastObservedInlineSize!==void 0&&Math.abs(width-this.lastObservedInlineSize)<.5||(this.lastObservedInlineSize=width,this.resizeDrawFrame!==void 0))return;const frameOwner=this.ownerWindow;frameOwner&&(this.resizeDrawFrameOwner=frameOwner,this.resizeDrawFrame=frameOwner.requestAnimationFrame(()=>{this.resizeDrawFrame=void 0,this.resizeDrawFrameOwner=void 0,!(!this.isConnected||this.ownerWindow!==frameOwner)&&(this.updateAutoLegendPosition()||this.drawIfVisible())}))}),this.resizeObserver.observe(this)),this.updateAutoLegendPosition();const generation=++this.loadGeneration;this.zoomable&&this.requestZoomFeature(),this.loadLibrary(this.zoomable).then(async mod=>{try{await this.updateComplete}catch{return}if(await new Promise(resolve=>this.updateBrowserDerivedState(resolve)),!(generation!==this.loadGeneration||!this.isConnected)){if(this.loading=!1,!mod){this.loadFailed=!0;return}this.loadFailed=!1,this.chartJsModule=mod,this.drawIfVisible()}}),this.needsDataLabels&&this.requestDataLabelsFeature(),this.needsAnnotations&&this.requestAnnotationFeature();const IntersectionObserverCtor=ownerWindow?.IntersectionObserver;if(IntersectionObserverCtor){const observerGeneration=++this.intersectionGeneration,observer=new IntersectionObserverCtor(entries=>{if(observerGeneration!==this.intersectionGeneration||this.intersectionObserver!==observer||!this.isConnected||this.ownerWindow!==ownerWindow)return;const wasVisible=this.visible;this.visible=entries[0]?.isIntersecting??!0,this.visible&&!wasVisible&&this.drawIfVisible()});this.intersectionObserver=observer,observer.observe(this)}}disconnectedCallback(){this.chartSync.disconnect(),super.disconnectedCallback(),this.stopAnnotationRegistrationWatch?.(),this.stopAnnotationRegistrationWatch=void 0,this.lastDataTruncationAnnouncement="",this.isMounting=!0,this.announcedFeatureWarnings.clear(),this.resizeObserver?.disconnect(),this.resizeObserver=void 0,this.resizeDrawFrame!==void 0&&this.resizeDrawFrameOwner?.cancelAnimationFrame(this.resizeDrawFrame),this.resizeDrawFrame=void 0,this.resizeDrawFrameOwner=void 0,this.lastObservedInlineSize=void 0,this.loadGeneration+=1,this.zoomLoadGeneration+=1,this.dataLabelsLoadGeneration+=1,this.annotationLoadGeneration+=1,this.discardChart(!1),this.builtPlugins=[],this.intersectionObserver?.disconnect(),this.intersectionObserver=void 0,this.intersectionGeneration+=1,this.visible=!0,this.disarmReducedMotionWatcher()}adoptedCallback(){this.chartSync.disconnect(),this.canvasTokens.clear(),super.adoptedCallback(),this.announcements.adopted(),this.requestUpdate(),this.disarmReducedMotionWatcher(),this.armReducedMotionWatcher()}armReducedMotionWatcher(){this.reducedMotionWatch.arm()}disarmReducedMotionWatcher(){this.reducedMotionWatch.disarm()}get ownerWindow(){return this.ownerDocument?.defaultView??void 0}computedStyle(element=this){const view=this.ownerWindow;return view?view.getComputedStyle(element):"style"in element?element.style:this.style}applyDataLabelsPlugin(plugin){this.dataLabelsPlugin=plugin;let rebuilt=!1;plugin&&this.needsDataLabels&&this.chart&&(this.discardChart(!0),this.builtType=void 0,this.builtPlugins=[],rebuilt=!0),this.drawIfVisible(),rebuilt&&this.showsLegend&&this.requestUpdate()}get zoomFeatureAvailable(){return this.zoomable&&this.zoomFeatureState==="available"}featureWarningMessages(){if(this.loading||this.loadFailed)return[];const messages=[];return this.zoomable&&this.zoomFeatureState==="unavailable"&&messages.push(this.localize("chartZoomUnavailable")),this.dataLabelsFeatureState==="unavailable"&&(this.dataLabels&&messages.push(this.localize("chartDataLabelsUnavailable")),this.stackTotals&&messages.push(this.localize("chartStackTotalsUnavailable"))),this.needsAnnotations&&this.annotationFeatureState==="unavailable"&&messages.push(this.localize("chartAnnotationsUnavailable")),messages}requestZoomFeature(){const generation=++this.zoomLoadGeneration;if(!this.zoomable){this.zoomFeatureState="idle";return}this.zoomFeatureState="loading",this.loadZoomFeature().then(result=>{generation!==this.zoomLoadGeneration||!this.isConnected||!this.zoomable||(this.zoomFeatureState=result.kind==="available"?"available":"unavailable",result.kind!=="core-unavailable"&&!this.loading&&!this.chartJsModule&&(this.chartJsModule=result.mod),this.drawIfVisible(),this.requestUpdate())})}requestAnnotationFeature(){const generation=++this.annotationLoadGeneration;if(!this.needsAnnotations){this.annotationFeatureState="idle";return}this.annotationFeatureState="loading",this.loadAnnotationFeature().then(result=>{generation!==this.annotationLoadGeneration||!this.isConnected||!this.needsAnnotations||(result.kind!=="core-unavailable"&&!this.loading&&!this.chartJsModule&&(this.chartJsModule=result.mod),this.annotationFeatureState=result.kind==="available"?"available":"unavailable",this.applyAnnotationPlugin(result.kind==="available"?result.plugin:void 0),this.requestUpdate())})}applyAnnotationPlugin(plugin){this.annotationPlugin=plugin,plugin&&this.needsAnnotations&&this.chart&&(this.discardChart(!0),this.builtType=void 0,this.builtPlugins=[]),this.drawIfVisible()}rebuildAfterAnnotationRegistration(){!this.chart||this.needsAnnotations||(this.discardChart(!0),this.builtType=void 0,this.builtPlugins=[],this.drawIfVisible())}requestDataLabelsFeature(){const generation=++this.dataLabelsLoadGeneration;if(!this.needsDataLabels){this.dataLabelsFeatureState="idle";return}this.dataLabelsFeatureState="loading",this.loadDataLabelsFeature().then(result=>{generation!==this.dataLabelsLoadGeneration||!this.isConnected||!this.needsDataLabels||(this.dataLabelsFeatureState=result.kind==="available"?"available":"unavailable",result.kind!=="core-unavailable"&&!this.loading&&!this.chartJsModule&&(this.chartJsModule=result.mod),this.applyDataLabelsPlugin(result.kind==="available"?result.plugin:void 0),this.requestUpdate())})}willUpdate(changed){super.willUpdate(changed),this.zoomed&&this.effectiveType()!==this.builtType&&(this.zoomed=!1,this.emit("lr-zoom",{zoomed:!1}))}firstUpdated(changed){super.firstUpdated(changed),queueMicrotask(()=>{collectInitialSlotAssignment(this.configSlotEl,s=>this.collectConfigFromSlot(s))})}updated(changed){if(super.updated(changed),!this.isConnected)return;const contentChanged=this.chartContentChanged(changed),syncDataChanged=contentChanged||changed.has("hiddenDatums");this.chartSync.update(this.syncGroup,typeof this.syncGroup=="string"&&this.syncGroup.trim()!==""&&this.syncCompatible(),syncDataChanged);const wasMounting=this.isMounting;this.isMounting=!1,changed.has("keyboardDatumAnnouncement")&&changed.get("keyboardDatumAnnouncement")!==void 0&&this.keyboardDatumAnnouncement!==""&&this.announcements.announcePolite(this.keyboardDatumAnnouncement),changed.has("loadFailed")&&changed.get("loadFailed")!==void 0&&this.loadFailed&&this.announcements.announceAssertive(this.localize("chartMissingLibrary"));const dataTruncation=this.dataTruncationMessage();if(wasMounting&&(this.lastDataTruncationAnnouncement=dataTruncation),!this.loading&&!this.loadFailed){const featureWarnings=this.featureWarningMessages();for(const warning of featureWarnings)this.announcedFeatureWarnings.has(warning)||this.announcements.announceAssertive(warning);this.announcedFeatureWarnings=new Set(featureWarnings),!wasMounting&&dataTruncation!==this.lastDataTruncationAnnouncement&&(this.lastDataTruncationAnnouncement=dataTruncation,dataTruncation&&this.announcements.announcePolite(dataTruncation))}if(this.setAttribute("aria-busy",String(this.loading)),changed.has("height")){const height=sanitizeCssLength(this.height,"height");height?this.style.setProperty("--_lr-chart-height",height):this.style.removeProperty("--_lr-chart-height")}if(this.loading)return;changed.has("zoomable")&&this.requestZoomFeature(),(changed.has("dataLabels")||changed.has("stackTotals"))&&this.requestDataLabelsFeature(),changed.has("annotations")&&this.requestAnnotationFeature();const effectiveDirection=this.effectiveDirection,effectiveLocale=this.effectiveLocale,contextChanged=this.lastDrawnDirection!==void 0&&this.lastDrawnDirection!==effectiveDirection||this.lastDrawnLocale!==void 0&&this.lastDrawnLocale!==effectiveLocale;if(this.lastDrawnDirection=effectiveDirection,this.lastDrawnLocale=effectiveLocale,!contentChanged&&!contextChanged){changed.has("hiddenDatums")&&this.visible&&this.applyDatumVisibility()&&this.chart?.update("none");return}this.drawIfVisible()}chartContentChanged(changed){return["type","labels","datasets","hiddenDatasets","grid","axes","size","indexAxis","legendPosition","min","max","scaleType","annotations","plugins","autoLegendPosition","valueFormatter","formatter","tooltipTitleFormatter","tooltipFooterFormatter","area","height","xLabel","yLabel","y2Label","withoutZeroBaseline","stacked","stackedAxes","withoutAnimation","withoutLegend","withoutTooltip","syncGroup","dataLabels","stackTotals","config","slottedConfig","zoomable","locale","strings","loading"].some(name=>changed.has(name))}seriesToDataset(s,index,palette,effectiveType,chartStyle=this.chartStyleOptions(palette),rowIndexes){const series=canonicalChartSeries(s);if(!series)return{label:"",data:[]};const points=canonicalSeriesPoints(series),fullNormalizedData=points?points.map(normalizedChartPoint):canonicalSeriesData(series).map(value=>typeof value=="number"&&Number.isFinite(value)?value:null),normalizedData=rowIndexes?rowIndexes.map(rowIndex=>fullNormalizedData[rowIndex]??null):fullNormalizedData,borderFallback=chartStyle.borderColors[index%chartStyle.borderColors.length]??palette[index%palette.length],fillFallback=chartStyle.fillColors[index%chartStyle.fillColors.length]??palette[index%palette.length],sourceColors=projectChartStrings(series.color),authoredColors=sourceColors&&rowIndexes?rowIndexes.map(rowIndex=>sourceColors[rowIndex]??""):typeof series.color=="string"?series.color:sourceColors,colors=typeof authoredColors=="string"?[this.canvasTokens.resolve(authoredColors,borderFallback??"transparent")]:authoredColors?this.canvasTokens.resolveMany(authoredColors,borderFallback??"transparent"):void 0,sliceChart=effectiveType==="pie"||effectiveType==="doughnut"||effectiveType==="polarArea",sliceFillColors=sliceChart&&chartStyle.fillColors.length?normalizedData.map((_,itemIndex)=>{const sourceIndex=rowIndexes?.[itemIndex]??itemIndex;return chartStyle.fillColors[sourceIndex%chartStyle.fillColors.length]}):void 0,sliceBorderColors=sliceChart&&chartStyle.borderColors.length?normalizedData.map((_,itemIndex)=>{const sourceIndex=rowIndexes?.[itemIndex]??itemIndex;return chartStyle.borderColors[sourceIndex%chartStyle.borderColors.length]}):void 0,fill=series.fill??this.area,backgroundColor=colors??sliceFillColors??fillFallback,datasetType=series.type??effectiveType,authoredSegmentColors=series.segmentColors?.length&&rowIndexes?rowIndexes.map(rowIndex=>series.segmentColors[rowIndex%series.segmentColors.length]):series.segmentColors,segmentColors=authoredSegmentColors?this.canvasTokens.resolveMany(authoredSegmentColors,colors?.[0]??borderFallback??"transparent"):void 0,authoredPointColors=series.pointColors&&rowIndexes?rowIndexes.map(rowIndex=>series.pointColors[rowIndex]??""):series.pointColors,backgroundColors=projectChartStrings(backgroundColor),backgroundColorValue=typeof backgroundColor=="string"?backgroundColor:void 0,resolvedBackgroundColor=datasetType==="line"&&fill&&(colors||!chartStyle.authoredFillColors[index%chartStyle.authoredFillColors.length])?backgroundColors?backgroundColors.map(color=>this.canvasTokens.translucent(color)):backgroundColorValue&&this.canvasTokens.translucent(backgroundColorValue):backgroundColor,encoding=forcedColorEncoding(index),resolvedBackgroundColors=projectChartStrings(resolvedBackgroundColor),resolvedBackgroundColorValue=typeof resolvedBackgroundColor=="string"?resolvedBackgroundColor:void 0,encodedBackgroundColor=chartStyle.forcedColors?resolvedBackgroundColors?resolvedBackgroundColors.map((color,itemIndex)=>this.forcedColorPattern(sliceChart?itemIndex:index,color)):resolvedBackgroundColorValue&&this.forcedColorPattern(index,resolvedBackgroundColorValue):resolvedBackgroundColor,pointRadii=projectChartPointRadii(series.pointRadius);return{label:series.label,data:normalizedData,type:series.type,fill,...datasetType==="bar"&&this.hasConfiguredBarOption("borderRadius")?{}:{borderRadius:chartStyle.borderRadius},...datasetType==="bar"&&!Number.isFinite(series.width)&&this.hasConfiguredBarOption("borderWidth")||isArcDatasetType(datasetType)&&this.hasConfiguredElementOption(datasetType,"arc","borderWidth")?{}:{borderWidth:nonNegativeFinite(series.width,datasetType==="line"||datasetType==="radar"?chartStyle.lineBorderWidth:chartStyle.borderWidth)},borderDash:series.dash?[4,4]:chartStyle.forcedColors?[...encoding.dash]:void 0,pointStyle:chartStyle.forcedColors?encoding.pointStyle:void 0,backgroundColor:encodedBackgroundColor,borderColor:colors?.[0]??sliceBorderColors??borderFallback,pointBackgroundColor:authoredPointColors?this.canvasTokens.resolveMany(authoredPointColors,colors?.[0]??borderFallback??"transparent"):void 0,...isPointDatasetType(datasetType)&&this.hasConfiguredElementOption(datasetType,"point","radius")?{}:{pointRadius:pointRadii?(rowIndexes?rowIndexes.map(rowIndex=>pointRadii[rowIndex]):pointRadii).map(radius=>nonNegativeFinite(radius,chartStyle.pointRadius)):nonNegativeFinite(series.pointRadius,chartStyle.pointRadius)},...segmentColors?.length?{segment:{borderColor:ctx=>segmentColors[ctx.p0DataIndex%segmentColors.length]}}:{},yAxisID:series.axis==="y2"?"y2":"y",...series.stack!==void 0?{stack:series.stack}:{}}}hasConfiguredElementOption(datasetTypeKey,elementKey,option){const read=(value,key)=>{if(!isChartRecord(value))return;const descriptor=chartRecordValue(value,key);return descriptor===MISSING_OWN_DATA_DESCRIPTOR||descriptor===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:descriptor.value},options=this.effectiveConfig()?.options,dataset=read(read(options,"datasets"),datasetTypeKey),scopes=[dataset,read(read(dataset,"elements"),elementKey),read(read(options,"elements"),elementKey),options],prefixed=`${elementKey}${option[0].toUpperCase()}${option.slice(1)}`;return scopes.some(scope=>read(scope,prefixed)!==void 0||read(scope,option)!==void 0)}hasConfiguredBarOption(option){return this.hasConfiguredElementOption("bar","bar",option)}themeColors(){const cs=this.canvasTokens.sync()??this.computedStyle(),grid=cs.getPropertyValue("--grid-color").trim()||cs.getPropertyValue("--lr-chart-grid-color").trim()||cs.getPropertyValue("--_lr-chart-grid-color").trim(),tick=cs.getPropertyValue("--lr-chart-tick-color").trim()||cs.getPropertyValue("--_lr-chart-tick-color").trim(),legend=cs.getPropertyValue("--lr-chart-legend-color").trim()||cs.getPropertyValue("--_lr-chart-legend-color").trim(),tooltipBg=cs.getPropertyValue("--lr-chart-tooltip-bg").trim()||cs.getPropertyValue("--_lr-chart-tooltip-bg").trim(),tooltipText=cs.getPropertyValue("--lr-chart-tooltip-color").trim()||cs.getPropertyValue("--_lr-chart-tooltip-color").trim();return{grid:this.canvasTokens.resolve(grid,FALLBACK_GRID_COLOR),tick:this.canvasTokens.resolve(tick,FALLBACK_TICK_COLOR),tickFontSize:this.styleNumber("--lr-chart-tick-font-size","--_lr-chart-tick-font-size",FALLBACK_TICK_FONT_SIZE),legend:this.canvasTokens.resolve(legend,FALLBACK_LEGEND_COLOR),tooltipBg:this.canvasTokens.resolve(tooltipBg,FALLBACK_TOOLTIP_BG),tooltipText:this.canvasTokens.resolve(tooltipText,FALLBACK_TOOLTIP_TEXT)}}styleColor(name,fallback){const value=this.computedStyle().getPropertyValue(name).trim();return value?this.canvasTokens.resolve(value,fallback):fallback}styleNumber(name,fallbackToken,fallback){const computed=this.computedStyle(),value=computed.getPropertyValue(name).trim()||computed.getPropertyValue(fallbackToken).trim(),direct=DIRECT_PIXEL_NUMBER.exec(value);if(direct){const resolved2=Number.parseFloat(direct[1]);if(Number.isFinite(resolved2)&&resolved2>=0)return resolved2}if(!value||!this.ownerWindow)return fallback;const resolved=this.canvasTokens.length(value,()=>{const probe=this.ownerDocument.createElement("span");probe.hidden=!0,probe.setAttribute("aria-hidden","true"),probe.style.inlineSize=value,(this.shadowRoot??this).append(probe);try{return Number.parseFloat(this.computedStyle(probe).inlineSize)}finally{probe.remove()}});return Number.isFinite(resolved)&&resolved>=0?resolved:fallback}explicitTickFontSize(){const resolved=this.styleNumber("--lr-chart-tick-font-size","--lr-chart-tick-font-size",NaN);return Number.isNaN(resolved)?void 0:resolved}forcedColorPattern(index,background){if(!this.ownerWindow)return background;const surface=this.styleColor("--lr-color-surface",FALLBACK_TOOLTIP_BG),key=`${forcedColorEncoding(index).name}
|
|
3
3
|
${background}
|
|
4
4
|
${surface}`;let pattern=this.forcedColorPatterns.get(key);return pattern||(pattern=createForcedColorPattern(this.ownerDocument,index,background,surface),this.forcedColorPatterns.set(key,pattern)),pattern}chartStyleOptions(palette){const computed=this.computedStyle(),authoredFillColors=palette.map((_,index)=>index<6&&!!computed.getPropertyValue(`--fill-color-${index+1}`).trim()),borderColors=palette.map((fallback,index)=>index<6?this.styleColor(`--border-color-${index+1}`,fallback):fallback),fillColors=palette.map((fallback,index)=>index<6?this.styleColor(`--fill-color-${index+1}`,fallback):fallback);return{borderColors,fillColors,authoredFillColors,borderRadius:this.styleNumber("--border-radius","--lr-radius",6),borderWidth:this.styleNumber("--border-width","--lr-border-width-thin",1),gridBorderWidth:this.styleNumber("--grid-border-width","--lr-border-width-thin",1),lineBorderWidth:this.styleNumber("--line-border-width","--lr-border-width-medium",2),pointRadius:this.styleNumber("--point-radius","--lr-space-2xs",4),forcedColors:forcedColorsActive(this.ownerWindow)}}get needsDataLabels(){return this.dataLabels||this.stackTotals}get needsAnnotations(){return this.normalizedAnnotations().length>0}normalizedAnnotations(){return this.canonicalAnnotations()}annotationColor(tone){const token=`--lr-color-${tone??"neutral"}`,raw=this.computedStyle().getPropertyValue(token).trim();return this.canvasTokens.resolve(raw,FALLBACK_TICK_COLOR)}annotationOptions(tick){const entries={},direction=this.effectiveDirection==="rtl"?"rtl":"ltr";return this.normalizedAnnotations().forEach((entry,index)=>{const axis=entry.axis==="x"?"x":"y",color=this.annotationColor(entry.tone),label=entry.label?{content:isolateCanvasText(entry.label,direction),display:!0,color:tick}:void 0;if(typeof entry.value=="number"){entries[`lr-annotation-${index}`]={type:"line",scaleID:axis,value:entry.value,borderColor:color,borderWidth:2,...label?{label}:{}};return}const bounds=axis==="y"?{yMin:entry.from,yMax:entry.to}:{xMin:entry.from,xMax:entry.to};entries[`lr-annotation-${index}`]={type:"box",...bounds,backgroundColor:this.canvasTokens.translucent(color),borderColor:color,borderWidth:0,...label?{label}:{}}}),entries}datalabelsOptions(theme,effectiveType){if(!this.needsDataLabels)return{display:!1};const effective=this.effectiveData(),datasets=effective.datasets,stackTotalsPossible=this.stackTotals&&(effectiveType==="bar"||effectiveType==="line"),sourceDatasetIndex=visualIndex=>this.visualDatasetSourceIndexes?.[visualIndex]??visualIndex,sourceRowIndex=visualIndex=>this.visualRowSourceIndexes?.[visualIndex]??visualIndex,topDatasetIndexByGroup=new Map;if(stackTotalsPossible){const visualDatasetCount=this.visualDatasetSourceIndexes?.length??datasets.length;for(let visualIndex=0;visualIndex<visualDatasetCount;visualIndex+=1){const dataset=datasets[sourceDatasetIndex(visualIndex)],axis=chartDatasetAxis(dataset);if(!this.axisStacked(axis))continue;let byGroup=topDatasetIndexByGroup.get(axis);byGroup||(byGroup=new Map,topDatasetIndexByGroup.set(axis,byGroup)),byGroup.set(chartDatasetStack(dataset),visualIndex)}}const totalsByGroup=new Map,totalsFor=(axis,stack)=>{let byGroup=totalsByGroup.get(axis);byGroup||(byGroup=new Map,totalsByGroup.set(axis,byGroup));let totals=byGroup.get(stack);return totals||(totals=this.computeStackTotals(axis,stack),byGroup.set(stack,totals)),totals},stackTotalsActive=[...topDatasetIndexByGroup.values()].some(byGroup=>byGroup.size>0),direction=this.effectiveDirection==="rtl"?"rtl":"ltr",isolate=text=>text.split(`
|
|
5
5
|
`).map(line=>isolateCanvasText(line,direction)).join(`
|
|
6
|
-
`);return{color:theme.tick,align:stackTotalsActive?"end":"center",anchor:stackTotalsActive?"end":"center",display:context=>{const indexes=this.callbackIndexes(context,effective);if(!indexes)return!1;const{datasetIndex,index}=indexes,dataset=datasets[sourceDatasetIndex(datasetIndex)],axis=chartDatasetAxis(dataset),stack=chartDatasetStack(dataset);return stackTotalsPossible&&this.axisStacked(axis)?topDatasetIndexByGroup.get(axis)?.get(stack)!==datasetIndex?this.dataLabels:totalsFor(axis,stack)[sourceRowIndex(index)]==null?this.dataLabels:!0:this.dataLabels},formatter:(value,context)=>{const indexes=this.callbackIndexes(context,effective);if(!indexes)return"";const{datasetIndex,index}=indexes,dataset=datasets[sourceDatasetIndex(datasetIndex)],axis=chartDatasetAxis(dataset),stack=chartDatasetStack(dataset),metadata=this.datumFormatterMetadata(datasetIndex,index,effective);if(stackTotalsPossible&&this.axisStacked(axis)&&topDatasetIndexByGroup.get(axis)?.get(stack)===datasetIndex){const total=totalsFor(axis,stack)[sourceRowIndex(index)];if(total!=null)return isolate(this.formatDataLabel(total,this.stackTotalMetadata(metadata)))}const numeric=chartDatumNumericValue(this.scaledSliceDatasets.has(datasetIndex)?this.datasetValues(dataset)[sourceRowIndex(index)]:value);return numeric===void 0?"":isolate(this.formatDataLabel(numeric,metadata))}}}formatDataLabel(value,metadata={}){if(this.formatter||this.valueFormatter){const formatted=this.formatter?.({value,surface:"visual",...metadata})??this.valueFormatter?.(value,"tooltip");if(formatted!=null)return String(formatted)}return formatChartValue(value,this.effectiveLocale)}computeStackTotals(axisId="y",stackGroup=void 0){const effective=this.effectiveData(),members=effective.datasets.filter(dataset=>chartDatasetAxis(dataset)===axisId&&chartDatasetStack(dataset)===stackGroup),categoryCount=members.reduce((max,dataset)=>Math.max(max,this.datasetValues(dataset).length),effective.labels.length),totals=[];for(let i=0;i<categoryCount;i++){let sum=0,any=!1;for(const dataset of members){const value=this.datasetValues(dataset)[i],numeric=chartDatumNumericValue(value);numeric!==void 0&&(sum=finiteAdd(sum,numeric),any=!0)}totals.push(any?sum:null)}return totals}seriesPalette(){return this.canvasTokens.palette()}tickLabelIsolation(direction){return{afterTickToLabelConversion:scale=>isolateScaleTickLabels(scale,direction)}}tickOptions(theme,kind="value",axis="y"){return{color:theme.tick,font:{size:theme.tickFontSize},...(this.formatter||this.valueFormatter)&&kind==="value"?{callback:value=>this.formatValue(value,"tick",{axis})}:{}}}effectiveIndexAxis(){return this.indexAxis==="y"?"y":"x"}valueScaleType(){return this.scaleType==="logarithmic"?"logarithmic":"linear"}valueBeginAtZero(){return this.valueScaleType()==="logarithmic"?void 0:!this.withoutZeroBaseline}scaleBounds(){const min=this.min!==null&&Number.isFinite(this.min)?finiteNumber(this.min,0):void 0,max=this.max!==null&&Number.isFinite(this.max)?finiteNumber(this.max,0):void 0;return{...min!==void 0?{min}:{},...max!==void 0?{max}:{}}}gridAxisVisible(axis){const grid=normalizeChartGrid(this.grid);return grid==="both"||grid===axis}axisVisible(axis){const axes=normalizeChartGrid(this.axes);return!this.compactPlot&&(axes==="both"||axes===axis)}axisStacked(axisId){return axisId==="y2"?this.stackedAxes?.y2??this.stacked:this.stackedAxes?.y??this.stacked}buildScales(effectiveType,theme,chartStyle){if(effectiveType==="pie"||effectiveType==="doughnut")return{};const direction=this.effectiveDirection==="rtl"?"rtl":"ltr";if(effectiveType==="radar"||effectiveType==="polarArea"){const explicitPointLabelFontSize=this.explicitTickFontSize();return{r:{...this.tickLabelIsolation(direction),beginAtZero:!this.withoutZeroBaseline,...this.scaleBounds(),ticks:{...this.tickOptions(theme,"value","r"),showLabelBackdrop:!1,z:1},grid:{color:theme.grid,display:this.gridAxisVisible("y"),lineWidth:chartStyle.gridBorderWidth},border:{width:chartStyle.gridBorderWidth},angleLines:{color:theme.grid,display:this.gridAxisVisible("x"),lineWidth:chartStyle.gridBorderWidth},pointLabels:{color:theme.tick,callback:label=>isolateCanvasLabel(label,direction),...explicitPointLabelFontSize!==void 0?{font:{size:explicitPointLabelFontSize}}:{}}}}}const hasY2=this.effectiveData().datasets.some(dataset=>chartDatasetAxis(dataset)==="y2"),rtl=this.effectiveDirection==="rtl",stackableType=effectiveType==="bar"||effectiveType==="line",stackedX=stackableType&&this.axisStacked("x"),stackedY=stackableType&&this.axisStacked("y"),stackedY2=stackableType&&this.axisStacked("y2"),horizontalCategorical=(effectiveType==="bar"||effectiveType==="line")&&this.effectiveIndexAxis()==="y",xKind=effectiveType==="scatter"||effectiveType==="bubble"||horizontalCategorical?"value":"category",yKind=horizontalCategorical?"category":"value",valueAxis=horizontalCategorical?"x":"y",bounds=this.scaleBounds();return{x:{...this.tickLabelIsolation(direction),display:this.axisVisible("x"),type:xKind==="value"?this.valueScaleType():"category",beginAtZero:xKind==="value"?this.valueBeginAtZero():void 0,...valueAxis==="x"?bounds:{},title:{display:!!this.xLabel,text:isolateCanvasLabel(this.xLabel,direction),color:theme.tick},ticks:this.tickOptions(theme,xKind,"x"),grid:{color:theme.grid,display:this.gridAxisVisible("x"),lineWidth:chartStyle.gridBorderWidth},border:{width:chartStyle.gridBorderWidth},stacked:stackedX},y:{...this.tickLabelIsolation(direction),display:this.axisVisible("y"),type:yKind==="value"?this.valueScaleType():"category",position:rtl?"right":"left",beginAtZero:yKind==="value"?this.valueBeginAtZero():void 0,...valueAxis==="y"?bounds:{},title:{display:!!this.yLabel,text:isolateCanvasLabel(this.yLabel,direction),color:theme.tick},ticks:this.tickOptions(theme,yKind,"y"),grid:{color:theme.grid,display:this.gridAxisVisible("y"),lineWidth:chartStyle.gridBorderWidth},border:{width:chartStyle.gridBorderWidth},stacked:stackedY},...hasY2?{y2:{...this.tickLabelIsolation(direction),display:this.axisVisible("y"),type:this.valueScaleType(),position:rtl?"left":"right",...valueAxis==="y"?bounds:{},grid:{drawOnChartArea:!1,color:theme.grid,display:this.gridAxisVisible("y"),lineWidth:chartStyle.gridBorderWidth},border:{width:chartStyle.gridBorderWidth},title:{display:!!this.y2Label,text:isolateCanvasLabel(this.y2Label,direction),color:theme.tick},ticks:this.tickOptions(theme,"value","y2"),stacked:stackedY2}}:{}}}handlePointClick(event,chart){let elements;try{elements=chart.getElementsAtEventForMode(event,"nearest",{intersect:!0},!0)}catch{return}const admission=admitChartArray(elements);if(!admission||!chartArrayIsStillAdmitted(admission))return;const first=chartRecordValue(admission.source,"0");if(first===MISSING_OWN_DATA_DESCRIPTOR||first===UNSAFE_OWN_DATA_DESCRIPTOR)return;const effective=this.effectiveData(),hit=this.callbackIndexes(first.value,effective);if(!hit)return;const datasetIndex=this.visualDatasetSourceIndexes?.[hit.datasetIndex]??hit.datasetIndex,index=this.visualRowSourceIndexes?.[hit.index]??hit.index,value=this.datasetValues(effective.datasets[datasetIndex])[index]??null,label=normalizedChartPoint(value)?.label??(labelText(effective.labels[index])||void 0);this.activateDatum({datasetIndex,index,label,value})}chartDatums(){const effective=this.effectiveData(),memo=this.chartDatumsMemo;if(memo?.effective===effective&&memo.datasets===this.visualDatasetSourceIndexes&&memo.rows===this.visualRowSourceIndexes)return memo.value;const datasets=(this.visualDatasetSourceIndexes??effective.datasets.map((_dataset,index)=>index)).map(index=>effective.datasets[index]);let rowIndexes=this.visualRowSourceIndexes;if(!rowIndexes){let sourceRowCount=effective.labels.length;for(const dataset of datasets)sourceRowCount=Math.max(sourceRowCount,chartDatasetValues(dataset).length);rowIndexes=Array.from({length:sourceRowCount},(_value,index)=>index)}const labels=rowIndexes.map(index=>effective.labels[index]),rowCount=rowIndexes.length,sample=sampleChartTableIndexes(rowCount,datasets.length),datums=[];return sample.seriesIndexes.forEach(datasetIndex=>{const dataset=datasets[datasetIndex];if(!dataset)return;const values=chartDatasetValues(dataset);sample.rowIndexes.forEach(localIndex=>{const sourceIndex=rowIndexes[localIndex]??localIndex,value=values[sourceIndex];value!=null&&(typeof value=="number"&&!Number.isFinite(value)||datums.push({datasetIndex:this.visualDatasetSourceIndexes?.[datasetIndex]??datasetIndex,index:sourceIndex,label:normalizedChartPoint(value)?.label??(labelText(labels[localIndex])||void 0),value}))})}),this.chartDatumsMemo={effective,datasets:this.visualDatasetSourceIndexes,rows:this.visualRowSourceIndexes,value:datums},datums}datumDisplayValue(value,context={surface:"spoken"}){const{surface,...metadata}=context,format=(numeric2,statistic)=>surface==="table"?this.formatTableValue(numeric2,{...metadata,statistic}):this.formatSpokenValue(numeric2,{...metadata,statistic}),point=normalizedChartPoint(value);if(point){const x=format(point.x,"x"),y=format(point.y,"y"),coordinates=point.r==null?this.localize("chartPointCoordinates",void 0,{x,y}):this.localize("chartBubblePointCoordinates",void 0,{x,y,radius:format(point.r,"r")});return point.label!==void 0?this.localize("chartLabeledPoint",void 0,{label:point.label,coordinates}):coordinates}const numeric=chartDatumNumericValue(value);return numeric===void 0?labelText(value):format(numeric)}datumAnnouncement(datum,position,total){const dataset=this.effectiveData().datasets[datum.datasetIndex],series=chartDatasetLabel(dataset)||this.localize("chartSeriesLabel");return this.localize("liteChartMarkSummary",void 0,{series,label:datum.label??this.localize("chartPointLabel",void 0,{n:getNumberFormat(this.effectiveLocale).format(datum.index+1)}),value:this.datumDisplayValue(datum.value,{surface:"spoken",datasetIndex:datum.datasetIndex,index:datum.index,label:datum.label,seriesLabel:series,...this.datasetValueAxis(dataset)===void 0?{}:{axis:this.datasetValueAxis(dataset)}}),index:getNumberFormat(this.effectiveLocale).format(position+1),total:getNumberFormat(this.effectiveLocale).format(total)})}activateDatum(datum){const datums=this.chartDatums(),position=datums.findIndex(candidate=>candidate.datasetIndex===datum.datasetIndex&&candidate.index===datum.index);position>=0&&(this.keyboardDatumIndex=position,this.keyboardDatumAnnouncement=this.datumAnnouncement(datum,position,datums.length));const type=this.effectiveType(),kind=type==="bar"?"bar":type==="pie"||type==="doughnut"||type==="polarArea"?"slice":type==="line"?"segment":"point";this.emit("lr-datum-activate",{...datum,kind}),this.emit("lr-point-activate",{...datum})}resetSyncTooltip(){const chart=this.chart;chart?.tooltip?.setActiveElements([],{x:0,y:0}),chart?.render?.()}syncCompatible(){const chart=this.chart;if(!chart)return!1;const type=this.effectiveType();return type!=="bar"&&type!=="line"||chart.options.indexAxis==="y"?!1:chart.scales?.x?.type==="category"&&Array.isArray(chart.data?.datasets)&&chart.data.datasets.every(dataset=>dataset.type===void 0||dataset.type==="bar"||dataset.type==="line")}visualPosition(sources,source){if(!sources)return source;let positions=this.visualPositions.get(sources);return positions||(positions=new Map(sources.map((value,index)=>[value,index])),this.visualPositions.set(sources,positions)),positions.get(source)??-1}syncDatums(){const chart=this.chart;return chart?this.chartDatums().filter(datum=>{const visualDataset=this.visualPosition(this.visualDatasetSourceIndexes,datum.datasetIndex),visualIndex=this.visualPosition(this.visualRowSourceIndexes,datum.index),element=chart.getDatasetMeta?.(visualDataset)?.data?.[visualIndex];return chart.isDatasetVisible(visualDataset)&&!!element&&!element.skip&&Number.isFinite(element.x)&&Number.isFinite(element.y)&&chartDatumNumericValue(datum.value)!==void 0}):[]}publishSyncDatum(datum){const label=this.effectiveData().labels[datum.index];typeof label=="string"?this.chartSync.publish(label,datum.index):this.chartSync.clear()}onSyncPointerMove(event){if(!this.chartSync.enabled||!this.chart)return;const hit=this.chart.getElementsAtEventForMode(event,"nearest",{intersect:!0},!0)[0];if(!hit){this.chartSync.clear();return}const datasetIndex=this.visualDatasetSourceIndexes?.[hit.datasetIndex]??hit.datasetIndex,index=this.visualRowSourceIndexes?.[hit.index]??hit.index,datum=this.syncDatums().find(candidate=>candidate.datasetIndex===datasetIndex&&candidate.index===index);datum&&this.publishSyncDatum(datum)}syncPresentation(label,sourceIndex){if(!this.syncCompatible()||!this.canvasEl||!this.chart)return;const effective=this.effectiveData(),datums=this.syncDatums(),index=sourceIndex??datums.filter(datum=>effective.labels[datum.index]===label).sort((a,b)=>a.index-b.index)[0]?.index;if(index===void 0||effective.labels[index]!==label)return;const matches=datums.filter(datum=>datum.index===index);if(!matches.length)return;const hits=matches.map(datum=>({datasetIndex:this.visualPosition(this.visualDatasetSourceIndexes,datum.datasetIndex),index:this.visualPosition(this.visualRowSourceIndexes,datum.index)})),runtime=this.chart,point=this.chart.getDatasetMeta?.(hits[0].datasetIndex)?.data?.[hits[0].index],area=this.chart.chartArea,container=this.renderRoot.querySelector('[part="plot"]');if(!point||!area||!container)return;const plugins=this.chart.options.plugins,suppressed=this.withoutTooltip||plugins?.tooltip===!1||plugins?.tooltip?.enabled===!1;runtime.tooltip?.setActiveElements(suppressed?[]:hits,{x:point.x,y:point.y}),runtime.render?.();const bounds=container.getBoundingClientRect(),canvasBounds=this.canvasEl.getBoundingClientRect(),categoryX=runtime.scales?.x?.getPixelForValue?.(hits[0].index);return{container,x:canvasBounds.left-bounds.left+(typeof categoryX=="number"&&Number.isFinite(categoryX)?categoryX:point.x),top:canvasBounds.top-bounds.top+area.top,height:area.height}}showKeyboardDatum(datum){!this.chart||this.chartSync.enabled||!datum&&!this.keyboardDatumShown||(this.keyboardDatumShown=showChartActiveDatum(this.chart,datum&&{datasetIndex:this.visualPosition(this.visualDatasetSourceIndexes,datum.datasetIndex),index:this.visualPosition(this.visualRowSourceIndexes,datum.index)}))}onCanvasFocus(event){const datums=this.chartDatums();datums.length&&(this.keyboardDatumIndex=Math.min(this.keyboardDatumIndex,datums.length-1),this.publishSyncDatum(datums[this.keyboardDatumIndex]),isKeyboardFocusEvent(event)&&this.showKeyboardDatum(datums[this.keyboardDatumIndex]),this.keyboardDatumAnnouncement=this.datumAnnouncement(datums[this.keyboardDatumIndex],this.keyboardDatumIndex,datums.length))}onCanvasKeyDown(event){const datums=this.chartDatums();if(!datums.length)return;if(this.keyboardDatumIndex=Math.min(this.keyboardDatumIndex,datums.length-1),event.key==="Enter"||event.key===" "){event.preventDefault(),this.activateDatum(datums[this.keyboardDatumIndex]);return}const rtl=this.effectiveDirection==="rtl",forward=rtl?"ArrowLeft":"ArrowRight",backward=rtl?"ArrowRight":"ArrowLeft";let next=this.keyboardDatumIndex;if(event.key===forward||event.key==="ArrowDown")next=Math.min(datums.length-1,next+1);else if(event.key===backward||event.key==="ArrowUp")next=Math.max(0,next-1);else if(event.key==="Home")next=0;else if(event.key==="End")next=datums.length-1;else return;event.preventDefault(),this.keyboardDatumIndex=next,this.publishSyncDatum(datums[next]),this.showKeyboardDatum(datums[next]),this.keyboardDatumAnnouncement=this.datumAnnouncement(datums[next],next,datums.length)}effectiveType(){return this.effectiveConfig()?.type??normalizeChartType(this.type)}localizedChartType(){const type=this.effectiveType();switch(type){case"line":return this.localize("chartTypeLine");case"bar":return this.localize("chartTypeBar");case"scatter":return this.localize("chartTypeScatter");case"pie":return this.localize("chartTypePie");case"doughnut":return this.localize("chartTypeDoughnut");case"radar":return this.localize("chartTypeRadar");case"polarArea":return this.localize("chartTypePolarArea");case"bubble":return this.localize("chartTypeBubble");default:return String(type)}}formatValue(value,context,metadata={}){const numeric=chartDatumNumericValue(value);return numeric===void 0?value:this.formatter?.({value:numeric,surface:context,...metadata})??this.valueFormatter?.(numeric,context)??value}datasetValueAxis(dataset){const type=this.effectiveType();if(!(type==="pie"||type==="doughnut"))return type==="radar"||type==="polarArea"?"r":(type==="bar"||type==="line")&&this.effectiveIndexAxis()==="y"?"x":dataset===void 0?void 0:chartDatasetAxis(dataset)}datumFormatterMetadata(visualDatasetIndex,visualRowIndex,effective=this.effectiveData()){return this.sourceDatumFormatterMetadata(this.visualDatasetSourceIndexes?.[visualDatasetIndex]??visualDatasetIndex,visualRowIndex===void 0?void 0:this.visualRowSourceIndexes?.[visualRowIndex]??visualRowIndex,effective)}sourceDatumFormatterMetadata(datasetIndex,index,effective=this.effectiveData()){const dataset=effective.datasets[datasetIndex],point=index===void 0||dataset===void 0?null:normalizedChartPoint(this.datasetValues(dataset)[index]),label=index===void 0?void 0:point?.label??(labelText(effective.labels[index])||void 0),axis=this.datasetValueAxis(dataset);return{datasetIndex,...index===void 0?{}:{index},...label===void 0?{}:{label},...dataset===void 0?{}:{seriesLabel:this.datasetLabel(dataset,datasetIndex)},...axis===void 0?{}:{axis}}}stackTotalMetadata(metadata){return{...metadata.index===void 0?{}:{index:metadata.index},...metadata.label===void 0?{}:{label:metadata.label},...metadata.axis===void 0?{}:{axis:metadata.axis},statistic:"total"}}legendValue(item,_chart,effective=this.effectiveData()){const datasetIndex=this.callbackDatasetIndex(item,effective);if(datasetIndex===void 0)return;const sourceDatasetIndex=this.visualDatasetSourceIndexes?.[datasetIndex]??datasetIndex,data=this.datasetValues(effective.datasets[sourceDatasetIndex]);if(!data.length)return;const visualRows=this.visualRowSourceIndexes??data.map((_value,index)=>index),indexDescriptor=chartRecordValue(item,"index");if(indexDescriptor===UNSAFE_OWN_DATA_DESCRIPTOR)return;if(indexDescriptor!==MISSING_OWN_DATA_DESCRIPTOR){const itemIndex=chartIndex(indexDescriptor.value);return itemIndex===void 0||itemIndex>=visualRows.length?void 0:chartDatumNumericValue(data[visualRows[itemIndex]]??null)}let sum=0,hasValue=!1;for(const sourceRowIndex of visualRows){const datum=data[sourceRowIndex],value=chartDatumNumericValue(datum);value!==void 0&&(sum=finiteAdd(sum,value),hasValue=!0)}return hasValue?sum:void 0}legendLabels(chart){const generateLabels=this.chartJsModule?.defaults?.plugins?.legend?.labels?.generateLabels;let generated;if(generateLabels)try{generated=projectChartLegendItems(generateLabels(chart))}catch{generated=void 0}const effective=this.effectiveData(),direction=canvasTextDirection(chart.legend,this.effectiveDirection),fallbackDatasets=(this.visualDatasetSourceIndexes??effective.datasets.map((_dataset,index)=>index)).map(sourceIndex=>effective.datasets[sourceIndex]);return(generated??fallbackDatasets.map((dataset,index)=>({text:chartDatasetLabel(dataset)||String(index+1),datasetIndex:index}))).map(item=>{const value=this.legendValue(item,chart,effective),visualDatasetIndex=this.callbackDatasetIndex(item,effective),visualRowIndex=chartIndex(chartDatasetValue(item,"index")),formatted=this.formatValue(value,"legend",visualDatasetIndex===void 0?{}:this.datumFormatterMetadata(visualDatasetIndex,visualRowIndex,effective));return formatted===value||formatted===void 0?item:{...item,text:this.localize("chartValueLabel",void 0,{label:labelText(chartDatasetValue(item,"text")),value:isolateCanvasText(String(formatted),direction)})}})}tooltipLabel(context,horizontal=!1){const parsed=projectChartDatum(chartDatasetValue(context,"parsed")),raw=projectChartDatum(chartDatasetValue(context,"raw")),parsedPoint=normalizedChartPoint(parsed);let rawValue=(horizontal&&!normalizedChartPoint(raw)?parsedPoint?.x:parsedPoint?.y)??parsed??raw;const scaledSlices=this.scaledSliceDatasets.size>0,effective=scaledSlices||this.formatter!==void 0?this.effectiveData():void 0,hit=effective===void 0?void 0:this.callbackIndexes(context,effective),indexes=scaledSlices?hit:void 0,scaled=indexes!==void 0&&effective!==void 0&&this.scaledSliceDatasets.has(indexes.datasetIndex);if(scaled){const dataset=effective.datasets[this.visualDatasetSourceIndexes?.[indexes.datasetIndex]??indexes.datasetIndex];rawValue=this.datasetValues(dataset)[this.visualRowSourceIndexes?.[indexes.index]??indexes.index]}let formatted=this.formatValue(rawValue,"tooltip",hit===void 0||effective===void 0?{}:this.datumFormatterMetadata(hit.datasetIndex,hit.index,effective));if(!scaled&&formatted===rawValue||formatted===void 0)return;scaled&&typeof formatted=="number"&&(formatted=this.formatSummaryValue(formatted));const label=chartDatasetLabel(chartDatasetValue(context,"dataset"));return label?canvasSentence(value=>this.localize("chartValueLabel",void 0,{label,value}),String(formatted)):String(formatted)}tooltipItemContext(context,horizontal,effective){const parsed=projectChartDatum(chartDatasetValue(context,"parsed")),raw=projectChartDatum(chartDatasetValue(context,"raw")),parsedPoint=normalizedChartPoint(parsed);let rawValue=(horizontal&&!normalizedChartPoint(raw)?parsedPoint?.x:parsedPoint?.y)??parsed??raw;const hit=this.callbackIndexes(context,effective);if(hit!==void 0&&this.scaledSliceDatasets.has(hit.datasetIndex)){const dataset=effective.datasets[this.visualDatasetSourceIndexes?.[hit.datasetIndex]??hit.datasetIndex];rawValue=this.datasetValues(dataset)[this.visualRowSourceIndexes?.[hit.index]??hit.index]}const numeric=chartDatumNumericValue(rawValue);if(numeric===void 0)return;const metadata=hit===void 0?{}:this.datumFormatterMetadata(hit.datasetIndex,hit.index,effective);return{value:numeric,surface:"tooltip",...metadata}}tooltipGroupText(items,horizontal,formatter){if(!formatter)return;const effective=this.effectiveData(),contexts=items.map(item=>this.tooltipItemContext(item,horizontal,effective)).filter(context=>context!==void 0);if(contexts.length)return formatter(contexts)}updateAutoLegendPosition(){const width=this.getBoundingClientRect().width||this.clientWidth,next=width>0&&width<480?"bottom":"right";return next===this.autoLegendPosition?!1:(this.autoLegendPosition=next,!0)}legendPositionForConfig(){const position=normalizeLegendPosition(this.legendPosition);return position==="auto"?this.autoLegendPosition:position==="start"?this.effectiveDirection==="rtl"?"right":"left":position==="end"?this.effectiveDirection==="rtl"?"left":"right":position}legendPositionForLayout(){const position=this.legendPositionForConfig();return position==="top"||position==="right"||position==="left"?position:"bottom"}legendGridPlacement(){const position=normalizeLegendPosition(this.legendPosition);if(position==="auto")return this.autoLegendPosition==="right"?"inline-end":"bottom";if(position==="start")return"inline-start";if(position==="end")return"inline-end";if(position==="top")return"top";const rtl=this.effectiveDirection==="rtl";return position==="left"?rtl?"inline-end":"inline-start":position==="right"?rtl?"inline-start":"inline-end":"bottom"}updateChartArea(chart=this.chart){const area=chart?.chartArea;if(!area)return;const next={top:Number(area.top),left:Number(area.left),right:Number(area.right),bottom:Number(area.bottom),width:Number(area.width),height:Number(area.height)};if(![next.top,next.left,next.right,next.bottom,next.width,next.height].every(Number.isFinite))return;const previous=this.resolvedChartArea;previous&&previous.top===next.top&&previous.left===next.left&&previous.right===next.right&&previous.bottom===next.bottom&&previous.width===next.width&&previous.height===next.height||(this.resolvedChartArea=next,this.chartAreaUpdateQueued||(this.chartAreaUpdateQueued=!0,queueMicrotask(()=>{this.chartAreaUpdateQueued=!1,this.isConnected&&this.requestUpdate()})))}get chartArea(){return this.resolvedChartArea}set chartArea(_value){}buildConfig(){this.forcedColorPatterns=new Map;const theme=this.themeColors(),effectiveType=this.effectiveType();let tooltipIndexAxis=this.effectiveIndexAxis();const palette=this.seriesPalette(),chartStyle=this.chartStyleOptions(palette),rawDataEscapeHatch=this.hasExplicitConfigData(),wantsTooltipLabelCallback=!!(this.formatter||this.valueFormatter)||(effectiveType==="pie"||effectiveType==="doughnut")&&!rawDataEscapeHatch,labels=this.canonicalLabels();let visualRows,visualSeries;if(rawDataEscapeHatch)this.visualRowSourceIndexes=void 0,this.visualDatasetSourceIndexes=void 0;else{let rowCount=labels.length;for(const series of this.datasets)rowCount=Math.max(rowCount,(canonicalSeriesPoints(series)??canonicalSeriesData(series)).length);const sample=sampleChartTableIndexes(rowCount,this.datasets.length);visualRows=sample.rowIndexes.length<rowCount?sample.rowIndexes:void 0,visualSeries=sample.seriesIndexes.length<this.datasets.length?sample.seriesIndexes:void 0,this.visualRowSourceIndexes=visualRows,this.visualDatasetSourceIndexes=visualSeries}const generated={type:effectiveType,data:{labels:visualRows?visualRows.map(index=>labels[index]??""):[...labels],datasets:visualSeries?visualSeries.map(sourceIndex=>this.seriesToDataset(this.datasets[sourceIndex],sourceIndex,palette,effectiveType,chartStyle,visualRows)):this.datasets.map((s,i)=>this.seriesToDataset(s,i,palette,effectiveType,chartStyle,visualRows))},...this.plugins.length||this.needsDataLabels&&this.dataLabelsPlugin?{plugins:[...this.plugins,...this.needsDataLabels&&this.dataLabelsPlugin?[this.dataLabelsPlugin]:[]]}:{},options:{locale:this.effectiveLocale,responsive:!0,maintainAspectRatio:!1,...this.compactPlot&&!["pie","doughnut","radar","polarArea"].includes(effectiveType)?{layout:{padding:0,autoPadding:!1}}:{},indexAxis:this.effectiveIndexAxis(),animation:this.withoutAnimation||prefersReducedMotion(this)?!1:void 0,interaction:{intersect:!1,mode:effectiveType==="scatter"?"nearest":"index"},onClick:(event,_elements,chart)=>this.handlePointClick(event,chart),plugins:{...this.needsAnnotations&&this.annotationPlugin?{annotation:{annotations:this.annotationOptions(theme.tick)}}:{},legend:{display:!1,position:this.legendPositionForConfig(),labels:{color:theme.legend,...this.formatter||this.valueFormatter?{generateLabels:chart=>this.legendLabels(chart)}:{}}},tooltip:{enabled:!this.withoutTooltip,backgroundColor:theme.tooltipBg,titleColor:theme.tooltipText,bodyColor:theme.tooltipText,...wantsTooltipLabelCallback||this.tooltipTitleFormatter||this.tooltipFooterFormatter?{callbacks:{...wantsTooltipLabelCallback?{label:context=>this.tooltipLabel(context,tooltipIndexAxis==="y")}:{},...this.tooltipTitleFormatter?{title:items=>this.tooltipGroupText(items,tooltipIndexAxis==="y",this.tooltipTitleFormatter)}:{},...this.tooltipFooterFormatter?{footer:items=>this.tooltipGroupText(items,tooltipIndexAxis==="y",this.tooltipFooterFormatter)}:{}}}:{},filter:item=>{const effective=this.effectiveData(),datasetIndex=this.callbackDatasetIndex(item,effective);if(datasetIndex===void 0)return!1;const sourceDatasetIndex=this.visualDatasetSourceIndexes?.[datasetIndex]??datasetIndex;return chartDatasetBoolean(effective.datasets[sourceDatasetIndex],"noTooltip")!==!0}},zoom:this.zoomable&&this.zoomFeatureState!=="unavailable"?{pan:{enabled:!1},zoom:{wheel:{enabled:!0},drag:{enabled:!0},pinch:{enabled:!0},mode:"x",onZoomComplete:()=>{this.suppressZoomComplete||(this.zoomed=!0,this.emit("lr-zoom",{zoomed:!0}))}},limits:{x:{min:"original",max:"original"}}}:void 0,datalabels:this.datalabelsOptions(theme,effectiveType)},onResize:chart=>this.updateChartArea(chart),scales:this.buildScales(effectiveType,theme,chartStyle)}},effectiveConfig=this.effectiveConfig();if(!effectiveConfig)return generated;const merged=deepMerge(generated,effectiveConfig);tooltipIndexAxis=merged.options.indexAxis==="y"?"y":"x";const requiredPlugins=[...this.plugins,...this.needsDataLabels&&this.dataLabelsPlugin?[this.dataLabelsPlugin]:[]],mergedPluginAdmission=admitChartArray(merged.plugins),mergedPlugins=projectChartPlugins(merged.plugins,mergedPluginAdmission);return mergedPluginAdmission||requiredPlugins.length?merged.plugins=[...mergedPlugins,...requiredPlugins.filter(plugin=>!mergedPlugins.includes(plugin))]:merged.plugins!==void 0&&(merged.plugins=[]),merged}scaleExtremeSlices(config){if(this.scaledSliceDatasets.clear(),!(config.type!=="pie"&&config.type!=="doughnut"||this.hasExplicitConfigData()))for(const[index,dataset]of config.data.datasets.entries()){const source=this.datasetValues(dataset),maximum=source.reduce((largest,value)=>{const number=chartDatumNumericValue(value);return number===void 0?largest:Math.max(largest,Math.abs(number))},0);maximum<=Number.MAX_SAFE_INTEGER||(dataset.data=source.map(value=>{const number=chartDatumNumericValue(value);return number===void 0?value:number/maximum}),this.scaledSliceDatasets.add(index))}}draw(){if(!this.chartJsModule||!this.canvasEl)return;this.canvasTokens.beginThemeDraw();const config=this.buildConfig();this.scaleExtremeSlices(config);const effectiveType=config.type,nextPlugins=projectChartPlugins(config.plugins),samePlugins=nextPlugins.length===this.builtPlugins.length&&nextPlugins.every((plugin,index)=>plugin===this.builtPlugins[index]);if(this.chart&&this.builtType===effectiveType&&samePlugins){const zoomedBounds=this.zoomed?this.chart.getZoomedScaleBounds?.():void 0;this.chart.data=config.data,this.chart.options=config.options??{},this.applyDatasetVisibility(),this.chart.update("none"),this.restoreZoomedBounds(this.chart,zoomedBounds),this.applyDatumVisibility()&&this.chart.update("none"),this.updateChartArea(this.chart),this.chartSync.update(this.syncGroup,typeof this.syncGroup=="string"&&this.syncGroup.trim()!==""&&this.syncCompatible()),this.canvasTokens.rememberTheme();return}this.discardChart(!0),this.chart=new this.chartJsModule.Chart(this.canvasEl,{...config,plugins:[...nextPlugins,this.chartAreaPlugin]}),this.builtType=effectiveType,this.builtPlugins=[...nextPlugins];const datasetsControlled=this.canonicalHiddenDatasets()!==void 0;datasetsControlled&&this.applyDatasetVisibility(),(this.applyDatumVisibility()||datasetsControlled)&&this.chart.update("none"),this.updateChartArea(this.chart),this.chartSync.update(this.syncGroup,typeof this.syncGroup=="string"&&this.syncGroup.trim()!==""&&this.syncCompatible()),this.canvasTokens.rememberTheme()}drawIfVisible(){!this.isConnected||!this.visible||this.draw()}restoreZoomedBounds(chart,bounds){if(!(!bounds||typeof chart.zoomScale!="function"))for(const[id,range]of Object.entries(bounds))range&&Number.isFinite(range.min)&&Number.isFinite(range.max)&&chart.zoomScale(id,{min:range.min,max:range.max},"none")}discardChart(announceZoomReset){this.chartSync.disconnect(),this.chart?.destroy(),this.chart=void 0,this.resolvedChartArea=void 0,this.zoomed&&(this.zoomed=!1,announceZoomReset&&this.emit("lr-zoom",{zoomed:!1}))}renderChart(){this.drawIfVisible()}resetZoom(){this.suppressZoomComplete=!0;try{this.chart?.resetZoom?.()}finally{this.suppressZoomComplete=!1}this.zoomed=!1,this.emit("lr-zoom",{zoomed:!1})}refreshTheme(){this.canvasTokens.clear(),this.drawIfVisible(),this.showsLegend&&this.requestUpdate()}summarizeSeries(dataset){let count=0,first=0,last=0,min=0,minIndex=0,max=0,maxIndex=0;for(const[index,datum]of this.datasetValues(dataset).entries()){const value=chartDatumNumericValue(datum);value!==void 0&&(count===0&&(first=value,min=value,minIndex=index,max=value,maxIndex=index),last=value,value<min&&(min=value,minIndex=index),value>max&&(max=value,maxIndex=index),count++)}return count?{count,first,last,min,minIndex,max,maxIndex}:void 0}formatSummaryValue(value){return formatChartValue(value,this.effectiveLocale)}formatTableValue(value,metadata={}){return this.formatter?.({value,surface:"table",...metadata})??this.valueFormatter?.(value,"table")??this.formatSummaryValue(value)}formatExportValue(value,metadata={}){return this.formatter?.({value,surface:"export",...metadata})??this.valueFormatter?.(value,"table")}formatSpokenValue(value,metadata={}){return this.formatter?.({value,surface:"spoken",...metadata})??this.valueFormatter?.(value,"table")??this.formatSummaryValue(value)}tableStackAxes(){const type=this.effectiveType();if(!this.stackTotals||type!=="bar"&&type!=="line")return[];const present=new Set;for(const dataset of this.effectiveData().datasets){const axis=chartDatasetAxis(dataset);this.axisStacked(axis)&&present.add(axis)}return["y","y2"].filter(axis=>present.has(axis))}tableStackTotalLabel(axis,axisCount){if(axisCount===1)return this.localize("chartTotal");const axisLabel=axis==="y2"?this.y2Label||this.localize("chartSecondaryAxis"):this.yLabel||this.localize("chartPrimaryAxis");return this.localize("chartAxisTotal",void 0,{axis:axisLabel})}accessibleName(fallback){return this.getAttribute("aria-label")??this.label??fallback}chartDescription(){if(this.description)return this.description;const effective=this.effectiveData(),sample=this.dataTableSample(effective),includePointDetails=!this.hasCustomDataTable(),summaries=sample.seriesIndexes.map(index=>{const dataset=effective.datasets[index],seriesLabel=this.datasetLabel(dataset,index),values=this.summarizeSeries(dataset);if(!values)return this.localize("chartSeriesNoData",void 0,{label:seriesLabel});const trend=values.last>values.first?this.localize("chartTrendIncreasing"):values.last<values.first?this.localize("chartTrendDecreasing"):this.localize("chartTrendFlat"),rawValues=this.datasetValues(dataset),datumLabelAt=rowIndex=>{const datum=rawValues[rowIndex];return normalizedChartPoint(datum)?.label??(labelText(effective.labels[rowIndex])||void 0)},summary=this.localize("chartSummary",void 0,{label:seriesLabel,count:this.formatSummaryValue(values.count),min:this.formatSpokenValue(values.min,{datasetIndex:index,index:values.minIndex,label:datumLabelAt(values.minIndex),seriesLabel,statistic:"min"}),max:this.formatSpokenValue(values.max,{datasetIndex:index,index:values.maxIndex,label:datumLabelAt(values.maxIndex),seriesLabel,statistic:"max"}),trend}),pointDetails=includePointDetails?sample.rowIndexes.flatMap(rowIndex=>{const point=rawValues[rowIndex];return normalizedChartPoint(point)?[this.datumDisplayValue(point,{surface:"spoken",datasetIndex:index,index:rowIndex,label:datumLabelAt(rowIndex),seriesLabel})]:[]}):[];return pointDetails.length?[summary,...pointDetails].join(this.localize("chartSummarySeparator")):summary}),base=summaries.length?this.localize("chartSummaryWithData",void 0,{type:this.localizedChartType(),summaries:summaries.join(this.localize("chartSummarySeparator"))}):this.localize("chartSummaryEmpty",void 0,{type:this.localizedChartType()}),annotationLabels=this.normalizedAnnotations().map(entry=>entry.label?.trim()).filter(label=>!!label);return annotationLabels.length?[base,...annotationLabels].join(this.localize("chartSummarySeparator")):base}dataTableSample(effective=this.effectiveData()){if(this.dataTableSampleMemo?.effective===effective)return this.dataTableSampleMemo.value;let rowCount=effective.labels.length;for(const dataset of effective.datasets)rowCount=Math.max(rowCount,this.datasetValues(dataset).length);const indexes=sampleChartTableIndexes(rowCount,effective.datasets.length),value={rowCount,seriesCount:effective.datasets.length,...indexes};return this.dataTableSampleMemo={effective,value},value}generatedDataIsSampled(){const sample=this.dataTableSample();return sample.rowCount===0||sample.seriesCount===0?!1:sample.rowIndexes.length<sample.rowCount||sample.seriesIndexes.length<sample.seriesCount}dataTruncationMessage(){return this.generatedDataIsSampled()?this.hasCustomDataTable()?this.localize("chartPlotSampled"):this.localize("chartDataSampled"):""}renderDataTable(){const effective=this.effectiveData(),direction=this.effectiveDirection==="rtl"?"rtl":"ltr",sample=this.dataTableSample(effective),valuesBySeries=new Map(sample.seriesIndexes.map(index=>[index,this.datasetValues(effective.datasets[index])])),stackAxes=this.tableStackAxes(),stackTotals=new Map(stackAxes.map(axis=>[axis,this.computeStackTotals(axis)])),stackValueAxes=new Map(stackAxes.map(axis=>[axis,this.datasetValueAxis(effective.datasets.find(dataset=>chartDatasetAxis(dataset)===axis))]));return html`
|
|
6
|
+
`);return{color:theme.tick,align:stackTotalsActive?"end":"center",anchor:stackTotalsActive?"end":"center",display:context=>{const indexes=this.callbackIndexes(context,effective);if(!indexes)return!1;const{datasetIndex,index}=indexes,dataset=datasets[sourceDatasetIndex(datasetIndex)],axis=chartDatasetAxis(dataset),stack=chartDatasetStack(dataset);return stackTotalsPossible&&this.axisStacked(axis)?topDatasetIndexByGroup.get(axis)?.get(stack)!==datasetIndex?this.dataLabels:totalsFor(axis,stack)[sourceRowIndex(index)]==null?this.dataLabels:!0:this.dataLabels},formatter:(value,context)=>{const indexes=this.callbackIndexes(context,effective);if(!indexes)return"";const{datasetIndex,index}=indexes,dataset=datasets[sourceDatasetIndex(datasetIndex)],axis=chartDatasetAxis(dataset),stack=chartDatasetStack(dataset),metadata=this.datumFormatterMetadata(datasetIndex,index,effective);if(stackTotalsPossible&&this.axisStacked(axis)&&topDatasetIndexByGroup.get(axis)?.get(stack)===datasetIndex){const total=totalsFor(axis,stack)[sourceRowIndex(index)];if(total!=null)return isolate(this.formatDataLabel(total,this.stackTotalMetadata(metadata)))}const numeric=chartDatumNumericValue(this.scaledSliceDatasets.has(datasetIndex)?this.datasetValues(dataset)[sourceRowIndex(index)]:value);return numeric===void 0?"":isolate(this.formatDataLabel(numeric,metadata))}}}formatDataLabel(value,metadata={}){if(this.formatter||this.valueFormatter){const formatted=this.formatter?.({value,surface:"visual",...metadata})??this.valueFormatter?.(value,"tooltip");if(formatted!=null)return String(formatted)}return formatChartValue(value,this.effectiveLocale)}computeStackTotals(axisId="y",stackGroup=void 0){const effective=this.effectiveData(),members=effective.datasets.filter(dataset=>chartDatasetAxis(dataset)===axisId&&chartDatasetStack(dataset)===stackGroup),categoryCount=members.reduce((max,dataset)=>Math.max(max,this.datasetValues(dataset).length),effective.labels.length),totals=[];for(let i=0;i<categoryCount;i++){let sum=0,any=!1;for(const dataset of members){const value=this.datasetValues(dataset)[i],numeric=chartDatumNumericValue(value);numeric!==void 0&&(sum=finiteAdd(sum,numeric),any=!0)}totals.push(any?sum:null)}return totals}seriesPalette(){return this.canvasTokens.palette()}tickLabelIsolation(direction){return{afterTickToLabelConversion:scale=>isolateScaleTickLabels(scale,direction)}}tickOptions(theme,kind="value",axis="y"){return{color:theme.tick,font:{size:theme.tickFontSize},...(this.formatter||this.valueFormatter)&&kind==="value"?{callback:value=>this.formatValue(value,"tick",{axis})}:{}}}effectiveIndexAxis(){return this.indexAxis==="y"?"y":"x"}valueScaleType(){return this.scaleType==="logarithmic"?"logarithmic":"linear"}valueBeginAtZero(){return this.valueScaleType()==="logarithmic"?void 0:!this.withoutZeroBaseline}scaleBounds(){const min=this.min!==null&&Number.isFinite(this.min)?finiteNumber(this.min,0):void 0,max=this.max!==null&&Number.isFinite(this.max)?finiteNumber(this.max,0):void 0;return{...min!==void 0?{min}:{},...max!==void 0?{max}:{}}}gridAxisVisible(axis){const grid=normalizeChartGrid(this.grid);return grid==="both"||grid===axis}axisVisible(axis){const axes=normalizeChartGrid(this.axes);return!this.compactPlot&&(axes==="both"||axes===axis)}axisStacked(axisId){return axisId==="y2"?this.stackedAxes?.y2??this.stacked:this.stackedAxes?.y??this.stacked}buildScales(effectiveType,theme,chartStyle){if(effectiveType==="pie"||effectiveType==="doughnut")return{};const direction=this.effectiveDirection==="rtl"?"rtl":"ltr";if(effectiveType==="radar"||effectiveType==="polarArea"){const explicitPointLabelFontSize=this.explicitTickFontSize();return{r:{...this.tickLabelIsolation(direction),beginAtZero:!this.withoutZeroBaseline,...this.scaleBounds(),ticks:{...this.tickOptions(theme,"value","r"),showLabelBackdrop:!1,z:1},grid:{color:theme.grid,display:this.gridAxisVisible("y"),lineWidth:chartStyle.gridBorderWidth},border:{width:chartStyle.gridBorderWidth},angleLines:{color:theme.grid,display:this.gridAxisVisible("x"),lineWidth:chartStyle.gridBorderWidth},pointLabels:{color:theme.tick,callback:label=>isolateCanvasLabel(label,direction),...explicitPointLabelFontSize!==void 0?{font:{size:explicitPointLabelFontSize}}:{}}}}}const hasY2=this.effectiveData().datasets.some(dataset=>chartDatasetAxis(dataset)==="y2"),rtl=this.effectiveDirection==="rtl",stackableType=effectiveType==="bar"||effectiveType==="line",stackedX=stackableType&&this.axisStacked("x"),stackedY=stackableType&&this.axisStacked("y"),stackedY2=stackableType&&this.axisStacked("y2"),horizontalCategorical=(effectiveType==="bar"||effectiveType==="line")&&this.effectiveIndexAxis()==="y",xKind=effectiveType==="scatter"||effectiveType==="bubble"||horizontalCategorical?"value":"category",yKind=horizontalCategorical?"category":"value",valueAxis=horizontalCategorical?"x":"y",bounds=this.scaleBounds();return{x:{...this.tickLabelIsolation(direction),display:this.axisVisible("x"),type:xKind==="value"?this.valueScaleType():"category",beginAtZero:xKind==="value"?this.valueBeginAtZero():void 0,...valueAxis==="x"?bounds:{},title:{display:!!this.xLabel,text:isolateCanvasLabel(this.xLabel,direction),color:theme.tick},ticks:this.tickOptions(theme,xKind,"x"),grid:{color:theme.grid,display:this.gridAxisVisible("x"),lineWidth:chartStyle.gridBorderWidth},border:{width:chartStyle.gridBorderWidth},stacked:stackedX},y:{...this.tickLabelIsolation(direction),display:this.axisVisible("y"),type:yKind==="value"?this.valueScaleType():"category",position:rtl?"right":"left",beginAtZero:yKind==="value"?this.valueBeginAtZero():void 0,...valueAxis==="y"?bounds:{},title:{display:!!this.yLabel,text:isolateCanvasLabel(this.yLabel,direction),color:theme.tick},ticks:this.tickOptions(theme,yKind,"y"),grid:{color:theme.grid,display:this.gridAxisVisible("y"),lineWidth:chartStyle.gridBorderWidth},border:{width:chartStyle.gridBorderWidth},stacked:stackedY},...hasY2?{y2:{...this.tickLabelIsolation(direction),display:this.axisVisible("y"),type:this.valueScaleType(),position:rtl?"left":"right",...valueAxis==="y"?bounds:{},grid:{drawOnChartArea:!1,color:theme.grid,display:this.gridAxisVisible("y"),lineWidth:chartStyle.gridBorderWidth},border:{width:chartStyle.gridBorderWidth},title:{display:!!this.y2Label,text:isolateCanvasLabel(this.y2Label,direction),color:theme.tick},ticks:this.tickOptions(theme,"value","y2"),stacked:stackedY2}}:{}}}handlePointClick(event,chart){let elements;try{elements=chart.getElementsAtEventForMode(event,"nearest",{intersect:!0},!0)}catch{return}const admission=admitChartArray(elements);if(!admission||!chartArrayIsStillAdmitted(admission))return;const first=chartRecordValue(admission.source,"0");if(first===MISSING_OWN_DATA_DESCRIPTOR||first===UNSAFE_OWN_DATA_DESCRIPTOR)return;const effective=this.effectiveData(),hit=this.callbackIndexes(first.value,effective);if(!hit)return;const datasetIndex=this.visualDatasetSourceIndexes?.[hit.datasetIndex]??hit.datasetIndex,index=this.visualRowSourceIndexes?.[hit.index]??hit.index,value=this.datasetValues(effective.datasets[datasetIndex])[index]??null,label=normalizedChartPoint(value)?.label??(labelText(effective.labels[index])||void 0);this.activateDatum({datasetIndex,index,label,value})}chartDatums(){const effective=this.effectiveData(),memo=this.chartDatumsMemo;if(memo?.effective===effective&&memo.datasets===this.visualDatasetSourceIndexes&&memo.rows===this.visualRowSourceIndexes)return memo.value;const datasets=(this.visualDatasetSourceIndexes??effective.datasets.map((_dataset,index)=>index)).map(index=>effective.datasets[index]);let rowIndexes=this.visualRowSourceIndexes;if(!rowIndexes){let sourceRowCount=effective.labels.length;for(const dataset of datasets)sourceRowCount=Math.max(sourceRowCount,chartDatasetValues(dataset).length);rowIndexes=Array.from({length:sourceRowCount},(_value,index)=>index)}const labels=rowIndexes.map(index=>effective.labels[index]),rowCount=rowIndexes.length,sample=sampleChartTableIndexes(rowCount,datasets.length),datums=[];return sample.seriesIndexes.forEach(datasetIndex=>{const dataset=datasets[datasetIndex];if(!dataset)return;const values=chartDatasetValues(dataset);sample.rowIndexes.forEach(localIndex=>{const sourceIndex=rowIndexes[localIndex]??localIndex,value=values[sourceIndex];value!=null&&(typeof value=="number"&&!Number.isFinite(value)||datums.push({datasetIndex:this.visualDatasetSourceIndexes?.[datasetIndex]??datasetIndex,index:sourceIndex,label:normalizedChartPoint(value)?.label??(labelText(labels[localIndex])||void 0),value}))})}),this.chartDatumsMemo={effective,datasets:this.visualDatasetSourceIndexes,rows:this.visualRowSourceIndexes,value:datums},datums}datumDisplayValue(value,context={surface:"spoken"}){const{surface,...metadata}=context,format=(numeric2,statistic)=>surface==="table"?this.formatTableValue(numeric2,{...metadata,statistic}):this.formatSpokenValue(numeric2,{...metadata,statistic}),point=normalizedChartPoint(value);if(point){const x=format(point.x,"x"),y=format(point.y,"y"),coordinates=point.r==null?this.localize("chartPointCoordinates",void 0,{x,y}):this.localize("chartBubblePointCoordinates",void 0,{x,y,radius:format(point.r,"r")});return point.label!==void 0?this.localize("chartLabeledPoint",void 0,{label:point.label,coordinates}):coordinates}const numeric=chartDatumNumericValue(value);return numeric===void 0?labelText(value):format(numeric)}datumAnnouncement(datum,position,total){const dataset=this.effectiveData().datasets[datum.datasetIndex],series=chartDatasetLabel(dataset)||this.localize("chartSeriesLabel");return this.localize("liteChartMarkSummary",void 0,{series,label:datum.label??this.localize("chartPointLabel",void 0,{n:getNumberFormat(this.effectiveLocale).format(datum.index+1)}),value:this.datumDisplayValue(datum.value,{surface:"spoken",datasetIndex:datum.datasetIndex,index:datum.index,label:datum.label,seriesLabel:series,...this.datasetValueAxis(dataset)===void 0?{}:{axis:this.datasetValueAxis(dataset)}}),index:getNumberFormat(this.effectiveLocale).format(position+1),total:getNumberFormat(this.effectiveLocale).format(total)})}activateDatum(datum){const datums=this.chartDatums(),position=datums.findIndex(candidate=>candidate.datasetIndex===datum.datasetIndex&&candidate.index===datum.index);position>=0&&(this.keyboardDatumIndex=position,this.keyboardDatumAnnouncement=this.datumAnnouncement(datum,position,datums.length));const type=this.effectiveType(),kind=type==="bar"?"bar":type==="pie"||type==="doughnut"||type==="polarArea"?"slice":type==="line"?"segment":"point";this.emit("lr-datum-activate",{...datum,kind}),this.emit("lr-point-activate",{...datum})}resetSyncTooltip(){const chart=this.chart;chart?.tooltip?.setActiveElements([],{x:0,y:0}),chart?.render?.()}syncCompatible(){const chart=this.chart;if(!chart)return!1;const type=this.effectiveType();return type!=="bar"&&type!=="line"||chart.options.indexAxis==="y"?!1:chart.scales?.x?.type==="category"&&Array.isArray(chart.data?.datasets)&&chart.data.datasets.every(dataset=>dataset.type===void 0||dataset.type==="bar"||dataset.type==="line")}visualPosition(sources,source){if(!sources)return source;let positions=this.visualPositions.get(sources);return positions||(positions=new Map(sources.map((value,index)=>[value,index])),this.visualPositions.set(sources,positions)),positions.get(source)??-1}indexedSyncDatums(){const datums=this.chartDatums();if(this.syncDatumIndex?.datums===datums)return this.syncDatumIndex;const byAddress=new Map,byCategory=new Map;for(const datum of datums){byAddress.set(`${datum.datasetIndex}:${datum.index}`,datum);let category=byCategory.get(datum.index);category||(category=[],byCategory.set(datum.index,category)),category.push(datum)}const labels=this.effectiveData().labels,labelCategories=new Map;for(const index of[...byCategory.keys()].sort((a,b)=>a-b)){const label=labels[index];if(typeof label!="string")continue;let categories=labelCategories.get(label);categories||(categories=[],labelCategories.set(label,categories)),categories.push(index)}return this.syncDatumIndex={datums,byAddress,byCategory,labelCategories}}syncDatumIsEligible(datum){const chart=this.chart;if(!chart)return!1;const visualDataset=this.visualPosition(this.visualDatasetSourceIndexes,datum.datasetIndex),visualIndex=this.visualPosition(this.visualRowSourceIndexes,datum.index),element=chart.getDatasetMeta?.(visualDataset)?.data?.[visualIndex];return chart.isDatasetVisible(visualDataset)&&!!element&&!element.skip&&Number.isFinite(element.x)&&Number.isFinite(element.y)&&chartDatumNumericValue(datum.value)!==void 0}publishSyncDatum(datum){const label=this.effectiveData().labels[datum.index];typeof label=="string"?this.chartSync.publish(label,datum.index):this.chartSync.clear()}onSyncPointerMove(event){if(!this.chartSync.enabled||!this.chart)return;const hit=this.chart.getElementsAtEventForMode(event,"nearest",{intersect:!0},!0)[0];if(!hit){this.chartSync.clear();return}const datasetIndex=this.visualDatasetSourceIndexes?.[hit.datasetIndex]??hit.datasetIndex,index=this.visualRowSourceIndexes?.[hit.index]??hit.index,datum=this.indexedSyncDatums().byAddress.get(`${datasetIndex}:${index}`);datum&&this.syncDatumIsEligible(datum)&&this.publishSyncDatum(datum)}syncPresentation(label,sourceIndex){if(!this.syncCompatible()||!this.canvasEl||!this.chart)return;const effective=this.effectiveData();if(sourceIndex!==void 0&&effective.labels[sourceIndex]!==label)return;const indexed=this.indexedSyncDatums(),categories=sourceIndex===void 0?indexed.labelCategories.get(label)??[]:[sourceIndex];let matches=[];for(const index of categories)if(matches=(indexed.byCategory.get(index)??[]).filter(datum=>this.syncDatumIsEligible(datum)),matches.length)break;if(!matches.length)return;const hits=matches.map(datum=>({datasetIndex:this.visualPosition(this.visualDatasetSourceIndexes,datum.datasetIndex),index:this.visualPosition(this.visualRowSourceIndexes,datum.index)})),runtime=this.chart,point=this.chart.getDatasetMeta?.(hits[0].datasetIndex)?.data?.[hits[0].index],area=this.chart.chartArea,container=this.renderRoot.querySelector('[part="plot"]');if(!point||!area||!container)return;const plugins=this.chart.options.plugins,suppressed=this.withoutTooltip||plugins?.tooltip===!1||plugins?.tooltip?.enabled===!1;runtime.tooltip?.setActiveElements(suppressed?[]:hits,{x:point.x,y:point.y}),runtime.render?.();const bounds=container.getBoundingClientRect(),canvasBounds=this.canvasEl.getBoundingClientRect(),categoryX=runtime.scales?.x?.getPixelForValue?.(hits[0].index);return{container,x:canvasBounds.left-bounds.left+(typeof categoryX=="number"&&Number.isFinite(categoryX)?categoryX:point.x),top:canvasBounds.top-bounds.top+area.top,height:area.height}}showKeyboardDatum(datum){!this.chart||this.chartSync.enabled||!datum&&!this.keyboardDatumShown||(this.keyboardDatumShown=showChartActiveDatum(this.chart,datum&&{datasetIndex:this.visualPosition(this.visualDatasetSourceIndexes,datum.datasetIndex),index:this.visualPosition(this.visualRowSourceIndexes,datum.index)}))}onCanvasFocus(event){const datums=this.chartDatums();datums.length&&(this.keyboardDatumIndex=Math.min(this.keyboardDatumIndex,datums.length-1),this.publishSyncDatum(datums[this.keyboardDatumIndex]),isKeyboardFocusEvent(event)&&this.showKeyboardDatum(datums[this.keyboardDatumIndex]),this.keyboardDatumAnnouncement=this.datumAnnouncement(datums[this.keyboardDatumIndex],this.keyboardDatumIndex,datums.length))}onCanvasKeyDown(event){const datums=this.chartDatums();if(!datums.length)return;if(this.keyboardDatumIndex=Math.min(this.keyboardDatumIndex,datums.length-1),event.key==="Enter"||event.key===" "){event.preventDefault(),this.activateDatum(datums[this.keyboardDatumIndex]);return}const rtl=this.effectiveDirection==="rtl",forward=rtl?"ArrowLeft":"ArrowRight",backward=rtl?"ArrowRight":"ArrowLeft";let next=this.keyboardDatumIndex;if(event.key===forward||event.key==="ArrowDown")next=Math.min(datums.length-1,next+1);else if(event.key===backward||event.key==="ArrowUp")next=Math.max(0,next-1);else if(event.key==="Home")next=0;else if(event.key==="End")next=datums.length-1;else return;event.preventDefault(),this.keyboardDatumIndex=next,this.publishSyncDatum(datums[next]),this.showKeyboardDatum(datums[next]),this.keyboardDatumAnnouncement=this.datumAnnouncement(datums[next],next,datums.length)}effectiveType(){return this.effectiveConfig()?.type??normalizeChartType(this.type)}localizedChartType(){const type=this.effectiveType();switch(type){case"line":return this.localize("chartTypeLine");case"bar":return this.localize("chartTypeBar");case"scatter":return this.localize("chartTypeScatter");case"pie":return this.localize("chartTypePie");case"doughnut":return this.localize("chartTypeDoughnut");case"radar":return this.localize("chartTypeRadar");case"polarArea":return this.localize("chartTypePolarArea");case"bubble":return this.localize("chartTypeBubble");default:return String(type)}}formatValue(value,context,metadata={}){const numeric=chartDatumNumericValue(value);return numeric===void 0?value:this.formatter?.({value:numeric,surface:context,...metadata})??this.valueFormatter?.(numeric,context)??value}datasetValueAxis(dataset){const type=this.effectiveType();if(!(type==="pie"||type==="doughnut"))return type==="radar"||type==="polarArea"?"r":(type==="bar"||type==="line")&&this.effectiveIndexAxis()==="y"?"x":dataset===void 0?void 0:chartDatasetAxis(dataset)}datumFormatterMetadata(visualDatasetIndex,visualRowIndex,effective=this.effectiveData()){return this.sourceDatumFormatterMetadata(this.visualDatasetSourceIndexes?.[visualDatasetIndex]??visualDatasetIndex,visualRowIndex===void 0?void 0:this.visualRowSourceIndexes?.[visualRowIndex]??visualRowIndex,effective)}sourceDatumFormatterMetadata(datasetIndex,index,effective=this.effectiveData()){const dataset=effective.datasets[datasetIndex],point=index===void 0||dataset===void 0?null:normalizedChartPoint(this.datasetValues(dataset)[index]),label=index===void 0?void 0:point?.label??(labelText(effective.labels[index])||void 0),axis=this.datasetValueAxis(dataset);return{datasetIndex,...index===void 0?{}:{index},...label===void 0?{}:{label},...dataset===void 0?{}:{seriesLabel:this.datasetLabel(dataset,datasetIndex)},...axis===void 0?{}:{axis}}}stackTotalMetadata(metadata){return{...metadata.index===void 0?{}:{index:metadata.index},...metadata.label===void 0?{}:{label:metadata.label},...metadata.axis===void 0?{}:{axis:metadata.axis},statistic:"total"}}legendValue(item,_chart,effective=this.effectiveData()){const datasetIndex=this.callbackDatasetIndex(item,effective);if(datasetIndex===void 0)return;const sourceDatasetIndex=this.visualDatasetSourceIndexes?.[datasetIndex]??datasetIndex,data=this.datasetValues(effective.datasets[sourceDatasetIndex]);if(!data.length)return;const visualRows=this.visualRowSourceIndexes??data.map((_value,index)=>index),indexDescriptor=chartRecordValue(item,"index");if(indexDescriptor===UNSAFE_OWN_DATA_DESCRIPTOR)return;if(indexDescriptor!==MISSING_OWN_DATA_DESCRIPTOR){const itemIndex=chartIndex(indexDescriptor.value);return itemIndex===void 0||itemIndex>=visualRows.length?void 0:chartDatumNumericValue(data[visualRows[itemIndex]]??null)}let sum=0,hasValue=!1;for(const sourceRowIndex of visualRows){const datum=data[sourceRowIndex],value=chartDatumNumericValue(datum);value!==void 0&&(sum=finiteAdd(sum,value),hasValue=!0)}return hasValue?sum:void 0}legendLabels(chart){const generateLabels=this.chartJsModule?.defaults?.plugins?.legend?.labels?.generateLabels;let generated;if(generateLabels)try{generated=projectChartLegendItems(generateLabels(chart))}catch{generated=void 0}const effective=this.effectiveData(),direction=canvasTextDirection(chart.legend,this.effectiveDirection),fallbackDatasets=(this.visualDatasetSourceIndexes??effective.datasets.map((_dataset,index)=>index)).map(sourceIndex=>effective.datasets[sourceIndex]);return(generated??fallbackDatasets.map((dataset,index)=>({text:chartDatasetLabel(dataset)||String(index+1),datasetIndex:index}))).map(item=>{const value=this.legendValue(item,chart,effective),visualDatasetIndex=this.callbackDatasetIndex(item,effective),visualRowIndex=chartIndex(chartDatasetValue(item,"index")),formatted=this.formatValue(value,"legend",visualDatasetIndex===void 0?{}:this.datumFormatterMetadata(visualDatasetIndex,visualRowIndex,effective));return formatted===value||formatted===void 0?item:{...item,text:this.localize("chartValueLabel",void 0,{label:labelText(chartDatasetValue(item,"text")),value:isolateCanvasText(String(formatted),direction)})}})}tooltipLabel(context,horizontal=!1){const parsed=projectChartDatum(chartDatasetValue(context,"parsed")),raw=projectChartDatum(chartDatasetValue(context,"raw")),parsedPoint=normalizedChartPoint(parsed);let rawValue=(horizontal&&!normalizedChartPoint(raw)?parsedPoint?.x:parsedPoint?.y)??parsed??raw;const scaledSlices=this.scaledSliceDatasets.size>0,effective=scaledSlices||this.formatter!==void 0?this.effectiveData():void 0,hit=effective===void 0?void 0:this.callbackIndexes(context,effective),indexes=scaledSlices?hit:void 0,scaled=indexes!==void 0&&effective!==void 0&&this.scaledSliceDatasets.has(indexes.datasetIndex);if(scaled){const dataset=effective.datasets[this.visualDatasetSourceIndexes?.[indexes.datasetIndex]??indexes.datasetIndex];rawValue=this.datasetValues(dataset)[this.visualRowSourceIndexes?.[indexes.index]??indexes.index]}let formatted=this.formatValue(rawValue,"tooltip",hit===void 0||effective===void 0?{}:this.datumFormatterMetadata(hit.datasetIndex,hit.index,effective));if(!scaled&&formatted===rawValue||formatted===void 0)return;scaled&&typeof formatted=="number"&&(formatted=this.formatSummaryValue(formatted));const label=chartDatasetLabel(chartDatasetValue(context,"dataset"));return label?canvasSentence(value=>this.localize("chartValueLabel",void 0,{label,value}),String(formatted)):String(formatted)}tooltipItemContext(context,horizontal,effective){const parsed=projectChartDatum(chartDatasetValue(context,"parsed")),raw=projectChartDatum(chartDatasetValue(context,"raw")),parsedPoint=normalizedChartPoint(parsed);let rawValue=(horizontal&&!normalizedChartPoint(raw)?parsedPoint?.x:parsedPoint?.y)??parsed??raw;const hit=this.callbackIndexes(context,effective);if(hit!==void 0&&this.scaledSliceDatasets.has(hit.datasetIndex)){const dataset=effective.datasets[this.visualDatasetSourceIndexes?.[hit.datasetIndex]??hit.datasetIndex];rawValue=this.datasetValues(dataset)[this.visualRowSourceIndexes?.[hit.index]??hit.index]}const numeric=chartDatumNumericValue(rawValue);if(numeric===void 0)return;const metadata=hit===void 0?{}:this.datumFormatterMetadata(hit.datasetIndex,hit.index,effective);return{value:numeric,surface:"tooltip",...metadata}}tooltipGroupText(items,horizontal,formatter){if(!formatter)return;const effective=this.effectiveData(),contexts=items.map(item=>this.tooltipItemContext(item,horizontal,effective)).filter(context=>context!==void 0);if(contexts.length)return formatter(contexts)}updateAutoLegendPosition(){const width=this.getBoundingClientRect().width||this.clientWidth,next=width>0&&width<480?"bottom":"right";return next===this.autoLegendPosition?!1:(this.autoLegendPosition=next,!0)}legendPositionForConfig(){const position=normalizeLegendPosition(this.legendPosition);return position==="auto"?this.autoLegendPosition:position==="start"?this.effectiveDirection==="rtl"?"right":"left":position==="end"?this.effectiveDirection==="rtl"?"left":"right":position}legendPositionForLayout(){const position=this.legendPositionForConfig();return position==="top"||position==="right"||position==="left"?position:"bottom"}legendGridPlacement(){const position=normalizeLegendPosition(this.legendPosition);if(position==="auto")return this.autoLegendPosition==="right"?"inline-end":"bottom";if(position==="start")return"inline-start";if(position==="end")return"inline-end";if(position==="top")return"top";const rtl=this.effectiveDirection==="rtl";return position==="left"?rtl?"inline-end":"inline-start":position==="right"?rtl?"inline-start":"inline-end":"bottom"}updateChartArea(chart=this.chart){const area=chart?.chartArea;if(!area)return;const next={top:Number(area.top),left:Number(area.left),right:Number(area.right),bottom:Number(area.bottom),width:Number(area.width),height:Number(area.height)};if(![next.top,next.left,next.right,next.bottom,next.width,next.height].every(Number.isFinite))return;const previous=this.resolvedChartArea;previous&&previous.top===next.top&&previous.left===next.left&&previous.right===next.right&&previous.bottom===next.bottom&&previous.width===next.width&&previous.height===next.height||(this.resolvedChartArea=next,this.chartAreaUpdateQueued||(this.chartAreaUpdateQueued=!0,queueMicrotask(()=>{this.chartAreaUpdateQueued=!1,this.isConnected&&this.requestUpdate()})))}get chartArea(){return this.resolvedChartArea}set chartArea(_value){}buildConfig(){this.forcedColorPatterns=new Map;const theme=this.themeColors(),effectiveType=this.effectiveType();let tooltipIndexAxis=this.effectiveIndexAxis();const palette=this.seriesPalette(),chartStyle=this.chartStyleOptions(palette),rawDataEscapeHatch=this.hasExplicitConfigData(),wantsTooltipLabelCallback=!!(this.formatter||this.valueFormatter)||(effectiveType==="pie"||effectiveType==="doughnut")&&!rawDataEscapeHatch,labels=this.canonicalLabels();let visualRows,visualSeries;if(rawDataEscapeHatch)this.visualRowSourceIndexes=void 0,this.visualDatasetSourceIndexes=void 0;else{let rowCount=labels.length;for(const series of this.datasets)rowCount=Math.max(rowCount,(canonicalSeriesPoints(series)??canonicalSeriesData(series)).length);const sample=sampleChartTableIndexes(rowCount,this.datasets.length);visualRows=sample.rowIndexes.length<rowCount?sample.rowIndexes:void 0,visualSeries=sample.seriesIndexes.length<this.datasets.length?sample.seriesIndexes:void 0,this.visualRowSourceIndexes=visualRows,this.visualDatasetSourceIndexes=visualSeries}const generated={type:effectiveType,data:{labels:visualRows?visualRows.map(index=>labels[index]??""):[...labels],datasets:visualSeries?visualSeries.map(sourceIndex=>this.seriesToDataset(this.datasets[sourceIndex],sourceIndex,palette,effectiveType,chartStyle,visualRows)):this.datasets.map((s,i)=>this.seriesToDataset(s,i,palette,effectiveType,chartStyle,visualRows))},...this.plugins.length||this.needsDataLabels&&this.dataLabelsPlugin?{plugins:[...this.plugins,...this.needsDataLabels&&this.dataLabelsPlugin?[this.dataLabelsPlugin]:[]]}:{},options:{locale:this.effectiveLocale,responsive:!0,maintainAspectRatio:!1,...this.compactPlot&&!["pie","doughnut","radar","polarArea"].includes(effectiveType)?{layout:{padding:0,autoPadding:!1}}:{},indexAxis:this.effectiveIndexAxis(),animation:this.withoutAnimation||prefersReducedMotion(this)?!1:void 0,interaction:{intersect:!1,mode:effectiveType==="scatter"?"nearest":"index"},onClick:(event,_elements,chart)=>this.handlePointClick(event,chart),plugins:{...this.needsAnnotations&&this.annotationPlugin?{annotation:{annotations:this.annotationOptions(theme.tick)}}:{},legend:{display:!1,position:this.legendPositionForConfig(),labels:{color:theme.legend,...this.formatter||this.valueFormatter?{generateLabels:chart=>this.legendLabels(chart)}:{}}},tooltip:{enabled:!this.withoutTooltip,backgroundColor:theme.tooltipBg,titleColor:theme.tooltipText,bodyColor:theme.tooltipText,...wantsTooltipLabelCallback||this.tooltipTitleFormatter||this.tooltipFooterFormatter?{callbacks:{...wantsTooltipLabelCallback?{label:context=>this.tooltipLabel(context,tooltipIndexAxis==="y")}:{},...this.tooltipTitleFormatter?{title:items=>this.tooltipGroupText(items,tooltipIndexAxis==="y",this.tooltipTitleFormatter)}:{},...this.tooltipFooterFormatter?{footer:items=>this.tooltipGroupText(items,tooltipIndexAxis==="y",this.tooltipFooterFormatter)}:{}}}:{},filter:item=>{const effective=this.effectiveData(),datasetIndex=this.callbackDatasetIndex(item,effective);if(datasetIndex===void 0)return!1;const sourceDatasetIndex=this.visualDatasetSourceIndexes?.[datasetIndex]??datasetIndex;return chartDatasetBoolean(effective.datasets[sourceDatasetIndex],"noTooltip")!==!0}},zoom:this.zoomable&&this.zoomFeatureState!=="unavailable"?{pan:{enabled:!1},zoom:{wheel:{enabled:!0},drag:{enabled:!0},pinch:{enabled:!0},mode:"x",onZoomComplete:()=>{this.suppressZoomComplete||(this.zoomed=!0,this.emit("lr-zoom",{zoomed:!0}))}},limits:{x:{min:"original",max:"original"}}}:void 0,datalabels:this.datalabelsOptions(theme,effectiveType)},onResize:chart=>this.updateChartArea(chart),scales:this.buildScales(effectiveType,theme,chartStyle)}},effectiveConfig=this.effectiveConfig();if(!effectiveConfig)return generated;const merged=deepMerge(generated,effectiveConfig);tooltipIndexAxis=merged.options.indexAxis==="y"?"y":"x";const requiredPlugins=[...this.plugins,...this.needsDataLabels&&this.dataLabelsPlugin?[this.dataLabelsPlugin]:[]],mergedPluginAdmission=admitChartArray(merged.plugins),mergedPlugins=projectChartPlugins(merged.plugins,mergedPluginAdmission);return mergedPluginAdmission||requiredPlugins.length?merged.plugins=[...mergedPlugins,...requiredPlugins.filter(plugin=>!mergedPlugins.includes(plugin))]:merged.plugins!==void 0&&(merged.plugins=[]),merged}scaleExtremeSlices(config){if(this.scaledSliceDatasets.clear(),!(config.type!=="pie"&&config.type!=="doughnut"||this.hasExplicitConfigData()))for(const[index,dataset]of config.data.datasets.entries()){const source=this.datasetValues(dataset),maximum=source.reduce((largest,value)=>{const number=chartDatumNumericValue(value);return number===void 0?largest:Math.max(largest,Math.abs(number))},0);maximum<=Number.MAX_SAFE_INTEGER||(dataset.data=source.map(value=>{const number=chartDatumNumericValue(value);return number===void 0?value:number/maximum}),this.scaledSliceDatasets.add(index))}}draw(){if(!this.chartJsModule||!this.canvasEl)return;this.canvasTokens.beginThemeDraw();const config=this.buildConfig();this.scaleExtremeSlices(config);const effectiveType=config.type,nextPlugins=projectChartPlugins(config.plugins),samePlugins=nextPlugins.length===this.builtPlugins.length&&nextPlugins.every((plugin,index)=>plugin===this.builtPlugins[index]);if(this.chart&&this.builtType===effectiveType&&samePlugins){const zoomedBounds=this.zoomed?this.chart.getZoomedScaleBounds?.():void 0;this.chart.data=config.data,this.chart.options=config.options??{},this.applyDatasetVisibility(),this.chart.update("none"),this.restoreZoomedBounds(this.chart,zoomedBounds),this.applyDatumVisibility()&&this.chart.update("none"),this.updateChartArea(this.chart),this.chartSync.update(this.syncGroup,typeof this.syncGroup=="string"&&this.syncGroup.trim()!==""&&this.syncCompatible()),this.canvasTokens.rememberTheme();return}this.discardChart(!0),this.chart=new this.chartJsModule.Chart(this.canvasEl,{...config,plugins:[...nextPlugins,this.chartAreaPlugin]}),this.builtType=effectiveType,this.builtPlugins=[...nextPlugins];const datasetsControlled=this.canonicalHiddenDatasets()!==void 0;datasetsControlled&&this.applyDatasetVisibility(),(this.applyDatumVisibility()||datasetsControlled)&&this.chart.update("none"),this.updateChartArea(this.chart),this.chartSync.update(this.syncGroup,typeof this.syncGroup=="string"&&this.syncGroup.trim()!==""&&this.syncCompatible()),this.canvasTokens.rememberTheme()}drawIfVisible(){!this.isConnected||!this.visible||this.draw()}restoreZoomedBounds(chart,bounds){if(!(!bounds||typeof chart.zoomScale!="function"))for(const[id,range]of Object.entries(bounds))range&&Number.isFinite(range.min)&&Number.isFinite(range.max)&&chart.zoomScale(id,{min:range.min,max:range.max},"none")}discardChart(announceZoomReset){this.chartSync.disconnect(),this.chart?.destroy(),this.chart=void 0,this.resolvedChartArea=void 0,this.zoomed&&(this.zoomed=!1,announceZoomReset&&this.emit("lr-zoom",{zoomed:!1}))}renderChart(){this.drawIfVisible()}resetZoom(){this.suppressZoomComplete=!0;try{this.chart?.resetZoom?.()}finally{this.suppressZoomComplete=!1}this.zoomed=!1,this.emit("lr-zoom",{zoomed:!1})}refreshTheme(){this.canvasTokens.clear(),this.drawIfVisible(),this.showsLegend&&this.requestUpdate()}summarizeSeries(dataset){let count=0,first=0,last=0,min=0,minIndex=0,max=0,maxIndex=0;for(const[index,datum]of this.datasetValues(dataset).entries()){const value=chartDatumNumericValue(datum);value!==void 0&&(count===0&&(first=value,min=value,minIndex=index,max=value,maxIndex=index),last=value,value<min&&(min=value,minIndex=index),value>max&&(max=value,maxIndex=index),count++)}return count?{count,first,last,min,minIndex,max,maxIndex}:void 0}formatSummaryValue(value){return formatChartValue(value,this.effectiveLocale)}formatTableValue(value,metadata={}){return this.formatter?.({value,surface:"table",...metadata})??this.valueFormatter?.(value,"table")??this.formatSummaryValue(value)}formatExportValue(value,metadata={}){return this.formatter?.({value,surface:"export",...metadata})??this.valueFormatter?.(value,"table")}formatSpokenValue(value,metadata={}){return this.formatter?.({value,surface:"spoken",...metadata})??this.valueFormatter?.(value,"table")??this.formatSummaryValue(value)}tableStackAxes(){const type=this.effectiveType();if(!this.stackTotals||type!=="bar"&&type!=="line")return[];const present=new Set;for(const dataset of this.effectiveData().datasets){const axis=chartDatasetAxis(dataset);this.axisStacked(axis)&&present.add(axis)}return["y","y2"].filter(axis=>present.has(axis))}tableStackTotalLabel(axis,axisCount){if(axisCount===1)return this.localize("chartTotal");const axisLabel=axis==="y2"?this.y2Label||this.localize("chartSecondaryAxis"):this.yLabel||this.localize("chartPrimaryAxis");return this.localize("chartAxisTotal",void 0,{axis:axisLabel})}accessibleName(fallback){return this.getAttribute("aria-label")??this.label??fallback}chartDescription(){if(this.description)return this.description;const effective=this.effectiveData(),sample=this.dataTableSample(effective),includePointDetails=!this.hasCustomDataTable(),summaries=sample.seriesIndexes.map(index=>{const dataset=effective.datasets[index],seriesLabel=this.datasetLabel(dataset,index),values=this.summarizeSeries(dataset);if(!values)return this.localize("chartSeriesNoData",void 0,{label:seriesLabel});const trend=values.last>values.first?this.localize("chartTrendIncreasing"):values.last<values.first?this.localize("chartTrendDecreasing"):this.localize("chartTrendFlat"),rawValues=this.datasetValues(dataset),datumLabelAt=rowIndex=>{const datum=rawValues[rowIndex];return normalizedChartPoint(datum)?.label??(labelText(effective.labels[rowIndex])||void 0)},summary=this.localize("chartSummary",void 0,{label:seriesLabel,count:this.formatSummaryValue(values.count),min:this.formatSpokenValue(values.min,{datasetIndex:index,index:values.minIndex,label:datumLabelAt(values.minIndex),seriesLabel,statistic:"min"}),max:this.formatSpokenValue(values.max,{datasetIndex:index,index:values.maxIndex,label:datumLabelAt(values.maxIndex),seriesLabel,statistic:"max"}),trend}),pointDetails=includePointDetails?sample.rowIndexes.flatMap(rowIndex=>{const point=rawValues[rowIndex];return normalizedChartPoint(point)?[this.datumDisplayValue(point,{surface:"spoken",datasetIndex:index,index:rowIndex,label:datumLabelAt(rowIndex),seriesLabel})]:[]}):[];return pointDetails.length?[summary,...pointDetails].join(this.localize("chartSummarySeparator")):summary}),base=summaries.length?this.localize("chartSummaryWithData",void 0,{type:this.localizedChartType(),summaries:summaries.join(this.localize("chartSummarySeparator"))}):this.localize("chartSummaryEmpty",void 0,{type:this.localizedChartType()}),annotationLabels=this.normalizedAnnotations().map(entry=>entry.label?.trim()).filter(label=>!!label);return annotationLabels.length?[base,...annotationLabels].join(this.localize("chartSummarySeparator")):base}dataTableSample(effective=this.effectiveData()){if(this.dataTableSampleMemo?.effective===effective)return this.dataTableSampleMemo.value;let rowCount=effective.labels.length;for(const dataset of effective.datasets)rowCount=Math.max(rowCount,this.datasetValues(dataset).length);const indexes=sampleChartTableIndexes(rowCount,effective.datasets.length),value={rowCount,seriesCount:effective.datasets.length,...indexes};return this.dataTableSampleMemo={effective,value},value}generatedDataIsSampled(){const sample=this.dataTableSample();return sample.rowCount===0||sample.seriesCount===0?!1:sample.rowIndexes.length<sample.rowCount||sample.seriesIndexes.length<sample.seriesCount}dataTruncationMessage(){return this.generatedDataIsSampled()?this.hasCustomDataTable()?this.localize("chartPlotSampled"):this.localize("chartDataSampled"):""}renderDataTable(){const effective=this.effectiveData(),direction=this.effectiveDirection==="rtl"?"rtl":"ltr",sample=this.dataTableSample(effective),valuesBySeries=new Map(sample.seriesIndexes.map(index=>[index,this.datasetValues(effective.datasets[index])])),stackAxes=this.tableStackAxes(),stackTotals=new Map(stackAxes.map(axis=>[axis,this.computeStackTotals(axis)])),stackValueAxes=new Map(stackAxes.map(axis=>[axis,this.datasetValueAxis(effective.datasets.find(dataset=>chartDatasetAxis(dataset)===axis))]));return html`
|
|
7
7
|
<table class=${this.dataTableVisible?nothing:"sr-only"}>
|
|
8
8
|
<caption>${this.accessibleName(this.localize("chartData"))}</caption>
|
|
9
9
|
<thead>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{focusRing}from"../../../internal/interactive-control.styles.js";import{css}from"lit";import{
|
|
1
|
+
import{focusRing}from"../../../internal/interactive-control.styles.js";import{css}from"lit";import{chartLegendPositionStyles}from"./chart-surface.styles.js";const styles=css` [part='base'] { position: relative; inline-size: 100%; min-inline-size: 0; block-size: 100%; box-sizing: border-box; display: grid; grid-template-areas: 'plot' 'legend' 'warning' 'table-toggle' 'table'; grid-template-columns: minmax(0, 1fr); align-items: start; } .config-slot { display: none; } [part='notices'] { grid-area: warning; display: grid; gap: var(--lr-space-2xs); } [part='feature-warning'], [part='data-truncation'] { margin: 0; padding: var(--lr-space-xs); color: var(--lr-color-warning); font-size: var(--lr-font-size-sm); overflow-wrap: anywhere; } ${chartLegendPositionStyles("warning")} [part='data-table'] button { font: inherit; color: inherit; border: 0; border-radius: var(--lr-radius); background: transparent; padding: var(--lr-space-2xs); cursor: pointer; } [part='data-table'] button:hover { background: var(--lr-chart-data-table-button-hover-bg, var(--lr-color-brand-quiet)); } [part='data-table'] button:active { background: var( --lr-chart-data-table-button-active-bg, color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active)) ); } [part='data-table'] button:focus-visible { ${focusRing} } [part='center'] { position: absolute; transform: translate(-50%, -50%); pointer-events: none; text-align: center; } [part='reset-zoom-button'] { position: absolute; inset-block-start: var(--lr-space-xs); inset-inline-end: var(--lr-space-xs); font: inherit; font-size: var(--lr-font-size-xs); padding: var(--lr-size-0-15rem) var(--lr-size-0-5rem); border: var(--lr-border-width-thin) solid var(--lr-color-border); border-radius: var(--lr-radius); background: var(--lr-color-surface); color: var(--lr-color-text); max-inline-size: calc(100% - var(--lr-space-xs) - var(--lr-space-xs)); white-space: normal; overflow-wrap: anywhere; cursor: pointer; } [part='reset-zoom-button']:hover { background: var(--lr-chart-reset-zoom-button-hover-bg, var(--lr-color-brand-quiet)); } [part='reset-zoom-button']:active { background: var( --lr-chart-reset-zoom-button-active-bg, color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active)) ); } [part='reset-zoom-button']:focus-visible { ${focusRing} } [part='data-table-toggle']:hover { background: var(--lr-chart-data-table-toggle-hover-bg, var(--lr-color-brand-quiet)); } [part='data-table-toggle']:active { background: var( --lr-chart-data-table-toggle-active-bg, color-mix(in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active)) ); } `;export{styles};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{property}from"lit/decorators.js";import{LyraChart}from"./chart.class.js";import{lockChartType}from"./chart-type-lock.js";import{LyraElement}from"../../../internal/lyra-element.js";import{srOnly}from"../../../internal/a11y.js";import{specialistTokens}from"../../../internal/specialist-tokens.styles.js";import{normalizeHistogramBinCount}from"./histogram-bin.js";import{styles}from"./histogram.styles.js";import{chartSurfaceStyles}from"./chart-surface.styles.js";import{binnedBuckets}from"./histogram-buckets.js";import{binnedBuckets as binnedBuckets2}from"./histogram-buckets.js";import{bidiStyles}from"./chart-bidi.js";import{
|
|
1
|
+
import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{property}from"lit/decorators.js";import{LyraChart}from"./chart.class.js";import{lockChartType}from"./chart-type-lock.js";import{LyraElement}from"../../../internal/lyra-element.js";import{srOnly}from"../../../internal/a11y.js";import{specialistTokens}from"../../../internal/specialist-host-tokens.styles.js";import{normalizeHistogramBinCount}from"./histogram-bin.js";import{styles}from"./histogram.styles.js";import{chartSurfaceStyles}from"./chart-surface.styles.js";import{binnedBuckets}from"./histogram-buckets.js";import{binnedBuckets as binnedBuckets2}from"./histogram-buckets.js";import{bidiStyles}from"./chart-bidi.js";import{LYRA_DEFAULT_histogramFrequency}from"../../../internal/default-strings/charts.generated.js";const MAX_HISTOGRAM_SAMPLES=1e4;class LyraHistogram extends LyraChart{constructor(){super(...arguments),this.type="bar",this.bins=10,this.values=[],this.seriesLabel=""}static{this.defaultStrings={...super.defaultStrings,histogramFrequency:LYRA_DEFAULT_histogramFrequency}}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["values"])}static{this.appendOrderedCollectionProperties=Object.freeze(["values"])}static{this.styles=[LyraElement.styles,specialistTokens,chartSurfaceStyles,styles,srOnly,bidiStyles]}appendSamples(values,maxSamples=0){const appended=values.filter(value=>typeof value=="number"&&Number.isFinite(value)),requested=Number.isFinite(maxSamples)?Math.max(0,Math.floor(maxSamples)):0,limit=requested>0?Math.min(requested,MAX_HISTOGRAM_SAMPLES):MAX_HISTOGRAM_SAMPLES;this.values=[...this.values,...appended].slice(-limit)}normalizeEffectiveConfig(config){if(!config)return;if(this.normalizedConfig?.source===config)return this.normalizedConfig.value;const normalized={...config};return delete normalized.type,delete normalized.data,this.normalizedConfig={source:config,value:normalized},normalized}appendData(_label,values,maxPoints=0){this.appendSamples(values,maxPoints)}chartContentChanged(changed){return super.chartContentChanged(changed)||["values","bins","seriesLabel"].some(name=>changed.has(name))}}__decorate([property({converter:{fromAttribute:value=>normalizeHistogramBinCount(value)}})],LyraHistogram.prototype,"bins",void 0),__decorate([property({attribute:!1})],LyraHistogram.prototype,"values",void 0),__decorate([property({attribute:"series-label"})],LyraHistogram.prototype,"seriesLabel",void 0);const derivedCache=new WeakMap;function derivedSeries(el,label){const buckets=binnedBuckets(el);let cached=derivedCache.get(el);return(cached?.buckets!==buckets||cached.label!==label)&&(cached={buckets,label,labels:Object.freeze(buckets.map(b=>b.label.replace(/^\u2066|\u2069$/gu,""))),datasets:Object.freeze([Object.freeze({label,data:Object.freeze(buckets.map(b=>b.count))})])},derivedCache.set(el,cached)),cached}Object.defineProperty(LyraHistogram.prototype,"labels",{configurable:!0,enumerable:!0,get(){return derivedSeries(this,this.seriesLabel||this.localize("histogramFrequency")).labels},set(_v){}}),Object.defineProperty(LyraHistogram.prototype,"datasets",{configurable:!0,enumerable:!0,get(){return derivedSeries(this,this.seriesLabel||this.localize("histogramFrequency")).datasets},set(_v){}}),lockChartType(LyraHistogram,"bar");export{LyraHistogram,binnedBuckets2 as binnedBuckets};
|
|
@@ -365,4 +365,4 @@ exportData(format:LyraLiteChartExportFormat):string;attributeChangedCallback(nam
|
|
|
365
365
|
* Duplicate labels choose the first eligible recipient category; unique labels are recommended.
|
|
366
366
|
* Peer updates are visual only and never move focus, announce, activate or select data.
|
|
367
367
|
*/
|
|
368
|
-
syncGroup:string;private readonly chartSync;connectedCallback():void;private armResizeObserver;disconnectedCallback():void;adoptedCallback():void;private readonly onForcedColorsChange;private armForcedColorsWatcher;private disarmForcedColorsWatcher;private resetResizeObserver;protected firstUpdated(changed:PropertyValues):void;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;private fitAxisTitles;private fitOneCategoryLabel;private fitCategoryLabels;private syncAxisTitleTargets;private queueAxisTitleFit;private colorFor;private get effectiveType();private forcedColors;private markPaint;private legendEncoding;private markDash;private renderForcedColorPatterns;private resolvePointText;private formatTableCell;private tableTotalAt;private recordCount;private recordSample;private recordSampleMemo?;private marksMemo?;private generatedDataIsSampled;private dataTruncationMessage;private hasCustomDataTable;private interactiveMarks;private awaitingFitMeasurement;private refreshFitMeasurementAvailability;private markIndexMap;private normalizedMarkIndex;private markSummary;private markAnnouncement;private markListItem;private onMarkFocus;private focusMark;private barValueToY;private valueFraction;private logDomainFloor;private smallestPositive?;private effectiveMinBarHeight;private roundedBarPath;private domain;private emitPoint;private emitNearestLinePoint;private publishSyncMark;private syncPresentation;private onPointKeyDown;private formatValueAxisTick;private renderGrid;private renderBars;private renderLines;render():TemplateResult;private resolvedValueAxisGutter;private widestEstimatedCategoryLabel;private visibleLabelIndexes;private fixedBarSlotWidth;private displayCategoryLabel;private renderChart;}declare global{interface HTMLElementTagNameMap{'lr-lite-chart':LyraLiteChart;}}
|
|
368
|
+
syncGroup:string;private readonly chartSync;connectedCallback():void;private armResizeObserver;disconnectedCallback():void;adoptedCallback():void;private readonly onForcedColorsChange;private armForcedColorsWatcher;private disarmForcedColorsWatcher;private resetResizeObserver;protected firstUpdated(changed:PropertyValues):void;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;private fitAxisTitles;private fitOneCategoryLabel;private fitCategoryLabels;private syncAxisTitleTargets;private queueAxisTitleFit;private colorFor;private get effectiveType();private forcedColors;private markPaint;private legendEncoding;private markDash;private renderForcedColorPatterns;private resolvePointText;private formatTableCell;private tableTotalAt;private recordCount;private recordSample;private recordSampleMemo?;private marksMemo?;private generatedDataIsSampled;private dataTruncationMessage;private hasCustomDataTable;private interactiveMarks;private awaitingFitMeasurement;private refreshFitMeasurementAvailability;private markIndexMap;private normalizedMarkIndex;private markSummary;private dataListMemo?;private dataListItems;private markAnnouncement;private markListItem;private onMarkFocus;private focusMark;private barValueToY;private valueFraction;private logDomainFloor;private smallestPositive?;private effectiveMinBarHeight;private roundedBarPath;private domain;private emitPoint;private emitNearestLinePoint;private publishSyncMark;private syncPresentation;private onPointKeyDown;private formatValueAxisTick;private renderGrid;private renderBars;private renderLines;render():TemplateResult;private resolvedValueAxisGutter;private widestEstimatedCategoryLabel;private visibleLabelIndexes;private fixedBarSlotWidth;private displayCategoryLabel;private renderChart;}declare global{interface HTMLElementTagNameMap{'lr-lite-chart':LyraLiteChart;}}
|