@k2b/ui 0.21.0 → 0.23.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/dist/browser/actions/ContextMenu.js +3 -1
- package/dist/browser/actions/ContextMenu.js.map +1 -1
- package/dist/browser/actions/FilterChip.js +3 -1
- package/dist/browser/actions/FilterChip.js.map +1 -1
- package/dist/browser/actions/SpotlightSearch.js +3 -1
- package/dist/browser/actions/SpotlightSearch.js.map +1 -1
- package/dist/browser/actions/filter-messages.js +20 -0
- package/dist/browser/actions/filter-messages.js.map +1 -0
- package/dist/browser/actions/spotlight-messages.js +16 -0
- package/dist/browser/actions/spotlight-messages.js.map +1 -0
- package/dist/browser/chat/ChatComposer.js +47 -41
- package/dist/browser/chat/ChatComposer.js.map +1 -1
- package/dist/browser/chat/ChatPrimitives.js +25 -23
- package/dist/browser/chat/ChatPrimitives.js.map +1 -1
- package/dist/browser/chat/ChatRoot.js +3 -3
- package/dist/browser/chat/ChatRoot.js.map +1 -1
- package/dist/browser/chat/ChatTimeline.js +12 -12
- package/dist/browser/chat/ChatTimeline.js.map +1 -1
- package/dist/browser/chat/chat-messages.js +236 -0
- package/dist/browser/chat/chat-messages.js.map +1 -0
- package/dist/browser/content/Calendar.js +1096 -1060
- package/dist/browser/content/Calendar.js.map +1 -1
- package/dist/browser/content/CalendarDayView.js +1187 -0
- package/dist/browser/content/CalendarDayView.js.map +1 -0
- package/dist/browser/content/CalendarWeekView.js +1571 -0
- package/dist/browser/content/CalendarWeekView.js.map +1 -0
- package/dist/browser/content/Chart.js +15 -8
- package/dist/browser/content/Chart.js.map +1 -1
- package/dist/browser/content/ChartExplorer.js +185 -85
- package/dist/browser/content/ChartExplorer.js.map +1 -1
- package/dist/browser/content/ChartExplorerControls.js +9 -7
- package/dist/browser/content/ChartExplorerControls.js.map +1 -1
- package/dist/browser/content/ChartFilterControls.js +93 -34
- package/dist/browser/content/ChartFilterControls.js.map +1 -1
- package/dist/browser/content/ChartSnapshotView.js +3 -3
- package/dist/browser/content/ChartSnapshotView.js.map +1 -1
- package/dist/browser/content/DataTable.js +238 -201
- package/dist/browser/content/DataTable.js.map +1 -1
- package/dist/browser/content/Docs.js +3 -1
- package/dist/browser/content/Docs.js.map +1 -1
- package/dist/browser/content/FileBrowser.js +30 -26
- package/dist/browser/content/FileBrowser.js.map +1 -1
- package/dist/browser/content/FileTree.js +9 -7
- package/dist/browser/content/FileTree.js.map +1 -1
- package/dist/browser/content/FileView.js +37 -28
- package/dist/browser/content/FileView.js.map +1 -1
- package/dist/browser/content/Lightbox.js +9 -7
- package/dist/browser/content/Lightbox.js.map +1 -1
- package/dist/browser/content/LogEntriesTable.js +3 -3
- package/dist/browser/content/LogEntriesTable.js.map +1 -1
- package/dist/browser/content/MessageRow.js +24 -22
- package/dist/browser/content/MessageRow.js.map +1 -1
- package/dist/browser/content/Pagination.js +7 -7
- package/dist/browser/content/Pagination.js.map +1 -1
- package/dist/browser/content/PdfPreview.js +15 -13
- package/dist/browser/content/PdfPreview.js.map +1 -1
- package/dist/browser/content/RangePicker.js +3 -1
- package/dist/browser/content/RangePicker.js.map +1 -1
- package/dist/browser/content/StructuredDataPreview.js +3 -1
- package/dist/browser/content/StructuredDataPreview.js.map +1 -1
- package/dist/browser/content/Timeline.js +13 -11
- package/dist/browser/content/Timeline.js.map +1 -1
- package/dist/browser/content/VideoPlayer.js +5 -5
- package/dist/browser/content/VideoPlayer.js.map +1 -1
- package/dist/browser/content/VirtualFeed.js +6 -4
- package/dist/browser/content/VirtualFeed.js.map +1 -1
- package/dist/browser/content/ZoomPanViewport.js +10 -7
- package/dist/browser/content/ZoomPanViewport.js.map +1 -1
- package/dist/browser/content/calendar-day-scroll.js +98 -0
- package/dist/browser/content/calendar-day-scroll.js.map +1 -0
- package/dist/browser/content/calendar-days.js +408 -0
- package/dist/browser/content/calendar-days.js.map +1 -0
- package/dist/browser/content/calendar-dialogs.js +236 -0
- package/dist/browser/content/calendar-dialogs.js.map +1 -0
- package/dist/browser/content/calendar-messages.js +249 -3
- package/dist/browser/content/calendar-messages.js.map +1 -1
- package/dist/browser/content/calendar-pointer.js +19 -6
- package/dist/browser/content/calendar-pointer.js.map +1 -1
- package/dist/browser/content/calendar-shared.js +328 -0
- package/dist/browser/content/calendar-shared.js.map +1 -0
- package/dist/browser/content/calendar-time-view.js +1649 -0
- package/dist/browser/content/calendar-time-view.js.map +1 -0
- package/dist/browser/content/chart-messages.js +146 -0
- package/dist/browser/content/chart-messages.js.map +1 -0
- package/dist/browser/content/collection-selection.js +2 -0
- package/dist/browser/content/collection-selection.js.map +1 -1
- package/dist/browser/content/data-table-messages.js +24 -0
- package/dist/browser/content/data-table-messages.js.map +1 -0
- package/dist/browser/content/docs-messages.js +24 -0
- package/dist/browser/content/docs-messages.js.map +1 -0
- package/dist/browser/content/feed-messages.js +34 -0
- package/dist/browser/content/feed-messages.js.map +1 -0
- package/dist/browser/content/file-browser-messages.js +69 -0
- package/dist/browser/content/file-browser-messages.js.map +1 -0
- package/dist/browser/content/file-view-messages.js +64 -0
- package/dist/browser/content/file-view-messages.js.map +1 -0
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/content/lightbox-messages.js +36 -0
- package/dist/browser/content/lightbox-messages.js.map +1 -0
- package/dist/browser/content/log-entries-messages.js +20 -0
- package/dist/browser/content/log-entries-messages.js.map +1 -0
- package/dist/browser/content/markdown-info-block-messages.js +24 -0
- package/dist/browser/content/markdown-info-block-messages.js.map +1 -0
- package/dist/browser/content/markdown-info-blocks.js +3 -3
- package/dist/browser/content/markdown-info-blocks.js.map +1 -1
- package/dist/browser/content/markdown-links.js +2 -2
- package/dist/browser/content/markdown-links.js.map +1 -1
- package/dist/browser/content/markdown-reference-messages.js +30 -0
- package/dist/browser/content/markdown-reference-messages.js.map +1 -0
- package/dist/browser/content/pagination-messages.js +38 -0
- package/dist/browser/content/pagination-messages.js.map +1 -0
- package/dist/browser/content/pdf-messages.js +43 -0
- package/dist/browser/content/pdf-messages.js.map +1 -0
- package/dist/browser/content/range-picker-messages.js +20 -0
- package/dist/browser/content/range-picker-messages.js.map +1 -0
- package/dist/browser/content/structured-data-messages.js +22 -0
- package/dist/browser/content/structured-data-messages.js.map +1 -0
- package/dist/browser/content/timeline-messages.js +62 -0
- package/dist/browser/content/timeline-messages.js.map +1 -0
- package/dist/browser/content/video-messages.js +24 -0
- package/dist/browser/content/video-messages.js.map +1 -0
- package/dist/browser/content/viewport-messages.js +28 -0
- package/dist/browser/content/viewport-messages.js.map +1 -0
- package/dist/browser/feedback/HoverPreview.js +34 -6
- package/dist/browser/feedback/HoverPreview.js.map +1 -1
- package/dist/browser/feedback/InstallGuide.js +18 -18
- package/dist/browser/feedback/InstallGuide.js.map +1 -1
- package/dist/browser/feedback/install-messages.js +104 -0
- package/dist/browser/feedback/install-messages.js.map +1 -0
- package/dist/browser/feedback/prompt-messages.js +65 -0
- package/dist/browser/feedback/prompt-messages.js.map +1 -0
- package/dist/browser/feedback/prompts.js +14 -11
- package/dist/browser/feedback/prompts.js.map +1 -1
- package/dist/browser/feedback/toast-messages.js +18 -0
- package/dist/browser/feedback/toast-messages.js.map +1 -0
- package/dist/browser/feedback/toast.js +4 -3
- package/dist/browser/feedback/toast.js.map +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/inputs/AutocompleteEditor.js +6 -4
- package/dist/browser/inputs/AutocompleteEditor.js.map +1 -1
- package/dist/browser/inputs/AutocompleteSelect.js +10 -8
- package/dist/browser/inputs/AutocompleteSelect.js.map +1 -1
- package/dist/browser/inputs/ChoiceGroups.js +4 -0
- package/dist/browser/inputs/ChoiceGroups.js.map +1 -1
- package/dist/browser/inputs/ChoiceInputs.js +5 -5
- package/dist/browser/inputs/ChoiceInputs.js.map +1 -1
- package/dist/browser/inputs/Combobox.js +3 -2
- package/dist/browser/inputs/Combobox.js.map +1 -1
- package/dist/browser/inputs/FileDropTarget.js +6 -6
- package/dist/browser/inputs/FileDropTarget.js.map +1 -1
- package/dist/browser/inputs/FileInputs.js +30 -21
- package/dist/browser/inputs/FileInputs.js.map +1 -1
- package/dist/browser/inputs/MultiSelectInput.js +7 -5
- package/dist/browser/inputs/MultiSelectInput.js.map +1 -1
- package/dist/browser/inputs/NumberInput.js +4 -2
- package/dist/browser/inputs/NumberInput.js.map +1 -1
- package/dist/browser/inputs/QrScanner.js +5 -5
- package/dist/browser/inputs/QrScanner.js.map +1 -1
- package/dist/browser/inputs/Select.js +7 -5
- package/dist/browser/inputs/Select.js.map +1 -1
- package/dist/browser/inputs/SelectChip.js +3 -3
- package/dist/browser/inputs/SelectChip.js.map +1 -1
- package/dist/browser/inputs/SignatureInput.js +9 -3
- package/dist/browser/inputs/SignatureInput.js.map +1 -1
- package/dist/browser/inputs/SpecialInputs.js +4 -2
- package/dist/browser/inputs/SpecialInputs.js.map +1 -1
- package/dist/browser/inputs/TagEditor.js +8 -6
- package/dist/browser/inputs/TagEditor.js.map +1 -1
- package/dist/browser/inputs/TagsInput.js +5 -5
- package/dist/browser/inputs/TagsInput.js.map +1 -1
- package/dist/browser/inputs/TemplateEditor.js +5 -5
- package/dist/browser/inputs/TemplateEditor.js.map +1 -1
- package/dist/browser/inputs/TextInput.js +3 -1
- package/dist/browser/inputs/TextInput.js.map +1 -1
- package/dist/browser/inputs/completion-messages.js +24 -0
- package/dist/browser/inputs/completion-messages.js.map +1 -0
- package/dist/browser/inputs/file-drop-messages.js +63 -0
- package/dist/browser/inputs/file-drop-messages.js.map +1 -0
- package/dist/browser/inputs/file-drop.js.map +1 -1
- package/dist/browser/inputs/file-input-messages.js +60 -0
- package/dist/browser/inputs/file-input-messages.js.map +1 -0
- package/dist/browser/inputs/icon-messages.js +22 -0
- package/dist/browser/inputs/icon-messages.js.map +1 -0
- package/dist/browser/inputs/input-messages.js +38 -0
- package/dist/browser/inputs/input-messages.js.map +1 -0
- package/dist/browser/inputs/markdown/MarkdownEditor.js +10 -6
- package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
- package/dist/browser/inputs/markdown/Toolbar.js +13 -13
- package/dist/browser/inputs/markdown/Toolbar.js.map +1 -1
- package/dist/browser/inputs/markdown/editor-messages.js +43 -0
- package/dist/browser/inputs/markdown/editor-messages.js.map +1 -0
- package/dist/browser/inputs/markdown/toolbar-messages.js +40 -0
- package/dist/browser/inputs/markdown/toolbar-messages.js.map +1 -0
- package/dist/browser/inputs/qr-messages.js +26 -0
- package/dist/browser/inputs/qr-messages.js.map +1 -0
- package/dist/browser/inputs/select-messages.js +63 -0
- package/dist/browser/inputs/select-messages.js.map +1 -0
- package/dist/browser/inputs/tag-messages.js +44 -0
- package/dist/browser/inputs/tag-messages.js.map +1 -0
- package/dist/browser/inputs/template-messages.js +22 -0
- package/dist/browser/inputs/template-messages.js.map +1 -0
- package/dist/browser/internal/render-error-messages.js +20 -0
- package/dist/browser/internal/render-error-messages.js.map +1 -0
- package/dist/browser/internal/render-error.js +3 -1
- package/dist/browser/internal/render-error.js.map +1 -1
- package/dist/browser/internal/text-selection.js +101 -0
- package/dist/browser/internal/text-selection.js.map +1 -0
- package/dist/browser/intl/messages.js +6 -1155
- package/dist/browser/intl/messages.js.map +1 -1
- package/dist/browser/layout/AppWorkspace.js +594 -425
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/BottomSheet.js +6 -1
- package/dist/browser/layout/BottomSheet.js.map +1 -1
- package/dist/browser/layout/Discussion.js +8 -5
- package/dist/browser/layout/Discussion.js.map +1 -1
- package/dist/browser/layout/FloatingWindow.js +8 -5
- package/dist/browser/layout/FloatingWindow.js.map +1 -1
- package/dist/browser/layout/Navigation.js +7 -6
- package/dist/browser/layout/Navigation.js.map +1 -1
- package/dist/browser/layout/PageTitle.js +373 -0
- package/dist/browser/layout/PageTitle.js.map +1 -0
- package/dist/browser/layout/PanelDialog.js +8 -6
- package/dist/browser/layout/PanelDialog.js.map +1 -1
- package/dist/browser/layout/Panes.js +23 -15
- package/dist/browser/layout/Panes.js.map +1 -1
- package/dist/browser/layout/PullToRefresh.js +13 -4
- package/dist/browser/layout/PullToRefresh.js.map +1 -1
- package/dist/browser/layout/Settings.js +14 -12
- package/dist/browser/layout/Settings.js.map +1 -1
- package/dist/browser/layout/SettingsCollection.js +6 -5
- package/dist/browser/layout/SettingsCollection.js.map +1 -1
- package/dist/browser/layout/SettingsModal.js +3 -1
- package/dist/browser/layout/SettingsModal.js.map +1 -1
- package/dist/browser/layout/app-workspace-controller.js +821 -12
- package/dist/browser/layout/app-workspace-controller.js.map +1 -1
- package/dist/browser/layout/app-workspace-state.js +3 -2
- package/dist/browser/layout/app-workspace-state.js.map +1 -1
- package/dist/browser/layout/floating-window-messages.js +28 -0
- package/dist/browser/layout/floating-window-messages.js.map +1 -0
- package/dist/browser/layout/index.js +2 -0
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/browser/layout/navigation-model.js.map +1 -1
- package/dist/browser/layout/page-title-controller.js +169 -0
- package/dist/browser/layout/page-title-controller.js.map +1 -0
- package/dist/browser/layout/panel-dialog-messages.js +20 -0
- package/dist/browser/layout/panel-dialog-messages.js.map +1 -0
- package/dist/browser/layout/panes-messages.js +48 -0
- package/dist/browser/layout/panes-messages.js.map +1 -0
- package/dist/browser/layout/refresh-messages.js +20 -0
- package/dist/browser/layout/refresh-messages.js.map +1 -0
- package/dist/browser/layout/settings-messages.js +54 -0
- package/dist/browser/layout/settings-messages.js.map +1 -0
- package/dist/browser/layout/workspace-messages.js +56 -0
- package/dist/browser/layout/workspace-messages.js.map +1 -0
- package/dist/browser/surfaces/Avatar.js +5 -5
- package/dist/browser/surfaces/Avatar.js.map +1 -1
- package/dist/browser/surfaces/ResourceCard.js +4 -2
- package/dist/browser/surfaces/ResourceCard.js.map +1 -1
- package/dist/browser/surfaces/StatCell.js +18 -6
- package/dist/browser/surfaces/StatCell.js.map +1 -1
- package/dist/browser/surfaces/Tag.js +3 -3
- package/dist/browser/surfaces/Tag.js.map +1 -1
- package/dist/browser/surfaces/avatar-messages.js +26 -0
- package/dist/browser/surfaces/avatar-messages.js.map +1 -0
- package/dist/browser/surfaces/resource-messages.js +26 -0
- package/dist/browser/surfaces/resource-messages.js.map +1 -0
- package/dist/browser/widgets/Widget.js +6 -0
- package/dist/browser/widgets/Widget.js.map +1 -1
- package/dist/ssr/actions/ContextMenu.js.map +1 -1
- package/dist/ssr/actions/FilterChip.js +3 -1
- package/dist/ssr/actions/FilterChip.js.map +1 -1
- package/dist/ssr/actions/SpotlightSearch.js +3 -1
- package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
- package/dist/ssr/actions/filter-messages.js +20 -0
- package/dist/ssr/actions/filter-messages.js.map +1 -0
- package/dist/ssr/actions/spotlight-messages.js +16 -0
- package/dist/ssr/actions/spotlight-messages.js.map +1 -0
- package/dist/ssr/chat/ChatComposer.js +47 -41
- package/dist/ssr/chat/ChatComposer.js.map +1 -1
- package/dist/ssr/chat/ChatPrimitives.js +23 -21
- package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
- package/dist/ssr/chat/ChatRoot.js +3 -3
- package/dist/ssr/chat/ChatRoot.js.map +1 -1
- package/dist/ssr/chat/ChatTimeline.js +11 -11
- package/dist/ssr/chat/ChatTimeline.js.map +1 -1
- package/dist/ssr/chat/chat-messages.js +236 -0
- package/dist/ssr/chat/chat-messages.js.map +1 -0
- package/dist/ssr/content/Calendar.js +534 -346
- package/dist/ssr/content/Calendar.js.map +1 -1
- package/dist/ssr/content/CalendarDayView.js +800 -0
- package/dist/ssr/content/CalendarDayView.js.map +1 -0
- package/dist/ssr/content/CalendarWeekView.js +1069 -0
- package/dist/ssr/content/CalendarWeekView.js.map +1 -0
- package/dist/ssr/content/Chart.js +12 -5
- package/dist/ssr/content/Chart.js.map +1 -1
- package/dist/ssr/content/ChartExplorer.js +98 -37
- package/dist/ssr/content/ChartExplorer.js.map +1 -1
- package/dist/ssr/content/ChartExplorerControls.js +9 -7
- package/dist/ssr/content/ChartExplorerControls.js.map +1 -1
- package/dist/ssr/content/ChartFilterControls.js +52 -8
- package/dist/ssr/content/ChartFilterControls.js.map +1 -1
- package/dist/ssr/content/ChartSnapshotView.js +3 -3
- package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
- package/dist/ssr/content/DataTable.js +77 -53
- package/dist/ssr/content/DataTable.js.map +1 -1
- package/dist/ssr/content/Docs.js +3 -1
- package/dist/ssr/content/Docs.js.map +1 -1
- package/dist/ssr/content/FileBrowser.js +30 -26
- package/dist/ssr/content/FileBrowser.js.map +1 -1
- package/dist/ssr/content/FileTree.js +9 -7
- package/dist/ssr/content/FileTree.js.map +1 -1
- package/dist/ssr/content/FileView.js +37 -28
- package/dist/ssr/content/FileView.js.map +1 -1
- package/dist/ssr/content/Lightbox.js +8 -6
- package/dist/ssr/content/Lightbox.js.map +1 -1
- package/dist/ssr/content/LogEntriesTable.js +3 -3
- package/dist/ssr/content/LogEntriesTable.js.map +1 -1
- package/dist/ssr/content/MessageRow.js +24 -22
- package/dist/ssr/content/MessageRow.js.map +1 -1
- package/dist/ssr/content/Pagination.js +6 -6
- package/dist/ssr/content/Pagination.js.map +1 -1
- package/dist/ssr/content/PdfPreview.js +15 -13
- package/dist/ssr/content/PdfPreview.js.map +1 -1
- package/dist/ssr/content/RangePicker.js +3 -1
- package/dist/ssr/content/RangePicker.js.map +1 -1
- package/dist/ssr/content/StructuredDataPreview.js +3 -1
- package/dist/ssr/content/StructuredDataPreview.js.map +1 -1
- package/dist/ssr/content/Timeline.js +13 -11
- package/dist/ssr/content/Timeline.js.map +1 -1
- package/dist/ssr/content/VideoPlayer.js +5 -5
- package/dist/ssr/content/VideoPlayer.js.map +1 -1
- package/dist/ssr/content/VirtualFeed.js +6 -4
- package/dist/ssr/content/VirtualFeed.js.map +1 -1
- package/dist/ssr/content/ZoomPanViewport.js +7 -4
- package/dist/ssr/content/ZoomPanViewport.js.map +1 -1
- package/dist/ssr/content/calendar-day-scroll.js +98 -0
- package/dist/ssr/content/calendar-day-scroll.js.map +1 -0
- package/dist/ssr/content/calendar-days.js +408 -0
- package/dist/ssr/content/calendar-days.js.map +1 -0
- package/dist/ssr/content/calendar-dialogs.js +159 -0
- package/dist/ssr/content/calendar-dialogs.js.map +1 -0
- package/dist/ssr/content/calendar-messages.js +249 -3
- package/dist/ssr/content/calendar-messages.js.map +1 -1
- package/dist/ssr/content/calendar-pointer.js +19 -6
- package/dist/ssr/content/calendar-pointer.js.map +1 -1
- package/dist/ssr/content/calendar-shared.js +261 -0
- package/dist/ssr/content/calendar-shared.js.map +1 -0
- package/dist/ssr/content/calendar-time-view.js +1306 -0
- package/dist/ssr/content/calendar-time-view.js.map +1 -0
- package/dist/ssr/content/chart-messages.js +146 -0
- package/dist/ssr/content/chart-messages.js.map +1 -0
- package/dist/ssr/content/collection-selection.js +2 -0
- package/dist/ssr/content/collection-selection.js.map +1 -1
- package/dist/ssr/content/data-table-messages.js +24 -0
- package/dist/ssr/content/data-table-messages.js.map +1 -0
- package/dist/ssr/content/docs-messages.js +24 -0
- package/dist/ssr/content/docs-messages.js.map +1 -0
- package/dist/ssr/content/feed-messages.js +34 -0
- package/dist/ssr/content/feed-messages.js.map +1 -0
- package/dist/ssr/content/file-browser-messages.js +69 -0
- package/dist/ssr/content/file-browser-messages.js.map +1 -0
- package/dist/ssr/content/file-view-messages.js +64 -0
- package/dist/ssr/content/file-view-messages.js.map +1 -0
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/content/lightbox-messages.js +36 -0
- package/dist/ssr/content/lightbox-messages.js.map +1 -0
- package/dist/ssr/content/log-entries-messages.js +20 -0
- package/dist/ssr/content/log-entries-messages.js.map +1 -0
- package/dist/ssr/content/markdown-info-block-messages.js +24 -0
- package/dist/ssr/content/markdown-info-block-messages.js.map +1 -0
- package/dist/ssr/content/markdown-info-blocks.js +3 -3
- package/dist/ssr/content/markdown-info-blocks.js.map +1 -1
- package/dist/ssr/content/markdown-links.js +2 -2
- package/dist/ssr/content/markdown-links.js.map +1 -1
- package/dist/ssr/content/markdown-reference-messages.js +30 -0
- package/dist/ssr/content/markdown-reference-messages.js.map +1 -0
- package/dist/ssr/content/pagination-messages.js +38 -0
- package/dist/ssr/content/pagination-messages.js.map +1 -0
- package/dist/ssr/content/pdf-messages.js +43 -0
- package/dist/ssr/content/pdf-messages.js.map +1 -0
- package/dist/ssr/content/range-picker-messages.js +20 -0
- package/dist/ssr/content/range-picker-messages.js.map +1 -0
- package/dist/ssr/content/structured-data-messages.js +22 -0
- package/dist/ssr/content/structured-data-messages.js.map +1 -0
- package/dist/ssr/content/timeline-messages.js +62 -0
- package/dist/ssr/content/timeline-messages.js.map +1 -0
- package/dist/ssr/content/video-messages.js +24 -0
- package/dist/ssr/content/video-messages.js.map +1 -0
- package/dist/ssr/content/viewport-messages.js +28 -0
- package/dist/ssr/content/viewport-messages.js.map +1 -0
- package/dist/ssr/feedback/HoverPreview.js +34 -6
- package/dist/ssr/feedback/HoverPreview.js.map +1 -1
- package/dist/ssr/feedback/InstallGuide.js +18 -18
- package/dist/ssr/feedback/InstallGuide.js.map +1 -1
- package/dist/ssr/feedback/install-messages.js +104 -0
- package/dist/ssr/feedback/install-messages.js.map +1 -0
- package/dist/ssr/feedback/prompt-messages.js +65 -0
- package/dist/ssr/feedback/prompt-messages.js.map +1 -0
- package/dist/ssr/feedback/prompts.js +14 -11
- package/dist/ssr/feedback/prompts.js.map +1 -1
- package/dist/ssr/feedback/toast-messages.js +18 -0
- package/dist/ssr/feedback/toast-messages.js.map +1 -0
- package/dist/ssr/feedback/toast.js +4 -3
- package/dist/ssr/feedback/toast.js.map +1 -1
- package/dist/ssr/index.js +1 -1
- package/dist/ssr/index.js.map +1 -1
- package/dist/ssr/inputs/AutocompleteEditor.js +5 -3
- package/dist/ssr/inputs/AutocompleteEditor.js.map +1 -1
- package/dist/ssr/inputs/AutocompleteSelect.js +10 -8
- package/dist/ssr/inputs/AutocompleteSelect.js.map +1 -1
- package/dist/ssr/inputs/ChoiceGroups.js +4 -0
- package/dist/ssr/inputs/ChoiceGroups.js.map +1 -1
- package/dist/ssr/inputs/ChoiceInputs.js +5 -5
- package/dist/ssr/inputs/ChoiceInputs.js.map +1 -1
- package/dist/ssr/inputs/Combobox.js +3 -1
- package/dist/ssr/inputs/Combobox.js.map +1 -1
- package/dist/ssr/inputs/FileDropTarget.js +6 -6
- package/dist/ssr/inputs/FileDropTarget.js.map +1 -1
- package/dist/ssr/inputs/FileInputs.js +29 -20
- package/dist/ssr/inputs/FileInputs.js.map +1 -1
- package/dist/ssr/inputs/MultiSelectInput.js +7 -5
- package/dist/ssr/inputs/MultiSelectInput.js.map +1 -1
- package/dist/ssr/inputs/NumberInput.js +4 -2
- package/dist/ssr/inputs/NumberInput.js.map +1 -1
- package/dist/ssr/inputs/QrScanner.js +4 -4
- package/dist/ssr/inputs/QrScanner.js.map +1 -1
- package/dist/ssr/inputs/Select.js +7 -5
- package/dist/ssr/inputs/Select.js.map +1 -1
- package/dist/ssr/inputs/SelectChip.js +3 -3
- package/dist/ssr/inputs/SelectChip.js.map +1 -1
- package/dist/ssr/inputs/SignatureInput.js +9 -3
- package/dist/ssr/inputs/SignatureInput.js.map +1 -1
- package/dist/ssr/inputs/SpecialInputs.js +4 -2
- package/dist/ssr/inputs/SpecialInputs.js.map +1 -1
- package/dist/ssr/inputs/TagEditor.js +8 -6
- package/dist/ssr/inputs/TagEditor.js.map +1 -1
- package/dist/ssr/inputs/TagsInput.js +5 -5
- package/dist/ssr/inputs/TagsInput.js.map +1 -1
- package/dist/ssr/inputs/TemplateEditor.js +5 -5
- package/dist/ssr/inputs/TemplateEditor.js.map +1 -1
- package/dist/ssr/inputs/TextInput.js +3 -1
- package/dist/ssr/inputs/TextInput.js.map +1 -1
- package/dist/ssr/inputs/completion-messages.js +24 -0
- package/dist/ssr/inputs/completion-messages.js.map +1 -0
- package/dist/ssr/inputs/file-drop-messages.js +63 -0
- package/dist/ssr/inputs/file-drop-messages.js.map +1 -0
- package/dist/ssr/inputs/file-drop.js.map +1 -1
- package/dist/ssr/inputs/file-input-messages.js +60 -0
- package/dist/ssr/inputs/file-input-messages.js.map +1 -0
- package/dist/ssr/inputs/icon-messages.js +22 -0
- package/dist/ssr/inputs/icon-messages.js.map +1 -0
- package/dist/ssr/inputs/input-messages.js +38 -0
- package/dist/ssr/inputs/input-messages.js.map +1 -0
- package/dist/ssr/inputs/markdown/MarkdownEditor.js +9 -5
- package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
- package/dist/ssr/inputs/markdown/Toolbar.js +13 -13
- package/dist/ssr/inputs/markdown/Toolbar.js.map +1 -1
- package/dist/ssr/inputs/markdown/editor-messages.js +43 -0
- package/dist/ssr/inputs/markdown/editor-messages.js.map +1 -0
- package/dist/ssr/inputs/markdown/toolbar-messages.js +40 -0
- package/dist/ssr/inputs/markdown/toolbar-messages.js.map +1 -0
- package/dist/ssr/inputs/qr-messages.js +26 -0
- package/dist/ssr/inputs/qr-messages.js.map +1 -0
- package/dist/ssr/inputs/select-messages.js +63 -0
- package/dist/ssr/inputs/select-messages.js.map +1 -0
- package/dist/ssr/inputs/tag-messages.js +44 -0
- package/dist/ssr/inputs/tag-messages.js.map +1 -0
- package/dist/ssr/inputs/template-messages.js +22 -0
- package/dist/ssr/inputs/template-messages.js.map +1 -0
- package/dist/ssr/internal/render-error-messages.js +20 -0
- package/dist/ssr/internal/render-error-messages.js.map +1 -0
- package/dist/ssr/internal/render-error.js +3 -1
- package/dist/ssr/internal/render-error.js.map +1 -1
- package/dist/ssr/internal/text-selection.js +101 -0
- package/dist/ssr/internal/text-selection.js.map +1 -0
- package/dist/ssr/intl/messages.js +6 -1155
- package/dist/ssr/intl/messages.js.map +1 -1
- package/dist/ssr/layout/AppWorkspace.js +219 -103
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/layout/BottomSheet.js +1 -0
- package/dist/ssr/layout/BottomSheet.js.map +1 -1
- package/dist/ssr/layout/Discussion.js +8 -5
- package/dist/ssr/layout/Discussion.js.map +1 -1
- package/dist/ssr/layout/FloatingWindow.js +8 -5
- package/dist/ssr/layout/FloatingWindow.js.map +1 -1
- package/dist/ssr/layout/Navigation.js +6 -5
- package/dist/ssr/layout/Navigation.js.map +1 -1
- package/dist/ssr/layout/PageTitle.js +256 -0
- package/dist/ssr/layout/PageTitle.js.map +1 -0
- package/dist/ssr/layout/PanelDialog.js +8 -6
- package/dist/ssr/layout/PanelDialog.js.map +1 -1
- package/dist/ssr/layout/Panes.js +22 -14
- package/dist/ssr/layout/Panes.js.map +1 -1
- package/dist/ssr/layout/PullToRefresh.js +13 -4
- package/dist/ssr/layout/PullToRefresh.js.map +1 -1
- package/dist/ssr/layout/Settings.js +14 -12
- package/dist/ssr/layout/Settings.js.map +1 -1
- package/dist/ssr/layout/SettingsCollection.js +6 -5
- package/dist/ssr/layout/SettingsCollection.js.map +1 -1
- package/dist/ssr/layout/SettingsModal.js +3 -1
- package/dist/ssr/layout/SettingsModal.js.map +1 -1
- package/dist/ssr/layout/app-workspace-controller.js +821 -12
- package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
- package/dist/ssr/layout/app-workspace-state.js +3 -2
- package/dist/ssr/layout/app-workspace-state.js.map +1 -1
- package/dist/ssr/layout/floating-window-messages.js +28 -0
- package/dist/ssr/layout/floating-window-messages.js.map +1 -0
- package/dist/ssr/layout/index.js +2 -0
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/ssr/layout/navigation-model.js.map +1 -1
- package/dist/ssr/layout/page-title-controller.js +169 -0
- package/dist/ssr/layout/page-title-controller.js.map +1 -0
- package/dist/ssr/layout/panel-dialog-messages.js +20 -0
- package/dist/ssr/layout/panel-dialog-messages.js.map +1 -0
- package/dist/ssr/layout/panes-messages.js +48 -0
- package/dist/ssr/layout/panes-messages.js.map +1 -0
- package/dist/ssr/layout/refresh-messages.js +20 -0
- package/dist/ssr/layout/refresh-messages.js.map +1 -0
- package/dist/ssr/layout/settings-messages.js +54 -0
- package/dist/ssr/layout/settings-messages.js.map +1 -0
- package/dist/ssr/layout/workspace-messages.js +56 -0
- package/dist/ssr/layout/workspace-messages.js.map +1 -0
- package/dist/ssr/surfaces/Avatar.js +5 -5
- package/dist/ssr/surfaces/Avatar.js.map +1 -1
- package/dist/ssr/surfaces/ResourceCard.js +4 -2
- package/dist/ssr/surfaces/ResourceCard.js.map +1 -1
- package/dist/ssr/surfaces/StatCell.js +2 -2
- package/dist/ssr/surfaces/StatCell.js.map +1 -1
- package/dist/ssr/surfaces/Tag.js +3 -3
- package/dist/ssr/surfaces/Tag.js.map +1 -1
- package/dist/ssr/surfaces/avatar-messages.js +26 -0
- package/dist/ssr/surfaces/avatar-messages.js.map +1 -0
- package/dist/ssr/surfaces/resource-messages.js +26 -0
- package/dist/ssr/surfaces/resource-messages.js.map +1 -0
- package/dist/ssr/widgets/Widget.js +6 -0
- package/dist/ssr/widgets/Widget.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/actions/filter-messages.d.ts +8 -0
- package/dist/types/actions/spotlight-messages.d.ts +8 -0
- package/dist/types/chat/chat-messages.d.ts +116 -0
- package/dist/types/content/Calendar.d.ts +91 -0
- package/dist/types/content/CalendarDayView.d.ts +7 -0
- package/dist/types/content/CalendarWeekView.d.ts +7 -0
- package/dist/types/content/ChartExplorer.d.ts +36 -1
- package/dist/types/content/ChartFilterControls.d.ts +6 -1
- package/dist/types/content/DataTable.d.ts +7 -0
- package/dist/types/content/FileView.d.ts +0 -10
- package/dist/types/content/calendar-day-scroll.d.ts +42 -0
- package/dist/types/content/calendar-days.d.ts +192 -0
- package/dist/types/content/calendar-dialogs.d.ts +22 -0
- package/dist/types/content/calendar-messages.d.ts +119 -1
- package/dist/types/content/calendar-pointer.d.ts +9 -0
- package/dist/types/content/calendar-shared.d.ts +69 -0
- package/dist/types/content/calendar-time-view.d.ts +252 -0
- package/dist/types/content/chart-messages.d.ts +37 -0
- package/dist/types/content/data-table-messages.d.ts +10 -0
- package/dist/types/content/docs-messages.d.ts +10 -0
- package/dist/types/content/feed-messages.d.ts +15 -0
- package/dist/types/content/file-browser-messages.d.ts +33 -0
- package/dist/types/content/file-view-messages.d.ts +30 -0
- package/dist/types/content/index.d.ts +2 -2
- package/dist/types/content/lightbox-messages.d.ts +16 -0
- package/dist/types/content/log-entries-messages.d.ts +8 -0
- package/dist/types/content/markdown-info-block-messages.d.ts +12 -0
- package/dist/types/content/markdown-reference-messages.d.ts +15 -0
- package/dist/types/content/pagination-messages.d.ts +17 -0
- package/dist/types/content/pdf-messages.d.ts +20 -0
- package/dist/types/content/range-picker-messages.d.ts +8 -0
- package/dist/types/content/structured-data-messages.d.ts +9 -0
- package/dist/types/content/timeline-messages.d.ts +29 -0
- package/dist/types/content/video-messages.d.ts +10 -0
- package/dist/types/content/viewport-messages.d.ts +12 -0
- package/dist/types/feedback/install-messages.d.ts +50 -0
- package/dist/types/feedback/prompt-messages.d.ts +31 -0
- package/dist/types/feedback/toast-messages.d.ts +9 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/inputs/completion-messages.d.ts +10 -0
- package/dist/types/inputs/file-drop-messages.d.ts +30 -0
- package/dist/types/inputs/file-drop.d.ts +3 -3
- package/dist/types/inputs/file-input-messages.d.ts +28 -0
- package/dist/types/inputs/icon-messages.d.ts +9 -0
- package/dist/types/inputs/input-messages.d.ts +17 -0
- package/dist/types/inputs/markdown/editor-messages.d.ts +20 -0
- package/dist/types/inputs/markdown/toolbar-messages.d.ts +18 -0
- package/dist/types/inputs/qr-messages.d.ts +11 -0
- package/dist/types/inputs/select-messages.d.ts +30 -0
- package/dist/types/inputs/tag-messages.d.ts +20 -0
- package/dist/types/inputs/template-messages.d.ts +9 -0
- package/dist/types/internal/render-error-messages.d.ts +8 -0
- package/dist/types/internal/text-selection.d.ts +18 -0
- package/dist/types/intl/messages.d.ts +3 -544
- package/dist/types/layout/AppWorkspace.d.ts +42 -5
- package/dist/types/layout/PageTitle.d.ts +65 -0
- package/dist/types/layout/app-workspace-controller.d.ts +12 -0
- package/dist/types/layout/app-workspace-state.d.ts +3 -2
- package/dist/types/layout/floating-window-messages.d.ts +12 -0
- package/dist/types/layout/index.d.ts +3 -0
- package/dist/types/layout/navigation-model.d.ts +7 -0
- package/dist/types/layout/page-title-controller.d.ts +13 -0
- package/dist/types/layout/panel-dialog-messages.d.ts +8 -0
- package/dist/types/layout/panes-messages.d.ts +22 -0
- package/dist/types/layout/refresh-messages.d.ts +8 -0
- package/dist/types/layout/settings-messages.d.ts +25 -0
- package/dist/types/layout/workspace-messages.d.ts +26 -0
- package/dist/types/surfaces/StatCell.d.ts +5 -0
- package/dist/types/surfaces/avatar-messages.d.ts +11 -0
- package/dist/types/surfaces/resource-messages.d.ts +11 -0
- package/dist/types/widgets/Widget.d.ts +5 -1
- package/package.json +1 -1
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
import { template as _$template } from "solid-js/web";
|
|
2
|
-
import { memo as _$memo } from "solid-js/web";
|
|
3
2
|
import { setStyleProperty as _$setStyleProperty } from "solid-js/web";
|
|
4
3
|
import { className as _$className } from "solid-js/web";
|
|
5
4
|
import { effect as _$effect } from "solid-js/web";
|
|
5
|
+
import { memo as _$memo } from "solid-js/web";
|
|
6
6
|
import { getNextMarker as _$getNextMarker } from "solid-js/web";
|
|
7
|
-
import { createComponent as _$createComponent } from "solid-js/web";
|
|
8
7
|
import { getNextElement as _$getNextElement } from "solid-js/web";
|
|
9
8
|
import { insert as _$insert } from "solid-js/web";
|
|
9
|
+
import { createComponent as _$createComponent } from "solid-js/web";
|
|
10
10
|
import { setAttribute as _$setAttribute } from "solid-js/web";
|
|
11
11
|
var _tmpl$ = /*#__PURE__*/_$template(`<div>`),
|
|
12
12
|
_tmpl$2 = /*#__PURE__*/_$template(`<span role=alert>`),
|
|
13
|
-
_tmpl$3 = /*#__PURE__*/_$template(`<
|
|
14
|
-
_tmpl$4 = /*#__PURE__*/_$template(`<
|
|
15
|
-
_tmpl$5 = /*#__PURE__*/_$template(`<div class=k2b-
|
|
16
|
-
_tmpl$6 = /*#__PURE__*/_$template(`<
|
|
17
|
-
_tmpl$7 = /*#__PURE__*/_$template(`<
|
|
18
|
-
_tmpl$8 = /*#__PURE__*/_$template(`<
|
|
19
|
-
|
|
13
|
+
_tmpl$3 = /*#__PURE__*/_$template(`<ul class=k2b-chart-legend>`),
|
|
14
|
+
_tmpl$4 = /*#__PURE__*/_$template(`<div class=k2b-chart-explorer__details aria-live=polite>`),
|
|
15
|
+
_tmpl$5 = /*#__PURE__*/_$template(`<section><header class=k2b-chart-explorer__header><div><!$><!/><!$><!/></div><div class=k2b-chart-explorer__actions><!$><!/><!$><!/></div></header><!$><!/><!$><!/><div class=k2b-chart-explorer__viewport></div><!$><!/>`),
|
|
16
|
+
_tmpl$6 = /*#__PURE__*/_$template(`<div class=k2b-chart__empty>`),
|
|
17
|
+
_tmpl$7 = /*#__PURE__*/_$template(`<p class=k2b-chart-explorer__note>`),
|
|
18
|
+
_tmpl$8 = /*#__PURE__*/_$template(`<i aria-hidden=true>`),
|
|
19
|
+
_tmpl$9 = /*#__PURE__*/_$template(`<li><span class=k2b-chart-legend__swatch aria-hidden=true></span><!$><!/>`),
|
|
20
|
+
_tmpl$0 = /*#__PURE__*/_$template(`<i class="ti ti-x"aria-hidden=true>`),
|
|
21
|
+
_tmpl$1 = /*#__PURE__*/_$template(`<div class=k2b-chart-explorer__detail-header><span></span><!$><!/>`);
|
|
22
|
+
import { createEffect, createMemo, createSignal, createUniqueId, For, Show } from "solid-js";
|
|
23
|
+
import { Dynamic } from "solid-js/web";
|
|
20
24
|
import { Button, IconButton } from "../actions/Button";
|
|
21
25
|
import { CopyButton } from "../actions/CopyButton";
|
|
22
26
|
import { SelectChip } from "../inputs/SelectChip";
|
|
@@ -26,10 +30,18 @@ import { DescriptionList } from "../surfaces/DescriptionList";
|
|
|
26
30
|
import { Paper } from "../surfaces/Paper";
|
|
27
31
|
import { ChartSnapshotView } from "./ChartSnapshotView";
|
|
28
32
|
import { validateChartExplorerData } from "./chart-explorer";
|
|
33
|
+
import { useChartMessages } from "./chart-messages";
|
|
29
34
|
import DataTable from "./DataTable";
|
|
30
|
-
|
|
35
|
+
|
|
36
|
+
/** One legend entry; `color` is the palette index the renderer gave the series (0 is `--stdlib-chart-c1`). */
|
|
37
|
+
|
|
38
|
+
const tsvCell = (value, numeric = false) => {
|
|
39
|
+
const safe = !numeric && /^[=+\-@\t\r]/.test(value) ? `'${value}` : value;
|
|
40
|
+
return /[\t\r\n"]/.test(safe) ? `"${safe.replaceAll('"', '""')}"` : safe;
|
|
41
|
+
};
|
|
31
42
|
export function ChartExplorer(props) {
|
|
32
43
|
const messages = useUiMessages();
|
|
44
|
+
const chartMessages = useChartMessages();
|
|
33
45
|
const locale = useLocale();
|
|
34
46
|
const id = `k2b-chart-explorer-${createUniqueId()}`;
|
|
35
47
|
const data = () => props.data;
|
|
@@ -82,43 +94,75 @@ export function ChartExplorer(props) {
|
|
|
82
94
|
return order.direction === "asc" ? comparison : -comparison;
|
|
83
95
|
});
|
|
84
96
|
});
|
|
85
|
-
const
|
|
97
|
+
const shownRows = () => props.tableRows === undefined ? rows() : rows().slice(0, props.tableRows);
|
|
98
|
+
// Chart ids are data; a prefix keeps one named "table" apart from the table entry.
|
|
99
|
+
const switcherValue = () => view() === "table" || !props.charts?.length ? view() : `chart:${props.chart ?? props.charts[0]?.id}`;
|
|
100
|
+
const switcherOptions = () => props.charts?.length ? [...props.charts.map(chart => ({
|
|
101
|
+
value: `chart:${chart.id}`,
|
|
102
|
+
label: chart.label
|
|
103
|
+
})), {
|
|
104
|
+
value: "table",
|
|
105
|
+
label: chartMessages().chartData
|
|
106
|
+
}] : [{
|
|
107
|
+
value: "chart",
|
|
108
|
+
label: chartMessages().chartDiagram
|
|
109
|
+
}, {
|
|
110
|
+
value: "table",
|
|
111
|
+
label: chartMessages().chartData
|
|
112
|
+
}];
|
|
113
|
+
const pick = value => {
|
|
114
|
+
if (value === "table" || value === "chart") return setView(value);
|
|
115
|
+
setView("chart");
|
|
116
|
+
props.onChartChange?.(value.slice("chart:".length));
|
|
117
|
+
};
|
|
118
|
+
const copyText = () => [props.columns.map(c => tsvCell(c.label)).join("\t"), ...rows().map(row => props.columns.map(c => tsvCell(c.value(row), typeof c.sortValue?.(row) === "number")).join("\t"))].join("\n");
|
|
86
119
|
return (() => {
|
|
87
|
-
var _el$ = _$getNextElement(_tmpl$
|
|
120
|
+
var _el$ = _$getNextElement(_tmpl$5),
|
|
88
121
|
_el$2 = _el$.firstChild,
|
|
89
122
|
_el$3 = _el$2.firstChild,
|
|
90
|
-
_el$
|
|
91
|
-
_el$6 = _el$
|
|
92
|
-
|
|
93
|
-
_el$8 = _el$
|
|
94
|
-
_el$9 = _el$
|
|
95
|
-
|
|
96
|
-
_el$1 = _el$0.nextSibling,
|
|
97
|
-
|
|
98
|
-
_el$
|
|
99
|
-
|
|
100
|
-
_el$
|
|
101
|
-
_el$
|
|
102
|
-
[_el$
|
|
123
|
+
_el$5 = _el$3.firstChild,
|
|
124
|
+
[_el$6, _co$] = _$getNextMarker(_el$5.nextSibling),
|
|
125
|
+
_el$7 = _el$6.nextSibling,
|
|
126
|
+
[_el$8, _co$2] = _$getNextMarker(_el$7.nextSibling),
|
|
127
|
+
_el$9 = _el$3.nextSibling,
|
|
128
|
+
_el$0 = _el$9.firstChild,
|
|
129
|
+
[_el$1, _co$3] = _$getNextMarker(_el$0.nextSibling),
|
|
130
|
+
_el$10 = _el$1.nextSibling,
|
|
131
|
+
[_el$11, _co$4] = _$getNextMarker(_el$10.nextSibling),
|
|
132
|
+
_el$16 = _el$2.nextSibling,
|
|
133
|
+
[_el$17, _co$5] = _$getNextMarker(_el$16.nextSibling),
|
|
134
|
+
_el$18 = _el$17.nextSibling,
|
|
135
|
+
[_el$19, _co$6] = _$getNextMarker(_el$18.nextSibling),
|
|
136
|
+
_el$13 = _el$19.nextSibling,
|
|
137
|
+
_el$20 = _el$13.nextSibling,
|
|
138
|
+
[_el$21, _co$7] = _$getNextMarker(_el$20.nextSibling);
|
|
103
139
|
_$setAttribute(_el$, "aria-labelledby", id);
|
|
104
|
-
_$
|
|
105
|
-
|
|
140
|
+
_$insert(_el$3, _$createComponent(Dynamic, {
|
|
141
|
+
get component() {
|
|
142
|
+
return `h${props.headingLevel ?? 3}`;
|
|
143
|
+
},
|
|
144
|
+
id: id,
|
|
145
|
+
"class": "k2b-chart-explorer__title",
|
|
146
|
+
get children() {
|
|
147
|
+
return props.title;
|
|
148
|
+
}
|
|
149
|
+
}), _el$6, _co$);
|
|
106
150
|
_$insert(_el$3, _$createComponent(Show, {
|
|
107
151
|
get when() {
|
|
108
152
|
return props.description;
|
|
109
153
|
},
|
|
110
154
|
get children() {
|
|
111
|
-
var _el$
|
|
112
|
-
_$insert(_el$
|
|
113
|
-
return _el$
|
|
155
|
+
var _el$4 = _$getNextElement(_tmpl$);
|
|
156
|
+
_$insert(_el$4, () => props.description);
|
|
157
|
+
return _el$4;
|
|
114
158
|
}
|
|
115
|
-
}), _el$
|
|
116
|
-
_$insert(_el$
|
|
159
|
+
}), _el$8, _co$2);
|
|
160
|
+
_$insert(_el$9, _$createComponent(CopyButton, {
|
|
117
161
|
get text() {
|
|
118
162
|
return copyText();
|
|
119
163
|
},
|
|
120
164
|
get label() {
|
|
121
|
-
return
|
|
165
|
+
return chartMessages().chartCopyData;
|
|
122
166
|
},
|
|
123
167
|
iconOnly: true,
|
|
124
168
|
size: "sm",
|
|
@@ -128,44 +172,39 @@ export function ChartExplorer(props) {
|
|
|
128
172
|
},
|
|
129
173
|
onCopyError: () => setCopyFailed(true),
|
|
130
174
|
onCopied: () => setCopyFailed(false)
|
|
131
|
-
}), _el$
|
|
132
|
-
_$insert(_el$
|
|
175
|
+
}), _el$1, _co$3);
|
|
176
|
+
_$insert(_el$9, _$createComponent(SelectChip, {
|
|
133
177
|
get value() {
|
|
134
|
-
return
|
|
178
|
+
return switcherValue();
|
|
135
179
|
},
|
|
136
|
-
onValueChange:
|
|
180
|
+
onValueChange: pick,
|
|
137
181
|
get ["aria-label"]() {
|
|
138
|
-
return
|
|
182
|
+
return chartMessages().chartView;
|
|
139
183
|
},
|
|
140
184
|
get options() {
|
|
141
|
-
return
|
|
142
|
-
value: "chart",
|
|
143
|
-
label: messages().chartDiagram
|
|
144
|
-
}, {
|
|
145
|
-
value: "table",
|
|
146
|
-
label: messages().chartData
|
|
147
|
-
}];
|
|
185
|
+
return switcherOptions();
|
|
148
186
|
}
|
|
149
|
-
}), _el$
|
|
187
|
+
}), _el$11, _co$4);
|
|
150
188
|
_$insert(_el$, _$createComponent(Show, {
|
|
151
189
|
get when() {
|
|
152
190
|
return copyFailed();
|
|
153
191
|
},
|
|
154
192
|
get children() {
|
|
155
|
-
var _el$
|
|
156
|
-
_$insert(_el$
|
|
157
|
-
return _el$
|
|
193
|
+
var _el$12 = _$getNextElement(_tmpl$2);
|
|
194
|
+
_$insert(_el$12, () => chartMessages().chartCopyFailed);
|
|
195
|
+
return _el$12;
|
|
158
196
|
}
|
|
159
|
-
}), _el$
|
|
160
|
-
_$insert(_el
|
|
197
|
+
}), _el$17, _co$5);
|
|
198
|
+
_$insert(_el$, () => props.controls, _el$19, _co$6);
|
|
199
|
+
_$insert(_el$13, _$createComponent(Show, {
|
|
161
200
|
get when() {
|
|
162
201
|
return data().rows.length > 0;
|
|
163
202
|
},
|
|
164
203
|
get fallback() {
|
|
165
204
|
return (() => {
|
|
166
|
-
var _el$
|
|
167
|
-
_$insert(_el$
|
|
168
|
-
return _el$
|
|
205
|
+
var _el$22 = _$getNextElement(_tmpl$6);
|
|
206
|
+
_$insert(_el$22, () => props.empty ?? messages().noData);
|
|
207
|
+
return _el$22;
|
|
169
208
|
})();
|
|
170
209
|
},
|
|
171
210
|
get children() {
|
|
@@ -174,9 +213,9 @@ export function ChartExplorer(props) {
|
|
|
174
213
|
return view() === "chart";
|
|
175
214
|
},
|
|
176
215
|
get fallback() {
|
|
177
|
-
return _$createComponent(DataTable, {
|
|
216
|
+
return [_$createComponent(DataTable, {
|
|
178
217
|
get rows() {
|
|
179
|
-
return
|
|
218
|
+
return shownRows();
|
|
180
219
|
},
|
|
181
220
|
get columns() {
|
|
182
221
|
return props.columns.map(column => ({
|
|
@@ -206,7 +245,7 @@ export function ChartExplorer(props) {
|
|
|
206
245
|
}) => {
|
|
207
246
|
const custom = props.columns.find(column => column.id === col.id)?.render;
|
|
208
247
|
const cell = () => custom ? custom(row) : render(value);
|
|
209
|
-
return col.id === props.columns[0]?.id ? _$createComponent(Button, {
|
|
248
|
+
return !custom && col.id === props.columns[0]?.id ? _$createComponent(Button, {
|
|
210
249
|
variant: "text",
|
|
211
250
|
size: "sm",
|
|
212
251
|
onClick: () => select(row.key),
|
|
@@ -226,20 +265,38 @@ export function ChartExplorer(props) {
|
|
|
226
265
|
direction: sort()?.key === col.id && sort()?.direction === "asc" ? "desc" : "asc"
|
|
227
266
|
}),
|
|
228
267
|
get children() {
|
|
229
|
-
return [_$memo(() => props.columns.find(column => column.id === col.id)?.label),
|
|
230
|
-
var _el$
|
|
231
|
-
_$
|
|
232
|
-
var
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
268
|
+
return [_$memo(() => props.columns.find(column => column.id === col.id)?.label), (() => {
|
|
269
|
+
var _el$24 = _$getNextElement(_tmpl$8);
|
|
270
|
+
_$effect(_p$ => {
|
|
271
|
+
var _v$5 = `k2b-data-table__sort-icon ti ${sort()?.key === col.id && sort()?.direction === "asc" ? "ti-arrow-up" : "ti-arrow-down"}`,
|
|
272
|
+
_v$6 = sort()?.key === col.id ? "true" : undefined;
|
|
273
|
+
_v$5 !== _p$.e && _$className(_el$24, _p$.e = _v$5);
|
|
274
|
+
_v$6 !== _p$.t && _$setAttribute(_el$24, "data-active", _p$.t = _v$6);
|
|
275
|
+
return _p$;
|
|
276
|
+
}, {
|
|
277
|
+
e: undefined,
|
|
278
|
+
t: undefined
|
|
279
|
+
});
|
|
280
|
+
return _el$24;
|
|
236
281
|
})()];
|
|
237
282
|
}
|
|
238
283
|
}) : render()
|
|
239
|
-
})
|
|
284
|
+
}), _$createComponent(Show, {
|
|
285
|
+
get when() {
|
|
286
|
+
return shownRows().length < rows().length;
|
|
287
|
+
},
|
|
288
|
+
get children() {
|
|
289
|
+
var _el$23 = _$getNextElement(_tmpl$7);
|
|
290
|
+
_$insert(_el$23, () => chartMessages().chartRowsShown({
|
|
291
|
+
shown: new Intl.NumberFormat(locale()).format(shownRows().length),
|
|
292
|
+
total: new Intl.NumberFormat(locale()).format(rows().length)
|
|
293
|
+
}));
|
|
294
|
+
return _el$23;
|
|
295
|
+
}
|
|
296
|
+
})];
|
|
240
297
|
},
|
|
241
298
|
get children() {
|
|
242
|
-
return _$createComponent(ChartSnapshotView, {
|
|
299
|
+
return [_$createComponent(ChartSnapshotView, {
|
|
243
300
|
get cursor() {
|
|
244
301
|
return props.cursor;
|
|
245
302
|
},
|
|
@@ -250,10 +307,47 @@ export function ChartExplorer(props) {
|
|
|
250
307
|
return selected();
|
|
251
308
|
},
|
|
252
309
|
onSelect: select,
|
|
253
|
-
style
|
|
254
|
-
|
|
310
|
+
get style() {
|
|
311
|
+
return props.legend?.length ? undefined : {
|
|
312
|
+
height: "100%"
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
}), _$createComponent(Show, {
|
|
316
|
+
get when() {
|
|
317
|
+
return props.legend?.length;
|
|
318
|
+
},
|
|
319
|
+
get children() {
|
|
320
|
+
var _el$14 = _$getNextElement(_tmpl$3);
|
|
321
|
+
_$insert(_el$14, _$createComponent(For, {
|
|
322
|
+
get each() {
|
|
323
|
+
return props.legend;
|
|
324
|
+
},
|
|
325
|
+
children: entry => (() => {
|
|
326
|
+
var _el$25 = _$getNextElement(_tmpl$9),
|
|
327
|
+
_el$26 = _el$25.firstChild,
|
|
328
|
+
_el$27 = _el$26.nextSibling,
|
|
329
|
+
[_el$28, _co$8] = _$getNextMarker(_el$27.nextSibling);
|
|
330
|
+
_$insert(_el$25, () => entry.label, _el$28, _co$8);
|
|
331
|
+
_$effect(_p$ => {
|
|
332
|
+
var _v$7 = entry.style && entry.style !== "solid" ? entry.style : undefined,
|
|
333
|
+
_v$8 = entry.reference ? "true" : undefined,
|
|
334
|
+
_v$9 = `var(--stdlib-chart-c${Math.abs(Math.trunc(entry.color)) % 8 + 1})`;
|
|
335
|
+
_v$7 !== _p$.e && _$setAttribute(_el$26, "data-style", _p$.e = _v$7);
|
|
336
|
+
_v$8 !== _p$.t && _$setAttribute(_el$26, "data-reference", _p$.t = _v$8);
|
|
337
|
+
_v$9 !== _p$.a && _$setStyleProperty(_el$26, "--k2b-chart-legend-color", _p$.a = _v$9);
|
|
338
|
+
return _p$;
|
|
339
|
+
}, {
|
|
340
|
+
e: undefined,
|
|
341
|
+
t: undefined,
|
|
342
|
+
a: undefined
|
|
343
|
+
});
|
|
344
|
+
return _el$25;
|
|
345
|
+
})()
|
|
346
|
+
}));
|
|
347
|
+
_$effect(() => _$setAttribute(_el$14, "aria-label", chartMessages().chartLegend));
|
|
348
|
+
return _el$14;
|
|
255
349
|
}
|
|
256
|
-
});
|
|
350
|
+
})];
|
|
257
351
|
}
|
|
258
352
|
});
|
|
259
353
|
}
|
|
@@ -263,8 +357,8 @@ export function ChartExplorer(props) {
|
|
|
263
357
|
return props.renderDetails !== false;
|
|
264
358
|
},
|
|
265
359
|
get children() {
|
|
266
|
-
var _el$
|
|
267
|
-
_$insert(_el$
|
|
360
|
+
var _el$15 = _$getNextElement(_tmpl$4);
|
|
361
|
+
_$insert(_el$15, _$createComponent(Show, {
|
|
268
362
|
get when() {
|
|
269
363
|
return selectedRow();
|
|
270
364
|
},
|
|
@@ -272,12 +366,12 @@ export function ChartExplorer(props) {
|
|
|
272
366
|
"class": "k2b-chart-explorer__detail-paper",
|
|
273
367
|
get children() {
|
|
274
368
|
return [(() => {
|
|
275
|
-
var _el$
|
|
276
|
-
_el$
|
|
277
|
-
_el$
|
|
278
|
-
[_el$
|
|
279
|
-
_$insert(_el$
|
|
280
|
-
_$insert(_el$
|
|
369
|
+
var _el$29 = _$getNextElement(_tmpl$1),
|
|
370
|
+
_el$30 = _el$29.firstChild,
|
|
371
|
+
_el$32 = _el$30.nextSibling,
|
|
372
|
+
[_el$33, _co$9] = _$getNextMarker(_el$32.nextSibling);
|
|
373
|
+
_$insert(_el$30, () => chartMessages().chartSelectedDatum);
|
|
374
|
+
_$insert(_el$29, _$createComponent(IconButton, {
|
|
281
375
|
variant: "text",
|
|
282
376
|
size: "sm",
|
|
283
377
|
get label() {
|
|
@@ -285,10 +379,10 @@ export function ChartExplorer(props) {
|
|
|
285
379
|
},
|
|
286
380
|
onClick: () => select(null),
|
|
287
381
|
get children() {
|
|
288
|
-
return _$getNextElement(_tmpl$
|
|
382
|
+
return _$getNextElement(_tmpl$0);
|
|
289
383
|
}
|
|
290
|
-
}), _el$
|
|
291
|
-
return _el$
|
|
384
|
+
}), _el$33, _co$9);
|
|
385
|
+
return _el$29;
|
|
292
386
|
})(), _$memo(() => _$memo(() => !!props.renderDetails)() ? props.renderDetails(row()) : _$createComponent(DescriptionList, {
|
|
293
387
|
columns: 3,
|
|
294
388
|
size: "sm",
|
|
@@ -302,18 +396,24 @@ export function ChartExplorer(props) {
|
|
|
302
396
|
}
|
|
303
397
|
})
|
|
304
398
|
}));
|
|
305
|
-
return _el$
|
|
399
|
+
return _el$15;
|
|
306
400
|
}
|
|
307
|
-
}), _el$
|
|
401
|
+
}), _el$21, _co$7);
|
|
308
402
|
_$effect(_p$ => {
|
|
309
403
|
var _v$ = `k2b-chart-explorer ${props.class ?? ""}`,
|
|
310
|
-
_v$2 = props.
|
|
404
|
+
_v$2 = view() === "chart" && props.legend?.length && data().rows.length > 0 ? "true" : undefined,
|
|
405
|
+
_v$3 = view() === "table" && shownRows().length < rows().length ? "true" : undefined,
|
|
406
|
+
_v$4 = props.height ?? "18rem";
|
|
311
407
|
_v$ !== _p$.e && _$className(_el$, _p$.e = _v$);
|
|
312
|
-
_v$2 !== _p$.t && _$
|
|
408
|
+
_v$2 !== _p$.t && _$setAttribute(_el$13, "data-legend", _p$.t = _v$2);
|
|
409
|
+
_v$3 !== _p$.a && _$setAttribute(_el$13, "data-capped", _p$.a = _v$3);
|
|
410
|
+
_v$4 !== _p$.o && _$setStyleProperty(_el$13, "height", _p$.o = _v$4);
|
|
313
411
|
return _p$;
|
|
314
412
|
}, {
|
|
315
413
|
e: undefined,
|
|
316
|
-
t: undefined
|
|
414
|
+
t: undefined,
|
|
415
|
+
a: undefined,
|
|
416
|
+
o: undefined
|
|
317
417
|
});
|
|
318
418
|
return _el$;
|
|
319
419
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["content/ChartExplorer.tsx"],"sourcesContent":["import { createEffect, createMemo, createSignal, createUniqueId, type JSX, Show } from \"solid-js\";\nimport { Button, IconButton } from \"../actions/Button\";\nimport { CopyButton } from \"../actions/CopyButton\";\nimport { SelectChip } from \"../inputs/SelectChip\";\nimport { useLocale } from \"../intl/locale\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { DescriptionList } from \"../surfaces/DescriptionList\";\nimport { Paper } from \"../surfaces/Paper\";\nimport { ChartSnapshotView } from \"./ChartSnapshotView\";\nimport type { ChartCursor } from \"./chart-cursor\";\nimport { type ChartExplorerData, type ChartExplorerRow, validateChartExplorerData } from \"./chart-explorer\";\nimport DataTable, { type DataTableSort } from \"./DataTable\";\n\nexport type ChartExplorerColumn<T> = {\n id: string;\n label: string;\n value: (row: T) => string;\n /** Optional table cell presentation; value remains the plain text used for copy/details. */\n render?: (row: T) => JSX.Element;\n /** Explicit comparable value. Omit to leave the column unsortable. */\n sortValue?: (row: T) => string | number | null;\n align?: \"left\" | \"center\" | \"right\";\n};\nexport type ChartExplorerProps<T extends ChartExplorerRow> = {\n cursor?: ChartCursor;\n title: string;\n description?: JSX.Element;\n data: ChartExplorerData<T>;\n columns: readonly ChartExplorerColumn<T>[];\n view?: \"chart\" | \"table\";\n defaultView?: \"chart\" | \"table\";\n onViewChange?: (view: \"chart\" | \"table\") => void;\n sort?: DataTableSort | null;\n defaultSort?: DataTableSort | null;\n onSortChange?: (sort: DataTableSort | null) => void;\n selectedKey?: string | null;\n onSelectedKeyChange?: (key: string | null) => void;\n /** false hides the complete local detail area for a shared selection panel. */\n renderDetails?: false | ((row: T) => JSX.Element);\n height?: string;\n class?: string;\n};\n\nconst tsvCell = (value: string) => (/[\\t\\r\\n\"]/.test(value) ? `\"${value.replaceAll('\"', '\"\"')}\"` : value);\n\nexport function ChartExplorer<T extends ChartExplorerRow>(props: ChartExplorerProps<T>) {\n const messages = useUiMessages();\n const locale = useLocale();\n const id = `k2b-chart-explorer-${createUniqueId()}`;\n const data = () => props.data;\n const [copyFailed, setCopyFailed] = createSignal(false);\n const [localSelection, setLocalSelection] = createSignal<string | null>(null);\n const [localView, setLocalView] = createSignal(props.defaultView ?? \"chart\");\n const [localSort, setLocalSort] = createSignal<DataTableSort | null>(props.defaultSort ?? null);\n const view = () => props.view ?? localView();\n const sort = () => (props.sort === undefined ? localSort() : props.sort);\n const setView = (value: \"chart\" | \"table\") => {\n if (props.view === undefined) setLocalView(value);\n props.onViewChange?.(value);\n };\n const setSort = (value: DataTableSort | null) => {\n if (props.sort === undefined) setLocalSort(value);\n props.onSortChange?.(value);\n };\n const rowsByKey = createMemo(() => new Map(data().rows.map((row) => [row.key, row])));\n const rawSelected = () => (props.selectedKey !== undefined ? props.selectedKey : localSelection());\n const selected = () => (rowsByKey().has(rawSelected() ?? \"\") ? rawSelected() : null);\n const selectedRow = () => rowsByKey().get(selected() ?? \"\");\n const select = (key: string | null) => {\n if (key !== null && !rowsByKey().has(key)) return;\n setLocalSelection(key);\n props.onSelectedKeyChange?.(key);\n };\n if (\n !props.columns.length ||\n props.columns.some((column) => !column.id) ||\n new Set(props.columns.map((column) => column.id)).size !== props.columns.length\n ) {\n throw new Error(\"Chart columns require unique nonempty IDs and at least one column\");\n }\n validateChartExplorerData(data());\n createEffect(() => validateChartExplorerData(data()));\n createEffect(() => {\n if (props.selectedKey === undefined && rawSelected() !== null && selected() === null) select(null);\n });\n const rows = createMemo(() => {\n const result = [...data().rows];\n const order = sort();\n const column = props.columns.find((c) => c.id === order?.key);\n const value = column?.sortValue;\n if (!order || !value) return result;\n const collator = new Intl.Collator(locale(), { numeric: true });\n return result.sort((a, b) => {\n const av = value(a),\n bv = value(b);\n if (av === null) return bv === null ? 0 : 1;\n if (bv === null) return -1;\n const comparison = typeof av === \"number\" && typeof bv === \"number\" ? av - bv : collator.compare(String(av), String(bv));\n return order.direction === \"asc\" ? comparison : -comparison;\n });\n });\n const copyText = () =>\n [\n props.columns.map((c) => tsvCell(c.label)).join(\"\\t\"),\n ...rows().map((row) => props.columns.map((c) => tsvCell(c.value(row))).join(\"\\t\")),\n ].join(\"\\n\");\n return (\n <section class={`k2b-chart-explorer ${props.class ?? \"\"}`} aria-labelledby={id}>\n <header class=\"k2b-chart-explorer__header\">\n <div>\n <h3 id={id}>{props.title}</h3>\n <Show when={props.description}>\n <div>{props.description}</div>\n </Show>\n </div>\n <div class=\"k2b-chart-explorer__actions\">\n <CopyButton\n text={copyText()}\n label={messages().chartCopyData}\n iconOnly\n size=\"sm\"\n variant=\"ghost\"\n disabled={!rows().length}\n onCopyError={() => setCopyFailed(true)}\n onCopied={() => setCopyFailed(false)}\n />\n <SelectChip<\"chart\" | \"table\">\n value={view()}\n onValueChange={setView}\n aria-label={messages().chartView}\n options={[\n { value: \"chart\", label: messages().chartDiagram },\n { value: \"table\", label: messages().chartData },\n ]}\n />\n </div>\n </header>\n <Show when={copyFailed()}>\n <span role=\"alert\">{messages().chartCopyFailed}</span>\n </Show>\n <div class=\"k2b-chart-explorer__viewport\" style={{ height: props.height ?? \"18rem\" }}>\n <Show when={data().rows.length > 0} fallback={<div class=\"k2b-chart__empty\">{messages().noData}</div>}>\n <Show\n when={view() === \"chart\"}\n fallback={\n <DataTable\n rows={rows()}\n columns={props.columns.map((column) => ({\n id: column.id,\n header: column.label,\n value: column.value,\n align: column.align,\n sortable: Boolean(column.sortValue),\n }))}\n ariaLabelledBy={id}\n getRowId={(row) => row.key}\n selectedRowId={selected()}\n sort={sort()}\n fillHeight\n surface=\"paper\"\n onRowClick={(row) => select(row.key)}\n renderCell={({ row, col, value, render }) => {\n const custom = props.columns.find((column) => column.id === col.id)?.render;\n const cell = () => (custom ? custom(row) : render(value));\n return col.id === props.columns[0]?.id ? (\n <Button variant=\"text\" size=\"sm\" onClick={() => select(row.key)}>\n {cell()}\n </Button>\n ) : (\n cell()\n );\n }}\n renderHeader={({ col, render }) =>\n col.sortable ? (\n <Button\n variant=\"text\"\n size=\"sm\"\n onClick={() =>\n setSort({\n key: col.id,\n direction: sort()?.key === col.id && sort()?.direction === \"asc\" ? \"desc\" : \"asc\",\n })\n }\n >\n {props.columns.find((column) => column.id === col.id)?.label}{\" \"}\n <span class=\"k2b-chart-explorer__sort-icon\" aria-hidden=\"true\">\n {sort()?.key === col.id ? (sort()?.direction === \"asc\" ? \"↑\" : \"↓\") : \"↕\"}\n </span>\n </Button>\n ) : (\n render()\n )\n }\n />\n }\n >\n <ChartSnapshotView\n cursor={props.cursor}\n snapshot={data().chart}\n selectedKey={selected()}\n onSelect={select}\n style={{ height: \"100%\" }}\n />\n </Show>\n </Show>\n </div>\n <Show when={props.renderDetails !== false}>\n <div class=\"k2b-chart-explorer__details\" aria-live=\"polite\">\n <Show when={selectedRow()}>\n {(row) => (\n <Paper class=\"k2b-chart-explorer__detail-paper\">\n <div class=\"k2b-chart-explorer__detail-header\">\n <span>{messages().chartSelectedDatum}</span>\n <IconButton variant=\"text\" size=\"sm\" label={messages().clearSelection} onClick={() => select(null)}>\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </IconButton>\n </div>\n {props.renderDetails ? (\n props.renderDetails(row())\n ) : (\n <DescriptionList\n columns={3}\n size=\"sm\"\n items={props.columns.map((column) => ({\n term: column.label,\n description: column.value(row()),\n }))}\n />\n )}\n </Paper>\n )}\n </Show>\n </div>\n </Show>\n </section>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["content/ChartExplorer.tsx"],"sourcesContent":["import { createEffect, createMemo, createSignal, createUniqueId, For, type JSX, Show } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport { Button, IconButton } from \"../actions/Button\";\nimport { CopyButton } from \"../actions/CopyButton\";\nimport { SelectChip } from \"../inputs/SelectChip\";\nimport { useLocale } from \"../intl/locale\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { DescriptionList } from \"../surfaces/DescriptionList\";\nimport { Paper } from \"../surfaces/Paper\";\nimport { ChartSnapshotView } from \"./ChartSnapshotView\";\nimport type { ChartCursor } from \"./chart-cursor\";\nimport { type ChartExplorerData, type ChartExplorerRow, validateChartExplorerData } from \"./chart-explorer\";\nimport { useChartMessages } from \"./chart-messages\";\nimport DataTable, { type DataTableSort } from \"./DataTable\";\n\nexport type ChartExplorerColumn<T> = {\n id: string;\n label: string;\n value: (row: T) => string;\n /** Optional table cell presentation; value remains the plain text used for copy/details. */\n render?: (row: T) => JSX.Element;\n /**\n * Explicit comparable value. Omit to leave the column unsortable.\n * Returning a number also exempts the cell from spreadsheet formula guarding on copy.\n */\n sortValue?: (row: T) => string | number | null;\n align?: \"left\" | \"center\" | \"right\";\n};\n/** One legend entry; `color` is the palette index the renderer gave the series (0 is `--stdlib-chart-c1`). */\nexport type ChartLegendEntry = {\n label: string;\n color: number;\n /** Line pattern of a line series; a solid series shows a filled swatch. */\n style?: \"solid\" | \"dashed\" | \"dotted\";\n /** A comparison series, drawn hollow like its marks. */\n reference?: boolean;\n};\nexport type ChartExplorerProps<T extends ChartExplorerRow> = {\n cursor?: ChartCursor;\n title: string;\n /** Level of the title heading. Defaults to 3; a chart inside a titled group of charts sits one level below it. */\n headingLevel?: 2 | 3 | 4 | 5 | 6;\n description?: JSX.Element;\n data: ChartExplorerData<T>;\n columns: readonly ChartExplorerColumn<T>[];\n view?: \"chart\" | \"table\";\n defaultView?: \"chart\" | \"table\";\n onViewChange?: (view: \"chart\" | \"table\") => void;\n /**\n * Several charts of the same rows. The switcher then lists each chart and the table; `chart` names the one `data`\n * holds, and `onChartChange` reports a pick, so the owner passes the matching data.\n */\n charts?: readonly { id: string; label: string }[];\n chart?: string;\n onChartChange?: (id: string) => void;\n /** Filter controls between the header and the viewport, such as ChartFilterControls. */\n controls?: JSX.Element;\n /** The table renders at most this many rows of the sorted order; sorting and Copy data use every row. */\n tableRows?: number;\n sort?: DataTableSort | null;\n defaultSort?: DataTableSort | null;\n onSortChange?: (sort: DataTableSort | null) => void;\n selectedKey?: string | null;\n onSelectedKeyChange?: (key: string | null) => void;\n /** false hides the complete local detail area for a shared selection panel. */\n renderDetails?: false | ((row: T) => JSX.Element);\n height?: string;\n /**\n * Series names below the chart, wrapping inside the fixed viewport height. Use it instead of the renderer's legend,\n * which draws in one row and runs out of narrow columns.\n */\n legend?: readonly ChartLegendEntry[];\n /** What the viewport shows without rows, for example while they load; defaults to \"No data\". */\n empty?: JSX.Element;\n class?: string;\n};\n\nconst tsvCell = (value: string, numeric = false) => {\n const safe = !numeric && /^[=+\\-@\\t\\r]/.test(value) ? `'${value}` : value;\n return /[\\t\\r\\n\"]/.test(safe) ? `\"${safe.replaceAll('\"', '\"\"')}\"` : safe;\n};\n\nexport function ChartExplorer<T extends ChartExplorerRow>(props: ChartExplorerProps<T>) {\n const messages = useUiMessages();\n const chartMessages = useChartMessages();\n const locale = useLocale();\n const id = `k2b-chart-explorer-${createUniqueId()}`;\n const data = () => props.data;\n const [copyFailed, setCopyFailed] = createSignal(false);\n const [localSelection, setLocalSelection] = createSignal<string | null>(null);\n const [localView, setLocalView] = createSignal(props.defaultView ?? \"chart\");\n const [localSort, setLocalSort] = createSignal<DataTableSort | null>(props.defaultSort ?? null);\n const view = () => props.view ?? localView();\n const sort = () => (props.sort === undefined ? localSort() : props.sort);\n const setView = (value: \"chart\" | \"table\") => {\n if (props.view === undefined) setLocalView(value);\n props.onViewChange?.(value);\n };\n const setSort = (value: DataTableSort | null) => {\n if (props.sort === undefined) setLocalSort(value);\n props.onSortChange?.(value);\n };\n const rowsByKey = createMemo(() => new Map(data().rows.map((row) => [row.key, row])));\n const rawSelected = () => (props.selectedKey !== undefined ? props.selectedKey : localSelection());\n const selected = () => (rowsByKey().has(rawSelected() ?? \"\") ? rawSelected() : null);\n const selectedRow = () => rowsByKey().get(selected() ?? \"\");\n const select = (key: string | null) => {\n if (key !== null && !rowsByKey().has(key)) return;\n setLocalSelection(key);\n props.onSelectedKeyChange?.(key);\n };\n if (\n !props.columns.length ||\n props.columns.some((column) => !column.id) ||\n new Set(props.columns.map((column) => column.id)).size !== props.columns.length\n ) {\n throw new Error(\"Chart columns require unique nonempty IDs and at least one column\");\n }\n validateChartExplorerData(data());\n createEffect(() => validateChartExplorerData(data()));\n createEffect(() => {\n if (props.selectedKey === undefined && rawSelected() !== null && selected() === null) select(null);\n });\n const rows = createMemo(() => {\n const result = [...data().rows];\n const order = sort();\n const column = props.columns.find((c) => c.id === order?.key);\n const value = column?.sortValue;\n if (!order || !value) return result;\n const collator = new Intl.Collator(locale(), { numeric: true });\n return result.sort((a, b) => {\n const av = value(a),\n bv = value(b);\n if (av === null) return bv === null ? 0 : 1;\n if (bv === null) return -1;\n const comparison = typeof av === \"number\" && typeof bv === \"number\" ? av - bv : collator.compare(String(av), String(bv));\n return order.direction === \"asc\" ? comparison : -comparison;\n });\n });\n const shownRows = () => (props.tableRows === undefined ? rows() : rows().slice(0, props.tableRows));\n // Chart ids are data; a prefix keeps one named \"table\" apart from the table entry.\n const switcherValue = () => (view() === \"table\" || !props.charts?.length ? view() : `chart:${props.chart ?? props.charts[0]?.id}`);\n const switcherOptions = () =>\n props.charts?.length\n ? [\n ...props.charts.map((chart) => ({ value: `chart:${chart.id}`, label: chart.label })),\n { value: \"table\", label: chartMessages().chartData },\n ]\n : [\n { value: \"chart\", label: chartMessages().chartDiagram },\n { value: \"table\", label: chartMessages().chartData },\n ];\n const pick = (value: string) => {\n if (value === \"table\" || value === \"chart\") return setView(value);\n setView(\"chart\");\n props.onChartChange?.(value.slice(\"chart:\".length));\n };\n const copyText = () =>\n [\n props.columns.map((c) => tsvCell(c.label)).join(\"\\t\"),\n ...rows().map((row) => props.columns.map((c) => tsvCell(c.value(row), typeof c.sortValue?.(row) === \"number\")).join(\"\\t\")),\n ].join(\"\\n\");\n return (\n <section class={`k2b-chart-explorer ${props.class ?? \"\"}`} aria-labelledby={id}>\n <header class=\"k2b-chart-explorer__header\">\n <div>\n <Dynamic component={`h${props.headingLevel ?? 3}`} id={id} class=\"k2b-chart-explorer__title\">\n {props.title}\n </Dynamic>\n <Show when={props.description}>\n <div>{props.description}</div>\n </Show>\n </div>\n <div class=\"k2b-chart-explorer__actions\">\n <CopyButton\n text={copyText()}\n label={chartMessages().chartCopyData}\n iconOnly\n size=\"sm\"\n variant=\"ghost\"\n disabled={!rows().length}\n onCopyError={() => setCopyFailed(true)}\n onCopied={() => setCopyFailed(false)}\n />\n <SelectChip<string>\n value={switcherValue()}\n onValueChange={pick}\n aria-label={chartMessages().chartView}\n options={switcherOptions()}\n />\n </div>\n </header>\n <Show when={copyFailed()}>\n <span role=\"alert\">{chartMessages().chartCopyFailed}</span>\n </Show>\n {props.controls}\n <div\n class=\"k2b-chart-explorer__viewport\"\n data-legend={view() === \"chart\" && props.legend?.length && data().rows.length > 0 ? \"true\" : undefined}\n data-capped={view() === \"table\" && shownRows().length < rows().length ? \"true\" : undefined}\n style={{ height: props.height ?? \"18rem\" }}\n >\n <Show when={data().rows.length > 0} fallback={<div class=\"k2b-chart__empty\">{props.empty ?? messages().noData}</div>}>\n <Show\n when={view() === \"chart\"}\n fallback={\n <>\n <DataTable\n rows={shownRows()}\n columns={props.columns.map((column) => ({\n id: column.id,\n header: column.label,\n value: column.value,\n align: column.align,\n sortable: Boolean(column.sortValue),\n }))}\n ariaLabelledBy={id}\n getRowId={(row) => row.key}\n selectedRowId={selected()}\n sort={sort()}\n fillHeight\n surface=\"paper\"\n onRowClick={(row) => select(row.key)}\n renderCell={({ row, col, value, render }) => {\n const custom = props.columns.find((column) => column.id === col.id)?.render;\n const cell = () => (custom ? custom(row) : render(value));\n return !custom && col.id === props.columns[0]?.id ? (\n <Button variant=\"text\" size=\"sm\" onClick={() => select(row.key)}>\n {cell()}\n </Button>\n ) : (\n cell()\n );\n }}\n renderHeader={({ col, render }) =>\n col.sortable ? (\n <Button\n variant=\"text\"\n size=\"sm\"\n onClick={() =>\n setSort({\n key: col.id,\n direction: sort()?.key === col.id && sort()?.direction === \"asc\" ? \"desc\" : \"asc\",\n })\n }\n >\n {props.columns.find((column) => column.id === col.id)?.label}\n {/* The data table's own marker: inactive columns keep a dimmed arrow so the header reads as sortable. */}\n <i\n class={`k2b-data-table__sort-icon ti ${sort()?.key === col.id && sort()?.direction === \"asc\" ? \"ti-arrow-up\" : \"ti-arrow-down\"}`}\n data-active={sort()?.key === col.id ? \"true\" : undefined}\n aria-hidden=\"true\"\n />\n </Button>\n ) : (\n render()\n )\n }\n />\n <Show when={shownRows().length < rows().length}>\n <p class=\"k2b-chart-explorer__note\">\n {chartMessages().chartRowsShown({\n shown: new Intl.NumberFormat(locale()).format(shownRows().length),\n total: new Intl.NumberFormat(locale()).format(rows().length),\n })}\n </p>\n </Show>\n </>\n }\n >\n <ChartSnapshotView\n cursor={props.cursor}\n snapshot={data().chart}\n selectedKey={selected()}\n onSelect={select}\n style={props.legend?.length ? undefined : { height: \"100%\" }}\n />\n <Show when={props.legend?.length}>\n <ul class=\"k2b-chart-legend\" aria-label={chartMessages().chartLegend}>\n <For each={props.legend}>\n {(entry) => (\n <li>\n <span\n class=\"k2b-chart-legend__swatch\"\n data-style={entry.style && entry.style !== \"solid\" ? entry.style : undefined}\n data-reference={entry.reference ? \"true\" : undefined}\n style={{ \"--k2b-chart-legend-color\": `var(--stdlib-chart-c${(Math.abs(Math.trunc(entry.color)) % 8) + 1})` }}\n aria-hidden=\"true\"\n />\n {entry.label}\n </li>\n )}\n </For>\n </ul>\n </Show>\n </Show>\n </Show>\n </div>\n <Show when={props.renderDetails !== false}>\n <div class=\"k2b-chart-explorer__details\" aria-live=\"polite\">\n <Show when={selectedRow()}>\n {(row) => (\n <Paper class=\"k2b-chart-explorer__detail-paper\">\n <div class=\"k2b-chart-explorer__detail-header\">\n <span>{chartMessages().chartSelectedDatum}</span>\n <IconButton variant=\"text\" size=\"sm\" label={messages().clearSelection} onClick={() => select(null)}>\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </IconButton>\n </div>\n {props.renderDetails ? (\n props.renderDetails(row())\n ) : (\n <DescriptionList\n columns={3}\n size=\"sm\"\n items={props.columns.map((column) => ({\n term: column.label,\n description: column.value(row()),\n }))}\n />\n )}\n </Paper>\n )}\n </Show>\n </div>\n </Show>\n </section>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,8 +19,10 @@ import { useUiMessages } from "../intl/messages";
|
|
|
19
19
|
import { Paper } from "../surfaces/Paper";
|
|
20
20
|
import { StatusBadge } from "../surfaces/StatusBadge";
|
|
21
21
|
import { ChartFilterControls } from "./ChartFilterControls";
|
|
22
|
+
import { useChartMessages } from "./chart-messages";
|
|
22
23
|
export function ChartExplorerControls(props) {
|
|
23
24
|
const messages = useUiMessages();
|
|
25
|
+
const chartMessages = useChartMessages();
|
|
24
26
|
const label = key => props.steps?.find(step => step.key === key)?.label ?? key ?? "";
|
|
25
27
|
return _$createComponent(Paper, {
|
|
26
28
|
"class": "k2b-chart-group-controls",
|
|
@@ -49,7 +51,7 @@ export function ChartExplorerControls(props) {
|
|
|
49
51
|
_el$11 = _el$8.nextSibling,
|
|
50
52
|
[_el$12, _co$3] = _$getNextMarker(_el$11.nextSibling);
|
|
51
53
|
_$insert(_el$6, () => messages().loading, _el$0, _co$);
|
|
52
|
-
_$insert(_el$6, () =>
|
|
54
|
+
_$insert(_el$6, () => chartMessages().chartPreviousData, _el$10, _co$2);
|
|
53
55
|
_$insert(_el$6, () => label(props.explorer.snapshot().request.step), _el$12, _co$3);
|
|
54
56
|
return _el$6;
|
|
55
57
|
})()];
|
|
@@ -69,10 +71,10 @@ export function ChartExplorerControls(props) {
|
|
|
69
71
|
variant: "secondary",
|
|
70
72
|
onClick: () => void props.explorer.clearReference(),
|
|
71
73
|
get ["aria-label"]() {
|
|
72
|
-
return `${
|
|
74
|
+
return `${chartMessages().chartRemoveComparison}: ${label(reference())}`;
|
|
73
75
|
},
|
|
74
76
|
get children() {
|
|
75
|
-
return [_$memo(() =>
|
|
77
|
+
return [_$memo(() => chartMessages().chartReference), ": ", _$memo(() => label(reference())), " ", _$getNextElement(_tmpl$4)];
|
|
76
78
|
}
|
|
77
79
|
})
|
|
78
80
|
}), _$createComponent(Button, {
|
|
@@ -83,14 +85,14 @@ export function ChartExplorerControls(props) {
|
|
|
83
85
|
},
|
|
84
86
|
onClick: () => void props.explorer.pinReference(),
|
|
85
87
|
get children() {
|
|
86
|
-
return
|
|
88
|
+
return chartMessages().chartPinReference;
|
|
87
89
|
}
|
|
88
90
|
})];
|
|
89
91
|
}
|
|
90
92
|
}), _el$14, _co$4);
|
|
91
93
|
_$effect(_p$ => {
|
|
92
94
|
var _v$ = props.explorer.loading() || undefined,
|
|
93
|
-
_v$2 = props.explorer.loading() ? `${messages().loading} · ${
|
|
95
|
+
_v$2 = props.explorer.loading() ? `${messages().loading} · ${chartMessages().chartPreviousData}: ${label(props.explorer.snapshot().request.step)}` : undefined;
|
|
94
96
|
_v$ !== _p$.e && _$setAttribute(_el$4, "data-loading", _p$.e = _v$);
|
|
95
97
|
_v$2 !== _p$.t && _$setAttribute(_el$4, "title", _p$.t = _v$2);
|
|
96
98
|
return _p$;
|
|
@@ -134,14 +136,14 @@ export function ChartExplorerControls(props) {
|
|
|
134
136
|
tone: "neutral",
|
|
135
137
|
icon: null,
|
|
136
138
|
get label() {
|
|
137
|
-
return [_$getNextElement(_tmpl$6), " ", _$memo(() =>
|
|
139
|
+
return [_$getNextElement(_tmpl$6), " ", _$memo(() => chartMessages().chartCurrent), ": ", _$memo(() => label(props.explorer.snapshot().request.step))];
|
|
138
140
|
}
|
|
139
141
|
}), _el$18, _co$5);
|
|
140
142
|
_$insert(_el$16, _$createComponent(StatusBadge, {
|
|
141
143
|
tone: "neutral",
|
|
142
144
|
icon: null,
|
|
143
145
|
get label() {
|
|
144
|
-
return [_$getNextElement(_tmpl$7), " ", _$memo(() =>
|
|
146
|
+
return [_$getNextElement(_tmpl$7), " ", _$memo(() => chartMessages().chartReference), ": ", _$memo(() => label(reference()))];
|
|
145
147
|
}
|
|
146
148
|
}), _el$20, _co$6);
|
|
147
149
|
return _el$16;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["content/ChartExplorerControls.tsx"],"sourcesContent":["import { Show } from \"solid-js\";\nimport { Button } from \"../actions/Button\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { Paper } from \"../surfaces/Paper\";\nimport { StatusBadge } from \"../surfaces/StatusBadge\";\nimport { ChartFilterControls, type ChartFilterControlsProps } from \"./ChartFilterControls\";\nimport type { ChartExplorerCharts, ChartExplorerController } from \"./chart-explorer\";\n\nexport type ChartExplorerControlsProps<C extends ChartExplorerCharts> = {\n explorer: ChartExplorerController<C>;\n title: string;\n steps?: ChartFilterControlsProps[\"steps\"];\n series?: ChartFilterControlsProps[\"series\"];\n dimensionLabel?: string;\n};\n\nexport function ChartExplorerControls<C extends ChartExplorerCharts>(props: ChartExplorerControlsProps<C>) {\n const messages = useUiMessages();\n const label = (key: string | undefined) => props.steps?.find((step) => step.key === key)?.label ?? key ?? \"\";\n return (\n <Paper class=\"k2b-chart-group-controls\">\n <div class=\"k2b-chart-explorer__header\">\n <strong>{props.title}</strong>\n <div class=\"k2b-chart-explorer__actions\">\n <span\n class=\"k2b-chart-group-controls__loading\"\n data-loading={props.explorer.loading() || undefined}\n role=\"status\"\n title={\n props.explorer.loading()\n ? `${messages().loading} · ${
|
|
1
|
+
{"version":3,"names":[],"sources":["content/ChartExplorerControls.tsx"],"sourcesContent":["import { Show } from \"solid-js\";\nimport { Button } from \"../actions/Button\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { Paper } from \"../surfaces/Paper\";\nimport { StatusBadge } from \"../surfaces/StatusBadge\";\nimport { ChartFilterControls, type ChartFilterControlsProps } from \"./ChartFilterControls\";\nimport type { ChartExplorerCharts, ChartExplorerController } from \"./chart-explorer\";\nimport { useChartMessages } from \"./chart-messages\";\n\nexport type ChartExplorerControlsProps<C extends ChartExplorerCharts> = {\n explorer: ChartExplorerController<C>;\n title: string;\n steps?: ChartFilterControlsProps[\"steps\"];\n series?: ChartFilterControlsProps[\"series\"];\n dimensionLabel?: string;\n};\n\nexport function ChartExplorerControls<C extends ChartExplorerCharts>(props: ChartExplorerControlsProps<C>) {\n const messages = useUiMessages();\n const chartMessages = useChartMessages();\n const label = (key: string | undefined) => props.steps?.find((step) => step.key === key)?.label ?? key ?? \"\";\n return (\n <Paper class=\"k2b-chart-group-controls\">\n <div class=\"k2b-chart-explorer__header\">\n <strong>{props.title}</strong>\n <div class=\"k2b-chart-explorer__actions\">\n <span\n class=\"k2b-chart-group-controls__loading\"\n data-loading={props.explorer.loading() || undefined}\n role=\"status\"\n title={\n props.explorer.loading()\n ? `${messages().loading} · ${chartMessages().chartPreviousData}: ${label(props.explorer.snapshot().request.step)}`\n : undefined\n }\n >\n <Show when={props.explorer.loading()}>\n <i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" />\n <span class=\"k2b-sr-only\">\n {messages().loading} · {chartMessages().chartPreviousData}: {label(props.explorer.snapshot().request.step)}\n </span>\n </Show>\n </span>\n <Show when={props.steps?.length && props.explorer.snapshot().request.step !== undefined}>\n <Show when={props.explorer.desired().referenceStep}>\n {(reference) => (\n <Button\n size=\"sm\"\n variant=\"secondary\"\n onClick={() => void props.explorer.clearReference()}\n aria-label={`${chartMessages().chartRemoveComparison}: ${label(reference())}`}\n >\n {chartMessages().chartReference}: {label(reference())} <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </Button>\n )}\n </Show>\n <Button\n size=\"sm\"\n variant=\"secondary\"\n disabled={\n props.explorer.loading() ||\n props.explorer.error() !== null ||\n props.explorer.desired().referenceStep === props.explorer.snapshot().request.step\n }\n onClick={() => void props.explorer.pinReference()}\n >\n {chartMessages().chartPinReference}\n </Button>\n </Show>\n </div>\n </div>\n <ChartFilterControls\n request={props.explorer.desired()}\n displayedRequest={props.explorer.snapshot().request}\n steps={props.steps}\n series={props.series}\n dimensionLabel={props.dimensionLabel}\n failed={props.explorer.error() !== null}\n onRequest={(request) => void props.explorer.setRequest(request)}\n onRetry={() => void props.explorer.retry()}\n />\n <Show when={props.explorer.snapshot().request.referenceStep}>\n {(reference) => (\n <div class=\"k2b-chart-explorer__actions\" aria-live=\"polite\">\n <StatusBadge\n tone=\"neutral\"\n icon={null}\n label={\n <>\n <span aria-hidden=\"true\">●</span> {chartMessages().chartCurrent}: {label(props.explorer.snapshot().request.step)}\n </>\n }\n />\n <StatusBadge\n tone=\"neutral\"\n icon={null}\n label={\n <>\n <span aria-hidden=\"true\">○</span> {chartMessages().chartReference}: {label(reference())}\n </>\n }\n />\n </div>\n )}\n </Show>\n </Paper>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA,SAAS,IAAI,QAAQ,UAAU;AAC/B,SAAS,MAAM,QAAQ,mBAAmB;AAC1C,SAAS,aAAa,QAAQ,kBAAkB;AAChD,SAAS,KAAK,QAAQ,mBAAmB;AACzC,SAAS,WAAW,QAAQ,yBAAyB;AACrD,SAAS,mBAAmB,QAAuC,uBAAuB;AAE1F,SAAS,gBAAgB,QAAQ,kBAAkB;AAUnD,OAAO,SAAS,qBAAqB,CAAgC,KAAoC,EAAE;EACzG,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC;EAChC,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC;EACxC,MAAM,KAAK,GAAI,GAAuB,IAAK,KAAK,CAAC,KAAK,EAAE,IAAI,CAAE,IAAI,IAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,GAAG,IAAI,EAAE;EAC5G,yBACG,KAAK;IAAA;IAAA;MAAA;QAAA;UAAA;UAAA;UAAA;UAAA;UAAA;QAAA,sBAEO,KAAK,CAAC,KAAK;QAAA,kCAYf,IAAI;UAAA,IAAC,IAAI;YAAA,OAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;UAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA;gBAAA;gBAAA;gBAAA;gBAAA;gBAAA;gBAAA;cAAA,sBAG/B,QAAQ,CAAC,CAAC,CAAC,OAAO;cAAA,sBAAK,aAAa,CAAC,CAAC,CAAC,iBAAiB;cAAA,sBAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;cAAA;YAAA;UAAA;QAAA;QAAA,kCAI/G,IAAI;UAAA,IAAC,IAAI;YAAA,OAAE,oBAAK,CAAC,KAAK,EAAE,MAAM,OAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;UAAA;UAAA;YAAA,0BACpF,IAAI;cAAA,IAAC,IAAI;gBAAA,OAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa;cAAA;cAAA,UAC9C,SAAS,sBACR,MAAM;gBACL,IAAI;gBACJ,OAAO;gBACP,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAAA;kBAAA,OACvC,GAAG,aAAa,CAAC,CAAC,CAAC,qBAAqB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBAAA;gBAAA;kBAAA,qBAE5E,aAAa,CAAC,CAAC,CAAC,cAAc,sBAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBAAA;cAAA;YAExD,sBAEF,MAAM;cACL,IAAI;cACJ,OAAO;cAAA,IACP,QAAQ;gBAAA,OACN,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IACxB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,IAC/B,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,KAAK,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;cAAA;cAEnF,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;cAAA;gBAAA,OAEhD,aAAa,CAAC,CAAC,CAAC,iBAAiB;cAAA;YAAA;UAAA;QAAA;QAAA;UAAA,UAtCtB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS;YAAA,OAGjD,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GACpB,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,MAAM,aAAa,CAAC,CAAC,CAAC,iBAAiB,KAAK,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAChH,SAAS;UAAA;UAAA;UAAA;QAAA;UAAA;UAAA;QAAA;QAAA;MAAA,wBAsCpB,mBAAmB;QAAA,IAClB,OAAO;UAAA,OAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAAA;QAAA,IACjC,gBAAgB;UAAA,OAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;QAAA;QAAA,IACnD,KAAK;UAAA,OAAE,KAAK,CAAC,KAAK;QAAA;QAAA,IAClB,MAAM;UAAA,OAAE,KAAK,CAAC,MAAM;QAAA;QAAA,IACpB,cAAc;UAAA,OAAE,KAAK,CAAC,cAAc;QAAA;QAAA,IACpC,MAAM;UAAA,OAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI;QAAA;QACvC,SAAS,EAAG,OAAO,IAAK,KAAK,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;QAC/D,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;MAAC,sBAE3C,IAAI;QAAA,IAAC,IAAI;UAAA,OAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa;QAAA;QAAA,UACvD,SAAS;UAAA;YAAA;YAAA;YAAA;YAAA;UAAA,mCAEN,WAAW;YACV,IAAI;YACJ,IAAI,EAAE,IAAI;YAAA,IACV,KAAK;cAAA,qDAEkC,aAAa,CAAC,CAAC,CAAC,YAAY,sBAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;YAAA;UAAA;UAAA,mCAIrH,WAAW;YACV,IAAI;YACJ,IAAI,EAAE,IAAI;YAAA,IACV,KAAK;cAAA,qDAEkC,aAAa,CAAC,CAAC,CAAC,cAAc,sBAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAAA;UAAA;UAAA;QAAA;MAKhG;IAAA;EAAA;AAIT","ignoreList":[]}
|