@lavalogic/scoria 0.36.0 → 0.37.1
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 +437 -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 +133 -26
- 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 +46 -23
- 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.d.ts +2 -2
- 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 +24 -0
- package/dist/Components/Table/SubApis.svelte.js +380 -0
- package/dist/Components/Table/Table.svelte +345 -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 +30 -9
- package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +14 -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 +580 -58
- package/dist/Components/Table/Types/Context/TableContext.svelte.js +984 -1278
- 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 +244 -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 +40 -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 +190 -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 +270 -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 +12 -11
- package/dist/Types/Examples/ExampleModal.svelte.d.ts +2 -2
- 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
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import Portal from '../../../../Portal.svelte';
|
|
10
10
|
import type { AbstractDisplayDef } from '../../../Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js';
|
|
11
11
|
import { TableContext } from '../../../Types/Context/TableContext.svelte.js';
|
|
12
|
-
import { TableFocusDetails } from '../../../Types/Focus/TableFocusDetails.svelte.js';
|
|
12
|
+
import type { TableFocusDetails } from '../../../Types/Focus/TableFocusDetails.svelte.js';
|
|
13
13
|
import { devCatch, isValidityTuple } from '../../../../../Helpers/Helpers.svelte.js';
|
|
14
14
|
import { Colour, ColourSet } from '../../../../../scss/colours.js';
|
|
15
15
|
import { Size } from '../../../../../Types/Internal/Size.js';
|
|
@@ -34,8 +34,6 @@
|
|
|
34
34
|
},
|
|
35
35
|
[Validity.Neutral]: { name: 'circle-minus', colour: Colour['$ui-blue-6'], size: Size.Medium },
|
|
36
36
|
};
|
|
37
|
-
|
|
38
|
-
let previousFocusElement: HTMLElement | undefined = $state();
|
|
39
37
|
</script>
|
|
40
38
|
|
|
41
39
|
<script
|
|
@@ -53,17 +51,19 @@
|
|
|
53
51
|
const ColumnDef = $derived(cell.column.columnDef as AbstractDisplayDef<T, FilterValueType>);
|
|
54
52
|
|
|
55
53
|
const focusDetails: TableFocusDetails<T, RowIdType> = $derived(
|
|
56
|
-
|
|
54
|
+
tableContext._focus.getFocusDetailsFor(cell)
|
|
57
55
|
);
|
|
58
56
|
|
|
57
|
+
let previousFocusElement: HTMLElement | undefined = $state();
|
|
59
58
|
let showModal = $state(false);
|
|
60
59
|
|
|
60
|
+
// Match the open-modal state by row-object identity and column id.
|
|
61
|
+
// Identity-based comparison keeps the modal locked to the row it was
|
|
62
|
+
// opened on even when pagination / sort / filter changes the visible
|
|
63
|
+
// index of that row.
|
|
61
64
|
$effect(() => {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
focusDetails.coordinates.row === tableContext.openModalCoordinates.row &&
|
|
65
|
-
focusDetails.coordinates.id === tableContext.openModalCoordinates.id
|
|
66
|
-
) {
|
|
65
|
+
const target = tableContext.openModalCell;
|
|
66
|
+
if (target !== null && target.row === cell.row.original && target.columnId === cell.column.id) {
|
|
67
67
|
previousFocusElement = document.activeElement as HTMLElement | undefined;
|
|
68
68
|
showModal = true;
|
|
69
69
|
} else {
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
);
|
|
100
100
|
|
|
101
101
|
function onclose() {
|
|
102
|
-
tableContext.
|
|
102
|
+
tableContext.setOpenModalCell(null);
|
|
103
103
|
|
|
104
104
|
if (previousFocusElement?.id != thisId) {
|
|
105
105
|
tick()
|
|
@@ -114,7 +114,8 @@
|
|
|
114
114
|
</script>
|
|
115
115
|
|
|
116
116
|
<!-- svelte-ignore a11y_mouse_events_have_key_events -->
|
|
117
|
-
|
|
117
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
118
|
+
<div
|
|
118
119
|
class="focusable"
|
|
119
120
|
onmousedown={(e) => {
|
|
120
121
|
// start focus only on left click
|
|
@@ -151,23 +152,39 @@
|
|
|
151
152
|
{icon}
|
|
152
153
|
onclick={() => {
|
|
153
154
|
if (ColumnDef.modal) {
|
|
154
|
-
tableContext.
|
|
155
|
+
tableContext.setOpenModalCell({
|
|
156
|
+
row: cell.row.original,
|
|
157
|
+
columnId: cell.column.id,
|
|
158
|
+
});
|
|
155
159
|
}
|
|
156
160
|
}}
|
|
157
161
|
/>
|
|
158
162
|
</div>
|
|
159
163
|
{#if showModal}
|
|
160
164
|
<Portal target={document.body}>
|
|
165
|
+
<!--
|
|
166
|
+
`ColumnDef.modal` is declared as
|
|
167
|
+
`Component<DisplayModalProps<TRow>>` on the public column
|
|
168
|
+
options, which exposes a stable `{ row, close }` prop
|
|
169
|
+
shape. Cell renderers used to hand a legacy
|
|
170
|
+
`{ cell, onclose, onsubmit }` triple here, which made the
|
|
171
|
+
public type lie about the runtime shape - migrated to
|
|
172
|
+
`{ row, close }` so consumer-authored modals can rely on
|
|
173
|
+
the documented type.
|
|
174
|
+
-->
|
|
161
175
|
<ColumnDef.modal
|
|
162
|
-
{cell}
|
|
163
|
-
{onclose}
|
|
164
|
-
onsubmit={onclose}
|
|
176
|
+
row={cell.row.original}
|
|
177
|
+
close={onclose}
|
|
165
178
|
/>
|
|
166
179
|
</Portal>
|
|
167
180
|
{/if}
|
|
168
|
-
</
|
|
181
|
+
</div>
|
|
169
182
|
|
|
170
|
-
<style
|
|
183
|
+
<style>.focusable,
|
|
184
|
+
.checkbox-cell,
|
|
185
|
+
.input-cell,
|
|
186
|
+
.select-cell,
|
|
187
|
+
.datepicker-cell {
|
|
171
188
|
transition: line-height 0.2s ease, height 0.2s ease;
|
|
172
189
|
--input-border: none;
|
|
173
190
|
--input-height: var(--height);
|
|
@@ -177,23 +194,29 @@
|
|
|
177
194
|
position: relative;
|
|
178
195
|
padding-left: 0.75rem;
|
|
179
196
|
padding-right: 0.75rem;
|
|
180
|
-
border: solid 1px #cbd4da;
|
|
181
|
-
border-
|
|
197
|
+
border-right: solid 1px #cbd4da;
|
|
198
|
+
border-bottom: solid 1px #cbd4da;
|
|
199
|
+
box-sizing: border-box;
|
|
200
|
+
width: 100%;
|
|
201
|
+
height: var(--height);
|
|
182
202
|
}
|
|
183
203
|
|
|
184
|
-
|
|
204
|
+
.focusable {
|
|
185
205
|
user-select: none;
|
|
186
206
|
cursor: default;
|
|
187
207
|
outline: none;
|
|
188
208
|
}
|
|
189
|
-
|
|
209
|
+
.focusable.editable {
|
|
190
210
|
cursor: pointer;
|
|
191
211
|
}
|
|
192
212
|
|
|
193
|
-
|
|
213
|
+
.focusable,
|
|
214
|
+
.checkbox-cell,
|
|
215
|
+
.input-cell,
|
|
216
|
+
.select-cell {
|
|
194
217
|
max-height: var(--max-height);
|
|
195
218
|
height: var(--height);
|
|
196
|
-
box-sizing:
|
|
219
|
+
box-sizing: border-box;
|
|
197
220
|
overflow-x: clip;
|
|
198
221
|
--td-padding-left: 0;
|
|
199
222
|
--td-padding-right: 0;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { type Primitive } from '../../../../Types/Context/TableInitOptions.js';
|
|
2
|
+
import type { TableCell } from '../../../../Types/Columns/TableCell.js';
|
|
3
|
+
import type { TableFocusDetails } from '../../../../Types/Focus/TableFocusDetails.svelte.js';
|
|
4
|
+
import { Validity } from '../../../../../../Types/Internal/Validity.js';
|
|
5
|
+
/**
|
|
6
|
+
* Options for {@link useAsyncEditable}. All reactive inputs are exposed as
|
|
7
|
+
* thunks so the helper can establish its own `$effect` / `$derived` chain
|
|
8
|
+
* on whatever reactive state the caller wraps inside.
|
|
9
|
+
*/
|
|
10
|
+
export interface UseAsyncEditableOptions<T extends object> {
|
|
11
|
+
/** The cell to coordinate focus / edit state for. */
|
|
12
|
+
cell: () => TableCell<T>;
|
|
13
|
+
/**
|
|
14
|
+
* Optional callback fired once a row first qualifies as `wantsToBeEdited`
|
|
15
|
+
* AND the async `editable` check has resolved true. Use this to seed a
|
|
16
|
+
* cell-local `tempValue` buffer before the inner input renders. The
|
|
17
|
+
* helper guarantees `wantsToBeEdited && editable` are both true at the
|
|
18
|
+
* time of the call.
|
|
19
|
+
*/
|
|
20
|
+
onEnterEdit?: () => void;
|
|
21
|
+
/**
|
|
22
|
+
* Optional callback fired immediately after the cell leaves edit mode
|
|
23
|
+
* (either because `wantsToBeEdited` flipped false, or because the
|
|
24
|
+
* cell-specific input dispatched a commit / cancel). Cells that need
|
|
25
|
+
* "save on blur" semantics should fire `tableContext.onEditCell` here.
|
|
26
|
+
*/
|
|
27
|
+
onLeaveEdit?: () => void;
|
|
28
|
+
/**
|
|
29
|
+
* Optional callback fired immediately after `isBeingEdited` becomes
|
|
30
|
+
* true, with `isMousingDown` already reset. Use to focus / select the
|
|
31
|
+
* inner input on the next tick.
|
|
32
|
+
*/
|
|
33
|
+
onAfterEnterEdit?: () => void;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Public surface returned by {@link useAsyncEditable}. All reactive
|
|
37
|
+
* properties must be read inside a Svelte reactive scope to participate in
|
|
38
|
+
* dependency tracking.
|
|
39
|
+
*/
|
|
40
|
+
export interface AsyncEditable<T extends object, RowIdType extends Primitive> {
|
|
41
|
+
/** Resolved synchronous boolean from the async `isEditable` predicate. */
|
|
42
|
+
readonly editable: boolean;
|
|
43
|
+
/** True while the cell is rendering its inline edit input. */
|
|
44
|
+
readonly isBeingEdited: boolean;
|
|
45
|
+
/** The per-cell focus-details handle from `FocusState`. */
|
|
46
|
+
readonly focusDetails: TableFocusDetails<T, RowIdType>;
|
|
47
|
+
/** The latest unwrapped `Validity` for the cell. */
|
|
48
|
+
readonly validity: Validity;
|
|
49
|
+
/**
|
|
50
|
+
* Wire onto `<td onmouseup={...}>`. Returns `true` if a single-click
|
|
51
|
+
* focus was handled (and the caller should NOT also call
|
|
52
|
+
* `tableContext.endFocus`).
|
|
53
|
+
*/
|
|
54
|
+
handleSingleClickFocus(): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Wire onto `<td ondblclick={...}>`. Returns `true` if a double-click
|
|
57
|
+
* focus was handled.
|
|
58
|
+
*/
|
|
59
|
+
handleDoubleClickFocus(): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Pass to `$effect(() => editable.attachEditListener(tdref))`. Returns
|
|
62
|
+
* the cleanup unsubscriber for the `edit` custom event listener.
|
|
63
|
+
*/
|
|
64
|
+
attachEditListener(node: HTMLElement | undefined): (() => void) | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Helper for Escape / Enter keydown handlers: clears
|
|
67
|
+
* `focusStartIsBeingEdited` and refocuses the `<td>` element on the
|
|
68
|
+
* next tick.
|
|
69
|
+
*/
|
|
70
|
+
leaveEditingViaKeyboard(tdEl: HTMLElement | undefined): void;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Reactive editable-cell focus coordinator. Centralises the bookkeeping
|
|
74
|
+
* that all inline-editable Table cells (`TableTextInput`, `TableNumberInput`,
|
|
75
|
+
* `TableSelect`, `TableQuerySelect`) share:
|
|
76
|
+
*
|
|
77
|
+
* - resolving the async `cell.column.columnDef.isEditable(row, index)`
|
|
78
|
+
* predicate (sync boolean or Promise of boolean) with a sequence counter
|
|
79
|
+
* that discards stale resolutions;
|
|
80
|
+
* - deriving `wantsToBeEdited` from {@link TableContext.focusStart} /
|
|
81
|
+
* {@link TableContext.focusEnd} / {@link TableContext.focusStartIsBeingEdited}
|
|
82
|
+
* / {@link TableContext.isMousingDown};
|
|
83
|
+
* - mirroring the resolved `wantsToBeEdited && editable` into an
|
|
84
|
+
* `isBeingEdited` `$state` flag, with cell-specific seed / commit hooks;
|
|
85
|
+
* - tracking the `Validity` for the cell from
|
|
86
|
+
* {@link TableFocusDetails.validity} and unwrapping validity tuples;
|
|
87
|
+
* - wiring the `edit` custom event on the cell's `<td>` element with proper
|
|
88
|
+
* `$effect` cleanup;
|
|
89
|
+
* - exposing `handleSingleClickFocus` / `handleDoubleClickFocus` so the
|
|
90
|
+
* consumer can spread the standard mouseup / dblclick wiring onto its
|
|
91
|
+
* `<td>`.
|
|
92
|
+
*
|
|
93
|
+
* Per-cell concerns the helper does NOT take over:
|
|
94
|
+
* - rendering the editing input (different per cell);
|
|
95
|
+
* - value-to-display coercion (parseFloat, Date parsing, option lookup);
|
|
96
|
+
* - keydown re-dispatch on the inner Svelecte input (Select / QuerySelect
|
|
97
|
+
* only);
|
|
98
|
+
* - the inline-modal lifecycle of `TableDatePicker` (deferred separately).
|
|
99
|
+
*
|
|
100
|
+
* @param options Reactive inputs and lifecycle callbacks.
|
|
101
|
+
* @returns A reactive {@link AsyncEditable} bundle. Read its getters inside
|
|
102
|
+
* a reactive scope; the helper updates them as state changes.
|
|
103
|
+
*/
|
|
104
|
+
export declare function useAsyncEditable<T extends object, RowIdType extends Primitive>(options: UseAsyncEditableOptions<T>): AsyncEditable<T, RowIdType>;
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { TableContext } from '../../../../Types/Context/TableContext.svelte.js';
|
|
2
|
+
import {} from '../../../../Types/Context/TableInitOptions.js';
|
|
3
|
+
import { devCatch, isValidityTuple } from '../../../../../../Helpers/Helpers.svelte.js';
|
|
4
|
+
import { Validity } from '../../../../../../Types/Internal/Validity.js';
|
|
5
|
+
import { getContext, tick, untrack } from 'svelte';
|
|
6
|
+
/**
|
|
7
|
+
* Reactive editable-cell focus coordinator. Centralises the bookkeeping
|
|
8
|
+
* that all inline-editable Table cells (`TableTextInput`, `TableNumberInput`,
|
|
9
|
+
* `TableSelect`, `TableQuerySelect`) share:
|
|
10
|
+
*
|
|
11
|
+
* - resolving the async `cell.column.columnDef.isEditable(row, index)`
|
|
12
|
+
* predicate (sync boolean or Promise of boolean) with a sequence counter
|
|
13
|
+
* that discards stale resolutions;
|
|
14
|
+
* - deriving `wantsToBeEdited` from {@link TableContext.focusStart} /
|
|
15
|
+
* {@link TableContext.focusEnd} / {@link TableContext.focusStartIsBeingEdited}
|
|
16
|
+
* / {@link TableContext.isMousingDown};
|
|
17
|
+
* - mirroring the resolved `wantsToBeEdited && editable` into an
|
|
18
|
+
* `isBeingEdited` `$state` flag, with cell-specific seed / commit hooks;
|
|
19
|
+
* - tracking the `Validity` for the cell from
|
|
20
|
+
* {@link TableFocusDetails.validity} and unwrapping validity tuples;
|
|
21
|
+
* - wiring the `edit` custom event on the cell's `<td>` element with proper
|
|
22
|
+
* `$effect` cleanup;
|
|
23
|
+
* - exposing `handleSingleClickFocus` / `handleDoubleClickFocus` so the
|
|
24
|
+
* consumer can spread the standard mouseup / dblclick wiring onto its
|
|
25
|
+
* `<td>`.
|
|
26
|
+
*
|
|
27
|
+
* Per-cell concerns the helper does NOT take over:
|
|
28
|
+
* - rendering the editing input (different per cell);
|
|
29
|
+
* - value-to-display coercion (parseFloat, Date parsing, option lookup);
|
|
30
|
+
* - keydown re-dispatch on the inner Svelecte input (Select / QuerySelect
|
|
31
|
+
* only);
|
|
32
|
+
* - the inline-modal lifecycle of `TableDatePicker` (deferred separately).
|
|
33
|
+
*
|
|
34
|
+
* @param options Reactive inputs and lifecycle callbacks.
|
|
35
|
+
* @returns A reactive {@link AsyncEditable} bundle. Read its getters inside
|
|
36
|
+
* a reactive scope; the helper updates them as state changes.
|
|
37
|
+
*/
|
|
38
|
+
export function useAsyncEditable(options) {
|
|
39
|
+
const tableContext = getContext(TableContext.identifier);
|
|
40
|
+
// Runtime guard: getContext is typed as non-undefined for ergonomics
|
|
41
|
+
// downstream (TS narrowing-by-throw does not propagate into nested
|
|
42
|
+
// function declarations), but the context can still be absent at
|
|
43
|
+
// runtime if a consumer forgets to wrap with a Table.
|
|
44
|
+
if (tableContext == null) {
|
|
45
|
+
throw new Error('useAsyncEditable requires a TableContext to be in scope');
|
|
46
|
+
}
|
|
47
|
+
const editableAsync = $derived(options
|
|
48
|
+
.cell()
|
|
49
|
+
.column.columnDef.isEditable(options.cell().row.original, options.cell().row.originalIndex));
|
|
50
|
+
let editable = $state(false);
|
|
51
|
+
let asyncCounter = 0;
|
|
52
|
+
$effect(() => {
|
|
53
|
+
void editableAsync;
|
|
54
|
+
const localCounter = (asyncCounter = asyncCounter + 1);
|
|
55
|
+
const debug = options.cell().column.columnDef.debug;
|
|
56
|
+
(async () => {
|
|
57
|
+
try {
|
|
58
|
+
const isEditable = await editableAsync;
|
|
59
|
+
if (asyncCounter === localCounter) {
|
|
60
|
+
editable = isEditable;
|
|
61
|
+
}
|
|
62
|
+
else if (debug) {
|
|
63
|
+
console.log('skipping async editable because it is stale');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
if (debug) {
|
|
68
|
+
console.error(e);
|
|
69
|
+
}
|
|
70
|
+
if (asyncCounter === localCounter) {
|
|
71
|
+
editable = false;
|
|
72
|
+
}
|
|
73
|
+
else if (debug) {
|
|
74
|
+
console.log('skipping async editable because it is stale');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
})().catch(devCatch);
|
|
78
|
+
});
|
|
79
|
+
const focusDetails = $derived(tableContext._focus.getFocusDetailsFor(options.cell()));
|
|
80
|
+
const wantsToBeEdited = $derived(tableContext.focusStart?.column === focusDetails.coordinates.column &&
|
|
81
|
+
tableContext.focusEnd?.column === focusDetails.coordinates.column &&
|
|
82
|
+
tableContext.focusStart.row === focusDetails.coordinates.row &&
|
|
83
|
+
tableContext.focusEnd.row === focusDetails.coordinates.row &&
|
|
84
|
+
!tableContext.isMousingDown &&
|
|
85
|
+
tableContext.focusStartIsBeingEdited);
|
|
86
|
+
let isBeingEdited = $state(false);
|
|
87
|
+
$effect(() => {
|
|
88
|
+
if (wantsToBeEdited) {
|
|
89
|
+
if (editable) {
|
|
90
|
+
tick()
|
|
91
|
+
.then(() => {
|
|
92
|
+
untrack(() => {
|
|
93
|
+
options.onEnterEdit?.();
|
|
94
|
+
isBeingEdited = true;
|
|
95
|
+
});
|
|
96
|
+
})
|
|
97
|
+
.catch(devCatch);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
tick()
|
|
101
|
+
.then(() => {
|
|
102
|
+
untrack(() => {
|
|
103
|
+
tableContext.focusStartIsBeingEdited = false;
|
|
104
|
+
});
|
|
105
|
+
})
|
|
106
|
+
.catch(devCatch);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else if (isBeingEdited) {
|
|
110
|
+
untrack(() => {
|
|
111
|
+
isBeingEdited = false;
|
|
112
|
+
tick()
|
|
113
|
+
.then(() => {
|
|
114
|
+
options.onLeaveEdit?.();
|
|
115
|
+
})
|
|
116
|
+
.catch(devCatch);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
let overrideEdit = $state(false);
|
|
121
|
+
$effect(() => {
|
|
122
|
+
if (isBeingEdited) {
|
|
123
|
+
if (overrideEdit) {
|
|
124
|
+
overrideEdit = false;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
tableContext.isMousingDown = false;
|
|
128
|
+
tick()
|
|
129
|
+
.then(() => {
|
|
130
|
+
options.onAfterEnterEdit?.();
|
|
131
|
+
})
|
|
132
|
+
.catch(devCatch);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
let validity = $state(Validity.Valid);
|
|
137
|
+
$effect(() => {
|
|
138
|
+
const validityPromise = focusDetails.validity;
|
|
139
|
+
validityPromise
|
|
140
|
+
.then((v) => {
|
|
141
|
+
if (!v) {
|
|
142
|
+
validity = Validity.Neutral;
|
|
143
|
+
}
|
|
144
|
+
else if (isValidityTuple(v)) {
|
|
145
|
+
validity = v.value;
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
validity = v;
|
|
149
|
+
}
|
|
150
|
+
})
|
|
151
|
+
.catch(devCatch);
|
|
152
|
+
});
|
|
153
|
+
function handleTDFocus(selectAll = false) {
|
|
154
|
+
if (tableContext.focusStart?.column === focusDetails.coordinates.column &&
|
|
155
|
+
tableContext.focusStart.row === focusDetails.coordinates.row &&
|
|
156
|
+
editable) {
|
|
157
|
+
if (tableContext.focusEnd?.column !== focusDetails.coordinates.column ||
|
|
158
|
+
tableContext.focusEnd.row !== focusDetails.coordinates.row) {
|
|
159
|
+
tableContext.setFocusEnd(focusDetails.coordinates);
|
|
160
|
+
}
|
|
161
|
+
tableContext.isMousingDown = false;
|
|
162
|
+
if (!selectAll) {
|
|
163
|
+
overrideEdit = true;
|
|
164
|
+
}
|
|
165
|
+
tableContext.focusStartIsBeingEdited = true;
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
function handleSingleClickFocus() {
|
|
171
|
+
return tableContext.singleClickEditing && handleTDFocus();
|
|
172
|
+
}
|
|
173
|
+
function handleDoubleClickFocus() {
|
|
174
|
+
return !tableContext.singleClickEditing && handleTDFocus();
|
|
175
|
+
}
|
|
176
|
+
const onEdit = (e) => {
|
|
177
|
+
const detail = e.detail;
|
|
178
|
+
handleTDFocus(detail.selectAll);
|
|
179
|
+
};
|
|
180
|
+
function attachEditListener(node) {
|
|
181
|
+
if (!node) {
|
|
182
|
+
return undefined;
|
|
183
|
+
}
|
|
184
|
+
node.addEventListener('edit', onEdit);
|
|
185
|
+
return () => {
|
|
186
|
+
node.removeEventListener('edit', onEdit);
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
function leaveEditingViaKeyboard(tdEl) {
|
|
190
|
+
tableContext.focusStartIsBeingEdited = false;
|
|
191
|
+
tick()
|
|
192
|
+
.then(() => {
|
|
193
|
+
tdEl?.focus();
|
|
194
|
+
})
|
|
195
|
+
.catch(devCatch);
|
|
196
|
+
}
|
|
197
|
+
return {
|
|
198
|
+
get editable() {
|
|
199
|
+
return editable;
|
|
200
|
+
},
|
|
201
|
+
get isBeingEdited() {
|
|
202
|
+
return isBeingEdited;
|
|
203
|
+
},
|
|
204
|
+
get focusDetails() {
|
|
205
|
+
return focusDetails;
|
|
206
|
+
},
|
|
207
|
+
get validity() {
|
|
208
|
+
return validity;
|
|
209
|
+
},
|
|
210
|
+
handleSingleClickFocus,
|
|
211
|
+
handleDoubleClickFocus,
|
|
212
|
+
attachEditListener,
|
|
213
|
+
leaveEditingViaKeyboard,
|
|
214
|
+
};
|
|
215
|
+
}
|