@lavalogic/scoria 0.36.0 → 0.37.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/Components/AccordionGroup.svelte +6 -2
- package/dist/Components/AccordionGroupButton.svelte +78 -78
- package/dist/Components/AccordionGroupButtonProps.d.ts +27 -8
- package/dist/Components/AccordionGroupProps.d.ts +10 -2
- package/dist/Components/Action.svelte +31 -33
- package/dist/Components/ActionProps.d.ts +23 -3
- package/dist/Components/AlertModal.svelte +90 -39
- package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +1126 -0
- package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte.d.ts +4 -0
- package/dist/Components/AppointmentCalendar/AppointmentCalendarProps.d.ts +92 -0
- package/dist/Components/AppointmentCalendar/AppointmentCalendarProps.js +12 -0
- package/dist/Components/Base/BaseModal.svelte +172 -0
- package/dist/Components/Base/BaseModal.svelte.d.ts +4 -0
- package/dist/Components/Base/BaseModalProps.d.ts +73 -0
- package/dist/Components/Base/BaseModalProps.js +1 -0
- package/dist/Components/Base/ContextWrapper.svelte +37 -15
- package/dist/Components/Base/ContextWrapper.svelte.d.ts +24 -5
- package/dist/Components/Base/ContextWrapperProps.d.ts +22 -0
- package/dist/Components/Base/Pagination.svelte +70 -62
- package/dist/Components/Base/Pagination.svelte.d.ts +12 -2
- package/dist/Components/Base/PaginationProps.d.ts +60 -3
- package/dist/Components/Base/Snippets.svelte +7 -0
- package/dist/Components/Base/Snippets.svelte.d.ts +5 -1
- package/dist/Components/BigRadioSet.svelte +18 -9
- package/dist/Components/BigRadioSetProps.d.ts +17 -1
- package/dist/Components/Bubble.svelte +67 -34
- package/dist/Components/Bubble.svelte.d.ts +23 -2
- package/dist/Components/BubbleProps.d.ts +55 -4
- package/dist/Components/Button.svelte +50 -38
- package/dist/Components/ButtonProps.d.ts +66 -1
- package/dist/Components/Checkbox.svelte +57 -29
- package/dist/Components/Checkbox.svelte.d.ts +1 -12
- package/dist/Components/CheckboxProps.d.ts +27 -0
- package/dist/Components/CheckboxProps.js +1 -0
- package/dist/Components/CollapsibleCard.svelte +53 -22
- package/dist/Components/CollapsibleCardProps.d.ts +22 -1
- package/dist/Components/Contexts/ContextMenu.svelte +53 -32
- package/dist/Components/Contexts/ContextMenu.svelte.d.ts +26 -0
- package/dist/Components/Contexts/ContextMenuDivider.svelte +15 -7
- package/dist/Components/Contexts/ContextMenuDivider.svelte.d.ts +9 -0
- package/dist/Components/Contexts/ContextMenuOption.svelte +27 -18
- package/dist/Components/Contexts/ContextMenuOption.svelte.d.ts +12 -1
- package/dist/Components/Contexts/ContextMenuOptionProps.d.ts +34 -2
- package/dist/Components/Contexts/Toast.svelte +28 -4
- package/dist/Components/Contexts/Toast.svelte.d.ts +14 -0
- package/dist/Components/Contexts/ToastContainer.svelte +30 -11
- package/dist/Components/Contexts/ToastContainer.svelte.d.ts +14 -0
- package/dist/Components/Contexts/ToastProps.d.ts +14 -1
- package/dist/Components/Contexts/Tooltip.svelte +21 -10
- package/dist/Components/Contexts/Tooltip.svelte.d.ts +10 -0
- package/dist/Components/DataMatrixIcon.svelte +82 -11
- package/dist/Components/DataMatrixIconProps.d.ts +73 -1
- package/dist/Components/DateInput.svelte +64 -29
- package/dist/Components/DateInput.svelte.d.ts +1 -1
- package/dist/Components/DateOnlyInputProps.d.ts +31 -5
- package/dist/Components/DatePicker.svelte +96 -108
- package/dist/Components/DatePickerProps.d.ts +18 -1
- package/dist/Components/DateTimeInputProps.d.ts +30 -5
- package/dist/Components/DesktopModal.svelte +14 -43
- package/dist/Components/DesktopModalProps.d.ts +5 -4
- package/dist/Components/Dial.svelte +103 -41
- package/dist/Components/DialProps.d.ts +74 -2
- package/dist/Components/DimensionInput.svelte +50 -64
- package/dist/Components/DimensionInput.svelte.d.ts +1 -1
- package/dist/Components/DimensionInputProps.d.ts +39 -4
- package/dist/Components/DragMenu/DragMenuHolder.svelte +41 -29
- package/dist/Components/DragMenu/DragMenuHolderProps.d.ts +30 -1
- package/dist/Components/DragMenu/DraggableCard.svelte +44 -8
- package/dist/Components/DragMenu/DraggableCardProps.d.ts +27 -1
- package/dist/Components/FileCard.svelte +6 -2
- package/dist/Components/FileCardProps.d.ts +17 -1
- package/dist/Components/FileUpload.svelte +82 -42
- package/dist/Components/FileUploadProps.d.ts +34 -4
- package/dist/Components/GridInput.svelte +27 -17
- package/dist/Components/GridInput.svelte.d.ts +5 -5
- package/dist/Components/GridInputProps.d.ts +4 -1
- package/dist/Components/GridInputSet.svelte +12 -5
- package/dist/Components/GridInputSet.svelte.d.ts +5 -5
- package/dist/Components/GridInputSetProps.d.ts +4 -2
- package/dist/Components/HorizontalTabGroup.svelte +13 -11
- package/dist/Components/HorizontalTabGroupButton.svelte +16 -68
- package/dist/Components/HorizontalTabGroupProps.d.ts +15 -2
- package/dist/Components/Icon.svelte +62 -21
- package/dist/Components/IconProps.d.ts +54 -6
- package/dist/Components/Icons.d.ts +8 -0
- package/dist/Components/Icons.js +234 -215
- package/dist/Components/LoadingAnimation.svelte +18 -18
- package/dist/Components/LoadingAnimation.svelte.d.ts +1 -3
- package/dist/Components/LoadingAnimationProps.d.ts +16 -0
- package/dist/Components/LoadingAnimationProps.js +1 -0
- package/dist/Components/LoadingModal.svelte +18 -20
- package/dist/Components/LoadingModal.svelte.d.ts +1 -4
- package/dist/Components/LoadingModalProps.d.ts +17 -0
- package/dist/Components/LoadingModalProps.js +1 -0
- package/dist/Components/LoadingOverlay.svelte +11 -13
- package/dist/Components/LoadingOverlay.svelte.d.ts +1 -5
- package/dist/Components/LoadingOverlayProps.d.ts +28 -0
- package/dist/Components/LoadingOverlayProps.js +1 -0
- package/dist/Components/Modal.svelte +77 -82
- package/dist/Components/Modal.svelte.d.ts +1 -25
- package/dist/Components/ModalProps.d.ts +65 -0
- package/dist/Components/ModalProps.js +1 -0
- package/dist/Components/MultiSelect.svelte +88 -76
- package/dist/Components/MultiSelectCommonProps.d.ts +33 -4
- package/dist/Components/MultiSelectPropsAsObject.d.ts +5 -0
- package/dist/Components/MultiSelectPropsAsPrimitive.d.ts +6 -0
- package/dist/Components/Nav/CallbackButtonWithIcon.d.ts +22 -1
- package/dist/Components/Nav/Nav.svelte +35 -30
- package/dist/Components/Nav/Nav.svelte.d.ts +23 -2
- package/dist/Components/Nav/NavProps.d.ts +50 -3
- package/dist/Components/Nav/NavServiceMenuList.svelte +12 -3
- package/dist/Components/Nav/NavServiceMenuListProps.d.ts +25 -1
- package/dist/Components/Nav/NavTab.svelte +19 -48
- package/dist/Components/Nav/NavTab.svelte.d.ts +23 -2
- package/dist/Components/Nav/NavTabProps.d.ts +16 -2
- package/dist/Components/Nav/ServiceMenuItem.svelte +29 -20
- package/dist/Components/Nav/ServicesNav.svelte +60 -34
- package/dist/Components/Nav/ServicesNav.svelte.d.ts +23 -2
- package/dist/Components/Nav/ServicesNavProps.d.ts +20 -4
- package/dist/Components/Nav/SideMenuItemProps.d.ts +16 -0
- package/dist/Components/NumberInput.svelte +37 -27
- package/dist/Components/NumberInputProps.d.ts +37 -0
- package/dist/Components/PageHeading.svelte +2 -13
- package/dist/Components/PageHeading.svelte.d.ts +1 -6
- package/dist/Components/PageHeadingProps.d.ts +23 -0
- package/dist/Components/PageHeadingProps.js +1 -0
- package/dist/Components/PasswordInput.svelte +27 -15
- package/dist/Components/PasswordInput.svelte.d.ts +2 -2
- package/dist/Components/PasswordInputProps.d.ts +21 -0
- package/dist/Components/PasswordInputProps.js +1 -0
- package/dist/Components/Portal.svelte +14 -3
- package/dist/Components/PortalProps.d.ts +20 -1
- package/dist/Components/ProgressBubble.svelte +98 -53
- package/dist/Components/ProgressBubbleProps.d.ts +23 -2
- package/dist/Components/QuerySelect.svelte +103 -159
- package/dist/Components/QuerySelect.svelte.d.ts +2 -29
- package/dist/Components/QuerySelectProps.d.ts +66 -0
- package/dist/Components/QuerySelectProps.js +1 -0
- package/dist/Components/SingleSelect.svelte +86 -108
- package/dist/Components/SingleSelectCommonProps.d.ts +43 -5
- package/dist/Components/SingleSelectPropsAsObject.d.ts +7 -0
- package/dist/Components/SingleSelectPropsAsPrimitive.d.ts +8 -0
- package/dist/Components/StepButton.svelte +19 -69
- package/dist/Components/StepForm.svelte +52 -52
- package/dist/Components/StepFormProps.d.ts +16 -2
- package/dist/Components/Switch.svelte +68 -31
- package/dist/Components/Switch.svelte.d.ts +1 -1
- package/dist/Components/SwitchProps.d.ts +46 -0
- package/dist/Components/Table/Body/HeightData.d.ts +1 -6
- package/dist/Components/Table/Body/HeightData.js +8 -0
- package/dist/Components/Table/Body/QuickSearchCell.svelte +106 -50
- package/dist/Components/Table/Body/QuickSearchCell.svelte.d.ts +12 -11
- package/dist/Components/Table/Body/QuickSearchCellProps.d.ts +6 -0
- package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +43 -9
- package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte.d.ts +24 -2
- package/dist/Components/Table/Body/Rows/ColumnHighlightProps.d.ts +3 -0
- package/dist/Components/Table/Body/Rows/ColumnList.svelte +15 -5
- package/dist/Components/Table/Body/Rows/ColumnList.svelte.d.ts +12 -11
- package/dist/Components/Table/Body/Rows/ColumnListProps.d.ts +1 -0
- package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +424 -91
- package/dist/Components/Table/Body/Rows/ColumnListRow.svelte.d.ts +12 -11
- package/dist/Components/Table/Body/Rows/ColumnListRowProps.d.ts +5 -0
- package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +43 -13
- package/dist/Components/Table/Body/Rows/Columns/AccessorComponentProps.d.ts +12 -0
- package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +50 -38
- package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte.d.ts +12 -12
- package/dist/Components/Table/Body/Rows/Columns/ActionsColumn.d.ts +9 -0
- package/dist/Components/Table/Body/Rows/Columns/ActionsTableCell.d.ts +5 -0
- package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +61 -26
- package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte.d.ts +14 -13
- package/dist/Components/Table/Body/Rows/Columns/BubbleCellProps.d.ts +12 -0
- package/dist/Components/Table/Body/Rows/Columns/BubbleCellProps.js +1 -0
- package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +36 -16
- package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +47 -24
- package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte.d.ts +12 -11
- package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCellProps.d.ts +7 -0
- package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +54 -20
- package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte.d.ts +17 -11
- package/dist/Components/Table/Body/Rows/Columns/RowSelectionColumn.d.ts +8 -0
- package/dist/Components/Table/Body/Rows/Columns/RowSelectionTableCell.d.ts +5 -0
- package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +11 -0
- package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.d.ts +11 -0
- package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +55 -40
- package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte.d.ts +11 -0
- package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +38 -27
- package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte.d.ts +13 -18
- package/dist/Components/Table/Body/Rows/Columns/TableCheckboxProps.d.ts +17 -0
- package/dist/Components/Table/Body/Rows/Columns/TableCheckboxProps.js +1 -0
- package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +22 -7
- package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +1 -7
- package/dist/Components/Table/Body/Rows/Columns/TableColumnProps.d.ts +16 -0
- package/dist/Components/Table/Body/Rows/Columns/TableColumnProps.js +1 -0
- package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +61 -31
- package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte.d.ts +12 -11
- package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.d.ts +9 -0
- package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +123 -244
- package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte.d.ts +20 -12
- package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.d.ts +8 -0
- package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +9 -0
- package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +126 -189
- package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte.d.ts +12 -11
- package/dist/Components/Table/Body/Rows/Columns/TableQuerySelectProps.d.ts +8 -0
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +31 -19
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte.d.ts +2 -5
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckboxProps.d.ts +14 -0
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckboxProps.js +1 -0
- package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +125 -187
- package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte.d.ts +13 -12
- package/dist/Components/Table/Body/Rows/Columns/TableSelectProps.d.ts +6 -0
- package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +119 -270
- package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte.d.ts +12 -11
- package/dist/Components/Table/Body/Rows/Columns/TableTextInputProps.d.ts +6 -0
- package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +23 -13
- package/dist/Components/Table/Body/Rows/Columns/_helpers/useAsyncEditable.svelte.d.ts +104 -0
- package/dist/Components/Table/Body/Rows/Columns/_helpers/useAsyncEditable.svelte.js +215 -0
- package/dist/Components/Table/Body/Rows/TableRow.svelte +200 -132
- package/dist/Components/Table/Body/Rows/TableRow.svelte.d.ts +2 -10
- package/dist/Components/Table/Body/Rows/TableRowProps.d.ts +11 -2
- package/dist/Components/Table/Body/TableBody.svelte +170 -53
- package/dist/Components/Table/Body/TableBody.svelte.d.ts +15 -22
- package/dist/Components/Table/Body/TableBodyProps.d.ts +9 -7
- package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +18 -12
- package/dist/Components/Table/ColumnFactory.svelte.d.ts +43 -0
- package/dist/Components/Table/ColumnFactory.svelte.js +339 -0
- package/dist/Components/Table/Headers/HighlightAllHeader.svelte +5 -3
- package/dist/Components/Table/Headers/HighlightAllHeader.svelte.d.ts +12 -11
- package/dist/Components/Table/Headers/SelectAllHeader.svelte +5 -3
- package/dist/Components/Table/Headers/SelectAllHeader.svelte.d.ts +12 -11
- package/dist/Components/Table/Headers/TableHead.svelte +340 -200
- package/dist/Components/Table/Headers/TableHead.svelte.d.ts +13 -16
- package/dist/Components/Table/Headers/TableHeadProps.d.ts +10 -0
- package/dist/Components/Table/Headers/TableHeadProps.js +1 -0
- package/dist/Components/Table/Misc/ColumnPanel.svelte +108 -50
- package/dist/Components/Table/Misc/ColumnPanel.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/ColumnPanelModal.svelte +20 -7
- package/dist/Components/Table/Misc/ColumnPanelModal.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/ColumnPanelModalProps.d.ts +5 -0
- package/dist/Components/Table/Misc/FilterInput.svelte +30 -41
- package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/FilterPanel.svelte +387 -29
- package/dist/Components/Table/Misc/FilterPanel.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/FilterPanelModal.svelte +4 -51
- package/dist/Components/Table/Misc/FilterPanelModal.svelte.d.ts +2 -23
- package/dist/Components/Table/Misc/SidePanel.svelte +12 -9
- package/dist/Components/Table/Misc/SidePanel.svelte.d.ts +1 -7
- package/dist/Components/Table/Misc/SidePanelProps.d.ts +17 -0
- package/dist/Components/Table/Misc/SidePanelProps.js +1 -0
- package/dist/Components/Table/Misc/TableFooter.svelte +44 -35
- package/dist/Components/Table/Misc/TableFooter.svelte.d.ts +13 -14
- package/dist/Components/Table/Misc/TableFooterProps.d.ts +8 -0
- package/dist/Components/Table/Misc/TableFooterProps.js +1 -0
- package/dist/Components/Table/Misc/TableHorizontalBar.svelte +17 -48
- package/dist/Components/Table/Misc/TableHorizontalBar.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/TableSidebar.svelte +28 -47
- package/dist/Components/Table/Misc/TableSidebar.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/ToolboxPanel.svelte +121 -55
- package/dist/Components/Table/Misc/ToolboxPanel.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +31 -24
- package/dist/Components/Table/Misc/ToolboxPanelModal.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/ToolboxPanelModalProps.d.ts +5 -0
- package/dist/Components/Table/Misc/numberDateFilterTypes.d.ts +7 -4
- package/dist/Components/Table/Misc/numberDateFilterTypes.js +8 -3
- package/dist/Components/Table/Misc/stringFilterTypes.d.ts +6 -4
- package/dist/Components/Table/Misc/stringFilterTypes.js +7 -3
- package/dist/Components/Table/NestedTable.svelte +85 -41
- package/dist/Components/Table/NestedTable.svelte.d.ts +2 -10
- package/dist/Components/Table/NestedTableProps.d.ts +25 -0
- package/dist/Components/Table/NestedTableProps.js +1 -0
- package/dist/Components/Table/SubApis.svelte.d.ts +23 -0
- package/dist/Components/Table/SubApis.svelte.js +359 -0
- package/dist/Components/Table/Table.svelte +347 -172
- package/dist/Components/Table/Table.svelte.d.ts +24 -1
- package/dist/Components/Table/TableHelpers.svelte.d.ts +58 -0
- package/dist/Components/Table/TableHelpers.svelte.js +88 -0
- package/dist/Components/Table/Types/Columns/Column.d.ts +10 -0
- package/dist/Components/Table/Types/Columns/ColumnPinningState.d.ts +12 -0
- package/dist/Components/Table/Types/Columns/ColumnSizingState.d.ts +8 -0
- package/dist/Components/Table/Types/Columns/ColumnType.d.ts +17 -0
- package/dist/Components/Table/Types/Columns/ColumnType.js +18 -1
- package/dist/Components/Table/Types/Columns/DateColumn.d.ts +6 -0
- package/dist/Components/Table/Types/Columns/DateTableCell.d.ts +7 -0
- package/dist/Components/Table/Types/Columns/Definitions/AccessorFn.d.ts +13 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.d.ts +28 -3
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.js +15 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorType.d.ts +10 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorType.js +11 -1
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +23 -2
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.js +9 -2
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.d.ts +21 -2
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.js +8 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts +29 -3
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.js +11 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +23 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.js +8 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +31 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.js +17 -3
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.d.ts +21 -2
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.js +7 -0
- package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +29 -1
- package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.js +17 -3
- package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +122 -11
- package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.js +77 -11
- package/dist/Components/Table/Types/Columns/Definitions/ColumnDefSet.d.ts +9 -0
- package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +41 -1
- package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +16 -0
- package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +19 -1
- package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.js +12 -1
- package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +11 -0
- package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.js +6 -3
- package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +19 -0
- package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.js +25 -1
- package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +26 -0
- package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.js +20 -5
- package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +43 -7
- package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.js +18 -3
- package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +19 -5
- package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.js +16 -5
- package/dist/Components/Table/Types/Columns/Definitions/JSONColumnDefSet.d.ts +14 -0
- package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts +34 -2
- package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js +30 -7
- package/dist/Components/Table/Types/Columns/Definitions/ValidationFn.d.ts +17 -0
- package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +10 -0
- package/dist/Components/Table/Types/Columns/DisplayType.d.ts +13 -0
- package/dist/Components/Table/Types/Columns/DisplayType.js +14 -1
- package/dist/Components/Table/Types/Columns/ExpandColumn.d.ts +5 -0
- package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +7 -0
- package/dist/Components/Table/Types/Columns/JSONColumnPinningState.d.ts +6 -0
- package/dist/Components/Table/Types/Columns/ProgressBarColumn.d.ts +5 -0
- package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +9 -0
- package/dist/Components/Table/Types/Columns/TableActionButton.d.ts +12 -0
- package/dist/Components/Table/Types/Columns/TableCell.d.ts +16 -2
- package/dist/Components/Table/Types/Columns/VisibilityState.d.ts +12 -0
- package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.d.ts +173 -0
- package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.js +241 -0
- package/dist/Components/Table/Types/Context/FilteringState.svelte.d.ts +166 -0
- package/dist/Components/Table/Types/Context/FilteringState.svelte.js +180 -0
- package/dist/Components/Table/Types/Context/FocusState.svelte.d.ts +316 -0
- package/dist/Components/Table/Types/Context/FocusState.svelte.js +751 -0
- package/dist/Components/Table/Types/Context/ITable.d.ts +10 -0
- package/dist/Components/Table/Types/Context/PreferencesState.svelte.d.ts +242 -0
- package/dist/Components/Table/Types/Context/PreferencesState.svelte.js +317 -0
- package/dist/Components/Table/Types/Context/ReadonlyRowModel.d.ts +14 -3
- package/dist/Components/Table/Types/Context/Row.d.ts +18 -0
- package/dist/Components/Table/Types/Context/RowModel.d.ts +11 -0
- package/dist/Components/Table/Types/Context/SelectionState.svelte.d.ts +260 -0
- package/dist/Components/Table/Types/Context/SelectionState.svelte.js +613 -0
- package/dist/Components/Table/Types/Context/SortingState.svelte.d.ts +112 -0
- package/dist/Components/Table/Types/Context/SortingState.svelte.js +272 -0
- package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +547 -53
- package/dist/Components/Table/Types/Context/TableContext.svelte.js +959 -1259
- package/dist/Components/Table/Types/Context/TableInitOptions.d.ts +16 -0
- package/dist/Components/Table/Types/Context/TableSettings.d.ts +20 -0
- package/dist/Components/Table/Types/Context/VirtualisationState.svelte.d.ts +167 -0
- package/dist/Components/Table/Types/Context/VirtualisationState.svelte.js +226 -0
- package/dist/Components/Table/Types/Coordinates/CellCoordinates.d.ts +12 -0
- package/dist/Components/Table/Types/Coordinates/CellCoordinatesWithoutColumn.d.ts +5 -0
- package/dist/Components/Table/Types/Coordinates/ColumnIndices.d.ts +16 -2
- package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.d.ts +143 -0
- package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.js +454 -0
- package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +21 -0
- package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +10 -0
- package/dist/Components/Table/Types/DataRepository/IRemoteDataRepository.d.ts +16 -0
- package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +87 -3
- package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +112 -7
- package/dist/Components/Table/Types/DataRepository/SortingState.d.ts +12 -0
- package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +87 -2
- package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +74 -1
- package/dist/Components/Table/Types/ExpandedPanel.d.ts +9 -0
- package/dist/Components/Table/Types/ExpandedPanel.js +10 -1
- package/dist/Components/Table/Types/Filtering/ColumnFiltersState.d.ts +17 -0
- package/dist/Components/Table/Types/Filtering/CustomFilter.d.ts +21 -0
- package/dist/Components/Table/Types/Filtering/CustomFilterType.d.ts +5 -0
- package/dist/Components/Table/Types/Filtering/CustomFilterType.js +6 -1
- package/dist/Components/Table/Types/Filtering/CustomRemoteFilters.d.ts +6 -0
- package/dist/Components/Table/Types/Filtering/FilterFn.d.ts +28 -0
- package/dist/Components/Table/Types/Filtering/FilterMode.d.ts +7 -0
- package/dist/Components/Table/Types/Filtering/FilterType.d.ts +8 -0
- package/dist/Components/Table/Types/Filtering/FilterType.js +9 -1
- package/dist/Components/Table/Types/Filtering/FilterValueType.d.ts +11 -0
- package/dist/Components/Table/Types/Filtering/FilterValueType.js +12 -1
- package/dist/Components/Table/Types/Filtering/HasCustomFilterFunction.d.ts +23 -2
- package/dist/Components/Table/Types/Filtering/NumberDateFilterMode.d.ts +19 -12
- package/dist/Components/Table/Types/Filtering/NumberDateFilterMode.js +18 -14
- package/dist/Components/Table/Types/Filtering/StringFilterMode.d.ts +22 -15
- package/dist/Components/Table/Types/Filtering/StringFilterMode.js +22 -16
- package/dist/Components/Table/Types/Focus/MultiFocusEdge.d.ts +8 -0
- package/dist/Components/Table/Types/Focus/MultiFocusEdge.js +9 -1
- package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.d.ts +22 -0
- package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +22 -0
- package/dist/Components/Table/Types/Header.d.ts +8 -0
- package/dist/Components/Table/Types/HeaderGroup.d.ts +7 -0
- package/dist/Components/Table/Types/Layout/CellPinning.d.ts +1 -0
- package/dist/Components/Table/Types/Layout/CellPinning.js +8 -0
- package/dist/Components/Table/Types/OnChangeFn.d.ts +11 -0
- package/dist/Components/Table/Types/Pagination/PaginationState.d.ts +9 -0
- package/dist/Components/Table/Types/Pagination/PaginationType.d.ts +10 -0
- package/dist/Components/Table/Types/Pagination/PaginationType.js +11 -1
- package/dist/Components/Table/Types/Public/AnyEditEvent.d.ts +30 -0
- package/dist/Components/Table/Types/Public/AnyEditEvent.js +1 -0
- package/dist/Components/Table/Types/Public/BaseColumnOptions.d.ts +44 -0
- package/dist/Components/Table/Types/Public/BaseColumnOptions.js +1 -0
- package/dist/Components/Table/Types/Public/ColumnFactory.d.ts +35 -0
- package/dist/Components/Table/Types/Public/ColumnFactory.js +1 -0
- package/dist/Components/Table/Types/Public/ColumnOptions.d.ts +238 -0
- package/dist/Components/Table/Types/Public/ColumnOptions.js +1 -0
- package/dist/Components/Table/Types/Public/ColumnSpec.d.ts +39 -0
- package/dist/Components/Table/Types/Public/ColumnSpec.js +1 -0
- package/dist/Components/Table/Types/Public/CreateTableOptions.d.ts +87 -0
- package/dist/Components/Table/Types/Public/CreateTableOptions.js +1 -0
- package/dist/Components/Table/Types/Public/KeyConstraints.d.ts +42 -0
- package/dist/Components/Table/Types/Public/KeyConstraints.js +22 -0
- package/dist/Components/Table/Types/Public/RowSource.d.ts +87 -0
- package/dist/Components/Table/Types/Public/RowSource.js +1 -0
- package/dist/Components/Table/Types/Public/SelectionOptions.d.ts +26 -0
- package/dist/Components/Table/Types/Public/SelectionOptions.js +1 -0
- package/dist/Components/Table/Types/Public/Table.d.ts +39 -0
- package/dist/Components/Table/Types/Public/Table.js +1 -0
- package/dist/Components/Table/Types/Public/TableInitialState.d.ts +26 -0
- package/dist/Components/Table/Types/Public/TableInitialState.js +1 -0
- package/dist/Components/Table/Types/Public/TablePersistence.d.ts +38 -0
- package/dist/Components/Table/Types/Public/TablePersistence.js +1 -0
- package/dist/Components/Table/Types/Public/TableSubApis.d.ts +157 -0
- package/dist/Components/Table/Types/Public/TableSubApis.js +1 -0
- package/dist/Components/Table/Types/Public/index.d.ts +20 -0
- package/dist/Components/Table/Types/Public/index.js +8 -0
- package/dist/Components/Table/Types/Toolbar/ToolbarPosition.d.ts +4 -0
- package/dist/Components/Table/Types/Toolbar/ToolbarPosition.js +5 -1
- package/dist/Components/Table/createTable.svelte.d.ts +53 -0
- package/dist/Components/Table/createTable.svelte.js +269 -0
- package/dist/Components/TextArea.svelte +37 -18
- package/dist/Components/TextAreaProps.d.ts +37 -0
- package/dist/Components/TextInput.svelte +41 -22
- package/dist/Components/TextInputProps.d.ts +58 -1
- package/dist/Components/ThreeStateRadio.svelte +61 -64
- package/dist/Components/ThreeStateRadioProps.d.ts +29 -1
- package/dist/Components/Touch/BoolCard.svelte +8 -15
- package/dist/Components/Touch/BoolCard.svelte.d.ts +1 -10
- package/dist/Components/Touch/BoolCardProps.d.ts +21 -0
- package/dist/Components/Touch/BoolCardProps.js +1 -0
- package/dist/Components/Touch/DateModal.svelte +17 -25
- package/dist/Components/Touch/DateModal.svelte.d.ts +1 -17
- package/dist/Components/Touch/DateModalProps.d.ts +36 -0
- package/dist/Components/Touch/DateModalProps.js +1 -0
- package/dist/Components/Touch/EditCard.svelte +10 -3
- package/dist/Components/Touch/EditCardProps.d.ts +21 -0
- package/dist/Components/Touch/InfoCard.svelte +14 -7
- package/dist/Components/Touch/InfoCardProps.d.ts +9 -0
- package/dist/Components/Touch/InfoTextCard.svelte +9 -2
- package/dist/Components/Touch/InfoTextCardProps.d.ts +8 -0
- package/dist/Components/Touch/ModalExplanation.svelte +9 -12
- package/dist/Components/Touch/ModalExplanation.svelte.d.ts +1 -6
- package/dist/Components/Touch/ModalExplanationProps.d.ts +22 -0
- package/dist/Components/Touch/ModalExplanationProps.js +1 -0
- package/dist/Components/Touch/NumberKeyboard.svelte +62 -105
- package/dist/Components/Touch/NumberKeyboardProps.d.ts +19 -0
- package/dist/Components/Touch/NumberModal.svelte +16 -6
- package/dist/Components/Touch/NumberModalProps.d.ts +23 -1
- package/dist/Components/Touch/PlusMinusCard.svelte +12 -16
- package/dist/Components/Touch/PlusMinusCard.svelte.d.ts +1 -6
- package/dist/Components/Touch/PlusMinusCardProps.d.ts +18 -0
- package/dist/Components/Touch/PlusMinusCardProps.js +1 -0
- package/dist/Components/Touch/SelectModal.svelte +33 -15
- package/dist/Components/Touch/SelectModalProps.d.ts +22 -1
- package/dist/Components/Touch/SummaryCard.svelte +56 -14
- package/dist/Components/Touch/SummaryCardProps.d.ts +16 -3
- package/dist/Components/Touch/TextAreaModal.svelte +18 -9
- package/dist/Components/Touch/TextAreaModalProps.d.ts +21 -0
- package/dist/Components/Touch/TextModal.svelte +15 -32
- package/dist/Components/Touch/TextModalProps.d.ts +28 -1
- package/dist/Components/Touch/TouchCard.svelte +9 -47
- package/dist/Components/Touch/TouchCardProps.d.ts +21 -0
- package/dist/Components/Touch/TouchModal.svelte +105 -99
- package/dist/Components/Touch/TouchModalProps.d.ts +35 -1
- package/dist/Components/Touch/UtilityButton.svelte +36 -18
- package/dist/Components/Touch/UtilityButtonProps.d.ts +16 -0
- package/dist/Components/VerticalTabGroup.svelte +18 -40
- package/dist/Components/VerticalTabGroupButton.svelte +11 -50
- package/dist/Components/VerticalTabGroupProps.d.ts +15 -2
- package/dist/Contexts/AlertContext.svelte.d.ts +92 -8
- package/dist/Contexts/AlertContext.svelte.js +69 -6
- package/dist/Contexts/ContextMenuContext.svelte.d.ts +54 -8
- package/dist/Contexts/ContextMenuContext.svelte.js +48 -2
- package/dist/Contexts/TestContext.svelte.d.ts +27 -1
- package/dist/Contexts/TestContext.svelte.js +29 -1
- package/dist/Contexts/ToastContext.svelte.d.ts +29 -1
- package/dist/Contexts/ToastContext.svelte.js +93 -24
- package/dist/Contexts/TooltipContext.svelte.d.ts +68 -1
- package/dist/Contexts/TooltipContext.svelte.js +70 -7
- package/dist/Contexts/UntypedInputContext.svelte.d.ts +54 -5
- package/dist/Contexts/UntypedInputContext.svelte.js +87 -34
- package/dist/Delay/Delay.js +1 -1
- package/dist/Helpers/AsyncFlag.svelte.d.ts +39 -0
- package/dist/Helpers/AsyncFlag.svelte.js +72 -0
- package/dist/Helpers/Datamatrix.d.ts +10 -1
- package/dist/Helpers/Datamatrix.js +290 -1
- package/dist/Helpers/Helpers.svelte.d.ts +252 -18
- package/dist/Helpers/Helpers.svelte.js +271 -75
- package/dist/Helpers/INamed.d.ts +6 -0
- package/dist/Helpers/Storage.d.ts +67 -0
- package/dist/Helpers/Storage.js +138 -0
- package/dist/Helpers/dropdownPortal.d.ts +52 -0
- package/dist/Helpers/dropdownPortal.js +232 -0
- package/dist/Helpers/dropdownPortal.svelte.d.ts +2 -0
- package/dist/Helpers/dropdownPortal.svelte.js +5 -0
- package/dist/Helpers/memoiseByRow.d.ts +45 -0
- package/dist/Helpers/memoiseByRow.js +78 -0
- package/dist/Helpers/prefersReducedMotion.svelte.d.ts +27 -0
- package/dist/Helpers/prefersReducedMotion.svelte.js +18 -0
- package/dist/Helpers/useTooltip.svelte.d.ts +53 -0
- package/dist/Helpers/useTooltip.svelte.js +62 -0
- package/dist/Types/Examples/ExampleModal.svelte +2 -1
- package/dist/Types/Examples/ExampleSelectEnum.js +1 -1
- package/dist/Types/Internal/AsyncFlag.d.ts +7 -0
- package/dist/Types/Internal/AsyncFlag.js +1 -0
- package/dist/Types/Internal/BigRadioOption.d.ts +8 -0
- package/dist/Types/Internal/ButtonProp.d.ts +24 -2
- package/dist/Types/Internal/CallbackButton.d.ts +12 -0
- package/dist/Types/Internal/DateChange.d.ts +8 -0
- package/dist/Types/Internal/DatePickerType.d.ts +5 -0
- package/dist/Types/Internal/DatePickerType.js +6 -1
- package/dist/Types/Internal/IdentifiableToastMessage.d.ts +8 -0
- package/dist/Types/Internal/InputVariant.d.ts +5 -0
- package/dist/Types/Internal/InputVariant.js +6 -1
- package/dist/Types/Internal/Misc.d.ts +91 -0
- package/dist/Types/Internal/RefWrapper.d.ts +6 -0
- package/dist/Types/Internal/SelectOption.d.ts +8 -0
- package/dist/Types/Internal/Shape.d.ts +1 -0
- package/dist/Types/Internal/Shape.js +2 -1
- package/dist/Types/Internal/Side.d.ts +1 -0
- package/dist/Types/Internal/Side.js +2 -1
- package/dist/Types/Internal/Size.d.ts +5 -0
- package/dist/Types/Internal/Size.js +6 -1
- package/dist/Types/Internal/TabOption.d.ts +15 -5
- package/dist/Types/Internal/Ternary.d.ts +6 -0
- package/dist/Types/Internal/Ternary.js +7 -1
- package/dist/Types/Internal/ToastMessage.d.ts +28 -0
- package/dist/Types/Internal/Validity.d.ts +6 -0
- package/dist/Types/Internal/Validity.js +7 -1
- package/dist/Types/Internal/ValidityWrapper.d.ts +8 -0
- package/dist/Types/Internal/Variant.d.ts +5 -0
- package/dist/Types/Internal/Variant.js +6 -1
- package/dist/index.d.ts +27 -82
- package/dist/index.js +24 -62
- package/dist/scss/_mixins.scss +451 -167
- package/dist/scss/_motion.scss +57 -0
- package/dist/scss/_sizing.scss +16 -0
- package/dist/scss/colours.js +2 -2
- package/dist/scss/sizing.d.ts +9 -0
- package/dist/scss/sizing.js +10 -1
- package/package.json +35 -31
|
@@ -8,12 +8,9 @@
|
|
|
8
8
|
ContextMenuContext,
|
|
9
9
|
type IContextMenuOption,
|
|
10
10
|
} from '../../Contexts/ContextMenuContext.svelte';
|
|
11
|
-
import { devCatch, refWrapper } from '../../Helpers/Helpers.svelte';
|
|
12
|
-
import type { RefWrapper } from '../../Types/Internal/RefWrapper.js';
|
|
11
|
+
import { cssLength, devCatch, refWrapper } from '../../Helpers/Helpers.svelte';
|
|
13
12
|
import { getContext, onMount, setContext, tick, untrack } from 'svelte';
|
|
14
13
|
import LoadingOverlay from '../LoadingOverlay.svelte';
|
|
15
|
-
import type { HeightData } from './Body/HeightData.js';
|
|
16
|
-
import { shownPopup } from './Body/Rows/Columns/ActionsCell.svelte';
|
|
17
14
|
import TableBody from './Body/TableBody.svelte';
|
|
18
15
|
import TableHead from './Headers/TableHead.svelte';
|
|
19
16
|
import TableFooter from './Misc/TableFooter.svelte';
|
|
@@ -32,24 +29,61 @@
|
|
|
32
29
|
}
|
|
33
30
|
}
|
|
34
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Top-level orchestrator props. Accepts either:
|
|
34
|
+
*
|
|
35
|
+
* - `table`: the structured `Table` instance returned by `createTable(...)`.
|
|
36
|
+
* This is the consumer-facing form.
|
|
37
|
+
* - `tableContext`: the underlying `TableContext`. Used internally by
|
|
38
|
+
* `NestedTable` which constructs a context directly for each
|
|
39
|
+
* expansion. Not intended for consumer use.
|
|
40
|
+
*
|
|
41
|
+
* Exactly one of the two must be supplied; a runtime guard inside the
|
|
42
|
+
* component throws if both are missing. The reference passed in is
|
|
43
|
+
* captured at mount via `setContext` and should not be reassigned
|
|
44
|
+
* afterwards.
|
|
45
|
+
*/
|
|
35
46
|
export interface TableProps<T extends object, IdType extends Primitive> {
|
|
36
|
-
readonly
|
|
47
|
+
readonly table?: { readonly _context: TableContext<T, IdType> };
|
|
48
|
+
readonly tableContext?: TableContext<T, IdType>;
|
|
37
49
|
nested?: boolean;
|
|
38
50
|
}
|
|
39
51
|
|
|
52
|
+
/**
|
|
53
|
+
* Symbol used to share the currently-open quick-filter select across
|
|
54
|
+
* every header in a single Table tree. Stored via `setContext` on
|
|
55
|
+
* the same component that hosts the Table tree so multiple
|
|
56
|
+
* independent tables on a page each own their own popup state.
|
|
57
|
+
*/
|
|
40
58
|
export const quickFilterContextIdentifier: symbol = Symbol();
|
|
41
59
|
|
|
42
|
-
const openedQuickFilterSelect = refWrapper(null);
|
|
60
|
+
const openedQuickFilterSelect = refWrapper<symbol | null>(null);
|
|
43
61
|
</script>
|
|
44
62
|
|
|
45
63
|
<script
|
|
46
64
|
lang="ts"
|
|
47
65
|
generics="T extends object,IdType extends Primitive"
|
|
48
66
|
>
|
|
49
|
-
const { nested = false, tableContext }: TableProps<T, IdType> = $props();
|
|
67
|
+
const { nested = false, table, tableContext: tableContextProp }: TableProps<T, IdType> = $props();
|
|
68
|
+
|
|
69
|
+
// Resolve the underlying TableContext from whichever prop the caller
|
|
70
|
+
// passed. Consumers pass `table` (the structured instance); the
|
|
71
|
+
// internal `NestedTable` passes `tableContext` directly. Exactly one
|
|
72
|
+
// must be present; throw cleanly otherwise so the failure mode is
|
|
73
|
+
// obvious rather than a downstream null-deref. Result is bound to a
|
|
74
|
+
// `tableContext` const so the existing 30+ references in this file
|
|
75
|
+
// keep resolving without per-site renames.
|
|
76
|
+
const tableContext: TableContext<T, IdType> = (() => {
|
|
77
|
+
const ctx = table?._context ?? tableContextProp;
|
|
78
|
+
if (!ctx) {
|
|
79
|
+
throw new Error(
|
|
80
|
+
'scoria: <Table /> requires either a `table` prop (the structured instance returned by createTable) or a `tableContext` prop (used internally by NestedTable).'
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
return ctx;
|
|
84
|
+
})();
|
|
50
85
|
|
|
51
86
|
// NOTE: known limitation. This is passed as a wrapper, and they should never require reassignment. It is deeply reactive
|
|
52
|
-
// svelte-ignore state_referenced_locally
|
|
53
87
|
setContext(TableContext.identifier, tableContext);
|
|
54
88
|
|
|
55
89
|
const { openContextMenu: _openContextMenu } = getContext<ContextMenuContext>(
|
|
@@ -61,6 +95,10 @@
|
|
|
61
95
|
|
|
62
96
|
setContext(quickFilterContextIdentifier, openedQuickFilterSelect);
|
|
63
97
|
|
|
98
|
+
// Focus-restore on focusStart change. The query/focus DOM work runs
|
|
99
|
+
// inside `untrack` so a future selector tweak that reads reactive
|
|
100
|
+
// state (e.g. document.activeElement) does not retrigger this
|
|
101
|
+
// effect on every focus change.
|
|
64
102
|
$effect(() => {
|
|
65
103
|
void tableContext.focusStart;
|
|
66
104
|
void ref;
|
|
@@ -89,21 +127,35 @@
|
|
|
89
127
|
});
|
|
90
128
|
});
|
|
91
129
|
|
|
130
|
+
// Scroll-into-view on focusEnd change. The DOM work is wrapped in
|
|
131
|
+
// untrack so reading layout properties from the queried cell never
|
|
132
|
+
// silently re-establishes a reactive dependency.
|
|
92
133
|
$effect(() => {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
134
|
+
void tableContext.focusEnd;
|
|
135
|
+
void ref;
|
|
136
|
+
untrack(() => {
|
|
137
|
+
if (tableContext.focusEnd && ref) {
|
|
138
|
+
const { row, column: index } = tableContext.focusEnd;
|
|
139
|
+
const cell = ref.querySelector(
|
|
140
|
+
`#${tableContext.tableName}-cell-${row}-${tableContext.columnDefs[index].id}`
|
|
141
|
+
) as HTMLElement | undefined;
|
|
142
|
+
|
|
143
|
+
cell?.scrollIntoView({
|
|
144
|
+
behavior: 'instant',
|
|
145
|
+
block: 'nearest',
|
|
146
|
+
inline: 'nearest',
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
});
|
|
105
150
|
});
|
|
106
151
|
|
|
152
|
+
/**
|
|
153
|
+
* Routes a right-click into either a "focus the cell that was
|
|
154
|
+
* clicked" path (if the click landed on a cell other than the
|
|
155
|
+
* current focus) or a "show copy options" context menu (when the
|
|
156
|
+
* Table is configured with `allowCopy` and the platform exposes the
|
|
157
|
+
* Clipboard API).
|
|
158
|
+
*/
|
|
107
159
|
function openContextMenu(e: MouseEvent) {
|
|
108
160
|
e.stopPropagation();
|
|
109
161
|
|
|
@@ -126,7 +178,11 @@
|
|
|
126
178
|
) {
|
|
127
179
|
const columnIndex = tableContext.columnDefs.find((it) => it.id === columnId)?.index;
|
|
128
180
|
|
|
129
|
-
|
|
181
|
+
// Use `!= null` rather than a truthy check so a column at
|
|
182
|
+
// memory index 0 (the leftmost column) is not silently
|
|
183
|
+
// rejected. The previous truthy check broke right-click
|
|
184
|
+
// copy on the first column.
|
|
185
|
+
if (columnIndex != null) {
|
|
130
186
|
tableContext.moveFocus({
|
|
131
187
|
column: columnIndex,
|
|
132
188
|
row,
|
|
@@ -163,16 +219,30 @@
|
|
|
163
219
|
}
|
|
164
220
|
}
|
|
165
221
|
|
|
222
|
+
/**
|
|
223
|
+
* Closes the quick-filter popup and the actions-cell popup whenever
|
|
224
|
+
* the user clicks somewhere that is not inside either floating UI.
|
|
225
|
+
*/
|
|
166
226
|
function handleClickOutside(e: MouseEvent) {
|
|
167
227
|
const target = e.target as HTMLElement;
|
|
168
228
|
if (target.isConnected) {
|
|
169
|
-
|
|
229
|
+
// A click in a teleported Svelecte dropdown (see
|
|
230
|
+
// `Helpers/dropdownPortal.ts`) is a logical extension of
|
|
231
|
+
// the trigger inside the quick-filter popup, so it must
|
|
232
|
+
// not close either floating popover. The portal helper
|
|
233
|
+
// sets `data-scoria-portal-dropdown` on the dropdown
|
|
234
|
+
// while it is teleported to `document.body`.
|
|
235
|
+
const insidePortalDropdown = target.closest('[data-scoria-portal-dropdown]') != null;
|
|
236
|
+
if (
|
|
237
|
+
!insidePortalDropdown &&
|
|
238
|
+
target.closest('div.floating') == null &&
|
|
239
|
+
target.closest('div.stick-right') == null
|
|
240
|
+
) {
|
|
170
241
|
openedQuickFilterSelect.value = null;
|
|
171
242
|
}
|
|
172
243
|
|
|
173
|
-
if (target.closest('div.slot-wrapper') == null) {
|
|
174
|
-
|
|
175
|
-
(shownPopup as RefWrapper<symbol | undefined>).value = undefined;
|
|
244
|
+
if (!insidePortalDropdown && target.closest('div.slot-wrapper') == null) {
|
|
245
|
+
tableContext.shownActionsPopup = undefined;
|
|
176
246
|
}
|
|
177
247
|
}
|
|
178
248
|
}
|
|
@@ -182,29 +252,40 @@
|
|
|
182
252
|
let remPxRatio = $state(0);
|
|
183
253
|
const minNestedHeight = $derived(20 * remPxRatio);
|
|
184
254
|
|
|
185
|
-
|
|
186
|
-
|
|
255
|
+
let nestedHeight = $state(0);
|
|
256
|
+
$effect.pre(() => {
|
|
257
|
+
if (!isResizing) {
|
|
258
|
+
nestedHeight = minNestedHeight;
|
|
259
|
+
}
|
|
260
|
+
});
|
|
187
261
|
|
|
188
|
-
let tableRef: HTMLDivElement | undefined =
|
|
262
|
+
let tableRef: HTMLDivElement | undefined = $state();
|
|
189
263
|
let mousedDownEmptySpace = $state(false);
|
|
190
264
|
|
|
191
265
|
onMount(() => {
|
|
192
266
|
remPxRatio = parseFloat(getComputedStyle(document.documentElement).fontSize);
|
|
193
267
|
});
|
|
194
268
|
|
|
195
|
-
|
|
196
|
-
isResizing
|
|
269
|
+
$effect(() => {
|
|
270
|
+
if (!isResizing) {
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
const onResize = (e: MouseEvent) => {
|
|
274
|
+
const sliderHeight = tableRef ? e.clientY - tableRef.getBoundingClientRect().top : 0;
|
|
275
|
+
nestedHeight = Math.max(sliderHeight, minNestedHeight);
|
|
276
|
+
};
|
|
197
277
|
window.addEventListener('mousemove', onResize);
|
|
198
|
-
|
|
278
|
+
return () => {
|
|
279
|
+
window.removeEventListener('mousemove', onResize);
|
|
280
|
+
};
|
|
281
|
+
});
|
|
199
282
|
|
|
200
|
-
function
|
|
201
|
-
|
|
202
|
-
nestedHeight = Math.max(sliderHeight, minNestedHeight);
|
|
283
|
+
function addOverrideResizeHandler() {
|
|
284
|
+
isResizing = true;
|
|
203
285
|
}
|
|
204
286
|
|
|
205
287
|
function removeOverrideResizeHandler() {
|
|
206
288
|
isResizing = false;
|
|
207
|
-
window.removeEventListener('mousemove', onResize);
|
|
208
289
|
}
|
|
209
290
|
|
|
210
291
|
const usesLoading = $derived(
|
|
@@ -225,10 +306,11 @@
|
|
|
225
306
|
|
|
226
307
|
$effect(() => {
|
|
227
308
|
if ((shouldUnfocusRemote || shouldUnfocusLocal) && unfocusRef) {
|
|
309
|
+
const el = unfocusRef;
|
|
228
310
|
untrack(() => {
|
|
229
311
|
tableContext.unfocus();
|
|
312
|
+
el.scrollTop = 0;
|
|
230
313
|
});
|
|
231
|
-
unfocusRef.scrollTop = 0;
|
|
232
314
|
} else if (usesLoading && tableContext.paginationRepo?.isLoading === false) {
|
|
233
315
|
// refocus same element after a reload
|
|
234
316
|
// this does not break mutifocus
|
|
@@ -241,77 +323,234 @@
|
|
|
241
323
|
|
|
242
324
|
tick()
|
|
243
325
|
.then(() => {
|
|
244
|
-
|
|
245
|
-
(document.querySelector(idToFocusTo) as HTMLTableCellElement | undefined)?.focus();
|
|
246
|
-
}
|
|
326
|
+
(document.querySelector(idToFocusTo) as HTMLElement | undefined)?.focus();
|
|
247
327
|
})
|
|
248
328
|
.catch(devCatch);
|
|
249
329
|
});
|
|
250
330
|
}
|
|
251
331
|
});
|
|
252
332
|
|
|
253
|
-
const leftTotalSize = $derived(tableContext.table.getLeftTotalSize());
|
|
254
|
-
const centreTotalSize = $derived(tableContext.table.getCenterTotalSize());
|
|
255
|
-
const rightTotalSize = $derived(tableContext.table.getRightTotalSize());
|
|
256
|
-
|
|
257
333
|
const leftColumns = $derived(tableContext.table.getLeftVisibleLeafColumns());
|
|
258
334
|
const centreColumns = $derived(tableContext.table.getCenterVisibleLeafColumns());
|
|
259
335
|
const rightColumns = $derived(tableContext.table.getRightVisibleLeafColumns());
|
|
260
336
|
|
|
261
|
-
const
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
337
|
+
const visibleColumns = $derived([...leftColumns, ...centreColumns, ...rightColumns]);
|
|
338
|
+
|
|
339
|
+
// CSS Grid template for the table.
|
|
340
|
+
//
|
|
341
|
+
// - First track is the highlight column (always present, fixed at
|
|
342
|
+
// 20px to match the existing visual).
|
|
343
|
+
// - Each other track uses one of two strategies based on the
|
|
344
|
+
// column's `userResized` flag:
|
|
345
|
+
// - `userResized = false` (default): `minmax(width, 1fr)`. The
|
|
346
|
+
// column flexes to share the row's remaining horizontal space
|
|
347
|
+
// so the grid fills the container, and it automatically takes
|
|
348
|
+
// back any space a sibling column gives up when shrunk - this
|
|
349
|
+
// means the table never ends up narrower than its container
|
|
350
|
+
// while any column is still in the flexible set.
|
|
351
|
+
// - `userResized = true`: `${width}px` (fixed). The column sits
|
|
352
|
+
// at exactly the size the user dragged it to, and dragging the
|
|
353
|
+
// handle again only changes this column - other user-resized
|
|
354
|
+
// columns keep their explicit widths and non-resized columns
|
|
355
|
+
// just adjust their flex share.
|
|
356
|
+
// - Pinned and centre columns use the same per-column rule so
|
|
357
|
+
// toggling a column's pin state does not change its width.
|
|
358
|
+
// - Sticky-cell offsets are read from `_columnRenderedWidths`
|
|
359
|
+
// (populated by TableHead's ResizeObserver), which gives
|
|
360
|
+
// accurate sticky positions in both states.
|
|
361
|
+
const colsTemplate = $derived.by(() => {
|
|
362
|
+
void tableContext.columnSizing;
|
|
363
|
+
const track = (col: { columnDef: { width: number; userResized: boolean } }) =>
|
|
364
|
+
col.columnDef.userResized
|
|
365
|
+
? `${col.columnDef.width}px`
|
|
366
|
+
: `minmax(${col.columnDef.width}px, 1fr)`;
|
|
367
|
+
const tracks: Array<string> = ['20px'];
|
|
368
|
+
for (const col of leftColumns) {
|
|
369
|
+
tracks.push(track(col));
|
|
370
|
+
}
|
|
371
|
+
for (const col of centreColumns) {
|
|
372
|
+
tracks.push(track(col));
|
|
268
373
|
}
|
|
374
|
+
for (const col of rightColumns) {
|
|
375
|
+
tracks.push(track(col));
|
|
376
|
+
}
|
|
377
|
+
return tracks.join(' ');
|
|
269
378
|
});
|
|
270
379
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
380
|
+
// Total rendered width of the pinned-left and pinned-right column
|
|
381
|
+
// stacks. Driven by `_columnRenderedWidths` (populated by
|
|
382
|
+
// TableHead's ResizeObserver) so the values track actual layout,
|
|
383
|
+
// not the declared `columnDef.width`. Exposed to CSS via
|
|
384
|
+
// `--pinned-left` / `--pinned-right` on `.datatable`; the SCSS
|
|
385
|
+
// then uses them in `scroll-padding-left` / `scroll-padding-right`
|
|
386
|
+
// so that `scrollIntoView` (called by keyboard arrow navigation
|
|
387
|
+
// and tab focus restore) keeps the focused cell out from behind
|
|
388
|
+
// the pinned columns. The highlight column is always 20px and
|
|
389
|
+
// always pinned-left when present, so it is added to the left
|
|
390
|
+
// total unconditionally.
|
|
391
|
+
const totalPinnedLeftWidth = $derived.by(() => {
|
|
392
|
+
void tableContext._columnRenderedWidths.size;
|
|
393
|
+
let total = 20;
|
|
394
|
+
for (const col of leftColumns) {
|
|
395
|
+
total += tableContext._columnRenderedWidths.get(col.id) ?? col.columnDef.width;
|
|
396
|
+
}
|
|
397
|
+
return total;
|
|
398
|
+
});
|
|
399
|
+
const totalPinnedRightWidth = $derived.by(() => {
|
|
400
|
+
void tableContext._columnRenderedWidths.size;
|
|
401
|
+
let total = 0;
|
|
402
|
+
for (const col of rightColumns) {
|
|
403
|
+
total += tableContext._columnRenderedWidths.get(col.id) ?? col.columnDef.width;
|
|
404
|
+
}
|
|
405
|
+
return total;
|
|
406
|
+
});
|
|
274
407
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
408
|
+
// Phase 7.4 row virtualisation - wire the single scroll listener
|
|
409
|
+
// for the shared scroll container. The single grid container is
|
|
410
|
+
// the scroll host now (the previous three-table siblings have
|
|
411
|
+
// collapsed into one).
|
|
412
|
+
//
|
|
413
|
+
// The same handler also drives `hasScrolledPastHeader` /
|
|
414
|
+
// `hasContentBelowFooter`, which feed the CSS variables that
|
|
415
|
+
// gate the sticky-row drop shadows. The shadows only appear when
|
|
416
|
+
// there is actually content scrolled under the relevant sticky
|
|
417
|
+
// row, so a freshly mounted (or fully-in-viewport) table shows no
|
|
418
|
+
// shadows.
|
|
419
|
+
let hasScrolledPastHeader = $state(false);
|
|
420
|
+
let hasContentBelowFooter = $state(false);
|
|
421
|
+
|
|
422
|
+
// Measured rendered height of the sticky strip at the top of
|
|
423
|
+
// `.datatable` (header row + quick-filter row when active).
|
|
424
|
+
// Drives `scroll-padding-top` via `--sticky-top-height` on
|
|
425
|
+
// `.datatable`, so `scrollIntoView` (keyboard arrow navigation,
|
|
426
|
+
// focus restore) parks the focused cell below the actual strip
|
|
427
|
+
// even at sub-pixel rounding and any borders. Using `calc(var(--height) + 61px)`
|
|
428
|
+
// statically left a 1-2px gap that hid the top edge of the
|
|
429
|
+
// first visible body row when navigating to it.
|
|
430
|
+
let stickyTopHeight: number = $state(0);
|
|
431
|
+
|
|
432
|
+
function recomputeScrollShadows(): void {
|
|
433
|
+
if (!tableRef) {
|
|
434
|
+
hasScrolledPastHeader = false;
|
|
435
|
+
hasContentBelowFooter = false;
|
|
436
|
+
return;
|
|
437
|
+
}
|
|
438
|
+
// `.datatable` has `overflow-x: auto`. Per the CSS spec, when
|
|
439
|
+
// one overflow axis is non-visible the other axis becomes
|
|
440
|
+
// auto too, so `.datatable` is itself the vertical scroll
|
|
441
|
+
// container for the sticky header / footer when the table
|
|
442
|
+
// is constrained inside a fixed-height parent (the typical
|
|
443
|
+
// app shell). Detect that internal scroll directly.
|
|
444
|
+
const internalScrolledPast = tableRef.scrollTop > 0;
|
|
445
|
+
const internalContentBelow =
|
|
446
|
+
tableRef.scrollTop + tableRef.clientHeight < tableRef.scrollHeight - 1;
|
|
447
|
+
// Fall back to window-relative checks for the case where the
|
|
448
|
+
// table is not constrained and the page itself is the scroll
|
|
449
|
+
// container (e.g. a story with no wrapper height).
|
|
450
|
+
const rect = tableRef.getBoundingClientRect();
|
|
451
|
+
const windowScrolledPast = rect.top < 0;
|
|
452
|
+
const windowContentBelow = rect.bottom > window.innerHeight;
|
|
453
|
+
hasScrolledPastHeader = internalScrolledPast || windowScrolledPast;
|
|
454
|
+
hasContentBelowFooter = internalContentBelow || windowContentBelow;
|
|
455
|
+
}
|
|
278
456
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
457
|
+
$effect(() => {
|
|
458
|
+
void tableRef;
|
|
459
|
+
void unfocusRef;
|
|
460
|
+
const handler = (e: Event): void => {
|
|
461
|
+
const el = e.currentTarget as HTMLElement | null;
|
|
462
|
+
if (!el) {
|
|
463
|
+
return;
|
|
464
|
+
}
|
|
465
|
+
tableContext._virtualisation.registerScrollPosition(el.scrollTop, el.clientHeight);
|
|
466
|
+
// Internal scroll inside `.datatable` is the sticky-context
|
|
467
|
+
// for the header / footer in the constrained-height case,
|
|
468
|
+
// so the shadow flags need to refresh on every internal
|
|
469
|
+
// scroll, not just window scroll. Without this, scrolling
|
|
470
|
+
// the table body never flips `hasScrolledPastHeader` /
|
|
471
|
+
// `hasContentBelowFooter` and the shadows never appear.
|
|
472
|
+
recomputeScrollShadows();
|
|
473
|
+
};
|
|
474
|
+
const elements: Array<HTMLElement> = [];
|
|
475
|
+
if (tableRef) {
|
|
476
|
+
elements.push(tableRef);
|
|
477
|
+
}
|
|
478
|
+
if (unfocusRef && unfocusRef !== tableRef) {
|
|
479
|
+
elements.push(unfocusRef);
|
|
480
|
+
}
|
|
481
|
+
for (const el of elements) {
|
|
482
|
+
el.addEventListener('scroll', handler, { passive: true });
|
|
483
|
+
}
|
|
484
|
+
const primary = tableRef ?? unfocusRef;
|
|
485
|
+
if (primary) {
|
|
486
|
+
tableContext._virtualisation.registerScrollPosition(primary.scrollTop, primary.clientHeight);
|
|
282
487
|
}
|
|
283
488
|
|
|
284
|
-
//
|
|
285
|
-
|
|
286
|
-
|
|
489
|
+
// Window-level scroll + resize cover the case where the table
|
|
490
|
+
// is not constrained and the page itself scrolls instead.
|
|
491
|
+
// `recomputeScrollShadows` checks both internal and window-level
|
|
492
|
+
// scroll position so either path flips the shadow flags.
|
|
493
|
+
const onWindow = (): void => {
|
|
494
|
+
recomputeScrollShadows();
|
|
495
|
+
};
|
|
496
|
+
window.addEventListener('scroll', onWindow, { passive: true });
|
|
497
|
+
window.addEventListener('resize', onWindow, { passive: true });
|
|
498
|
+
|
|
499
|
+
// Content-height changes (rows added / removed, pagination
|
|
500
|
+
// turning the page, expand toggled) flip whether there is
|
|
501
|
+
// anything below the footer or above the header, so shadow
|
|
502
|
+
// flags need to re-evaluate any time the table's intrinsic
|
|
503
|
+
// height changes - not just on actual user scroll.
|
|
504
|
+
const ro =
|
|
505
|
+
typeof ResizeObserver === 'undefined'
|
|
506
|
+
? null
|
|
507
|
+
: new ResizeObserver(() => {
|
|
508
|
+
recomputeScrollShadows();
|
|
509
|
+
});
|
|
510
|
+
if (ro && tableRef) {
|
|
511
|
+
ro.observe(tableRef);
|
|
512
|
+
}
|
|
287
513
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
514
|
+
// Measure the actual rendered height of the sticky strip
|
|
515
|
+
// (header row + quick-filter row when active) so
|
|
516
|
+
// `scroll-padding-top` matches it to the pixel. Static
|
|
517
|
+
// `calc(var(--height) + 61px)` ignored the header's
|
|
518
|
+
// border-bottom plus any sub-pixel rounding, leaving the
|
|
519
|
+
// first visible body row 1-2px behind the strip when
|
|
520
|
+
// `scrollIntoView` parked it at the top edge.
|
|
521
|
+
const measureStickyTop = (): void => {
|
|
522
|
+
if (!tableRef) {
|
|
523
|
+
return;
|
|
524
|
+
}
|
|
525
|
+
const headerRow = tableRef.querySelector('.datatable-row.header-row') as HTMLElement | null;
|
|
526
|
+
const filterRow = tableRef.querySelector(
|
|
527
|
+
'.datatable-row.quick-filter-row'
|
|
528
|
+
) as HTMLElement | null;
|
|
529
|
+
stickyTopHeight = (headerRow?.offsetHeight ?? 0) + (filterRow?.offsetHeight ?? 0);
|
|
530
|
+
};
|
|
531
|
+
const stickyRo =
|
|
532
|
+
typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(measureStickyTop);
|
|
533
|
+
if (stickyRo && tableRef) {
|
|
534
|
+
// Observe the scroll host so any change inside (mode
|
|
535
|
+
// toggle, rows added, etc.) re-measures on the next frame.
|
|
536
|
+
stickyRo.observe(tableRef);
|
|
537
|
+
}
|
|
538
|
+
// Initial measurement so the very first focus / arrow-key
|
|
539
|
+
// navigation lands below the strip without waiting for the
|
|
540
|
+
// observer's first frame.
|
|
541
|
+
measureStickyTop();
|
|
292
542
|
|
|
293
|
-
|
|
294
|
-
const applyTo: HeightData<T>['applyTo'] = [];
|
|
543
|
+
recomputeScrollShadows();
|
|
295
544
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
545
|
+
return () => {
|
|
546
|
+
for (const el of elements) {
|
|
547
|
+
el.removeEventListener('scroll', handler);
|
|
299
548
|
}
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
// console.debug(`right (${rightHeight}) was lower than max (${maxHeight})`);
|
|
306
|
-
applyTo.push('right');
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
return {
|
|
310
|
-
index,
|
|
311
|
-
applyTo,
|
|
312
|
-
maxHeight,
|
|
313
|
-
};
|
|
314
|
-
});
|
|
549
|
+
window.removeEventListener('scroll', onWindow);
|
|
550
|
+
window.removeEventListener('resize', onWindow);
|
|
551
|
+
ro?.disconnect();
|
|
552
|
+
stickyRo?.disconnect();
|
|
553
|
+
};
|
|
315
554
|
});
|
|
316
555
|
</script>
|
|
317
556
|
|
|
@@ -347,11 +586,14 @@
|
|
|
347
586
|
<div
|
|
348
587
|
class="grid"
|
|
349
588
|
class:nested
|
|
589
|
+
style="--show-top-shadow: {hasScrolledPastHeader
|
|
590
|
+
? 1
|
|
591
|
+
: 0}; --show-bottom-shadow: {hasContentBelowFooter ? 1 : 0};"
|
|
350
592
|
>
|
|
351
593
|
{#if tableContext.dataRepo.isLoading}
|
|
352
594
|
<LoadingOverlay
|
|
353
595
|
absolute
|
|
354
|
-
borderRadius=
|
|
596
|
+
borderRadius={cssLength('4px')}
|
|
355
597
|
message={tableContext.dataRepo.loadingMessage}
|
|
356
598
|
/>
|
|
357
599
|
{/if}
|
|
@@ -402,6 +644,7 @@
|
|
|
402
644
|
class:compact={tableContext.isCompact}
|
|
403
645
|
class:quick-filtering={tableContext.showQuickFiltering}
|
|
404
646
|
onkeydown={tableContext.handleTdKeydown}
|
|
647
|
+
style="--pinned-left: {totalPinnedLeftWidth}px; --pinned-right: {totalPinnedRightWidth}px; --sticky-top-height: {stickyTopHeight}px;"
|
|
405
648
|
>
|
|
406
649
|
<div
|
|
407
650
|
class="flex_table"
|
|
@@ -413,66 +656,15 @@
|
|
|
413
656
|
class="table-wrapper"
|
|
414
657
|
oncontextmenu={openContextMenu}
|
|
415
658
|
>
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
class="
|
|
419
|
-
style="
|
|
659
|
+
<div
|
|
660
|
+
role="table"
|
|
661
|
+
class="datatable-grid"
|
|
662
|
+
style="--cols: {colsTemplate};"
|
|
420
663
|
>
|
|
421
|
-
<TableHead
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
/>
|
|
425
|
-
<TableBody
|
|
426
|
-
includeHighlight={appropriateSide == 'left'}
|
|
427
|
-
columns={leftColumns}
|
|
428
|
-
side="left"
|
|
429
|
-
heights={totalRowSizes}
|
|
430
|
-
bind:this={leftTable}
|
|
431
|
-
/>
|
|
432
|
-
</table>
|
|
433
|
-
<!-- {/if} -->
|
|
434
|
-
|
|
435
|
-
<!-- {#if centreTotalSize > 0} -->
|
|
436
|
-
|
|
437
|
-
<table
|
|
438
|
-
class="datatable__table centre"
|
|
439
|
-
style="min-width: {centreTotalSize}px"
|
|
440
|
-
>
|
|
441
|
-
<TableHead
|
|
442
|
-
showHighlight={leftTotalSize == 0}
|
|
443
|
-
side="centre"
|
|
444
|
-
/>
|
|
445
|
-
<TableBody
|
|
446
|
-
includeHighlight={appropriateSide == 'centre'}
|
|
447
|
-
columns={centreColumns}
|
|
448
|
-
side="centre"
|
|
449
|
-
heights={totalRowSizes}
|
|
450
|
-
bind:this={centreTable}
|
|
451
|
-
/>
|
|
452
|
-
</table>
|
|
453
|
-
<!-- {/if} -->
|
|
454
|
-
|
|
455
|
-
<!-- {#if rightTotalSize > 0} -->
|
|
456
|
-
<table
|
|
457
|
-
class="datatable__table right"
|
|
458
|
-
style="min-width: {rightTotalSize}px"
|
|
459
|
-
>
|
|
460
|
-
<TableHead
|
|
461
|
-
showHighlight={false}
|
|
462
|
-
side="right"
|
|
463
|
-
/>
|
|
464
|
-
<TableBody
|
|
465
|
-
includeHighlight={appropriateSide == 'right'}
|
|
466
|
-
columns={rightColumns}
|
|
467
|
-
side="right"
|
|
468
|
-
heights={totalRowSizes}
|
|
469
|
-
bind:this={rightTable}
|
|
470
|
-
/>
|
|
471
|
-
</table>
|
|
472
|
-
<!-- {/if} -->
|
|
664
|
+
<TableHead />
|
|
665
|
+
<TableBody />
|
|
666
|
+
</div>
|
|
473
667
|
</div>
|
|
474
|
-
|
|
475
|
-
<!-- TODO add filter callbacks -->
|
|
476
668
|
</div>
|
|
477
669
|
|
|
478
670
|
{#if nested}
|
|
@@ -552,14 +744,6 @@ div.resizer.isResizing {
|
|
|
552
744
|
opacity: 1;
|
|
553
745
|
}
|
|
554
746
|
|
|
555
|
-
.left {
|
|
556
|
-
border-right: solid 2px #3a4952;
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
.right {
|
|
560
|
-
border-left: solid 2px #3a4952;
|
|
561
|
-
}
|
|
562
|
-
|
|
563
747
|
div.sidebar-wrapper {
|
|
564
748
|
display: flex;
|
|
565
749
|
flex-flow: row nowrap;
|
|
@@ -604,7 +788,6 @@ div.sidebar-wrapper .sidebar.toolbar-right {
|
|
|
604
788
|
position: relative;
|
|
605
789
|
flex-grow: 2;
|
|
606
790
|
max-height: 100%;
|
|
607
|
-
scroll-padding-top: calc(3rem + 0px);
|
|
608
791
|
}
|
|
609
792
|
|
|
610
793
|
.datatable {
|
|
@@ -621,6 +804,9 @@ div.sidebar-wrapper .sidebar.toolbar-right {
|
|
|
621
804
|
height: 100%;
|
|
622
805
|
flex-grow: 1;
|
|
623
806
|
--progress-bar-radius: 18px;
|
|
807
|
+
scroll-padding-top: var(--sticky-top-height, 0px);
|
|
808
|
+
scroll-padding-left: var(--pinned-left, 0px);
|
|
809
|
+
scroll-padding-right: var(--pinned-right, 0px);
|
|
624
810
|
}
|
|
625
811
|
.datatable.quick-filtering {
|
|
626
812
|
--quick-filter-height: 3rem;
|
|
@@ -638,23 +824,12 @@ div.sidebar-wrapper .sidebar.toolbar-right {
|
|
|
638
824
|
max-height: var(--nested-height, 20rem);
|
|
639
825
|
}
|
|
640
826
|
|
|
641
|
-
.
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
827
|
+
.datatable-grid {
|
|
828
|
+
display: flex;
|
|
829
|
+
flex-flow: column nowrap;
|
|
830
|
+
flex-grow: 2;
|
|
831
|
+
width: 100%;
|
|
645
832
|
text-align: left;
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
position: sticky;
|
|
649
|
-
z-index: 2;
|
|
650
|
-
left: 0;
|
|
651
|
-
}
|
|
652
|
-
.datatable__table.centre {
|
|
653
|
-
z-index: 1;
|
|
654
|
-
flex-grow: 10;
|
|
655
|
-
}
|
|
656
|
-
.datatable__table.right {
|
|
657
|
-
position: sticky;
|
|
658
|
-
z-index: 2;
|
|
659
|
-
right: 0;
|
|
833
|
+
min-width: max-content;
|
|
834
|
+
isolation: isolate;
|
|
660
835
|
}</style>
|