@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
|
@@ -12,15 +12,16 @@ import type { ValidationFn } from './ValidationFn.js';
|
|
|
12
12
|
* generics mirror those of `ColumnDef` itself:
|
|
13
13
|
*
|
|
14
14
|
* - `T`: the row shape.
|
|
15
|
-
* - `FilterFnType
|
|
16
|
-
*
|
|
17
|
-
* `
|
|
18
|
-
* -
|
|
19
|
-
* select-
|
|
15
|
+
* - `FilterFnType`: the value the column's `filterFn` receives at
|
|
16
|
+
* filter-evaluation time (e.g. `BoolFilterValueType` for `CheckboxDef`).
|
|
17
|
+
* This same type also parameterises `getOptions` for select-style
|
|
18
|
+
* filtering - the audit found every factory call site passed the same
|
|
19
|
+
* type to both the filter-fn slot and the select-options slot (or one
|
|
20
|
+
* was just `unknown`), so they were collapsed into a single generic.
|
|
20
21
|
* - `TValue`: the declared row-value type; defaults to `unknown` so
|
|
21
22
|
* non-accessor columns do not need to thread it.
|
|
22
23
|
*/
|
|
23
|
-
export interface ColumnDefProps<T extends object, in FilterFnType,
|
|
24
|
+
export interface ColumnDefProps<T extends object, in FilterFnType, TValue = unknown> {
|
|
24
25
|
/** Stable column identifier. Two-arm union: either a `string & keyof T`
|
|
25
26
|
* literal (accessor-backed column) or a {@link SyntheticColumnId} brand
|
|
26
27
|
* (pseudo column with no row binding, e.g. row-selection / expand /
|
|
@@ -80,8 +81,18 @@ export interface ColumnDefProps<T extends object, in FilterFnType, out OptionsTy
|
|
|
80
81
|
/** Determines which filter input is rendered in the filter panel. */
|
|
81
82
|
filterValueType?: FilterValueType;
|
|
82
83
|
/** Required when `filterValueType === 'Select'`. Returns the option set
|
|
83
|
-
* rendered in the filter dropdown.
|
|
84
|
-
|
|
84
|
+
* rendered in the filter dropdown.
|
|
85
|
+
*
|
|
86
|
+
* Returns `SelectOption<unknown>` at the base layer so the base
|
|
87
|
+
* `ColumnDef<T, FilterFnType>` does not use `FilterFnType` in a
|
|
88
|
+
* covariant position (which, paired with the contravariant
|
|
89
|
+
* `filterFn` slot, would make the generic invariant and break
|
|
90
|
+
* `Array<ColumnDef<T>>` collection-typed call sites that mix
|
|
91
|
+
* subclasses with different `FilterFnType` bindings). `SelectDef`
|
|
92
|
+
* and `QueryDef` redeclare this with a narrower
|
|
93
|
+
* `SelectOption<FilterValueType>` return type via the `declare`
|
|
94
|
+
* keyword. */
|
|
95
|
+
getOptions?: () => Array<SelectOption<unknown>> | Promise<Array<SelectOption<unknown>>>;
|
|
85
96
|
/** Reads the cell value from a row. For `AccessorDef` subclasses this is
|
|
86
97
|
* required at the subclass layer. */
|
|
87
98
|
accessorFn?: AccessorFn<T, TValue>;
|
|
@@ -105,17 +116,23 @@ export interface ColumnDefProps<T extends object, in FilterFnType, out OptionsTy
|
|
|
105
116
|
reactiveDependencies?: (row: T) => ReadonlyArray<unknown>;
|
|
106
117
|
}
|
|
107
118
|
/**
|
|
108
|
-
* `ColumnDef<T, FilterFnType,
|
|
109
|
-
*
|
|
110
|
-
* `
|
|
119
|
+
* `ColumnDef<T, FilterFnType, TValue>` is the abstract base for every
|
|
120
|
+
* Table column kind. Owns identification, layout (`minSize`, `width`,
|
|
121
|
+
* `resizable`), gating flags (`allowFiltering`, `allowSorting`,
|
|
111
122
|
* `defaultHidden`, `isEditable`), data accessors (`accessorFn`,
|
|
112
123
|
* `getDisplayValue`), and filtering / sorting hooks (`filterFn`,
|
|
113
124
|
* `filterValueType`, `getOptions`, `getSortingFn`).
|
|
114
125
|
*
|
|
126
|
+
* The `FilterFnType` generic doubles as the select-options value type
|
|
127
|
+
* (`getOptions` returns `SelectOption<FilterFnType>[]`). The earlier
|
|
128
|
+
* four-generic shape kept the two slots separate, but every factory
|
|
129
|
+
* call site set them to the same type (or set one to `unknown`); the
|
|
130
|
+
* audit collapsed them.
|
|
131
|
+
*
|
|
115
132
|
* The `TValue` generic captures the declared row-value type for
|
|
116
133
|
* data-backed columns (e.g. `boolean` for `CheckboxDef`,
|
|
117
134
|
* `number | string | null` for `NumberInputDef`). Defaulting to `unknown`
|
|
118
|
-
* keeps every existing call site that uses
|
|
135
|
+
* keeps every existing call site that uses two or fewer generic
|
|
119
136
|
* arguments unchanged.
|
|
120
137
|
*
|
|
121
138
|
* @remarks
|
|
@@ -126,8 +143,8 @@ export interface ColumnDefProps<T extends object, in FilterFnType, out OptionsTy
|
|
|
126
143
|
* derived state; flattening to plain `readonly` fields is a per-Def
|
|
127
144
|
* optimisation tracked in the perf report.
|
|
128
145
|
*/
|
|
129
|
-
export declare abstract class ColumnDef<T extends object, in FilterFnType = never,
|
|
130
|
-
protected constructor(props: ColumnDefProps<T, FilterFnType,
|
|
146
|
+
export declare abstract class ColumnDef<T extends object, in FilterFnType = never, TValue = unknown> {
|
|
147
|
+
protected constructor(props: ColumnDefProps<T, FilterFnType, TValue>);
|
|
131
148
|
/** Stable column identifier. */
|
|
132
149
|
readonly id: ColumnId<T>;
|
|
133
150
|
/** When true, callers may log per-render debug info. */
|
|
@@ -138,6 +155,18 @@ export declare abstract class ColumnDef<T extends object, in FilterFnType = neve
|
|
|
138
155
|
set index(v: MemoryColumnIndex);
|
|
139
156
|
/** Discriminator literal narrowed by each subclass. */
|
|
140
157
|
abstract readonly columnType: ColumnType;
|
|
158
|
+
/**
|
|
159
|
+
* Public-API kind discriminator (`'text'`, `'number'`, `'display'`, ...).
|
|
160
|
+
* Assigned by `ColumnFactory.makeSpec` immediately after construction
|
|
161
|
+
* so the registry-driven filter wiring in
|
|
162
|
+
* `TableContext.setupDefaultColumnDefs` can drive its lookup without an
|
|
163
|
+
* `instanceof` cascade.
|
|
164
|
+
*
|
|
165
|
+
* `undefined` only when a `ColumnDef` is constructed outside the
|
|
166
|
+
* factory (storybook stubs, tests); the cascade fallback in
|
|
167
|
+
* `setupDefaultColumnDefs` covers that case.
|
|
168
|
+
*/
|
|
169
|
+
kind: import('../../Public/ColumnSpec.js').ColumnKind | undefined;
|
|
141
170
|
/** Whether the column is hidden by default. */
|
|
142
171
|
readonly defaultHidden: boolean;
|
|
143
172
|
/** Whether the column may be sorted. */
|
|
@@ -227,8 +256,12 @@ export declare abstract class ColumnDef<T extends object, in FilterFnType = neve
|
|
|
227
256
|
readonly resizable: boolean;
|
|
228
257
|
/** Header content; string or Snippet. */
|
|
229
258
|
readonly header: string | Snippet;
|
|
230
|
-
/** Options provider for select-style filter inputs.
|
|
231
|
-
|
|
259
|
+
/** Options provider for select-style filter inputs. Typed as
|
|
260
|
+
* `SelectOption<unknown>` at the base; `SelectDef` and `QueryDef`
|
|
261
|
+
* redeclare with a narrower `SelectOption<FilterValueType>` return
|
|
262
|
+
* type. See the field doc on `ColumnDefProps.getOptions` for why
|
|
263
|
+
* this is decoupled from `FilterFnType` at the base layer. */
|
|
264
|
+
readonly getOptions?: () => Array<SelectOption<unknown>> | Promise<Array<SelectOption<unknown>>>;
|
|
232
265
|
/** Optional grouping label for this column's filter row in the
|
|
233
266
|
* advanced filter panel. Columns sharing the same `filterGroup`
|
|
234
267
|
* string render under a single collapsible section in
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
import { ColumnType } from '../ColumnType.js';
|
|
2
2
|
/**
|
|
3
|
-
* `ColumnDef<T, FilterFnType,
|
|
4
|
-
*
|
|
5
|
-
* `
|
|
3
|
+
* `ColumnDef<T, FilterFnType, TValue>` is the abstract base for every
|
|
4
|
+
* Table column kind. Owns identification, layout (`minSize`, `width`,
|
|
5
|
+
* `resizable`), gating flags (`allowFiltering`, `allowSorting`,
|
|
6
6
|
* `defaultHidden`, `isEditable`), data accessors (`accessorFn`,
|
|
7
7
|
* `getDisplayValue`), and filtering / sorting hooks (`filterFn`,
|
|
8
8
|
* `filterValueType`, `getOptions`, `getSortingFn`).
|
|
9
9
|
*
|
|
10
|
+
* The `FilterFnType` generic doubles as the select-options value type
|
|
11
|
+
* (`getOptions` returns `SelectOption<FilterFnType>[]`). The earlier
|
|
12
|
+
* four-generic shape kept the two slots separate, but every factory
|
|
13
|
+
* call site set them to the same type (or set one to `unknown`); the
|
|
14
|
+
* audit collapsed them.
|
|
15
|
+
*
|
|
10
16
|
* The `TValue` generic captures the declared row-value type for
|
|
11
17
|
* data-backed columns (e.g. `boolean` for `CheckboxDef`,
|
|
12
18
|
* `number | string | null` for `NumberInputDef`). Defaulting to `unknown`
|
|
13
|
-
* keeps every existing call site that uses
|
|
19
|
+
* keeps every existing call site that uses two or fewer generic
|
|
14
20
|
* arguments unchanged.
|
|
15
21
|
*
|
|
16
22
|
* @remarks
|
|
@@ -81,6 +87,18 @@ export class ColumnDef {
|
|
|
81
87
|
set index(v) {
|
|
82
88
|
this._index = v;
|
|
83
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Public-API kind discriminator (`'text'`, `'number'`, `'display'`, ...).
|
|
92
|
+
* Assigned by `ColumnFactory.makeSpec` immediately after construction
|
|
93
|
+
* so the registry-driven filter wiring in
|
|
94
|
+
* `TableContext.setupDefaultColumnDefs` can drive its lookup without an
|
|
95
|
+
* `instanceof` cascade.
|
|
96
|
+
*
|
|
97
|
+
* `undefined` only when a `ColumnDef` is constructed outside the
|
|
98
|
+
* factory (storybook stubs, tests); the cascade fallback in
|
|
99
|
+
* `setupDefaultColumnDefs` covers that case.
|
|
100
|
+
*/
|
|
101
|
+
kind = undefined;
|
|
84
102
|
/** Whether the column is hidden by default. */
|
|
85
103
|
defaultHidden;
|
|
86
104
|
/** Whether the column may be sorted. */
|
|
@@ -220,7 +238,11 @@ export class ColumnDef {
|
|
|
220
238
|
resizable;
|
|
221
239
|
/** Header content; string or Snippet. */
|
|
222
240
|
header;
|
|
223
|
-
/** Options provider for select-style filter inputs.
|
|
241
|
+
/** Options provider for select-style filter inputs. Typed as
|
|
242
|
+
* `SelectOption<unknown>` at the base; `SelectDef` and `QueryDef`
|
|
243
|
+
* redeclare with a narrower `SelectOption<FilterValueType>` return
|
|
244
|
+
* type. See the field doc on `ColumnDefProps.getOptions` for why
|
|
245
|
+
* this is decoupled from `FilterFnType` at the base layer. */
|
|
224
246
|
getOptions;
|
|
225
247
|
/** Optional grouping label for this column's filter row in the
|
|
226
248
|
* advanced filter panel. Columns sharing the same `filterGroup`
|
package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts
CHANGED
|
@@ -12,15 +12,15 @@ import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
|
|
|
12
12
|
* `Component<DisplayModalProps<T>>` with `any` filling the events / slots
|
|
13
13
|
* channels because the consumer-supplied component declares those itself.
|
|
14
14
|
*/
|
|
15
|
-
export interface AbstractDisplayDefProps<T extends object, in FilterFnType
|
|
15
|
+
export interface AbstractDisplayDefProps<T extends object, in FilterFnType> extends ColumnDefProps<T, FilterFnType> {
|
|
16
16
|
/** Optional Svelte component opened as a modal from the cell. */
|
|
17
17
|
modal?: Component<DisplayModalProps<T>, any, any>;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* `AbstractDisplayDef<T, FilterValueType
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
20
|
+
* `AbstractDisplayDef<T, FilterValueType>` is the shared base for
|
|
21
|
+
* display-only columns (Bubble, Display, ProgressBar, Validity). Each
|
|
22
|
+
* subclass pins `columnType = ColumnType.Display` and further narrows
|
|
23
|
+
* the `displayType` inner discriminator.
|
|
24
24
|
*
|
|
25
25
|
* @remarks
|
|
26
26
|
*
|
|
@@ -28,10 +28,10 @@ export interface AbstractDisplayDefProps<T extends object, in FilterFnType, out
|
|
|
28
28
|
* `DisplayModalProps<T>` shape. The cell renderers hand it
|
|
29
29
|
* `{ row: T; close: () => void }` at runtime.
|
|
30
30
|
*/
|
|
31
|
-
export declare abstract class AbstractDisplayDef<T extends object, in FilterValueType = never
|
|
31
|
+
export declare abstract class AbstractDisplayDef<T extends object, in FilterValueType = never> extends ColumnDef<T, FilterValueType> {
|
|
32
32
|
/** Inner discriminator literal narrowed by each leaf subclass. */
|
|
33
33
|
abstract readonly displayType: DisplayType;
|
|
34
|
-
constructor(props: AbstractDisplayDefProps<T, FilterValueType
|
|
34
|
+
constructor(props: AbstractDisplayDefProps<T, FilterValueType>);
|
|
35
35
|
/** Discriminator literal pinning every display column to `Display`. */
|
|
36
36
|
readonly columnType: "Display";
|
|
37
37
|
/** Optional Svelte component opened as a modal from the cell. */
|
package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ColumnType } from '../../ColumnType.js';
|
|
2
2
|
import { ColumnDef } from '../ColumnDef.svelte.js';
|
|
3
3
|
/**
|
|
4
|
-
* `AbstractDisplayDef<T, FilterValueType
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* `AbstractDisplayDef<T, FilterValueType>` is the shared base for
|
|
5
|
+
* display-only columns (Bubble, Display, ProgressBar, Validity). Each
|
|
6
|
+
* subclass pins `columnType = ColumnType.Display` and further narrows
|
|
7
|
+
* the `displayType` inner discriminator.
|
|
8
8
|
*
|
|
9
9
|
* @remarks
|
|
10
10
|
*
|
|
@@ -11,7 +11,7 @@ import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisp
|
|
|
11
11
|
* - `value` is a string today (the rendered cell text); a future
|
|
12
12
|
* tightening could thread the column's `TValue`.
|
|
13
13
|
*/
|
|
14
|
-
export interface BubbleDefProps<T extends object, in FilterValueType
|
|
14
|
+
export interface BubbleDefProps<T extends object, in FilterValueType> extends AbstractDisplayDefProps<T, FilterValueType> {
|
|
15
15
|
/** Per-bubble colour mapper. Invoked per bubble value per render. */
|
|
16
16
|
getColour?: (item: T, index: number, value: string) => BubbleColour | Promise<BubbleColour | null | undefined>;
|
|
17
17
|
/** Maximum number of pills shown per cell before the overflow chip
|
|
@@ -20,13 +20,13 @@ export interface BubbleDefProps<T extends object, in FilterValueType, out Filter
|
|
|
20
20
|
maxBubbles?: number;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
* `BubbleDef<T, FilterValueType
|
|
24
|
-
*
|
|
23
|
+
* `BubbleDef<T, FilterValueType>` renders the cell value as a row of
|
|
24
|
+
* coloured bubbles.
|
|
25
25
|
*/
|
|
26
|
-
export declare class BubbleDef<T extends object, in FilterValueType = StringFilterValueType
|
|
26
|
+
export declare class BubbleDef<T extends object, in FilterValueType = StringFilterValueType> extends AbstractDisplayDef<T, FilterValueType> {
|
|
27
27
|
/** Inner discriminator literal. */
|
|
28
28
|
readonly displayType: "Bubbles";
|
|
29
|
-
constructor(props: BubbleDefProps<T, FilterValueType
|
|
29
|
+
constructor(props: BubbleDefProps<T, FilterValueType>);
|
|
30
30
|
private _filterFn;
|
|
31
31
|
/** Filter predicate. Reassignable. */
|
|
32
32
|
get filterFn(): FilterFn<T, FilterValueType> | undefined;
|
|
@@ -2,8 +2,8 @@ import { memoiseRowValueAccessor } from '../../../../../../Helpers/memoiseByRow.
|
|
|
2
2
|
import { DisplayType } from '../../DisplayType.js';
|
|
3
3
|
import { AbstractDisplayDef } from './AbstractDisplayDef.svelte.js';
|
|
4
4
|
/**
|
|
5
|
-
* `BubbleDef<T, FilterValueType
|
|
6
|
-
*
|
|
5
|
+
* `BubbleDef<T, FilterValueType>` renders the cell value as a row of
|
|
6
|
+
* coloured bubbles.
|
|
7
7
|
*/
|
|
8
8
|
export class BubbleDef extends AbstractDisplayDef {
|
|
9
9
|
/** Inner discriminator literal. */
|
|
@@ -6,16 +6,16 @@ import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisp
|
|
|
6
6
|
* fields over `AbstractDisplayDefProps`; it exists so future
|
|
7
7
|
* display-specific props can be added without a breaking-change rename.
|
|
8
8
|
*/
|
|
9
|
-
export interface DisplayDefProps<T extends object, in FilterValueType
|
|
9
|
+
export interface DisplayDefProps<T extends object, in FilterValueType> extends AbstractDisplayDefProps<T, FilterValueType> {
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
|
-
* `DisplayDef<T, FilterValueType
|
|
13
|
-
*
|
|
12
|
+
* `DisplayDef<T, FilterValueType>` renders the cell value as plain
|
|
13
|
+
* text. The default display kind for non-input columns.
|
|
14
14
|
*/
|
|
15
|
-
export declare class DisplayDef<T extends object, in FilterValueType
|
|
15
|
+
export declare class DisplayDef<T extends object, in FilterValueType> extends AbstractDisplayDef<T, FilterValueType> {
|
|
16
16
|
/** Inner discriminator literal. */
|
|
17
17
|
readonly displayType: DisplayType;
|
|
18
|
-
constructor(props: DisplayDefProps<T, FilterValueType
|
|
18
|
+
constructor(props: DisplayDefProps<T, FilterValueType>);
|
|
19
19
|
private _filterFn;
|
|
20
20
|
/** Filter predicate. Reassignable. */
|
|
21
21
|
get filterFn(): FilterFn<T, FilterValueType> | undefined;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DisplayType } from '../../DisplayType.js';
|
|
2
2
|
import { AbstractDisplayDef } from './AbstractDisplayDef.svelte.js';
|
|
3
3
|
/**
|
|
4
|
-
* `DisplayDef<T, FilterValueType
|
|
5
|
-
*
|
|
4
|
+
* `DisplayDef<T, FilterValueType>` renders the cell value as plain
|
|
5
|
+
* text. The default display kind for non-input columns.
|
|
6
6
|
*/
|
|
7
7
|
export class DisplayDef extends AbstractDisplayDef {
|
|
8
8
|
/** Inner discriminator literal. */
|
|
@@ -12,18 +12,18 @@ import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisp
|
|
|
12
12
|
* - `value: [number, number]` represents `[current, total]`; the
|
|
13
13
|
* column data shape is not yet connected to this tuple.
|
|
14
14
|
*/
|
|
15
|
-
export interface ProgressBarDefProps<T extends object, in FilterValueType
|
|
15
|
+
export interface ProgressBarDefProps<T extends object, in FilterValueType> extends AbstractDisplayDefProps<T, FilterValueType> {
|
|
16
16
|
/** Required. Per-cell colour mapper given the `[current, total]` tuple. */
|
|
17
17
|
getColour: (item: T, index: number, value: [number, number]) => BubbleColour | Promise<BubbleColour> | undefined;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
|
-
* `ProgressBarDef<T, FilterValueType
|
|
21
|
-
*
|
|
20
|
+
* `ProgressBarDef<T, FilterValueType>` renders the cell value as a
|
|
21
|
+
* horizontal progress bar.
|
|
22
22
|
*/
|
|
23
|
-
export declare class ProgressBarDef<T extends object, in FilterValueType = NumberFilterValueType
|
|
23
|
+
export declare class ProgressBarDef<T extends object, in FilterValueType = NumberFilterValueType> extends AbstractDisplayDef<T, FilterValueType> {
|
|
24
24
|
/** Inner discriminator literal. */
|
|
25
25
|
readonly displayType: "Progress";
|
|
26
|
-
constructor(props: ProgressBarDefProps<T, FilterValueType
|
|
26
|
+
constructor(props: ProgressBarDefProps<T, FilterValueType>);
|
|
27
27
|
/** Per-cell colour mapper. */
|
|
28
28
|
readonly getColour: (item: T, index: number, value: [number, number]) => BubbleColour | Promise<BubbleColour> | undefined;
|
|
29
29
|
private _filterFn;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DisplayType } from '../../DisplayType.js';
|
|
2
2
|
import { AbstractDisplayDef } from './AbstractDisplayDef.svelte.js';
|
|
3
3
|
/**
|
|
4
|
-
* `ProgressBarDef<T, FilterValueType
|
|
5
|
-
*
|
|
4
|
+
* `ProgressBarDef<T, FilterValueType>` renders the cell value as a
|
|
5
|
+
* horizontal progress bar.
|
|
6
6
|
*/
|
|
7
7
|
export class ProgressBarDef extends AbstractDisplayDef {
|
|
8
8
|
/** Inner discriminator literal. */
|
|
@@ -5,13 +5,13 @@ import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisp
|
|
|
5
5
|
* because the validity column has no other content; the rest of the
|
|
6
6
|
* shape mirrors `AbstractDisplayDefProps`.
|
|
7
7
|
*/
|
|
8
|
-
export interface ValidityDefProps<T extends object, in FilterValueType
|
|
8
|
+
export interface ValidityDefProps<T extends object, in FilterValueType> extends AbstractDisplayDefProps<T, FilterValueType> {
|
|
9
9
|
/** Required per-row validity predicate. */
|
|
10
10
|
isValid: ValidationFn<T>;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
* `ValidityDef<T, FilterValueType
|
|
14
|
-
*
|
|
13
|
+
* `ValidityDef<T, FilterValueType>` renders the row validity as a
|
|
14
|
+
* status icon. Non-sortable and non-filterable.
|
|
15
15
|
*
|
|
16
16
|
* @remarks
|
|
17
17
|
*
|
|
@@ -26,10 +26,10 @@ export interface ValidityDefProps<T extends object, in FilterValueType, out Filt
|
|
|
26
26
|
* mandatory on the subclass props) via the `declare` re-declaration
|
|
27
27
|
* below. The runtime assignment happens in the base constructor.
|
|
28
28
|
*/
|
|
29
|
-
export declare class ValidityDef<T extends object, in FilterValueType
|
|
29
|
+
export declare class ValidityDef<T extends object, in FilterValueType> extends AbstractDisplayDef<T, FilterValueType> {
|
|
30
30
|
/** Inner discriminator literal. */
|
|
31
31
|
readonly displayType: "Validity";
|
|
32
|
-
constructor(props: ValidityDefProps<T, FilterValueType
|
|
32
|
+
constructor(props: ValidityDefProps<T, FilterValueType>);
|
|
33
33
|
/** Validity columns are never filtered. */
|
|
34
34
|
readonly filterFn: undefined;
|
|
35
35
|
/** Required per-row validity predicate (narrowed from the base optional). */
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DisplayType } from '../../DisplayType.js';
|
|
2
2
|
import { AbstractDisplayDef } from './AbstractDisplayDef.svelte.js';
|
|
3
3
|
/**
|
|
4
|
-
* `ValidityDef<T, FilterValueType
|
|
5
|
-
*
|
|
4
|
+
* `ValidityDef<T, FilterValueType>` renders the row validity as a
|
|
5
|
+
* status icon. Non-sortable and non-filterable.
|
|
6
6
|
*
|
|
7
7
|
* @remarks
|
|
8
8
|
*
|
|
@@ -4,17 +4,13 @@ import type { Primitive, TableInitOptions } from '../../../Context/TableInitOpti
|
|
|
4
4
|
import type { DefsWrapper } from '../../DefsWrapper.js';
|
|
5
5
|
import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
|
|
6
6
|
/**
|
|
7
|
-
* Construction-time props for `ExpandDef`. The generic
|
|
8
|
-
*
|
|
9
|
-
* inner table's row id.
|
|
7
|
+
* Construction-time props for `ExpandDef`. The generic `InnerIdType`
|
|
8
|
+
* parameterises the inner table's row id.
|
|
10
9
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* caching is the consumer's responsibility (tracked in perf workorder).
|
|
14
|
-
* - The class no longer mutates the incoming `props` object before
|
|
15
|
-
* calling `super`; the override is forwarded via a spread.
|
|
10
|
+
* `getInnerColumnDefs` and `accessorFn` are invoked per expansion;
|
|
11
|
+
* caching is the consumer's responsibility.
|
|
16
12
|
*/
|
|
17
|
-
export interface ExpandDefProps<T extends object, R extends object, InnerIdType extends Primitive = Primitive, in FilterValueType = unknown
|
|
13
|
+
export interface ExpandDefProps<T extends object, R extends object, InnerIdType extends Primitive = Primitive, in FilterValueType = unknown> extends ColumnDefProps<T, FilterValueType> {
|
|
18
14
|
/** Per-row enable predicate for the expansion affordance. */
|
|
19
15
|
isEnabled: (item: T, index: number) => boolean | Promise<boolean>;
|
|
20
16
|
/** Builds the inner table's column defs. Invoked per expansion. */
|
|
@@ -29,19 +25,15 @@ export interface ExpandDefProps<T extends object, R extends object, InnerIdType
|
|
|
29
25
|
accessorFn: (item: T, index: number) => ReadonlyArray<R> | Promise<ReadonlyArray<R>>;
|
|
30
26
|
}
|
|
31
27
|
/**
|
|
32
|
-
* `ExpandDef<T, R, InnerIdType, FilterValueType
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* Non-sortable and non-filterable; the class spreads `props` with the
|
|
38
|
-
* relevant overrides when forwarding to `super(...)` rather than
|
|
39
|
-
* mutating the incoming props object.
|
|
28
|
+
* `ExpandDef<T, R, InnerIdType, FilterValueType>` is a column whose
|
|
29
|
+
* cells expand to reveal an inner table. Non-sortable and
|
|
30
|
+
* non-filterable; `allowFiltering` / `allowSorting` are forced
|
|
31
|
+
* `false` when forwarding to `super`.
|
|
40
32
|
*/
|
|
41
|
-
export declare class ExpandDef<T extends object, R extends object, InnerIdType extends Primitive = Primitive, in FilterValueType = unknown
|
|
33
|
+
export declare class ExpandDef<T extends object, R extends object, InnerIdType extends Primitive = Primitive, in FilterValueType = unknown> extends ColumnDef<T, FilterValueType> {
|
|
42
34
|
/** Discriminator literal. */
|
|
43
35
|
readonly columnType: "Expand";
|
|
44
|
-
constructor(props: ExpandDefProps<T, R, InnerIdType, FilterValueType
|
|
36
|
+
constructor(props: ExpandDefProps<T, R, InnerIdType, FilterValueType>);
|
|
45
37
|
/** Narrowed accessorFn: returns the inner-row array. */
|
|
46
38
|
readonly accessorFn: (item: T, index: number) => ReadonlyArray<R> | Promise<ReadonlyArray<R>>;
|
|
47
39
|
/** Expand columns are never filtered. */
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import { ColumnType } from '../../ColumnType.js';
|
|
2
2
|
import { ColumnDef } from '../ColumnDef.svelte.js';
|
|
3
3
|
/**
|
|
4
|
-
* `ExpandDef<T, R, InnerIdType, FilterValueType
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* Non-sortable and non-filterable; the class spreads `props` with the
|
|
10
|
-
* relevant overrides when forwarding to `super(...)` rather than
|
|
11
|
-
* mutating the incoming props object.
|
|
4
|
+
* `ExpandDef<T, R, InnerIdType, FilterValueType>` is a column whose
|
|
5
|
+
* cells expand to reveal an inner table. Non-sortable and
|
|
6
|
+
* non-filterable; `allowFiltering` / `allowSorting` are forced
|
|
7
|
+
* `false` when forwarding to `super`.
|
|
12
8
|
*/
|
|
13
9
|
export class ExpandDef extends ColumnDef {
|
|
14
10
|
/** Discriminator literal. */
|
package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts
CHANGED
|
@@ -5,16 +5,15 @@ import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
|
|
|
5
5
|
* `ColumnDefProps`; the marker exists so future filter-only-specific
|
|
6
6
|
* props can be added without a breaking-change rename.
|
|
7
7
|
*/
|
|
8
|
-
export interface FilterOnlyDefProps<T extends object, in FilterFnType = unknown
|
|
8
|
+
export interface FilterOnlyDefProps<T extends object, in FilterFnType = unknown> extends ColumnDefProps<T, FilterFnType> {
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
-
* `FilterOnlyDef<T, FilterFnType
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* slot.
|
|
11
|
+
* `FilterOnlyDef<T, FilterFnType>` is a column that participates in
|
|
12
|
+
* filtering but never renders a body cell. Used to surface a filter
|
|
13
|
+
* input in the filter panel without occupying a body slot.
|
|
15
14
|
*/
|
|
16
|
-
export declare class FilterOnlyDef<T extends object, in FilterFnType = unknown
|
|
17
|
-
constructor(props: FilterOnlyDefProps<T, FilterFnType
|
|
15
|
+
export declare class FilterOnlyDef<T extends object, in FilterFnType = unknown> extends ColumnDef<T, FilterFnType> {
|
|
16
|
+
constructor(props: FilterOnlyDefProps<T, FilterFnType>);
|
|
18
17
|
/** Discriminator literal. */
|
|
19
18
|
readonly columnType: "Filter Only";
|
|
20
19
|
private _filterFn;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { ColumnType } from '../../ColumnType.js';
|
|
2
2
|
import { ColumnDef } from '../ColumnDef.svelte.js';
|
|
3
3
|
/**
|
|
4
|
-
* `FilterOnlyDef<T, FilterFnType
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* slot.
|
|
4
|
+
* `FilterOnlyDef<T, FilterFnType>` is a column that participates in
|
|
5
|
+
* filtering but never renders a body cell. Used to surface a filter
|
|
6
|
+
* input in the filter panel without occupying a body slot.
|
|
8
7
|
*/
|
|
9
8
|
export class FilterOnlyDef extends ColumnDef {
|
|
10
9
|
constructor(props) {
|
package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts
CHANGED
|
@@ -6,17 +6,17 @@ import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
|
|
|
6
6
|
* can construct it consistently. The legacy positional signature is
|
|
7
7
|
* retained as an overload for backwards compatibility.
|
|
8
8
|
*/
|
|
9
|
-
export interface RowSelectionDefProps<T extends object, FilterValueType = BoolFilterValueType
|
|
9
|
+
export interface RowSelectionDefProps<T extends object, FilterValueType = BoolFilterValueType> {
|
|
10
10
|
/** Per-row predicate for whether the row may be selected. */
|
|
11
11
|
isSelectable: (item: T, index: number) => boolean | Promise<boolean>;
|
|
12
12
|
/** Optional row validity predicate. */
|
|
13
|
-
isValid?: ColumnDefProps<T, FilterValueType
|
|
13
|
+
isValid?: ColumnDefProps<T, FilterValueType>['isValid'];
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
|
-
* `RowSelectionDef<T, FilterValueType
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
16
|
+
* `RowSelectionDef<T, FilterValueType>` is the checkbox column that
|
|
17
|
+
* drives row selection. Non-sortable and non-filterable; the header
|
|
18
|
+
* reads `'Row Selected'` and the id is generated via `generateUUID`
|
|
19
|
+
* (UUIDv7).
|
|
20
20
|
*
|
|
21
21
|
* @remarks
|
|
22
22
|
*
|
|
@@ -30,12 +30,12 @@ export interface RowSelectionDefProps<T extends object, FilterValueType = BoolFi
|
|
|
30
30
|
* The positional form was the only outlier in the Def family;
|
|
31
31
|
* consumers are encouraged to migrate to the props-object form.
|
|
32
32
|
*/
|
|
33
|
-
export declare class RowSelectionDef<T extends object, in FilterValueType = BoolFilterValueType
|
|
33
|
+
export declare class RowSelectionDef<T extends object, in FilterValueType = BoolFilterValueType> extends ColumnDef<T, FilterValueType> {
|
|
34
34
|
/** Discriminator literal. */
|
|
35
35
|
readonly columnType: "RowSelect";
|
|
36
36
|
readonly isSelectable: (item: T, index: number) => boolean | Promise<boolean>;
|
|
37
|
-
constructor(props: RowSelectionDefProps<T, FilterValueType
|
|
38
|
-
constructor(isSelectable: (item: T, index: number) => boolean | Promise<boolean>, isValid?: ColumnDefProps<T, FilterValueType
|
|
37
|
+
constructor(props: RowSelectionDefProps<T, FilterValueType>);
|
|
38
|
+
constructor(isSelectable: (item: T, index: number) => boolean | Promise<boolean>, isValid?: ColumnDefProps<T, FilterValueType>['isValid']);
|
|
39
39
|
/** Row-selection columns are never filtered. */
|
|
40
40
|
readonly filterFn: undefined;
|
|
41
41
|
}
|
package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js
CHANGED
|
@@ -2,10 +2,10 @@ import { generateUUID, syntheticColumnId } from '../../../../../../Helpers/Helpe
|
|
|
2
2
|
import { ColumnType } from '../../ColumnType.js';
|
|
3
3
|
import { ColumnDef } from '../ColumnDef.svelte.js';
|
|
4
4
|
/**
|
|
5
|
-
* `RowSelectionDef<T, FilterValueType
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* `RowSelectionDef<T, FilterValueType>` is the checkbox column that
|
|
6
|
+
* drives row selection. Non-sortable and non-filterable; the header
|
|
7
|
+
* reads `'Row Selected'` and the id is generated via `generateUUID`
|
|
8
|
+
* (UUIDv7).
|
|
9
9
|
*
|
|
10
10
|
* @remarks
|
|
11
11
|
*
|
|
@@ -2,11 +2,11 @@ import type { Row } from '../Context/Row.js';
|
|
|
2
2
|
import type { Primitive } from '../Context/TableInitOptions.js';
|
|
3
3
|
import type { ExpandColumn } from './ExpandColumn.js';
|
|
4
4
|
/**
|
|
5
|
-
* Narrowed `TableCell<T>` for expand columns.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* Narrowed `TableCell<T>` for expand columns. `getValue`'s natural
|
|
6
|
+
* shape is `ReadonlyArray<R> | Promise<ReadonlyArray<R>>` (the
|
|
7
|
+
* inner-table rows for this row), but it stays `unknown` for
|
|
8
|
+
* consistency with `TableCell.getValue`; narrowing happens once that
|
|
9
|
+
* is tightened library-wide.
|
|
10
10
|
*/
|
|
11
11
|
export interface ExpandTableCell<T extends object, R extends object, IdType extends Primitive, FilterValueType> {
|
|
12
12
|
column: ExpandColumn<T, R, IdType, FilterValueType>;
|
|
@@ -3,13 +3,13 @@ import type { NumberFilterValueType } from '../Filtering/FilterFn.js';
|
|
|
3
3
|
import type { ProgressBarColumn } from './ProgressBarColumn.js';
|
|
4
4
|
import type { TableCell } from './TableCell.js';
|
|
5
5
|
/**
|
|
6
|
-
* Narrowed `TableCell<T>` for progress-bar columns. The natural shape
|
|
7
|
-
* `getValue` here is `[number, number] | Promise<[number, number]>`
|
|
8
|
-
* (current, max);
|
|
9
|
-
*
|
|
6
|
+
* Narrowed `TableCell<T>` for progress-bar columns. The natural shape
|
|
7
|
+
* of `getValue` here is `[number, number] | Promise<[number, number]>`
|
|
8
|
+
* (current, max); narrowing happens once `TableCell.getValue` is
|
|
9
|
+
* tightened library-wide.
|
|
10
10
|
*
|
|
11
|
-
* Default `FilterValueType = NumberFilterValueType`
|
|
12
|
-
*
|
|
11
|
+
* Default `FilterValueType = NumberFilterValueType` because the only
|
|
12
|
+
* sensible filter shape for a progress column is a numeric range.
|
|
13
13
|
*/
|
|
14
14
|
export interface ProgressBarTableCell<T extends object, FilterValueType = NumberFilterValueType> extends TableCell<T, FilterValueType> {
|
|
15
15
|
column: ProgressBarColumn<T, FilterValueType>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Row } from '../Context/Row.js';
|
|
2
2
|
import type { Column } from './Column.js';
|
|
3
3
|
/**
|
|
4
|
-
* `TableCell<T, FilterValueType,
|
|
5
|
-
*
|
|
4
|
+
* `TableCell<T, FilterValueType, TValue>` is the per-cell handle exposed
|
|
5
|
+
* to body components.
|
|
6
6
|
*
|
|
7
7
|
* The optional `TValue` generic is the declared value type for the column
|
|
8
8
|
* the cell belongs to. Defaulting it to `unknown` keeps all existing call
|
|
@@ -11,11 +11,12 @@ import type { Column } from './Column.js';
|
|
|
11
11
|
*
|
|
12
12
|
* Cell hosts that know the column shape (`TableNumberInput`, `TableCheckbox`,
|
|
13
13
|
* etc.) can pass a narrower `TValue` either explicitly or by reading it from
|
|
14
|
-
* a `ColumnDef<T,
|
|
15
|
-
* typed instead of `unknown` without breaking any
|
|
14
|
+
* a `ColumnDef<T, FilterValueType, TValue>`. The intent is to let
|
|
15
|
+
* `cell.getValue()` be typed instead of `unknown` without breaking any
|
|
16
|
+
* external consumer.
|
|
16
17
|
*/
|
|
17
|
-
export interface TableCell<T extends object, in FilterValueType = never,
|
|
18
|
-
column: Column<T, FilterValueType
|
|
18
|
+
export interface TableCell<T extends object, in FilterValueType = never, TValue = unknown> {
|
|
19
|
+
column: Column<T, FilterValueType>;
|
|
19
20
|
row: Row<T>;
|
|
20
21
|
id: string;
|
|
21
22
|
getValue: () => TValue | Promise<TValue>;
|