@lavalogic/scoria 0.37.44 → 0.37.45
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/README.md +58 -58
- package/dist/Components/AccordionGroup.svelte +46 -46
- package/dist/Components/AccordionGroupButton.svelte +76 -76
- package/dist/Components/Action.svelte +136 -136
- package/dist/Components/ActionProps.d.ts +2 -6
- package/dist/Components/AlertModal.svelte +195 -183
- package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +702 -702
- package/dist/Components/Base/BaseModal.svelte +125 -125
- package/dist/Components/Base/ContextWrapper.svelte +72 -72
- package/dist/Components/Base/Pagination.svelte +198 -198
- package/dist/Components/Base/Snippets.svelte +36 -36
- package/dist/Components/BigRadioSet.svelte +38 -38
- package/dist/Components/Bubble.svelte +101 -101
- package/dist/Components/Button.svelte +209 -209
- package/dist/Components/ButtonProps.d.ts +2 -6
- package/dist/Components/Checkbox.svelte +86 -86
- package/dist/Components/CollapsibleCard.svelte +78 -78
- package/dist/Components/Contexts/ContextMenu.svelte +164 -164
- package/dist/Components/Contexts/ContextMenuDivider.svelte +15 -15
- package/dist/Components/Contexts/ContextMenuOption.svelte +60 -60
- package/dist/Components/Contexts/Toast.svelte +83 -83
- package/dist/Components/Contexts/ToastContainer.svelte +65 -65
- package/dist/Components/Contexts/Tooltip.svelte +37 -37
- package/dist/Components/DataMatrixIcon.svelte +112 -112
- package/dist/Components/DataMatrixIconProps.d.ts +3 -13
- package/dist/Components/DateInput.svelte +148 -148
- package/dist/Components/DatePicker.svelte +300 -300
- package/dist/Components/DesktopModal.svelte +90 -90
- package/dist/Components/Dial.svelte +204 -204
- package/dist/Components/DialProps.d.ts +1 -18
- package/dist/Components/DimensionInput.svelte +170 -170
- package/dist/Components/DragMenu/DragMenuHolder.svelte +119 -119
- package/dist/Components/DragMenu/DraggableCard.svelte +77 -77
- package/dist/Components/FileCard.svelte +24 -24
- package/dist/Components/FileUpload.svelte +236 -236
- package/dist/Components/GridInput.svelte +196 -200
- package/dist/Components/GridInputSet.svelte +29 -29
- package/dist/Components/HorizontalTabGroup.svelte +82 -82
- package/dist/Components/HorizontalTabGroupButton.svelte +44 -44
- package/dist/Components/Icon.svelte +128 -128
- package/dist/Components/IconProps.d.ts +2 -7
- package/dist/Components/Icons.js +357 -357
- package/dist/Components/LoadingAnimation.svelte +29 -29
- package/dist/Components/LoadingModal.svelte +45 -45
- package/dist/Components/LoadingOverlay.svelte +25 -25
- package/dist/Components/LoadingOverlayProps.d.ts +3 -7
- package/dist/Components/Modal.svelte +258 -258
- package/dist/Components/ModalProps.d.ts +0 -3
- package/dist/Components/MultiSelect.svelte +220 -220
- package/dist/Components/MultiSelectCommonProps.d.ts +6 -17
- package/dist/Components/Nav/Nav.svelte +99 -99
- package/dist/Components/Nav/NavProps.d.ts +4 -11
- package/dist/Components/Nav/NavServiceMenuList.svelte +43 -43
- package/dist/Components/Nav/NavTab.svelte +62 -62
- package/dist/Components/Nav/ServiceMenuItem.svelte +100 -100
- package/dist/Components/Nav/ServicesNav.svelte +80 -80
- package/dist/Components/NumberInput.svelte +157 -157
- package/dist/Components/PageHeading.svelte +25 -25
- package/dist/Components/PasswordInput.svelte +88 -88
- package/dist/Components/Portal.svelte +36 -36
- package/dist/Components/ProgressBubble.svelte +107 -108
- package/dist/Components/ProgressBubbleProps.d.ts +3 -3
- package/dist/Components/QuerySelect.svelte +366 -366
- package/dist/Components/QuerySelectProps.d.ts +4 -14
- package/dist/Components/SingleSelect.svelte +250 -250
- package/dist/Components/SingleSelectCommonProps.d.ts +3 -19
- package/dist/Components/StepButton.svelte +70 -70
- package/dist/Components/StepForm.svelte +140 -140
- package/dist/Components/Switch.svelte +69 -69
- package/dist/Components/Table/ARCHITECTURE.md +298 -0
- package/dist/Components/Table/Body/QuickSearchCell.svelte +679 -694
- package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +51 -51
- package/dist/Components/Table/Body/Rows/ColumnList.svelte +59 -59
- package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +456 -478
- package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +79 -79
- package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +185 -188
- package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +124 -124
- package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +120 -120
- package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +230 -230
- package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +105 -105
- package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +12 -9
- package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.d.ts +5 -5
- package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +87 -87
- package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +126 -126
- package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +159 -159
- package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +246 -246
- package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.d.ts +4 -4
- package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +216 -216
- package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.d.ts +6 -5
- package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +7 -6
- package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +252 -257
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +179 -179
- package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +221 -229
- package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte.d.ts +11 -11
- package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +197 -197
- package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +190 -190
- package/dist/Components/Table/Body/Rows/TableRow.svelte +290 -290
- package/dist/Components/Table/Body/TableBody.svelte +155 -155
- package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +2 -3
- package/dist/Components/Table/ColumnFactory.svelte.d.ts +9 -11
- package/dist/Components/Table/ColumnFactory.svelte.js +101 -118
- package/dist/Components/Table/ColumnKindRegistry.d.ts +112 -0
- package/dist/Components/Table/ColumnKindRegistry.js +63 -0
- package/dist/Components/Table/Headers/HighlightAllHeader.svelte +41 -41
- package/dist/Components/Table/Headers/SelectAllHeader.svelte +30 -30
- package/dist/Components/Table/Headers/TableHead.svelte +415 -413
- package/dist/Components/Table/Misc/ColumnPanel.svelte +94 -94
- package/dist/Components/Table/Misc/ColumnPanelModal.svelte +112 -112
- package/dist/Components/Table/Misc/FilterInput.svelte +620 -644
- package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -12
- package/dist/Components/Table/Misc/FilterInputProps.d.ts +2 -2
- package/dist/Components/Table/Misc/FilterPanel.svelte +257 -257
- package/dist/Components/Table/Misc/FilterPanelModal.svelte +30 -30
- package/dist/Components/Table/Misc/SidePanel.svelte +35 -35
- package/dist/Components/Table/Misc/TableFooter.svelte +311 -311
- package/dist/Components/Table/Misc/TableHorizontalBar.svelte +125 -125
- package/dist/Components/Table/Misc/TableSidebar.svelte +157 -157
- package/dist/Components/Table/Misc/ToolboxPanel.svelte +100 -100
- package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +107 -107
- package/dist/Components/Table/NestedTable.svelte +130 -133
- package/dist/Components/Table/SubApis.svelte.d.ts +1 -5
- package/dist/Components/Table/SubApis.svelte.js +33 -32
- package/dist/Components/Table/Table.svelte +692 -745
- package/dist/Components/Table/TableHelpers.svelte.d.ts +6 -19
- package/dist/Components/Table/TableHelpers.svelte.js +6 -14
- package/dist/Components/Table/Types/Columns/Column.d.ts +2 -2
- package/dist/Components/Table/Types/Columns/DateColumn.d.ts +3 -3
- package/dist/Components/Table/Types/Columns/DateTableCell.d.ts +7 -7
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.d.ts +7 -8
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.js +4 -5
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +11 -14
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.js +3 -4
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.d.ts +7 -11
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.js +3 -3
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts +13 -18
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.js +4 -5
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +5 -5
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.js +2 -2
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +15 -12
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.js +4 -5
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.d.ts +8 -12
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.js +3 -3
- package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +6 -6
- package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.js +3 -3
- package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +49 -16
- package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.js +27 -5
- package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +7 -7
- package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +4 -4
- package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +5 -5
- package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.js +2 -2
- package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +5 -5
- package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.js +2 -2
- package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +5 -5
- package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.js +2 -2
- package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +5 -5
- package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.js +2 -2
- package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +11 -19
- package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.js +4 -8
- package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +6 -7
- package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.js +3 -4
- package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts +9 -9
- package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js +4 -4
- package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +5 -5
- package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +6 -6
- package/dist/Components/Table/Types/Columns/TableCell.d.ts +7 -6
- package/dist/Components/Table/Types/Context/ClipboardState.svelte.d.ts +98 -0
- package/dist/Components/Table/Types/Context/ClipboardState.svelte.js +290 -0
- package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.d.ts +17 -45
- package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.js +17 -45
- package/dist/Components/Table/Types/Context/FilteringState.svelte.d.ts +9 -20
- package/dist/Components/Table/Types/Context/FilteringState.svelte.js +9 -20
- package/dist/Components/Table/Types/Context/FocusState.svelte.d.ts +23 -42
- package/dist/Components/Table/Types/Context/FocusState.svelte.js +32 -59
- package/dist/Components/Table/Types/Context/ITable.d.ts +5 -8
- package/dist/Components/Table/Types/Context/PreferencesState.svelte.d.ts +29 -56
- package/dist/Components/Table/Types/Context/PreferencesState.svelte.js +28 -55
- package/dist/Components/Table/Types/Context/QueryValuesState.svelte.d.ts +50 -0
- package/dist/Components/Table/Types/Context/QueryValuesState.svelte.js +62 -0
- package/dist/Components/Table/Types/Context/SelectionState.svelte.d.ts +17 -28
- package/dist/Components/Table/Types/Context/SelectionState.svelte.js +17 -28
- package/dist/Components/Table/Types/Context/SortingState.svelte.d.ts +15 -29
- package/dist/Components/Table/Types/Context/SortingState.svelte.js +17 -31
- package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +212 -325
- package/dist/Components/Table/Types/Context/TableContext.svelte.js +292 -706
- package/dist/Components/Table/Types/Context/VirtualisationState.svelte.d.ts +62 -79
- package/dist/Components/Table/Types/Context/VirtualisationState.svelte.js +54 -73
- package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.d.ts +16 -27
- package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.js +16 -27
- package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +12 -15
- package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +15 -30
- package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +16 -28
- package/dist/Components/Table/Types/Header.d.ts +4 -4
- package/dist/Components/Table/Types/HeaderGroup.d.ts +5 -5
- package/dist/Components/Table/Types/Public/index.d.ts +2 -4
- package/dist/Components/Table/Types/Public/index.js +2 -4
- package/dist/Components/Table/clipboardEscape.d.ts +32 -0
- package/dist/Components/Table/clipboardEscape.js +45 -0
- package/dist/Components/Table/createTable.svelte.d.ts +8 -18
- package/dist/Components/Table/createTable.svelte.js +19 -47
- package/dist/Components/Test/TestContextConsumer.svelte +13 -13
- package/dist/Components/TextArea.svelte +130 -130
- package/dist/Components/TextInput.svelte +176 -176
- package/dist/Components/ThreeStateRadio.svelte +131 -131
- package/dist/Components/Touch/BoolCard.svelte +45 -45
- package/dist/Components/Touch/DateModal.svelte +209 -209
- package/dist/Components/Touch/EditCard.svelte +59 -59
- package/dist/Components/Touch/InfoCard.svelte +31 -31
- package/dist/Components/Touch/InfoTextCard.svelte +28 -28
- package/dist/Components/Touch/ModalExplanation.svelte +17 -17
- package/dist/Components/Touch/NumberKeyboard.svelte +225 -225
- package/dist/Components/Touch/NumberModal.svelte +79 -79
- package/dist/Components/Touch/PlusMinusCard.svelte +46 -46
- package/dist/Components/Touch/SelectModal.svelte +123 -123
- package/dist/Components/Touch/SummaryCard.svelte +93 -93
- package/dist/Components/Touch/TextAreaModal.svelte +95 -95
- package/dist/Components/Touch/TextModal.svelte +106 -106
- package/dist/Components/Touch/TouchCard.svelte +33 -33
- package/dist/Components/Touch/TouchModal.svelte +274 -274
- package/dist/Components/Touch/UtilityButton.svelte +109 -109
- package/dist/Components/VerticalTabGroup.svelte +79 -79
- package/dist/Components/VerticalTabGroupButton.svelte +58 -58
- package/dist/Contexts/ToastContext.svelte.js +3 -4
- package/dist/Helpers/Datamatrix.d.ts +19 -19
- package/dist/Helpers/Datamatrix.js +291 -291
- package/dist/Helpers/Helpers.svelte.d.ts +2 -4
- package/dist/Helpers/Helpers.svelte.js +2 -4
- package/dist/Helpers/dropdownPortal.d.ts +26 -41
- package/dist/Helpers/dropdownPortal.js +62 -116
- package/dist/Types/Examples/ExampleModal.svelte +35 -35
- package/dist/index.d.ts +0 -1
- package/dist/scss/_basics.scss +12 -12
- package/dist/scss/_colours.scss +134 -134
- package/dist/scss/_mixins.scss +3348 -3360
- package/dist/scss/_motion.scss +57 -57
- package/dist/scss/_sizing.scss +85 -85
- package/dist/scss/_transitions.scss +8 -8
- package/package.json +2 -1
|
@@ -5,11 +5,6 @@ import type { CustomFilter } from './Types/Filtering/CustomFilter.js';
|
|
|
5
5
|
import type { RefWrapper } from '../../Types/Internal/RefWrapper.js';
|
|
6
6
|
/**
|
|
7
7
|
* Argument object passed to {@link createLocalTable}.
|
|
8
|
-
*
|
|
9
|
-
* Lives under `Components/Table/` because it references Table-internal types
|
|
10
|
-
* ({@link DefsWrapper}, {@link Primitive}) that callers outside the Table
|
|
11
|
-
* subtree should not need to know about. Re-exported from the library entry
|
|
12
|
-
* point for public consumption.
|
|
13
8
|
*/
|
|
14
9
|
export interface ICreateTableArgs<T extends object, RowIdType extends Primitive> {
|
|
15
10
|
name: string;
|
|
@@ -22,24 +17,16 @@ export interface ICreateTableArgs<T extends object, RowIdType extends Primitive>
|
|
|
22
17
|
* Convenience factory that wires up a {@link TableContext} backed by a
|
|
23
18
|
* {@link LocalTableDataRepository} (in-memory, `$state`-backed data).
|
|
24
19
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* helpers
|
|
28
|
-
* subtree into their dependency graph and broke tree-shaking. Moving the
|
|
29
|
-
* factory here breaks the structural cycle
|
|
30
|
-
* `Helpers <-> TableContext <-> RowSelectionDef` while keeping the public
|
|
31
|
-
* `@lavalogic/scoria` surface unchanged via re-export from `src/lib/index.ts`.
|
|
20
|
+
* Lives in this file (rather than the generic `Helpers.svelte.ts`) to avoid
|
|
21
|
+
* a structural cycle between `Helpers` and the Table subtree and to keep
|
|
22
|
+
* unrelated helpers tree-shakeable. Re-exported from `src/lib/index.ts`.
|
|
32
23
|
*/
|
|
33
24
|
export declare function createLocalTable<T extends object, RowIdType extends Primitive>(args: ICreateTableArgs<T, RowIdType>): TableContext<T, RowIdType>;
|
|
34
25
|
/**
|
|
35
26
|
* Typeguard narrowing a {@link CustomFilter} to a Select-typed filter that
|
|
36
|
-
* carries a non-null `query` function.
|
|
37
|
-
*
|
|
38
|
-
* filters
|
|
39
|
-
*
|
|
40
|
-
* Belongs under `Components/Table/` because it is meaningful only for the
|
|
41
|
-
* {@link CustomFilter}/{@link CustomFilterType} discriminated union owned by
|
|
42
|
-
* the Table subtree.
|
|
27
|
+
* carries a non-null `query` function. Used by column definitions and filter
|
|
28
|
+
* panels to differentiate query-driven select filters from value-list select
|
|
29
|
+
* filters before invoking the async loader.
|
|
43
30
|
*/
|
|
44
31
|
export declare function hasQuery<FilterValueType>(customFilter: CustomFilter<FilterValueType> | undefined): customFilter is CustomFilter<FilterValueType> & Required<Pick<CustomFilter<FilterValueType>, 'query'>>;
|
|
45
32
|
/**
|
|
@@ -5,13 +5,9 @@ import { CustomFilterType } from './Types/Filtering/CustomFilterType.js';
|
|
|
5
5
|
* Convenience factory that wires up a {@link TableContext} backed by a
|
|
6
6
|
* {@link LocalTableDataRepository} (in-memory, `$state`-backed data).
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* helpers
|
|
11
|
-
* subtree into their dependency graph and broke tree-shaking. Moving the
|
|
12
|
-
* factory here breaks the structural cycle
|
|
13
|
-
* `Helpers <-> TableContext <-> RowSelectionDef` while keeping the public
|
|
14
|
-
* `@lavalogic/scoria` surface unchanged via re-export from `src/lib/index.ts`.
|
|
8
|
+
* Lives in this file (rather than the generic `Helpers.svelte.ts`) to avoid
|
|
9
|
+
* a structural cycle between `Helpers` and the Table subtree and to keep
|
|
10
|
+
* unrelated helpers tree-shakeable. Re-exported from `src/lib/index.ts`.
|
|
15
11
|
*/
|
|
16
12
|
export function createLocalTable(args) {
|
|
17
13
|
const localRepo = new LocalTableDataRepository(args.name, args.data, args.getUserId);
|
|
@@ -22,13 +18,9 @@ export function createLocalTable(args) {
|
|
|
22
18
|
}
|
|
23
19
|
/**
|
|
24
20
|
* Typeguard narrowing a {@link CustomFilter} to a Select-typed filter that
|
|
25
|
-
* carries a non-null `query` function.
|
|
26
|
-
*
|
|
27
|
-
* filters
|
|
28
|
-
*
|
|
29
|
-
* Belongs under `Components/Table/` because it is meaningful only for the
|
|
30
|
-
* {@link CustomFilter}/{@link CustomFilterType} discriminated union owned by
|
|
31
|
-
* the Table subtree.
|
|
21
|
+
* carries a non-null `query` function. Used by column definitions and filter
|
|
22
|
+
* panels to differentiate query-driven select filters from value-list select
|
|
23
|
+
* filters before invoking the async loader.
|
|
32
24
|
*/
|
|
33
25
|
export function hasQuery(customFilter) {
|
|
34
26
|
return (!!customFilter &&
|
|
@@ -9,9 +9,9 @@ import type { ColumnDef } from './Definitions/ColumnDef.svelte.js';
|
|
|
9
9
|
* properties of `T`. Tightening this to a union of accessor-keys and
|
|
10
10
|
* synthetic-prefixed brands is deferred (see workorder `ColumnDef` finding 1).
|
|
11
11
|
*/
|
|
12
|
-
export interface Column<T extends object, in FilterFnType = never
|
|
12
|
+
export interface Column<T extends object, in FilterFnType = never> {
|
|
13
13
|
id: string;
|
|
14
|
-
columnDef: ColumnDef<T, FilterFnType
|
|
14
|
+
columnDef: ColumnDef<T, FilterFnType>;
|
|
15
15
|
getCanSort: () => boolean;
|
|
16
16
|
getToggleSortingHandler: () => ((e: MouseEvent) => void) | undefined;
|
|
17
17
|
getIsSorted: () => 'asc' | 'desc' | 'none';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { DateInputDef } from './Definitions/Accessors/DateInputDef.svelte.js';
|
|
2
2
|
/**
|
|
3
3
|
* Narrowed `Column<T>` whose `columnDef` is a `DateInputDef`. Currently
|
|
4
|
-
* declares its own shape rather than `extends Column<T, F
|
|
4
|
+
* declares its own shape rather than `extends Column<T, F>`; collapsing to
|
|
5
5
|
* an extension is deferred (see workorder Types-Columns finding 10) because
|
|
6
6
|
* the interface compatibility shift is consumer-facing.
|
|
7
7
|
*/
|
|
8
|
-
export interface DateColumn<T extends object, in FilterValueType
|
|
8
|
+
export interface DateColumn<T extends object, in FilterValueType> {
|
|
9
9
|
id: string;
|
|
10
|
-
columnDef: DateInputDef<T, FilterValueType
|
|
10
|
+
columnDef: DateInputDef<T, FilterValueType>;
|
|
11
11
|
getCanSort: () => boolean;
|
|
12
12
|
getToggleSortingHandler: () => (e: MouseEvent) => void;
|
|
13
13
|
getIsSorted: () => 'asc' | 'desc' | 'none';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { Row } from '../Context/Row.js';
|
|
2
2
|
import type { DateColumn } from './DateColumn.js';
|
|
3
3
|
/**
|
|
4
|
-
* Narrowed `TableCell<T>` for date columns. `getValue`
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* Narrowed `TableCell<T>` for date columns. `getValue` stays `unknown`
|
|
5
|
+
* because the canonical signature on `TableCell<T>` is `unknown`;
|
|
6
|
+
* tightening to `Date | null | undefined | Promise<Date | null |
|
|
7
|
+
* undefined>` happens once `TableCell.getValue` is tightened
|
|
8
|
+
* library-wide.
|
|
9
9
|
*/
|
|
10
|
-
export interface DateTableCell<T extends object, in FilterValueType
|
|
11
|
-
column: DateColumn<T, FilterValueType
|
|
10
|
+
export interface DateTableCell<T extends object, in FilterValueType> {
|
|
11
|
+
column: DateColumn<T, FilterValueType>;
|
|
12
12
|
row: Row<T>;
|
|
13
13
|
id: string;
|
|
14
14
|
getValue: () => unknown;
|
|
@@ -9,15 +9,14 @@ import type { AccessorType } from './AccessorType.js';
|
|
|
9
9
|
* (`CheckboxDef`, `NumberInputDef`, etc.) can pin it to their natural
|
|
10
10
|
* runtime shape.
|
|
11
11
|
*/
|
|
12
|
-
export interface AccessorDefProps<T extends object, in FilterValueType,
|
|
12
|
+
export interface AccessorDefProps<T extends object, in FilterValueType, TValue = unknown> extends ColumnDefProps<T, FilterValueType, TValue> {
|
|
13
13
|
readonly id: string & keyof T;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
|
-
* `AccessorDef<T, FilterValueType,
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* `Date`, `Select`, `Query`).
|
|
16
|
+
* `AccessorDef<T, FilterValueType, TValue>` is the base for every
|
|
17
|
+
* data-backed column definition. Discriminates as `ColumnType.Accessor`
|
|
18
|
+
* and exposes a further `accessorType` literal that each leaf subclass
|
|
19
|
+
* narrows (`Checkbox`, `Number`, `Text`, `Date`, `Select`, `Query`).
|
|
21
20
|
*
|
|
22
21
|
* The `TValue` generic is threaded down from `ColumnDef`; subclasses
|
|
23
22
|
* such as `CheckboxDef`, `NumberInputDef`, `TextInputDef`, and
|
|
@@ -25,8 +24,8 @@ export interface AccessorDefProps<T extends object, in FilterValueType, out Filt
|
|
|
25
24
|
* matching `TableCell.getValue()` returns the correct narrow type
|
|
26
25
|
* rather than `unknown`.
|
|
27
26
|
*/
|
|
28
|
-
export declare abstract class AccessorDef<T extends object, in FilterValueType,
|
|
29
|
-
constructor(props: AccessorDefProps<T, FilterValueType,
|
|
27
|
+
export declare abstract class AccessorDef<T extends object, in FilterValueType, TValue = unknown> extends ColumnDef<T, FilterValueType, TValue> {
|
|
28
|
+
constructor(props: AccessorDefProps<T, FilterValueType, TValue>);
|
|
30
29
|
/** Discriminator literal pinning every `AccessorDef` subclass to the
|
|
31
30
|
* `Accessor` column kind. Subclasses further narrow via `accessorType`. */
|
|
32
31
|
readonly columnType: "Accessor";
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { ColumnType } from '../../ColumnType.js';
|
|
2
2
|
import { ColumnDef } from '../ColumnDef.svelte.js';
|
|
3
3
|
/**
|
|
4
|
-
* `AccessorDef<T, FilterValueType,
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* `Date`, `Select`, `Query`).
|
|
4
|
+
* `AccessorDef<T, FilterValueType, TValue>` is the base for every
|
|
5
|
+
* data-backed column definition. Discriminates as `ColumnType.Accessor`
|
|
6
|
+
* and exposes a further `accessorType` literal that each leaf subclass
|
|
7
|
+
* narrows (`Checkbox`, `Number`, `Text`, `Date`, `Select`, `Query`).
|
|
9
8
|
*
|
|
10
9
|
* The `TValue` generic is threaded down from `ColumnDef`; subclasses
|
|
11
10
|
* such as `CheckboxDef`, `NumberInputDef`, `TextInputDef`, and
|
|
@@ -4,26 +4,23 @@ import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
|
4
4
|
* Construction-time props for `CheckboxDef`. The `TValue` generic is
|
|
5
5
|
* pinned to `boolean` so `cell.getValue()` returns the narrow type.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* -
|
|
12
|
-
* exists for symmetry and so future checkbox-specific props can be
|
|
13
|
-
* added without a breaking-change rename.
|
|
7
|
+
* The `FilterValueType` generic is unused by the checkbox UI today
|
|
8
|
+
* (the column has no filter input) but retained so the shape parallels
|
|
9
|
+
* every other `AccessorDef` subclass. The base interface is extended
|
|
10
|
+
* without adding fields; the marker exists for symmetry and so future
|
|
11
|
+
* checkbox-specific props can be added without a breaking-change rename.
|
|
14
12
|
*/
|
|
15
|
-
export interface CheckboxDefProps<T extends object, in FilterValueType = BoolFilterValueType
|
|
13
|
+
export interface CheckboxDefProps<T extends object, in FilterValueType = BoolFilterValueType> extends AccessorDefProps<T, FilterValueType, boolean> {
|
|
16
14
|
}
|
|
17
15
|
/**
|
|
18
|
-
* `CheckboxDef<T, FilterValueType
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* layer.
|
|
16
|
+
* `CheckboxDef<T, FilterValueType>` is an `AccessorDef` whose declared
|
|
17
|
+
* value is a `boolean`. The fixed `TValue = boolean` narrows
|
|
18
|
+
* `cell.getValue()` to `boolean | Promise<boolean>` at the cell layer.
|
|
22
19
|
*/
|
|
23
|
-
export declare class CheckboxDef<T extends object, in FilterValueType = BoolFilterValueType
|
|
20
|
+
export declare class CheckboxDef<T extends object, in FilterValueType = BoolFilterValueType> extends AccessorDef<T, FilterValueType, boolean> {
|
|
24
21
|
/** Inner discriminator literal. */
|
|
25
22
|
readonly accessorType: "Checkbox";
|
|
26
|
-
constructor(props: CheckboxDefProps<T, FilterValueType
|
|
23
|
+
constructor(props: CheckboxDefProps<T, FilterValueType>);
|
|
27
24
|
private _filterFn;
|
|
28
25
|
/** Filter predicate. Reassignable so consumers can swap the filter
|
|
29
26
|
* function post-construction. */
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { AccessorDef } from './AccessorDef.svelte.js';
|
|
2
2
|
import { AccessorType } from './AccessorType.js';
|
|
3
3
|
/**
|
|
4
|
-
* `CheckboxDef<T, FilterValueType
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* layer.
|
|
4
|
+
* `CheckboxDef<T, FilterValueType>` is an `AccessorDef` whose declared
|
|
5
|
+
* value is a `boolean`. The fixed `TValue = boolean` narrows
|
|
6
|
+
* `cell.getValue()` to `boolean | Promise<boolean>` at the cell layer.
|
|
8
7
|
*/
|
|
9
8
|
export class CheckboxDef extends AccessorDef {
|
|
10
9
|
/** Inner discriminator literal. */
|
|
@@ -4,25 +4,21 @@ import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
|
4
4
|
* Construction-time props for `DateInputDef`. The `TValue` generic is
|
|
5
5
|
* pinned to `Date | null`.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
* - `showTime` controls whether the input renders a time picker.
|
|
9
|
-
* - The third generic (`SelectValueType`) is unused by the date input
|
|
10
|
-
* today but retained so the shape parallels every other
|
|
11
|
-
* `AccessorDef` subclass.
|
|
7
|
+
* `showTime` controls whether the input renders a time picker.
|
|
12
8
|
*/
|
|
13
|
-
export interface DateInputDefProps<T extends object, in FilterValueType = DateFilterValueType
|
|
9
|
+
export interface DateInputDefProps<T extends object, in FilterValueType = DateFilterValueType> extends AccessorDefProps<T, FilterValueType, Date | null> {
|
|
14
10
|
/** Whether to render a time picker alongside the date picker. Defaults to false. */
|
|
15
11
|
showTime?: boolean;
|
|
16
12
|
}
|
|
17
13
|
/**
|
|
18
|
-
* `DateInputDef<T, FilterValueType
|
|
19
|
-
*
|
|
20
|
-
*
|
|
14
|
+
* `DateInputDef<T, FilterValueType>` fixes its declared value type at
|
|
15
|
+
* `Date | null` so cell consumers can drop the bespoke cast on
|
|
16
|
+
* `cell.getValue()`.
|
|
21
17
|
*/
|
|
22
|
-
export declare class DateInputDef<T extends object, in FilterValueType = DateFilterValueType
|
|
18
|
+
export declare class DateInputDef<T extends object, in FilterValueType = DateFilterValueType> extends AccessorDef<T, FilterValueType, Date | null> {
|
|
23
19
|
/** Inner discriminator literal. */
|
|
24
20
|
readonly accessorType: "Date";
|
|
25
|
-
constructor(props: DateInputDefProps<T, FilterValueType
|
|
21
|
+
constructor(props: DateInputDefProps<T, FilterValueType>);
|
|
26
22
|
private _filterFn;
|
|
27
23
|
/** Filter predicate. Reassignable. */
|
|
28
24
|
get filterFn(): FilterFn<T, FilterValueType> | undefined;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { AccessorDef } from './AccessorDef.svelte.js';
|
|
2
2
|
import { AccessorType } from './AccessorType.js';
|
|
3
3
|
/**
|
|
4
|
-
* `DateInputDef<T, FilterValueType
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* `DateInputDef<T, FilterValueType>` fixes its declared value type at
|
|
5
|
+
* `Date | null` so cell consumers can drop the bespoke cast on
|
|
6
|
+
* `cell.getValue()`.
|
|
7
7
|
*/
|
|
8
8
|
export class DateInputDef extends AccessorDef {
|
|
9
9
|
/** Inner discriminator literal. */
|
package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts
CHANGED
|
@@ -1,35 +1,30 @@
|
|
|
1
1
|
import type { FilterFn, NumberFilterValueType } from '../../../Filtering/FilterFn.js';
|
|
2
2
|
import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
3
3
|
/**
|
|
4
|
-
* Construction-time props for `NumberInputDef`. The `TValue` generic
|
|
5
|
-
* pinned to `number | string | null` -
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Construction-time props for `NumberInputDef`. The `TValue` generic
|
|
5
|
+
* is pinned to `number | string | null` - cells accept a `string`
|
|
6
|
+
* that the input widget parses at render time, and `null` means "no
|
|
7
|
+
* value".
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* widget clamps at render time. Tracked in the workorder.
|
|
12
|
-
* - The third generic (now `OptionsValueType`, previously misspelled
|
|
13
|
-
* `OptionssValueType`) is unused by the number input today but
|
|
14
|
-
* retained so the shape parallels every other `AccessorDef` subclass.
|
|
9
|
+
* `min` / `max` are not enforced at the definition layer; the input
|
|
10
|
+
* widget clamps at render time.
|
|
15
11
|
*/
|
|
16
|
-
export interface NumberInputDefProps<T extends object, in FilterValueType = NumberFilterValueType
|
|
12
|
+
export interface NumberInputDefProps<T extends object, in FilterValueType = NumberFilterValueType> extends AccessorDefProps<T, FilterValueType, number | string | null> {
|
|
17
13
|
/** Minimum value accepted by the input widget. */
|
|
18
14
|
min: number;
|
|
19
15
|
/** Maximum value accepted by the input widget. */
|
|
20
16
|
max: number;
|
|
21
17
|
}
|
|
22
18
|
/**
|
|
23
|
-
* `NumberInputDef<T, FilterValueType
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* consumers can drop the `as number` cast on `cell.getValue()`.
|
|
19
|
+
* `NumberInputDef<T, FilterValueType>` fixes its declared value type
|
|
20
|
+
* at `number | string | null` so cells can carry a `string` that the
|
|
21
|
+
* input parses at render time, or `null` for "no value". Cell
|
|
22
|
+
* consumers do not need an `as number` cast on `cell.getValue()`.
|
|
28
23
|
*/
|
|
29
|
-
export declare class NumberInputDef<T extends object, in FilterValueType = NumberFilterValueType
|
|
24
|
+
export declare class NumberInputDef<T extends object, in FilterValueType = NumberFilterValueType> extends AccessorDef<T, FilterValueType, number | string | null> {
|
|
30
25
|
/** Inner discriminator literal. */
|
|
31
26
|
readonly accessorType: "Number";
|
|
32
|
-
constructor(props: NumberInputDefProps<T, FilterValueType
|
|
27
|
+
constructor(props: NumberInputDefProps<T, FilterValueType>);
|
|
33
28
|
/** Minimum value accepted by the input widget. */
|
|
34
29
|
readonly min: number;
|
|
35
30
|
/** Maximum value accepted by the input widget. */
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { AccessorDef } from './AccessorDef.svelte.js';
|
|
2
2
|
import { AccessorType } from './AccessorType.js';
|
|
3
3
|
/**
|
|
4
|
-
* `NumberInputDef<T, FilterValueType
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* consumers can drop the `as number` cast on `cell.getValue()`.
|
|
4
|
+
* `NumberInputDef<T, FilterValueType>` fixes its declared value type
|
|
5
|
+
* at `number | string | null` so cells can carry a `string` that the
|
|
6
|
+
* input parses at render time, or `null` for "no value". Cell
|
|
7
|
+
* consumers do not need an `as number` cast on `cell.getValue()`.
|
|
9
8
|
*/
|
|
10
9
|
export class NumberInputDef extends AccessorDef {
|
|
11
10
|
/** Inner discriminator literal. */
|
|
@@ -11,7 +11,7 @@ import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
|
11
11
|
* Implementations forwarding the query string to a backend MUST escape
|
|
12
12
|
* or parameterise it before use. Documented in the workorder.
|
|
13
13
|
*/
|
|
14
|
-
export interface QueryDefProps<T extends object, in FilterValueType = unknown
|
|
14
|
+
export interface QueryDefProps<T extends object, in FilterValueType = unknown> extends AccessorDefProps<T, FilterValueType> {
|
|
15
15
|
/** Async option provider. Receives raw user input from the search box;
|
|
16
16
|
* implementations forwarding to a backend must escape the query. */
|
|
17
17
|
query: (queryString: string, item: T, index: number) => Promise<Array<SelectOption<unknown>>>;
|
|
@@ -21,13 +21,13 @@ export interface QueryDefProps<T extends object, in FilterValueType = unknown, o
|
|
|
21
21
|
clearable?: boolean;
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
|
-
* `QueryDef<T, FilterValueType
|
|
25
|
-
*
|
|
24
|
+
* `QueryDef<T, FilterValueType>` is an `AccessorDef` backed by an
|
|
25
|
+
* asynchronous option provider (typeahead).
|
|
26
26
|
*/
|
|
27
|
-
export declare class QueryDef<T extends object, FilterValueType = unknown
|
|
27
|
+
export declare class QueryDef<T extends object, in FilterValueType = unknown> extends AccessorDef<T, FilterValueType> {
|
|
28
28
|
/** Inner discriminator literal. */
|
|
29
29
|
readonly accessorType: "Query";
|
|
30
|
-
constructor(props: QueryDefProps<T, FilterValueType
|
|
30
|
+
constructor(props: QueryDefProps<T, FilterValueType>);
|
|
31
31
|
/** Filter predicate. Bound at construction. */
|
|
32
32
|
readonly filterFn: FilterFn<T, FilterValueType> | undefined;
|
|
33
33
|
/** Required at the subclass layer. */
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AccessorDef } from './AccessorDef.svelte.js';
|
|
2
2
|
import { AccessorType } from './AccessorType.js';
|
|
3
3
|
/**
|
|
4
|
-
* `QueryDef<T, FilterValueType
|
|
5
|
-
*
|
|
4
|
+
* `QueryDef<T, FilterValueType>` is an `AccessorDef` backed by an
|
|
5
|
+
* asynchronous option provider (typeahead).
|
|
6
6
|
*/
|
|
7
7
|
export class QueryDef extends AccessorDef {
|
|
8
8
|
/** Inner discriminator literal. */
|
|
@@ -7,33 +7,36 @@ import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
|
7
7
|
* required - the option label is decoupled from the stored value and
|
|
8
8
|
* the dropdown cannot render without an option set.
|
|
9
9
|
*
|
|
10
|
+
* The single `FilterValueType` generic doubles as both the filter
|
|
11
|
+
* value type and the option value type - the audit found these are
|
|
12
|
+
* always set to the same type at every factory call site.
|
|
13
|
+
*
|
|
10
14
|
* Notes:
|
|
11
15
|
* - `getSpecificOptions` returns a per-row option set; it is invoked
|
|
12
16
|
* per cell per render with no caching (tracked in perf workorder).
|
|
13
17
|
* - `optional` controls whether the cell may be cleared; `clearable`
|
|
14
18
|
* controls whether the widget exposes a clear affordance.
|
|
15
19
|
*/
|
|
16
|
-
export interface SelectDefProps<T extends object,
|
|
20
|
+
export interface SelectDefProps<T extends object, FilterValueType> extends AccessorDefProps<T, FilterValueType> {
|
|
17
21
|
/** Required. Returns the global option set for the dropdown. */
|
|
18
|
-
getOptions: () => Array<SelectOption<
|
|
22
|
+
getOptions: () => Array<SelectOption<FilterValueType>> | Promise<Array<SelectOption<FilterValueType>>>;
|
|
19
23
|
/** Required. Maps the stored value to a display label. */
|
|
20
24
|
getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
|
|
21
25
|
/** Optional per-row option override. Invoked per cell per render. */
|
|
22
|
-
getSpecificOptions?: (item: T, index: number) => Array<SelectOption<
|
|
26
|
+
getSpecificOptions?: (item: T, index: number) => Array<SelectOption<FilterValueType>> | Promise<Array<SelectOption<FilterValueType>>>;
|
|
23
27
|
/** Whether the cell may be cleared. Defaults to false. */
|
|
24
28
|
optional?: boolean;
|
|
25
29
|
/** Whether the widget exposes a clear affordance. Defaults to true. */
|
|
26
30
|
clearable?: boolean;
|
|
27
31
|
}
|
|
28
32
|
/**
|
|
29
|
-
* `SelectDef<T, FilterValueType
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* subclass layer.
|
|
33
|
+
* `SelectDef<T, FilterValueType>` is an `AccessorDef` backed by a
|
|
34
|
+
* finite option set. The `declare`-redeclaration of `getDisplayValue`
|
|
35
|
+
* / `getOptions` below narrows the optional base contract to required:
|
|
36
|
+
* callers can rely on both being defined at the subclass layer.
|
|
34
37
|
*/
|
|
35
|
-
export declare class SelectDef<T extends object,
|
|
36
|
-
constructor(props: SelectDefProps<T, FilterValueType
|
|
38
|
+
export declare class SelectDef<T extends object, FilterValueType> extends AccessorDef<T, FilterValueType> {
|
|
39
|
+
constructor(props: SelectDefProps<T, FilterValueType>);
|
|
37
40
|
/** Inner discriminator literal. */
|
|
38
41
|
readonly accessorType: "Select";
|
|
39
42
|
private _filterFn;
|
|
@@ -45,9 +48,9 @@ export declare class SelectDef<T extends object, in FilterValueType, out SelectV
|
|
|
45
48
|
/** Whether the widget exposes a clear affordance. */
|
|
46
49
|
readonly clearable: boolean;
|
|
47
50
|
/** Per-row option override; invoked per cell per render. */
|
|
48
|
-
readonly getSpecificOptions?: (item: T, index: number) => Array<SelectOption<
|
|
51
|
+
readonly getSpecificOptions?: (item: T, index: number) => Array<SelectOption<FilterValueType>> | Promise<Array<SelectOption<FilterValueType>>>;
|
|
49
52
|
/** Required at the subclass layer. */
|
|
50
53
|
getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
|
|
51
54
|
/** Required at the subclass layer. */
|
|
52
|
-
getOptions: () => Array<SelectOption<
|
|
55
|
+
getOptions: () => Array<SelectOption<FilterValueType>> | Promise<Array<SelectOption<FilterValueType>>>;
|
|
53
56
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { AccessorDef } from './AccessorDef.svelte.js';
|
|
2
2
|
import { AccessorType } from './AccessorType.js';
|
|
3
3
|
/**
|
|
4
|
-
* `SelectDef<T, FilterValueType
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* subclass layer.
|
|
4
|
+
* `SelectDef<T, FilterValueType>` is an `AccessorDef` backed by a
|
|
5
|
+
* finite option set. The `declare`-redeclaration of `getDisplayValue`
|
|
6
|
+
* / `getOptions` below narrows the optional base contract to required:
|
|
7
|
+
* callers can rely on both being defined at the subclass layer.
|
|
9
8
|
*/
|
|
10
9
|
export class SelectDef extends AccessorDef {
|
|
11
10
|
constructor(props) {
|
|
@@ -4,26 +4,22 @@ import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
|
|
|
4
4
|
* Construction-time props for `TextInputDef`. The `TValue` generic is
|
|
5
5
|
* pinned to `string | null`.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
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.
|
|
7
|
+
* `filterValueType?: 'String'` is redeclared here as documentation:
|
|
8
|
+
* it pins the filter-row UI to the string-input variant.
|
|
13
9
|
*/
|
|
14
|
-
export interface TextInputDefProps<T extends object, in FilterValueType = StringFilterValueType
|
|
10
|
+
export interface TextInputDefProps<T extends object, in FilterValueType = StringFilterValueType> extends AccessorDefProps<T, FilterValueType, string | null> {
|
|
15
11
|
/** Filter input variant; pinned to `'String'`. */
|
|
16
12
|
filterValueType?: 'String';
|
|
17
13
|
}
|
|
18
14
|
/**
|
|
19
|
-
* `TextInputDef<T, FilterValueType
|
|
20
|
-
*
|
|
21
|
-
*
|
|
15
|
+
* `TextInputDef<T, FilterValueType>` fixes its declared value type at
|
|
16
|
+
* `string | null`. Cells reading `cell.getValue()` now see the
|
|
17
|
+
* narrower type instead of `unknown`.
|
|
22
18
|
*/
|
|
23
|
-
export declare class TextInputDef<T extends object, in FilterValueType = StringFilterValueType
|
|
19
|
+
export declare class TextInputDef<T extends object, in FilterValueType = StringFilterValueType> extends AccessorDef<T, FilterValueType, string | null> {
|
|
24
20
|
/** Inner discriminator literal. */
|
|
25
21
|
readonly accessorType: "Text";
|
|
26
|
-
constructor(props: TextInputDefProps<T, FilterValueType
|
|
22
|
+
constructor(props: TextInputDefProps<T, FilterValueType>);
|
|
27
23
|
private _filterFn;
|
|
28
24
|
/** Filter predicate. Reassignable. */
|
|
29
25
|
get filterFn(): FilterFn<T, FilterValueType> | undefined;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { AccessorDef } from './AccessorDef.svelte.js';
|
|
2
2
|
import { AccessorType } from './AccessorType.js';
|
|
3
3
|
/**
|
|
4
|
-
* `TextInputDef<T, FilterValueType
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* `TextInputDef<T, FilterValueType>` fixes its declared value type at
|
|
5
|
+
* `string | null`. Cells reading `cell.getValue()` now see the
|
|
6
|
+
* narrower type instead of `unknown`.
|
|
7
7
|
*/
|
|
8
8
|
export class TextInputDef extends AccessorDef {
|
|
9
9
|
/** Inner discriminator literal. */
|
|
@@ -12,7 +12,7 @@ import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
|
|
|
12
12
|
* - Both callbacks receive the button currently being rendered so a
|
|
13
13
|
* single `ActionsDef` can drive a row of differently-styled actions.
|
|
14
14
|
*/
|
|
15
|
-
export interface ActionsDefProps<T extends object, in FilterValueType
|
|
15
|
+
export interface ActionsDefProps<T extends object, in FilterValueType> extends Omit<ColumnDefProps<T, FilterValueType>, 'id' | 'header'> {
|
|
16
16
|
/** The buttons rendered for every row. */
|
|
17
17
|
actions: Array<TableActionButton<T>>;
|
|
18
18
|
/** Per-row, per-button enable predicate; assumed `true` if missing. */
|
|
@@ -21,16 +21,16 @@ export interface ActionsDefProps<T extends object, in FilterValueType, out Filte
|
|
|
21
21
|
getColourSet?: (item: T, index: number, button: TableActionButton<T>) => ColourSet;
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
|
-
* `ActionsDef<T, FilterValueType
|
|
25
|
-
*
|
|
26
|
-
*
|
|
24
|
+
* `ActionsDef<T, FilterValueType>` is a column whose cells render a
|
|
25
|
+
* row of buttons. It is non-sortable, non-filterable, and pins its
|
|
26
|
+
* header to `'Actions'`.
|
|
27
27
|
*
|
|
28
28
|
* Note: the generated id uses `generateUUID()` (UUIDv7); two `ActionsDef`
|
|
29
29
|
* instances constructed in the same render pass will have distinct ids
|
|
30
30
|
* so consumers must keep a single instance per table.
|
|
31
31
|
*/
|
|
32
|
-
export declare class ActionsDef<T extends object, FilterValueType
|
|
33
|
-
constructor(props: ActionsDefProps<T, FilterValueType
|
|
32
|
+
export declare class ActionsDef<T extends object, in FilterValueType> extends ColumnDef<T, FilterValueType> {
|
|
33
|
+
constructor(props: ActionsDefProps<T, FilterValueType>);
|
|
34
34
|
/** Discriminator literal. */
|
|
35
35
|
readonly columnType: "Actions";
|
|
36
36
|
/** The buttons rendered for every row. */
|
|
@@ -2,9 +2,9 @@ import { generateUUID, syntheticColumnId } from '../../../../../../Helpers/Helpe
|
|
|
2
2
|
import { ColumnType } from '../../ColumnType.js';
|
|
3
3
|
import { ColumnDef } from '../ColumnDef.svelte.js';
|
|
4
4
|
/**
|
|
5
|
-
* `ActionsDef<T, FilterValueType
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* `ActionsDef<T, FilterValueType>` is a column whose cells render a
|
|
6
|
+
* row of buttons. It is non-sortable, non-filterable, and pins its
|
|
7
|
+
* header to `'Actions'`.
|
|
8
8
|
*
|
|
9
9
|
* Note: the generated id uses `generateUUID()` (UUIDv7); two `ActionsDef`
|
|
10
10
|
* instances constructed in the same render pass will have distinct ids
|