@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
|
@@ -1,16 +1,39 @@
|
|
|
1
1
|
import type { SelectOption } from '../../../../../../Types/Internal/SelectOption.js';
|
|
2
2
|
import type { FilterFn } from '../../../Filtering/FilterFn.js';
|
|
3
3
|
import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
4
|
+
/**
|
|
5
|
+
* Construction-time props for `QueryDef`. Both `query` and
|
|
6
|
+
* `getDisplayValue` are required: the dropdown is asynchronously
|
|
7
|
+
* populated from `query` and the cell display is decoupled from the
|
|
8
|
+
* stored value.
|
|
9
|
+
*
|
|
10
|
+
* Security: `query` receives raw user input from the quick-search box.
|
|
11
|
+
* Implementations forwarding the query string to a backend MUST escape
|
|
12
|
+
* or parameterise it before use. Documented in the workorder.
|
|
13
|
+
*/
|
|
4
14
|
export interface QueryDefProps<T extends object, in FilterValueType = unknown, out FilterOptionsType = unknown> extends AccessorDefProps<T, FilterValueType, FilterOptionsType> {
|
|
15
|
+
/** Async option provider. Receives raw user input from the search box;
|
|
16
|
+
* implementations forwarding to a backend must escape the query. */
|
|
5
17
|
query: (queryString: string, item: T, index: number) => Promise<Array<SelectOption<unknown>>>;
|
|
18
|
+
/** Required. Maps the stored value to a display label. */
|
|
6
19
|
getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
|
|
20
|
+
/** Whether the widget exposes a clear affordance. Defaults to true. */
|
|
7
21
|
clearable?: boolean;
|
|
8
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* `QueryDef<T, FilterValueType, FilterOptionsType>` is an `AccessorDef`
|
|
25
|
+
* backed by an asynchronous option provider (typeahead).
|
|
26
|
+
*/
|
|
9
27
|
export declare class QueryDef<T extends object, FilterValueType = unknown, out FilterOptionsType = unknown> extends AccessorDef<T, FilterValueType, FilterOptionsType> {
|
|
28
|
+
/** Inner discriminator literal. */
|
|
10
29
|
readonly accessorType: "Query";
|
|
11
30
|
constructor(props: QueryDefProps<T, FilterValueType, FilterOptionsType>);
|
|
31
|
+
/** Filter predicate. Bound at construction. */
|
|
12
32
|
readonly filterFn: FilterFn<T, FilterValueType> | undefined;
|
|
33
|
+
/** Required at the subclass layer. */
|
|
13
34
|
getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
|
|
35
|
+
/** Async option provider. */
|
|
14
36
|
readonly query: (queryString: string, item: T, index: number) => Promise<Array<SelectOption<unknown>>>;
|
|
37
|
+
/** Whether the widget exposes a clear affordance. */
|
|
15
38
|
readonly clearable: boolean;
|
|
16
39
|
}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { AccessorDef } from './AccessorDef.svelte.js';
|
|
2
2
|
import { AccessorType } from './AccessorType.js';
|
|
3
|
+
/**
|
|
4
|
+
* `QueryDef<T, FilterValueType, FilterOptionsType>` is an `AccessorDef`
|
|
5
|
+
* backed by an asynchronous option provider (typeahead).
|
|
6
|
+
*/
|
|
3
7
|
export class QueryDef extends AccessorDef {
|
|
8
|
+
/** Inner discriminator literal. */
|
|
4
9
|
accessorType = AccessorType.Query;
|
|
5
10
|
constructor(props) {
|
|
6
11
|
super(props);
|
|
@@ -8,7 +13,10 @@ export class QueryDef extends AccessorDef {
|
|
|
8
13
|
this.filterFn = $derived(props.filterFn);
|
|
9
14
|
this.clearable = $derived(props.clearable ?? true);
|
|
10
15
|
}
|
|
16
|
+
/** Filter predicate. Bound at construction. */
|
|
11
17
|
filterFn;
|
|
18
|
+
/** Async option provider. */
|
|
12
19
|
query;
|
|
20
|
+
/** Whether the widget exposes a clear affordance. */
|
|
13
21
|
clearable;
|
|
14
22
|
}
|
|
@@ -1,22 +1,53 @@
|
|
|
1
1
|
import type { SelectOption } from '../../../../../../Types/Internal/SelectOption.js';
|
|
2
2
|
import type { FilterFn } from '../../../Filtering/FilterFn.js';
|
|
3
3
|
import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
4
|
+
/**
|
|
5
|
+
* Construction-time props for `SelectDef`. Unlike the base
|
|
6
|
+
* `ColumnDefProps`, both `getOptions` and `getDisplayValue` are
|
|
7
|
+
* required - the option label is decoupled from the stored value and
|
|
8
|
+
* the dropdown cannot render without an option set.
|
|
9
|
+
*
|
|
10
|
+
* Notes:
|
|
11
|
+
* - `getSpecificOptions` returns a per-row option set; it is invoked
|
|
12
|
+
* per cell per render with no caching (tracked in perf workorder).
|
|
13
|
+
* - `optional` controls whether the cell may be cleared; `clearable`
|
|
14
|
+
* controls whether the widget exposes a clear affordance.
|
|
15
|
+
*/
|
|
4
16
|
export interface SelectDefProps<T extends object, in FilterValueType, out SelectValueType> extends AccessorDefProps<T, FilterValueType, SelectValueType> {
|
|
17
|
+
/** Required. Returns the global option set for the dropdown. */
|
|
5
18
|
getOptions: () => Array<SelectOption<SelectValueType>> | Promise<Array<SelectOption<SelectValueType>>>;
|
|
19
|
+
/** Required. Maps the stored value to a display label. */
|
|
6
20
|
getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
|
|
21
|
+
/** Optional per-row option override. Invoked per cell per render. */
|
|
7
22
|
getSpecificOptions?: (item: T, index: number) => Array<SelectOption<SelectValueType>> | Promise<Array<SelectOption<SelectValueType>>>;
|
|
23
|
+
/** Whether the cell may be cleared. Defaults to false. */
|
|
8
24
|
optional?: boolean;
|
|
25
|
+
/** Whether the widget exposes a clear affordance. Defaults to true. */
|
|
9
26
|
clearable?: boolean;
|
|
10
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* `SelectDef<T, FilterValueType, SelectValueType>` is an `AccessorDef`
|
|
30
|
+
* backed by a finite option set. The `declare`-redeclaration of
|
|
31
|
+
* `getDisplayValue` / `getOptions` below narrows the optional base
|
|
32
|
+
* contract to required: callers can rely on both being defined at the
|
|
33
|
+
* subclass layer.
|
|
34
|
+
*/
|
|
11
35
|
export declare class SelectDef<T extends object, in FilterValueType, out SelectValueType> extends AccessorDef<T, FilterValueType, SelectValueType> {
|
|
12
36
|
constructor(props: SelectDefProps<T, FilterValueType, SelectValueType>);
|
|
37
|
+
/** Inner discriminator literal. */
|
|
13
38
|
readonly accessorType: "Select";
|
|
14
39
|
private _filterFn;
|
|
40
|
+
/** Filter predicate. Reassignable. */
|
|
15
41
|
get filterFn(): FilterFn<T, FilterValueType> | undefined;
|
|
16
42
|
set filterFn(v: FilterFn<T, FilterValueType> | undefined);
|
|
43
|
+
/** Whether the cell may be cleared. */
|
|
17
44
|
readonly optional: boolean;
|
|
45
|
+
/** Whether the widget exposes a clear affordance. */
|
|
18
46
|
readonly clearable: boolean;
|
|
47
|
+
/** Per-row option override; invoked per cell per render. */
|
|
19
48
|
readonly getSpecificOptions?: (item: T, index: number) => Array<SelectOption<SelectValueType>> | Promise<Array<SelectOption<SelectValueType>>>;
|
|
49
|
+
/** Required at the subclass layer. */
|
|
20
50
|
getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
|
|
51
|
+
/** Required at the subclass layer. */
|
|
21
52
|
getOptions: () => Array<SelectOption<SelectValueType>> | Promise<Array<SelectOption<SelectValueType>>>;
|
|
22
53
|
}
|
|
@@ -1,24 +1,38 @@
|
|
|
1
|
+
import { memoiseRowAccessor } from '../../../../../../Helpers/memoiseByRow.js';
|
|
1
2
|
import { AccessorDef } from './AccessorDef.svelte.js';
|
|
2
3
|
import { AccessorType } from './AccessorType.js';
|
|
4
|
+
/**
|
|
5
|
+
* `SelectDef<T, FilterValueType, SelectValueType>` is an `AccessorDef`
|
|
6
|
+
* backed by a finite option set. The `declare`-redeclaration of
|
|
7
|
+
* `getDisplayValue` / `getOptions` below narrows the optional base
|
|
8
|
+
* contract to required: callers can rely on both being defined at the
|
|
9
|
+
* subclass layer.
|
|
10
|
+
*/
|
|
3
11
|
export class SelectDef extends AccessorDef {
|
|
4
12
|
constructor(props) {
|
|
5
13
|
super(props);
|
|
6
|
-
|
|
7
|
-
//
|
|
14
|
+
// Row-keyed WeakMap cache around the per-row options provider. For
|
|
15
|
+
// Promise returns the Promise itself is cached, so {#await} resolves
|
|
16
|
+
// once per row rather than per render.
|
|
17
|
+
this.getSpecificOptions = $derived(memoiseRowAccessor(props.getSpecificOptions));
|
|
8
18
|
this.optional = $derived(props.optional ?? false);
|
|
9
19
|
this.clearable = $derived(props.clearable ?? true);
|
|
10
|
-
// this.getDisplayValue = $derived(props.getDisplayValue); //done in the base class now
|
|
11
20
|
this._filterFn = $state(props.filterFn);
|
|
12
21
|
}
|
|
22
|
+
/** Inner discriminator literal. */
|
|
13
23
|
accessorType = AccessorType.Select;
|
|
14
24
|
_filterFn;
|
|
25
|
+
/** Filter predicate. Reassignable. */
|
|
15
26
|
get filterFn() {
|
|
16
27
|
return this._filterFn;
|
|
17
28
|
}
|
|
18
29
|
set filterFn(v) {
|
|
19
30
|
this._filterFn = v;
|
|
20
31
|
}
|
|
32
|
+
/** Whether the cell may be cleared. */
|
|
21
33
|
optional;
|
|
34
|
+
/** Whether the widget exposes a clear affordance. */
|
|
22
35
|
clearable;
|
|
36
|
+
/** Per-row option override; invoked per cell per render. */
|
|
23
37
|
getSpecificOptions;
|
|
24
38
|
}
|
|
@@ -1,12 +1,31 @@
|
|
|
1
1
|
import type { FilterFn, StringFilterValueType } from '../../../Filtering/FilterFn.js';
|
|
2
2
|
import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Construction-time props for `TextInputDef`. The `TValue` generic is
|
|
5
|
+
* pinned to `string | null`.
|
|
6
|
+
*
|
|
7
|
+
* Notes:
|
|
8
|
+
* - `filterValueType?: 'String'` is redeclared here as documentation:
|
|
9
|
+
* it pins the filter-row UI to the string-input variant.
|
|
10
|
+
* - The third generic (`SelectValueType`) is unused by the text input
|
|
11
|
+
* today but retained so the shape parallels every other
|
|
12
|
+
* `AccessorDef` subclass.
|
|
13
|
+
*/
|
|
14
|
+
export interface TextInputDefProps<T extends object, in FilterValueType = StringFilterValueType, out SelectValueType = StringFilterValueType> extends AccessorDefProps<T, FilterValueType, SelectValueType, string | null> {
|
|
15
|
+
/** Filter input variant; pinned to `'String'`. */
|
|
4
16
|
filterValueType?: 'String';
|
|
5
17
|
}
|
|
6
|
-
|
|
18
|
+
/**
|
|
19
|
+
* `TextInputDef<T, FilterValueType, SelectValueType>` fixes its
|
|
20
|
+
* declared value type at `string | null`. Cells reading
|
|
21
|
+
* `cell.getValue()` now see the narrower type instead of `unknown`.
|
|
22
|
+
*/
|
|
23
|
+
export declare class TextInputDef<T extends object, in FilterValueType = StringFilterValueType, out SelectValueType = StringFilterValueType> extends AccessorDef<T, FilterValueType, SelectValueType, string | null> {
|
|
24
|
+
/** Inner discriminator literal. */
|
|
7
25
|
readonly accessorType: "Text";
|
|
8
26
|
constructor(props: TextInputDefProps<T, FilterValueType, SelectValueType>);
|
|
9
27
|
private _filterFn;
|
|
28
|
+
/** Filter predicate. Reassignable. */
|
|
10
29
|
get filterFn(): FilterFn<T, FilterValueType> | undefined;
|
|
11
30
|
set filterFn(v: FilterFn<T, FilterValueType> | undefined);
|
|
12
31
|
}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { AccessorDef } from './AccessorDef.svelte.js';
|
|
2
2
|
import { AccessorType } from './AccessorType.js';
|
|
3
|
+
/**
|
|
4
|
+
* `TextInputDef<T, FilterValueType, SelectValueType>` fixes its
|
|
5
|
+
* declared value type at `string | null`. Cells reading
|
|
6
|
+
* `cell.getValue()` now see the narrower type instead of `unknown`.
|
|
7
|
+
*/
|
|
3
8
|
export class TextInputDef extends AccessorDef {
|
|
9
|
+
/** Inner discriminator literal. */
|
|
4
10
|
accessorType = AccessorType.Text;
|
|
5
11
|
constructor(props) {
|
|
6
12
|
super(props);
|
|
7
13
|
this._filterFn = $state(props.filterFn);
|
|
8
14
|
}
|
|
9
15
|
_filterFn;
|
|
16
|
+
/** Filter predicate. Reassignable. */
|
|
10
17
|
get filterFn() {
|
|
11
18
|
return this._filterFn;
|
|
12
19
|
}
|
|
@@ -1,16 +1,44 @@
|
|
|
1
1
|
import type { ColourSet } from '../../../../../../scss/colours.js';
|
|
2
2
|
import type { TableActionButton } from '../../TableActionButton.js';
|
|
3
3
|
import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
|
|
4
|
+
/**
|
|
5
|
+
* Construction-time props for `ActionsDef`. Omits `id` and `header`
|
|
6
|
+
* because the class generates a stable id via `generateUUID` and pins
|
|
7
|
+
* the header to `'Actions'`.
|
|
8
|
+
*
|
|
9
|
+
* Notes:
|
|
10
|
+
* - `isEnabled` defaults to `true` for every button if omitted.
|
|
11
|
+
* - `getColourSet` defaults to the button's own colour if omitted.
|
|
12
|
+
* - Both callbacks receive the button currently being rendered so a
|
|
13
|
+
* single `ActionsDef` can drive a row of differently-styled actions.
|
|
14
|
+
*/
|
|
4
15
|
export interface ActionsDefProps<T extends object, in FilterValueType, out FilterOptionsType = unknown> extends Omit<ColumnDefProps<T, FilterValueType, FilterOptionsType>, 'id' | 'header'> {
|
|
16
|
+
/** The buttons rendered for every row. */
|
|
5
17
|
actions: Array<TableActionButton<T>>;
|
|
18
|
+
/** Per-row, per-button enable predicate; assumed `true` if missing. */
|
|
6
19
|
isEnabled?: (item: T, index: number, button: TableActionButton<T>) => boolean | Promise<boolean>;
|
|
20
|
+
/** Per-row, per-button colour override. */
|
|
7
21
|
getColourSet?: (item: T, index: number, button: TableActionButton<T>) => ColourSet;
|
|
8
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* `ActionsDef<T, FilterValueType, FilterOptionsType>` is a column whose
|
|
25
|
+
* cells render a row of buttons. It is non-sortable, non-filterable,
|
|
26
|
+
* and pins its header to `'Actions'`.
|
|
27
|
+
*
|
|
28
|
+
* Note: the generated id uses `generateUUID()` (UUIDv7); two `ActionsDef`
|
|
29
|
+
* instances constructed in the same render pass will have distinct ids
|
|
30
|
+
* so consumers must keep a single instance per table.
|
|
31
|
+
*/
|
|
9
32
|
export declare class ActionsDef<T extends object, FilterValueType, out FilterOptionsType = unknown> extends ColumnDef<T, FilterValueType, FilterOptionsType> {
|
|
10
|
-
constructor(props: ActionsDefProps<T, FilterValueType>);
|
|
33
|
+
constructor(props: ActionsDefProps<T, FilterValueType, FilterOptionsType>);
|
|
34
|
+
/** Discriminator literal. */
|
|
11
35
|
readonly columnType: "Actions";
|
|
36
|
+
/** The buttons rendered for every row. */
|
|
12
37
|
readonly actions: Array<TableActionButton<T>>;
|
|
38
|
+
/** Per-row, per-button enable predicate. */
|
|
13
39
|
readonly isEnabled?: (item: T, index: number, button: TableActionButton<T>) => boolean | Promise<boolean>;
|
|
40
|
+
/** Per-row, per-button colour override. */
|
|
14
41
|
readonly getColourSet?: (item: T, index: number, button: TableActionButton<T>) => ColourSet;
|
|
42
|
+
/** Actions columns are never filtered. */
|
|
15
43
|
readonly filterFn: undefined;
|
|
16
44
|
}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
import { generateUUID } from '../../../../../../Helpers/Helpers.svelte.js';
|
|
1
|
+
import { generateUUID, syntheticColumnId } from '../../../../../../Helpers/Helpers.svelte.js';
|
|
2
2
|
import { ColumnType } from '../../ColumnType.js';
|
|
3
3
|
import { ColumnDef } from '../ColumnDef.svelte.js';
|
|
4
|
+
/**
|
|
5
|
+
* `ActionsDef<T, FilterValueType, FilterOptionsType>` is a column whose
|
|
6
|
+
* cells render a row of buttons. It is non-sortable, non-filterable,
|
|
7
|
+
* and pins its header to `'Actions'`.
|
|
8
|
+
*
|
|
9
|
+
* Note: the generated id uses `generateUUID()` (UUIDv7); two `ActionsDef`
|
|
10
|
+
* instances constructed in the same render pass will have distinct ids
|
|
11
|
+
* so consumers must keep a single instance per table.
|
|
12
|
+
*/
|
|
4
13
|
export class ActionsDef extends ColumnDef {
|
|
5
14
|
constructor(props) {
|
|
6
15
|
super({
|
|
7
|
-
id: `actions-${generateUUID()}
|
|
16
|
+
id: syntheticColumnId(`actions-${generateUUID()}`),
|
|
8
17
|
header: 'Actions',
|
|
9
18
|
allowSorting: false,
|
|
10
19
|
allowFiltering: false,
|
|
@@ -13,9 +22,14 @@ export class ActionsDef extends ColumnDef {
|
|
|
13
22
|
this.isEnabled = $derived(props.isEnabled);
|
|
14
23
|
this.getColourSet = $derived(props.getColourSet);
|
|
15
24
|
}
|
|
25
|
+
/** Discriminator literal. */
|
|
16
26
|
columnType = ColumnType.Actions;
|
|
27
|
+
/** The buttons rendered for every row. */
|
|
17
28
|
actions;
|
|
18
|
-
|
|
29
|
+
/** Per-row, per-button enable predicate. */
|
|
30
|
+
isEnabled;
|
|
31
|
+
/** Per-row, per-button colour override. */
|
|
19
32
|
getColourSet;
|
|
33
|
+
/** Actions columns are never filtered. */
|
|
20
34
|
filterFn = undefined;
|
|
21
35
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Pixels } from '../../../../../Types/Internal/Misc.js';
|
|
1
|
+
import type { ColumnId, Pixels } from '../../../../../Types/Internal/Misc.js';
|
|
2
2
|
import type { SelectOption } from '../../../../../Types/Internal/SelectOption.js';
|
|
3
3
|
import type { Snippet } from 'svelte';
|
|
4
4
|
import type { MemoryColumnIndex } from '../../Coordinates/ColumnIndices.js';
|
|
@@ -7,63 +7,174 @@ import type { FilterValueType } from '../../Filtering/FilterValueType.js';
|
|
|
7
7
|
import { ColumnType } from '../ColumnType.js';
|
|
8
8
|
import type { AccessorFn } from './AccessorFn.js';
|
|
9
9
|
import type { ValidationFn } from './ValidationFn.js';
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Construction-time props shared by every `ColumnDef` subclass. The
|
|
12
|
+
* generics mirror those of `ColumnDef` itself:
|
|
13
|
+
*
|
|
14
|
+
* - `T`: the row shape.
|
|
15
|
+
* - `FilterFnType` (contravariant): the value the column's `filterFn`
|
|
16
|
+
* receives at filter-evaluation time (e.g. `BoolFilterValueType` for
|
|
17
|
+
* `CheckboxDef`).
|
|
18
|
+
* - `OptionsType` (covariant): the value produced by `getOptions` for
|
|
19
|
+
* select-style filtering.
|
|
20
|
+
* - `TValue`: the declared row-value type; defaults to `unknown` so
|
|
21
|
+
* non-accessor columns do not need to thread it.
|
|
22
|
+
*/
|
|
23
|
+
export interface ColumnDefProps<T extends object, in FilterFnType, out OptionsType, TValue = unknown> {
|
|
24
|
+
/** Stable column identifier. Two-arm union: either a `string & keyof T`
|
|
25
|
+
* literal (accessor-backed column) or a {@link SyntheticColumnId} brand
|
|
26
|
+
* (pseudo column with no row binding, e.g. row-selection / expand /
|
|
27
|
+
* actions). `AccessorDef` subclasses narrow this to `string & keyof T`.
|
|
28
|
+
*
|
|
29
|
+
* Construct synthetic ids via the `syntheticColumnId(...)` helper
|
|
30
|
+
* (re-exported from `$lib`). */
|
|
31
|
+
id: ColumnId<T>;
|
|
32
|
+
/** Header content. A plain string renders as text; a Snippet renders
|
|
33
|
+
* arbitrary markup. Note: only string headers serialise cleanly via
|
|
34
|
+
* `toJSON` for preset storage. */
|
|
12
35
|
header: string | Snippet;
|
|
36
|
+
/** When true the cell, header, and filter row log per-render debug info. */
|
|
13
37
|
debug?: boolean;
|
|
38
|
+
/** Declared memory order. If omitted, the column is given index 0 and is
|
|
39
|
+
* expected to be reassigned by the surrounding context. */
|
|
14
40
|
index?: MemoryColumnIndex;
|
|
41
|
+
/** Whether this column may be filtered. Defaults to `true`. */
|
|
15
42
|
allowFiltering?: boolean;
|
|
43
|
+
/** Whether this column may be sorted. Defaults to `true`. */
|
|
16
44
|
allowSorting?: boolean;
|
|
45
|
+
/** Whether the column is hidden by default (still appears in the column picker). */
|
|
17
46
|
defaultHidden?: boolean;
|
|
47
|
+
/** Minimum width in pixels. Defaults to the column-min-width token. */
|
|
18
48
|
minSize?: Pixels;
|
|
49
|
+
/** Initial width in pixels. Defaults to `minSize`. */
|
|
19
50
|
width?: Pixels;
|
|
51
|
+
/** Async-flag predicate for whether a given cell is currently editable. */
|
|
20
52
|
isEditable?: (item: T, index: number) => boolean | Promise<boolean>;
|
|
53
|
+
/** Whether the column may be resized by the user. Defaults to `true`. */
|
|
21
54
|
resizable?: boolean;
|
|
55
|
+
/** Per-row validity predicate; surfaces in `ValidityDef` and inline UI. */
|
|
22
56
|
isValid?: ValidationFn<T>;
|
|
57
|
+
/** Predicate used during filtering. Subclasses redeclare it with a
|
|
58
|
+
* narrowed `FilterFnType`. */
|
|
23
59
|
filterFn?: FilterFn<T, FilterFnType>;
|
|
60
|
+
/** Sort comparator factory; receives the desc flag, returns a comparator. */
|
|
24
61
|
getSortingFn?: (desc: boolean) => (a: T, b: T) => 1 | -1 | 0;
|
|
62
|
+
/** Determines which filter input is rendered in the filter panel. */
|
|
25
63
|
filterValueType?: FilterValueType;
|
|
64
|
+
/** Required when `filterValueType === 'Select'`. Returns the option set
|
|
65
|
+
* rendered in the filter dropdown. */
|
|
26
66
|
getOptions?: () => Array<SelectOption<OptionsType>> | Promise<Array<SelectOption<OptionsType>>>;
|
|
27
|
-
|
|
67
|
+
/** Reads the cell value from a row. For `AccessorDef` subclasses this is
|
|
68
|
+
* required at the subclass layer. */
|
|
69
|
+
accessorFn?: AccessorFn<T, TValue>;
|
|
70
|
+
/** Renders the cell value as a string. Required for `SelectDef` /
|
|
71
|
+
* `QueryDef` where the option label is decoupled from the stored value. */
|
|
28
72
|
getDisplayValue?: (item: T, index: number) => string | null | Promise<string | null>;
|
|
73
|
+
/** Optional grouping label for this column's filter row in the
|
|
74
|
+
* advanced filter panel. See `BaseColumnOptions.filterGroup` for
|
|
75
|
+
* the consumer-facing description. */
|
|
76
|
+
filterGroup?: string;
|
|
29
77
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
78
|
+
/**
|
|
79
|
+
* `ColumnDef<T, FilterFnType, OptionsType, TValue>` is the abstract base
|
|
80
|
+
* for every Table column kind. Owns identification, layout (`minSize`,
|
|
81
|
+
* `width`, `resizable`), gating flags (`allowFiltering`, `allowSorting`,
|
|
82
|
+
* `defaultHidden`, `isEditable`), data accessors (`accessorFn`,
|
|
83
|
+
* `getDisplayValue`), and filtering / sorting hooks (`filterFn`,
|
|
84
|
+
* `filterValueType`, `getOptions`, `getSortingFn`).
|
|
85
|
+
*
|
|
86
|
+
* The `TValue` generic captures the declared row-value type for
|
|
87
|
+
* data-backed columns (e.g. `boolean` for `CheckboxDef`,
|
|
88
|
+
* `number | string | null` for `NumberInputDef`). Defaulting to `unknown`
|
|
89
|
+
* keeps every existing call site that uses three or fewer generic
|
|
90
|
+
* arguments unchanged.
|
|
91
|
+
*
|
|
92
|
+
* @remarks
|
|
93
|
+
*
|
|
94
|
+
* Several fields are `$derived(props.x)` so that a consumer who rebuilds
|
|
95
|
+
* the `ColumnDef` props object via `columnDefs = [...]` propagates the
|
|
96
|
+
* change reactively. This is a reactivity escape hatch rather than
|
|
97
|
+
* derived state; flattening to plain `readonly` fields is a per-Def
|
|
98
|
+
* optimisation tracked in the perf report.
|
|
99
|
+
*/
|
|
100
|
+
export declare abstract class ColumnDef<T extends object, in FilterFnType = never, out OptionsType = unknown, TValue = unknown> {
|
|
101
|
+
protected constructor(props: ColumnDefProps<T, FilterFnType, OptionsType, TValue>);
|
|
102
|
+
/** Stable column identifier. */
|
|
103
|
+
readonly id: ColumnId<T>;
|
|
104
|
+
/** When true, callers may log per-render debug info. */
|
|
33
105
|
debug: boolean;
|
|
34
106
|
private _index;
|
|
107
|
+
/** Declared memory order; reassigned by `TableContext` during pinning. */
|
|
35
108
|
get index(): MemoryColumnIndex;
|
|
36
109
|
set index(v: MemoryColumnIndex);
|
|
110
|
+
/** Discriminator literal narrowed by each subclass. */
|
|
37
111
|
abstract readonly columnType: ColumnType;
|
|
112
|
+
/** Whether the column is hidden by default. */
|
|
38
113
|
readonly defaultHidden: boolean;
|
|
114
|
+
/** Whether the column may be sorted. */
|
|
39
115
|
readonly allowSorting: boolean;
|
|
116
|
+
/** Whether the column may be filtered. */
|
|
40
117
|
readonly allowFiltering: boolean;
|
|
118
|
+
/** Per-row validity predicate. */
|
|
41
119
|
readonly isValid: ValidationFn<T> | undefined;
|
|
42
|
-
|
|
120
|
+
/** Reads the row value. Required at the `AccessorDef` subclass layer. */
|
|
121
|
+
readonly accessorFn: AccessorFn<T, TValue> | undefined;
|
|
122
|
+
/** Filter predicate. Each subclass narrows the generic parameter. */
|
|
43
123
|
abstract filterFn: FilterFn<T, FilterFnType> | undefined;
|
|
44
124
|
private _minSize;
|
|
125
|
+
/** Minimum width in pixels. */
|
|
45
126
|
get minSize(): Pixels;
|
|
46
127
|
set minSize(v: Pixels);
|
|
47
128
|
private _width;
|
|
129
|
+
/** Current width in pixels. Mutated by the resize handle. */
|
|
48
130
|
get width(): Pixels;
|
|
49
131
|
set width(v: Pixels);
|
|
50
132
|
private _isResizing;
|
|
133
|
+
/** Whether the resize handle is currently active. */
|
|
51
134
|
get isResizing(): boolean;
|
|
52
135
|
set isResizing(v: boolean);
|
|
53
|
-
private
|
|
54
|
-
|
|
55
|
-
|
|
136
|
+
private _userResized;
|
|
137
|
+
/**
|
|
138
|
+
* Whether the user has explicitly resized this column via the
|
|
139
|
+
* resize handle. Drives the grid-template-columns track strategy:
|
|
140
|
+
* non-resized columns use `minmax(width, 1fr)` so they flex to
|
|
141
|
+
* fill the table's horizontal space; resized columns use a fixed
|
|
142
|
+
* `${width}px` so dragging one column's handle does not
|
|
143
|
+
* redistribute the other resized columns' widths. When the total
|
|
144
|
+
* fixed width drops below the table's width, the still-flexing
|
|
145
|
+
* (non-resized) columns automatically expand to fill the gap.
|
|
146
|
+
*/
|
|
147
|
+
get userResized(): boolean;
|
|
148
|
+
set userResized(v: boolean);
|
|
56
149
|
private _filterValueType;
|
|
150
|
+
/** Filter input kind; drives the filter panel renderer. */
|
|
57
151
|
get filterValueType(): FilterValueType | undefined;
|
|
58
152
|
set filterValueType(v: FilterValueType | undefined);
|
|
153
|
+
/** Renders the cell value as a string for preset / accessibility paths.
|
|
154
|
+
* Required at the `SelectDef` / `QueryDef` subclass layer. */
|
|
59
155
|
readonly getDisplayValue: ((item: T, index: number) => string | null | Promise<string | null>) | undefined;
|
|
156
|
+
/** Preset-serialisation projection. Note that `header.toString()` returns
|
|
157
|
+
* `[Function]` for Snippet headers; preset-saving consumers should pass
|
|
158
|
+
* a string header. Tracked in the workorder. */
|
|
60
159
|
toJSON(): ColumnJSONRepresentation;
|
|
160
|
+
/** Sort comparator factory. */
|
|
61
161
|
readonly getSortingFn: ((desc: boolean) => (a: T, b: T) => 1 | -1 | 0) | undefined;
|
|
162
|
+
/** Async-flag predicate for cell editability. */
|
|
62
163
|
readonly isEditable: (item: T, index: number) => boolean | Promise<boolean>;
|
|
164
|
+
/** Whether the column may be resized by the user. */
|
|
63
165
|
readonly resizable: boolean;
|
|
166
|
+
/** Header content; string or Snippet. */
|
|
64
167
|
readonly header: string | Snippet;
|
|
168
|
+
/** Options provider for select-style filter inputs. */
|
|
65
169
|
readonly getOptions?: () => Array<SelectOption<OptionsType>> | Promise<Array<SelectOption<OptionsType>>>;
|
|
170
|
+
/** Optional grouping label for this column's filter row in the
|
|
171
|
+
* advanced filter panel. Columns sharing the same `filterGroup`
|
|
172
|
+
* string render under a single collapsible section in
|
|
173
|
+
* `FilterPanel.svelte`. `undefined` puts the column in the
|
|
174
|
+
* fallback "Other" group. */
|
|
175
|
+
readonly filterGroup: string | undefined;
|
|
66
176
|
}
|
|
177
|
+
/** Preset-storage shape produced by `ColumnDef.toJSON`. */
|
|
67
178
|
export interface ColumnJSONRepresentation {
|
|
68
179
|
columnType: ColumnType;
|
|
69
180
|
id: string;
|
|
@@ -1,8 +1,34 @@
|
|
|
1
|
+
import { memoiseRowAccessor } from '../../../../../Helpers/memoiseByRow.js';
|
|
1
2
|
import { ColumnType } from '../ColumnType.js';
|
|
3
|
+
/**
|
|
4
|
+
* `ColumnDef<T, FilterFnType, OptionsType, TValue>` is the abstract base
|
|
5
|
+
* for every Table column kind. Owns identification, layout (`minSize`,
|
|
6
|
+
* `width`, `resizable`), gating flags (`allowFiltering`, `allowSorting`,
|
|
7
|
+
* `defaultHidden`, `isEditable`), data accessors (`accessorFn`,
|
|
8
|
+
* `getDisplayValue`), and filtering / sorting hooks (`filterFn`,
|
|
9
|
+
* `filterValueType`, `getOptions`, `getSortingFn`).
|
|
10
|
+
*
|
|
11
|
+
* The `TValue` generic captures the declared row-value type for
|
|
12
|
+
* data-backed columns (e.g. `boolean` for `CheckboxDef`,
|
|
13
|
+
* `number | string | null` for `NumberInputDef`). Defaulting to `unknown`
|
|
14
|
+
* keeps every existing call site that uses three or fewer generic
|
|
15
|
+
* arguments unchanged.
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
*
|
|
19
|
+
* Several fields are `$derived(props.x)` so that a consumer who rebuilds
|
|
20
|
+
* the `ColumnDef` props object via `columnDefs = [...]` propagates the
|
|
21
|
+
* change reactively. This is a reactivity escape hatch rather than
|
|
22
|
+
* derived state; flattening to plain `readonly` fields is a per-Def
|
|
23
|
+
* optimisation tracked in the perf report.
|
|
24
|
+
*/
|
|
2
25
|
export class ColumnDef {
|
|
3
26
|
constructor(props) {
|
|
4
27
|
this.id = $derived(props.id);
|
|
5
|
-
|
|
28
|
+
// HACK: `index` defaults to 0 and is expected to be reassigned by the
|
|
29
|
+
// surrounding TableContext during column pinning calculation. Tracked
|
|
30
|
+
// in the ColumnDef workorder as a candidate for a required prop.
|
|
31
|
+
this._index = $state(props.index ?? 0);
|
|
6
32
|
this.defaultHidden = $derived(props.defaultHidden ?? false);
|
|
7
33
|
this.allowFiltering = $derived(props.allowFiltering ?? true);
|
|
8
34
|
this.allowSorting = $derived(props.allowSorting ?? true);
|
|
@@ -14,26 +40,41 @@ export class ColumnDef {
|
|
|
14
40
|
this.resizable = $derived(props.resizable ?? true);
|
|
15
41
|
this.header = $derived(props.header);
|
|
16
42
|
this._filterValueType = $derived(props.filterValueType);
|
|
17
|
-
|
|
43
|
+
// Row-keyed WeakMap cache so a 1000-row render invokes the user
|
|
44
|
+
// callback at most once per row. Reassigning props.getDisplayValue
|
|
45
|
+
// re-derives the wrapper and discards the stale cache automatically.
|
|
46
|
+
// Async returns: the Promise itself is cached, so repeated reads
|
|
47
|
+
// return the same Promise and Svelte's {#await} resolves once.
|
|
48
|
+
this.getDisplayValue = $derived(memoiseRowAccessor(props.getDisplayValue));
|
|
18
49
|
this.debug = $derived(props.debug ?? false);
|
|
19
50
|
this.getSortingFn = $derived(props.getSortingFn);
|
|
20
51
|
this.getOptions = $derived(props.getOptions);
|
|
52
|
+
this.filterGroup = $derived(props.filterGroup);
|
|
21
53
|
}
|
|
54
|
+
/** Stable column identifier. */
|
|
22
55
|
id;
|
|
56
|
+
/** When true, callers may log per-render debug info. */
|
|
23
57
|
debug;
|
|
24
58
|
_index;
|
|
59
|
+
/** Declared memory order; reassigned by `TableContext` during pinning. */
|
|
25
60
|
get index() {
|
|
26
61
|
return this._index;
|
|
27
62
|
}
|
|
28
63
|
set index(v) {
|
|
29
64
|
this._index = v;
|
|
30
65
|
}
|
|
66
|
+
/** Whether the column is hidden by default. */
|
|
31
67
|
defaultHidden;
|
|
68
|
+
/** Whether the column may be sorted. */
|
|
32
69
|
allowSorting;
|
|
70
|
+
/** Whether the column may be filtered. */
|
|
33
71
|
allowFiltering;
|
|
72
|
+
/** Per-row validity predicate. */
|
|
34
73
|
isValid;
|
|
74
|
+
/** Reads the row value. Required at the `AccessorDef` subclass layer. */
|
|
35
75
|
accessorFn;
|
|
36
76
|
_minSize;
|
|
77
|
+
/** Minimum width in pixels. */
|
|
37
78
|
get minSize() {
|
|
38
79
|
return this._minSize;
|
|
39
80
|
}
|
|
@@ -41,6 +82,7 @@ export class ColumnDef {
|
|
|
41
82
|
this._minSize = v;
|
|
42
83
|
}
|
|
43
84
|
_width;
|
|
85
|
+
/** Current width in pixels. Mutated by the resize handle. */
|
|
44
86
|
get width() {
|
|
45
87
|
return this._width;
|
|
46
88
|
}
|
|
@@ -48,6 +90,7 @@ export class ColumnDef {
|
|
|
48
90
|
this._width = v;
|
|
49
91
|
}
|
|
50
92
|
_isResizing = $state(false);
|
|
93
|
+
/** Whether the resize handle is currently active. */
|
|
51
94
|
get isResizing() {
|
|
52
95
|
return this._isResizing;
|
|
53
96
|
}
|
|
@@ -58,25 +101,37 @@ export class ColumnDef {
|
|
|
58
101
|
}
|
|
59
102
|
this._isResizing = v;
|
|
60
103
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
104
|
+
_userResized = $state(false);
|
|
105
|
+
/**
|
|
106
|
+
* Whether the user has explicitly resized this column via the
|
|
107
|
+
* resize handle. Drives the grid-template-columns track strategy:
|
|
108
|
+
* non-resized columns use `minmax(width, 1fr)` so they flex to
|
|
109
|
+
* fill the table's horizontal space; resized columns use a fixed
|
|
110
|
+
* `${width}px` so dragging one column's handle does not
|
|
111
|
+
* redistribute the other resized columns' widths. When the total
|
|
112
|
+
* fixed width drops below the table's width, the still-flexing
|
|
113
|
+
* (non-resized) columns automatically expand to fill the gap.
|
|
114
|
+
*/
|
|
115
|
+
get userResized() {
|
|
116
|
+
return this._userResized;
|
|
64
117
|
}
|
|
65
|
-
set
|
|
66
|
-
|
|
67
|
-
console.warn(`Column ${this.id} is not sortable`);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
this._visible = v;
|
|
118
|
+
set userResized(v) {
|
|
119
|
+
this._userResized = v;
|
|
71
120
|
}
|
|
72
121
|
_filterValueType;
|
|
122
|
+
/** Filter input kind; drives the filter panel renderer. */
|
|
73
123
|
get filterValueType() {
|
|
74
124
|
return this._filterValueType;
|
|
75
125
|
}
|
|
76
126
|
set filterValueType(v) {
|
|
77
127
|
this._filterValueType = v;
|
|
78
128
|
}
|
|
129
|
+
/** Renders the cell value as a string for preset / accessibility paths.
|
|
130
|
+
* Required at the `SelectDef` / `QueryDef` subclass layer. */
|
|
79
131
|
getDisplayValue;
|
|
132
|
+
/** Preset-serialisation projection. Note that `header.toString()` returns
|
|
133
|
+
* `[Function]` for Snippet headers; preset-saving consumers should pass
|
|
134
|
+
* a string header. Tracked in the workorder. */
|
|
80
135
|
toJSON() {
|
|
81
136
|
return {
|
|
82
137
|
columnType: this.columnType,
|
|
@@ -85,9 +140,20 @@ export class ColumnDef {
|
|
|
85
140
|
filterValueType: this.filterValueType,
|
|
86
141
|
};
|
|
87
142
|
}
|
|
143
|
+
/** Sort comparator factory. */
|
|
88
144
|
getSortingFn;
|
|
145
|
+
/** Async-flag predicate for cell editability. */
|
|
89
146
|
isEditable;
|
|
147
|
+
/** Whether the column may be resized by the user. */
|
|
90
148
|
resizable;
|
|
149
|
+
/** Header content; string or Snippet. */
|
|
91
150
|
header;
|
|
151
|
+
/** Options provider for select-style filter inputs. */
|
|
92
152
|
getOptions;
|
|
153
|
+
/** Optional grouping label for this column's filter row in the
|
|
154
|
+
* advanced filter panel. Columns sharing the same `filterGroup`
|
|
155
|
+
* string render under a single collapsible section in
|
|
156
|
+
* `FilterPanel.svelte`. `undefined` puts the column in the
|
|
157
|
+
* fallback "Other" group. */
|
|
158
|
+
filterGroup;
|
|
93
159
|
}
|