@k2b/ui 0.5.0 → 0.6.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/Button.js +11 -2
- package/dist/browser/actions/Button.js.map +1 -1
- package/dist/browser/actions/ContextMenu.js.map +1 -1
- package/dist/browser/actions/CopyButton.js.map +1 -1
- package/dist/browser/actions/Disclosure.js.map +1 -1
- package/dist/browser/actions/Dropdown.js.map +1 -1
- package/dist/browser/actions/FilterChip.js.map +1 -1
- package/dist/browser/actions/RemoveButton.js.map +1 -1
- package/dist/browser/actions/SegmentedControl.js.map +1 -1
- package/dist/browser/actions/SplitButton.js.map +1 -1
- package/dist/browser/actions/SpotlightSearch.js.map +1 -1
- package/dist/browser/actions/Tabs.js.map +1 -1
- package/dist/browser/actions/Toolbar.js.map +1 -1
- package/dist/browser/actions/index.js.map +1 -1
- package/dist/browser/chat/ChatComposer.js.map +1 -1
- package/dist/browser/chat/ChatContextPopup.js.map +1 -1
- package/dist/browser/chat/ChatPrimitives.js.map +1 -1
- package/dist/browser/chat/ChatRoot.js.map +1 -1
- package/dist/browser/chat/ChatTasks.js +1 -1
- package/dist/browser/chat/ChatTasks.js.map +1 -1
- package/dist/browser/chat/ChatTimeline.js.map +1 -1
- package/dist/browser/chat/chat-behavior.js.map +1 -1
- package/dist/browser/chat/composer-document.js.map +1 -1
- package/dist/browser/chat/index.js.map +1 -1
- package/dist/browser/content/Calendar.js.map +1 -1
- package/dist/browser/content/Chart.js.map +1 -1
- package/dist/browser/content/ChartExplorer.js.map +1 -1
- package/dist/browser/content/ChartExplorerControls.js.map +1 -1
- package/dist/browser/content/ChartFilterControls.js +1 -1
- package/dist/browser/content/ChartFilterControls.js.map +1 -1
- package/dist/browser/content/ChartSnapshotView.js.map +1 -1
- package/dist/browser/content/CodeDisplay.js.map +1 -1
- package/dist/browser/content/DataTable.js.map +1 -1
- package/dist/browser/content/Docs.js.map +1 -1
- package/dist/browser/content/FileBrowser.js.map +1 -1
- package/dist/browser/content/FileGrid.js.map +1 -1
- package/dist/browser/content/FileTree.js.map +1 -1
- package/dist/browser/content/FileView.js.map +1 -1
- package/dist/browser/content/Lightbox.js.map +1 -1
- package/dist/browser/content/LogEntriesTable.js.map +1 -1
- package/dist/browser/content/MarkdownView.js.map +1 -1
- package/dist/browser/content/Pagination.js.map +1 -1
- package/dist/browser/content/PdfPreview.js.map +1 -1
- package/dist/browser/content/RangePicker.js.map +1 -1
- package/dist/browser/content/StructuredDataPreview.js.map +1 -1
- package/dist/browser/content/ZoomPanViewport.js +396 -0
- package/dist/browser/content/ZoomPanViewport.js.map +1 -0
- package/dist/browser/content/calendar-event-layout.js.map +1 -1
- package/dist/browser/content/calendar-pointer.js.map +1 -1
- package/dist/browser/content/chart-cursor.js.map +1 -1
- package/dist/browser/content/chart-explorer.js.map +1 -1
- package/dist/browser/content/chart-inspection.js.map +1 -1
- package/dist/browser/content/chart-line-gaps.js.map +1 -1
- package/dist/browser/content/chart-map-viewport.js.map +1 -1
- package/dist/browser/content/chart-snapshot.js.map +1 -1
- package/dist/browser/content/chart-state-timeline.js.map +1 -1
- package/dist/browser/content/chart-svg.js.map +1 -1
- package/dist/browser/content/code-highlight.js.map +1 -1
- package/dist/browser/content/collection-selection.js.map +1 -1
- package/dist/browser/content/delimited-preferences.js.map +1 -1
- package/dist/browser/content/file-tree.js.map +1 -1
- package/dist/browser/content/file-view-preview.js.map +1 -1
- package/dist/browser/content/index.js +1 -0
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/content/zoom-pan.js +54 -0
- package/dist/browser/content/zoom-pan.js.map +1 -0
- package/dist/browser/feedback/InlineGuidance.js.map +1 -1
- package/dist/browser/feedback/Tooltip.js.map +1 -1
- package/dist/browser/feedback/dialog-core.js.map +1 -1
- package/dist/browser/feedback/index.js.map +1 -1
- package/dist/browser/feedback/prompts.js.map +1 -1
- package/dist/browser/feedback/toast.js.map +1 -1
- package/dist/browser/feedback/tooltip-position.js.map +1 -1
- package/dist/browser/inputs/AutocompleteEditor.js.map +1 -1
- package/dist/browser/inputs/AutocompleteSelect.js.map +1 -1
- package/dist/browser/inputs/Checkbox.js.map +1 -1
- package/dist/browser/inputs/CheckboxCard.js.map +1 -1
- package/dist/browser/inputs/ChoiceGroups.js.map +1 -1
- package/dist/browser/inputs/ChoiceInputs.js.map +1 -1
- package/dist/browser/inputs/Combobox.js.map +1 -1
- package/dist/browser/inputs/DatePicker.js.map +1 -1
- package/dist/browser/inputs/FileInputs.js.map +1 -1
- package/dist/browser/inputs/MultiSelectInput.js.map +1 -1
- package/dist/browser/inputs/NumberInput.js.map +1 -1
- package/dist/browser/inputs/Select.js.map +1 -1
- package/dist/browser/inputs/SelectChip.js.map +1 -1
- package/dist/browser/inputs/SpecialInputs.js.map +1 -1
- package/dist/browser/inputs/Switch.js.map +1 -1
- package/dist/browser/inputs/TagEditor.js.map +1 -1
- package/dist/browser/inputs/TagsInput.js.map +1 -1
- package/dist/browser/inputs/TemplateEditor.js.map +1 -1
- package/dist/browser/inputs/TextInput.js +2 -1
- package/dist/browser/inputs/TextInput.js.map +1 -1
- package/dist/browser/inputs/choice.js.map +1 -1
- package/dist/browser/inputs/completion/behaviors.js.map +1 -1
- package/dist/browser/inputs/completion/engine.js.map +1 -1
- package/dist/browser/inputs/completion/index.js.map +1 -1
- package/dist/browser/inputs/completion/overlay.js.map +1 -1
- package/dist/browser/inputs/date-picker.js.map +1 -1
- package/dist/browser/inputs/editor-dom.js.map +1 -1
- package/dist/browser/inputs/field-contract.js.map +1 -1
- package/dist/browser/inputs/icon-options.js.map +1 -1
- package/dist/browser/inputs/image-crop.js.map +1 -1
- package/dist/browser/inputs/index.js.map +1 -1
- package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
- package/dist/browser/inputs/markdown/Toolbar.js.map +1 -1
- package/dist/browser/inputs/markdown/actions.js.map +1 -1
- package/dist/browser/inputs/markdown/active-formats.js.map +1 -1
- package/dist/browser/inputs/markdown/behaviors.js.map +1 -1
- package/dist/browser/inputs/markdown/code-zone.js.map +1 -1
- package/dist/browser/internal/color.js.map +1 -1
- package/dist/browser/internal/field.js.map +1 -1
- package/dist/browser/internal/portal.js.map +1 -1
- package/dist/browser/intl/Format.js.map +1 -1
- package/dist/browser/intl/index.js.map +1 -1
- package/dist/browser/intl/locale.js.map +1 -1
- package/dist/browser/intl/messages.js +6 -0
- package/dist/browser/intl/messages.js.map +1 -1
- package/dist/browser/layout/AppOverview.js.map +1 -1
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/BottomSheet.js.map +1 -1
- package/dist/browser/layout/DataPanel.js.map +1 -1
- package/dist/browser/layout/DetailPanel.js.map +1 -1
- package/dist/browser/layout/Discussion.js.map +1 -1
- package/dist/browser/layout/FloatingWindow.js.map +1 -1
- package/dist/browser/layout/Navigation.js.map +1 -1
- package/dist/browser/layout/PanelDialog.js.map +1 -1
- package/dist/browser/layout/PanelHeader.js.map +1 -1
- package/dist/browser/layout/Panes.js.map +1 -1
- package/dist/browser/layout/PullToRefresh.js +8 -7
- package/dist/browser/layout/PullToRefresh.js.map +1 -1
- package/dist/browser/layout/ScrollArea.js.map +1 -1
- package/dist/browser/layout/Settings.js.map +1 -1
- package/dist/browser/layout/SettingsCollection.js.map +1 -1
- package/dist/browser/layout/SettingsModal.js.map +1 -1
- package/dist/browser/layout/SidebarItemPreview.js.map +1 -1
- package/dist/browser/layout/app-workspace-controller.js.map +1 -1
- package/dist/browser/layout/app-workspace-state.js.map +1 -1
- package/dist/browser/layout/floating-window-geometry.js.map +1 -1
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/browser/layout/navigation-model.js.map +1 -1
- package/dist/browser/layout/panes-layout.js.map +1 -1
- package/dist/browser/layout/scroll-fade.js.map +1 -1
- package/dist/browser/layout/stable-id.js.map +1 -1
- package/dist/browser/surfaces/Avatar.js.map +1 -1
- package/dist/browser/surfaces/DescriptionList.js.map +1 -1
- package/dist/browser/surfaces/LinkCard.js.map +1 -1
- package/dist/browser/surfaces/NotFoundState.js.map +1 -1
- package/dist/browser/surfaces/NoticeCard.js.map +1 -1
- package/dist/browser/surfaces/Paper.js.map +1 -1
- package/dist/browser/surfaces/Placeholder.js.map +1 -1
- package/dist/browser/surfaces/ProgressBar.js.map +1 -1
- package/dist/browser/surfaces/StatCell.js.map +1 -1
- package/dist/browser/surfaces/StatGrid.js.map +1 -1
- package/dist/browser/surfaces/StatusBadge.js.map +1 -1
- package/dist/browser/surfaces/Tag.js.map +1 -1
- package/dist/browser/surfaces/index.js.map +1 -1
- package/dist/browser/widgets/Widget.js.map +1 -1
- package/dist/browser/widgets/WidgetHero.js.map +1 -1
- package/dist/browser/widgets/WidgetList.js.map +1 -1
- package/dist/browser/widgets/WidgetPills.js.map +1 -1
- package/dist/browser/widgets/WidgetStat.js.map +1 -1
- package/dist/browser/widgets/WidgetStatus.js.map +1 -1
- package/dist/ssr/actions/Button.js +16 -6
- package/dist/ssr/actions/Button.js.map +1 -1
- package/dist/ssr/actions/ContextMenu.js.map +1 -1
- package/dist/ssr/actions/CopyButton.js +2 -1
- package/dist/ssr/actions/CopyButton.js.map +1 -1
- package/dist/ssr/actions/Disclosure.js.map +1 -1
- package/dist/ssr/actions/Dropdown.js +7 -6
- package/dist/ssr/actions/Dropdown.js.map +1 -1
- package/dist/ssr/actions/FilterChip.js +5 -4
- package/dist/ssr/actions/FilterChip.js.map +1 -1
- package/dist/ssr/actions/RemoveButton.js +1 -0
- package/dist/ssr/actions/RemoveButton.js.map +1 -1
- package/dist/ssr/actions/SegmentedControl.js.map +1 -1
- package/dist/ssr/actions/SplitButton.js +1 -0
- package/dist/ssr/actions/SplitButton.js.map +1 -1
- package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
- package/dist/ssr/actions/Tabs.js.map +1 -1
- package/dist/ssr/actions/Toolbar.js.map +1 -1
- package/dist/ssr/actions/index.js.map +1 -1
- package/dist/ssr/chat/ChatComposer.js +6 -5
- package/dist/ssr/chat/ChatComposer.js.map +1 -1
- package/dist/ssr/chat/ChatContextPopup.js.map +1 -1
- package/dist/ssr/chat/ChatPrimitives.js +6 -5
- package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
- package/dist/ssr/chat/ChatRoot.js.map +1 -1
- package/dist/ssr/chat/ChatTasks.js +1 -1
- package/dist/ssr/chat/ChatTasks.js.map +1 -1
- package/dist/ssr/chat/ChatTimeline.js +5 -4
- package/dist/ssr/chat/ChatTimeline.js.map +1 -1
- package/dist/ssr/chat/chat-behavior.js.map +1 -1
- package/dist/ssr/chat/composer-document.js.map +1 -1
- package/dist/ssr/chat/index.js.map +1 -1
- package/dist/ssr/content/Calendar.js +2 -1
- package/dist/ssr/content/Calendar.js.map +1 -1
- package/dist/ssr/content/Chart.js.map +1 -1
- package/dist/ssr/content/ChartExplorer.js.map +1 -1
- package/dist/ssr/content/ChartExplorerControls.js +5 -4
- package/dist/ssr/content/ChartExplorerControls.js.map +1 -1
- package/dist/ssr/content/ChartFilterControls.js +3 -2
- package/dist/ssr/content/ChartFilterControls.js.map +1 -1
- package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
- package/dist/ssr/content/CodeDisplay.js.map +1 -1
- package/dist/ssr/content/DataTable.js +1 -0
- package/dist/ssr/content/DataTable.js.map +1 -1
- package/dist/ssr/content/Docs.js +1 -0
- package/dist/ssr/content/Docs.js.map +1 -1
- package/dist/ssr/content/FileBrowser.js +2 -1
- package/dist/ssr/content/FileBrowser.js.map +1 -1
- package/dist/ssr/content/FileGrid.js.map +1 -1
- package/dist/ssr/content/FileTree.js +2 -1
- package/dist/ssr/content/FileTree.js.map +1 -1
- package/dist/ssr/content/FileView.js +5 -4
- package/dist/ssr/content/FileView.js.map +1 -1
- package/dist/ssr/content/Lightbox.js +2 -1
- package/dist/ssr/content/Lightbox.js.map +1 -1
- package/dist/ssr/content/LogEntriesTable.js.map +1 -1
- package/dist/ssr/content/MarkdownView.js.map +1 -1
- package/dist/ssr/content/Pagination.js +2 -1
- package/dist/ssr/content/Pagination.js.map +1 -1
- package/dist/ssr/content/PdfPreview.js.map +1 -1
- package/dist/ssr/content/RangePicker.js.map +1 -1
- package/dist/ssr/content/StructuredDataPreview.js.map +1 -1
- package/dist/ssr/content/ZoomPanViewport.js +300 -0
- package/dist/ssr/content/ZoomPanViewport.js.map +1 -0
- package/dist/ssr/content/calendar-event-layout.js.map +1 -1
- package/dist/ssr/content/calendar-pointer.js.map +1 -1
- package/dist/ssr/content/chart-cursor.js.map +1 -1
- package/dist/ssr/content/chart-explorer.js.map +1 -1
- package/dist/ssr/content/chart-inspection.js.map +1 -1
- package/dist/ssr/content/chart-line-gaps.js.map +1 -1
- package/dist/ssr/content/chart-map-viewport.js.map +1 -1
- package/dist/ssr/content/chart-snapshot.js.map +1 -1
- package/dist/ssr/content/chart-state-timeline.js.map +1 -1
- package/dist/ssr/content/chart-svg.js.map +1 -1
- package/dist/ssr/content/code-highlight.js.map +1 -1
- package/dist/ssr/content/collection-selection.js.map +1 -1
- package/dist/ssr/content/delimited-preferences.js.map +1 -1
- package/dist/ssr/content/file-tree.js.map +1 -1
- package/dist/ssr/content/file-view-preview.js.map +1 -1
- package/dist/ssr/content/index.js +1 -0
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/content/zoom-pan.js +54 -0
- package/dist/ssr/content/zoom-pan.js.map +1 -0
- package/dist/ssr/feedback/InlineGuidance.js.map +1 -1
- package/dist/ssr/feedback/Tooltip.js.map +1 -1
- package/dist/ssr/feedback/dialog-core.js.map +1 -1
- package/dist/ssr/feedback/index.js.map +1 -1
- package/dist/ssr/feedback/prompts.js +3 -2
- package/dist/ssr/feedback/prompts.js.map +1 -1
- package/dist/ssr/feedback/toast.js.map +1 -1
- package/dist/ssr/feedback/tooltip-position.js.map +1 -1
- package/dist/ssr/inputs/AutocompleteEditor.js +3 -2
- package/dist/ssr/inputs/AutocompleteEditor.js.map +1 -1
- package/dist/ssr/inputs/AutocompleteSelect.js +5 -4
- package/dist/ssr/inputs/AutocompleteSelect.js.map +1 -1
- package/dist/ssr/inputs/Checkbox.js +1 -0
- package/dist/ssr/inputs/Checkbox.js.map +1 -1
- package/dist/ssr/inputs/CheckboxCard.js.map +1 -1
- package/dist/ssr/inputs/ChoiceGroups.js.map +1 -1
- package/dist/ssr/inputs/ChoiceInputs.js +1 -0
- package/dist/ssr/inputs/ChoiceInputs.js.map +1 -1
- package/dist/ssr/inputs/Combobox.js +2 -1
- package/dist/ssr/inputs/Combobox.js.map +1 -1
- package/dist/ssr/inputs/DatePicker.js +4 -3
- package/dist/ssr/inputs/DatePicker.js.map +1 -1
- package/dist/ssr/inputs/FileInputs.js +2 -1
- package/dist/ssr/inputs/FileInputs.js.map +1 -1
- package/dist/ssr/inputs/MultiSelectInput.js +4 -3
- package/dist/ssr/inputs/MultiSelectInput.js.map +1 -1
- package/dist/ssr/inputs/NumberInput.js +2 -1
- package/dist/ssr/inputs/NumberInput.js.map +1 -1
- package/dist/ssr/inputs/Select.js +4 -3
- package/dist/ssr/inputs/Select.js.map +1 -1
- package/dist/ssr/inputs/SelectChip.js +3 -2
- package/dist/ssr/inputs/SelectChip.js.map +1 -1
- package/dist/ssr/inputs/SpecialInputs.js +1 -0
- package/dist/ssr/inputs/SpecialInputs.js.map +1 -1
- package/dist/ssr/inputs/Switch.js.map +1 -1
- package/dist/ssr/inputs/TagEditor.js +3 -2
- package/dist/ssr/inputs/TagEditor.js.map +1 -1
- package/dist/ssr/inputs/TagsInput.js.map +1 -1
- package/dist/ssr/inputs/TemplateEditor.js +1 -0
- package/dist/ssr/inputs/TemplateEditor.js.map +1 -1
- package/dist/ssr/inputs/TextInput.js +6 -4
- package/dist/ssr/inputs/TextInput.js.map +1 -1
- package/dist/ssr/inputs/choice.js.map +1 -1
- package/dist/ssr/inputs/completion/behaviors.js.map +1 -1
- package/dist/ssr/inputs/completion/engine.js.map +1 -1
- package/dist/ssr/inputs/completion/index.js.map +1 -1
- package/dist/ssr/inputs/completion/overlay.js.map +1 -1
- package/dist/ssr/inputs/date-picker.js.map +1 -1
- package/dist/ssr/inputs/editor-dom.js.map +1 -1
- package/dist/ssr/inputs/field-contract.js.map +1 -1
- package/dist/ssr/inputs/icon-options.js.map +1 -1
- package/dist/ssr/inputs/image-crop.js.map +1 -1
- package/dist/ssr/inputs/index.js.map +1 -1
- package/dist/ssr/inputs/markdown/MarkdownEditor.js +3 -2
- package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
- package/dist/ssr/inputs/markdown/Toolbar.js.map +1 -1
- package/dist/ssr/inputs/markdown/actions.js.map +1 -1
- package/dist/ssr/inputs/markdown/active-formats.js.map +1 -1
- package/dist/ssr/inputs/markdown/behaviors.js.map +1 -1
- package/dist/ssr/inputs/markdown/code-zone.js.map +1 -1
- package/dist/ssr/internal/color.js.map +1 -1
- package/dist/ssr/internal/field.js.map +1 -1
- package/dist/ssr/internal/portal.js.map +1 -1
- package/dist/ssr/intl/Format.js.map +1 -1
- package/dist/ssr/intl/index.js.map +1 -1
- package/dist/ssr/intl/locale.js.map +1 -1
- package/dist/ssr/intl/messages.js +6 -0
- package/dist/ssr/intl/messages.js.map +1 -1
- package/dist/ssr/layout/AppOverview.js +2 -1
- package/dist/ssr/layout/AppOverview.js.map +1 -1
- package/dist/ssr/layout/AppWorkspace.js +7 -6
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/layout/BottomSheet.js.map +1 -1
- package/dist/ssr/layout/DataPanel.js +1 -0
- package/dist/ssr/layout/DataPanel.js.map +1 -1
- package/dist/ssr/layout/DetailPanel.js +1 -0
- package/dist/ssr/layout/DetailPanel.js.map +1 -1
- package/dist/ssr/layout/Discussion.js +3 -2
- package/dist/ssr/layout/Discussion.js.map +1 -1
- package/dist/ssr/layout/FloatingWindow.js +1 -0
- package/dist/ssr/layout/FloatingWindow.js.map +1 -1
- package/dist/ssr/layout/Navigation.js +3 -2
- package/dist/ssr/layout/Navigation.js.map +1 -1
- package/dist/ssr/layout/PanelDialog.js +1 -0
- package/dist/ssr/layout/PanelDialog.js.map +1 -1
- package/dist/ssr/layout/PanelHeader.js.map +1 -1
- package/dist/ssr/layout/Panes.js.map +1 -1
- package/dist/ssr/layout/PullToRefresh.js +1 -1
- package/dist/ssr/layout/PullToRefresh.js.map +1 -1
- package/dist/ssr/layout/ScrollArea.js.map +1 -1
- package/dist/ssr/layout/Settings.js +2 -1
- package/dist/ssr/layout/Settings.js.map +1 -1
- package/dist/ssr/layout/SettingsCollection.js +1 -0
- package/dist/ssr/layout/SettingsCollection.js.map +1 -1
- package/dist/ssr/layout/SettingsModal.js.map +1 -1
- package/dist/ssr/layout/SidebarItemPreview.js.map +1 -1
- package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
- package/dist/ssr/layout/app-workspace-state.js.map +1 -1
- package/dist/ssr/layout/floating-window-geometry.js.map +1 -1
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/ssr/layout/navigation-model.js.map +1 -1
- package/dist/ssr/layout/panes-layout.js.map +1 -1
- package/dist/ssr/layout/scroll-fade.js.map +1 -1
- package/dist/ssr/layout/stable-id.js.map +1 -1
- package/dist/ssr/surfaces/Avatar.js +2 -1
- package/dist/ssr/surfaces/Avatar.js.map +1 -1
- package/dist/ssr/surfaces/DescriptionList.js.map +1 -1
- package/dist/ssr/surfaces/LinkCard.js.map +1 -1
- package/dist/ssr/surfaces/NotFoundState.js.map +1 -1
- package/dist/ssr/surfaces/NoticeCard.js.map +1 -1
- package/dist/ssr/surfaces/Paper.js +2 -1
- package/dist/ssr/surfaces/Paper.js.map +1 -1
- package/dist/ssr/surfaces/Placeholder.js +2 -1
- package/dist/ssr/surfaces/Placeholder.js.map +1 -1
- package/dist/ssr/surfaces/ProgressBar.js.map +1 -1
- package/dist/ssr/surfaces/StatCell.js +2 -1
- package/dist/ssr/surfaces/StatCell.js.map +1 -1
- package/dist/ssr/surfaces/StatGrid.js +1 -0
- package/dist/ssr/surfaces/StatGrid.js.map +1 -1
- package/dist/ssr/surfaces/StatusBadge.js.map +1 -1
- package/dist/ssr/surfaces/Tag.js.map +1 -1
- package/dist/ssr/surfaces/index.js.map +1 -1
- package/dist/ssr/widgets/Widget.js +1 -0
- package/dist/ssr/widgets/Widget.js.map +1 -1
- package/dist/ssr/widgets/WidgetHero.js.map +1 -1
- package/dist/ssr/widgets/WidgetList.js.map +1 -1
- package/dist/ssr/widgets/WidgetPills.js.map +1 -1
- package/dist/ssr/widgets/WidgetStat.js +1 -0
- package/dist/ssr/widgets/WidgetStat.js.map +1 -1
- package/dist/ssr/widgets/WidgetStatus.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/actions/Button.d.ts +5 -0
- package/dist/types/actions/SplitButton.d.ts +1 -1
- package/dist/types/actions/SpotlightSearch.d.ts +1 -1
- package/dist/types/actions/index.d.ts +1 -1
- package/dist/types/content/ZoomPanViewport.d.ts +33 -0
- package/dist/types/content/index.d.ts +2 -0
- package/dist/types/content/zoom-pan.d.ts +29 -0
- package/dist/types/feedback/prompts.d.ts +4 -3
- package/dist/types/intl/messages.d.ts +3 -0
- package/package.json +9 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Link","dates","calendar","createMemo","createSignal","For","mergeProps","onCleanup","onMount","Show","Button","SegmentedControl","useDateConfigLocale","useUiMessages","layoutCalendarIntervals","calendarDayIndexAtPoint","calendarMinuteAtPoint","startCalendarPointerSession","ownerDateConfig","owner","dateConfig","timeZone","firstDayOfWeek","weekStartsOn","dateOnlyPattern","parseDate","value","context","Date","test","parseCalendarDate","normalized","includes","replace","parsed","Number","isNaN","getTime","year","month","day","split","validDate","weekNumber","date","target","UTC","getFullYear","getMonth","getDate","getUTCDay","setUTCDate","getUTCDate","yearStart","getUTCFullYear","Math","ceil","zonedWeekNumber","formatDateKey","formatTime","formatDay","toLocaleDateString","locale","weekday","formatMonth","formatMonthYear","zonedYearMonth","zonedMonthDate","String","padStart","zonedDateTimeToInstant","disambiguation","startOfDay","endOfDay","isStartOfDay","addMinutes","minutes","zonedHour","getHours","getMinutes","instantToZonedInput","slice","zonedSlot","hour","zonedMinuteSlot","minuteOfDay","bounded","max","min","floor","minute","normalizeEvents","events","flatMap","event","startDate","start","parsedEnd","end","endDate","duration","rangeEnd","startKey","endKey","allDay","sourceStartDate","sourceEndDate","dayKey","lastDay","addDays","days","segmentStart","segmentEnd","push","eventHref","props","getEventHref","href","moveEventTo","setSeconds","moveEventToDay","localStart","eventTimeChanged","next","Boolean","previewSegments","preview","id","title","color","filter","some","timedEventLayouts","map","item","lane","lanes","groupId","groupStart","groupEnd","groupStartDate","groupEndDate","EventChip","selected","selectedEventId","style","colorHex","undefined","isInteractive","onEventActivate","durationHours","short","fill","showTime","compact","showLocation","location","showDescription","description","trim","timeLabel","renderedEvent","renderEvent","defaultContent","_$ssr","_tmpl$","_$escape","_$createComponent","when","children","_tmpl$2","_tmpl$3","content","isActionable","onMovePointerDown","suppressClickUntil","onClick","performance","now","preventDefault","stopPropagation","eventActivation","onDoubleClick","onButtonKeyDown","key","onPointerDown","pointerType","_tmpl$4","_$ssrAttribute","moving","display","dataSpaceItemId","_$ssrStyle","_tmpl$5","_tmpl$6","slotInteractionProps","slot","suppressed","nativeControl","isSlotChild","Element","control","closest","currentTarget","interactive","onSlotActivate","activate","role","tabIndex","slotActivation","onDblClick","onKeyDown","CalendarNavigationLink","preload","onPrefetch","navigateHref","anchor","defaultPrevented","button","metaKey","ctrlKey","shiftKey","altKey","hasAttribute","URL","origin","window","onNavigateHref","_$ssrElement","_$mergeProps","anchorProps","onNavigate","scroll","onPointerEnter","onFocus","CalendarViewLinks","messages","refs","selectRelative","currentIndex","direction","options","length","click","index","_tmpl$7","calendarView","each","option","active","view","getViewHref","ref","element","class","label","adjacentCalendarDate","addMonths","CalendarHeader","previous","Intl","DateTimeFormat","format","startOfWeek","goDate","onDateChange","goView","onViewChange","navButton","icon","getDateHref","_tmpl$8","_tmpl$9","todayButton","today","_tmpl$0","labels","type","variant","size","viewOptions","week","views","_tmpl$10","fallback","onValueChange","ariaLabel","toolbarActions","navigationPending","_tmpl$1","MonthView","movePreview","setMovePreview","movingEventId","setMovingEventId","cancelInteraction","suppressSlotClickUntil","weeks","getMonthGrid","weekdays","todayKey","eventsByDay","grouped","Map","get","set","clearMove","dayAtPoint","clientX","clientY","document","elementFromPoint","dataset","calendarDayKey","startMove","pointerEvent","markDragged","onEventDrop","resolve","onActivate","onPreview","onCommit","onCancel","_tmpl$12","_$ssrStyleProperty","withWeekNumbers","_tmpl$11","weekShort","_tmpl$14","_tmpl$13","dayBadge","dayBadges","sameMonth","isSameMonth","isToday","dayLabel","eventStack","previewForDay","candidates","visibleLimit","visibleEvents","hiddenCount","_tmpl$16","dayHref","openDate","aria-label","createEventOn","_tmpl$17","formatDayNumber","badge","_tmpl$18","_tmpl$15","find","moveEvent","_tmpl$19","TimeGridView","gridStartHour","visibleStartHour","gridEndHour","visibleEndHour","businessStartHour","startHour","businessEndHour","endHour","hours","Array","from","_","timePreview","setTimePreview","expandedOverflow","setExpandedOverflow","scrollContainer","timeGrid","timeGutter","defaultHourMarker","slotEnd","previewEvents","bucket","timed","clearInteraction","timeAtPoint","gridRect","getBoundingClientRect","gutterRect","dayIndex","right","top","height","beginInteraction","startTimedMove","pointerStart","offsetMinutes","round","pointer","startAllDayMove","startRange","current","endBase","timeRangeLayout","visibleStart","visibleEnd","total","eventLayout","isDayView","visibleLaneCount","overflowLayouts","layouts","groups","layout","existing","hiddenEvents","values","dayColumnMinWidth","laneStyle","layoutItem","laneWidth","left","width","visibleLanes","currentTimeLine","requestAnimationFrame","targetTop","scrollTo","scrollTop","behavior","_tmpl$21","_tmpl$22","_tmpl$23","hideAllDay","_tmpl$20","allDayMaxHeightRem","previewAllDay","data-drop-preview","data-interactive","_tmpl$24","_tmpl$25","_tmpl$27","_tmpl$26","data-outside-business","_tmpl$29","_tmpl$28","position","resizeStart","onEventResize","threshold","minimumEnd","_tmpl$31","_tmpl$30","resizeEvent","overflow","hiddenTitle","join","_tmpl$32","hiddenOverlappingEvents","count","_tmpl$33","YearView","months","flat","outside","number","_tmpl$34","_tmpl$35","_tmpl$36","MobileMonthView","selectedDateKey","selectedDate","selectedEvents","_tmpl$38","_tmpl$39","noEvents","_tmpl$37","CalendarBody","_tmpl$40","Calendar","localizedConfig","safeDate","setNow","normalizedEvents","mergedLabels","getWeekDays","updateNow","interval","setInterval","addEventListener","clearInterval","removeEventListener","_tmpl$41","toolbarContent"],"sources":["content/Calendar.tsx"],"sourcesContent":["import { Link, type LinkNavigateEvent } from \"@k2b/ssr/nav\";\nimport { dates as calendar, type DateContext } from \"@k2b/stdlib\";\nimport type { JSX, ParentProps } from \"solid-js\";\nimport { createMemo, createSignal, For, mergeProps, onCleanup, onMount, Show } from \"solid-js\";\nimport { Button } from \"../actions/Button\";\nimport SegmentedControl from \"../actions/SegmentedControl\";\nimport { useDateConfigLocale } from \"../intl/locale\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { layoutCalendarIntervals } from \"./calendar-event-layout\";\nimport { calendarDayIndexAtPoint, calendarMinuteAtPoint, startCalendarPointerSession } from \"./calendar-pointer\";\n\nexport type CalendarView = \"day\" | \"week\" | \"month\" | \"year\" | \"mobile-month\";\n\nexport type CalendarEventColor = \"blue\" | \"emerald\" | \"amber\" | \"red\" | \"violet\" | \"cyan\" | \"zinc\";\n\nexport type CalendarEvent = {\n id: string;\n title: string;\n start: Date | string;\n end?: Date | string;\n allDay?: boolean;\n color?: CalendarEventColor;\n colorHex?: string;\n href?: string;\n dataSpaceItemId?: string;\n meta?: string;\n description?: string;\n display?: \"event\" | \"background\";\n location?: string;\n calendarName?: string;\n attendees?: CalendarAttendee[];\n resources?: CalendarResource[];\n recurrence?: CalendarRecurrence;\n};\n\nexport type CalendarAttendee = {\n name: string;\n status?: \"accepted\" | \"declined\" | \"tentative\" | \"needs-action\";\n};\n\nexport type CalendarResource = {\n name: string;\n kind?: \"room\" | \"equipment\" | \"link\" | \"other\";\n};\n\nexport type CalendarRecurrence = {\n rrule: string;\n exdate?: Array<Date | string>;\n recurrenceId?: Date | string;\n};\n\nexport type CalendarLabels = Partial<{\n today: string;\n day: string;\n week: string;\n month: string;\n year: string;\n allDay: string;\n noEvents: string;\n previous: string;\n next: string;\n}>;\n\nexport type CalendarEventRenderContext = {\n compact: boolean;\n fill: boolean;\n start: Date;\n end: Date;\n allDay: boolean;\n durationHours: number;\n timeLabel: string;\n};\n\nexport type CalendarProps = {\n date: Date | string;\n events: CalendarEvent[];\n view?: CalendarView;\n views?: CalendarView[];\n labels?: CalendarLabels;\n /** stdlib date context used for timezone-aware rendering and calendar math. */\n dateConfig?: DateContext;\n /** Convenience override for dateConfig.timeZone. */\n timeZone?: string;\n firstDayOfWeek?: 0 | 1;\n withWeekNumbers?: boolean;\n startHour?: number;\n endHour?: number;\n visibleStartHour?: number;\n visibleEndHour?: number;\n allDayMaxHeightRem?: number;\n hideAllDay?: boolean;\n selectedDate?: Date | string;\n selectedEventId?: string;\n dayBadges?: Record<string, CalendarDayBadge>;\n getViewHref?: (view: CalendarView) => string;\n getDateHref?: (date: Date, view: CalendarView) => string;\n getEventHref?: (event: CalendarEvent) => string | undefined;\n renderEvent?: (event: CalendarEvent, context: CalendarEventRenderContext) => JSX.Element;\n /** Progressively enhance canonical calendar links after the app has loaded their target state. */\n onNavigate?: (event: LinkNavigateEvent) => void | Promise<void>;\n /** Progressively enhance canonical links without a document view transition. */\n onNavigateHref?: (href: string) => void;\n /** Optionally preload the target behind a canonical calendar link. */\n onPrefetch?: (href: string) => void;\n navigationPending?: boolean;\n onViewChange?: (view: CalendarView) => void;\n onDateChange?: (date: Date, view: CalendarView) => void;\n /** One activation contract for pointer and keyboard input. */\n onEventActivate?: (event: CalendarEvent) => void;\n /** Pointer gesture used for activation. Keyboard activation is always immediate. */\n eventActivation?: \"single\" | \"double\";\n onEventDrop?: (event: CalendarEvent, next: CalendarEventTimeChange) => void;\n onEventResize?: (event: CalendarEvent, next: CalendarEventTimeChange) => void;\n onSlotActivate?: (slot: CalendarEventTimeChange) => void;\n /** Pointer gesture used for empty slots. Keyboard activation is always immediate. */\n slotActivation?: \"single\" | \"double\";\n toolbarActions?: JSX.Element;\n toolbarContent?: JSX.Element;\n class?: string;\n};\n\nexport type CalendarEventTimeChange = {\n start: Date;\n end: Date;\n allDay?: boolean;\n};\n\nexport type CalendarDayBadge = {\n icon?: string;\n label: string;\n};\n\ntype NormalizedEvent = CalendarEvent & {\n startDate: Date;\n endDate: Date;\n dayKey: string;\n sourceStartDate: Date;\n sourceEndDate: Date;\n};\n\ntype CalendarPreview = CalendarEventTimeChange & {\n id: string;\n title?: string;\n};\n\ntype TimedEventLayout = {\n event: NormalizedEvent;\n lane: number;\n lanes: number;\n groupId: number;\n groupStartDate: Date;\n groupEndDate: Date;\n};\n\ntype TimedOverflowLayout = {\n groupId: number;\n hiddenEvents: NormalizedEvent[];\n groupStartDate: Date;\n groupEndDate: Date;\n};\n\nconst ownerDateConfig = (owner: CalendarProps): DateContext => ({\n ...owner.dateConfig,\n timeZone: owner.timeZone ?? owner.dateConfig?.timeZone,\n firstDayOfWeek: owner.firstDayOfWeek ?? owner.dateConfig?.firstDayOfWeek ?? owner.dateConfig?.weekStartsOn ?? 1,\n});\n\nconst dateOnlyPattern = /^\\d{4}-\\d{2}-\\d{2}$/;\n\nconst parseDate = (value: Date | string, context?: DateContext): Date => {\n if (value instanceof Date) return new Date(value);\n if (dateOnlyPattern.test(value)) return calendar.parseCalendarDate(value, context);\n const normalized = value.includes(\"T\") ? value : value.replace(\" \", \"T\");\n const parsed = new Date(normalized);\n if (!Number.isNaN(parsed.getTime())) return parsed;\n const [year, month = \"1\", day = \"1\"] = value.split(\"-\");\n return new Date(Number(year), Number(month) - 1, Number(day), 12);\n};\n\nconst validDate = (value: Date): boolean => !Number.isNaN(value.getTime());\n\nconst weekNumber = (date: Date): number => {\n const target = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));\n const day = target.getUTCDay() || 7;\n target.setUTCDate(target.getUTCDate() + 4 - day);\n const yearStart = new Date(Date.UTC(target.getUTCFullYear(), 0, 1));\n return Math.ceil(((target.getTime() - yearStart.getTime()) / 86400000 + 1) / 7);\n};\nconst zonedWeekNumber = (date: Date, context?: DateContext): number => {\n if (!context?.timeZone) return weekNumber(date);\n const [year = \"1970\", month = \"1\", day = \"1\"] = calendar.formatDateKey(date, context).split(\"-\");\n return weekNumber(new Date(Date.UTC(Number(year), Number(month) - 1, Number(day))));\n};\n\nconst formatTime = (date: Date, context?: DateContext): string => calendar.formatTime(date, context);\nconst formatDay = (date: Date, context?: DateContext): string =>\n date.toLocaleDateString(context?.locale ?? \"en\", { weekday: \"short\", day: \"numeric\", timeZone: context?.timeZone });\nconst formatMonth = (date: Date, context?: DateContext): string => calendar.formatMonthYear(date, context);\nconst zonedYearMonth = (date: Date, context?: DateContext): { year: number; month: number } => {\n const [year = \"1970\", month = \"1\"] = calendar.formatDateKey(date, context).split(\"-\");\n return { year: Number(year), month: Number(month) - 1 };\n};\nconst zonedMonthDate = (year: number, month: number, context?: DateContext): Date => {\n const value = `${year}-${String(month + 1).padStart(2, \"0\")}-01T12:00`;\n if (!context?.timeZone) return parseDate(value);\n return new Date(calendar.zonedDateTimeToInstant(value, context.timeZone, { disambiguation: \"compatible\" }));\n};\n\nconst startOfDay = (date: Date, context?: DateContext): Date => calendar.startOfDay(date, context);\nconst endOfDay = (date: Date, context?: DateContext): Date => calendar.endOfDay(date, context);\nconst isStartOfDay = (date: Date, context?: DateContext): boolean => date.getTime() === startOfDay(date, context).getTime();\nconst addMinutes = (date: Date, minutes: number): Date => new Date(date.getTime() + minutes * 60 * 1000);\nconst zonedHour = (date: Date, context?: DateContext): number => {\n if (!context?.timeZone) return date.getHours() + date.getMinutes() / 60;\n const value = calendar.instantToZonedInput(date, context.timeZone);\n return Number(value.slice(11, 13)) + Number(value.slice(14, 16)) / 60;\n};\nconst zonedSlot = (day: Date, hour: number, context?: DateContext): Date => {\n return zonedMinuteSlot(day, hour * 60, context);\n};\nconst zonedMinuteSlot = (day: Date, minuteOfDay: number, context?: DateContext): Date => {\n const bounded = Math.max(0, Math.min(23 * 60 + 59, minuteOfDay));\n const hour = Math.floor(bounded / 60);\n const minute = bounded % 60;\n const value = `${calendar.formatDateKey(day, context)}T${String(hour).padStart(2, \"0\")}:${String(minute).padStart(2, \"0\")}`;\n if (!context?.timeZone) return parseDate(value);\n return new Date(calendar.zonedDateTimeToInstant(value, context.timeZone, { disambiguation: \"compatible\" }));\n};\nconst normalizeEvents = (events: CalendarEvent[], context?: DateContext): NormalizedEvent[] =>\n events.flatMap((event) => {\n const startDate = parseDate(event.start, context);\n if (!validDate(startDate)) return [];\n const parsedEnd = event.end ? parseDate(event.end, context) : null;\n const endDate = parsedEnd && validDate(parsedEnd) ? parsedEnd : new Date(startDate.getTime() + 60 * 60 * 1000);\n const duration = Math.max(60 * 60 * 1000, endDate.getTime() - startDate.getTime());\n const rangeEnd = endDate > startDate ? endDate : new Date(startDate.getTime() + duration);\n const startKey = calendar.formatDateKey(startDate, context);\n const endKey = calendar.formatDateKey(rangeEnd, context);\n if (!event.allDay && startKey === endKey) {\n return [\n {\n ...event,\n startDate,\n endDate: rangeEnd,\n sourceStartDate: startDate,\n sourceEndDate: rangeEnd,\n dayKey: startKey,\n },\n ];\n }\n const lastDay =\n event.allDay && isStartOfDay(rangeEnd, context)\n ? calendar.addDays(startOfDay(rangeEnd, context), -1, context)\n : startOfDay(rangeEnd, context);\n const days: NormalizedEvent[] = [];\n for (let day = startOfDay(startDate, context); day <= lastDay; day = calendar.addDays(day, 1, context)) {\n const segmentStart = day.getTime() === startOfDay(startDate, context).getTime() ? startDate : startOfDay(day, context);\n const segmentEnd = day.getTime() === startOfDay(rangeEnd, context).getTime() ? rangeEnd : endOfDay(day, context);\n days.push({\n ...event,\n startDate: segmentStart,\n endDate: segmentEnd,\n sourceStartDate: startDate,\n sourceEndDate: rangeEnd,\n dayKey: calendar.formatDateKey(day, context),\n allDay: event.allDay,\n });\n }\n return days;\n });\n\nconst eventHref = (props: CalendarProps, event: CalendarEvent): string | undefined => props.getEventHref?.(event) ?? event.href;\n\nconst moveEventTo = (event: NormalizedEvent, target: Date, allDay = false, context?: DateContext): CalendarEventTimeChange => {\n const duration = Math.max(30 * 60 * 1000, event.sourceEndDate.getTime() - event.sourceStartDate.getTime());\n const start = allDay ? startOfDay(target, context) : new Date(target);\n start.setSeconds(0, 0);\n return { start, end: new Date(start.getTime() + duration), allDay };\n};\n\nconst moveEventToDay = (event: NormalizedEvent, day: Date, context?: DateContext): CalendarEventTimeChange => {\n if (event.allDay) return moveEventTo(event, startOfDay(day, context), true, context);\n const localStart = context?.timeZone ? calendar.instantToZonedInput(event.sourceStartDate, context.timeZone) : null;\n const hour = localStart ? Number(localStart.slice(11, 13)) : event.sourceStartDate.getHours();\n const minute = localStart ? Number(localStart.slice(14, 16)) : event.sourceStartDate.getMinutes();\n return moveEventTo(event, zonedMinuteSlot(day, hour * 60 + minute, context), false, context);\n};\n\nconst eventTimeChanged = (event: NormalizedEvent, next: CalendarEventTimeChange): boolean =>\n event.sourceStartDate.getTime() !== next.start.getTime() ||\n event.sourceEndDate.getTime() !== next.end.getTime() ||\n Boolean(event.allDay) !== Boolean(next.allDay);\n\nconst previewSegments = (preview: CalendarPreview | null, days: Date[], context?: DateContext): NormalizedEvent[] =>\n preview\n ? normalizeEvents(\n [\n {\n id: `preview-${preview.id}`,\n title: preview.title ?? \"\",\n start: preview.start,\n end: preview.end,\n allDay: preview.allDay,\n color: \"blue\",\n },\n ],\n context,\n ).filter((event) => days.some((day) => event.dayKey === calendar.formatDateKey(day, context)))\n : [];\n\nconst timedEventLayouts = (events: NormalizedEvent[]): TimedEventLayout[] => {\n return layoutCalendarIntervals(events, (event) => ({\n start: event.startDate.getTime(),\n end: event.endDate.getTime(),\n })).map(({ item: event, lane, lanes, groupId, groupStart, groupEnd }) => ({\n event,\n lane,\n lanes,\n groupId,\n groupStartDate: new Date(groupStart),\n groupEndDate: new Date(groupEnd),\n }));\n};\n\nconst EventChip = (props: {\n event: NormalizedEvent;\n owner: CalendarProps;\n href?: string;\n compact?: boolean;\n fill?: boolean;\n moving?: boolean;\n onMovePointerDown?: (event: PointerEvent, onActivate: () => void) => void;\n}): JSX.Element => {\n const dateConfig = createMemo(() => ownerDateConfig(props.owner));\n const color = () => props.event.color ?? \"blue\";\n const selected = () => Boolean(props.owner.selectedEventId) && props.owner.selectedEventId === props.event.id;\n const style = () => (props.event.colorHex ? { \"--k2b-calendar-accent\": props.event.colorHex } : undefined);\n const isInteractive = () => Boolean(props.owner.onEventActivate);\n const durationHours = () => (props.event.endDate.getTime() - props.event.startDate.getTime()) / 3_600_000;\n const short = () => Boolean(props.fill && !props.event.allDay && durationHours() < 0.75);\n const showTime = () => !props.event.allDay && !props.compact && durationHours() >= 0.75;\n const showLocation = () => Boolean(props.event.location && !props.compact && durationHours() >= 1.25);\n const showDescription = () =>\n Boolean(props.event.description?.trim() && props.fill && !props.event.allDay && !props.compact && durationHours() >= 1.5);\n const timeLabel = () => `${formatTime(props.event.startDate, dateConfig())} - ${formatTime(props.event.endDate, dateConfig())}`;\n const renderedEvent = () =>\n props.owner.renderEvent?.(props.event, {\n compact: props.compact ?? false,\n fill: props.fill ?? false,\n start: props.event.startDate,\n end: props.event.endDate,\n allDay: props.event.allDay ?? false,\n durationHours: durationHours(),\n timeLabel: timeLabel(),\n });\n const defaultContent = (\n <>\n <span class=\"k2b-calendar-event__title\">{props.event.title}</span>\n <Show when={showTime()}>\n <span class=\"k2b-calendar-event__meta\">{timeLabel()}</span>\n </Show>\n <Show when={showLocation()}>\n <span class=\"k2b-calendar-event__meta\">{props.event.location}</span>\n </Show>\n <Show when={showDescription()}>\n <span class=\"k2b-calendar-event__description\">{props.event.description}</span>\n </Show>\n </>\n );\n const content = () => renderedEvent() ?? defaultContent;\n const isActionable = () => isInteractive() || Boolean(props.onMovePointerDown);\n let suppressClickUntil = 0;\n const onClick = (event: MouseEvent) => {\n if (performance.now() < suppressClickUntil) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n if (!props.owner.onEventActivate || props.owner.eventActivation === \"double\") return;\n event.preventDefault();\n event.stopPropagation();\n props.owner.onEventActivate(props.event);\n };\n const onDoubleClick = (event: MouseEvent) => {\n if (!props.owner.onEventActivate || props.owner.eventActivation !== \"double\") return;\n event.preventDefault();\n event.stopPropagation();\n props.owner.onEventActivate(props.event);\n };\n const onButtonKeyDown = (event: KeyboardEvent) => {\n if (!isInteractive() || (event.key !== \"Enter\" && event.key !== \" \")) return;\n event.preventDefault();\n props.owner.onEventActivate?.(props.event);\n };\n const onPointerDown = (event: PointerEvent) => {\n if (event.pointerType === \"touch\") return;\n if (props.onMovePointerDown) event.stopPropagation();\n props.onMovePointerDown?.(event, () => {\n suppressClickUntil = performance.now() + 400;\n });\n };\n\n return props.href ? (\n <a\n href={props.href}\n class=\"k2b-calendar-event\"\n data-calendar-event=\"\"\n data-color={props.event.colorHex ? undefined : color()}\n data-selected={selected() ? \"true\" : undefined}\n data-compact={props.compact ? \"true\" : undefined}\n data-fill={props.fill ? \"true\" : undefined}\n data-short={short() ? \"true\" : undefined}\n data-moving={props.moving ? \"true\" : undefined}\n data-interactive={isInteractive() ? \"true\" : undefined}\n data-display={props.event.display}\n data-space-item-id={props.event.dataSpaceItemId}\n style={style()}\n draggable={props.onMovePointerDown ? false : undefined}\n onClick={onClick}\n onDblClick={onDoubleClick}\n onDragStart={props.onMovePointerDown ? (event) => event.preventDefault() : undefined}\n onPointerDown={onPointerDown}\n aria-label={`${props.event.title}${props.event.allDay ? \"\" : `, ${formatTime(props.event.startDate, dateConfig())} to ${formatTime(props.event.endDate, dateConfig())}`}`}\n >\n {content()}\n </a>\n ) : isActionable() ? (\n <button\n type=\"button\"\n class=\"k2b-calendar-event\"\n data-calendar-event=\"\"\n data-color={props.event.colorHex ? undefined : color()}\n data-selected={selected() ? \"true\" : undefined}\n data-compact={props.compact ? \"true\" : undefined}\n data-fill={props.fill ? \"true\" : undefined}\n data-short={short() ? \"true\" : undefined}\n data-moving={props.moving ? \"true\" : undefined}\n data-interactive=\"true\"\n data-display={props.event.display}\n style={style()}\n onClick={onClick}\n onDblClick={onDoubleClick}\n onPointerDown={onPointerDown}\n onKeyDown={onButtonKeyDown}\n aria-label={`${props.event.title}${props.event.allDay ? \"\" : `, ${formatTime(props.event.startDate, dateConfig())} to ${formatTime(props.event.endDate, dateConfig())}`}`}\n >\n {content()}\n </button>\n ) : (\n <div\n class=\"k2b-calendar-event\"\n role=\"group\"\n data-calendar-event=\"\"\n data-color={props.event.colorHex ? undefined : color()}\n data-selected={selected() ? \"true\" : undefined}\n data-compact={props.compact ? \"true\" : undefined}\n data-fill={props.fill ? \"true\" : undefined}\n data-short={short() ? \"true\" : undefined}\n data-moving={props.moving ? \"true\" : undefined}\n data-interactive={undefined}\n data-display={props.event.display}\n style={style()}\n aria-label={`${props.event.title}${props.event.allDay ? \"\" : `, ${formatTime(props.event.startDate, dateConfig())} to ${formatTime(props.event.endDate, dateConfig())}`}`}\n >\n {content()}\n </div>\n );\n};\n\nconst slotInteractionProps = (\n owner: CalendarProps,\n slot: () => CalendarEventTimeChange,\n suppressed?: () => boolean,\n nativeControl = false,\n) => {\n const isSlotChild = (event: Event) => {\n if (!(event.target instanceof Element)) return false;\n const control = event.target.closest(\"a,button,[data-calendar-event]\");\n return Boolean(control && control !== event.currentTarget);\n };\n const interactive = Boolean(owner.onSlotActivate);\n const activate = (event: Event) => {\n if (!owner.onSlotActivate || isSlotChild(event) || suppressed?.()) return;\n event.preventDefault();\n owner.onSlotActivate(slot());\n };\n return {\n role: interactive && !nativeControl ? (\"button\" as const) : undefined,\n tabIndex: interactive && !nativeControl ? 0 : undefined,\n onClick: (event: MouseEvent) => {\n if (owner.slotActivation === \"double\") return;\n activate(event);\n },\n onDblClick: (event: MouseEvent) => {\n if (owner.slotActivation !== \"double\") return;\n activate(event);\n },\n onKeyDown: nativeControl\n ? undefined\n : (event: KeyboardEvent) => {\n if (event.key === \"Enter\" || event.key === \" \") activate(event);\n },\n };\n};\n\ntype CalendarNavigationLinkProps = ParentProps<{\n owner: CalendarProps;\n href: string;\n anchorProps?: Omit<JSX.AnchorHTMLAttributes<HTMLAnchorElement>, \"children\" | \"href\" | \"onClick\"> & {\n \"data-divider\"?: string;\n \"data-outside\"?: string;\n \"data-size\"?: string;\n \"data-today\"?: string;\n \"data-variant\"?: string;\n };\n}>;\n\n/** A real anchor is the baseline; the optional handler only enhances it after hydration. */\nconst CalendarNavigationLink = (props: CalendarNavigationLinkProps): JSX.Element => {\n const preload = () => props.owner.onPrefetch?.(props.href);\n const navigateHref: JSX.EventHandler<HTMLAnchorElement, MouseEvent> = (event) => {\n const anchor = event.currentTarget;\n if (\n event.defaultPrevented ||\n event.button !== 0 ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey ||\n (anchor.target && anchor.target !== \"_self\") ||\n anchor.hasAttribute(\"download\") ||\n new URL(anchor.href).origin !== window.location.origin\n ) {\n return;\n }\n event.preventDefault();\n props.owner.onNavigateHref?.(props.href);\n };\n return props.owner.onNavigateHref ? (\n <a {...props.anchorProps} href={props.href} onClick={navigateHref} onPointerEnter={preload} onFocus={preload}>\n {props.children}\n </a>\n ) : props.owner.onNavigate ? (\n <Link\n {...props.anchorProps}\n href={props.href}\n scroll=\"preserve\"\n onNavigate={props.owner.onNavigate}\n onPointerEnter={preload}\n onFocus={preload}\n >\n {props.children}\n </Link>\n ) : (\n <a {...props.anchorProps} href={props.href} onPointerEnter={preload} onFocus={preload}>\n {props.children}\n </a>\n );\n};\n\nconst CalendarViewLinks = (props: {\n owner: CalendarProps;\n view: CalendarView;\n options: Array<{ value: CalendarView; label: string }>;\n}): JSX.Element => {\n const messages = useUiMessages();\n const refs: HTMLAnchorElement[] = [];\n const selectRelative = (currentIndex: number, direction: -1 | 1) => {\n if (props.options.length === 0) return;\n refs[(currentIndex + direction + props.options.length) % props.options.length]?.click();\n };\n const onKeyDown = (event: KeyboardEvent, index: number) => {\n if (event.key === \"ArrowRight\" || event.key === \"ArrowDown\") {\n event.preventDefault();\n selectRelative(index, 1);\n } else if (event.key === \"ArrowLeft\" || event.key === \"ArrowUp\") {\n event.preventDefault();\n selectRelative(index, -1);\n } else if (event.key === \"Home\" || event.key === \"End\") {\n event.preventDefault();\n refs[event.key === \"Home\" ? 0 : props.options.length - 1]?.click();\n }\n };\n\n return (\n <div\n role=\"radiogroup\"\n aria-label={messages().calendarView}\n aria-orientation=\"horizontal\"\n class=\"k2b-segmented-control k2b-calendar-view-switcher\"\n >\n <For each={props.options}>\n {(option, index) => {\n const active = () => (props.view === \"mobile-month\" ? \"month\" : props.view) === option.value;\n const href = () => props.owner.getViewHref?.(option.value) ?? \"#\";\n return (\n <CalendarNavigationLink\n owner={props.owner}\n href={href()}\n anchorProps={{\n ref: (element) => {\n refs[index()] = element;\n },\n role: \"radio\",\n \"aria-checked\": active(),\n tabIndex: active() ? 0 : -1,\n class: \"k2b-segmented-control__option\",\n \"data-divider\":\n index() < props.options.length - 1 &&\n !active() &&\n (props.view === \"mobile-month\" ? \"month\" : props.view) !== props.options[index() + 1]?.value\n ? \"true\"\n : undefined,\n onKeyDown: (event) => onKeyDown(event, index()),\n }}\n >\n {option.label}\n </CalendarNavigationLink>\n );\n }}\n </For>\n </div>\n );\n};\n\nconst adjacentCalendarDate = (date: Date, view: CalendarView, direction: -1 | 1, dateConfig: DateContext) => {\n if (view === \"year\") return calendar.addMonths(date, direction * 12, dateConfig);\n if (view === \"month\" || view === \"mobile-month\") return calendar.addMonths(date, direction, dateConfig);\n return calendar.addDays(date, direction * (view === \"day\" ? 1 : 7), dateConfig);\n};\n\nconst CalendarHeader = (props: { date: Date; view: CalendarView; labels: Required<CalendarLabels>; owner: CalendarProps }): JSX.Element => {\n const messages = useUiMessages();\n const dateConfig = () => ownerDateConfig(props.owner);\n const previous = () => adjacentCalendarDate(props.date, props.view, -1, dateConfig());\n const next = () => adjacentCalendarDate(props.date, props.view, 1, dateConfig());\n const title = () => {\n if (props.view === \"year\")\n return new Intl.DateTimeFormat(dateConfig().locale ?? \"en\", { year: \"numeric\", timeZone: dateConfig().timeZone }).format(props.date);\n if (props.view === \"day\")\n return props.date.toLocaleDateString(dateConfig().locale ?? \"en\", {\n weekday: \"long\",\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n timeZone: dateConfig().timeZone,\n });\n if (props.view === \"week\")\n return `${formatDay(calendar.startOfWeek(props.date, dateConfig()), dateConfig())} - ${formatDay(calendar.addDays(calendar.startOfWeek(props.date, dateConfig()), 6, dateConfig()), dateConfig())}`;\n return formatMonth(props.date, dateConfig());\n };\n const goDate = (date: Date) => props.owner.onDateChange?.(date, props.view);\n const goView = (view: CalendarView) => {\n if (props.owner.onViewChange) {\n props.owner.onViewChange(view);\n return;\n }\n const href = props.owner.getViewHref?.(view);\n if (href) window.location.href = href;\n };\n const navButton = (date: Date, icon: string, label: string) => {\n const href = props.owner.getDateHref?.(date, props.view);\n return (props.owner.onNavigateHref || props.owner.onNavigate) && href ? (\n <CalendarNavigationLink\n owner={props.owner}\n href={href}\n anchorProps={{ \"aria-label\": label, title: label, class: \"k2b-calendar-header__nav-button\" }}\n >\n <i class={`ti ${icon}`} />\n </CalendarNavigationLink>\n ) : props.owner.onDateChange ? (\n <button type=\"button\" aria-label={label} class=\"k2b-calendar-header__nav-button\" onClick={() => goDate(date)}>\n <i class={`ti ${icon}`} />\n </button>\n ) : (\n <CalendarNavigationLink\n owner={props.owner}\n href={href ?? \"#\"}\n anchorProps={{ \"aria-label\": label, title: label, class: \"k2b-calendar-header__nav-button\" }}\n >\n <i class={`ti ${icon}`} />\n </CalendarNavigationLink>\n );\n };\n const todayButton = () => {\n const today = calendar.today(dateConfig());\n const href = props.owner.getDateHref?.(today, props.view);\n const label = <span class=\"k2b-button__label\">{props.labels.today}</span>;\n return (props.owner.onNavigateHref || props.owner.onNavigate) && href ? (\n <CalendarNavigationLink\n owner={props.owner}\n href={href}\n anchorProps={{ class: \"k2b-button k2b-calendar-header__today\", \"data-size\": \"sm\", \"data-variant\": \"input\" }}\n >\n {label}\n </CalendarNavigationLink>\n ) : props.owner.onDateChange ? (\n <Button type=\"button\" variant=\"input\" size=\"sm\" class=\"k2b-calendar-header__today\" onClick={() => goDate(today)}>\n {props.labels.today}\n </Button>\n ) : (\n <CalendarNavigationLink\n owner={props.owner}\n href={href ?? \"#\"}\n anchorProps={{ class: \"k2b-button k2b-calendar-header__today\", \"data-size\": \"sm\", \"data-variant\": \"input\" }}\n >\n {label}\n </CalendarNavigationLink>\n );\n };\n const viewOptions = createMemo(() =>\n (\n [\n { value: \"day\", label: props.labels.day },\n { value: \"week\", label: props.labels.week },\n { value: \"month\", label: props.labels.month },\n { value: \"year\", label: props.labels.year },\n ] satisfies Array<{ value: CalendarView; label: string }>\n ).filter((option) => !props.owner.views || props.owner.views.includes(option.value)),\n );\n\n return (\n <header class=\"k2b-calendar-header\">\n <div class=\"k2b-calendar-header__navigation\">\n {navButton(previous(), \"ti-chevron-left\", props.labels.previous)}\n {navButton(next(), \"ti-chevron-right\", props.labels.next)}\n <div class=\"k2b-calendar-header__title\">{title()}</div>\n </div>\n <div class=\"k2b-calendar-header__actions\">\n {todayButton()}\n <Show\n when={!props.owner.onViewChange && props.owner.getViewHref}\n fallback={\n <SegmentedControl\n value={() => (props.view === \"mobile-month\" ? \"month\" : props.view)}\n onValueChange={goView}\n ariaLabel={messages().calendarView}\n options={viewOptions()}\n />\n }\n >\n <CalendarViewLinks owner={props.owner} view={props.view} options={viewOptions()} />\n </Show>\n {props.owner.toolbarActions}\n </div>\n <Show when={props.owner.navigationPending}>\n <span class=\"k2b-calendar-header__progress\" aria-hidden=\"true\" />\n </Show>\n </header>\n );\n};\n\nconst MonthView = (props: {\n owner: CalendarProps;\n date: Date;\n now: Date;\n events: NormalizedEvent[];\n labels: Required<CalendarLabels>;\n}): JSX.Element => {\n const messages = useUiMessages();\n const dateConfig = createMemo(() => ownerDateConfig(props.owner));\n const [movePreview, setMovePreview] = createSignal<CalendarPreview | null>(null);\n const [movingEventId, setMovingEventId] = createSignal(\"\");\n let cancelInteraction: (() => void) | undefined;\n let suppressSlotClickUntil = 0;\n const month = createMemo(() => zonedYearMonth(props.date, dateConfig()));\n const weeks = createMemo(() => calendar.getMonthGrid(month().year, month().month, dateConfig()));\n const weekdays = createMemo(() => calendar.weekdays(dateConfig()));\n const todayKey = createMemo(() => calendar.formatDateKey(props.now, dateConfig()));\n const eventsByDay = createMemo(() => {\n const grouped = new Map<string, NormalizedEvent[]>();\n for (const event of props.events) {\n const events = grouped.get(event.dayKey);\n if (events) events.push(event);\n else grouped.set(event.dayKey, [event]);\n }\n return grouped;\n });\n const clearMove = () => {\n setMovePreview(null);\n setMovingEventId(\"\");\n };\n const dayAtPoint = (clientX: number, clientY: number): Date | null => {\n const target = document.elementFromPoint(clientX, clientY)?.closest<HTMLElement>(\"[data-calendar-day-key]\");\n const dayKey = target?.dataset.calendarDayKey;\n return dayKey ? calendar.parseCalendarDate(dayKey, dateConfig()) : null;\n };\n const startMove = (pointerEvent: PointerEvent, event: NormalizedEvent, markDragged: () => void) => {\n if (!props.owner.onEventDrop) return;\n cancelInteraction?.();\n cancelInteraction = startCalendarPointerSession({\n event: pointerEvent,\n resolve: (clientX, clientY) => {\n const day = dayAtPoint(clientX, clientY);\n return day ? { id: event.id, ...moveEventToDay(event, day, dateConfig()) } : null;\n },\n onActivate: () => {\n markDragged();\n suppressSlotClickUntil = performance.now() + 400;\n setMovingEventId(event.id);\n },\n onPreview: setMovePreview,\n onCommit: (next) => {\n clearMove();\n if (eventTimeChanged(event, next)) props.owner.onEventDrop?.(event, next);\n },\n onCancel: clearMove,\n });\n };\n onCleanup(() => cancelInteraction?.());\n return (\n <div class=\"k2b-calendar-month\" style={{ \"grid-template-rows\": `auto repeat(${weeks().length}, minmax(5rem, 1fr))` }}>\n <div class=\"k2b-calendar-month__weekdays\" data-week-numbers={props.owner.withWeekNumbers ? \"true\" : undefined}>\n <Show when={props.owner.withWeekNumbers}>\n <div class=\"k2b-calendar-month__weekday\">{messages().weekShort}</div>\n </Show>\n <For each={weekdays()}>{(day) => <div class=\"k2b-calendar-month__weekday\">{day}</div>}</For>\n </div>\n <For each={weeks()}>\n {(week) => (\n <div class=\"k2b-calendar-month__week\" data-week-numbers={props.owner.withWeekNumbers ? \"true\" : undefined}>\n <Show when={props.owner.withWeekNumbers}>\n <div class=\"k2b-calendar-month__week-number\">{zonedWeekNumber(week[0]!, dateConfig())}</div>\n </Show>\n <For each={week}>\n {(day) => {\n const dayKey = calendar.formatDateKey(day, dateConfig());\n const events = eventsByDay().get(dayKey) ?? [];\n const href = props.owner.getDateHref?.(day, \"day\");\n const dayBadge = props.owner.dayBadges?.[dayKey];\n const sameMonth = calendar.isSameMonth(day, props.date, dateConfig());\n const isToday = dayKey === todayKey();\n const dayLabel = day.toLocaleDateString(dateConfig().locale ?? \"en\", {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n timeZone: dateConfig().timeZone,\n });\n const eventStack = createMemo(() => {\n const preview = movePreview();\n const previewForDay = preview && calendar.formatDateKey(preview.start, dateConfig()) === dayKey ? preview : null;\n const candidates = previewForDay ? events.filter((event) => event.id !== previewForDay.id) : events;\n const visibleLimit = previewForDay ? 2 : 3;\n return {\n preview: previewForDay,\n visibleEvents: candidates.slice(0, visibleLimit),\n hiddenCount: Math.max(0, candidates.length - visibleLimit),\n };\n });\n return (\n <div\n class=\"k2b-calendar-month__day\"\n data-calendar-day-key={dayKey}\n data-outside={!sameMonth ? \"true\" : undefined}\n data-drop-preview={\n movePreview()?.start && calendar.formatDateKey(movePreview()!.start, dateConfig()) === dayKey ? \"true\" : undefined\n }\n >\n <Show\n when={props.owner.onSlotActivate}\n fallback={\n <Show when={href}>\n {(dayHref) => (\n <CalendarNavigationLink\n owner={props.owner}\n href={dayHref()}\n anchorProps={{\n class: \"k2b-calendar-month__day-target\",\n \"aria-label\": messages().openDate({ label: dayLabel }),\n }}\n />\n )}\n </Show>\n }\n >\n <button\n type=\"button\"\n class=\"k2b-calendar-month__day-target\"\n data-interactive=\"true\"\n aria-label={messages().createEventOn({ label: dayLabel })}\n {...slotInteractionProps(\n props.owner,\n () => {\n const start = startOfDay(day, dateConfig());\n return { start, end: calendar.addDays(start, 1, dateConfig()), allDay: true };\n },\n () => performance.now() < suppressSlotClickUntil,\n true,\n )}\n />\n </Show>\n <div class=\"k2b-calendar-month__day-header\">\n <Show\n when={props.owner.onSlotActivate && href}\n fallback={\n <span\n class=\"k2b-calendar-month__day-number\"\n data-today={isToday ? \"true\" : undefined}\n data-outside={!sameMonth ? \"true\" : undefined}\n >\n {calendar.formatDayNumber(day, dateConfig())}\n </span>\n }\n >\n {(dayHref) => (\n <CalendarNavigationLink\n owner={props.owner}\n href={dayHref()}\n anchorProps={{\n class: \"k2b-calendar-month__day-number\",\n \"data-today\": isToday ? \"true\" : undefined,\n \"data-outside\": !sameMonth ? \"true\" : undefined,\n \"aria-label\": messages().openDate({ label: dayLabel }),\n }}\n >\n {calendar.formatDayNumber(day, dateConfig())}\n </CalendarNavigationLink>\n )}\n </Show>\n <Show when={dayBadge}>\n {(badge) => (\n <span class=\"k2b-calendar-month__badge\">\n <Show when={badge().icon}>{(icon) => <i class={`k2b-calendar-month__badge-icon ti ti-${icon()}`} />}</Show>\n {badge().label}\n </span>\n )}\n </Show>\n </div>\n <div class=\"k2b-calendar-month__events\">\n <Show when={eventStack().preview}>\n <div class=\"k2b-calendar-preview\">\n {props.events.find((event) => event.id === eventStack().preview!.id)?.title ?? messages().moveEvent}\n </div>\n </Show>\n <For each={eventStack().visibleEvents}>\n {(event) => (\n <EventChip\n event={event}\n owner={props.owner}\n href={eventHref(props.owner, event)}\n compact\n moving={movingEventId() === event.id}\n onMovePointerDown={\n props.owner.onEventDrop\n ? (pointerEvent, markDragged) => startMove(pointerEvent, event, markDragged)\n : undefined\n }\n />\n )}\n </For>\n <Show when={eventStack().hiddenCount > 0}>\n <CalendarNavigationLink owner={props.owner} href={href ?? \"#\"} anchorProps={{ class: \"k2b-calendar-month__more\" }}>\n +{eventStack().hiddenCount} more\n </CalendarNavigationLink>\n </Show>\n </div>\n <div class=\"k2b-calendar-month__dots\">\n <For each={events.slice(0, 4)}>\n {(event) => (\n <span\n class=\"k2b-calendar-dot\"\n data-color={event.colorHex ? undefined : (event.color ?? \"blue\")}\n style={event.colorHex ? { \"background-color\": event.colorHex } : undefined}\n />\n )}\n </For>\n </div>\n </div>\n );\n }}\n </For>\n </div>\n )}\n </For>\n </div>\n );\n};\n\nconst TimeGridView = (props: {\n owner: CalendarProps;\n date: Date;\n now: Date;\n events: NormalizedEvent[];\n labels: Required<CalendarLabels>;\n days: Date[];\n}): JSX.Element => {\n const messages = useUiMessages();\n const dateConfig = createMemo(() => ownerDateConfig(props.owner));\n const gridStartHour = () => props.owner.visibleStartHour ?? 0;\n const gridEndHour = () => props.owner.visibleEndHour ?? 23;\n const businessStartHour = () => props.owner.startHour ?? 8;\n const businessEndHour = () => props.owner.endHour ?? 18;\n const hours = createMemo(() => Array.from({ length: gridEndHour() - gridStartHour() + 1 }, (_, index) => gridStartHour() + index));\n const [timePreview, setTimePreview] = createSignal<CalendarPreview | null>(null);\n const [movingEventId, setMovingEventId] = createSignal(\"\");\n const [expandedOverflow, setExpandedOverflow] = createSignal(\"\");\n let scrollContainer: HTMLDivElement | undefined;\n let timeGrid: HTMLDivElement | undefined;\n let timeGutter: HTMLDivElement | undefined;\n let defaultHourMarker: HTMLDivElement | undefined;\n let cancelInteraction: (() => void) | undefined;\n let suppressSlotClickUntil = 0;\n const slotEnd = (start: Date) => addMinutes(start, 60);\n const previewEvents = createMemo(() => previewSegments(timePreview(), props.days, dateConfig()));\n const eventsByDay = createMemo(() => {\n const grouped = new Map<string, { allDay: NormalizedEvent[]; timed: NormalizedEvent[] }>();\n for (const event of props.events) {\n const bucket = grouped.get(event.dayKey) ?? { allDay: [], timed: [] };\n (event.allDay ? bucket.allDay : bucket.timed).push(event);\n grouped.set(event.dayKey, bucket);\n }\n return grouped;\n });\n const clearInteraction = () => {\n setTimePreview(null);\n setMovingEventId(\"\");\n };\n const dayAtPoint = (clientX: number, clientY: number): Date | null => {\n const target = document.elementFromPoint(clientX, clientY)?.closest<HTMLElement>(\"[data-calendar-day-key]\");\n const dayKey = target?.dataset.calendarDayKey;\n return dayKey ? calendar.parseCalendarDate(dayKey, dateConfig()) : null;\n };\n const timeAtPoint = (clientX: number, clientY: number): Date | null => {\n if (!timeGrid || !timeGutter) return null;\n const gridRect = timeGrid.getBoundingClientRect();\n const gutterRect = timeGutter.getBoundingClientRect();\n const dayIndex = calendarDayIndexAtPoint(clientX, gutterRect.right, gridRect.right - gutterRect.right, props.days.length);\n if (dayIndex === null) return null;\n const minute = Math.min(\n gridEndHour() * 60 + 45,\n calendarMinuteAtPoint(clientY, gridRect.top, gridRect.height, gridStartHour(), gridEndHour()),\n );\n return zonedMinuteSlot(props.days[dayIndex]!, minute, dateConfig());\n };\n const beginInteraction = (options: Parameters<typeof startCalendarPointerSession<CalendarPreview>>[0]) => {\n cancelInteraction?.();\n cancelInteraction = startCalendarPointerSession(options);\n };\n const startTimedMove = (pointerEvent: PointerEvent, event: NormalizedEvent, markDragged: () => void) => {\n if (!props.owner.onEventDrop) return;\n const pointerStart = timeAtPoint(pointerEvent.clientX, pointerEvent.clientY) ?? event.sourceStartDate;\n const duration = Math.max(15 * 60_000, event.sourceEndDate.getTime() - event.sourceStartDate.getTime());\n const offsetMinutes = Math.max(\n 0,\n Math.min(duration / 60_000, Math.round((pointerStart.getTime() - event.sourceStartDate.getTime()) / 900_000) * 15),\n );\n beginInteraction({\n event: pointerEvent,\n scrollContainer,\n resolve: (clientX, clientY) => {\n const pointer = timeAtPoint(clientX, clientY);\n if (!pointer) return null;\n const start = new Date(pointer.getTime() - offsetMinutes * 60_000);\n return { id: event.id, title: event.title, start, end: new Date(start.getTime() + duration), allDay: false };\n },\n onActivate: () => {\n markDragged();\n suppressSlotClickUntil = performance.now() + 400;\n setMovingEventId(event.id);\n },\n onPreview: setTimePreview,\n onCommit: (next) => {\n clearInteraction();\n if (eventTimeChanged(event, next)) props.owner.onEventDrop?.(event, next);\n },\n onCancel: clearInteraction,\n });\n };\n const startAllDayMove = (pointerEvent: PointerEvent, event: NormalizedEvent, markDragged: () => void) => {\n if (!props.owner.onEventDrop) return;\n beginInteraction({\n event: pointerEvent,\n resolve: (clientX, clientY) => {\n const day = dayAtPoint(clientX, clientY);\n return day ? { id: event.id, title: event.title, ...moveEventTo(event, startOfDay(day, dateConfig()), true, dateConfig()) } : null;\n },\n onActivate: () => {\n markDragged();\n suppressSlotClickUntil = performance.now() + 400;\n setMovingEventId(event.id);\n },\n onPreview: setTimePreview,\n onCommit: (next) => {\n clearInteraction();\n if (eventTimeChanged(event, next)) props.owner.onEventDrop?.(event, next);\n },\n onCancel: clearInteraction,\n });\n };\n const startRange = (pointerEvent: PointerEvent) => {\n if (!props.owner.onSlotActivate || pointerEvent.pointerType === \"touch\") return;\n const anchor = timeAtPoint(pointerEvent.clientX, pointerEvent.clientY);\n if (!anchor) return;\n beginInteraction({\n event: pointerEvent,\n scrollContainer,\n resolve: (clientX, clientY) => {\n const current = timeAtPoint(clientX, clientY);\n if (!current) return null;\n const start = current < anchor ? current : anchor;\n const endBase = current < anchor ? anchor : current;\n return { id: \"calendar-create-preview\", start, end: addMinutes(endBase, 15), allDay: false };\n },\n onActivate: () => {\n suppressSlotClickUntil = performance.now() + 400;\n },\n onPreview: setTimePreview,\n onCommit: (next) => {\n clearInteraction();\n props.owner.onSlotActivate?.(next);\n },\n onCancel: clearInteraction,\n });\n };\n const timeRangeLayout = (startDate: Date, endDate: Date) => {\n const start = zonedHour(startDate, dateConfig());\n const end = zonedHour(endDate, dateConfig());\n const visibleStart = Math.max(gridStartHour(), start);\n const visibleEnd = Math.min(gridEndHour() + 1, end);\n const total = Math.max(1, gridEndHour() - gridStartHour() + 1);\n return {\n top: Math.max(0, ((visibleStart - gridStartHour()) / total) * 100),\n height: Math.max(1.25, ((visibleEnd - visibleStart) / total) * 100),\n };\n };\n const eventLayout = (event: NormalizedEvent) => timeRangeLayout(event.startDate, event.endDate);\n const isDayView = () => props.days.length === 1;\n const visibleLaneCount = (lanes: number) => (isDayView() ? lanes : Math.min(lanes, 3));\n const overflowLayouts = (layouts: TimedEventLayout[]): TimedOverflowLayout[] => {\n if (isDayView()) return [];\n const groups = new Map<number, TimedOverflowLayout>();\n for (const layout of layouts) {\n if (layout.lane < visibleLaneCount(layout.lanes)) continue;\n const existing = groups.get(layout.groupId);\n if (existing) existing.hiddenEvents.push(layout.event);\n else\n groups.set(layout.groupId, {\n groupId: layout.groupId,\n hiddenEvents: [layout.event],\n groupStartDate: layout.groupStartDate,\n groupEndDate: layout.groupEndDate,\n });\n }\n return [...groups.values()];\n };\n const dayColumnMinWidth = (layouts: TimedEventLayout[]) => {\n if (!isDayView()) return undefined;\n const lanes = Math.max(1, ...layouts.map((layout) => layout.lanes));\n return `${Math.max(32, lanes * 12)}rem`;\n };\n const laneStyle = (layoutItem: TimedEventLayout) => {\n if (isDayView()) {\n const laneWidth = 100 / layoutItem.lanes;\n return {\n left: `calc(${layoutItem.lane * laneWidth}% + 0.25rem)`,\n width: `calc(${laneWidth}% - 0.5rem)`,\n };\n }\n const visibleLanes = visibleLaneCount(layoutItem.lanes);\n return {\n left: `${layoutItem.lanes <= 1 ? 0 : (28 / Math.max(1, visibleLanes - 1)) * layoutItem.lane}%`,\n width: `${layoutItem.lanes <= 1 ? 100 : layoutItem.lanes > visibleLanes ? 68 : 72}%`,\n };\n };\n const currentTimeLine = (day: Date) => {\n const now = props.now;\n if (calendar.formatDateKey(day, dateConfig()) !== calendar.formatDateKey(now, dateConfig())) return null;\n const hour = zonedHour(now, dateConfig());\n if (hour < gridStartHour() || hour > gridEndHour() + 1) return null;\n return ((hour - gridStartHour()) / Math.max(1, gridEndHour() - gridStartHour() + 1)) * 100;\n };\n onCleanup(() => cancelInteraction?.());\n onMount(() => {\n requestAnimationFrame(() => {\n if (!scrollContainer || !defaultHourMarker) return;\n const targetTop = defaultHourMarker.getBoundingClientRect().top - scrollContainer.getBoundingClientRect().top;\n scrollContainer.scrollTo({ top: Math.max(0, scrollContainer.scrollTop + targetTop), behavior: \"smooth\" });\n });\n });\n return (\n <div class=\"k2b-calendar-time-grid\">\n <div class=\"k2b-calendar-time-grid__days\" style={{ \"grid-template-columns\": `4rem repeat(${props.days.length}, minmax(0, 1fr))` }}>\n <div />\n <For each={props.days}>\n {(day) => {\n const dayBadge = props.owner.dayBadges?.[calendar.formatDateKey(day, dateConfig())];\n const today = () => calendar.isToday(day, dateConfig());\n return (\n <CalendarNavigationLink\n owner={props.owner}\n href={props.owner.getDateHref?.(day, \"day\") ?? \"#\"}\n anchorProps={{ class: \"k2b-calendar-time-grid__day\" }}\n >\n <span class=\"k2b-calendar-time-grid__day-label\" data-today={today() ? \"true\" : undefined}>\n {formatDay(day, dateConfig())}\n </span>\n <Show when={dayBadge}>\n {(badge) => (\n <span class=\"k2b-calendar-time-grid__badge\">\n <Show when={badge().icon}>{(icon) => <i class={`k2b-calendar-time-grid__badge-icon ti ti-${icon()}`} />}</Show>\n {badge().label}\n </span>\n )}\n </Show>\n </CalendarNavigationLink>\n );\n }}\n </For>\n </div>\n <Show when={!props.owner.hideAllDay}>\n <div\n class=\"k2b-calendar-time-grid__all-day\"\n style={{\n \"grid-template-columns\": `4rem repeat(${props.days.length}, minmax(0, 1fr))`,\n \"max-height\": `${props.owner.allDayMaxHeightRem ?? 7}rem`,\n }}\n >\n <div class=\"k2b-calendar-time-grid__all-day-label\">{props.labels.allDay}</div>\n <For each={props.days}>\n {(day) => {\n const dayKey = calendar.formatDateKey(day, dateConfig());\n const allDay = () => eventsByDay().get(dayKey)?.allDay ?? [];\n const previewAllDay = previewEvents().filter((event) => event.dayKey === dayKey && event.allDay);\n return (\n <div\n class=\"k2b-calendar-time-grid__all-day-cell\"\n data-calendar-day-key={dayKey}\n data-drop-preview={\n timePreview()?.allDay && calendar.formatDateKey(timePreview()!.start, dateConfig()) === dayKey ? \"true\" : undefined\n }\n data-interactive={props.owner.onSlotActivate ? \"true\" : undefined}\n {...slotInteractionProps(\n props.owner,\n () => {\n const start = startOfDay(day, dateConfig());\n return { start, end: calendar.addDays(start, 1, dateConfig()), allDay: true };\n },\n () => performance.now() < suppressSlotClickUntil,\n )}\n >\n <div class=\"k2b-calendar-time-grid__all-day-events\">\n <For each={previewAllDay}>{(event) => <div class=\"k2b-calendar-preview\">{event.title}</div>}</For>\n <For each={allDay()}>\n {(event) => (\n <EventChip\n event={event}\n owner={props.owner}\n href={eventHref(props.owner, event)}\n compact\n moving={movingEventId() === event.id}\n onMovePointerDown={\n props.owner.onEventDrop\n ? (pointerEvent, markDragged) => startAllDayMove(pointerEvent, event, markDragged)\n : undefined\n }\n />\n )}\n </For>\n </div>\n </div>\n );\n }}\n </For>\n </div>\n </Show>\n <div ref={scrollContainer} class=\"k2b-calendar-time-grid__scroll\">\n <div\n ref={timeGrid}\n class=\"k2b-calendar-time-grid__grid\"\n style={{ \"grid-template-columns\": `4rem repeat(${props.days.length}, minmax(0, 1fr))` }}\n >\n <div\n ref={timeGutter}\n class=\"k2b-calendar-time-grid__gutter\"\n style={{ \"grid-template-rows\": `repeat(${hours().length}, minmax(4rem, 1fr))` }}\n >\n <For each={hours()}>\n {(hour) => (\n <div\n ref={(element) => {\n if (hour === businessStartHour()) defaultHourMarker = element;\n }}\n class=\"k2b-calendar-time-grid__hour\"\n data-outside-business={hour < businessStartHour() || hour > businessEndHour() ? \"true\" : undefined}\n >\n {`${hour}`.padStart(2, \"0\")}:00\n </div>\n )}\n </For>\n </div>\n <For each={props.days}>\n {(day) => {\n const dayKey = calendar.formatDateKey(day, dateConfig());\n const layouts = createMemo(() => timedEventLayouts(eventsByDay().get(dayKey)?.timed ?? []));\n return (\n <div\n class=\"k2b-calendar-time-grid__column\"\n style={{\n \"min-width\": dayColumnMinWidth(layouts()),\n \"grid-template-rows\": `repeat(${hours().length}, minmax(4rem, 1fr))`,\n }}\n >\n <Show when={currentTimeLine(day) !== null}>\n <div class=\"k2b-calendar-time-grid__now\" style={{ top: `${currentTimeLine(day) ?? 0}%` }} />\n </Show>\n <For each={hours()}>\n {(hour) => (\n <div\n class=\"k2b-calendar-time-grid__slot\"\n data-outside-business={hour < businessStartHour() || hour > businessEndHour() ? \"true\" : undefined}\n data-interactive={props.owner.onSlotActivate ? \"true\" : undefined}\n {...slotInteractionProps(\n props.owner,\n () => {\n const start = zonedSlot(day, hour, dateConfig());\n return { start, end: slotEnd(start), allDay: false };\n },\n () => performance.now() < suppressSlotClickUntil,\n )}\n onPointerDown={startRange}\n />\n )}\n </For>\n <For each={previewEvents().filter((event) => event.dayKey === dayKey && !event.allDay)}>\n {(event) => {\n const layout = eventLayout(event);\n const short = event.endDate.getTime() - event.startDate.getTime() < 60 * 60_000;\n return (\n <div\n class=\"k2b-calendar-preview k2b-calendar-preview--timed\"\n data-short={short ? \"true\" : undefined}\n style={{ top: `${layout.top}%`, height: `${layout.height}%` }}\n >\n <div class=\"k2b-calendar-preview__content\">\n <Show when={event.title}>\n <div class=\"k2b-calendar-preview__title\">{event.title}</div>\n </Show>\n <div class=\"k2b-calendar-preview__label\">\n {formatTime(event.startDate, dateConfig())} - {formatTime(event.endDate, dateConfig())}\n </div>\n </div>\n </div>\n );\n }}\n </For>\n <For each={layouts()}>\n {(layoutItem) => {\n if (!isDayView() && layoutItem.lane >= visibleLaneCount(layoutItem.lanes)) return null;\n const event = layoutItem.event;\n const layout = eventLayout(event);\n const position = laneStyle(layoutItem);\n const resizeStart = (pointerEvent: PointerEvent) => {\n if (!props.owner.onEventResize) return;\n pointerEvent.preventDefault();\n pointerEvent.stopPropagation();\n beginInteraction({\n event: pointerEvent,\n scrollContainer,\n threshold: 1,\n resolve: (clientX, clientY) => {\n const pointer = timeAtPoint(clientX, clientY);\n if (!pointer) return null;\n const minimumEnd = addMinutes(event.sourceStartDate, 15);\n const end = pointer > minimumEnd ? pointer : minimumEnd;\n return { id: event.id, title: event.title, start: event.sourceStartDate, end, allDay: false };\n },\n onActivate: () => {\n suppressSlotClickUntil = performance.now() + 400;\n setMovingEventId(event.id);\n },\n onPreview: setTimePreview,\n onCommit: (next) => {\n clearInteraction();\n if (eventTimeChanged(event, next)) props.owner.onEventResize?.(event, next);\n },\n onCancel: clearInteraction,\n });\n };\n return (\n <div\n class=\"k2b-calendar-time-grid__event-position\"\n style={{\n top: `${layout.top}%`,\n height: `${layout.height}%`,\n left: position.left,\n width: position.width,\n \"z-index\": String(20 + layoutItem.lane),\n }}\n >\n <div class=\"k2b-calendar-time-grid__event-frame\">\n <EventChip\n event={event}\n owner={props.owner}\n href={eventHref(props.owner, event)}\n fill\n moving={movingEventId() === event.id}\n onMovePointerDown={\n props.owner.onEventDrop\n ? (pointerEvent, markDragged) => startTimedMove(pointerEvent, event, markDragged)\n : undefined\n }\n />\n <Show when={props.owner.onEventResize}>\n <button\n type=\"button\"\n aria-label={messages().resizeEvent}\n draggable={false}\n class=\"k2b-calendar-time-grid__resize\"\n onPointerDown={resizeStart}\n onDragStart={(event) => event.preventDefault()}\n >\n <span class=\"k2b-calendar-time-grid__resize-icon\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n </div>\n );\n }}\n </For>\n <For each={overflowLayouts(layouts())}>\n {(overflow) => {\n const layout = timeRangeLayout(overflow.groupStartDate, overflow.groupEndDate);\n const key = `${dayKey}-${overflow.groupId}`;\n const hiddenTitle = () =>\n overflow.hiddenEvents.map((event) => `${formatTime(event.startDate, dateConfig())} ${event.title}`).join(\"\\n\");\n return (\n <>\n <button\n type=\"button\"\n class=\"k2b-calendar-time-grid__overflow\"\n style={{ top: `${layout.top}%`, height: `${layout.height}%` }}\n title={hiddenTitle()}\n aria-label={messages().hiddenOverlappingEvents({ count: overflow.hiddenEvents.length })}\n onClick={(event) => {\n event.stopPropagation();\n setExpandedOverflow(expandedOverflow() === key ? \"\" : key);\n }}\n >\n <span class=\"k2b-calendar-time-grid__overflow-count\">+{overflow.hiddenEvents.length}</span>\n </button>\n <Show when={expandedOverflow() === key}>\n <div class=\"k2b-calendar-time-grid__overflow-menu\" style={{ top: `${layout.top}%` }}>\n <div class=\"k2b-calendar-time-grid__overflow-title\">\n {formatTime(overflow.groupStartDate, dateConfig())} - {formatTime(overflow.groupEndDate, dateConfig())}\n </div>\n <For each={overflow.hiddenEvents}>\n {(event) => <EventChip event={event} owner={props.owner} href={eventHref(props.owner, event)} compact />}\n </For>\n </div>\n </Show>\n </>\n );\n }}\n </For>\n </div>\n );\n }}\n </For>\n </div>\n </div>\n </div>\n );\n};\n\nconst YearView = (props: { owner: CalendarProps; date: Date; now: Date; events: NormalizedEvent[] }): JSX.Element => {\n const dateConfig = createMemo(() => ownerDateConfig(props.owner));\n const year = createMemo(() => zonedYearMonth(props.date, dateConfig()).year);\n const todayKey = createMemo(() => calendar.formatDateKey(props.now, dateConfig()));\n const eventsByDay = createMemo(() => {\n const grouped = new Map<string, NormalizedEvent[]>();\n for (const event of props.events) {\n const events = grouped.get(event.dayKey);\n if (events) events.push(event);\n else grouped.set(event.dayKey, [event]);\n }\n return grouped;\n });\n const months = createMemo(() => {\n const context = dateConfig();\n return Array.from({ length: 12 }, (_, month) => {\n const date = zonedMonthDate(year(), month, context);\n return {\n date,\n label: date.toLocaleDateString(context.locale ?? \"en\", { month: \"long\", timeZone: context.timeZone }),\n days: calendar\n .getMonthGrid(year(), month, context)\n .flat()\n .map((day) => {\n const key = calendar.formatDateKey(day, context);\n return {\n date: day,\n events: eventsByDay().get(key) ?? [],\n isToday: key === todayKey(),\n outside: !calendar.isSameMonth(day, date, context),\n number: calendar.formatDayNumber(day, context),\n };\n }),\n };\n });\n });\n\n return (\n <div class=\"k2b-calendar-year\">\n <For each={months()}>\n {(month) => (\n <div class=\"k2b-calendar-year__month\">\n <div class=\"k2b-calendar-year__title\">{month.label}</div>\n <div class=\"k2b-calendar-year__grid\">\n <For each={month.days}>\n {(day) => (\n <CalendarNavigationLink\n owner={props.owner}\n href={props.owner.getDateHref?.(day.date, \"day\") ?? \"#\"}\n anchorProps={{\n class: \"k2b-calendar-year__day\",\n \"data-today\": day.isToday ? \"true\" : undefined,\n \"data-outside\": day.outside ? \"true\" : undefined,\n }}\n >\n {day.number}\n <Show when={day.events[0]}>\n {(event) => (\n <span\n class=\"k2b-calendar-year__indicator\"\n data-color={event().colorHex ? undefined : (event().color ?? \"blue\")}\n data-today={day.isToday ? \"true\" : undefined}\n style={event().colorHex ? { \"background-color\": day.isToday ? \"white\" : event().colorHex } : undefined}\n />\n )}\n </Show>\n </CalendarNavigationLink>\n )}\n </For>\n </div>\n </div>\n )}\n </For>\n </div>\n );\n};\n\nconst MobileMonthView = (props: {\n owner: CalendarProps;\n date: Date;\n now: Date;\n selectedDate: Date;\n events: NormalizedEvent[];\n labels: Required<CalendarLabels>;\n}): JSX.Element => {\n const dateConfig = createMemo(() => ownerDateConfig(props.owner));\n const selectedDateKey = createMemo(() => calendar.formatDateKey(props.selectedDate, dateConfig()));\n const selectedEvents = createMemo(() => props.events.filter((event) => event.dayKey === selectedDateKey()));\n return (\n <div class=\"k2b-calendar-mobile-month\">\n <MonthView\n owner={{ ...props.owner, withWeekNumbers: false }}\n date={props.date}\n now={props.now}\n events={props.events}\n labels={props.labels}\n />\n <div class=\"k2b-calendar-mobile-month__agenda\">\n <div class=\"k2b-calendar-mobile-month__title\">\n {props.selectedDate.toLocaleDateString(dateConfig().locale ?? \"en\", {\n weekday: \"long\",\n month: \"long\",\n day: \"numeric\",\n timeZone: dateConfig().timeZone,\n })}\n </div>\n <Show when={selectedEvents().length > 0} fallback={<div class=\"k2b-calendar-mobile-month__empty\">{props.labels.noEvents}</div>}>\n <div class=\"k2b-calendar-mobile-month__events\">\n <For each={selectedEvents()}>\n {(event) => <EventChip event={event} owner={props.owner} href={eventHref(props.owner, event)} />}\n </For>\n </div>\n </Show>\n </div>\n </div>\n );\n};\n\nconst CalendarBody = (props: { children: JSX.Element }): JSX.Element => <div class=\"k2b-calendar-body\">{props.children}</div>;\n\nconst Calendar = (props: CalendarProps): JSX.Element => {\n const messages = useUiMessages();\n // Subviews derive their date config from the owner props, so the inherited\n // render locale is merged here once; an explicit dateConfig.locale wins.\n const localizedConfig = useDateConfigLocale(() => props.dateConfig);\n const owner = mergeProps(props, {\n get dateConfig(): DateContext {\n return localizedConfig();\n },\n });\n const view = () => props.view ?? \"month\";\n const dateConfig = createMemo(() => ownerDateConfig(owner));\n const safeDate = (value: Date | string) => {\n const parsed = parseDate(value, dateConfig());\n return validDate(parsed) ? parsed : calendar.today(dateConfig());\n };\n const date = createMemo(() => safeDate(props.date));\n const selectedDate = createMemo(() => safeDate(props.selectedDate ?? props.date));\n const [now, setNow] = createSignal(new Date());\n const normalizedEvents = createMemo(() => normalizeEvents(props.events, dateConfig()));\n const mergedLabels = createMemo<Required<CalendarLabels>>(() => ({\n today: messages().today,\n day: messages().day,\n week: messages().week,\n month: messages().month,\n year: messages().year,\n allDay: messages().allDay,\n noEvents: messages().noEvents,\n previous: messages().previous,\n next: messages().next,\n ...props.labels,\n }));\n const days = createMemo(() => {\n if (view() === \"day\") return [date()];\n return calendar.getWeekDays(date(), dateConfig());\n });\n onMount(() => {\n const updateNow = () => setNow(new Date());\n const interval = window.setInterval(updateNow, 60_000);\n document.addEventListener(\"visibilitychange\", updateNow);\n onCleanup(() => {\n window.clearInterval(interval);\n document.removeEventListener(\"visibilitychange\", updateNow);\n });\n });\n\n return (\n <section class={`k2b-content-calendar ${props.class ?? \"\"}`} aria-busy={props.navigationPending ? \"true\" : undefined}>\n <CalendarHeader date={date()} view={view()} labels={mergedLabels()} owner={owner} />\n {props.toolbarContent}\n <Show\n when={view() !== \"month\"}\n fallback={\n <CalendarBody>\n <MonthView owner={owner} date={date()} now={now()} events={normalizedEvents()} labels={mergedLabels()} />\n </CalendarBody>\n }\n >\n <Show\n when={view() !== \"year\"}\n fallback={\n <CalendarBody>\n <YearView owner={owner} date={date()} now={now()} events={normalizedEvents()} />\n </CalendarBody>\n }\n >\n <Show\n when={view() !== \"mobile-month\"}\n fallback={\n <CalendarBody>\n <MobileMonthView\n owner={owner}\n date={date()}\n now={now()}\n selectedDate={selectedDate()}\n events={normalizedEvents()}\n labels={mergedLabels()}\n />\n </CalendarBody>\n }\n >\n <TimeGridView owner={owner} date={date()} now={now()} events={normalizedEvents()} labels={mergedLabels()} days={days()} />\n </Show>\n </Show>\n </Show>\n </section>\n );\n};\n\nexport default Calendar;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,IAAI,QAAgC,cAAc;AAC3D,SAASC,KAAK,IAAIC,QAAQ,QAA0B,aAAa;AAEjE,SAASC,UAAU,EAAEC,YAAY,EAAEC,GAAG,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,IAAI,QAAQ,UAAU;AAC9F,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,OAAOC,gBAAgB,MAAM,6BAA6B;AAC1D,SAASC,mBAAmB,QAAQ,gBAAgB;AACpD,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,uBAAuB,QAAQ,yBAAyB;AACjE,SAASC,uBAAuB,EAAEC,qBAAqB,EAAEC,2BAA2B,QAAQ,oBAAoB;AAwJhH,MAAMC,eAAe,GAAIC,KAAoB,KAAmB;EAC9D,GAAGA,KAAK,CAACC,UAAU;EACnBC,QAAQ,EAAEF,KAAK,CAACE,QAAQ,IAAIF,KAAK,CAACC,UAAU,EAAEC,QAAQ;EACtDC,cAAc,EAAEH,KAAK,CAACG,cAAc,IAAIH,KAAK,CAACC,UAAU,EAAEE,cAAc,IAAIH,KAAK,CAACC,UAAU,EAAEG,YAAY,IAAI;AAChH,CAAC,CAAC;AAEF,MAAMC,eAAe,GAAG,qBAAqB;AAE7C,MAAMC,SAAS,GAAGA,CAACC,KAAoB,EAAEC,OAAqB,KAAW;EACvE,IAAID,KAAK,YAAYE,IAAI,EAAE,OAAO,IAAIA,IAAI,CAACF,KAAK,CAAC;EACjD,IAAIF,eAAe,CAACK,IAAI,CAACH,KAAK,CAAC,EAAE,OAAOxB,QAAQ,CAAC4B,iBAAiB,CAACJ,KAAK,EAAEC,OAAO,CAAC;EAClF,MAAMI,UAAU,GAAGL,KAAK,CAACM,QAAQ,CAAC,GAAG,CAAC,GAAGN,KAAK,GAAGA,KAAK,CAACO,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;EACxE,MAAMC,MAAM,GAAG,IAAIN,IAAI,CAACG,UAAU,CAAC;EACnC,IAAI,CAACI,MAAM,CAACC,KAAK,CAACF,MAAM,CAACG,OAAO,CAAC,CAAC,CAAC,EAAE,OAAOH,MAAM;EAClD,MAAM,CAACI,IAAI,EAAEC,KAAK,GAAG,GAAG,EAAEC,GAAG,GAAG,GAAG,CAAC,GAAGd,KAAK,CAACe,KAAK,CAAC,GAAG,CAAC;EACvD,OAAO,IAAIb,IAAI,CAACO,MAAM,CAACG,IAAI,CAAC,EAAEH,MAAM,CAACI,KAAK,CAAC,GAAG,CAAC,EAAEJ,MAAM,CAACK,GAAG,CAAC,EAAE,EAAE,CAAC;AACnE,CAAC;AAED,MAAME,SAAS,GAAIhB,KAAW,IAAc,CAACS,MAAM,CAACC,KAAK,CAACV,KAAK,CAACW,OAAO,CAAC,CAAC,CAAC;AAE1E,MAAMM,UAAU,GAAIC,IAAU,IAAa;EACzC,MAAMC,MAAM,GAAG,IAAIjB,IAAI,CAACA,IAAI,CAACkB,GAAG,CAACF,IAAI,CAACG,WAAW,CAAC,CAAC,EAAEH,IAAI,CAACI,QAAQ,CAAC,CAAC,EAAEJ,IAAI,CAACK,OAAO,CAAC,CAAC,CAAC,CAAC;EACtF,MAAMT,GAAG,GAAGK,MAAM,CAACK,SAAS,CAAC,CAAC,IAAI,CAAC;EACnCL,MAAM,CAACM,UAAU,CAACN,MAAM,CAACO,UAAU,CAAC,CAAC,GAAG,CAAC,GAAGZ,GAAG,CAAC;EAChD,MAAMa,SAAS,GAAG,IAAIzB,IAAI,CAACA,IAAI,CAACkB,GAAG,CAACD,MAAM,CAACS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;EACnE,OAAOC,IAAI,CAACC,IAAI,CAAC,CAAC,CAACX,MAAM,CAACR,OAAO,CAAC,CAAC,GAAGgB,SAAS,CAAChB,OAAO,CAAC,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC;AACjF,CAAC;AACD,MAAMoB,eAAe,GAAGA,CAACb,IAAU,EAAEjB,OAAqB,KAAa;EACrE,IAAI,CAACA,OAAO,EAAEN,QAAQ,EAAE,OAAOsB,UAAU,CAACC,IAAI,CAAC;EAC/C,MAAM,CAACN,IAAI,GAAG,MAAM,EAAEC,KAAK,GAAG,GAAG,EAAEC,GAAG,GAAG,GAAG,CAAC,GAAGtC,QAAQ,CAACwD,aAAa,CAACd,IAAI,EAAEjB,OAAO,CAAC,CAACc,KAAK,CAAC,GAAG,CAAC;EAChG,OAAOE,UAAU,CAAC,IAAIf,IAAI,CAACA,IAAI,CAACkB,GAAG,CAACX,MAAM,CAACG,IAAI,CAAC,EAAEH,MAAM,CAACI,KAAK,CAAC,GAAG,CAAC,EAAEJ,MAAM,CAACK,GAAG,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,MAAMmB,UAAU,GAAGA,CAACf,IAAU,EAAEjB,OAAqB,KAAazB,QAAQ,CAACyD,UAAU,CAACf,IAAI,EAAEjB,OAAO,CAAC;AACpG,MAAMiC,SAAS,GAAGA,CAAChB,IAAU,EAAEjB,OAAqB,KAClDiB,IAAI,CAACiB,kBAAkB,CAAClC,OAAO,EAAEmC,MAAM,IAAI,IAAI,EAAE;EAAEC,OAAO,EAAE,OAAO;EAAEvB,GAAG,EAAE,SAAS;EAAEnB,QAAQ,EAAEM,OAAO,EAAEN;AAAS,CAAC,CAAC;AACrH,MAAM2C,WAAW,GAAGA,CAACpB,IAAU,EAAEjB,OAAqB,KAAazB,QAAQ,CAAC+D,eAAe,CAACrB,IAAI,EAAEjB,OAAO,CAAC;AAC1G,MAAMuC,cAAc,GAAGA,CAACtB,IAAU,EAAEjB,OAAqB,KAAsC;EAC7F,MAAM,CAACW,IAAI,GAAG,MAAM,EAAEC,KAAK,GAAG,GAAG,CAAC,GAAGrC,QAAQ,CAACwD,aAAa,CAACd,IAAI,EAAEjB,OAAO,CAAC,CAACc,KAAK,CAAC,GAAG,CAAC;EACrF,OAAO;IAAEH,IAAI,EAAEH,MAAM,CAACG,IAAI,CAAC;IAAEC,KAAK,EAAEJ,MAAM,CAACI,KAAK,CAAC,GAAG;EAAE,CAAC;AACzD,CAAC;AACD,MAAM4B,cAAc,GAAGA,CAAC7B,IAAY,EAAEC,KAAa,EAAEZ,OAAqB,KAAW;EACnF,MAAMD,KAAK,GAAG,GAAGY,IAAI,IAAI8B,MAAM,CAAC7B,KAAK,GAAG,CAAC,CAAC,CAAC8B,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW;EACtE,IAAI,CAAC1C,OAAO,EAAEN,QAAQ,EAAE,OAAOI,SAAS,CAACC,KAAK,CAAC;EAC/C,OAAO,IAAIE,IAAI,CAAC1B,QAAQ,CAACoE,sBAAsB,CAAC5C,KAAK,EAAEC,OAAO,CAACN,QAAQ,EAAE;IAAEkD,cAAc,EAAE;EAAa,CAAC,CAAC,CAAC;AAC7G,CAAC;AAED,MAAMC,UAAU,GAAGA,CAAC5B,IAAU,EAAEjB,OAAqB,KAAWzB,QAAQ,CAACsE,UAAU,CAAC5B,IAAI,EAAEjB,OAAO,CAAC;AAClG,MAAM8C,QAAQ,GAAGA,CAAC7B,IAAU,EAAEjB,OAAqB,KAAWzB,QAAQ,CAACuE,QAAQ,CAAC7B,IAAI,EAAEjB,OAAO,CAAC;AAC9F,MAAM+C,YAAY,GAAGA,CAAC9B,IAAU,EAAEjB,OAAqB,KAAciB,IAAI,CAACP,OAAO,CAAC,CAAC,KAAKmC,UAAU,CAAC5B,IAAI,EAAEjB,OAAO,CAAC,CAACU,OAAO,CAAC,CAAC;AAC3H,MAAMsC,UAAU,GAAGA,CAAC/B,IAAU,EAAEgC,OAAe,KAAW,IAAIhD,IAAI,CAACgB,IAAI,CAACP,OAAO,CAAC,CAAC,GAAGuC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC;AACxG,MAAMC,SAAS,GAAGA,CAACjC,IAAU,EAAEjB,OAAqB,KAAa;EAC/D,IAAI,CAACA,OAAO,EAAEN,QAAQ,EAAE,OAAOuB,IAAI,CAACkC,QAAQ,CAAC,CAAC,GAAGlC,IAAI,CAACmC,UAAU,CAAC,CAAC,GAAG,EAAE;EACvE,MAAMrD,KAAK,GAAGxB,QAAQ,CAAC8E,mBAAmB,CAACpC,IAAI,EAAEjB,OAAO,CAACN,QAAQ,CAAC;EAClE,OAAOc,MAAM,CAACT,KAAK,CAACuD,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG9C,MAAM,CAACT,KAAK,CAACuD,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE;AACvE,CAAC;AACD,MAAMC,SAAS,GAAGA,CAAC1C,GAAS,EAAE2C,IAAY,EAAExD,OAAqB,KAAW;EAC1E,OAAOyD,eAAe,CAAC5C,GAAG,EAAE2C,IAAI,GAAG,EAAE,EAAExD,OAAO,CAAC;AACjD,CAAC;AACD,MAAMyD,eAAe,GAAGA,CAAC5C,GAAS,EAAE6C,WAAmB,EAAE1D,OAAqB,KAAW;EACvF,MAAM2D,OAAO,GAAG/B,IAAI,CAACgC,GAAG,CAAC,CAAC,EAAEhC,IAAI,CAACiC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAEH,WAAW,CAAC,CAAC;EAChE,MAAMF,IAAI,GAAG5B,IAAI,CAACkC,KAAK,CAACH,OAAO,GAAG,EAAE,CAAC;EACrC,MAAMI,MAAM,GAAGJ,OAAO,GAAG,EAAE;EAC3B,MAAM5D,KAAK,GAAG,GAAGxB,QAAQ,CAACwD,aAAa,CAAClB,GAAG,EAAEb,OAAO,CAAC,IAAIyC,MAAM,CAACe,IAAI,CAAC,CAACd,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAID,MAAM,CAACsB,MAAM,CAAC,CAACrB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;EAC3H,IAAI,CAAC1C,OAAO,EAAEN,QAAQ,EAAE,OAAOI,SAAS,CAACC,KAAK,CAAC;EAC/C,OAAO,IAAIE,IAAI,CAAC1B,QAAQ,CAACoE,sBAAsB,CAAC5C,KAAK,EAAEC,OAAO,CAACN,QAAQ,EAAE;IAAEkD,cAAc,EAAE;EAAa,CAAC,CAAC,CAAC;AAC7G,CAAC;AACD,MAAMoB,eAAe,GAAGA,CAACC,MAAuB,EAAEjE,OAAqB,KACrEiE,MAAM,CAACC,OAAO,CAAEC,KAAK,IAAK;EACxB,MAAMC,SAAS,GAAGtE,SAAS,CAACqE,KAAK,CAACE,KAAK,EAAErE,OAAO,CAAC;EACjD,IAAI,CAACe,SAAS,CAACqD,SAAS,CAAC,EAAE,OAAO,EAAE;EACpC,MAAME,SAAS,GAAGH,KAAK,CAACI,GAAG,GAAGzE,SAAS,CAACqE,KAAK,CAACI,GAAG,EAAEvE,OAAO,CAAC,GAAG,IAAI;EAClE,MAAMwE,OAAO,GAAGF,SAAS,IAAIvD,SAAS,CAACuD,SAAS,CAAC,GAAGA,SAAS,GAAG,IAAIrE,IAAI,CAACmE,SAAS,CAAC1D,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;EAC9G,MAAM+D,QAAQ,GAAG7C,IAAI,CAACgC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAEY,OAAO,CAAC9D,OAAO,CAAC,CAAC,GAAG0D,SAAS,CAAC1D,OAAO,CAAC,CAAC,CAAC;EAClF,MAAMgE,QAAQ,GAAGF,OAAO,GAAGJ,SAAS,GAAGI,OAAO,GAAG,IAAIvE,IAAI,CAACmE,SAAS,CAAC1D,OAAO,CAAC,CAAC,GAAG+D,QAAQ,CAAC;EACzF,MAAME,QAAQ,GAAGpG,QAAQ,CAACwD,aAAa,CAACqC,SAAS,EAAEpE,OAAO,CAAC;EAC3D,MAAM4E,MAAM,GAAGrG,QAAQ,CAACwD,aAAa,CAAC2C,QAAQ,EAAE1E,OAAO,CAAC;EACxD,IAAI,CAACmE,KAAK,CAACU,MAAM,IAAIF,QAAQ,KAAKC,MAAM,EAAE;IACxC,OAAO,CACL;MACE,GAAGT,KAAK;MACRC,SAAS;MACTI,OAAO,EAAEE,QAAQ;MACjBI,eAAe,EAAEV,SAAS;MAC1BW,aAAa,EAAEL,QAAQ;MACvBM,MAAM,EAAEL;IACV,CAAC,CACF;EACH;EACA,MAAMM,OAAO,GACXd,KAAK,CAACU,MAAM,IAAI9B,YAAY,CAAC2B,QAAQ,EAAE1E,OAAO,CAAC,GAC3CzB,QAAQ,CAAC2G,OAAO,CAACrC,UAAU,CAAC6B,QAAQ,EAAE1E,OAAO,CAAC,EAAE,CAAC,CAAC,EAAEA,OAAO,CAAC,GAC5D6C,UAAU,CAAC6B,QAAQ,EAAE1E,OAAO,CAAC;EACnC,MAAMmF,IAAuB,GAAG,EAAE;EAClC,KAAK,IAAItE,GAAG,GAAGgC,UAAU,CAACuB,SAAS,EAAEpE,OAAO,CAAC,EAAEa,GAAG,IAAIoE,OAAO,EAAEpE,GAAG,GAAGtC,QAAQ,CAAC2G,OAAO,CAACrE,GAAG,EAAE,CAAC,EAAEb,OAAO,CAAC,EAAE;IACtG,MAAMoF,YAAY,GAAGvE,GAAG,CAACH,OAAO,CAAC,CAAC,KAAKmC,UAAU,CAACuB,SAAS,EAAEpE,OAAO,CAAC,CAACU,OAAO,CAAC,CAAC,GAAG0D,SAAS,GAAGvB,UAAU,CAAChC,GAAG,EAAEb,OAAO,CAAC;IACtH,MAAMqF,UAAU,GAAGxE,GAAG,CAACH,OAAO,CAAC,CAAC,KAAKmC,UAAU,CAAC6B,QAAQ,EAAE1E,OAAO,CAAC,CAACU,OAAO,CAAC,CAAC,GAAGgE,QAAQ,GAAG5B,QAAQ,CAACjC,GAAG,EAAEb,OAAO,CAAC;IAChHmF,IAAI,CAACG,IAAI,CAAC;MACR,GAAGnB,KAAK;MACRC,SAAS,EAAEgB,YAAY;MACvBZ,OAAO,EAAEa,UAAU;MACnBP,eAAe,EAAEV,SAAS;MAC1BW,aAAa,EAAEL,QAAQ;MACvBM,MAAM,EAAEzG,QAAQ,CAACwD,aAAa,CAAClB,GAAG,EAAEb,OAAO,CAAC;MAC5C6E,MAAM,EAAEV,KAAK,CAACU;IAChB,CAAC,CAAC;EACJ;EACA,OAAOM,IAAI;AACb,CAAC,CAAC;AAEJ,MAAMI,SAAS,GAAGA,CAACC,KAAoB,EAAErB,KAAoB,KAAyBqB,KAAK,CAACC,YAAY,GAAGtB,KAAK,CAAC,IAAIA,KAAK,CAACuB,IAAI;AAE/H,MAAMC,WAAW,GAAGA,CAACxB,KAAsB,EAAEjD,MAAY,EAAE2D,MAAM,GAAG,KAAK,EAAE7E,OAAqB,KAA8B;EAC5H,MAAMyE,QAAQ,GAAG7C,IAAI,CAACgC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAEO,KAAK,CAACY,aAAa,CAACrE,OAAO,CAAC,CAAC,GAAGyD,KAAK,CAACW,eAAe,CAACpE,OAAO,CAAC,CAAC,CAAC;EAC1G,MAAM2D,KAAK,GAAGQ,MAAM,GAAGhC,UAAU,CAAC3B,MAAM,EAAElB,OAAO,CAAC,GAAG,IAAIC,IAAI,CAACiB,MAAM,CAAC;EACrEmD,KAAK,CAACuB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;EACtB,OAAO;IAAEvB,KAAK;IAAEE,GAAG,EAAE,IAAItE,IAAI,CAACoE,KAAK,CAAC3D,OAAO,CAAC,CAAC,GAAG+D,QAAQ,CAAC;IAAEI;EAAO,CAAC;AACrE,CAAC;AAED,MAAMgB,cAAc,GAAGA,CAAC1B,KAAsB,EAAEtD,GAAS,EAAEb,OAAqB,KAA8B;EAC5G,IAAImE,KAAK,CAACU,MAAM,EAAE,OAAOc,WAAW,CAACxB,KAAK,EAAEtB,UAAU,CAAChC,GAAG,EAAEb,OAAO,CAAC,EAAE,IAAI,EAAEA,OAAO,CAAC;EACpF,MAAM8F,UAAU,GAAG9F,OAAO,EAAEN,QAAQ,GAAGnB,QAAQ,CAAC8E,mBAAmB,CAACc,KAAK,CAACW,eAAe,EAAE9E,OAAO,CAACN,QAAQ,CAAC,GAAG,IAAI;EACnH,MAAM8D,IAAI,GAAGsC,UAAU,GAAGtF,MAAM,CAACsF,UAAU,CAACxC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAGa,KAAK,CAACW,eAAe,CAAC3B,QAAQ,CAAC,CAAC;EAC7F,MAAMY,MAAM,GAAG+B,UAAU,GAAGtF,MAAM,CAACsF,UAAU,CAACxC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAGa,KAAK,CAACW,eAAe,CAAC1B,UAAU,CAAC,CAAC;EACjG,OAAOuC,WAAW,CAACxB,KAAK,EAAEV,eAAe,CAAC5C,GAAG,EAAE2C,IAAI,GAAG,EAAE,GAAGO,MAAM,EAAE/D,OAAO,CAAC,EAAE,KAAK,EAAEA,OAAO,CAAC;AAC9F,CAAC;AAED,MAAM+F,gBAAgB,GAAGA,CAAC5B,KAAsB,EAAE6B,IAA6B,KAC7E7B,KAAK,CAACW,eAAe,CAACpE,OAAO,CAAC,CAAC,KAAKsF,IAAI,CAAC3B,KAAK,CAAC3D,OAAO,CAAC,CAAC,IACxDyD,KAAK,CAACY,aAAa,CAACrE,OAAO,CAAC,CAAC,KAAKsF,IAAI,CAACzB,GAAG,CAAC7D,OAAO,CAAC,CAAC,IACpDuF,OAAO,CAAC9B,KAAK,CAACU,MAAM,CAAC,KAAKoB,OAAO,CAACD,IAAI,CAACnB,MAAM,CAAC;AAEhD,MAAMqB,eAAe,GAAGA,CAACC,OAA+B,EAAEhB,IAAY,EAAEnF,OAAqB,KAC3FmG,OAAO,GACHnC,eAAe,CACb,CACE;EACEoC,EAAE,EAAE,WAAWD,OAAO,CAACC,EAAE,EAAE;EAC3BC,KAAK,EAAEF,OAAO,CAACE,KAAK,IAAI,EAAE;EAC1BhC,KAAK,EAAE8B,OAAO,CAAC9B,KAAK;EACpBE,GAAG,EAAE4B,OAAO,CAAC5B,GAAG;EAChBM,MAAM,EAAEsB,OAAO,CAACtB,MAAM;EACtByB,KAAK,EAAE;AACT,CAAC,CACF,EACDtG,OACF,CAAC,CAACuG,MAAM,CAAEpC,KAAK,IAAKgB,IAAI,CAACqB,IAAI,CAAE3F,GAAG,IAAKsD,KAAK,CAACa,MAAM,KAAKzG,QAAQ,CAACwD,aAAa,CAAClB,GAAG,EAAEb,OAAO,CAAC,CAAC,CAAC,GAC9F,EAAE;AAER,MAAMyG,iBAAiB,GAAIxC,MAAyB,IAAyB;EAC3E,OAAO9E,uBAAuB,CAAC8E,MAAM,EAAGE,KAAK,KAAM;IACjDE,KAAK,EAAEF,KAAK,CAACC,SAAS,CAAC1D,OAAO,CAAC,CAAC;IAChC6D,GAAG,EAAEJ,KAAK,CAACK,OAAO,CAAC9D,OAAO,CAAC;EAC7B,CAAC,CAAC,CAAC,CAACgG,GAAG,CAAC,CAAC;IAAEC,IAAI,EAAExC,KAAK;IAAEyC,IAAI;IAAEC,KAAK;IAAEC,OAAO;IAAEC,UAAU;IAAEC;EAAS,CAAC,MAAM;IACxE7C,KAAK;IACLyC,IAAI;IACJC,KAAK;IACLC,OAAO;IACPG,cAAc,EAAE,IAAIhH,IAAI,CAAC8G,UAAU,CAAC;IACpCG,YAAY,EAAE,IAAIjH,IAAI,CAAC+G,QAAQ;EACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAMG,SAAS,GAAI3B,KAQlB,IAAkB;EACjB,MAAM/F,UAAU,GAAGjB,UAAU,CAAC,MAAMe,eAAe,CAACiG,KAAK,CAAChG,KAAK,CAAC,CAAC;EACjE,MAAM8G,KAAK,GAAGA,CAAA,KAAMd,KAAK,CAACrB,KAAK,CAACmC,KAAK,IAAI,MAAM;EAC/C,MAAMc,QAAQ,GAAGA,CAAA,KAAMnB,OAAO,CAACT,KAAK,CAAChG,KAAK,CAAC6H,eAAe,CAAC,IAAI7B,KAAK,CAAChG,KAAK,CAAC6H,eAAe,KAAK7B,KAAK,CAACrB,KAAK,CAACiC,EAAE;EAC7G,MAAMkB,KAAK,GAAGA,CAAA,KAAO9B,KAAK,CAACrB,KAAK,CAACoD,QAAQ,GAAG;IAAE,uBAAuB,EAAE/B,KAAK,CAACrB,KAAK,CAACoD;EAAS,CAAC,GAAGC,SAAU;EAC1G,MAAMC,aAAa,GAAGA,CAAA,KAAMxB,OAAO,CAACT,KAAK,CAAChG,KAAK,CAACkI,eAAe,CAAC;EAChE,MAAMC,aAAa,GAAGA,CAAA,KAAM,CAACnC,KAAK,CAACrB,KAAK,CAACK,OAAO,CAAC9D,OAAO,CAAC,CAAC,GAAG8E,KAAK,CAACrB,KAAK,CAACC,SAAS,CAAC1D,OAAO,CAAC,CAAC,IAAI,SAAS;EACzG,MAAMkH,KAAK,GAAGA,CAAA,KAAM3B,OAAO,CAACT,KAAK,CAACqC,IAAI,IAAI,CAACrC,KAAK,CAACrB,KAAK,CAACU,MAAM,IAAI8C,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC;EACxF,MAAMG,QAAQ,GAAGA,CAAA,KAAM,CAACtC,KAAK,CAACrB,KAAK,CAACU,MAAM,IAAI,CAACW,KAAK,CAACuC,OAAO,IAAIJ,aAAa,CAAC,CAAC,IAAI,IAAI;EACvF,MAAMK,YAAY,GAAGA,CAAA,KAAM/B,OAAO,CAACT,KAAK,CAACrB,KAAK,CAAC8D,QAAQ,IAAI,CAACzC,KAAK,CAACuC,OAAO,IAAIJ,aAAa,CAAC,CAAC,IAAI,IAAI,CAAC;EACrG,MAAMO,eAAe,GAAGA,CAAA,KACtBjC,OAAO,CAACT,KAAK,CAACrB,KAAK,CAACgE,WAAW,EAAEC,IAAI,CAAC,CAAC,IAAI5C,KAAK,CAACqC,IAAI,IAAI,CAACrC,KAAK,CAACrB,KAAK,CAACU,MAAM,IAAI,CAACW,KAAK,CAACuC,OAAO,IAAIJ,aAAa,CAAC,CAAC,IAAI,GAAG,CAAC;EAC3H,MAAMU,SAAS,GAAGA,CAAA,KAAM,GAAGrG,UAAU,CAACwD,KAAK,CAACrB,KAAK,CAACC,SAAS,EAAE3E,UAAU,CAAC,CAAC,CAAC,MAAMuC,UAAU,CAACwD,KAAK,CAACrB,KAAK,CAACK,OAAO,EAAE/E,UAAU,CAAC,CAAC,CAAC,EAAE;EAC/H,MAAM6I,aAAa,GAAGA,CAAA,KACpB9C,KAAK,CAAChG,KAAK,CAAC+I,WAAW,GAAG/C,KAAK,CAACrB,KAAK,EAAE;IACrC4D,OAAO,EAAEvC,KAAK,CAACuC,OAAO,IAAI,KAAK;IAC/BF,IAAI,EAAErC,KAAK,CAACqC,IAAI,IAAI,KAAK;IACzBxD,KAAK,EAAEmB,KAAK,CAACrB,KAAK,CAACC,SAAS;IAC5BG,GAAG,EAAEiB,KAAK,CAACrB,KAAK,CAACK,OAAO;IACxBK,MAAM,EAAEW,KAAK,CAACrB,KAAK,CAACU,MAAM,IAAI,KAAK;IACnC8C,aAAa,EAAEA,aAAa,CAAC,CAAC;IAC9BU,SAAS,EAAEA,SAAS,CAAC;EACvB,CAAC,CAAC;EACJ,MAAMG,cAAc,IAAAC,KAAA,CAAAC,MAAA,EAAAC,QAAA,CAEyBnD,KAAK,CAACrB,KAAK,CAACkC,KAAK,IAAAuC,iBAAA,CACzD9J,IAAI;IAAA,IAAC+J,IAAIA,CAAA;MAAA,OAAEf,QAAQ,CAAC,CAAC;IAAA;IAAA,IAAAgB,SAAA;MAAA,OAAAL,KAAA,CAAAM,OAAA,EAAAJ,QAAA,CACoBN,SAAS,CAAC,CAAC;IAAA;EAAA,IAAAO,iBAAA,CAEpD9J,IAAI;IAAA,IAAC+J,IAAIA,CAAA;MAAA,OAAEb,YAAY,CAAC,CAAC;IAAA;IAAA,IAAAc,SAAA;MAAA,OAAAL,KAAA,CAAAM,OAAA,EAAAJ,QAAA,CACgBnD,KAAK,CAACrB,KAAK,CAAC8D,QAAQ;IAAA;EAAA,IAAAW,iBAAA,CAE7D9J,IAAI;IAAA,IAAC+J,IAAIA,CAAA;MAAA,OAAEX,eAAe,CAAC,CAAC;IAAA;IAAA,IAAAY,SAAA;MAAA,OAAAL,KAAA,CAAAO,OAAA,EAAAL,QAAA,CACoBnD,KAAK,CAACrB,KAAK,CAACgE,WAAW;IAAA;EAAA,GAG3E;EACD,MAAMc,OAAO,GAAGA,CAAA,KAAMX,aAAa,CAAC,CAAC,IAAIE,cAAc;EACvD,MAAMU,YAAY,GAAGA,CAAA,KAAMzB,aAAa,CAAC,CAAC,IAAIxB,OAAO,CAACT,KAAK,CAAC2D,iBAAiB,CAAC;EAC9E,IAAIC,kBAAkB,GAAG,CAAC;EAC1B,MAAMC,OAAO,GAAIlF,KAAiB,IAAK;IACrC,IAAImF,WAAW,CAACC,GAAG,CAAC,CAAC,GAAGH,kBAAkB,EAAE;MAC1CjF,KAAK,CAACqF,cAAc,CAAC,CAAC;MACtBrF,KAAK,CAACsF,eAAe,CAAC,CAAC;MACvB;IACF;IACA,IAAI,CAACjE,KAAK,CAAChG,KAAK,CAACkI,eAAe,IAAIlC,KAAK,CAAChG,KAAK,CAACkK,eAAe,KAAK,QAAQ,EAAE;IAC9EvF,KAAK,CAACqF,cAAc,CAAC,CAAC;IACtBrF,KAAK,CAACsF,eAAe,CAAC,CAAC;IACvBjE,KAAK,CAAChG,KAAK,CAACkI,eAAe,CAAClC,KAAK,CAACrB,KAAK,CAAC;EAC1C,CAAC;EACD,MAAMwF,aAAa,GAAIxF,KAAiB,IAAK;IAC3C,IAAI,CAACqB,KAAK,CAAChG,KAAK,CAACkI,eAAe,IAAIlC,KAAK,CAAChG,KAAK,CAACkK,eAAe,KAAK,QAAQ,EAAE;IAC9EvF,KAAK,CAACqF,cAAc,CAAC,CAAC;IACtBrF,KAAK,CAACsF,eAAe,CAAC,CAAC;IACvBjE,KAAK,CAAChG,KAAK,CAACkI,eAAe,CAAClC,KAAK,CAACrB,KAAK,CAAC;EAC1C,CAAC;EACD,MAAMyF,eAAe,GAAIzF,KAAoB,IAAK;IAChD,IAAI,CAACsD,aAAa,CAAC,CAAC,IAAKtD,KAAK,CAAC0F,GAAG,KAAK,OAAO,IAAI1F,KAAK,CAAC0F,GAAG,KAAK,GAAI,EAAE;IACtE1F,KAAK,CAACqF,cAAc,CAAC,CAAC;IACtBhE,KAAK,CAAChG,KAAK,CAACkI,eAAe,GAAGlC,KAAK,CAACrB,KAAK,CAAC;EAC5C,CAAC;EACD,MAAM2F,aAAa,GAAI3F,KAAmB,IAAK;IAC7C,IAAIA,KAAK,CAAC4F,WAAW,KAAK,OAAO,EAAE;IACnC,IAAIvE,KAAK,CAAC2D,iBAAiB,EAAEhF,KAAK,CAACsF,eAAe,CAAC,CAAC;IACpDjE,KAAK,CAAC2D,iBAAiB,GAAGhF,KAAK,EAAE,MAAM;MACrCiF,kBAAkB,GAAGE,WAAW,CAACC,GAAG,CAAC,CAAC,GAAG,GAAG;IAC9C,CAAC,CAAC;EACJ,CAAC;EAED,OAAO/D,KAAK,CAACE,IAAI,GAAA+C,KAAA,CAAAuB,OAAA,EAAAC,cAAA,SAAAtB,QAAA,CAEPnD,KAAK,CAACE,IAAI,iBAAAuE,cAAA,eAGJzE,KAAK,CAACrB,KAAK,CAACoD,QAAQ,GAAAoB,QAAA,CAAGnB,SAAS,UAAAmB,QAAA,CAAGrC,KAAK,CAAC,CAAC,kBAAA2D,cAAA,kBACvC7C,QAAQ,CAAC,CAAC,GAAG,MAAM,GAAAuB,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,iBAChCzE,KAAK,CAACuC,OAAO,GAAG,MAAM,GAAAY,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,cACrCzE,KAAK,CAACqC,IAAI,GAAG,MAAM,GAAAc,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,eAC9BrC,KAAK,CAAC,CAAC,GAAG,MAAM,GAAAe,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,gBAC3BzE,KAAK,CAAC0E,MAAM,GAAG,MAAM,GAAAvB,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,qBAC5BxC,aAAa,CAAC,CAAC,GAAG,MAAM,GAAAkB,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,iBAAAtB,QAAA,CACxCnD,KAAK,CAACrB,KAAK,CAACgG,OAAO,kBAAAF,cAAA,uBAAAtB,QAAA,CACbnD,KAAK,CAACrB,KAAK,CAACiG,eAAe,iBAAAC,UAAA,CACxC/C,KAAK,CAAC,CAAC,GAAA2C,cAAA,cACHzE,KAAK,CAAC2D,iBAAiB,GAAAR,QAAA,CAAG,KAAK,UAAAA,QAAA,CAAGnB,SAAS,iBAK1C,GAAAmB,QAAA,CAAGnD,KAAK,CAACrB,KAAK,CAACkC,KAAK,UAAGb,KAAK,CAACrB,KAAK,CAACU,MAAM,GAAG,EAAE,GAAG,KAAA8D,QAAA,CAAK3G,UAAU,CAACwD,KAAK,CAACrB,KAAK,CAACC,SAAS,EAAE3E,UAAU,CAAC,CAAC,CAAC,cAAAkJ,QAAA,CAAO3G,UAAU,CAACwD,KAAK,CAACrB,KAAK,CAACK,OAAO,EAAE/E,UAAU,CAAC,CAAC,CAAC,SAAE,EAAE,EAAAkJ,QAAA,CAExKM,OAAO,CAAC,CAAC,KAEVC,YAAY,CAAC,CAAC,GAAAT,KAAA,CAAA6B,OAAA,EAAAL,cAAA,eAKFzE,KAAK,CAACrB,KAAK,CAACoD,QAAQ,GAAAoB,QAAA,CAAGnB,SAAS,UAAAmB,QAAA,CAAGrC,KAAK,CAAC,CAAC,kBAAA2D,cAAA,kBACvC7C,QAAQ,CAAC,CAAC,GAAG,MAAM,GAAAuB,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,iBAChCzE,KAAK,CAACuC,OAAO,GAAG,MAAM,GAAAY,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,cACrCzE,KAAK,CAACqC,IAAI,GAAG,MAAM,GAAAc,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,eAC9BrC,KAAK,CAAC,CAAC,GAAG,MAAM,GAAAe,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,gBAC3BzE,KAAK,CAAC0E,MAAM,GAAG,MAAM,GAAAvB,QAAA,CAAGnB,SAAS,iBAAAyC,cAAA,iBAAAtB,QAAA,CAEhCnD,KAAK,CAACrB,KAAK,CAACgG,OAAO,iBAAAE,UAAA,CAC1B/C,KAAK,CAAC,CAAC,GAKF,GAAAqB,QAAA,CAAGnD,KAAK,CAACrB,KAAK,CAACkC,KAAK,UAAGb,KAAK,CAACrB,KAAK,CAACU,MAAM,GAAG,EAAE,GAAG,KAAA8D,QAAA,CAAK3G,UAAU,CAACwD,KAAK,CAACrB,KAAK,CAACC,SAAS,EAAE3E,UAAU,CAAC,CAAC,CAAC,cAAAkJ,QAAA,CAAO3G,UAAU,CAACwD,KAAK,CAACrB,KAAK,CAACK,OAAO,EAAE/E,UAAU,CAAC,CAAC,CAAC,SAAE,EAAE,EAAAkJ,QAAA,CAExKM,OAAO,CAAC,CAAC,KAAAR,KAAA,CAAA8B,OAAA,EAAAN,cAAA,eAOEzE,KAAK,CAACrB,KAAK,CAACoD,QAAQ,GAAAoB,QAAA,CAAGnB,SAAS,UAAAmB,QAAA,CAAGrC,KAAK,CAAC,CAAC,kBAAA2D,cAAA,kBACvC7C,QAAQ,CAAC,CAAC,GAAG,MAAM,GAAAuB,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,iBAChCzE,KAAK,CAACuC,OAAO,GAAG,MAAM,GAAAY,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,cACrCzE,KAAK,CAACqC,IAAI,GAAG,MAAM,GAAAc,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,eAC9BrC,KAAK,CAAC,CAAC,GAAG,MAAM,GAAAe,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,gBAC3BzE,KAAK,CAAC0E,MAAM,GAAG,MAAM,GAAAvB,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,qBAAAtB,QAAA,CAC5BnB,SAAS,kBAAAyC,cAAA,iBAAAtB,QAAA,CACbnD,KAAK,CAACrB,KAAK,CAACgG,OAAO,iBAAAE,UAAA,CAC1B/C,KAAK,CAAC,CAAC,GACF,GAAAqB,QAAA,CAAGnD,KAAK,CAACrB,KAAK,CAACkC,KAAK,UAAGb,KAAK,CAACrB,KAAK,CAACU,MAAM,GAAG,EAAE,GAAG,KAAA8D,QAAA,CAAK3G,UAAU,CAACwD,KAAK,CAACrB,KAAK,CAACC,SAAS,EAAE3E,UAAU,CAAC,CAAC,CAAC,cAAAkJ,QAAA,CAAO3G,UAAU,CAACwD,KAAK,CAACrB,KAAK,CAACK,OAAO,EAAE/E,UAAU,CAAC,CAAC,CAAC,SAAE,EAAE,EAAAkJ,QAAA,CAExKM,OAAO,CAAC,CAAC,EAEb;AACH,CAAC;AAED,MAAMuB,oBAAoB,GAAGA,CAC3BhL,KAAoB,EACpBiL,IAAmC,EACnCC,UAA0B,EAC1BC,aAAa,GAAG,KAAK,KAClB;EACH,MAAMC,WAAW,GAAIzG,KAAY,IAAK;IACpC,IAAI,EAAEA,KAAK,CAACjD,MAAM,YAAY2J,OAAO,CAAC,EAAE,OAAO,KAAK;IACpD,MAAMC,OAAO,GAAG3G,KAAK,CAACjD,MAAM,CAAC6J,OAAO,CAAC,gCAAgC,CAAC;IACtE,OAAO9E,OAAO,CAAC6E,OAAO,IAAIA,OAAO,KAAK3G,KAAK,CAAC6G,aAAa,CAAC;EAC5D,CAAC;EACD,MAAMC,WAAW,GAAGhF,OAAO,CAACzG,KAAK,CAAC0L,cAAc,CAAC;EACjD,MAAMC,QAAQ,GAAIhH,KAAY,IAAK;IACjC,IAAI,CAAC3E,KAAK,CAAC0L,cAAc,IAAIN,WAAW,CAACzG,KAAK,CAAC,IAAIuG,UAAU,GAAG,CAAC,EAAE;IACnEvG,KAAK,CAACqF,cAAc,CAAC,CAAC;IACtBhK,KAAK,CAAC0L,cAAc,CAACT,IAAI,CAAC,CAAC,CAAC;EAC9B,CAAC;EACD,OAAO;IACLW,IAAI,EAAEH,WAAW,IAAI,CAACN,aAAa,GAAI,QAAQ,GAAanD,SAAS;IACrE6D,QAAQ,EAAEJ,WAAW,IAAI,CAACN,aAAa,GAAG,CAAC,GAAGnD,SAAS;IACvD6B,OAAO,EAAGlF,KAAiB,IAAK;MAC9B,IAAI3E,KAAK,CAAC8L,cAAc,KAAK,QAAQ,EAAE;MACvCH,QAAQ,CAAChH,KAAK,CAAC;IACjB,CAAC;IACDoH,UAAU,EAAGpH,KAAiB,IAAK;MACjC,IAAI3E,KAAK,CAAC8L,cAAc,KAAK,QAAQ,EAAE;MACvCH,QAAQ,CAAChH,KAAK,CAAC;IACjB,CAAC;IACDqH,SAAS,EAAEb,aAAa,GACpBnD,SAAS,GACRrD,KAAoB,IAAK;MACxB,IAAIA,KAAK,CAAC0F,GAAG,KAAK,OAAO,IAAI1F,KAAK,CAAC0F,GAAG,KAAK,GAAG,EAAEsB,QAAQ,CAAChH,KAAK,CAAC;IACjE;EACN,CAAC;AACH,CAAC;AAcD;AACA,MAAMsH,sBAAsB,GAAIjG,KAAkC,IAAkB;EAClF,MAAMkG,OAAO,GAAGA,CAAA,KAAMlG,KAAK,CAAChG,KAAK,CAACmM,UAAU,GAAGnG,KAAK,CAACE,IAAI,CAAC;EAC1D,MAAMkG,YAA6D,GAAIzH,KAAK,IAAK;IAC/E,MAAM0H,MAAM,GAAG1H,KAAK,CAAC6G,aAAa;IAClC,IACE7G,KAAK,CAAC2H,gBAAgB,IACtB3H,KAAK,CAAC4H,MAAM,KAAK,CAAC,IAClB5H,KAAK,CAAC6H,OAAO,IACb7H,KAAK,CAAC8H,OAAO,IACb9H,KAAK,CAAC+H,QAAQ,IACd/H,KAAK,CAACgI,MAAM,IACXN,MAAM,CAAC3K,MAAM,IAAI2K,MAAM,CAAC3K,MAAM,KAAK,OAAQ,IAC5C2K,MAAM,CAACO,YAAY,CAAC,UAAU,CAAC,IAC/B,IAAIC,GAAG,CAACR,MAAM,CAACnG,IAAI,CAAC,CAAC4G,MAAM,KAAKC,MAAM,CAACtE,QAAQ,CAACqE,MAAM,EACtD;MACA;IACF;IACAnI,KAAK,CAACqF,cAAc,CAAC,CAAC;IACtBhE,KAAK,CAAChG,KAAK,CAACgN,cAAc,GAAGhH,KAAK,CAACE,IAAI,CAAC;EAC1C,CAAC;EACD,OAAOF,KAAK,CAAChG,KAAK,CAACgN,cAAc,GAAAC,YAAA,MAAAC,YAAA,OACxBlH,KAAK,CAACmH,WAAW;IAAA,IAAEjH,IAAIA,CAAA;MAAA,OAAEF,KAAK,CAACE,IAAI;IAAA;EAAA,IAAAiD,QAAA,CACvCnD,KAAK,CAACsD,QAAQ,YAEftD,KAAK,CAAChG,KAAK,CAACoN,UAAU,GAAAhE,iBAAA,CACvBvK,IAAI,EAAAqO,YAAA,OACClH,KAAK,CAACmH,WAAW;IAAA,IACrBjH,IAAIA,CAAA;MAAA,OAAEF,KAAK,CAACE,IAAI;IAAA;IAChBmH,MAAM;IAAA,IACND,UAAUA,CAAA;MAAA,OAAEpH,KAAK,CAAChG,KAAK,CAACoN,UAAU;IAAA;IAClCE,cAAc,EAAEpB,OAAO;IACvBqB,OAAO,EAAErB,OAAO;IAAA,IAAA5C,SAAA;MAAA,OAEftD,KAAK,CAACsD,QAAQ;IAAA;EAAA,MAAA2D,YAAA,MAAAC,YAAA,OAGVlH,KAAK,CAACmH,WAAW;IAAA,IAAEjH,IAAIA,CAAA;MAAA,OAAEF,KAAK,CAACE,IAAI;IAAA;EAAA,IAAAiD,QAAA,CACvCnD,KAAK,CAACsD,QAAQ,SAElB;AACH,CAAC;AAED,MAAMkE,iBAAiB,GAAIxH,KAI1B,IAAkB;EACjB,MAAMyH,QAAQ,GAAG/N,aAAa,CAAC,CAAC;EAChC,MAAMgO,IAAyB,GAAG,EAAE;EACpC,MAAMC,cAAc,GAAGA,CAACC,YAAoB,EAAEC,SAAiB,KAAK;IAClE,IAAI7H,KAAK,CAAC8H,OAAO,CAACC,MAAM,KAAK,CAAC,EAAE;IAChCL,IAAI,CAAC,CAACE,YAAY,GAAGC,SAAS,GAAG7H,KAAK,CAAC8H,OAAO,CAACC,MAAM,IAAI/H,KAAK,CAAC8H,OAAO,CAACC,MAAM,CAAC,EAAEC,KAAK,CAAC,CAAC;EACzF,CAAC;EACD,MAAMhC,SAAS,GAAGA,CAACrH,KAAoB,EAAEsJ,KAAa,KAAK;IACzD,IAAItJ,KAAK,CAAC0F,GAAG,KAAK,YAAY,IAAI1F,KAAK,CAAC0F,GAAG,KAAK,WAAW,EAAE;MAC3D1F,KAAK,CAACqF,cAAc,CAAC,CAAC;MACtB2D,cAAc,CAACM,KAAK,EAAE,CAAC,CAAC;IAC1B,CAAC,MAAM,IAAItJ,KAAK,CAAC0F,GAAG,KAAK,WAAW,IAAI1F,KAAK,CAAC0F,GAAG,KAAK,SAAS,EAAE;MAC/D1F,KAAK,CAACqF,cAAc,CAAC,CAAC;MACtB2D,cAAc,CAACM,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC,MAAM,IAAItJ,KAAK,CAAC0F,GAAG,KAAK,MAAM,IAAI1F,KAAK,CAAC0F,GAAG,KAAK,KAAK,EAAE;MACtD1F,KAAK,CAACqF,cAAc,CAAC,CAAC;MACtB0D,IAAI,CAAC/I,KAAK,CAAC0F,GAAG,KAAK,MAAM,GAAG,CAAC,GAAGrE,KAAK,CAAC8H,OAAO,CAACC,MAAM,GAAG,CAAC,CAAC,EAAEC,KAAK,CAAC,CAAC;IACpE;EACF,CAAC;EAED,OAAA/E,KAAA,CAAAiF,OAAA,EAAAzD,cAAA,eAAAtB,QAAA,CAGgBsE,QAAQ,CAAC,CAAC,CAACU,YAAY,iBAAAhF,QAAA,CAAAC,iBAAA,CAIlClK,GAAG;IAAA,IAACkP,IAAIA,CAAA;MAAA,OAAEpI,KAAK,CAAC8H,OAAO;IAAA;IAAAxE,QAAA,EACrBA,CAAC+E,MAAM,EAAEJ,KAAK,KAAK;MAClB,MAAMK,MAAM,GAAGA,CAAA,KAAM,CAACtI,KAAK,CAACuI,IAAI,KAAK,cAAc,GAAG,OAAO,GAAGvI,KAAK,CAACuI,IAAI,MAAMF,MAAM,CAAC9N,KAAK;MAC5F,MAAM2F,IAAI,GAAGA,CAAA,KAAMF,KAAK,CAAChG,KAAK,CAACwO,WAAW,GAAGH,MAAM,CAAC9N,KAAK,CAAC,IAAI,GAAG;MACjE,OAAA6I,iBAAA,CACG6C,sBAAsB;QAAA,IACrBjM,KAAKA,CAAA;UAAA,OAAEgG,KAAK,CAAChG,KAAK;QAAA;QAAA,IAClBkG,IAAIA,CAAA;UAAA,OAAEA,IAAI,CAAC,CAAC;QAAA;QAAA,IACZiH,WAAWA,CAAA;UAAA,OAAE;YACXsB,GAAG,EAAGC,OAAO,IAAK;cAChBhB,IAAI,CAACO,KAAK,CAAC,CAAC,CAAC,GAAGS,OAAO;YACzB,CAAC;YACD9C,IAAI,EAAE,OAAO;YACb,cAAc,EAAE0C,MAAM,CAAC,CAAC;YACxBzC,QAAQ,EAAEyC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3BK,KAAK,EAAE,+BAA+B;YACtC,cAAc,EACZV,KAAK,CAAC,CAAC,GAAGjI,KAAK,CAAC8H,OAAO,CAACC,MAAM,GAAG,CAAC,IAClC,CAACO,MAAM,CAAC,CAAC,IACT,CAACtI,KAAK,CAACuI,IAAI,KAAK,cAAc,GAAG,OAAO,GAAGvI,KAAK,CAACuI,IAAI,MAAMvI,KAAK,CAAC8H,OAAO,CAACG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE1N,KAAK,GACxF,MAAM,GACNyH,SAAS;YACfgE,SAAS,EAAGrH,KAAK,IAAKqH,SAAS,CAACrH,KAAK,EAAEsJ,KAAK,CAAC,CAAC;UAChD,CAAC;QAAA;QAAA,IAAA3E,SAAA;UAAA,OAEA+E,MAAM,CAACO,KAAK;QAAA;MAAA;IAGnB;EAAC;AAIT,CAAC;AAED,MAAMC,oBAAoB,GAAGA,CAACpN,IAAU,EAAE8M,IAAkB,EAAEV,SAAiB,EAAE5N,UAAuB,KAAK;EAC3G,IAAIsO,IAAI,KAAK,MAAM,EAAE,OAAOxP,QAAQ,CAAC+P,SAAS,CAACrN,IAAI,EAAEoM,SAAS,GAAG,EAAE,EAAE5N,UAAU,CAAC;EAChF,IAAIsO,IAAI,KAAK,OAAO,IAAIA,IAAI,KAAK,cAAc,EAAE,OAAOxP,QAAQ,CAAC+P,SAAS,CAACrN,IAAI,EAAEoM,SAAS,EAAE5N,UAAU,CAAC;EACvG,OAAOlB,QAAQ,CAAC2G,OAAO,CAACjE,IAAI,EAAEoM,SAAS,IAAIU,IAAI,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,EAAEtO,UAAU,CAAC;AACjF,CAAC;AAED,MAAM8O,cAAc,GAAI/I,KAAiG,IAAkB;EACzI,MAAMyH,QAAQ,GAAG/N,aAAa,CAAC,CAAC;EAChC,MAAMO,UAAU,GAAGA,CAAA,KAAMF,eAAe,CAACiG,KAAK,CAAChG,KAAK,CAAC;EACrD,MAAMgP,QAAQ,GAAGA,CAAA,KAAMH,oBAAoB,CAAC7I,KAAK,CAACvE,IAAI,EAAEuE,KAAK,CAACuI,IAAI,EAAE,CAAC,CAAC,EAAEtO,UAAU,CAAC,CAAC,CAAC;EACrF,MAAMuG,IAAI,GAAGA,CAAA,KAAMqI,oBAAoB,CAAC7I,KAAK,CAACvE,IAAI,EAAEuE,KAAK,CAACuI,IAAI,EAAE,CAAC,EAAEtO,UAAU,CAAC,CAAC,CAAC;EAChF,MAAM4G,KAAK,GAAGA,CAAA,KAAM;IAClB,IAAIb,KAAK,CAACuI,IAAI,KAAK,MAAM,EACvB,OAAO,IAAIU,IAAI,CAACC,cAAc,CAACjP,UAAU,CAAC,CAAC,CAAC0C,MAAM,IAAI,IAAI,EAAE;MAAExB,IAAI,EAAE,SAAS;MAAEjB,QAAQ,EAAED,UAAU,CAAC,CAAC,CAACC;IAAS,CAAC,CAAC,CAACiP,MAAM,CAACnJ,KAAK,CAACvE,IAAI,CAAC;IACtI,IAAIuE,KAAK,CAACuI,IAAI,KAAK,KAAK,EACtB,OAAOvI,KAAK,CAACvE,IAAI,CAACiB,kBAAkB,CAACzC,UAAU,CAAC,CAAC,CAAC0C,MAAM,IAAI,IAAI,EAAE;MAChEC,OAAO,EAAE,MAAM;MACfxB,KAAK,EAAE,MAAM;MACbC,GAAG,EAAE,SAAS;MACdF,IAAI,EAAE,SAAS;MACfjB,QAAQ,EAAED,UAAU,CAAC,CAAC,CAACC;IACzB,CAAC,CAAC;IACJ,IAAI8F,KAAK,CAACuI,IAAI,KAAK,MAAM,EACvB,OAAO,GAAG9L,SAAS,CAAC1D,QAAQ,CAACqQ,WAAW,CAACpJ,KAAK,CAACvE,IAAI,EAAExB,UAAU,CAAC,CAAC,CAAC,EAAEA,UAAU,CAAC,CAAC,CAAC,MAAMwC,SAAS,CAAC1D,QAAQ,CAAC2G,OAAO,CAAC3G,QAAQ,CAACqQ,WAAW,CAACpJ,KAAK,CAACvE,IAAI,EAAExB,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAEA,UAAU,CAAC,CAAC,CAAC,EAAEA,UAAU,CAAC,CAAC,CAAC,EAAE;IACrM,OAAO4C,WAAW,CAACmD,KAAK,CAACvE,IAAI,EAAExB,UAAU,CAAC,CAAC,CAAC;EAC9C,CAAC;EACD,MAAMoP,MAAM,GAAI5N,IAAU,IAAKuE,KAAK,CAAChG,KAAK,CAACsP,YAAY,GAAG7N,IAAI,EAAEuE,KAAK,CAACuI,IAAI,CAAC;EAC3E,MAAMgB,MAAM,GAAIhB,IAAkB,IAAK;IACrC,IAAIvI,KAAK,CAAChG,KAAK,CAACwP,YAAY,EAAE;MAC5BxJ,KAAK,CAAChG,KAAK,CAACwP,YAAY,CAACjB,IAAI,CAAC;MAC9B;IACF;IACA,MAAMrI,IAAI,GAAGF,KAAK,CAAChG,KAAK,CAACwO,WAAW,GAAGD,IAAI,CAAC;IAC5C,IAAIrI,IAAI,EAAE6G,MAAM,CAACtE,QAAQ,CAACvC,IAAI,GAAGA,IAAI;EACvC,CAAC;EACD,MAAMuJ,SAAS,GAAGA,CAAChO,IAAU,EAAEiO,IAAY,EAAEd,KAAa,KAAK;IAC7D,MAAM1I,IAAI,GAAGF,KAAK,CAAChG,KAAK,CAAC2P,WAAW,GAAGlO,IAAI,EAAEuE,KAAK,CAACuI,IAAI,CAAC;IACxD,OAAO,CAACvI,KAAK,CAAChG,KAAK,CAACgN,cAAc,IAAIhH,KAAK,CAAChG,KAAK,CAACoN,UAAU,KAAKlH,IAAI,GAAAkD,iBAAA,CAClE6C,sBAAsB;MAAA,IACrBjM,KAAKA,CAAA;QAAA,OAAEgG,KAAK,CAAChG,KAAK;MAAA;MAClBkG,IAAI,EAAEA,IAAI;MACViH,WAAW,EAAE;QAAE,YAAY,EAAEyB,KAAK;QAAE/H,KAAK,EAAE+H,KAAK;QAAED,KAAK,EAAE;MAAkC,CAAC;MAAA,IAAArF,SAAA;QAAA,OAAAL,KAAA,CAAA2G,OAAA,EAElF,MAAAzG,QAAA,CAAMuG,IAAI,SAAE;MAAA;IAAA,KAEtB1J,KAAK,CAAChG,KAAK,CAACsP,YAAY,GAAArG,KAAA,CAAA4G,OAAA,EAAApF,cAAA,eAAAtB,QAAA,CACQyF,KAAK,iBAC3B,MAAAzF,QAAA,CAAMuG,IAAI,SAAE,IAAAtG,iBAAA,CAGvB6C,sBAAsB;MAAA,IACrBjM,KAAKA,CAAA;QAAA,OAAEgG,KAAK,CAAChG,KAAK;MAAA;MAClBkG,IAAI,EAAEA,IAAI,IAAI,GAAG;MACjBiH,WAAW,EAAE;QAAE,YAAY,EAAEyB,KAAK;QAAE/H,KAAK,EAAE+H,KAAK;QAAED,KAAK,EAAE;MAAkC,CAAC;MAAA,IAAArF,SAAA;QAAA,OAAAL,KAAA,CAAA2G,OAAA,EAElF,MAAAzG,QAAA,CAAMuG,IAAI,SAAE;MAAA;IAAA,EAEzB;EACH,CAAC;EACD,MAAMI,WAAW,GAAGA,CAAA,KAAM;IACxB,MAAMC,KAAK,GAAGhR,QAAQ,CAACgR,KAAK,CAAC9P,UAAU,CAAC,CAAC,CAAC;IAC1C,MAAMiG,IAAI,GAAGF,KAAK,CAAChG,KAAK,CAAC2P,WAAW,GAAGI,KAAK,EAAE/J,KAAK,CAACuI,IAAI,CAAC;IACzD,MAAMK,KAAK,GAAA3F,KAAA,CAAA+G,OAAA,EAAA7G,QAAA,CAAoCnD,KAAK,CAACiK,MAAM,CAACF,KAAK,EAAQ;IACzE,OAAO,CAAC/J,KAAK,CAAChG,KAAK,CAACgN,cAAc,IAAIhH,KAAK,CAAChG,KAAK,CAACoN,UAAU,KAAKlH,IAAI,GAAAkD,iBAAA,CAClE6C,sBAAsB;MAAA,IACrBjM,KAAKA,CAAA;QAAA,OAAEgG,KAAK,CAAChG,KAAK;MAAA;MAClBkG,IAAI,EAAEA,IAAI;MACViH,WAAW,EAAE;QAAEwB,KAAK,EAAE,uCAAuC;QAAE,WAAW,EAAE,IAAI;QAAE,cAAc,EAAE;MAAQ,CAAC;MAAArF,QAAA,EAE1GsF;IAAK,KAEN5I,KAAK,CAAChG,KAAK,CAACsP,YAAY,GAAAlG,iBAAA,CACzB7J,MAAM;MAAC2Q,IAAI;MAAUC,OAAO;MAASC,IAAI;MAAA;MAAyCvG,OAAO,EAAEA,CAAA,KAAMwF,MAAM,CAACU,KAAK,CAAC;MAAA,IAAAzG,SAAA;QAAA,OAC5GtD,KAAK,CAACiK,MAAM,CAACF,KAAK;MAAA;IAAA,KAAA3G,iBAAA,CAGpB6C,sBAAsB;MAAA,IACrBjM,KAAKA,CAAA;QAAA,OAAEgG,KAAK,CAAChG,KAAK;MAAA;MAClBkG,IAAI,EAAEA,IAAI,IAAI,GAAG;MACjBiH,WAAW,EAAE;QAAEwB,KAAK,EAAE,uCAAuC;QAAE,WAAW,EAAE,IAAI;QAAE,cAAc,EAAE;MAAQ,CAAC;MAAArF,QAAA,EAE1GsF;IAAK,EAET;EACH,CAAC;EACD,MAAMyB,WAAW,GAAGrR,UAAU,CAAC,MAE3B,CACE;IAAEuB,KAAK,EAAE,KAAK;IAAEqO,KAAK,EAAE5I,KAAK,CAACiK,MAAM,CAAC5O;EAAI,CAAC,EACzC;IAAEd,KAAK,EAAE,MAAM;IAAEqO,KAAK,EAAE5I,KAAK,CAACiK,MAAM,CAACK;EAAK,CAAC,EAC3C;IAAE/P,KAAK,EAAE,OAAO;IAAEqO,KAAK,EAAE5I,KAAK,CAACiK,MAAM,CAAC7O;EAAM,CAAC,EAC7C;IAAEb,KAAK,EAAE,MAAM;IAAEqO,KAAK,EAAE5I,KAAK,CAACiK,MAAM,CAAC9O;EAAK,CAAC,CAC5C,CACD4F,MAAM,CAAEsH,MAAM,IAAK,CAACrI,KAAK,CAAChG,KAAK,CAACuQ,KAAK,IAAIvK,KAAK,CAAChG,KAAK,CAACuQ,KAAK,CAAC1P,QAAQ,CAACwN,MAAM,CAAC9N,KAAK,CAAC,CACrF,CAAC;EAED,OAAA0I,KAAA,CAAAuH,QAAA,EAAArH,QAAA,CAGOsG,SAAS,CAACT,QAAQ,CAAC,CAAC,EAAE,iBAAiB,EAAEhJ,KAAK,CAACiK,MAAM,CAACjB,QAAQ,CAAC,GAAA7F,QAAA,CAC/DsG,SAAS,CAACjJ,IAAI,CAAC,CAAC,EAAE,kBAAkB,EAAER,KAAK,CAACiK,MAAM,CAACzJ,IAAI,CAAC,GAAA2C,QAAA,CAChBtC,KAAK,CAAC,CAAC,GAAAsC,QAAA,CAG/C2G,WAAW,CAAC,CAAC,GAAA3G,QAAA,CAAAC,iBAAA,CACb9J,IAAI;IAAA,IACH+J,IAAIA,CAAA;MAAA,OAAE,CAACrD,KAAK,CAAChG,KAAK,CAACwP,YAAY,IAAIxJ,KAAK,CAAChG,KAAK,CAACwO,WAAW;IAAA;IAAA,IAC1DiC,QAAQA,CAAA;MAAA,OAAArH,iBAAA,CACL5J,gBAAgB;QACfe,KAAK,EAAEA,CAAA,KAAOyF,KAAK,CAACuI,IAAI,KAAK,cAAc,GAAG,OAAO,GAAGvI,KAAK,CAACuI,IAAK;QACnEmC,aAAa,EAAEnB,MAAM;QAAA,IACrBoB,SAASA,CAAA;UAAA,OAAElD,QAAQ,CAAC,CAAC,CAACU,YAAY;QAAA;QAAA,IAClCL,OAAOA,CAAA;UAAA,OAAEuC,WAAW,CAAC,CAAC;QAAA;MAAA;IAAA;IAAA,IAAA/G,SAAA;MAAA,OAAAF,iBAAA,CAIzBoE,iBAAiB;QAAA,IAACxN,KAAKA,CAAA;UAAA,OAAEgG,KAAK,CAAChG,KAAK;QAAA;QAAA,IAAEuO,IAAIA,CAAA;UAAA,OAAEvI,KAAK,CAACuI,IAAI;QAAA;QAAA,IAAET,OAAOA,CAAA;UAAA,OAAEuC,WAAW,CAAC,CAAC;QAAA;MAAA;IAAA;EAAA,KAAAlH,QAAA,CAEhFnD,KAAK,CAAChG,KAAK,CAAC4Q,cAAc,GAAAzH,QAAA,CAAAC,iBAAA,CAE5B9J,IAAI;IAAA,IAAC+J,IAAIA,CAAA;MAAA,OAAErD,KAAK,CAAChG,KAAK,CAAC6Q,iBAAiB;IAAA;IAAA,IAAAvH,SAAA;MAAA,OAAAL,KAAA,CAAA6H,OAAA;IAAA;EAAA;AAK/C,CAAC;AAED,MAAMC,SAAS,GAAI/K,KAMlB,IAAkB;EACjB,MAAMyH,QAAQ,GAAG/N,aAAa,CAAC,CAAC;EAChC,MAAMO,UAAU,GAAGjB,UAAU,CAAC,MAAMe,eAAe,CAACiG,KAAK,CAAChG,KAAK,CAAC,CAAC;EACjE,MAAM,CAACgR,WAAW,EAAEC,cAAc,CAAC,GAAGhS,YAAY,CAAyB,IAAI,CAAC;EAChF,MAAM,CAACiS,aAAa,EAAEC,gBAAgB,CAAC,GAAGlS,YAAY,CAAC,EAAE,CAAC;EAC1D,IAAImS,iBAA2C;EAC/C,IAAIC,sBAAsB,GAAG,CAAC;EAC9B,MAAMjQ,KAAK,GAAGpC,UAAU,CAAC,MAAM+D,cAAc,CAACiD,KAAK,CAACvE,IAAI,EAAExB,UAAU,CAAC,CAAC,CAAC,CAAC;EACxE,MAAMqR,KAAK,GAAGtS,UAAU,CAAC,MAAMD,QAAQ,CAACwS,YAAY,CAACnQ,KAAK,CAAC,CAAC,CAACD,IAAI,EAAEC,KAAK,CAAC,CAAC,CAACA,KAAK,EAAEnB,UAAU,CAAC,CAAC,CAAC,CAAC;EAChG,MAAMuR,QAAQ,GAAGxS,UAAU,CAAC,MAAMD,QAAQ,CAACyS,QAAQ,CAACvR,UAAU,CAAC,CAAC,CAAC,CAAC;EAClE,MAAMwR,QAAQ,GAAGzS,UAAU,CAAC,MAAMD,QAAQ,CAACwD,aAAa,CAACyD,KAAK,CAAC+D,GAAG,EAAE9J,UAAU,CAAC,CAAC,CAAC,CAAC;EAClF,MAAMyR,WAAW,GAAG1S,UAAU,CAAC,MAAM;IACnC,MAAM2S,OAAO,GAAG,IAAIC,GAAG,CAA4B,CAAC;IACpD,KAAK,MAAMjN,KAAK,IAAIqB,KAAK,CAACvB,MAAM,EAAE;MAChC,MAAMA,MAAM,GAAGkN,OAAO,CAACE,GAAG,CAAClN,KAAK,CAACa,MAAM,CAAC;MACxC,IAAIf,MAAM,EAAEA,MAAM,CAACqB,IAAI,CAACnB,KAAK,CAAC,CAAC,KAC1BgN,OAAO,CAACG,GAAG,CAACnN,KAAK,CAACa,MAAM,EAAE,CAACb,KAAK,CAAC,CAAC;IACzC;IACA,OAAOgN,OAAO;EAChB,CAAC,CAAC;EACF,MAAMI,SAAS,GAAGA,CAAA,KAAM;IACtBd,cAAc,CAAC,IAAI,CAAC;IACpBE,gBAAgB,CAAC,EAAE,CAAC;EACtB,CAAC;EACD,MAAMa,UAAU,GAAGA,CAACC,OAAe,EAAEC,OAAe,KAAkB;IACpE,MAAMxQ,MAAM,GAAGyQ,QAAQ,CAACC,gBAAgB,CAACH,OAAO,EAAEC,OAAO,CAAC,EAAE3G,OAAO,CAAc,yBAAyB,CAAC;IAC3G,MAAM/F,MAAM,GAAG9D,MAAM,EAAE2Q,OAAO,CAACC,cAAc;IAC7C,OAAO9M,MAAM,GAAGzG,QAAQ,CAAC4B,iBAAiB,CAAC6E,MAAM,EAAEvF,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;EACzE,CAAC;EACD,MAAMsS,SAAS,GAAGA,CAACC,YAA0B,EAAE7N,KAAsB,EAAE8N,WAAuB,KAAK;IACjG,IAAI,CAACzM,KAAK,CAAChG,KAAK,CAAC0S,WAAW,EAAE;IAC9BtB,iBAAiB,GAAG,CAAC;IACrBA,iBAAiB,GAAGtR,2BAA2B,CAAC;MAC9C6E,KAAK,EAAE6N,YAAY;MACnBG,OAAO,EAAEA,CAACV,OAAO,EAAEC,OAAO,KAAK;QAC7B,MAAM7Q,GAAG,GAAG2Q,UAAU,CAACC,OAAO,EAAEC,OAAO,CAAC;QACxC,OAAO7Q,GAAG,GAAG;UAAEuF,EAAE,EAAEjC,KAAK,CAACiC,EAAE;UAAE,GAAGP,cAAc,CAAC1B,KAAK,EAAEtD,GAAG,EAAEpB,UAAU,CAAC,CAAC;QAAE,CAAC,GAAG,IAAI;MACnF,CAAC;MACD2S,UAAU,EAAEA,CAAA,KAAM;QAChBH,WAAW,CAAC,CAAC;QACbpB,sBAAsB,GAAGvH,WAAW,CAACC,GAAG,CAAC,CAAC,GAAG,GAAG;QAChDoH,gBAAgB,CAACxM,KAAK,CAACiC,EAAE,CAAC;MAC5B,CAAC;MACDiM,SAAS,EAAE5B,cAAc;MACzB6B,QAAQ,EAAGtM,IAAI,IAAK;QAClBuL,SAAS,CAAC,CAAC;QACX,IAAIxL,gBAAgB,CAAC5B,KAAK,EAAE6B,IAAI,CAAC,EAAER,KAAK,CAAChG,KAAK,CAAC0S,WAAW,GAAG/N,KAAK,EAAE6B,IAAI,CAAC;MAC3E,CAAC;MACDuM,QAAQ,EAAEhB;IACZ,CAAC,CAAC;EACJ,CAAC;EACD3S,SAAS,CAAC,MAAMgS,iBAAiB,GAAG,CAAC,CAAC;EACtC,OAAAnI,KAAA,CAAA+J,QAAA,EAAAC,kBAAA,wBACiE,eAAA9J,QAAA,CAAemI,KAAK,CAAC,CAAC,CAACvD,MAAM,6BAAsB,GAAAtD,cAAA,sBACnDzE,KAAK,CAAChG,KAAK,CAACkT,eAAe,GAAG,MAAM,GAAA/J,QAAA,CAAGnB,SAAS,iBAAAmB,QAAA,CAAAC,iBAAA,CAC1G9J,IAAI;IAAA,IAAC+J,IAAIA,CAAA;MAAA,OAAErD,KAAK,CAAChG,KAAK,CAACkT,eAAe;IAAA;IAAA,IAAA5J,SAAA;MAAA,OAAAL,KAAA,CAAAkK,QAAA,EAAAhK,QAAA,CACKsE,QAAQ,CAAC,CAAC,CAAC2F,SAAS;IAAA;EAAA,KAAAjK,QAAA,CAAAC,iBAAA,CAE/DlK,GAAG;IAAA,IAACkP,IAAIA,CAAA;MAAA,OAAEoD,QAAQ,CAAC,CAAC;IAAA;IAAAlI,QAAA,EAAIjI,GAAG,IAAA4H,KAAA,CAAAkK,QAAA,EAAAhK,QAAA,CAA+C9H,GAAG;EAAO,KAAA8H,QAAA,CAAAC,iBAAA,CAEtFlK,GAAG;IAAA,IAACkP,IAAIA,CAAA;MAAA,OAAEkD,KAAK,CAAC,CAAC;IAAA;IAAAhI,QAAA,EACdgH,IAAI,IAAArH,KAAA,CAAAoK,QAAA,EAAA5I,cAAA,sBACqDzE,KAAK,CAAChG,KAAK,CAACkT,eAAe,GAAG,MAAM,GAAA/J,QAAA,CAAGnB,SAAS,iBAAAmB,QAAA,CAAAC,iBAAA,CACtG9J,IAAI;MAAA,IAAC+J,IAAIA,CAAA;QAAA,OAAErD,KAAK,CAAChG,KAAK,CAACkT,eAAe;MAAA;MAAA,IAAA5J,SAAA;QAAA,OAAAL,KAAA,CAAAqK,QAAA,EAAAnK,QAAA,CACS7G,eAAe,CAACgO,IAAI,CAAC,CAAC,CAAC,EAAGrQ,UAAU,CAAC,CAAC,CAAC;MAAA;IAAA,KAAAkJ,QAAA,CAAAC,iBAAA,CAEtFlK,GAAG;MAACkP,IAAI,EAAEkC,IAAI;MAAAhH,QAAA,EACXjI,GAAG,IAAK;QACR,MAAMmE,MAAM,GAAGzG,QAAQ,CAACwD,aAAa,CAAClB,GAAG,EAAEpB,UAAU,CAAC,CAAC,CAAC;QACxD,MAAMwE,MAAM,GAAGiN,WAAW,CAAC,CAAC,CAACG,GAAG,CAACrM,MAAM,CAAC,IAAI,EAAE;QAC9C,MAAMU,IAAI,GAAGF,KAAK,CAAChG,KAAK,CAAC2P,WAAW,GAAGtO,GAAG,EAAE,KAAK,CAAC;QAClD,MAAMkS,QAAQ,GAAGvN,KAAK,CAAChG,KAAK,CAACwT,SAAS,GAAGhO,MAAM,CAAC;QAChD,MAAMiO,SAAS,GAAG1U,QAAQ,CAAC2U,WAAW,CAACrS,GAAG,EAAE2E,KAAK,CAACvE,IAAI,EAAExB,UAAU,CAAC,CAAC,CAAC;QACrE,MAAM0T,OAAO,GAAGnO,MAAM,KAAKiM,QAAQ,CAAC,CAAC;QACrC,MAAMmC,QAAQ,GAAGvS,GAAG,CAACqB,kBAAkB,CAACzC,UAAU,CAAC,CAAC,CAAC0C,MAAM,IAAI,IAAI,EAAE;UACnEC,OAAO,EAAE,MAAM;UACfzB,IAAI,EAAE,SAAS;UACfC,KAAK,EAAE,MAAM;UACbC,GAAG,EAAE,SAAS;UACdnB,QAAQ,EAAED,UAAU,CAAC,CAAC,CAACC;QACzB,CAAC,CAAC;QACF,MAAM2T,UAAU,GAAG7U,UAAU,CAAC,MAAM;UAClC,MAAM2H,OAAO,GAAGqK,WAAW,CAAC,CAAC;UAC7B,MAAM8C,aAAa,GAAGnN,OAAO,IAAI5H,QAAQ,CAACwD,aAAa,CAACoE,OAAO,CAAC9B,KAAK,EAAE5E,UAAU,CAAC,CAAC,CAAC,KAAKuF,MAAM,GAAGmB,OAAO,GAAG,IAAI;UAChH,MAAMoN,UAAU,GAAGD,aAAa,GAAGrP,MAAM,CAACsC,MAAM,CAAEpC,KAAK,IAAKA,KAAK,CAACiC,EAAE,KAAKkN,aAAa,CAAClN,EAAE,CAAC,GAAGnC,MAAM;UACnG,MAAMuP,YAAY,GAAGF,aAAa,GAAG,CAAC,GAAG,CAAC;UAC1C,OAAO;YACLnN,OAAO,EAAEmN,aAAa;YACtBG,aAAa,EAAEF,UAAU,CAACjQ,KAAK,CAAC,CAAC,EAAEkQ,YAAY,CAAC;YAChDE,WAAW,EAAE9R,IAAI,CAACgC,GAAG,CAAC,CAAC,EAAE2P,UAAU,CAAChG,MAAM,GAAGiG,YAAY;UAC3D,CAAC;QACH,CAAC,CAAC;QACF,OAAA/K,KAAA,CAAAkL,QAAA,EAAA1J,cAAA,0BAAAtB,QAAA,CAG2B3D,MAAM,kBAAAiF,cAAA,iBACf,CAACgJ,SAAS,GAAG,MAAM,GAAAtK,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,sBAE3CuG,WAAW,CAAC,CAAC,EAAEnM,KAAK,IAAI9F,QAAQ,CAACwD,aAAa,CAACyO,WAAW,CAAC,CAAC,CAAEnM,KAAK,EAAE5E,UAAU,CAAC,CAAC,CAAC,KAAKuF,MAAM,GAAG,MAAM,GAAA2D,QAAA,CAAGnB,SAAS,iBAAAmB,QAAA,CAAAC,iBAAA,CAGnH9J,IAAI;UAAA,IACH+J,IAAIA,CAAA;YAAA,OAAErD,KAAK,CAAChG,KAAK,CAAC0L,cAAc;UAAA;UAAA,IAChC+E,QAAQA,CAAA;YAAA,OAAArH,iBAAA,CACL9J,IAAI;cAAC+J,IAAI,EAAEnD,IAAI;cAAAoD,QAAA,EACZ8K,OAAO,IAAAhL,iBAAA,CACN6C,sBAAsB;gBAAA,IACrBjM,KAAKA,CAAA;kBAAA,OAAEgG,KAAK,CAAChG,KAAK;gBAAA;gBAAA,IAClBkG,IAAIA,CAAA;kBAAA,OAAEkO,OAAO,CAAC,CAAC;gBAAA;gBAAA,IACfjH,WAAWA,CAAA;kBAAA,OAAE;oBACXwB,KAAK,EAAE,gCAAgC;oBACvC,YAAY,EAAElB,QAAQ,CAAC,CAAC,CAAC4G,QAAQ,CAAC;sBAAEzF,KAAK,EAAEgF;oBAAS,CAAC;kBACvD,CAAC;gBAAA;cAAA;YAEJ;UAAA;UAAA,IAAAtK,SAAA;YAAA,OAAA2D,YAAA,WAAAC,YAAA;cAKHgD,IAAI,EAAC,QAAQ;cAAA,SACP,gCAAgC;cAAA,oBACrB,MAAM;cAAA,kBAAAoE,CAAA;gBAAA,OACX7G,QAAQ,CAAC,CAAC,CAAC8G,aAAa,CAAC;kBAAE3F,KAAK,EAAEgF;gBAAS,CAAC,CAAC;cAAA;YAAA,SACrD5I,oBAAoB,CACtBhF,KAAK,CAAChG,KAAK,EACX,MAAM;cACJ,MAAM6E,KAAK,GAAGxB,UAAU,CAAChC,GAAG,EAAEpB,UAAU,CAAC,CAAC,CAAC;cAC3C,OAAO;gBAAE4E,KAAK;gBAAEE,GAAG,EAAEhG,QAAQ,CAAC2G,OAAO,CAACb,KAAK,EAAE,CAAC,EAAE5E,UAAU,CAAC,CAAC,CAAC;gBAAEoF,MAAM,EAAE;cAAK,CAAC;YAC/E,CAAC,EACD,MAAMyE,WAAW,CAACC,GAAG,CAAC,CAAC,GAAGsH,sBAAsB,EAChD,IACF,CAAC,GAAArJ,SAAA;UAAA;QAAA,KAAAmB,QAAA,CAAAC,iBAAA,CAIF9J,IAAI;UAAA,IACH+J,IAAIA,CAAA;YAAA,OAAErD,KAAK,CAAChG,KAAK,CAAC0L,cAAc,IAAIxF,IAAI;UAAA;UAAA,IACxCuK,QAAQA,CAAA;YAAA,OAAAxH,KAAA,CAAAuL,QAAA,EAAA/J,cAAA,eAGQkJ,OAAO,GAAG,MAAM,GAAAxK,QAAA,CAAGnB,SAAS,kBAAAyC,cAAA,iBAC1B,CAACgJ,SAAS,GAAG,MAAM,GAAAtK,QAAA,CAAGnB,SAAS,iBAAAmB,QAAA,CAE5CpK,QAAQ,CAAC0V,eAAe,CAACpT,GAAG,EAAEpB,UAAU,CAAC,CAAC,CAAC;UAAA;UAAAqJ,QAAA,EAI9C8K,OAAO,IAAAhL,iBAAA,CACN6C,sBAAsB;YAAA,IACrBjM,KAAKA,CAAA;cAAA,OAAEgG,KAAK,CAAChG,KAAK;YAAA;YAAA,IAClBkG,IAAIA,CAAA;cAAA,OAAEkO,OAAO,CAAC,CAAC;YAAA;YAAA,IACfjH,WAAWA,CAAA;cAAA,OAAE;gBACXwB,KAAK,EAAE,gCAAgC;gBACvC,YAAY,EAAEgF,OAAO,GAAG,MAAM,GAAG3L,SAAS;gBAC1C,cAAc,EAAE,CAACyL,SAAS,GAAG,MAAM,GAAGzL,SAAS;gBAC/C,YAAY,EAAEyF,QAAQ,CAAC,CAAC,CAAC4G,QAAQ,CAAC;kBAAEzF,KAAK,EAAEgF;gBAAS,CAAC;cACvD,CAAC;YAAA;YAAA,IAAAtK,SAAA;cAAA,OAEAvK,QAAQ,CAAC0V,eAAe,CAACpT,GAAG,EAAEpB,UAAU,CAAC,CAAC,CAAC;YAAA;UAAA;QAE/C,KAAAkJ,QAAA,CAAAC,iBAAA,CAEF9J,IAAI;UAAC+J,IAAI,EAAEkK,QAAQ;UAAAjK,QAAA,EAChBoL,KAAK,IAAAzL,KAAA,CAAA0L,QAAA,EAAAxL,QAAA,CAAAC,iBAAA,CAEF9J,IAAI;YAAA,IAAC+J,IAAIA,CAAA;cAAA,OAAEqL,KAAK,CAAC,CAAC,CAAChF,IAAI;YAAA;YAAApG,QAAA,EAAIoG,IAAI,IAAAzG,KAAA,CAAA2G,OAAA,EAAe,wCAAAzG,QAAA,CAAwCuG,IAAI,CAAC,CAAC,SAAE;UAAI,KAAAvG,QAAA,CAClGuL,KAAK,CAAC,CAAC,CAAC9F,KAAK;QAEjB,KAAAzF,QAAA,CAAAC,iBAAA,CAIF9J,IAAI;UAAA,IAAC+J,IAAIA,CAAA;YAAA,OAAEwK,UAAU,CAAC,CAAC,CAAClN,OAAO;UAAA;UAAA,IAAA2C,SAAA;YAAA,OAAAL,KAAA,CAAA2L,QAAA,EAAAzL,QAAA,CAE3BnD,KAAK,CAACvB,MAAM,CAACoQ,IAAI,CAAElQ,KAAK,IAAKA,KAAK,CAACiC,EAAE,KAAKiN,UAAU,CAAC,CAAC,CAAClN,OAAO,CAAEC,EAAE,CAAC,EAAEC,KAAK,IAAI4G,QAAQ,CAAC,CAAC,CAACqH,SAAS;UAAA;QAAA,KAAA3L,QAAA,CAAAC,iBAAA,CAGtGlK,GAAG;UAAA,IAACkP,IAAIA,CAAA;YAAA,OAAEyF,UAAU,CAAC,CAAC,CAACI,aAAa;UAAA;UAAA3K,QAAA,EACjC3E,KAAK,IAAAyE,iBAAA,CACJzB,SAAS;YACRhD,KAAK,EAAEA,KAAK;YAAA,IACZ3E,KAAKA,CAAA;cAAA,OAAEgG,KAAK,CAAChG,KAAK;YAAA;YAAA,IAClBkG,IAAIA,CAAA;cAAA,OAAEH,SAAS,CAACC,KAAK,CAAChG,KAAK,EAAE2E,KAAK,CAAC;YAAA;YACnC4D,OAAO;YAAA,IACPmC,MAAMA,CAAA;cAAA,OAAEwG,aAAa,CAAC,CAAC,KAAKvM,KAAK,CAACiC,EAAE;YAAA;YAAA,IACpC+C,iBAAiBA,CAAA;cAAA,OACf3D,KAAK,CAAChG,KAAK,CAAC0S,WAAW,GACnB,CAACF,YAAY,EAAEC,WAAW,KAAKF,SAAS,CAACC,YAAY,EAAE7N,KAAK,EAAE8N,WAAW,CAAC,GAC1EzK,SAAS;YAAA;UAAA;QAGlB,KAAAmB,QAAA,CAAAC,iBAAA,CAEF9J,IAAI;UAAA,IAAC+J,IAAIA,CAAA;YAAA,OAAEwK,UAAU,CAAC,CAAC,CAACK,WAAW,GAAG,CAAC;UAAA;UAAA,IAAA5K,SAAA;YAAA,OAAAF,iBAAA,CACrC6C,sBAAsB;cAAA,IAACjM,KAAKA,CAAA;gBAAA,OAAEgG,KAAK,CAAChG,KAAK;cAAA;cAAEkG,IAAI,EAAEA,IAAI,IAAI,GAAG;cAAEiH,WAAW,EAAE;gBAAEwB,KAAK,EAAE;cAA2B,CAAC;cAAA,IAAArF,SAAA;gBAAA,aAC7GuK,UAAU,CAAC,CAAC,CAACK,WAAW;cAAA;YAAA;UAAA;QAAA,KAAA/K,QAAA,CAAAC,iBAAA,CAK7BlK,GAAG;UAAA,IAACkP,IAAIA,CAAA;YAAA,OAAE3J,MAAM,CAACX,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;UAAA;UAAAwF,QAAA,EACzB3E,KAAK,IAAAsE,KAAA,CAAA8L,QAAA,EAAAtK,cAAA,eAGS9F,KAAK,CAACoD,QAAQ,GAAAoB,QAAA,CAAGnB,SAAS,UAAAmB,QAAA,CAAIxE,KAAK,CAACmC,KAAK,IAAI,MAAM,OAAC,UAAA+D,UAAA,CACzDlG,KAAK,CAACoD,QAAQ,GAAG;YAAE,kBAAkB,EAAEpD,KAAK,CAACoD;UAAS,CAAC,GAAGC,SAAS;QAE7E;MAKX;IAAC;EAGN;AAIT,CAAC;AAED,MAAMgN,YAAY,GAAIhP,KAOrB,IAAkB;EACjB,MAAMyH,QAAQ,GAAG/N,aAAa,CAAC,CAAC;EAChC,MAAMO,UAAU,GAAGjB,UAAU,CAAC,MAAMe,eAAe,CAACiG,KAAK,CAAChG,KAAK,CAAC,CAAC;EACjE,MAAMiV,aAAa,GAAGA,CAAA,KAAMjP,KAAK,CAAChG,KAAK,CAACkV,gBAAgB,IAAI,CAAC;EAC7D,MAAMC,WAAW,GAAGA,CAAA,KAAMnP,KAAK,CAAChG,KAAK,CAACoV,cAAc,IAAI,EAAE;EAC1D,MAAMC,iBAAiB,GAAGA,CAAA,KAAMrP,KAAK,CAAChG,KAAK,CAACsV,SAAS,IAAI,CAAC;EAC1D,MAAMC,eAAe,GAAGA,CAAA,KAAMvP,KAAK,CAAChG,KAAK,CAACwV,OAAO,IAAI,EAAE;EACvD,MAAMC,KAAK,GAAGzW,UAAU,CAAC,MAAM0W,KAAK,CAACC,IAAI,CAAC;IAAE5H,MAAM,EAAEoH,WAAW,CAAC,CAAC,GAAGF,aAAa,CAAC,CAAC,GAAG;EAAE,CAAC,EAAE,CAACW,CAAC,EAAE3H,KAAK,KAAKgH,aAAa,CAAC,CAAC,GAAGhH,KAAK,CAAC,CAAC;EAClI,MAAM,CAAC4H,WAAW,EAAEC,cAAc,CAAC,GAAG7W,YAAY,CAAyB,IAAI,CAAC;EAChF,MAAM,CAACiS,aAAa,EAAEC,gBAAgB,CAAC,GAAGlS,YAAY,CAAC,EAAE,CAAC;EAC1D,MAAM,CAAC8W,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG/W,YAAY,CAAC,EAAE,CAAC;EAChE,IAAIgX,eAA2C;EAC/C,IAAIC,QAAoC;EACxC,IAAIC,UAAsC;EAC1C,IAAIC,iBAA6C;EACjD,IAAIhF,iBAA2C;EAC/C,IAAIC,sBAAsB,GAAG,CAAC;EAC9B,MAAMgF,OAAO,GAAIxR,KAAW,IAAKrB,UAAU,CAACqB,KAAK,EAAE,EAAE,CAAC;EACtD,MAAMyR,aAAa,GAAGtX,UAAU,CAAC,MAAM0H,eAAe,CAACmP,WAAW,CAAC,CAAC,EAAE7P,KAAK,CAACL,IAAI,EAAE1F,UAAU,CAAC,CAAC,CAAC,CAAC;EAChG,MAAMyR,WAAW,GAAG1S,UAAU,CAAC,MAAM;IACnC,MAAM2S,OAAO,GAAG,IAAIC,GAAG,CAAkE,CAAC;IAC1F,KAAK,MAAMjN,KAAK,IAAIqB,KAAK,CAACvB,MAAM,EAAE;MAChC,MAAM8R,MAAM,GAAG5E,OAAO,CAACE,GAAG,CAAClN,KAAK,CAACa,MAAM,CAAC,IAAI;QAAEH,MAAM,EAAE,EAAE;QAAEmR,KAAK,EAAE;MAAG,CAAC;MACrE,CAAC7R,KAAK,CAACU,MAAM,GAAGkR,MAAM,CAAClR,MAAM,GAAGkR,MAAM,CAACC,KAAK,EAAE1Q,IAAI,CAACnB,KAAK,CAAC;MACzDgN,OAAO,CAACG,GAAG,CAACnN,KAAK,CAACa,MAAM,EAAE+Q,MAAM,CAAC;IACnC;IACA,OAAO5E,OAAO;EAChB,CAAC,CAAC;EACF,MAAM8E,gBAAgB,GAAGA,CAAA,KAAM;IAC7BX,cAAc,CAAC,IAAI,CAAC;IACpB3E,gBAAgB,CAAC,EAAE,CAAC;EACtB,CAAC;EACD,MAAMa,UAAU,GAAGA,CAACC,OAAe,EAAEC,OAAe,KAAkB;IACpE,MAAMxQ,MAAM,GAAGyQ,QAAQ,CAACC,gBAAgB,CAACH,OAAO,EAAEC,OAAO,CAAC,EAAE3G,OAAO,CAAc,yBAAyB,CAAC;IAC3G,MAAM/F,MAAM,GAAG9D,MAAM,EAAE2Q,OAAO,CAACC,cAAc;IAC7C,OAAO9M,MAAM,GAAGzG,QAAQ,CAAC4B,iBAAiB,CAAC6E,MAAM,EAAEvF,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;EACzE,CAAC;EACD,MAAMyW,WAAW,GAAGA,CAACzE,OAAe,EAAEC,OAAe,KAAkB;IACrE,IAAI,CAACgE,QAAQ,IAAI,CAACC,UAAU,EAAE,OAAO,IAAI;IACzC,MAAMQ,QAAQ,GAAGT,QAAQ,CAACU,qBAAqB,CAAC,CAAC;IACjD,MAAMC,UAAU,GAAGV,UAAU,CAACS,qBAAqB,CAAC,CAAC;IACrD,MAAME,QAAQ,GAAGlX,uBAAuB,CAACqS,OAAO,EAAE4E,UAAU,CAACE,KAAK,EAAEJ,QAAQ,CAACI,KAAK,GAAGF,UAAU,CAACE,KAAK,EAAE/Q,KAAK,CAACL,IAAI,CAACoI,MAAM,CAAC;IACzH,IAAI+I,QAAQ,KAAK,IAAI,EAAE,OAAO,IAAI;IAClC,MAAMvS,MAAM,GAAGnC,IAAI,CAACiC,GAAG,CACrB8Q,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EACvBtV,qBAAqB,CAACqS,OAAO,EAAEyE,QAAQ,CAACK,GAAG,EAAEL,QAAQ,CAACM,MAAM,EAAEhC,aAAa,CAAC,CAAC,EAAEE,WAAW,CAAC,CAAC,CAC9F,CAAC;IACD,OAAOlR,eAAe,CAAC+B,KAAK,CAACL,IAAI,CAACmR,QAAQ,CAAC,EAAGvS,MAAM,EAAEtE,UAAU,CAAC,CAAC,CAAC;EACrE,CAAC;EACD,MAAMiX,gBAAgB,GAAIpJ,OAA2E,IAAK;IACxGsD,iBAAiB,GAAG,CAAC;IACrBA,iBAAiB,GAAGtR,2BAA2B,CAACgO,OAAO,CAAC;EAC1D,CAAC;EACD,MAAMqJ,cAAc,GAAGA,CAAC3E,YAA0B,EAAE7N,KAAsB,EAAE8N,WAAuB,KAAK;IACtG,IAAI,CAACzM,KAAK,CAAChG,KAAK,CAAC0S,WAAW,EAAE;IAC9B,MAAM0E,YAAY,GAAGV,WAAW,CAAClE,YAAY,CAACP,OAAO,EAAEO,YAAY,CAACN,OAAO,CAAC,IAAIvN,KAAK,CAACW,eAAe;IACrG,MAAML,QAAQ,GAAG7C,IAAI,CAACgC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAEO,KAAK,CAACY,aAAa,CAACrE,OAAO,CAAC,CAAC,GAAGyD,KAAK,CAACW,eAAe,CAACpE,OAAO,CAAC,CAAC,CAAC;IACvG,MAAMmW,aAAa,GAAGjV,IAAI,CAACgC,GAAG,CAC5B,CAAC,EACDhC,IAAI,CAACiC,GAAG,CAACY,QAAQ,GAAG,MAAM,EAAE7C,IAAI,CAACkV,KAAK,CAAC,CAACF,YAAY,CAAClW,OAAO,CAAC,CAAC,GAAGyD,KAAK,CAACW,eAAe,CAACpE,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CACnH,CAAC;IACDgW,gBAAgB,CAAC;MACfvS,KAAK,EAAE6N,YAAY;MACnByD,eAAe;MACftD,OAAO,EAAEA,CAACV,OAAO,EAAEC,OAAO,KAAK;QAC7B,MAAMqF,OAAO,GAAGb,WAAW,CAACzE,OAAO,EAAEC,OAAO,CAAC;QAC7C,IAAI,CAACqF,OAAO,EAAE,OAAO,IAAI;QACzB,MAAM1S,KAAK,GAAG,IAAIpE,IAAI,CAAC8W,OAAO,CAACrW,OAAO,CAAC,CAAC,GAAGmW,aAAa,GAAG,MAAM,CAAC;QAClE,OAAO;UAAEzQ,EAAE,EAAEjC,KAAK,CAACiC,EAAE;UAAEC,KAAK,EAAElC,KAAK,CAACkC,KAAK;UAAEhC,KAAK;UAAEE,GAAG,EAAE,IAAItE,IAAI,CAACoE,KAAK,CAAC3D,OAAO,CAAC,CAAC,GAAG+D,QAAQ,CAAC;UAAEI,MAAM,EAAE;QAAM,CAAC;MAC9G,CAAC;MACDuN,UAAU,EAAEA,CAAA,KAAM;QAChBH,WAAW,CAAC,CAAC;QACbpB,sBAAsB,GAAGvH,WAAW,CAACC,GAAG,CAAC,CAAC,GAAG,GAAG;QAChDoH,gBAAgB,CAACxM,KAAK,CAACiC,EAAE,CAAC;MAC5B,CAAC;MACDiM,SAAS,EAAEiD,cAAc;MACzBhD,QAAQ,EAAGtM,IAAI,IAAK;QAClBiQ,gBAAgB,CAAC,CAAC;QAClB,IAAIlQ,gBAAgB,CAAC5B,KAAK,EAAE6B,IAAI,CAAC,EAAER,KAAK,CAAChG,KAAK,CAAC0S,WAAW,GAAG/N,KAAK,EAAE6B,IAAI,CAAC;MAC3E,CAAC;MACDuM,QAAQ,EAAE0D;IACZ,CAAC,CAAC;EACJ,CAAC;EACD,MAAMe,eAAe,GAAGA,CAAChF,YAA0B,EAAE7N,KAAsB,EAAE8N,WAAuB,KAAK;IACvG,IAAI,CAACzM,KAAK,CAAChG,KAAK,CAAC0S,WAAW,EAAE;IAC9BwE,gBAAgB,CAAC;MACfvS,KAAK,EAAE6N,YAAY;MACnBG,OAAO,EAAEA,CAACV,OAAO,EAAEC,OAAO,KAAK;QAC7B,MAAM7Q,GAAG,GAAG2Q,UAAU,CAACC,OAAO,EAAEC,OAAO,CAAC;QACxC,OAAO7Q,GAAG,GAAG;UAAEuF,EAAE,EAAEjC,KAAK,CAACiC,EAAE;UAAEC,KAAK,EAAElC,KAAK,CAACkC,KAAK;UAAE,GAAGV,WAAW,CAACxB,KAAK,EAAEtB,UAAU,CAAChC,GAAG,EAAEpB,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAEA,UAAU,CAAC,CAAC;QAAE,CAAC,GAAG,IAAI;MACpI,CAAC;MACD2S,UAAU,EAAEA,CAAA,KAAM;QAChBH,WAAW,CAAC,CAAC;QACbpB,sBAAsB,GAAGvH,WAAW,CAACC,GAAG,CAAC,CAAC,GAAG,GAAG;QAChDoH,gBAAgB,CAACxM,KAAK,CAACiC,EAAE,CAAC;MAC5B,CAAC;MACDiM,SAAS,EAAEiD,cAAc;MACzBhD,QAAQ,EAAGtM,IAAI,IAAK;QAClBiQ,gBAAgB,CAAC,CAAC;QAClB,IAAIlQ,gBAAgB,CAAC5B,KAAK,EAAE6B,IAAI,CAAC,EAAER,KAAK,CAAChG,KAAK,CAAC0S,WAAW,GAAG/N,KAAK,EAAE6B,IAAI,CAAC;MAC3E,CAAC;MACDuM,QAAQ,EAAE0D;IACZ,CAAC,CAAC;EACJ,CAAC;EACD,MAAMgB,UAAU,GAAIjF,YAA0B,IAAK;IACjD,IAAI,CAACxM,KAAK,CAAChG,KAAK,CAAC0L,cAAc,IAAI8G,YAAY,CAACjI,WAAW,KAAK,OAAO,EAAE;IACzE,MAAM8B,MAAM,GAAGqK,WAAW,CAAClE,YAAY,CAACP,OAAO,EAAEO,YAAY,CAACN,OAAO,CAAC;IACtE,IAAI,CAAC7F,MAAM,EAAE;IACb6K,gBAAgB,CAAC;MACfvS,KAAK,EAAE6N,YAAY;MACnByD,eAAe;MACftD,OAAO,EAAEA,CAACV,OAAO,EAAEC,OAAO,KAAK;QAC7B,MAAMwF,OAAO,GAAGhB,WAAW,CAACzE,OAAO,EAAEC,OAAO,CAAC;QAC7C,IAAI,CAACwF,OAAO,EAAE,OAAO,IAAI;QACzB,MAAM7S,KAAK,GAAG6S,OAAO,GAAGrL,MAAM,GAAGqL,OAAO,GAAGrL,MAAM;QACjD,MAAMsL,OAAO,GAAGD,OAAO,GAAGrL,MAAM,GAAGA,MAAM,GAAGqL,OAAO;QACnD,OAAO;UAAE9Q,EAAE,EAAE,yBAAyB;UAAE/B,KAAK;UAAEE,GAAG,EAAEvB,UAAU,CAACmU,OAAO,EAAE,EAAE,CAAC;UAAEtS,MAAM,EAAE;QAAM,CAAC;MAC9F,CAAC;MACDuN,UAAU,EAAEA,CAAA,KAAM;QAChBvB,sBAAsB,GAAGvH,WAAW,CAACC,GAAG,CAAC,CAAC,GAAG,GAAG;MAClD,CAAC;MACD8I,SAAS,EAAEiD,cAAc;MACzBhD,QAAQ,EAAGtM,IAAI,IAAK;QAClBiQ,gBAAgB,CAAC,CAAC;QAClBzQ,KAAK,CAAChG,KAAK,CAAC0L,cAAc,GAAGlF,IAAI,CAAC;MACpC,CAAC;MACDuM,QAAQ,EAAE0D;IACZ,CAAC,CAAC;EACJ,CAAC;EACD,MAAMmB,eAAe,GAAGA,CAAChT,SAAe,EAAEI,OAAa,KAAK;IAC1D,MAAMH,KAAK,GAAGnB,SAAS,CAACkB,SAAS,EAAE3E,UAAU,CAAC,CAAC,CAAC;IAChD,MAAM8E,GAAG,GAAGrB,SAAS,CAACsB,OAAO,EAAE/E,UAAU,CAAC,CAAC,CAAC;IAC5C,MAAM4X,YAAY,GAAGzV,IAAI,CAACgC,GAAG,CAAC6Q,aAAa,CAAC,CAAC,EAAEpQ,KAAK,CAAC;IACrD,MAAMiT,UAAU,GAAG1V,IAAI,CAACiC,GAAG,CAAC8Q,WAAW,CAAC,CAAC,GAAG,CAAC,EAAEpQ,GAAG,CAAC;IACnD,MAAMgT,KAAK,GAAG3V,IAAI,CAACgC,GAAG,CAAC,CAAC,EAAE+Q,WAAW,CAAC,CAAC,GAAGF,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9D,OAAO;MACL+B,GAAG,EAAE5U,IAAI,CAACgC,GAAG,CAAC,CAAC,EAAG,CAACyT,YAAY,GAAG5C,aAAa,CAAC,CAAC,IAAI8C,KAAK,GAAI,GAAG,CAAC;MAClEd,MAAM,EAAE7U,IAAI,CAACgC,GAAG,CAAC,IAAI,EAAG,CAAC0T,UAAU,GAAGD,YAAY,IAAIE,KAAK,GAAI,GAAG;IACpE,CAAC;EACH,CAAC;EACD,MAAMC,WAAW,GAAIrT,KAAsB,IAAKiT,eAAe,CAACjT,KAAK,CAACC,SAAS,EAAED,KAAK,CAACK,OAAO,CAAC;EAC/F,MAAMiT,SAAS,GAAGA,CAAA,KAAMjS,KAAK,CAACL,IAAI,CAACoI,MAAM,KAAK,CAAC;EAC/C,MAAMmK,gBAAgB,GAAI7Q,KAAa,IAAM4Q,SAAS,CAAC,CAAC,GAAG5Q,KAAK,GAAGjF,IAAI,CAACiC,GAAG,CAACgD,KAAK,EAAE,CAAC,CAAE;EACtF,MAAM8Q,eAAe,GAAIC,OAA2B,IAA4B;IAC9E,IAAIH,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE;IAC1B,MAAMI,MAAM,GAAG,IAAIzG,GAAG,CAA8B,CAAC;IACrD,KAAK,MAAM0G,MAAM,IAAIF,OAAO,EAAE;MAC5B,IAAIE,MAAM,CAAClR,IAAI,GAAG8Q,gBAAgB,CAACI,MAAM,CAACjR,KAAK,CAAC,EAAE;MAClD,MAAMkR,QAAQ,GAAGF,MAAM,CAACxG,GAAG,CAACyG,MAAM,CAAChR,OAAO,CAAC;MAC3C,IAAIiR,QAAQ,EAAEA,QAAQ,CAACC,YAAY,CAAC1S,IAAI,CAACwS,MAAM,CAAC3T,KAAK,CAAC,CAAC,KAErD0T,MAAM,CAACvG,GAAG,CAACwG,MAAM,CAAChR,OAAO,EAAE;QACzBA,OAAO,EAAEgR,MAAM,CAAChR,OAAO;QACvBkR,YAAY,EAAE,CAACF,MAAM,CAAC3T,KAAK,CAAC;QAC5B8C,cAAc,EAAE6Q,MAAM,CAAC7Q,cAAc;QACrCC,YAAY,EAAE4Q,MAAM,CAAC5Q;MACvB,CAAC,CAAC;IACN;IACA,OAAO,CAAC,GAAG2Q,MAAM,CAACI,MAAM,CAAC,CAAC,CAAC;EAC7B,CAAC;EACD,MAAMC,iBAAiB,GAAIN,OAA2B,IAAK;IACzD,IAAI,CAACH,SAAS,CAAC,CAAC,EAAE,OAAOjQ,SAAS;IAClC,MAAMX,KAAK,GAAGjF,IAAI,CAACgC,GAAG,CAAC,CAAC,EAAE,GAAGgU,OAAO,CAAClR,GAAG,CAAEoR,MAAM,IAAKA,MAAM,CAACjR,KAAK,CAAC,CAAC;IACnE,OAAO,GAAGjF,IAAI,CAACgC,GAAG,CAAC,EAAE,EAAEiD,KAAK,GAAG,EAAE,CAAC,KAAK;EACzC,CAAC;EACD,MAAMsR,SAAS,GAAIC,UAA4B,IAAK;IAClD,IAAIX,SAAS,CAAC,CAAC,EAAE;MACf,MAAMY,SAAS,GAAG,GAAG,GAAGD,UAAU,CAACvR,KAAK;MACxC,OAAO;QACLyR,IAAI,EAAE,QAAQF,UAAU,CAACxR,IAAI,GAAGyR,SAAS,cAAc;QACvDE,KAAK,EAAE,QAAQF,SAAS;MAC1B,CAAC;IACH;IACA,MAAMG,YAAY,GAAGd,gBAAgB,CAACU,UAAU,CAACvR,KAAK,CAAC;IACvD,OAAO;MACLyR,IAAI,EAAE,GAAGF,UAAU,CAACvR,KAAK,IAAI,CAAC,GAAG,CAAC,GAAI,EAAE,GAAGjF,IAAI,CAACgC,GAAG,CAAC,CAAC,EAAE4U,YAAY,GAAG,CAAC,CAAC,GAAIJ,UAAU,CAACxR,IAAI,GAAG;MAC9F2R,KAAK,EAAE,GAAGH,UAAU,CAACvR,KAAK,IAAI,CAAC,GAAG,GAAG,GAAGuR,UAAU,CAACvR,KAAK,GAAG2R,YAAY,GAAG,EAAE,GAAG,EAAE;IACnF,CAAC;EACH,CAAC;EACD,MAAMC,eAAe,GAAI5X,GAAS,IAAK;IACrC,MAAM0I,GAAG,GAAG/D,KAAK,CAAC+D,GAAG;IACrB,IAAIhL,QAAQ,CAACwD,aAAa,CAAClB,GAAG,EAAEpB,UAAU,CAAC,CAAC,CAAC,KAAKlB,QAAQ,CAACwD,aAAa,CAACwH,GAAG,EAAE9J,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI;IACxG,MAAM+D,IAAI,GAAGN,SAAS,CAACqG,GAAG,EAAE9J,UAAU,CAAC,CAAC,CAAC;IACzC,IAAI+D,IAAI,GAAGiR,aAAa,CAAC,CAAC,IAAIjR,IAAI,GAAGmR,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI;IACnE,OAAQ,CAACnR,IAAI,GAAGiR,aAAa,CAAC,CAAC,IAAI7S,IAAI,CAACgC,GAAG,CAAC,CAAC,EAAE+Q,WAAW,CAAC,CAAC,GAAGF,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAI,GAAG;EAC5F,CAAC;EACD7V,SAAS,CAAC,MAAMgS,iBAAiB,GAAG,CAAC,CAAC;EACtC/R,OAAO,CAAC,MAAM;IACZ6Z,qBAAqB,CAAC,MAAM;MAC1B,IAAI,CAACjD,eAAe,IAAI,CAACG,iBAAiB,EAAE;MAC5C,MAAM+C,SAAS,GAAG/C,iBAAiB,CAACQ,qBAAqB,CAAC,CAAC,CAACI,GAAG,GAAGf,eAAe,CAACW,qBAAqB,CAAC,CAAC,CAACI,GAAG;MAC7Gf,eAAe,CAACmD,QAAQ,CAAC;QAAEpC,GAAG,EAAE5U,IAAI,CAACgC,GAAG,CAAC,CAAC,EAAE6R,eAAe,CAACoD,SAAS,GAAGF,SAAS,CAAC;QAAEG,QAAQ,EAAE;MAAS,CAAC,CAAC;IAC3G,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,OAAArQ,KAAA,CAAAsQ,QAAA,EAAAtG,kBAAA,2BAEgF,eAAA9J,QAAA,CAAenD,KAAK,CAACL,IAAI,CAACoI,MAAM,0BAAmB,GAAA5E,QAAA,CAAAC,iBAAA,CAE5HlK,GAAG;IAAA,IAACkP,IAAIA,CAAA;MAAA,OAAEpI,KAAK,CAACL,IAAI;IAAA;IAAA2D,QAAA,EACjBjI,GAAG,IAAK;MACR,MAAMkS,QAAQ,GAAGvN,KAAK,CAAChG,KAAK,CAACwT,SAAS,GAAGzU,QAAQ,CAACwD,aAAa,CAAClB,GAAG,EAAEpB,UAAU,CAAC,CAAC,CAAC,CAAC;MACnF,MAAM8P,KAAK,GAAGA,CAAA,KAAMhR,QAAQ,CAAC4U,OAAO,CAACtS,GAAG,EAAEpB,UAAU,CAAC,CAAC,CAAC;MACvD,OAAAmJ,iBAAA,CACG6C,sBAAsB;QAAA,IACrBjM,KAAKA,CAAA;UAAA,OAAEgG,KAAK,CAAChG,KAAK;QAAA;QAAA,IAClBkG,IAAIA,CAAA;UAAA,OAAEF,KAAK,CAAChG,KAAK,CAAC2P,WAAW,GAAGtO,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG;QAAA;QAClD8L,WAAW,EAAE;UAAEwB,KAAK,EAAE;QAA8B,CAAC;QAAA,IAAArF,SAAA;UAAA,QAAAL,KAAA,CAAAuQ,QAAA,EAAA/O,cAAA,eAEOsF,KAAK,CAAC,CAAC,GAAG,MAAM,GAAA5G,QAAA,CAAGnB,SAAS,iBAAAmB,QAAA,CACrF1G,SAAS,CAACpB,GAAG,EAAEpB,UAAU,CAAC,CAAC,CAAC,IAAAmJ,iBAAA,CAE9B9J,IAAI;YAAC+J,IAAI,EAAEkK,QAAQ;YAAAjK,QAAA,EAChBoL,KAAK,IAAAzL,KAAA,CAAAwQ,QAAA,EAAAtQ,QAAA,CAAAC,iBAAA,CAEF9J,IAAI;cAAA,IAAC+J,IAAIA,CAAA;gBAAA,OAAEqL,KAAK,CAAC,CAAC,CAAChF,IAAI;cAAA;cAAApG,QAAA,EAAIoG,IAAI,IAAAzG,KAAA,CAAA2G,OAAA,EAAe,4CAAAzG,QAAA,CAA4CuG,IAAI,CAAC,CAAC,SAAE;YAAI,KAAAvG,QAAA,CACtGuL,KAAK,CAAC,CAAC,CAAC9F,KAAK;UAEjB;QAAA;MAAA;IAIT;EAAC,KAAAzF,QAAA,CAAAC,iBAAA,CAGJ9J,IAAI;IAAA,IAAC+J,IAAIA,CAAA;MAAA,OAAE,CAACrD,KAAK,CAAChG,KAAK,CAAC0Z,UAAU;IAAA;IAAA,IAAApQ,SAAA;MAAA,OAAAL,KAAA,CAAA0Q,QAAA,EAAA1G,kBAAA,2BAIJ,eAAA9J,QAAA,CAAenD,KAAK,CAACL,IAAI,CAACoI,MAAM,0BAAmB,IAAAkF,kBAAA,iBAC9D,GAAA9J,QAAA,CAAGnD,KAAK,CAAChG,KAAK,CAAC4Z,kBAAkB,IAAI,CAAC,YAAK,GAAAzQ,QAAA,CAGPnD,KAAK,CAACiK,MAAM,CAAC5K,MAAM,GAAA8D,QAAA,CAAAC,iBAAA,CACtElK,GAAG;QAAA,IAACkP,IAAIA,CAAA;UAAA,OAAEpI,KAAK,CAACL,IAAI;QAAA;QAAA2D,QAAA,EACjBjI,GAAG,IAAK;UACR,MAAMmE,MAAM,GAAGzG,QAAQ,CAACwD,aAAa,CAAClB,GAAG,EAAEpB,UAAU,CAAC,CAAC,CAAC;UACxD,MAAMoF,MAAM,GAAGA,CAAA,KAAMqM,WAAW,CAAC,CAAC,CAACG,GAAG,CAACrM,MAAM,CAAC,EAAEH,MAAM,IAAI,EAAE;UAC5D,MAAMwU,aAAa,GAAGvD,aAAa,CAAC,CAAC,CAACvP,MAAM,CAAEpC,KAAK,IAAKA,KAAK,CAACa,MAAM,KAAKA,MAAM,IAAIb,KAAK,CAACU,MAAM,CAAC;UAChG,OAAA4H,YAAA,QAAAC,YAAA;YAAA,SAEU,sCAAsC;YAAA,yBACrB1H,MAAM;YAAA,yBAAAsU,CAAA;cAAA,OAE3BjE,WAAW,CAAC,CAAC,EAAExQ,MAAM,IAAItG,QAAQ,CAACwD,aAAa,CAACsT,WAAW,CAAC,CAAC,CAAEhR,KAAK,EAAE5E,UAAU,CAAC,CAAC,CAAC,KAAKuF,MAAM,GAAG,MAAM,GAAGwC,SAAS;YAAA;YAAA,wBAAA+R,CAAA;cAAA,OAEnG/T,KAAK,CAAChG,KAAK,CAAC0L,cAAc,GAAG,MAAM,GAAG1D,SAAS;YAAA;UAAA,SAC7DgD,oBAAoB,CACtBhF,KAAK,CAAChG,KAAK,EACX,MAAM;YACJ,MAAM6E,KAAK,GAAGxB,UAAU,CAAChC,GAAG,EAAEpB,UAAU,CAAC,CAAC,CAAC;YAC3C,OAAO;cAAE4E,KAAK;cAAEE,GAAG,EAAEhG,QAAQ,CAAC2G,OAAO,CAACb,KAAK,EAAE,CAAC,EAAE5E,UAAU,CAAC,CAAC,CAAC;cAAEoF,MAAM,EAAE;YAAK,CAAC;UAC/E,CAAC,EACD,MAAMyE,WAAW,CAACC,GAAG,CAAC,CAAC,GAAGsH,sBAC5B,CAAC,GAAApI,KAAA,CAAA+Q,QAAA,EAAA7Q,QAAA,CAAAC,iBAAA,CAGElK,GAAG;YAACkP,IAAI,EAAEyL,aAAa;YAAAvQ,QAAA,EAAI3E,KAAK,IAAAsE,KAAA,CAAA2L,QAAA,EAAAzL,QAAA,CAAwCxE,KAAK,CAACkC,KAAK;UAAO,KAAAsC,QAAA,CAAAC,iBAAA,CAC1FlK,GAAG;YAAA,IAACkP,IAAIA,CAAA;cAAA,OAAE/I,MAAM,CAAC,CAAC;YAAA;YAAAiE,QAAA,EACf3E,KAAK,IAAAyE,iBAAA,CACJzB,SAAS;cACRhD,KAAK,EAAEA,KAAK;cAAA,IACZ3E,KAAKA,CAAA;gBAAA,OAAEgG,KAAK,CAAChG,KAAK;cAAA;cAAA,IAClBkG,IAAIA,CAAA;gBAAA,OAAEH,SAAS,CAACC,KAAK,CAAChG,KAAK,EAAE2E,KAAK,CAAC;cAAA;cACnC4D,OAAO;cAAA,IACPmC,MAAMA,CAAA;gBAAA,OAAEwG,aAAa,CAAC,CAAC,KAAKvM,KAAK,CAACiC,EAAE;cAAA;cAAA,IACpC+C,iBAAiBA,CAAA;gBAAA,OACf3D,KAAK,CAAChG,KAAK,CAAC0S,WAAW,GACnB,CAACF,YAAY,EAAEC,WAAW,KAAK+E,eAAe,CAAChF,YAAY,EAAE7N,KAAK,EAAE8N,WAAW,CAAC,GAChFzK,SAAS;cAAA;YAAA;UAGlB;QAKX;MAAC;IAAA;EAAA,KAAAiL,kBAAA,2BAQ+B,eAAA9J,QAAA,CAAenD,KAAK,CAACL,IAAI,CAACoI,MAAM,0BAAmB,GAAAkF,kBAAA,wBAKpD,UAAA9J,QAAA,CAAUsM,KAAK,CAAC,CAAC,CAAC1H,MAAM,6BAAsB,GAAA5E,QAAA,CAAAC,iBAAA,CAE5ElK,GAAG;IAAA,IAACkP,IAAIA,CAAA;MAAA,OAAEqH,KAAK,CAAC,CAAC;IAAA;IAAAnM,QAAA,EACdtF,IAAI,IAAAiF,KAAA,CAAAgR,QAAA,EAAAxP,cAAA,0BAMqBzG,IAAI,GAAGqR,iBAAiB,CAAC,CAAC,IAAIrR,IAAI,GAAGuR,eAAe,CAAC,CAAC,GAAG,MAAM,GAAApM,QAAA,CAAGnB,SAAS,iBAAAmB,QAAA,CAEjG,GAAGnF,IAAI,EAAE,CAACd,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAE9B,KAAAiG,QAAA,CAAAC,iBAAA,CAGJlK,GAAG;IAAA,IAACkP,IAAIA,CAAA;MAAA,OAAEpI,KAAK,CAACL,IAAI;IAAA;IAAA2D,QAAA,EACjBjI,GAAG,IAAK;MACR,MAAMmE,MAAM,GAAGzG,QAAQ,CAACwD,aAAa,CAAClB,GAAG,EAAEpB,UAAU,CAAC,CAAC,CAAC;MACxD,MAAMmY,OAAO,GAAGpZ,UAAU,CAAC,MAAMiI,iBAAiB,CAACyK,WAAW,CAAC,CAAC,CAACG,GAAG,CAACrM,MAAM,CAAC,EAAEgR,KAAK,IAAI,EAAE,CAAC,CAAC;MAC3F,OAAAvN,KAAA,CAAAiR,QAAA,EAAAjH,kBAAA,eAAA9J,QAAA,CAImBuP,iBAAiB,CAACN,OAAO,CAAC,CAAC,CAAC,WAAAnF,kBAAA,yBACnB,UAAA9J,QAAA,CAAUsM,KAAK,CAAC,CAAC,CAAC1H,MAAM,6BAAsB,GAAA5E,QAAA,CAAAC,iBAAA,CAGrE9J,IAAI;QAAA,IAAC+J,IAAIA,CAAA;UAAA,OAAE4P,eAAe,CAAC5X,GAAG,CAAC,KAAK,IAAI;QAAA;QAAA,IAAAiI,SAAA;UAAA,OAAAL,KAAA,CAAAkR,QAAA,EAAAlH,kBAAA,SACgB,GAAA9J,QAAA,CAAG8P,eAAe,CAAC5X,GAAG,CAAC,IAAI,CAAC,UAAG;QAAA;MAAA,KAAA8H,QAAA,CAAAC,iBAAA,CAEvFlK,GAAG;QAAA,IAACkP,IAAIA,CAAA;UAAA,OAAEqH,KAAK,CAAC,CAAC;QAAA;QAAAnM,QAAA,EACdtF,IAAI,IAAAiJ,YAAA,QAAAC,YAAA;UAAA,SAEI,8BAA8B;UAAA,6BAAAkN,CAAA;YAAA,OACbpW,IAAI,GAAGqR,iBAAiB,CAAC,CAAC,IAAIrR,IAAI,GAAGuR,eAAe,CAAC,CAAC,GAAG,MAAM,GAAGvN,SAAS;UAAA;UAAA,wBAAA+R,CAAA;YAAA,OAChF/T,KAAK,CAAChG,KAAK,CAAC0L,cAAc,GAAG,MAAM,GAAG1D,SAAS;UAAA;QAAA,SAC7DgD,oBAAoB,CACtBhF,KAAK,CAAChG,KAAK,EACX,MAAM;UACJ,MAAM6E,KAAK,GAAGd,SAAS,CAAC1C,GAAG,EAAE2C,IAAI,EAAE/D,UAAU,CAAC,CAAC,CAAC;UAChD,OAAO;YAAE4E,KAAK;YAAEE,GAAG,EAAEsR,OAAO,CAACxR,KAAK,CAAC;YAAEQ,MAAM,EAAE;UAAM,CAAC;QACtD,CAAC,EACD,MAAMyE,WAAW,CAACC,GAAG,CAAC,CAAC,GAAGsH,sBAC5B,CAAC,GAAArJ,SAAA;MAGJ,KAAAmB,QAAA,CAAAC,iBAAA,CAEFlK,GAAG;QAAA,IAACkP,IAAIA,CAAA;UAAA,OAAEkI,aAAa,CAAC,CAAC,CAACvP,MAAM,CAAEpC,KAAK,IAAKA,KAAK,CAACa,MAAM,KAAKA,MAAM,IAAI,CAACb,KAAK,CAACU,MAAM,CAAC;QAAA;QAAAiE,QAAA,EAClF3E,KAAK,IAAK;UACV,MAAM2T,MAAM,GAAGN,WAAW,CAACrT,KAAK,CAAC;UACjC,MAAMyD,KAAK,GAAGzD,KAAK,CAACK,OAAO,CAAC9D,OAAO,CAAC,CAAC,GAAGyD,KAAK,CAACC,SAAS,CAAC1D,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM;UAC/E,OAAA+H,KAAA,CAAAoR,QAAA,EAAA5P,cAAA,eAGgBrC,KAAK,GAAG,MAAM,GAAAe,QAAA,CAAGnB,SAAS,iBAAAiL,kBAAA,SACxB,GAAA9J,QAAA,CAAGmP,MAAM,CAACtB,GAAG,UAAG,IAAA/D,kBAAA,aAAU,GAAA9J,QAAA,CAAGmP,MAAM,CAACrB,MAAM,UAAG,GAAA9N,QAAA,CAAAC,iBAAA,CAGxD9J,IAAI;YAAA,IAAC+J,IAAIA,CAAA;cAAA,OAAE1E,KAAK,CAACkC,KAAK;YAAA;YAAA,IAAAyC,SAAA;cAAA,OAAAL,KAAA,CAAAqR,QAAA,EAAAnR,QAAA,CACqBxE,KAAK,CAACkC,KAAK;YAAA;UAAA,KAAAsC,QAAA,CAGpD3G,UAAU,CAACmC,KAAK,CAACC,SAAS,EAAE3E,UAAU,CAAC,CAAC,CAAC,GAAAkJ,QAAA,CAAK3G,UAAU,CAACmC,KAAK,CAACK,OAAO,EAAE/E,UAAU,CAAC,CAAC,CAAC;QAKhG;MAAC,KAAAkJ,QAAA,CAAAC,iBAAA,CAEFlK,GAAG;QAAA,IAACkP,IAAIA,CAAA;UAAA,OAAEgK,OAAO,CAAC,CAAC;QAAA;QAAA9O,QAAA,EAChBsP,UAAU,IAAK;UACf,IAAI,CAACX,SAAS,CAAC,CAAC,IAAIW,UAAU,CAACxR,IAAI,IAAI8Q,gBAAgB,CAACU,UAAU,CAACvR,KAAK,CAAC,EAAE,OAAO,IAAI;UACtF,MAAM1C,KAAK,GAAGiU,UAAU,CAACjU,KAAK;UAC9B,MAAM2T,MAAM,GAAGN,WAAW,CAACrT,KAAK,CAAC;UACjC,MAAM4V,QAAQ,GAAG5B,SAAS,CAACC,UAAU,CAAC;UACtC,MAAM4B,WAAW,GAAIhI,YAA0B,IAAK;YAClD,IAAI,CAACxM,KAAK,CAAChG,KAAK,CAACya,aAAa,EAAE;YAChCjI,YAAY,CAACxI,cAAc,CAAC,CAAC;YAC7BwI,YAAY,CAACvI,eAAe,CAAC,CAAC;YAC9BiN,gBAAgB,CAAC;cACfvS,KAAK,EAAE6N,YAAY;cACnByD,eAAe;cACfyE,SAAS,EAAE,CAAC;cACZ/H,OAAO,EAAEA,CAACV,OAAO,EAAEC,OAAO,KAAK;gBAC7B,MAAMqF,OAAO,GAAGb,WAAW,CAACzE,OAAO,EAAEC,OAAO,CAAC;gBAC7C,IAAI,CAACqF,OAAO,EAAE,OAAO,IAAI;gBACzB,MAAMoD,UAAU,GAAGnX,UAAU,CAACmB,KAAK,CAACW,eAAe,EAAE,EAAE,CAAC;gBACxD,MAAMP,GAAG,GAAGwS,OAAO,GAAGoD,UAAU,GAAGpD,OAAO,GAAGoD,UAAU;gBACvD,OAAO;kBAAE/T,EAAE,EAAEjC,KAAK,CAACiC,EAAE;kBAAEC,KAAK,EAAElC,KAAK,CAACkC,KAAK;kBAAEhC,KAAK,EAAEF,KAAK,CAACW,eAAe;kBAAEP,GAAG;kBAAEM,MAAM,EAAE;gBAAM,CAAC;cAC/F,CAAC;cACDuN,UAAU,EAAEA,CAAA,KAAM;gBAChBvB,sBAAsB,GAAGvH,WAAW,CAACC,GAAG,CAAC,CAAC,GAAG,GAAG;gBAChDoH,gBAAgB,CAACxM,KAAK,CAACiC,EAAE,CAAC;cAC5B,CAAC;cACDiM,SAAS,EAAEiD,cAAc;cACzBhD,QAAQ,EAAGtM,IAAI,IAAK;gBAClBiQ,gBAAgB,CAAC,CAAC;gBAClB,IAAIlQ,gBAAgB,CAAC5B,KAAK,EAAE6B,IAAI,CAAC,EAAER,KAAK,CAAChG,KAAK,CAACya,aAAa,GAAG9V,KAAK,EAAE6B,IAAI,CAAC;cAC7E,CAAC;cACDuM,QAAQ,EAAE0D;YACZ,CAAC,CAAC;UACJ,CAAC;UACD,OAAAxN,KAAA,CAAA2R,QAAA,EAAA3H,kBAAA,SAIW,GAAA9J,QAAA,CAAGmP,MAAM,CAACtB,GAAG,UAAG,IAAA/D,kBAAA,aACb,GAAA9J,QAAA,CAAGmP,MAAM,CAACrB,MAAM,UAAG,IAAAhE,kBAAA,WAAA9J,QAAA,CACrBoR,QAAQ,CAACzB,IAAI,WAAA7F,kBAAA,YAAA9J,QAAA,CACZoR,QAAQ,CAACxB,KAAK,WAAA9F,kBAAA,cAAA9J,QAAA,CACVlG,MAAM,CAAC,EAAE,GAAG2V,UAAU,CAACxR,IAAI,CAAC,UAAA+B,QAAA,CAAAC,iBAAA,CAItCzB,SAAS;YACRhD,KAAK,EAAEA,KAAK;YAAA,IACZ3E,KAAKA,CAAA;cAAA,OAAEgG,KAAK,CAAChG,KAAK;YAAA;YAAA,IAClBkG,IAAIA,CAAA;cAAA,OAAEH,SAAS,CAACC,KAAK,CAAChG,KAAK,EAAE2E,KAAK,CAAC;YAAA;YACnC0D,IAAI;YAAA,IACJqC,MAAMA,CAAA;cAAA,OAAEwG,aAAa,CAAC,CAAC,KAAKvM,KAAK,CAACiC,EAAE;YAAA;YAAA,IACpC+C,iBAAiBA,CAAA;cAAA,OACf3D,KAAK,CAAChG,KAAK,CAAC0S,WAAW,GACnB,CAACF,YAAY,EAAEC,WAAW,KAAK0E,cAAc,CAAC3E,YAAY,EAAE7N,KAAK,EAAE8N,WAAW,CAAC,GAC/EzK,SAAS;YAAA;UAAA,KAAAmB,QAAA,CAAAC,iBAAA,CAGhB9J,IAAI;YAAA,IAAC+J,IAAIA,CAAA;cAAA,OAAErD,KAAK,CAAChG,KAAK,CAACya,aAAa;YAAA;YAAA,IAAAnR,SAAA;cAAA,OAAAL,KAAA,CAAA4R,QAAA,EAAApQ,cAAA,eAAAtB,QAAA,CAGrBsE,QAAQ,CAAC,CAAC,CAACqN,WAAW;YAAA;UAAA;QAY9C;MAAC,KAAA3R,QAAA,CAAAC,iBAAA,CAEFlK,GAAG;QAAA,IAACkP,IAAIA,CAAA;UAAA,OAAE+J,eAAe,CAACC,OAAO,CAAC,CAAC,CAAC;QAAA;QAAA9O,QAAA,EACjCyR,QAAQ,IAAK;UACb,MAAMzC,MAAM,GAAGV,eAAe,CAACmD,QAAQ,CAACtT,cAAc,EAAEsT,QAAQ,CAACrT,YAAY,CAAC;UAC9E,MAAM2C,GAAG,GAAG,GAAG7E,MAAM,IAAIuV,QAAQ,CAACzT,OAAO,EAAE;UAC3C,MAAM0T,WAAW,GAAGA,CAAA,KAClBD,QAAQ,CAACvC,YAAY,CAACtR,GAAG,CAAEvC,KAAK,IAAK,GAAGnC,UAAU,CAACmC,KAAK,CAACC,SAAS,EAAE3E,UAAU,CAAC,CAAC,CAAC,IAAI0E,KAAK,CAACkC,KAAK,EAAE,CAAC,CAACoU,IAAI,CAAC,IAAI,CAAC;UAChH,QAAAhS,KAAA,CAAAiS,QAAA,EAAAjI,kBAAA,SAKoB,GAAA9J,QAAA,CAAGmP,MAAM,CAACtB,GAAG,UAAG,IAAA/D,kBAAA,aAAU,GAAA9J,QAAA,CAAGmP,MAAM,CAACrB,MAAM,UAAG,GAAAxM,cAAA,UAAAtB,QAAA,CACpD6R,WAAW,CAAC,CAAC,kBAAAvQ,cAAA,eAAAtB,QAAA,CACRsE,QAAQ,CAAC,CAAC,CAAC0N,uBAAuB,CAAC;YAAEC,KAAK,EAAEL,QAAQ,CAACvC,YAAY,CAACzK;UAAO,CAAC,CAAC,iBAAA5E,QAAA,CAMhC4R,QAAQ,CAACvC,YAAY,CAACzK,MAAM,IAAA3E,iBAAA,CAEpF9J,IAAI;YAAA,IAAC+J,IAAIA,CAAA;cAAA,OAAE0M,gBAAgB,CAAC,CAAC,KAAK1L,GAAG;YAAA;YAAA,IAAAf,SAAA;cAAA,OAAAL,KAAA,CAAAoS,QAAA,EAAApI,kBAAA,SAC6B,GAAA9J,QAAA,CAAGmP,MAAM,CAACtB,GAAG,UAAG,GAAA7N,QAAA,CAE5E3G,UAAU,CAACuY,QAAQ,CAACtT,cAAc,EAAExH,UAAU,CAAC,CAAC,CAAC,GAAAkJ,QAAA,CAAK3G,UAAU,CAACuY,QAAQ,CAACrT,YAAY,EAAEzH,UAAU,CAAC,CAAC,CAAC,GAAAkJ,QAAA,CAAAC,iBAAA,CAEvGlK,GAAG;gBAAA,IAACkP,IAAIA,CAAA;kBAAA,OAAE2M,QAAQ,CAACvC,YAAY;gBAAA;gBAAAlP,QAAA,EAC5B3E,KAAK,IAAAyE,iBAAA,CAAMzB,SAAS;kBAAChD,KAAK,EAAEA,KAAK;kBAAA,IAAE3E,KAAKA,CAAA;oBAAA,OAAEgG,KAAK,CAAChG,KAAK;kBAAA;kBAAA,IAAEkG,IAAIA,CAAA;oBAAA,OAAEH,SAAS,CAACC,KAAK,CAAChG,KAAK,EAAE2E,KAAK,CAAC;kBAAA;kBAAE4D,OAAO;gBAAA;cAAG;YAAA;UAAA;QAMpH;MAAC;IAIT;EAAC;AAMb,CAAC;AAED,MAAM+S,QAAQ,GAAItV,KAAiF,IAAkB;EACnH,MAAM/F,UAAU,GAAGjB,UAAU,CAAC,MAAMe,eAAe,CAACiG,KAAK,CAAChG,KAAK,CAAC,CAAC;EACjE,MAAMmB,IAAI,GAAGnC,UAAU,CAAC,MAAM+D,cAAc,CAACiD,KAAK,CAACvE,IAAI,EAAExB,UAAU,CAAC,CAAC,CAAC,CAACkB,IAAI,CAAC;EAC5E,MAAMsQ,QAAQ,GAAGzS,UAAU,CAAC,MAAMD,QAAQ,CAACwD,aAAa,CAACyD,KAAK,CAAC+D,GAAG,EAAE9J,UAAU,CAAC,CAAC,CAAC,CAAC;EAClF,MAAMyR,WAAW,GAAG1S,UAAU,CAAC,MAAM;IACnC,MAAM2S,OAAO,GAAG,IAAIC,GAAG,CAA4B,CAAC;IACpD,KAAK,MAAMjN,KAAK,IAAIqB,KAAK,CAACvB,MAAM,EAAE;MAChC,MAAMA,MAAM,GAAGkN,OAAO,CAACE,GAAG,CAAClN,KAAK,CAACa,MAAM,CAAC;MACxC,IAAIf,MAAM,EAAEA,MAAM,CAACqB,IAAI,CAACnB,KAAK,CAAC,CAAC,KAC1BgN,OAAO,CAACG,GAAG,CAACnN,KAAK,CAACa,MAAM,EAAE,CAACb,KAAK,CAAC,CAAC;IACzC;IACA,OAAOgN,OAAO;EAChB,CAAC,CAAC;EACF,MAAM4J,MAAM,GAAGvc,UAAU,CAAC,MAAM;IAC9B,MAAMwB,OAAO,GAAGP,UAAU,CAAC,CAAC;IAC5B,OAAOyV,KAAK,CAACC,IAAI,CAAC;MAAE5H,MAAM,EAAE;IAAG,CAAC,EAAE,CAAC6H,CAAC,EAAExU,KAAK,KAAK;MAC9C,MAAMK,IAAI,GAAGuB,cAAc,CAAC7B,IAAI,CAAC,CAAC,EAAEC,KAAK,EAAEZ,OAAO,CAAC;MACnD,OAAO;QACLiB,IAAI;QACJmN,KAAK,EAAEnN,IAAI,CAACiB,kBAAkB,CAAClC,OAAO,CAACmC,MAAM,IAAI,IAAI,EAAE;UAAEvB,KAAK,EAAE,MAAM;UAAElB,QAAQ,EAAEM,OAAO,CAACN;QAAS,CAAC,CAAC;QACrGyF,IAAI,EAAE5G,QAAQ,CACXwS,YAAY,CAACpQ,IAAI,CAAC,CAAC,EAAEC,KAAK,EAAEZ,OAAO,CAAC,CACpCgb,IAAI,CAAC,CAAC,CACNtU,GAAG,CAAE7F,GAAG,IAAK;UACZ,MAAMgJ,GAAG,GAAGtL,QAAQ,CAACwD,aAAa,CAAClB,GAAG,EAAEb,OAAO,CAAC;UAChD,OAAO;YACLiB,IAAI,EAAEJ,GAAG;YACToD,MAAM,EAAEiN,WAAW,CAAC,CAAC,CAACG,GAAG,CAACxH,GAAG,CAAC,IAAI,EAAE;YACpCsJ,OAAO,EAAEtJ,GAAG,KAAKoH,QAAQ,CAAC,CAAC;YAC3BgK,OAAO,EAAE,CAAC1c,QAAQ,CAAC2U,WAAW,CAACrS,GAAG,EAAEI,IAAI,EAAEjB,OAAO,CAAC;YAClDkb,MAAM,EAAE3c,QAAQ,CAAC0V,eAAe,CAACpT,GAAG,EAAEb,OAAO;UAC/C,CAAC;QACH,CAAC;MACL,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,OAAAyI,KAAA,CAAA0S,QAAA,EAAAxS,QAAA,CAAAC,iBAAA,CAEKlK,GAAG;IAAA,IAACkP,IAAIA,CAAA;MAAA,OAAEmN,MAAM,CAAC,CAAC;IAAA;IAAAjS,QAAA,EACflI,KAAK,IAAA6H,KAAA,CAAA2S,QAAA,EAAAzS,QAAA,CAEoC/H,KAAK,CAACwN,KAAK,GAAAzF,QAAA,CAAAC,iBAAA,CAE/ClK,GAAG;MAAA,IAACkP,IAAIA,CAAA;QAAA,OAAEhN,KAAK,CAACuE,IAAI;MAAA;MAAA2D,QAAA,EACjBjI,GAAG,IAAA+H,iBAAA,CACF6C,sBAAsB;QAAA,IACrBjM,KAAKA,CAAA;UAAA,OAAEgG,KAAK,CAAChG,KAAK;QAAA;QAAA,IAClBkG,IAAIA,CAAA;UAAA,OAAEF,KAAK,CAAChG,KAAK,CAAC2P,WAAW,GAAGtO,GAAG,CAACI,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG;QAAA;QAAA,IACvD0L,WAAWA,CAAA;UAAA,OAAE;YACXwB,KAAK,EAAE,wBAAwB;YAC/B,YAAY,EAAEtN,GAAG,CAACsS,OAAO,GAAG,MAAM,GAAG3L,SAAS;YAC9C,cAAc,EAAE3G,GAAG,CAACoa,OAAO,GAAG,MAAM,GAAGzT;UACzC,CAAC;QAAA;QAAA,IAAAsB,SAAA;UAAA,QAEAjI,GAAG,CAACqa,MAAM,EAAAtS,iBAAA,CACV9J,IAAI;YAAA,IAAC+J,IAAIA,CAAA;cAAA,OAAEhI,GAAG,CAACoD,MAAM,CAAC,CAAC,CAAC;YAAA;YAAA6E,QAAA,EACrB3E,KAAK,IAAAsE,KAAA,CAAA4S,QAAA,EAAApR,cAAA,eAGS9F,KAAK,CAAC,CAAC,CAACoD,QAAQ,GAAAoB,QAAA,CAAGnB,SAAS,UAAAmB,QAAA,CAAIxE,KAAK,CAAC,CAAC,CAACmC,KAAK,IAAI,MAAM,OAAC,WAAA2D,cAAA,eACxDpJ,GAAG,CAACsS,OAAO,GAAG,MAAM,GAAAxK,QAAA,CAAGnB,SAAS,iBAAA6C,UAAA,CACrClG,KAAK,CAAC,CAAC,CAACoD,QAAQ,GAAG;cAAE,kBAAkB,EAAE1G,GAAG,CAACsS,OAAO,GAAG,OAAO,GAAGhP,KAAK,CAAC,CAAC,CAACoD;YAAS,CAAC,GAAGC,SAAS;UAEzG;QAAA;MAAA;IAGN;EAIR;AAIT,CAAC;AAED,MAAM8T,eAAe,GAAI9V,KAOxB,IAAkB;EACjB,MAAM/F,UAAU,GAAGjB,UAAU,CAAC,MAAMe,eAAe,CAACiG,KAAK,CAAChG,KAAK,CAAC,CAAC;EACjE,MAAM+b,eAAe,GAAG/c,UAAU,CAAC,MAAMD,QAAQ,CAACwD,aAAa,CAACyD,KAAK,CAACgW,YAAY,EAAE/b,UAAU,CAAC,CAAC,CAAC,CAAC;EAClG,MAAMgc,cAAc,GAAGjd,UAAU,CAAC,MAAMgH,KAAK,CAACvB,MAAM,CAACsC,MAAM,CAAEpC,KAAK,IAAKA,KAAK,CAACa,MAAM,KAAKuW,eAAe,CAAC,CAAC,CAAC,CAAC;EAC3G,OAAA9S,KAAA,CAAAiT,QAAA,EAAA/S,QAAA,CAAAC,iBAAA,CAEK2H,SAAS;IAAA,IACR/Q,KAAKA,CAAA;MAAA,OAAE;QAAE,GAAGgG,KAAK,CAAChG,KAAK;QAAEkT,eAAe,EAAE;MAAM,CAAC;IAAA;IAAA,IACjDzR,IAAIA,CAAA;MAAA,OAAEuE,KAAK,CAACvE,IAAI;IAAA;IAAA,IAChBsI,GAAGA,CAAA;MAAA,OAAE/D,KAAK,CAAC+D,GAAG;IAAA;IAAA,IACdtF,MAAMA,CAAA;MAAA,OAAEuB,KAAK,CAACvB,MAAM;IAAA;IAAA,IACpBwL,MAAMA,CAAA;MAAA,OAAEjK,KAAK,CAACiK,MAAM;IAAA;EAAA,KAAA9G,QAAA,CAIjBnD,KAAK,CAACgW,YAAY,CAACtZ,kBAAkB,CAACzC,UAAU,CAAC,CAAC,CAAC0C,MAAM,IAAI,IAAI,EAAE;IAClEC,OAAO,EAAE,MAAM;IACfxB,KAAK,EAAE,MAAM;IACbC,GAAG,EAAE,SAAS;IACdnB,QAAQ,EAAED,UAAU,CAAC,CAAC,CAACC;EACzB,CAAC,CAAC,GAAAiJ,QAAA,CAAAC,iBAAA,CAEH9J,IAAI;IAAA,IAAC+J,IAAIA,CAAA;MAAA,OAAE4S,cAAc,CAAC,CAAC,CAAClO,MAAM,GAAG,CAAC;IAAA;IAAA,IAAE0C,QAAQA,CAAA;MAAA,OAAAxH,KAAA,CAAAkT,QAAA,EAAAhT,QAAA,CAAiDnD,KAAK,CAACiK,MAAM,CAACmM,QAAQ;IAAA;IAAA,IAAA9S,SAAA;MAAA,OAAAL,KAAA,CAAAoT,QAAA,EAAAlT,QAAA,CAAAC,iBAAA,CAElHlK,GAAG;QAAA,IAACkP,IAAIA,CAAA;UAAA,OAAE6N,cAAc,CAAC,CAAC;QAAA;QAAA3S,QAAA,EACvB3E,KAAK,IAAAyE,iBAAA,CAAMzB,SAAS;UAAChD,KAAK,EAAEA,KAAK;UAAA,IAAE3E,KAAKA,CAAA;YAAA,OAAEgG,KAAK,CAAChG,KAAK;UAAA;UAAA,IAAEkG,IAAIA,CAAA;YAAA,OAAEH,SAAS,CAACC,KAAK,CAAChG,KAAK,EAAE2E,KAAK,CAAC;UAAA;QAAA;MAAI;IAAA;EAAA;AAO9G,CAAC;AAED,MAAM2X,YAAY,GAAItW,KAAgC,IAAAiD,KAAA,CAAAsT,QAAA,EAAApT,QAAA,CAAkDnD,KAAK,CAACsD,QAAQ,EAAO;AAE7H,MAAMkT,QAAQ,GAAIxW,KAAoB,IAAkB;EACtD,MAAMyH,QAAQ,GAAG/N,aAAa,CAAC,CAAC;EAChC;EACA;EACA,MAAM+c,eAAe,GAAGhd,mBAAmB,CAAC,MAAMuG,KAAK,CAAC/F,UAAU,CAAC;EACnE,MAAMD,KAAK,GAAGb,UAAU,CAAC6G,KAAK,EAAE;IAC9B,IAAI/F,UAAUA,CAAA,EAAgB;MAC5B,OAAOwc,eAAe,CAAC,CAAC;IAC1B;EACF,CAAC,CAAC;EACF,MAAMlO,IAAI,GAAGA,CAAA,KAAMvI,KAAK,CAACuI,IAAI,IAAI,OAAO;EACxC,MAAMtO,UAAU,GAAGjB,UAAU,CAAC,MAAMe,eAAe,CAACC,KAAK,CAAC,CAAC;EAC3D,MAAM0c,QAAQ,GAAInc,KAAoB,IAAK;IACzC,MAAMQ,MAAM,GAAGT,SAAS,CAACC,KAAK,EAAEN,UAAU,CAAC,CAAC,CAAC;IAC7C,OAAOsB,SAAS,CAACR,MAAM,CAAC,GAAGA,MAAM,GAAGhC,QAAQ,CAACgR,KAAK,CAAC9P,UAAU,CAAC,CAAC,CAAC;EAClE,CAAC;EACD,MAAMwB,IAAI,GAAGzC,UAAU,CAAC,MAAM0d,QAAQ,CAAC1W,KAAK,CAACvE,IAAI,CAAC,CAAC;EACnD,MAAMua,YAAY,GAAGhd,UAAU,CAAC,MAAM0d,QAAQ,CAAC1W,KAAK,CAACgW,YAAY,IAAIhW,KAAK,CAACvE,IAAI,CAAC,CAAC;EACjF,MAAM,CAACsI,GAAG,EAAE4S,MAAM,CAAC,GAAG1d,YAAY,CAAC,IAAIwB,IAAI,CAAC,CAAC,CAAC;EAC9C,MAAMmc,gBAAgB,GAAG5d,UAAU,CAAC,MAAMwF,eAAe,CAACwB,KAAK,CAACvB,MAAM,EAAExE,UAAU,CAAC,CAAC,CAAC,CAAC;EACtF,MAAM4c,YAAY,GAAG7d,UAAU,CAA2B,OAAO;IAC/D+Q,KAAK,EAAEtC,QAAQ,CAAC,CAAC,CAACsC,KAAK;IACvB1O,GAAG,EAAEoM,QAAQ,CAAC,CAAC,CAACpM,GAAG;IACnBiP,IAAI,EAAE7C,QAAQ,CAAC,CAAC,CAAC6C,IAAI;IACrBlP,KAAK,EAAEqM,QAAQ,CAAC,CAAC,CAACrM,KAAK;IACvBD,IAAI,EAAEsM,QAAQ,CAAC,CAAC,CAACtM,IAAI;IACrBkE,MAAM,EAAEoI,QAAQ,CAAC,CAAC,CAACpI,MAAM;IACzB+W,QAAQ,EAAE3O,QAAQ,CAAC,CAAC,CAAC2O,QAAQ;IAC7BpN,QAAQ,EAAEvB,QAAQ,CAAC,CAAC,CAACuB,QAAQ;IAC7BxI,IAAI,EAAEiH,QAAQ,CAAC,CAAC,CAACjH,IAAI;IACrB,GAAGR,KAAK,CAACiK;EACX,CAAC,CAAC,CAAC;EACH,MAAMtK,IAAI,GAAG3G,UAAU,CAAC,MAAM;IAC5B,IAAIuP,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,OAAO,CAAC9M,IAAI,CAAC,CAAC,CAAC;IACrC,OAAO1C,QAAQ,CAAC+d,WAAW,CAACrb,IAAI,CAAC,CAAC,EAAExB,UAAU,CAAC,CAAC,CAAC;EACnD,CAAC,CAAC;EACFZ,OAAO,CAAC,MAAM;IACZ,MAAM0d,SAAS,GAAGA,CAAA,KAAMJ,MAAM,CAAC,IAAIlc,IAAI,CAAC,CAAC,CAAC;IAC1C,MAAMuc,QAAQ,GAAGjQ,MAAM,CAACkQ,WAAW,CAACF,SAAS,EAAE,MAAM,CAAC;IACtD5K,QAAQ,CAAC+K,gBAAgB,CAAC,kBAAkB,EAAEH,SAAS,CAAC;IACxD3d,SAAS,CAAC,MAAM;MACd2N,MAAM,CAACoQ,aAAa,CAACH,QAAQ,CAAC;MAC9B7K,QAAQ,CAACiL,mBAAmB,CAAC,kBAAkB,EAAEL,SAAS,CAAC;IAC7D,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,OAAA9T,KAAA,CAAAoU,QAAA,EACkB,wBAAAlU,QAAA,CAAwBnD,KAAK,CAAC2I,KAAK,IAAI,EAAE,SAAE,EAAAlE,cAAA,cAAazE,KAAK,CAAC6K,iBAAiB,GAAG,MAAM,GAAA1H,QAAA,CAAGnB,SAAS,iBAAAmB,QAAA,CAAAC,iBAAA,CACjH2F,cAAc;IAAA,IAACtN,IAAIA,CAAA;MAAA,OAAEA,IAAI,CAAC,CAAC;IAAA;IAAA,IAAE8M,IAAIA,CAAA;MAAA,OAAEA,IAAI,CAAC,CAAC;IAAA;IAAA,IAAE0B,MAAMA,CAAA;MAAA,OAAE4M,YAAY,CAAC,CAAC;IAAA;IAAE7c,KAAK,EAAEA;EAAK,KAAAmJ,QAAA,CAC/EnD,KAAK,CAACsX,cAAc,GAAAnU,QAAA,CAAAC,iBAAA,CACpB9J,IAAI;IAAA,IACH+J,IAAIA,CAAA;MAAA,OAAEkF,IAAI,CAAC,CAAC,KAAK,OAAO;IAAA;IAAA,IACxBkC,QAAQA,CAAA;MAAA,OAAArH,iBAAA,CACLkT,YAAY;QAAA,IAAAhT,SAAA;UAAA,OAAAF,iBAAA,CACV2H,SAAS;YAAC/Q,KAAK,EAAEA,KAAK;YAAA,IAAEyB,IAAIA,CAAA;cAAA,OAAEA,IAAI,CAAC,CAAC;YAAA;YAAA,IAAEsI,GAAGA,CAAA;cAAA,OAAEA,GAAG,CAAC,CAAC;YAAA;YAAA,IAAEtF,MAAMA,CAAA;cAAA,OAAEmY,gBAAgB,CAAC,CAAC;YAAA;YAAA,IAAE3M,MAAMA,CAAA;cAAA,OAAE4M,YAAY,CAAC,CAAC;YAAA;UAAA;QAAA;MAAA;IAAA;IAAA,IAAAvT,SAAA;MAAA,OAAAF,iBAAA,CAIxG9J,IAAI;QAAA,IACH+J,IAAIA,CAAA;UAAA,OAAEkF,IAAI,CAAC,CAAC,KAAK,MAAM;QAAA;QAAA,IACvBkC,QAAQA,CAAA;UAAA,OAAArH,iBAAA,CACLkT,YAAY;YAAA,IAAAhT,SAAA;cAAA,OAAAF,iBAAA,CACVkS,QAAQ;gBAACtb,KAAK,EAAEA,KAAK;gBAAA,IAAEyB,IAAIA,CAAA;kBAAA,OAAEA,IAAI,CAAC,CAAC;gBAAA;gBAAA,IAAEsI,GAAGA,CAAA;kBAAA,OAAEA,GAAG,CAAC,CAAC;gBAAA;gBAAA,IAAEtF,MAAMA,CAAA;kBAAA,OAAEmY,gBAAgB,CAAC,CAAC;gBAAA;cAAA;YAAA;UAAA;QAAA;QAAA,IAAAtT,SAAA;UAAA,OAAAF,iBAAA,CAI/E9J,IAAI;YAAA,IACH+J,IAAIA,CAAA;cAAA,OAAEkF,IAAI,CAAC,CAAC,KAAK,cAAc;YAAA;YAAA,IAC/BkC,QAAQA,CAAA;cAAA,OAAArH,iBAAA,CACLkT,YAAY;gBAAA,IAAAhT,SAAA;kBAAA,OAAAF,iBAAA,CACV0S,eAAe;oBACd9b,KAAK,EAAEA,KAAK;oBAAA,IACZyB,IAAIA,CAAA;sBAAA,OAAEA,IAAI,CAAC,CAAC;oBAAA;oBAAA,IACZsI,GAAGA,CAAA;sBAAA,OAAEA,GAAG,CAAC,CAAC;oBAAA;oBAAA,IACViS,YAAYA,CAAA;sBAAA,OAAEA,YAAY,CAAC,CAAC;oBAAA;oBAAA,IAC5BvX,MAAMA,CAAA;sBAAA,OAAEmY,gBAAgB,CAAC,CAAC;oBAAA;oBAAA,IAC1B3M,MAAMA,CAAA;sBAAA,OAAE4M,YAAY,CAAC,CAAC;oBAAA;kBAAA;gBAAA;cAAA;YAAA;YAAA,IAAAvT,SAAA;cAAA,OAAAF,iBAAA,CAK3B4L,YAAY;gBAAChV,KAAK,EAAEA,KAAK;gBAAA,IAAEyB,IAAIA,CAAA;kBAAA,OAAEA,IAAI,CAAC,CAAC;gBAAA;gBAAA,IAAEsI,GAAGA,CAAA;kBAAA,OAAEA,GAAG,CAAC,CAAC;gBAAA;gBAAA,IAAEtF,MAAMA,CAAA;kBAAA,OAAEmY,gBAAgB,CAAC,CAAC;gBAAA;gBAAA,IAAE3M,MAAMA,CAAA;kBAAA,OAAE4M,YAAY,CAAC,CAAC;gBAAA;gBAAA,IAAElX,IAAIA,CAAA;kBAAA,OAAEA,IAAI,CAAC,CAAC;gBAAA;cAAA;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA;AAMlI,CAAC;AAED,eAAe6W,QAAQ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["content/Calendar.tsx"],"sourcesContent":["import { Link, type LinkNavigateEvent } from \"@k2b/ssr/nav\";\nimport { dates as calendar, type DateContext } from \"@k2b/stdlib\";\nimport type { JSX, ParentProps } from \"solid-js\";\nimport { createMemo, createSignal, For, mergeProps, onCleanup, onMount, Show } from \"solid-js\";\nimport { Button } from \"../actions/Button\";\nimport SegmentedControl from \"../actions/SegmentedControl\";\nimport { useDateConfigLocale } from \"../intl/locale\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { layoutCalendarIntervals } from \"./calendar-event-layout\";\nimport { calendarDayIndexAtPoint, calendarMinuteAtPoint, startCalendarPointerSession } from \"./calendar-pointer\";\n\nexport type CalendarView = \"day\" | \"week\" | \"month\" | \"year\" | \"mobile-month\";\n\nexport type CalendarEventColor = \"blue\" | \"emerald\" | \"amber\" | \"red\" | \"violet\" | \"cyan\" | \"zinc\";\n\nexport type CalendarEvent = {\n id: string;\n title: string;\n start: Date | string;\n end?: Date | string;\n allDay?: boolean;\n color?: CalendarEventColor;\n colorHex?: string;\n href?: string;\n dataSpaceItemId?: string;\n meta?: string;\n description?: string;\n display?: \"event\" | \"background\";\n location?: string;\n calendarName?: string;\n attendees?: CalendarAttendee[];\n resources?: CalendarResource[];\n recurrence?: CalendarRecurrence;\n};\n\nexport type CalendarAttendee = {\n name: string;\n status?: \"accepted\" | \"declined\" | \"tentative\" | \"needs-action\";\n};\n\nexport type CalendarResource = {\n name: string;\n kind?: \"room\" | \"equipment\" | \"link\" | \"other\";\n};\n\nexport type CalendarRecurrence = {\n rrule: string;\n exdate?: Array<Date | string>;\n recurrenceId?: Date | string;\n};\n\nexport type CalendarLabels = Partial<{\n today: string;\n day: string;\n week: string;\n month: string;\n year: string;\n allDay: string;\n noEvents: string;\n previous: string;\n next: string;\n}>;\n\nexport type CalendarEventRenderContext = {\n compact: boolean;\n fill: boolean;\n start: Date;\n end: Date;\n allDay: boolean;\n durationHours: number;\n timeLabel: string;\n};\n\nexport type CalendarProps = {\n date: Date | string;\n events: CalendarEvent[];\n view?: CalendarView;\n views?: CalendarView[];\n labels?: CalendarLabels;\n /** stdlib date context used for timezone-aware rendering and calendar math. */\n dateConfig?: DateContext;\n /** Convenience override for dateConfig.timeZone. */\n timeZone?: string;\n firstDayOfWeek?: 0 | 1;\n withWeekNumbers?: boolean;\n startHour?: number;\n endHour?: number;\n visibleStartHour?: number;\n visibleEndHour?: number;\n allDayMaxHeightRem?: number;\n hideAllDay?: boolean;\n selectedDate?: Date | string;\n selectedEventId?: string;\n dayBadges?: Record<string, CalendarDayBadge>;\n getViewHref?: (view: CalendarView) => string;\n getDateHref?: (date: Date, view: CalendarView) => string;\n getEventHref?: (event: CalendarEvent) => string | undefined;\n renderEvent?: (event: CalendarEvent, context: CalendarEventRenderContext) => JSX.Element;\n /** Progressively enhance canonical calendar links after the app has loaded their target state. */\n onNavigate?: (event: LinkNavigateEvent) => void | Promise<void>;\n /** Progressively enhance canonical links without a document view transition. */\n onNavigateHref?: (href: string) => void;\n /** Optionally preload the target behind a canonical calendar link. */\n onPrefetch?: (href: string) => void;\n navigationPending?: boolean;\n onViewChange?: (view: CalendarView) => void;\n onDateChange?: (date: Date, view: CalendarView) => void;\n /** One activation contract for pointer and keyboard input. */\n onEventActivate?: (event: CalendarEvent) => void;\n /** Pointer gesture used for activation. Keyboard activation is always immediate. */\n eventActivation?: \"single\" | \"double\";\n onEventDrop?: (event: CalendarEvent, next: CalendarEventTimeChange) => void;\n onEventResize?: (event: CalendarEvent, next: CalendarEventTimeChange) => void;\n onSlotActivate?: (slot: CalendarEventTimeChange) => void;\n /** Pointer gesture used for empty slots. Keyboard activation is always immediate. */\n slotActivation?: \"single\" | \"double\";\n toolbarActions?: JSX.Element;\n toolbarContent?: JSX.Element;\n class?: string;\n};\n\nexport type CalendarEventTimeChange = {\n start: Date;\n end: Date;\n allDay?: boolean;\n};\n\nexport type CalendarDayBadge = {\n icon?: string;\n label: string;\n};\n\ntype NormalizedEvent = CalendarEvent & {\n startDate: Date;\n endDate: Date;\n dayKey: string;\n sourceStartDate: Date;\n sourceEndDate: Date;\n};\n\ntype CalendarPreview = CalendarEventTimeChange & {\n id: string;\n title?: string;\n};\n\ntype TimedEventLayout = {\n event: NormalizedEvent;\n lane: number;\n lanes: number;\n groupId: number;\n groupStartDate: Date;\n groupEndDate: Date;\n};\n\ntype TimedOverflowLayout = {\n groupId: number;\n hiddenEvents: NormalizedEvent[];\n groupStartDate: Date;\n groupEndDate: Date;\n};\n\nconst ownerDateConfig = (owner: CalendarProps): DateContext => ({\n ...owner.dateConfig,\n timeZone: owner.timeZone ?? owner.dateConfig?.timeZone,\n firstDayOfWeek: owner.firstDayOfWeek ?? owner.dateConfig?.firstDayOfWeek ?? owner.dateConfig?.weekStartsOn ?? 1,\n});\n\nconst dateOnlyPattern = /^\\d{4}-\\d{2}-\\d{2}$/;\n\nconst parseDate = (value: Date | string, context?: DateContext): Date => {\n if (value instanceof Date) return new Date(value);\n if (dateOnlyPattern.test(value)) return calendar.parseCalendarDate(value, context);\n const normalized = value.includes(\"T\") ? value : value.replace(\" \", \"T\");\n const parsed = new Date(normalized);\n if (!Number.isNaN(parsed.getTime())) return parsed;\n const [year, month = \"1\", day = \"1\"] = value.split(\"-\");\n return new Date(Number(year), Number(month) - 1, Number(day), 12);\n};\n\nconst validDate = (value: Date): boolean => !Number.isNaN(value.getTime());\n\nconst weekNumber = (date: Date): number => {\n const target = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));\n const day = target.getUTCDay() || 7;\n target.setUTCDate(target.getUTCDate() + 4 - day);\n const yearStart = new Date(Date.UTC(target.getUTCFullYear(), 0, 1));\n return Math.ceil(((target.getTime() - yearStart.getTime()) / 86400000 + 1) / 7);\n};\nconst zonedWeekNumber = (date: Date, context?: DateContext): number => {\n if (!context?.timeZone) return weekNumber(date);\n const [year = \"1970\", month = \"1\", day = \"1\"] = calendar.formatDateKey(date, context).split(\"-\");\n return weekNumber(new Date(Date.UTC(Number(year), Number(month) - 1, Number(day))));\n};\n\nconst formatTime = (date: Date, context?: DateContext): string => calendar.formatTime(date, context);\nconst formatDay = (date: Date, context?: DateContext): string =>\n date.toLocaleDateString(context?.locale ?? \"en\", { weekday: \"short\", day: \"numeric\", timeZone: context?.timeZone });\nconst formatMonth = (date: Date, context?: DateContext): string => calendar.formatMonthYear(date, context);\nconst zonedYearMonth = (date: Date, context?: DateContext): { year: number; month: number } => {\n const [year = \"1970\", month = \"1\"] = calendar.formatDateKey(date, context).split(\"-\");\n return { year: Number(year), month: Number(month) - 1 };\n};\nconst zonedMonthDate = (year: number, month: number, context?: DateContext): Date => {\n const value = `${year}-${String(month + 1).padStart(2, \"0\")}-01T12:00`;\n if (!context?.timeZone) return parseDate(value);\n return new Date(calendar.zonedDateTimeToInstant(value, context.timeZone, { disambiguation: \"compatible\" }));\n};\n\nconst startOfDay = (date: Date, context?: DateContext): Date => calendar.startOfDay(date, context);\nconst endOfDay = (date: Date, context?: DateContext): Date => calendar.endOfDay(date, context);\nconst isStartOfDay = (date: Date, context?: DateContext): boolean => date.getTime() === startOfDay(date, context).getTime();\nconst addMinutes = (date: Date, minutes: number): Date => new Date(date.getTime() + minutes * 60 * 1000);\nconst zonedHour = (date: Date, context?: DateContext): number => {\n if (!context?.timeZone) return date.getHours() + date.getMinutes() / 60;\n const value = calendar.instantToZonedInput(date, context.timeZone);\n return Number(value.slice(11, 13)) + Number(value.slice(14, 16)) / 60;\n};\nconst zonedSlot = (day: Date, hour: number, context?: DateContext): Date => {\n return zonedMinuteSlot(day, hour * 60, context);\n};\nconst zonedMinuteSlot = (day: Date, minuteOfDay: number, context?: DateContext): Date => {\n const bounded = Math.max(0, Math.min(23 * 60 + 59, minuteOfDay));\n const hour = Math.floor(bounded / 60);\n const minute = bounded % 60;\n const value = `${calendar.formatDateKey(day, context)}T${String(hour).padStart(2, \"0\")}:${String(minute).padStart(2, \"0\")}`;\n if (!context?.timeZone) return parseDate(value);\n return new Date(calendar.zonedDateTimeToInstant(value, context.timeZone, { disambiguation: \"compatible\" }));\n};\nconst normalizeEvents = (events: CalendarEvent[], context?: DateContext): NormalizedEvent[] =>\n events.flatMap((event) => {\n const startDate = parseDate(event.start, context);\n if (!validDate(startDate)) return [];\n const parsedEnd = event.end ? parseDate(event.end, context) : null;\n const endDate = parsedEnd && validDate(parsedEnd) ? parsedEnd : new Date(startDate.getTime() + 60 * 60 * 1000);\n const duration = Math.max(60 * 60 * 1000, endDate.getTime() - startDate.getTime());\n const rangeEnd = endDate > startDate ? endDate : new Date(startDate.getTime() + duration);\n const startKey = calendar.formatDateKey(startDate, context);\n const endKey = calendar.formatDateKey(rangeEnd, context);\n if (!event.allDay && startKey === endKey) {\n return [\n {\n ...event,\n startDate,\n endDate: rangeEnd,\n sourceStartDate: startDate,\n sourceEndDate: rangeEnd,\n dayKey: startKey,\n },\n ];\n }\n const lastDay =\n event.allDay && isStartOfDay(rangeEnd, context)\n ? calendar.addDays(startOfDay(rangeEnd, context), -1, context)\n : startOfDay(rangeEnd, context);\n const days: NormalizedEvent[] = [];\n for (let day = startOfDay(startDate, context); day <= lastDay; day = calendar.addDays(day, 1, context)) {\n const segmentStart = day.getTime() === startOfDay(startDate, context).getTime() ? startDate : startOfDay(day, context);\n const segmentEnd = day.getTime() === startOfDay(rangeEnd, context).getTime() ? rangeEnd : endOfDay(day, context);\n days.push({\n ...event,\n startDate: segmentStart,\n endDate: segmentEnd,\n sourceStartDate: startDate,\n sourceEndDate: rangeEnd,\n dayKey: calendar.formatDateKey(day, context),\n allDay: event.allDay,\n });\n }\n return days;\n });\n\nconst eventHref = (props: CalendarProps, event: CalendarEvent): string | undefined => props.getEventHref?.(event) ?? event.href;\n\nconst moveEventTo = (event: NormalizedEvent, target: Date, allDay = false, context?: DateContext): CalendarEventTimeChange => {\n const duration = Math.max(30 * 60 * 1000, event.sourceEndDate.getTime() - event.sourceStartDate.getTime());\n const start = allDay ? startOfDay(target, context) : new Date(target);\n start.setSeconds(0, 0);\n return { start, end: new Date(start.getTime() + duration), allDay };\n};\n\nconst moveEventToDay = (event: NormalizedEvent, day: Date, context?: DateContext): CalendarEventTimeChange => {\n if (event.allDay) return moveEventTo(event, startOfDay(day, context), true, context);\n const localStart = context?.timeZone ? calendar.instantToZonedInput(event.sourceStartDate, context.timeZone) : null;\n const hour = localStart ? Number(localStart.slice(11, 13)) : event.sourceStartDate.getHours();\n const minute = localStart ? Number(localStart.slice(14, 16)) : event.sourceStartDate.getMinutes();\n return moveEventTo(event, zonedMinuteSlot(day, hour * 60 + minute, context), false, context);\n};\n\nconst eventTimeChanged = (event: NormalizedEvent, next: CalendarEventTimeChange): boolean =>\n event.sourceStartDate.getTime() !== next.start.getTime() ||\n event.sourceEndDate.getTime() !== next.end.getTime() ||\n Boolean(event.allDay) !== Boolean(next.allDay);\n\nconst previewSegments = (preview: CalendarPreview | null, days: Date[], context?: DateContext): NormalizedEvent[] =>\n preview\n ? normalizeEvents(\n [\n {\n id: `preview-${preview.id}`,\n title: preview.title ?? \"\",\n start: preview.start,\n end: preview.end,\n allDay: preview.allDay,\n color: \"blue\",\n },\n ],\n context,\n ).filter((event) => days.some((day) => event.dayKey === calendar.formatDateKey(day, context)))\n : [];\n\nconst timedEventLayouts = (events: NormalizedEvent[]): TimedEventLayout[] => {\n return layoutCalendarIntervals(events, (event) => ({\n start: event.startDate.getTime(),\n end: event.endDate.getTime(),\n })).map(({ item: event, lane, lanes, groupId, groupStart, groupEnd }) => ({\n event,\n lane,\n lanes,\n groupId,\n groupStartDate: new Date(groupStart),\n groupEndDate: new Date(groupEnd),\n }));\n};\n\nconst EventChip = (props: {\n event: NormalizedEvent;\n owner: CalendarProps;\n href?: string;\n compact?: boolean;\n fill?: boolean;\n moving?: boolean;\n onMovePointerDown?: (event: PointerEvent, onActivate: () => void) => void;\n}): JSX.Element => {\n const dateConfig = createMemo(() => ownerDateConfig(props.owner));\n const color = () => props.event.color ?? \"blue\";\n const selected = () => Boolean(props.owner.selectedEventId) && props.owner.selectedEventId === props.event.id;\n const style = () => (props.event.colorHex ? { \"--k2b-calendar-accent\": props.event.colorHex } : undefined);\n const isInteractive = () => Boolean(props.owner.onEventActivate);\n const durationHours = () => (props.event.endDate.getTime() - props.event.startDate.getTime()) / 3_600_000;\n const short = () => Boolean(props.fill && !props.event.allDay && durationHours() < 0.75);\n const showTime = () => !props.event.allDay && !props.compact && durationHours() >= 0.75;\n const showLocation = () => Boolean(props.event.location && !props.compact && durationHours() >= 1.25);\n const showDescription = () =>\n Boolean(props.event.description?.trim() && props.fill && !props.event.allDay && !props.compact && durationHours() >= 1.5);\n const timeLabel = () => `${formatTime(props.event.startDate, dateConfig())} - ${formatTime(props.event.endDate, dateConfig())}`;\n const renderedEvent = () =>\n props.owner.renderEvent?.(props.event, {\n compact: props.compact ?? false,\n fill: props.fill ?? false,\n start: props.event.startDate,\n end: props.event.endDate,\n allDay: props.event.allDay ?? false,\n durationHours: durationHours(),\n timeLabel: timeLabel(),\n });\n const defaultContent = (\n <>\n <span class=\"k2b-calendar-event__title\">{props.event.title}</span>\n <Show when={showTime()}>\n <span class=\"k2b-calendar-event__meta\">{timeLabel()}</span>\n </Show>\n <Show when={showLocation()}>\n <span class=\"k2b-calendar-event__meta\">{props.event.location}</span>\n </Show>\n <Show when={showDescription()}>\n <span class=\"k2b-calendar-event__description\">{props.event.description}</span>\n </Show>\n </>\n );\n const content = () => renderedEvent() ?? defaultContent;\n const isActionable = () => isInteractive() || Boolean(props.onMovePointerDown);\n let suppressClickUntil = 0;\n const onClick = (event: MouseEvent) => {\n if (performance.now() < suppressClickUntil) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n if (!props.owner.onEventActivate || props.owner.eventActivation === \"double\") return;\n event.preventDefault();\n event.stopPropagation();\n props.owner.onEventActivate(props.event);\n };\n const onDoubleClick = (event: MouseEvent) => {\n if (!props.owner.onEventActivate || props.owner.eventActivation !== \"double\") return;\n event.preventDefault();\n event.stopPropagation();\n props.owner.onEventActivate(props.event);\n };\n const onButtonKeyDown = (event: KeyboardEvent) => {\n if (!isInteractive() || (event.key !== \"Enter\" && event.key !== \" \")) return;\n event.preventDefault();\n props.owner.onEventActivate?.(props.event);\n };\n const onPointerDown = (event: PointerEvent) => {\n if (event.pointerType === \"touch\") return;\n if (props.onMovePointerDown) event.stopPropagation();\n props.onMovePointerDown?.(event, () => {\n suppressClickUntil = performance.now() + 400;\n });\n };\n\n return props.href ? (\n <a\n href={props.href}\n class=\"k2b-calendar-event\"\n data-calendar-event=\"\"\n data-color={props.event.colorHex ? undefined : color()}\n data-selected={selected() ? \"true\" : undefined}\n data-compact={props.compact ? \"true\" : undefined}\n data-fill={props.fill ? \"true\" : undefined}\n data-short={short() ? \"true\" : undefined}\n data-moving={props.moving ? \"true\" : undefined}\n data-interactive={isInteractive() ? \"true\" : undefined}\n data-display={props.event.display}\n data-space-item-id={props.event.dataSpaceItemId}\n style={style()}\n draggable={props.onMovePointerDown ? false : undefined}\n onClick={onClick}\n onDblClick={onDoubleClick}\n onDragStart={props.onMovePointerDown ? (event) => event.preventDefault() : undefined}\n onPointerDown={onPointerDown}\n aria-label={`${props.event.title}${props.event.allDay ? \"\" : `, ${formatTime(props.event.startDate, dateConfig())} to ${formatTime(props.event.endDate, dateConfig())}`}`}\n >\n {content()}\n </a>\n ) : isActionable() ? (\n <button\n type=\"button\"\n class=\"k2b-calendar-event\"\n data-calendar-event=\"\"\n data-color={props.event.colorHex ? undefined : color()}\n data-selected={selected() ? \"true\" : undefined}\n data-compact={props.compact ? \"true\" : undefined}\n data-fill={props.fill ? \"true\" : undefined}\n data-short={short() ? \"true\" : undefined}\n data-moving={props.moving ? \"true\" : undefined}\n data-interactive=\"true\"\n data-display={props.event.display}\n style={style()}\n onClick={onClick}\n onDblClick={onDoubleClick}\n onPointerDown={onPointerDown}\n onKeyDown={onButtonKeyDown}\n aria-label={`${props.event.title}${props.event.allDay ? \"\" : `, ${formatTime(props.event.startDate, dateConfig())} to ${formatTime(props.event.endDate, dateConfig())}`}`}\n >\n {content()}\n </button>\n ) : (\n <div\n class=\"k2b-calendar-event\"\n role=\"group\"\n data-calendar-event=\"\"\n data-color={props.event.colorHex ? undefined : color()}\n data-selected={selected() ? \"true\" : undefined}\n data-compact={props.compact ? \"true\" : undefined}\n data-fill={props.fill ? \"true\" : undefined}\n data-short={short() ? \"true\" : undefined}\n data-moving={props.moving ? \"true\" : undefined}\n data-interactive={undefined}\n data-display={props.event.display}\n style={style()}\n aria-label={`${props.event.title}${props.event.allDay ? \"\" : `, ${formatTime(props.event.startDate, dateConfig())} to ${formatTime(props.event.endDate, dateConfig())}`}`}\n >\n {content()}\n </div>\n );\n};\n\nconst slotInteractionProps = (\n owner: CalendarProps,\n slot: () => CalendarEventTimeChange,\n suppressed?: () => boolean,\n nativeControl = false,\n) => {\n const isSlotChild = (event: Event) => {\n if (!(event.target instanceof Element)) return false;\n const control = event.target.closest(\"a,button,[data-calendar-event]\");\n return Boolean(control && control !== event.currentTarget);\n };\n const interactive = Boolean(owner.onSlotActivate);\n const activate = (event: Event) => {\n if (!owner.onSlotActivate || isSlotChild(event) || suppressed?.()) return;\n event.preventDefault();\n owner.onSlotActivate(slot());\n };\n return {\n role: interactive && !nativeControl ? (\"button\" as const) : undefined,\n tabIndex: interactive && !nativeControl ? 0 : undefined,\n onClick: (event: MouseEvent) => {\n if (owner.slotActivation === \"double\") return;\n activate(event);\n },\n onDblClick: (event: MouseEvent) => {\n if (owner.slotActivation !== \"double\") return;\n activate(event);\n },\n onKeyDown: nativeControl\n ? undefined\n : (event: KeyboardEvent) => {\n if (event.key === \"Enter\" || event.key === \" \") activate(event);\n },\n };\n};\n\ntype CalendarNavigationLinkProps = ParentProps<{\n owner: CalendarProps;\n href: string;\n anchorProps?: Omit<JSX.AnchorHTMLAttributes<HTMLAnchorElement>, \"children\" | \"href\" | \"onClick\"> & {\n \"data-divider\"?: string;\n \"data-outside\"?: string;\n \"data-size\"?: string;\n \"data-today\"?: string;\n \"data-variant\"?: string;\n };\n}>;\n\n/** A real anchor is the baseline; the optional handler only enhances it after hydration. */\nconst CalendarNavigationLink = (props: CalendarNavigationLinkProps): JSX.Element => {\n const preload = () => props.owner.onPrefetch?.(props.href);\n const navigateHref: JSX.EventHandler<HTMLAnchorElement, MouseEvent> = (event) => {\n const anchor = event.currentTarget;\n if (\n event.defaultPrevented ||\n event.button !== 0 ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey ||\n (anchor.target && anchor.target !== \"_self\") ||\n anchor.hasAttribute(\"download\") ||\n new URL(anchor.href).origin !== window.location.origin\n ) {\n return;\n }\n event.preventDefault();\n props.owner.onNavigateHref?.(props.href);\n };\n return props.owner.onNavigateHref ? (\n <a {...props.anchorProps} href={props.href} onClick={navigateHref} onPointerEnter={preload} onFocus={preload}>\n {props.children}\n </a>\n ) : props.owner.onNavigate ? (\n <Link\n {...props.anchorProps}\n href={props.href}\n scroll=\"preserve\"\n onNavigate={props.owner.onNavigate}\n onPointerEnter={preload}\n onFocus={preload}\n >\n {props.children}\n </Link>\n ) : (\n <a {...props.anchorProps} href={props.href} onPointerEnter={preload} onFocus={preload}>\n {props.children}\n </a>\n );\n};\n\nconst CalendarViewLinks = (props: {\n owner: CalendarProps;\n view: CalendarView;\n options: Array<{ value: CalendarView; label: string }>;\n}): JSX.Element => {\n const messages = useUiMessages();\n const refs: HTMLAnchorElement[] = [];\n const selectRelative = (currentIndex: number, direction: -1 | 1) => {\n if (props.options.length === 0) return;\n refs[(currentIndex + direction + props.options.length) % props.options.length]?.click();\n };\n const onKeyDown = (event: KeyboardEvent, index: number) => {\n if (event.key === \"ArrowRight\" || event.key === \"ArrowDown\") {\n event.preventDefault();\n selectRelative(index, 1);\n } else if (event.key === \"ArrowLeft\" || event.key === \"ArrowUp\") {\n event.preventDefault();\n selectRelative(index, -1);\n } else if (event.key === \"Home\" || event.key === \"End\") {\n event.preventDefault();\n refs[event.key === \"Home\" ? 0 : props.options.length - 1]?.click();\n }\n };\n\n return (\n <div\n role=\"radiogroup\"\n aria-label={messages().calendarView}\n aria-orientation=\"horizontal\"\n class=\"k2b-segmented-control k2b-calendar-view-switcher\"\n >\n <For each={props.options}>\n {(option, index) => {\n const active = () => (props.view === \"mobile-month\" ? \"month\" : props.view) === option.value;\n const href = () => props.owner.getViewHref?.(option.value) ?? \"#\";\n return (\n <CalendarNavigationLink\n owner={props.owner}\n href={href()}\n anchorProps={{\n ref: (element) => {\n refs[index()] = element;\n },\n role: \"radio\",\n \"aria-checked\": active(),\n tabIndex: active() ? 0 : -1,\n class: \"k2b-segmented-control__option\",\n \"data-divider\":\n index() < props.options.length - 1 &&\n !active() &&\n (props.view === \"mobile-month\" ? \"month\" : props.view) !== props.options[index() + 1]?.value\n ? \"true\"\n : undefined,\n onKeyDown: (event) => onKeyDown(event, index()),\n }}\n >\n {option.label}\n </CalendarNavigationLink>\n );\n }}\n </For>\n </div>\n );\n};\n\nconst adjacentCalendarDate = (date: Date, view: CalendarView, direction: -1 | 1, dateConfig: DateContext) => {\n if (view === \"year\") return calendar.addMonths(date, direction * 12, dateConfig);\n if (view === \"month\" || view === \"mobile-month\") return calendar.addMonths(date, direction, dateConfig);\n return calendar.addDays(date, direction * (view === \"day\" ? 1 : 7), dateConfig);\n};\n\nconst CalendarHeader = (props: { date: Date; view: CalendarView; labels: Required<CalendarLabels>; owner: CalendarProps }): JSX.Element => {\n const messages = useUiMessages();\n const dateConfig = () => ownerDateConfig(props.owner);\n const previous = () => adjacentCalendarDate(props.date, props.view, -1, dateConfig());\n const next = () => adjacentCalendarDate(props.date, props.view, 1, dateConfig());\n const title = () => {\n if (props.view === \"year\")\n return new Intl.DateTimeFormat(dateConfig().locale ?? \"en\", { year: \"numeric\", timeZone: dateConfig().timeZone }).format(props.date);\n if (props.view === \"day\")\n return props.date.toLocaleDateString(dateConfig().locale ?? \"en\", {\n weekday: \"long\",\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n timeZone: dateConfig().timeZone,\n });\n if (props.view === \"week\")\n return `${formatDay(calendar.startOfWeek(props.date, dateConfig()), dateConfig())} - ${formatDay(calendar.addDays(calendar.startOfWeek(props.date, dateConfig()), 6, dateConfig()), dateConfig())}`;\n return formatMonth(props.date, dateConfig());\n };\n const goDate = (date: Date) => props.owner.onDateChange?.(date, props.view);\n const goView = (view: CalendarView) => {\n if (props.owner.onViewChange) {\n props.owner.onViewChange(view);\n return;\n }\n const href = props.owner.getViewHref?.(view);\n if (href) window.location.href = href;\n };\n const navButton = (date: Date, icon: string, label: string) => {\n const href = props.owner.getDateHref?.(date, props.view);\n return (props.owner.onNavigateHref || props.owner.onNavigate) && href ? (\n <CalendarNavigationLink\n owner={props.owner}\n href={href}\n anchorProps={{ \"aria-label\": label, title: label, class: \"k2b-calendar-header__nav-button\" }}\n >\n <i class={`ti ${icon}`} />\n </CalendarNavigationLink>\n ) : props.owner.onDateChange ? (\n <button type=\"button\" aria-label={label} class=\"k2b-calendar-header__nav-button\" onClick={() => goDate(date)}>\n <i class={`ti ${icon}`} />\n </button>\n ) : (\n <CalendarNavigationLink\n owner={props.owner}\n href={href ?? \"#\"}\n anchorProps={{ \"aria-label\": label, title: label, class: \"k2b-calendar-header__nav-button\" }}\n >\n <i class={`ti ${icon}`} />\n </CalendarNavigationLink>\n );\n };\n const todayButton = () => {\n const today = calendar.today(dateConfig());\n const href = props.owner.getDateHref?.(today, props.view);\n const label = <span class=\"k2b-button__label\">{props.labels.today}</span>;\n return (props.owner.onNavigateHref || props.owner.onNavigate) && href ? (\n <CalendarNavigationLink\n owner={props.owner}\n href={href}\n anchorProps={{ class: \"k2b-button k2b-calendar-header__today\", \"data-size\": \"sm\", \"data-variant\": \"input\" }}\n >\n {label}\n </CalendarNavigationLink>\n ) : props.owner.onDateChange ? (\n <Button type=\"button\" variant=\"input\" size=\"sm\" class=\"k2b-calendar-header__today\" onClick={() => goDate(today)}>\n {props.labels.today}\n </Button>\n ) : (\n <CalendarNavigationLink\n owner={props.owner}\n href={href ?? \"#\"}\n anchorProps={{ class: \"k2b-button k2b-calendar-header__today\", \"data-size\": \"sm\", \"data-variant\": \"input\" }}\n >\n {label}\n </CalendarNavigationLink>\n );\n };\n const viewOptions = createMemo(() =>\n (\n [\n { value: \"day\", label: props.labels.day },\n { value: \"week\", label: props.labels.week },\n { value: \"month\", label: props.labels.month },\n { value: \"year\", label: props.labels.year },\n ] satisfies Array<{ value: CalendarView; label: string }>\n ).filter((option) => !props.owner.views || props.owner.views.includes(option.value)),\n );\n\n return (\n <header class=\"k2b-calendar-header\">\n <div class=\"k2b-calendar-header__navigation\">\n {navButton(previous(), \"ti-chevron-left\", props.labels.previous)}\n {navButton(next(), \"ti-chevron-right\", props.labels.next)}\n <div class=\"k2b-calendar-header__title\">{title()}</div>\n </div>\n <div class=\"k2b-calendar-header__actions\">\n {todayButton()}\n <Show\n when={!props.owner.onViewChange && props.owner.getViewHref}\n fallback={\n <SegmentedControl\n value={() => (props.view === \"mobile-month\" ? \"month\" : props.view)}\n onValueChange={goView}\n ariaLabel={messages().calendarView}\n options={viewOptions()}\n />\n }\n >\n <CalendarViewLinks owner={props.owner} view={props.view} options={viewOptions()} />\n </Show>\n {props.owner.toolbarActions}\n </div>\n <Show when={props.owner.navigationPending}>\n <span class=\"k2b-calendar-header__progress\" aria-hidden=\"true\" />\n </Show>\n </header>\n );\n};\n\nconst MonthView = (props: {\n owner: CalendarProps;\n date: Date;\n now: Date;\n events: NormalizedEvent[];\n labels: Required<CalendarLabels>;\n}): JSX.Element => {\n const messages = useUiMessages();\n const dateConfig = createMemo(() => ownerDateConfig(props.owner));\n const [movePreview, setMovePreview] = createSignal<CalendarPreview | null>(null);\n const [movingEventId, setMovingEventId] = createSignal(\"\");\n let cancelInteraction: (() => void) | undefined;\n let suppressSlotClickUntil = 0;\n const month = createMemo(() => zonedYearMonth(props.date, dateConfig()));\n const weeks = createMemo(() => calendar.getMonthGrid(month().year, month().month, dateConfig()));\n const weekdays = createMemo(() => calendar.weekdays(dateConfig()));\n const todayKey = createMemo(() => calendar.formatDateKey(props.now, dateConfig()));\n const eventsByDay = createMemo(() => {\n const grouped = new Map<string, NormalizedEvent[]>();\n for (const event of props.events) {\n const events = grouped.get(event.dayKey);\n if (events) events.push(event);\n else grouped.set(event.dayKey, [event]);\n }\n return grouped;\n });\n const clearMove = () => {\n setMovePreview(null);\n setMovingEventId(\"\");\n };\n const dayAtPoint = (clientX: number, clientY: number): Date | null => {\n const target = document.elementFromPoint(clientX, clientY)?.closest<HTMLElement>(\"[data-calendar-day-key]\");\n const dayKey = target?.dataset.calendarDayKey;\n return dayKey ? calendar.parseCalendarDate(dayKey, dateConfig()) : null;\n };\n const startMove = (pointerEvent: PointerEvent, event: NormalizedEvent, markDragged: () => void) => {\n if (!props.owner.onEventDrop) return;\n cancelInteraction?.();\n cancelInteraction = startCalendarPointerSession({\n event: pointerEvent,\n resolve: (clientX, clientY) => {\n const day = dayAtPoint(clientX, clientY);\n return day ? { id: event.id, ...moveEventToDay(event, day, dateConfig()) } : null;\n },\n onActivate: () => {\n markDragged();\n suppressSlotClickUntil = performance.now() + 400;\n setMovingEventId(event.id);\n },\n onPreview: setMovePreview,\n onCommit: (next) => {\n clearMove();\n if (eventTimeChanged(event, next)) props.owner.onEventDrop?.(event, next);\n },\n onCancel: clearMove,\n });\n };\n onCleanup(() => cancelInteraction?.());\n return (\n <div class=\"k2b-calendar-month\" style={{ \"grid-template-rows\": `auto repeat(${weeks().length}, minmax(5rem, 1fr))` }}>\n <div class=\"k2b-calendar-month__weekdays\" data-week-numbers={props.owner.withWeekNumbers ? \"true\" : undefined}>\n <Show when={props.owner.withWeekNumbers}>\n <div class=\"k2b-calendar-month__weekday\">{messages().weekShort}</div>\n </Show>\n <For each={weekdays()}>{(day) => <div class=\"k2b-calendar-month__weekday\">{day}</div>}</For>\n </div>\n <For each={weeks()}>\n {(week) => (\n <div class=\"k2b-calendar-month__week\" data-week-numbers={props.owner.withWeekNumbers ? \"true\" : undefined}>\n <Show when={props.owner.withWeekNumbers}>\n <div class=\"k2b-calendar-month__week-number\">{zonedWeekNumber(week[0]!, dateConfig())}</div>\n </Show>\n <For each={week}>\n {(day) => {\n const dayKey = calendar.formatDateKey(day, dateConfig());\n const events = eventsByDay().get(dayKey) ?? [];\n const href = props.owner.getDateHref?.(day, \"day\");\n const dayBadge = props.owner.dayBadges?.[dayKey];\n const sameMonth = calendar.isSameMonth(day, props.date, dateConfig());\n const isToday = dayKey === todayKey();\n const dayLabel = day.toLocaleDateString(dateConfig().locale ?? \"en\", {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n timeZone: dateConfig().timeZone,\n });\n const eventStack = createMemo(() => {\n const preview = movePreview();\n const previewForDay = preview && calendar.formatDateKey(preview.start, dateConfig()) === dayKey ? preview : null;\n const candidates = previewForDay ? events.filter((event) => event.id !== previewForDay.id) : events;\n const visibleLimit = previewForDay ? 2 : 3;\n return {\n preview: previewForDay,\n visibleEvents: candidates.slice(0, visibleLimit),\n hiddenCount: Math.max(0, candidates.length - visibleLimit),\n };\n });\n return (\n <div\n class=\"k2b-calendar-month__day\"\n data-calendar-day-key={dayKey}\n data-outside={!sameMonth ? \"true\" : undefined}\n data-drop-preview={\n movePreview()?.start && calendar.formatDateKey(movePreview()!.start, dateConfig()) === dayKey ? \"true\" : undefined\n }\n >\n <Show\n when={props.owner.onSlotActivate}\n fallback={\n <Show when={href}>\n {(dayHref) => (\n <CalendarNavigationLink\n owner={props.owner}\n href={dayHref()}\n anchorProps={{\n class: \"k2b-calendar-month__day-target\",\n \"aria-label\": messages().openDate({ label: dayLabel }),\n }}\n />\n )}\n </Show>\n }\n >\n <button\n type=\"button\"\n class=\"k2b-calendar-month__day-target\"\n data-interactive=\"true\"\n aria-label={messages().createEventOn({ label: dayLabel })}\n {...slotInteractionProps(\n props.owner,\n () => {\n const start = startOfDay(day, dateConfig());\n return { start, end: calendar.addDays(start, 1, dateConfig()), allDay: true };\n },\n () => performance.now() < suppressSlotClickUntil,\n true,\n )}\n />\n </Show>\n <div class=\"k2b-calendar-month__day-header\">\n <Show\n when={props.owner.onSlotActivate && href}\n fallback={\n <span\n class=\"k2b-calendar-month__day-number\"\n data-today={isToday ? \"true\" : undefined}\n data-outside={!sameMonth ? \"true\" : undefined}\n >\n {calendar.formatDayNumber(day, dateConfig())}\n </span>\n }\n >\n {(dayHref) => (\n <CalendarNavigationLink\n owner={props.owner}\n href={dayHref()}\n anchorProps={{\n class: \"k2b-calendar-month__day-number\",\n \"data-today\": isToday ? \"true\" : undefined,\n \"data-outside\": !sameMonth ? \"true\" : undefined,\n \"aria-label\": messages().openDate({ label: dayLabel }),\n }}\n >\n {calendar.formatDayNumber(day, dateConfig())}\n </CalendarNavigationLink>\n )}\n </Show>\n <Show when={dayBadge}>\n {(badge) => (\n <span class=\"k2b-calendar-month__badge\">\n <Show when={badge().icon}>{(icon) => <i class={`k2b-calendar-month__badge-icon ti ti-${icon()}`} />}</Show>\n {badge().label}\n </span>\n )}\n </Show>\n </div>\n <div class=\"k2b-calendar-month__events\">\n <Show when={eventStack().preview}>\n <div class=\"k2b-calendar-preview\">\n {props.events.find((event) => event.id === eventStack().preview!.id)?.title ?? messages().moveEvent}\n </div>\n </Show>\n <For each={eventStack().visibleEvents}>\n {(event) => (\n <EventChip\n event={event}\n owner={props.owner}\n href={eventHref(props.owner, event)}\n compact\n moving={movingEventId() === event.id}\n onMovePointerDown={\n props.owner.onEventDrop\n ? (pointerEvent, markDragged) => startMove(pointerEvent, event, markDragged)\n : undefined\n }\n />\n )}\n </For>\n <Show when={eventStack().hiddenCount > 0}>\n <CalendarNavigationLink owner={props.owner} href={href ?? \"#\"} anchorProps={{ class: \"k2b-calendar-month__more\" }}>\n +{eventStack().hiddenCount} more\n </CalendarNavigationLink>\n </Show>\n </div>\n <div class=\"k2b-calendar-month__dots\">\n <For each={events.slice(0, 4)}>\n {(event) => (\n <span\n class=\"k2b-calendar-dot\"\n data-color={event.colorHex ? undefined : (event.color ?? \"blue\")}\n style={event.colorHex ? { \"background-color\": event.colorHex } : undefined}\n />\n )}\n </For>\n </div>\n </div>\n );\n }}\n </For>\n </div>\n )}\n </For>\n </div>\n );\n};\n\nconst TimeGridView = (props: {\n owner: CalendarProps;\n date: Date;\n now: Date;\n events: NormalizedEvent[];\n labels: Required<CalendarLabels>;\n days: Date[];\n}): JSX.Element => {\n const messages = useUiMessages();\n const dateConfig = createMemo(() => ownerDateConfig(props.owner));\n const gridStartHour = () => props.owner.visibleStartHour ?? 0;\n const gridEndHour = () => props.owner.visibleEndHour ?? 23;\n const businessStartHour = () => props.owner.startHour ?? 8;\n const businessEndHour = () => props.owner.endHour ?? 18;\n const hours = createMemo(() => Array.from({ length: gridEndHour() - gridStartHour() + 1 }, (_, index) => gridStartHour() + index));\n const [timePreview, setTimePreview] = createSignal<CalendarPreview | null>(null);\n const [movingEventId, setMovingEventId] = createSignal(\"\");\n const [expandedOverflow, setExpandedOverflow] = createSignal(\"\");\n let scrollContainer: HTMLDivElement | undefined;\n let timeGrid: HTMLDivElement | undefined;\n let timeGutter: HTMLDivElement | undefined;\n let defaultHourMarker: HTMLDivElement | undefined;\n let cancelInteraction: (() => void) | undefined;\n let suppressSlotClickUntil = 0;\n const slotEnd = (start: Date) => addMinutes(start, 60);\n const previewEvents = createMemo(() => previewSegments(timePreview(), props.days, dateConfig()));\n const eventsByDay = createMemo(() => {\n const grouped = new Map<string, { allDay: NormalizedEvent[]; timed: NormalizedEvent[] }>();\n for (const event of props.events) {\n const bucket = grouped.get(event.dayKey) ?? { allDay: [], timed: [] };\n (event.allDay ? bucket.allDay : bucket.timed).push(event);\n grouped.set(event.dayKey, bucket);\n }\n return grouped;\n });\n const clearInteraction = () => {\n setTimePreview(null);\n setMovingEventId(\"\");\n };\n const dayAtPoint = (clientX: number, clientY: number): Date | null => {\n const target = document.elementFromPoint(clientX, clientY)?.closest<HTMLElement>(\"[data-calendar-day-key]\");\n const dayKey = target?.dataset.calendarDayKey;\n return dayKey ? calendar.parseCalendarDate(dayKey, dateConfig()) : null;\n };\n const timeAtPoint = (clientX: number, clientY: number): Date | null => {\n if (!timeGrid || !timeGutter) return null;\n const gridRect = timeGrid.getBoundingClientRect();\n const gutterRect = timeGutter.getBoundingClientRect();\n const dayIndex = calendarDayIndexAtPoint(clientX, gutterRect.right, gridRect.right - gutterRect.right, props.days.length);\n if (dayIndex === null) return null;\n const minute = Math.min(\n gridEndHour() * 60 + 45,\n calendarMinuteAtPoint(clientY, gridRect.top, gridRect.height, gridStartHour(), gridEndHour()),\n );\n return zonedMinuteSlot(props.days[dayIndex]!, minute, dateConfig());\n };\n const beginInteraction = (options: Parameters<typeof startCalendarPointerSession<CalendarPreview>>[0]) => {\n cancelInteraction?.();\n cancelInteraction = startCalendarPointerSession(options);\n };\n const startTimedMove = (pointerEvent: PointerEvent, event: NormalizedEvent, markDragged: () => void) => {\n if (!props.owner.onEventDrop) return;\n const pointerStart = timeAtPoint(pointerEvent.clientX, pointerEvent.clientY) ?? event.sourceStartDate;\n const duration = Math.max(15 * 60_000, event.sourceEndDate.getTime() - event.sourceStartDate.getTime());\n const offsetMinutes = Math.max(\n 0,\n Math.min(duration / 60_000, Math.round((pointerStart.getTime() - event.sourceStartDate.getTime()) / 900_000) * 15),\n );\n beginInteraction({\n event: pointerEvent,\n scrollContainer,\n resolve: (clientX, clientY) => {\n const pointer = timeAtPoint(clientX, clientY);\n if (!pointer) return null;\n const start = new Date(pointer.getTime() - offsetMinutes * 60_000);\n return { id: event.id, title: event.title, start, end: new Date(start.getTime() + duration), allDay: false };\n },\n onActivate: () => {\n markDragged();\n suppressSlotClickUntil = performance.now() + 400;\n setMovingEventId(event.id);\n },\n onPreview: setTimePreview,\n onCommit: (next) => {\n clearInteraction();\n if (eventTimeChanged(event, next)) props.owner.onEventDrop?.(event, next);\n },\n onCancel: clearInteraction,\n });\n };\n const startAllDayMove = (pointerEvent: PointerEvent, event: NormalizedEvent, markDragged: () => void) => {\n if (!props.owner.onEventDrop) return;\n beginInteraction({\n event: pointerEvent,\n resolve: (clientX, clientY) => {\n const day = dayAtPoint(clientX, clientY);\n return day ? { id: event.id, title: event.title, ...moveEventTo(event, startOfDay(day, dateConfig()), true, dateConfig()) } : null;\n },\n onActivate: () => {\n markDragged();\n suppressSlotClickUntil = performance.now() + 400;\n setMovingEventId(event.id);\n },\n onPreview: setTimePreview,\n onCommit: (next) => {\n clearInteraction();\n if (eventTimeChanged(event, next)) props.owner.onEventDrop?.(event, next);\n },\n onCancel: clearInteraction,\n });\n };\n const startRange = (pointerEvent: PointerEvent) => {\n if (!props.owner.onSlotActivate || pointerEvent.pointerType === \"touch\") return;\n const anchor = timeAtPoint(pointerEvent.clientX, pointerEvent.clientY);\n if (!anchor) return;\n beginInteraction({\n event: pointerEvent,\n scrollContainer,\n resolve: (clientX, clientY) => {\n const current = timeAtPoint(clientX, clientY);\n if (!current) return null;\n const start = current < anchor ? current : anchor;\n const endBase = current < anchor ? anchor : current;\n return { id: \"calendar-create-preview\", start, end: addMinutes(endBase, 15), allDay: false };\n },\n onActivate: () => {\n suppressSlotClickUntil = performance.now() + 400;\n },\n onPreview: setTimePreview,\n onCommit: (next) => {\n clearInteraction();\n props.owner.onSlotActivate?.(next);\n },\n onCancel: clearInteraction,\n });\n };\n const timeRangeLayout = (startDate: Date, endDate: Date) => {\n const start = zonedHour(startDate, dateConfig());\n const end = zonedHour(endDate, dateConfig());\n const visibleStart = Math.max(gridStartHour(), start);\n const visibleEnd = Math.min(gridEndHour() + 1, end);\n const total = Math.max(1, gridEndHour() - gridStartHour() + 1);\n return {\n top: Math.max(0, ((visibleStart - gridStartHour()) / total) * 100),\n height: Math.max(1.25, ((visibleEnd - visibleStart) / total) * 100),\n };\n };\n const eventLayout = (event: NormalizedEvent) => timeRangeLayout(event.startDate, event.endDate);\n const isDayView = () => props.days.length === 1;\n const visibleLaneCount = (lanes: number) => (isDayView() ? lanes : Math.min(lanes, 3));\n const overflowLayouts = (layouts: TimedEventLayout[]): TimedOverflowLayout[] => {\n if (isDayView()) return [];\n const groups = new Map<number, TimedOverflowLayout>();\n for (const layout of layouts) {\n if (layout.lane < visibleLaneCount(layout.lanes)) continue;\n const existing = groups.get(layout.groupId);\n if (existing) existing.hiddenEvents.push(layout.event);\n else\n groups.set(layout.groupId, {\n groupId: layout.groupId,\n hiddenEvents: [layout.event],\n groupStartDate: layout.groupStartDate,\n groupEndDate: layout.groupEndDate,\n });\n }\n return [...groups.values()];\n };\n const dayColumnMinWidth = (layouts: TimedEventLayout[]) => {\n if (!isDayView()) return undefined;\n const lanes = Math.max(1, ...layouts.map((layout) => layout.lanes));\n return `${Math.max(32, lanes * 12)}rem`;\n };\n const laneStyle = (layoutItem: TimedEventLayout) => {\n if (isDayView()) {\n const laneWidth = 100 / layoutItem.lanes;\n return {\n left: `calc(${layoutItem.lane * laneWidth}% + 0.25rem)`,\n width: `calc(${laneWidth}% - 0.5rem)`,\n };\n }\n const visibleLanes = visibleLaneCount(layoutItem.lanes);\n return {\n left: `${layoutItem.lanes <= 1 ? 0 : (28 / Math.max(1, visibleLanes - 1)) * layoutItem.lane}%`,\n width: `${layoutItem.lanes <= 1 ? 100 : layoutItem.lanes > visibleLanes ? 68 : 72}%`,\n };\n };\n const currentTimeLine = (day: Date) => {\n const now = props.now;\n if (calendar.formatDateKey(day, dateConfig()) !== calendar.formatDateKey(now, dateConfig())) return null;\n const hour = zonedHour(now, dateConfig());\n if (hour < gridStartHour() || hour > gridEndHour() + 1) return null;\n return ((hour - gridStartHour()) / Math.max(1, gridEndHour() - gridStartHour() + 1)) * 100;\n };\n onCleanup(() => cancelInteraction?.());\n onMount(() => {\n requestAnimationFrame(() => {\n if (!scrollContainer || !defaultHourMarker) return;\n const targetTop = defaultHourMarker.getBoundingClientRect().top - scrollContainer.getBoundingClientRect().top;\n scrollContainer.scrollTo({ top: Math.max(0, scrollContainer.scrollTop + targetTop), behavior: \"smooth\" });\n });\n });\n return (\n <div class=\"k2b-calendar-time-grid\">\n <div class=\"k2b-calendar-time-grid__days\" style={{ \"grid-template-columns\": `4rem repeat(${props.days.length}, minmax(0, 1fr))` }}>\n <div />\n <For each={props.days}>\n {(day) => {\n const dayBadge = props.owner.dayBadges?.[calendar.formatDateKey(day, dateConfig())];\n const today = () => calendar.isToday(day, dateConfig());\n return (\n <CalendarNavigationLink\n owner={props.owner}\n href={props.owner.getDateHref?.(day, \"day\") ?? \"#\"}\n anchorProps={{ class: \"k2b-calendar-time-grid__day\" }}\n >\n <span class=\"k2b-calendar-time-grid__day-label\" data-today={today() ? \"true\" : undefined}>\n {formatDay(day, dateConfig())}\n </span>\n <Show when={dayBadge}>\n {(badge) => (\n <span class=\"k2b-calendar-time-grid__badge\">\n <Show when={badge().icon}>{(icon) => <i class={`k2b-calendar-time-grid__badge-icon ti ti-${icon()}`} />}</Show>\n {badge().label}\n </span>\n )}\n </Show>\n </CalendarNavigationLink>\n );\n }}\n </For>\n </div>\n <Show when={!props.owner.hideAllDay}>\n <div\n class=\"k2b-calendar-time-grid__all-day\"\n style={{\n \"grid-template-columns\": `4rem repeat(${props.days.length}, minmax(0, 1fr))`,\n \"max-height\": `${props.owner.allDayMaxHeightRem ?? 7}rem`,\n }}\n >\n <div class=\"k2b-calendar-time-grid__all-day-label\">{props.labels.allDay}</div>\n <For each={props.days}>\n {(day) => {\n const dayKey = calendar.formatDateKey(day, dateConfig());\n const allDay = () => eventsByDay().get(dayKey)?.allDay ?? [];\n const previewAllDay = previewEvents().filter((event) => event.dayKey === dayKey && event.allDay);\n return (\n <div\n class=\"k2b-calendar-time-grid__all-day-cell\"\n data-calendar-day-key={dayKey}\n data-drop-preview={\n timePreview()?.allDay && calendar.formatDateKey(timePreview()!.start, dateConfig()) === dayKey ? \"true\" : undefined\n }\n data-interactive={props.owner.onSlotActivate ? \"true\" : undefined}\n {...slotInteractionProps(\n props.owner,\n () => {\n const start = startOfDay(day, dateConfig());\n return { start, end: calendar.addDays(start, 1, dateConfig()), allDay: true };\n },\n () => performance.now() < suppressSlotClickUntil,\n )}\n >\n <div class=\"k2b-calendar-time-grid__all-day-events\">\n <For each={previewAllDay}>{(event) => <div class=\"k2b-calendar-preview\">{event.title}</div>}</For>\n <For each={allDay()}>\n {(event) => (\n <EventChip\n event={event}\n owner={props.owner}\n href={eventHref(props.owner, event)}\n compact\n moving={movingEventId() === event.id}\n onMovePointerDown={\n props.owner.onEventDrop\n ? (pointerEvent, markDragged) => startAllDayMove(pointerEvent, event, markDragged)\n : undefined\n }\n />\n )}\n </For>\n </div>\n </div>\n );\n }}\n </For>\n </div>\n </Show>\n <div ref={scrollContainer} class=\"k2b-calendar-time-grid__scroll\">\n <div\n ref={timeGrid}\n class=\"k2b-calendar-time-grid__grid\"\n style={{ \"grid-template-columns\": `4rem repeat(${props.days.length}, minmax(0, 1fr))` }}\n >\n <div\n ref={timeGutter}\n class=\"k2b-calendar-time-grid__gutter\"\n style={{ \"grid-template-rows\": `repeat(${hours().length}, minmax(4rem, 1fr))` }}\n >\n <For each={hours()}>\n {(hour) => (\n <div\n ref={(element) => {\n if (hour === businessStartHour()) defaultHourMarker = element;\n }}\n class=\"k2b-calendar-time-grid__hour\"\n data-outside-business={hour < businessStartHour() || hour > businessEndHour() ? \"true\" : undefined}\n >\n {`${hour}`.padStart(2, \"0\")}:00\n </div>\n )}\n </For>\n </div>\n <For each={props.days}>\n {(day) => {\n const dayKey = calendar.formatDateKey(day, dateConfig());\n const layouts = createMemo(() => timedEventLayouts(eventsByDay().get(dayKey)?.timed ?? []));\n return (\n <div\n class=\"k2b-calendar-time-grid__column\"\n style={{\n \"min-width\": dayColumnMinWidth(layouts()),\n \"grid-template-rows\": `repeat(${hours().length}, minmax(4rem, 1fr))`,\n }}\n >\n <Show when={currentTimeLine(day) !== null}>\n <div class=\"k2b-calendar-time-grid__now\" style={{ top: `${currentTimeLine(day) ?? 0}%` }} />\n </Show>\n <For each={hours()}>\n {(hour) => (\n <div\n class=\"k2b-calendar-time-grid__slot\"\n data-outside-business={hour < businessStartHour() || hour > businessEndHour() ? \"true\" : undefined}\n data-interactive={props.owner.onSlotActivate ? \"true\" : undefined}\n {...slotInteractionProps(\n props.owner,\n () => {\n const start = zonedSlot(day, hour, dateConfig());\n return { start, end: slotEnd(start), allDay: false };\n },\n () => performance.now() < suppressSlotClickUntil,\n )}\n onPointerDown={startRange}\n />\n )}\n </For>\n <For each={previewEvents().filter((event) => event.dayKey === dayKey && !event.allDay)}>\n {(event) => {\n const layout = eventLayout(event);\n const short = event.endDate.getTime() - event.startDate.getTime() < 60 * 60_000;\n return (\n <div\n class=\"k2b-calendar-preview k2b-calendar-preview--timed\"\n data-short={short ? \"true\" : undefined}\n style={{ top: `${layout.top}%`, height: `${layout.height}%` }}\n >\n <div class=\"k2b-calendar-preview__content\">\n <Show when={event.title}>\n <div class=\"k2b-calendar-preview__title\">{event.title}</div>\n </Show>\n <div class=\"k2b-calendar-preview__label\">\n {formatTime(event.startDate, dateConfig())} - {formatTime(event.endDate, dateConfig())}\n </div>\n </div>\n </div>\n );\n }}\n </For>\n <For each={layouts()}>\n {(layoutItem) => {\n if (!isDayView() && layoutItem.lane >= visibleLaneCount(layoutItem.lanes)) return null;\n const event = layoutItem.event;\n const layout = eventLayout(event);\n const position = laneStyle(layoutItem);\n const resizeStart = (pointerEvent: PointerEvent) => {\n if (!props.owner.onEventResize) return;\n pointerEvent.preventDefault();\n pointerEvent.stopPropagation();\n beginInteraction({\n event: pointerEvent,\n scrollContainer,\n threshold: 1,\n resolve: (clientX, clientY) => {\n const pointer = timeAtPoint(clientX, clientY);\n if (!pointer) return null;\n const minimumEnd = addMinutes(event.sourceStartDate, 15);\n const end = pointer > minimumEnd ? pointer : minimumEnd;\n return { id: event.id, title: event.title, start: event.sourceStartDate, end, allDay: false };\n },\n onActivate: () => {\n suppressSlotClickUntil = performance.now() + 400;\n setMovingEventId(event.id);\n },\n onPreview: setTimePreview,\n onCommit: (next) => {\n clearInteraction();\n if (eventTimeChanged(event, next)) props.owner.onEventResize?.(event, next);\n },\n onCancel: clearInteraction,\n });\n };\n return (\n <div\n class=\"k2b-calendar-time-grid__event-position\"\n style={{\n top: `${layout.top}%`,\n height: `${layout.height}%`,\n left: position.left,\n width: position.width,\n \"z-index\": String(20 + layoutItem.lane),\n }}\n >\n <div class=\"k2b-calendar-time-grid__event-frame\">\n <EventChip\n event={event}\n owner={props.owner}\n href={eventHref(props.owner, event)}\n fill\n moving={movingEventId() === event.id}\n onMovePointerDown={\n props.owner.onEventDrop\n ? (pointerEvent, markDragged) => startTimedMove(pointerEvent, event, markDragged)\n : undefined\n }\n />\n <Show when={props.owner.onEventResize}>\n <button\n type=\"button\"\n aria-label={messages().resizeEvent}\n draggable={false}\n class=\"k2b-calendar-time-grid__resize\"\n onPointerDown={resizeStart}\n onDragStart={(event) => event.preventDefault()}\n >\n <span class=\"k2b-calendar-time-grid__resize-icon\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n </div>\n );\n }}\n </For>\n <For each={overflowLayouts(layouts())}>\n {(overflow) => {\n const layout = timeRangeLayout(overflow.groupStartDate, overflow.groupEndDate);\n const key = `${dayKey}-${overflow.groupId}`;\n const hiddenTitle = () =>\n overflow.hiddenEvents.map((event) => `${formatTime(event.startDate, dateConfig())} ${event.title}`).join(\"\\n\");\n return (\n <>\n <button\n type=\"button\"\n class=\"k2b-calendar-time-grid__overflow\"\n style={{ top: `${layout.top}%`, height: `${layout.height}%` }}\n title={hiddenTitle()}\n aria-label={messages().hiddenOverlappingEvents({ count: overflow.hiddenEvents.length })}\n onClick={(event) => {\n event.stopPropagation();\n setExpandedOverflow(expandedOverflow() === key ? \"\" : key);\n }}\n >\n <span class=\"k2b-calendar-time-grid__overflow-count\">+{overflow.hiddenEvents.length}</span>\n </button>\n <Show when={expandedOverflow() === key}>\n <div class=\"k2b-calendar-time-grid__overflow-menu\" style={{ top: `${layout.top}%` }}>\n <div class=\"k2b-calendar-time-grid__overflow-title\">\n {formatTime(overflow.groupStartDate, dateConfig())} - {formatTime(overflow.groupEndDate, dateConfig())}\n </div>\n <For each={overflow.hiddenEvents}>\n {(event) => <EventChip event={event} owner={props.owner} href={eventHref(props.owner, event)} compact />}\n </For>\n </div>\n </Show>\n </>\n );\n }}\n </For>\n </div>\n );\n }}\n </For>\n </div>\n </div>\n </div>\n );\n};\n\nconst YearView = (props: { owner: CalendarProps; date: Date; now: Date; events: NormalizedEvent[] }): JSX.Element => {\n const dateConfig = createMemo(() => ownerDateConfig(props.owner));\n const year = createMemo(() => zonedYearMonth(props.date, dateConfig()).year);\n const todayKey = createMemo(() => calendar.formatDateKey(props.now, dateConfig()));\n const eventsByDay = createMemo(() => {\n const grouped = new Map<string, NormalizedEvent[]>();\n for (const event of props.events) {\n const events = grouped.get(event.dayKey);\n if (events) events.push(event);\n else grouped.set(event.dayKey, [event]);\n }\n return grouped;\n });\n const months = createMemo(() => {\n const context = dateConfig();\n return Array.from({ length: 12 }, (_, month) => {\n const date = zonedMonthDate(year(), month, context);\n return {\n date,\n label: date.toLocaleDateString(context.locale ?? \"en\", { month: \"long\", timeZone: context.timeZone }),\n days: calendar\n .getMonthGrid(year(), month, context)\n .flat()\n .map((day) => {\n const key = calendar.formatDateKey(day, context);\n return {\n date: day,\n events: eventsByDay().get(key) ?? [],\n isToday: key === todayKey(),\n outside: !calendar.isSameMonth(day, date, context),\n number: calendar.formatDayNumber(day, context),\n };\n }),\n };\n });\n });\n\n return (\n <div class=\"k2b-calendar-year\">\n <For each={months()}>\n {(month) => (\n <div class=\"k2b-calendar-year__month\">\n <div class=\"k2b-calendar-year__title\">{month.label}</div>\n <div class=\"k2b-calendar-year__grid\">\n <For each={month.days}>\n {(day) => (\n <CalendarNavigationLink\n owner={props.owner}\n href={props.owner.getDateHref?.(day.date, \"day\") ?? \"#\"}\n anchorProps={{\n class: \"k2b-calendar-year__day\",\n \"data-today\": day.isToday ? \"true\" : undefined,\n \"data-outside\": day.outside ? \"true\" : undefined,\n }}\n >\n {day.number}\n <Show when={day.events[0]}>\n {(event) => (\n <span\n class=\"k2b-calendar-year__indicator\"\n data-color={event().colorHex ? undefined : (event().color ?? \"blue\")}\n data-today={day.isToday ? \"true\" : undefined}\n style={event().colorHex ? { \"background-color\": day.isToday ? \"white\" : event().colorHex } : undefined}\n />\n )}\n </Show>\n </CalendarNavigationLink>\n )}\n </For>\n </div>\n </div>\n )}\n </For>\n </div>\n );\n};\n\nconst MobileMonthView = (props: {\n owner: CalendarProps;\n date: Date;\n now: Date;\n selectedDate: Date;\n events: NormalizedEvent[];\n labels: Required<CalendarLabels>;\n}): JSX.Element => {\n const dateConfig = createMemo(() => ownerDateConfig(props.owner));\n const selectedDateKey = createMemo(() => calendar.formatDateKey(props.selectedDate, dateConfig()));\n const selectedEvents = createMemo(() => props.events.filter((event) => event.dayKey === selectedDateKey()));\n return (\n <div class=\"k2b-calendar-mobile-month\">\n <MonthView\n owner={{ ...props.owner, withWeekNumbers: false }}\n date={props.date}\n now={props.now}\n events={props.events}\n labels={props.labels}\n />\n <div class=\"k2b-calendar-mobile-month__agenda\">\n <div class=\"k2b-calendar-mobile-month__title\">\n {props.selectedDate.toLocaleDateString(dateConfig().locale ?? \"en\", {\n weekday: \"long\",\n month: \"long\",\n day: \"numeric\",\n timeZone: dateConfig().timeZone,\n })}\n </div>\n <Show when={selectedEvents().length > 0} fallback={<div class=\"k2b-calendar-mobile-month__empty\">{props.labels.noEvents}</div>}>\n <div class=\"k2b-calendar-mobile-month__events\">\n <For each={selectedEvents()}>\n {(event) => <EventChip event={event} owner={props.owner} href={eventHref(props.owner, event)} />}\n </For>\n </div>\n </Show>\n </div>\n </div>\n );\n};\n\nconst CalendarBody = (props: { children: JSX.Element }): JSX.Element => <div class=\"k2b-calendar-body\">{props.children}</div>;\n\nconst Calendar = (props: CalendarProps): JSX.Element => {\n const messages = useUiMessages();\n // Subviews derive their date config from the owner props, so the inherited\n // render locale is merged here once; an explicit dateConfig.locale wins.\n const localizedConfig = useDateConfigLocale(() => props.dateConfig);\n const owner = mergeProps(props, {\n get dateConfig(): DateContext {\n return localizedConfig();\n },\n });\n const view = () => props.view ?? \"month\";\n const dateConfig = createMemo(() => ownerDateConfig(owner));\n const safeDate = (value: Date | string) => {\n const parsed = parseDate(value, dateConfig());\n return validDate(parsed) ? parsed : calendar.today(dateConfig());\n };\n const date = createMemo(() => safeDate(props.date));\n const selectedDate = createMemo(() => safeDate(props.selectedDate ?? props.date));\n const [now, setNow] = createSignal(new Date());\n const normalizedEvents = createMemo(() => normalizeEvents(props.events, dateConfig()));\n const mergedLabels = createMemo<Required<CalendarLabels>>(() => ({\n today: messages().today,\n day: messages().day,\n week: messages().week,\n month: messages().month,\n year: messages().year,\n allDay: messages().allDay,\n noEvents: messages().noEvents,\n previous: messages().previous,\n next: messages().next,\n ...props.labels,\n }));\n const days = createMemo(() => {\n if (view() === \"day\") return [date()];\n return calendar.getWeekDays(date(), dateConfig());\n });\n onMount(() => {\n const updateNow = () => setNow(new Date());\n const interval = window.setInterval(updateNow, 60_000);\n document.addEventListener(\"visibilitychange\", updateNow);\n onCleanup(() => {\n window.clearInterval(interval);\n document.removeEventListener(\"visibilitychange\", updateNow);\n });\n });\n\n return (\n <section class={`k2b-content-calendar ${props.class ?? \"\"}`} aria-busy={props.navigationPending ? \"true\" : undefined}>\n <CalendarHeader date={date()} view={view()} labels={mergedLabels()} owner={owner} />\n {props.toolbarContent}\n <Show\n when={view() !== \"month\"}\n fallback={\n <CalendarBody>\n <MonthView owner={owner} date={date()} now={now()} events={normalizedEvents()} labels={mergedLabels()} />\n </CalendarBody>\n }\n >\n <Show\n when={view() !== \"year\"}\n fallback={\n <CalendarBody>\n <YearView owner={owner} date={date()} now={now()} events={normalizedEvents()} />\n </CalendarBody>\n }\n >\n <Show\n when={view() !== \"mobile-month\"}\n fallback={\n <CalendarBody>\n <MobileMonthView\n owner={owner}\n date={date()}\n now={now()}\n selectedDate={selectedDate()}\n events={normalizedEvents()}\n labels={mergedLabels()}\n />\n </CalendarBody>\n }\n >\n <TimeGridView owner={owner} date={date()} now={now()} events={normalizedEvents()} labels={mergedLabels()} days={days()} />\n </Show>\n </Show>\n </Show>\n </section>\n );\n};\n\nexport default Calendar;\n"],"mappings":"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","ignoreList":[]}
|