@svgrid/grid 1.2.34 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -5
- package/dist/SvAccordion.svelte +109 -0
- package/dist/SvAccordion.svelte.d.ts +28 -0
- package/dist/SvAlert.svelte +92 -0
- package/dist/SvAlert.svelte.d.ts +27 -0
- package/dist/SvAutoComplete.svelte +47 -18
- package/dist/SvAutoComplete.svelte.d.ts +2 -5
- package/dist/SvAvatar.svelte +75 -0
- package/dist/SvAvatar.svelte.d.ts +14 -0
- package/dist/SvAvatarGroup.svelte +48 -0
- package/dist/SvAvatarGroup.svelte.d.ts +16 -0
- package/dist/SvBadge.svelte +54 -0
- package/dist/SvBadge.svelte.d.ts +23 -0
- package/dist/SvBreadcrumb.svelte +88 -0
- package/dist/SvBreadcrumb.svelte.d.ts +23 -0
- package/dist/SvButtonGroup.svelte +121 -0
- package/dist/SvButtonGroup.svelte.d.ts +16 -0
- package/dist/SvCalendar.svelte +72 -9
- package/dist/SvCalendar.svelte.d.ts +34 -1
- package/dist/SvCard.svelte +71 -0
- package/dist/SvCard.svelte.d.ts +28 -0
- package/dist/SvCarousel.svelte +134 -0
- package/dist/SvCarousel.svelte.d.ts +28 -0
- package/dist/SvCheckBox.svelte +36 -21
- package/dist/SvCheckBox.svelte.d.ts +2 -5
- package/dist/SvChip.svelte +88 -0
- package/dist/SvChip.svelte.d.ts +31 -0
- package/dist/SvCircularProgress.svelte +109 -0
- package/dist/SvCircularProgress.svelte.d.ts +31 -0
- package/dist/SvColorInput.svelte +54 -27
- package/dist/SvColorInput.svelte.d.ts +10 -6
- package/dist/SvComboBox.svelte +119 -33
- package/dist/SvComboBox.svelte.d.ts +18 -6
- package/dist/SvCommand.svelte +197 -0
- package/dist/SvCommand.svelte.d.ts +26 -0
- package/dist/SvContextMenu.svelte +96 -0
- package/dist/SvContextMenu.svelte.d.ts +25 -0
- package/dist/SvCountryInput.svelte +56 -21
- package/dist/SvCountryInput.svelte.d.ts +9 -5
- package/dist/SvDateRangeInput.svelte +256 -0
- package/dist/SvDateRangeInput.svelte.d.ts +37 -0
- package/dist/SvDateTimePicker.svelte +57 -20
- package/dist/SvDateTimePicker.svelte.d.ts +12 -4
- package/dist/SvDivider.svelte +61 -0
- package/dist/SvDivider.svelte.d.ts +22 -0
- package/dist/SvDrawer.svelte +226 -0
- package/dist/SvDrawer.svelte.d.ts +43 -0
- package/dist/SvDropDownList.svelte +114 -35
- package/dist/SvDropDownList.svelte.d.ts +7 -6
- package/dist/SvDurationInput.svelte +108 -0
- package/dist/SvDurationInput.svelte.d.ts +15 -0
- package/dist/SvEmptyState.svelte +59 -0
- package/dist/SvEmptyState.svelte.d.ts +25 -0
- package/dist/SvField.svelte +85 -0
- package/dist/SvField.svelte.d.ts +30 -0
- package/dist/SvFileUpload.svelte +169 -0
- package/dist/SvFileUpload.svelte.d.ts +24 -0
- package/dist/SvForm.svelte +7 -1
- package/dist/SvForm.svelte.d.ts +3 -0
- package/dist/SvGauge.svelte +7 -1
- package/dist/SvGauge.svelte.d.ts +11 -0
- package/dist/SvGrid.controller.svelte.d.ts +6 -0
- package/dist/SvGrid.controller.svelte.js +64 -9
- package/dist/SvGrid.css +33 -0
- package/dist/SvGrid.svelte +116 -3
- package/dist/SvGrid.types.d.ts +366 -0
- package/dist/SvGridBoard.svelte +2281 -0
- package/dist/SvGridBoard.svelte.d.ts +31 -0
- package/dist/SvGridDropdown.svelte +2 -1
- package/dist/SvGridSelect.svelte +255 -0
- package/dist/SvGridSelect.svelte.d.ts +32 -0
- package/dist/SvGroupCell.svelte +109 -0
- package/dist/SvGroupCell.svelte.d.ts +41 -0
- package/dist/SvListBox.svelte +123 -36
- package/dist/SvListBox.svelte.d.ts +12 -8
- package/dist/SvMaskedInput.svelte +53 -13
- package/dist/SvMaskedInput.svelte.d.ts +16 -6
- package/dist/SvMenu.svelte +101 -0
- package/dist/SvMenu.svelte.d.ts +26 -0
- package/dist/SvMenuList.svelte +143 -0
- package/dist/SvMenuList.svelte.d.ts +24 -0
- package/dist/SvModal.svelte +220 -0
- package/dist/SvModal.svelte.d.ts +31 -0
- package/dist/SvMultiSelect.svelte +277 -0
- package/dist/SvMultiSelect.svelte.d.ts +31 -0
- package/dist/SvNavPane.svelte +314 -0
- package/dist/SvNavPane.svelte.d.ts +59 -0
- package/dist/SvNumberInput.svelte +23 -9
- package/dist/SvNumberInput.svelte.d.ts +2 -0
- package/dist/SvOtpInput.svelte +157 -0
- package/dist/SvOtpInput.svelte.d.ts +16 -0
- package/dist/SvPagination.svelte +100 -0
- package/dist/SvPagination.svelte.d.ts +16 -0
- package/dist/SvPasswordInput.svelte +42 -12
- package/dist/SvPasswordInput.svelte.d.ts +13 -6
- package/dist/SvPhoneInput.svelte +43 -11
- package/dist/SvPhoneInput.svelte.d.ts +10 -11
- package/dist/SvPopover.svelte +127 -0
- package/dist/SvPopover.svelte.d.ts +35 -0
- package/dist/SvProgress.svelte +116 -0
- package/dist/SvProgress.svelte.d.ts +32 -0
- package/dist/SvRadioGroup.svelte +40 -22
- package/dist/SvRadioGroup.svelte.d.ts +2 -10
- package/dist/SvRating.svelte +51 -30
- package/dist/SvRating.svelte.d.ts +10 -7
- package/dist/SvRichText.svelte +192 -0
- package/dist/SvRichText.svelte.d.ts +16 -0
- package/dist/SvRowGroupPanel.svelte +147 -0
- package/dist/SvRowGroupPanel.svelte.d.ts +17 -0
- package/dist/SvScrollArea.svelte +50 -0
- package/dist/SvScrollArea.svelte.d.ts +22 -0
- package/dist/SvSkeleton.svelte +76 -0
- package/dist/SvSkeleton.svelte.d.ts +25 -0
- package/dist/SvSlider.svelte +41 -9
- package/dist/SvSlider.svelte.d.ts +4 -4
- package/dist/SvSparkline.svelte +77 -0
- package/dist/SvSparkline.svelte.d.ts +28 -0
- package/dist/SvSplitter.svelte +138 -0
- package/dist/SvSplitter.svelte.d.ts +32 -0
- package/dist/SvStat.svelte +86 -0
- package/dist/SvStat.svelte.d.ts +30 -0
- package/dist/SvStepper.svelte +91 -0
- package/dist/SvStepper.svelte.d.ts +24 -0
- package/dist/SvSwitchButton.svelte +39 -24
- package/dist/SvSwitchButton.svelte.d.ts +2 -5
- package/dist/SvTabs.svelte +147 -28
- package/dist/SvTabs.svelte.d.ts +16 -4
- package/dist/SvTagsInput.svelte +59 -22
- package/dist/SvTagsInput.svelte.d.ts +9 -4
- package/dist/SvTextArea.svelte +113 -0
- package/dist/SvTextArea.svelte.d.ts +18 -0
- package/dist/SvTextInput.svelte +115 -0
- package/dist/SvTextInput.svelte.d.ts +20 -0
- package/dist/SvTimePicker.svelte +19 -5
- package/dist/SvTimePicker.svelte.d.ts +12 -0
- package/dist/SvTimeline.svelte +75 -0
- package/dist/SvTimeline.svelte.d.ts +24 -0
- package/dist/SvToaster.svelte +124 -0
- package/dist/SvToaster.svelte.d.ts +10 -0
- package/dist/SvToggleButton.svelte +37 -12
- package/dist/SvToggleButton.svelte.d.ts +2 -4
- package/dist/SvTooltip.svelte +113 -0
- package/dist/SvTooltip.svelte.d.ts +22 -0
- package/dist/SvTour.svelte +151 -0
- package/dist/SvTour.svelte.d.ts +25 -0
- package/dist/SvTree.svelte +286 -44
- package/dist/SvTree.svelte.d.ts +26 -9
- package/dist/SvTreeSelect.svelte +222 -0
- package/dist/SvTreeSelect.svelte.d.ts +24 -0
- package/dist/a11y/dismissable.d.ts +32 -0
- package/dist/a11y/dismissable.js +54 -0
- package/dist/a11y/focus-trap.d.ts +39 -0
- package/dist/a11y/focus-trap.js +142 -0
- package/dist/a11y/live-region.d.ts +8 -0
- package/dist/a11y/live-region.js +60 -0
- package/dist/a11y/scroll-lock.d.ts +4 -0
- package/dist/a11y/scroll-lock.js +41 -0
- package/dist/a11y.d.ts +3 -1
- package/dist/a11y.js +1 -1
- package/dist/avatar.d.ts +10 -0
- package/dist/avatar.js +22 -0
- package/dist/builtin-editors.d.ts +5 -0
- package/dist/builtin-editors.js +55 -0
- package/dist/cdn/svgrid.js +16021 -8234
- package/dist/cdn/svgrid.svelte-external.js +14542 -6764
- package/dist/columns.js +3 -2
- package/dist/core.d.ts +7 -1
- package/dist/countries.d.ts +12 -0
- package/dist/countries.js +24 -0
- package/dist/createAccordion.svelte.d.ts +71 -0
- package/dist/createAccordion.svelte.js +99 -0
- package/dist/createAutocomplete.svelte.d.ts +13 -4
- package/dist/createAutocomplete.svelte.js +11 -1
- package/dist/createButtonGroup.svelte.d.ts +62 -0
- package/dist/createButtonGroup.svelte.js +154 -0
- package/dist/createCalendar.svelte.d.ts +5 -0
- package/dist/createCalendar.svelte.js +2 -0
- package/dist/createCheckbox.svelte.d.ts +9 -17
- package/dist/createCheckbox.svelte.js +28 -1
- package/dist/createColorInput.svelte.d.ts +12 -22
- package/dist/createColorInput.svelte.js +13 -0
- package/dist/createCombobox.svelte.d.ts +16 -5
- package/dist/createCombobox.svelte.js +13 -2
- package/dist/createCountryInput.svelte.d.ts +14 -3
- package/dist/createCountryInput.svelte.js +12 -2
- package/dist/createDateTimePicker.svelte.d.ts +17 -2
- package/dist/createDateTimePicker.svelte.js +12 -2
- package/dist/createDropdownList.svelte.d.ts +14 -5
- package/dist/createDropdownList.svelte.js +50 -1
- package/dist/createFileUpload.svelte.d.ts +68 -0
- package/dist/createFileUpload.svelte.js +122 -0
- package/dist/createListbox.svelte.d.ts +10 -1
- package/dist/createListbox.svelte.js +48 -1
- package/dist/createMaskedInput.svelte.d.ts +11 -2
- package/dist/createMaskedInput.svelte.js +11 -1
- package/dist/createNumberInput.svelte.d.ts +1 -0
- package/dist/createNumberInput.svelte.js +1 -0
- package/dist/createPasswordInput.svelte.d.ts +19 -21
- package/dist/createPasswordInput.svelte.js +16 -4
- package/dist/createPhoneInput.svelte.d.ts +26 -7
- package/dist/createPhoneInput.svelte.js +24 -3
- package/dist/createPopoverSelect.svelte.d.ts +86 -0
- package/dist/createPopoverSelect.svelte.js +196 -0
- package/dist/createRadioGroup.svelte.d.ts +9 -0
- package/dist/createRadioGroup.svelte.js +11 -1
- package/dist/createRating.svelte.d.ts +11 -0
- package/dist/createRating.svelte.js +12 -1
- package/dist/createSlider.svelte.d.ts +2 -0
- package/dist/createSlider.svelte.js +16 -5
- package/dist/createSplitter.svelte.d.ts +67 -0
- package/dist/createSplitter.svelte.js +99 -0
- package/dist/createSwitch.svelte.d.ts +9 -16
- package/dist/createSwitch.svelte.js +28 -1
- package/dist/createTabs.svelte.d.ts +7 -0
- package/dist/createTabs.svelte.js +17 -2
- package/dist/createTagsInput.svelte.d.ts +13 -1
- package/dist/createTagsInput.svelte.js +12 -3
- package/dist/createToggle.svelte.d.ts +9 -0
- package/dist/createToggle.svelte.js +12 -1
- package/dist/createTree.svelte.d.ts +19 -0
- package/dist/createTree.svelte.js +108 -15
- package/dist/debounce.d.ts +11 -0
- package/dist/debounce.js +30 -0
- package/dist/duration.d.ts +15 -0
- package/dist/duration.js +51 -0
- package/dist/editor-contract.d.ts +62 -7
- package/dist/editor-contract.js +45 -5
- package/dist/editor-registry.d.ts +67 -0
- package/dist/editor-registry.js +38 -0
- package/dist/editors/cell-editors.d.ts +1 -1
- package/dist/editors/cell-editors.js +5 -0
- package/dist/fuzzy.d.ts +3 -0
- package/dist/fuzzy.js +41 -0
- package/dist/grid-select.d.ts +9 -0
- package/dist/grid-select.js +8 -0
- package/dist/index.d.ts +79 -6
- package/dist/index.js +78 -4
- package/dist/keyboard-handlers.js +19 -0
- package/dist/list-option.d.ts +36 -0
- package/dist/list-option.js +68 -0
- package/dist/otp.d.ts +16 -0
- package/dist/otp.js +26 -0
- package/dist/paginate.d.ts +20 -0
- package/dist/paginate.js +40 -0
- package/dist/popover.d.ts +15 -1
- package/dist/popover.js +29 -3
- package/dist/recurrence.d.ts +36 -0
- package/dist/recurrence.js +90 -0
- package/dist/server-data-source.d.ts +89 -0
- package/dist/server-data-source.js +4 -0
- package/dist/server-group-model.d.ts +98 -0
- package/dist/server-group-model.js +263 -0
- package/dist/toast-store.svelte.d.ts +41 -0
- package/dist/toast-store.svelte.js +113 -0
- package/dist/tree-select.d.ts +19 -0
- package/dist/tree-select.js +40 -0
- package/dist/ui-app.types.d.ts +80 -0
- package/dist/ui-app.types.js +7 -0
- package/dist/validators.d.ts +43 -0
- package/dist/validators.js +53 -0
- package/dist/virtual.d.ts +35 -0
- package/dist/virtual.js +34 -0
- package/package.json +1 -1
- package/src/SvAccordion.svelte +109 -0
- package/src/SvAccordion.test.ts +66 -0
- package/src/SvAlert.svelte +92 -0
- package/src/SvAutoComplete.svelte +47 -18
- package/src/SvAvatar.svelte +75 -0
- package/src/SvAvatarGroup.svelte +48 -0
- package/src/SvBadge.svelte +54 -0
- package/src/SvBreadcrumb.svelte +88 -0
- package/src/SvButtonGroup.svelte +121 -0
- package/src/SvButtonGroup.test.ts +72 -0
- package/src/SvCalendar.svelte +72 -9
- package/src/SvCard.svelte +71 -0
- package/src/SvCarousel.svelte +134 -0
- package/src/SvCheckBox.svelte +36 -21
- package/src/SvChip.svelte +88 -0
- package/src/SvCircularProgress.svelte +109 -0
- package/src/SvColorInput.svelte +54 -27
- package/src/SvComboBox.svelte +119 -33
- package/src/SvCommand.svelte +197 -0
- package/src/SvContextMenu.svelte +96 -0
- package/src/SvCountryInput.svelte +56 -21
- package/src/SvDateRangeInput.svelte +256 -0
- package/src/SvDateRangeInput.test.ts +80 -0
- package/src/SvDateTimePicker.svelte +57 -20
- package/src/SvDivider.svelte +61 -0
- package/src/SvDrawer.svelte +226 -0
- package/src/SvDrawer.test.ts +125 -0
- package/src/SvDropDownList.svelte +114 -35
- package/src/SvDurationInput.svelte +108 -0
- package/src/SvEmptyState.svelte +59 -0
- package/src/SvField.svelte +85 -0
- package/src/SvFileUpload.svelte +169 -0
- package/src/SvFileUpload.test.ts +59 -0
- package/src/SvForm.svelte +7 -1
- package/src/SvGauge.svelte +7 -1
- package/src/SvGrid.controller.svelte.ts +68 -9
- package/src/SvGrid.css +33 -0
- package/src/SvGrid.svelte +116 -3
- package/src/SvGrid.types.ts +374 -0
- package/src/SvGridBoard.svelte +2281 -0
- package/src/SvGridDropdown.svelte +2 -1
- package/src/SvGridSelect.svelte +255 -0
- package/src/SvGridSelect.test.ts +100 -0
- package/src/SvGroupCell.svelte +109 -0
- package/src/SvListBox.svelte +123 -36
- package/src/SvMaskedInput.svelte +53 -13
- package/src/SvMenu.svelte +101 -0
- package/src/SvMenu.test.ts +73 -0
- package/src/SvMenuList.svelte +143 -0
- package/src/SvModal.svelte +220 -0
- package/src/SvMultiSelect.svelte +277 -0
- package/src/SvMultiSelect.test.ts +167 -0
- package/src/SvNavPane.svelte +314 -0
- package/src/SvNavPane.test.ts +70 -0
- package/src/SvNumberInput.svelte +23 -9
- package/src/SvOtpInput.svelte +157 -0
- package/src/SvPagination.svelte +100 -0
- package/src/SvPasswordInput.svelte +42 -12
- package/src/SvPhoneInput.svelte +43 -11
- package/src/SvPopover.svelte +127 -0
- package/src/SvProgress.svelte +116 -0
- package/src/SvRadioGroup.svelte +40 -22
- package/src/SvRating.svelte +51 -30
- package/src/SvRichText.svelte +192 -0
- package/src/SvRowGroupPanel.svelte +147 -0
- package/src/SvScrollArea.svelte +50 -0
- package/src/SvSkeleton.svelte +76 -0
- package/src/SvSlider.svelte +41 -9
- package/src/SvSparkline.svelte +77 -0
- package/src/SvSplitter.svelte +138 -0
- package/src/SvSplitter.test.ts +55 -0
- package/src/SvStat.svelte +86 -0
- package/src/SvStepper.svelte +91 -0
- package/src/SvSwitchButton.svelte +39 -24
- package/src/SvTabs.svelte +147 -28
- package/src/SvTagsInput.svelte +59 -22
- package/src/SvTextArea.svelte +113 -0
- package/src/SvTextInput.svelte +115 -0
- package/src/SvTimePicker.svelte +19 -5
- package/src/SvTimeline.svelte +75 -0
- package/src/SvToaster.svelte +124 -0
- package/src/SvToaster.test.ts +63 -0
- package/src/SvToggleButton.svelte +37 -12
- package/src/SvTooltip.svelte +113 -0
- package/src/SvTour.svelte +151 -0
- package/src/SvTree.svelte +286 -44
- package/src/SvTreeSelect.svelte +222 -0
- package/src/SvTreeSelect.test.ts +87 -0
- package/src/a11y/dismissable.test.ts +95 -0
- package/src/a11y/dismissable.ts +94 -0
- package/src/a11y/focus-trap.test.ts +110 -0
- package/src/a11y/focus-trap.ts +134 -0
- package/src/a11y/live-region.test.ts +40 -0
- package/src/a11y/live-region.ts +65 -0
- package/src/a11y/scroll-lock.test.ts +38 -0
- package/src/a11y/scroll-lock.ts +41 -0
- package/src/a11y.ts +3 -1
- package/src/avatar.test.ts +32 -0
- package/src/avatar.ts +21 -0
- package/src/board.test.ts +927 -0
- package/src/builtin-editors.grid.test.ts +85 -0
- package/src/builtin-editors.test.ts +58 -0
- package/src/builtin-editors.ts +56 -0
- package/src/columns.ts +3 -2
- package/src/core.ts +10 -0
- package/src/countries.ts +25 -0
- package/src/createAccordion.svelte.ts +126 -0
- package/src/createAutocomplete.svelte.ts +18 -1
- package/src/createButtonGroup.svelte.ts +166 -0
- package/src/createCalendar.svelte.ts +6 -0
- package/src/createCheckbox.svelte.ts +23 -1
- package/src/createColorInput.svelte.ts +20 -0
- package/src/createCombobox.svelte.ts +22 -2
- package/src/createCountryInput.svelte.ts +21 -2
- package/src/createDateTimePicker.svelte.ts +23 -2
- package/src/createDropdownList.svelte.ts +31 -2
- package/src/createFileUpload.svelte.ts +144 -0
- package/src/createListbox.svelte.ts +35 -3
- package/src/createMaskedInput.svelte.ts +18 -1
- package/src/createNumberInput.svelte.ts +2 -0
- package/src/createPasswordInput.svelte.ts +31 -5
- package/src/createPhoneInput.svelte.ts +38 -4
- package/src/createPopoverSelect.svelte.ts +208 -0
- package/src/createRadioGroup.svelte.ts +23 -1
- package/src/createRating.svelte.ts +26 -1
- package/src/createSlider.svelte.ts +14 -3
- package/src/createSplitter.svelte.ts +119 -0
- package/src/createSwitch.svelte.ts +26 -3
- package/src/createTabs.svelte.ts +20 -3
- package/src/createTagsInput.svelte.ts +24 -3
- package/src/createToggle.svelte.ts +25 -2
- package/src/createTree.svelte.ts +104 -14
- package/src/debounce.test.ts +50 -0
- package/src/debounce.ts +41 -0
- package/src/duration.test.ts +41 -0
- package/src/duration.ts +51 -0
- package/src/editor-contract.ts +87 -8
- package/src/editor-registry.grid.test.ts +98 -0
- package/src/editor-registry.test.ts +86 -0
- package/src/editor-registry.ts +106 -0
- package/src/editors/cell-editors.ts +10 -1
- package/src/fuzzy.test.ts +40 -0
- package/src/fuzzy.ts +39 -0
- package/src/grid-select.test.ts +28 -0
- package/src/grid-select.ts +20 -0
- package/src/index.ts +150 -5
- package/src/keyboard-handlers.ts +20 -0
- package/src/list-option.ts +74 -0
- package/src/list-power.test.ts +71 -0
- package/src/otp.test.ts +28 -0
- package/src/otp.ts +28 -0
- package/src/overlays.test.ts +85 -0
- package/src/paginate.test.ts +41 -0
- package/src/paginate.ts +61 -0
- package/src/phone-valid.test.ts +26 -0
- package/src/popover.ts +31 -3
- package/src/progress.test.ts +55 -0
- package/src/recurrence.test.ts +91 -0
- package/src/recurrence.ts +111 -0
- package/src/server-data-source.ts +102 -0
- package/src/server-group-model.test.ts +294 -0
- package/src/server-group-model.ts +370 -0
- package/src/svgrid.responsive.test.ts +72 -0
- package/src/toast-store.svelte.ts +148 -0
- package/src/toast-store.test.ts +86 -0
- package/src/tree-edit.test.ts +49 -0
- package/src/tree-filter.test.ts +56 -0
- package/src/tree-select.test.ts +48 -0
- package/src/tree-select.ts +62 -0
- package/src/ui-app.test.ts +130 -0
- package/src/ui-app.types.ts +88 -0
- package/src/ui-display.test.ts +79 -0
- package/src/ui-inputs.test.ts +1 -1
- package/src/ui-status.test.ts +141 -0
- package/src/ui-tier1.test.ts +142 -0
- package/src/ui-tier2.test.ts +124 -0
- package/src/ui-tier3.test.ts +139 -0
- package/src/validators.test.ts +58 -0
- package/src/validators.ts +105 -0
- package/src/virtual.test.ts +72 -0
- package/src/virtual.ts +67 -0
package/src/SvGrid.types.ts
CHANGED
|
@@ -9,6 +9,51 @@ import type {
|
|
|
9
9
|
TableFeatures,
|
|
10
10
|
} from "./index";
|
|
11
11
|
import type { ConditionalFormat } from "./conditional-formatting";
|
|
12
|
+
import type { MenuItem } from "./SvMenuList.svelte";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The built-in card detail drawer. Set `board.drawer` (`true` for all fields,
|
|
16
|
+
* or this object to customize) and opening a card shows a drawer with an
|
|
17
|
+
* `SvForm` of its fields, rendered with the UI-kit editors.
|
|
18
|
+
*/
|
|
19
|
+
export type BoardDrawerConfig<TData extends RowData = RowData> = {
|
|
20
|
+
/** Fields to show, in order. Omit for every column that has a `field`. */
|
|
21
|
+
fields?: ReadonlyArray<keyof TData & string>;
|
|
22
|
+
/** Drawer title - a string or derived from the row. Defaults to the title field. */
|
|
23
|
+
title?: string | ((row: TData) => string);
|
|
24
|
+
/** Which edge the drawer opens from. Defaults to `'right'`. */
|
|
25
|
+
side?: "right" | "left" | "top" | "bottom";
|
|
26
|
+
/** Drawer size (any CSS length). Defaults to `'380px'`. */
|
|
27
|
+
size?: string;
|
|
28
|
+
/** Save button label. Defaults to `'Save'`. */
|
|
29
|
+
submitLabel?: string;
|
|
30
|
+
/** Form columns inside the drawer. Defaults to `1`. */
|
|
31
|
+
columns?: number;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/** Board-native helpers passed to `board.cardMenu` for building context items. */
|
|
35
|
+
export type BoardMenuContext<TData extends RowData = RowData> = {
|
|
36
|
+
/** The board's lanes (id + title). */
|
|
37
|
+
lanes: BoardLane[];
|
|
38
|
+
/** Move this card to a lane (board-native; fires onCardMove). */
|
|
39
|
+
moveTo: (laneId: string) => void;
|
|
40
|
+
/** Open this card's editor (inline, or your `onCardEdit`). */
|
|
41
|
+
edit: () => void;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/** Board-native helpers passed to `board.laneMenu` for building lane context items. */
|
|
45
|
+
export type BoardLaneMenuContext<TData extends RowData = RowData> = {
|
|
46
|
+
/** The lane's id. */
|
|
47
|
+
laneId: string;
|
|
48
|
+
/** The lane's current cards (this swimlane's, if any). */
|
|
49
|
+
cards: TData[];
|
|
50
|
+
/** Whether the lane is collapsed. */
|
|
51
|
+
collapsed: boolean;
|
|
52
|
+
/** Collapse / expand the lane (needs `collapsibleLanes`). */
|
|
53
|
+
toggleCollapse: () => void;
|
|
54
|
+
/** Add a card to the lane (fires `onCardAdd`). */
|
|
55
|
+
addCard: (title?: string) => void;
|
|
56
|
+
};
|
|
12
57
|
|
|
13
58
|
/** The cell a context menu was opened on. Passed to every item's callbacks. */
|
|
14
59
|
export type ContextMenuTarget<TData extends RowData = RowData> = {
|
|
@@ -38,9 +83,304 @@ export type ContextMenuItem<TData extends RowData = RowData> =
|
|
|
38
83
|
action: (target: ContextMenuTarget<TData>) => void;
|
|
39
84
|
};
|
|
40
85
|
|
|
86
|
+
/** A single Kanban lane (board column). {@link BoardConfig}. */
|
|
87
|
+
export type BoardLane = {
|
|
88
|
+
/** Lane id - equals the `groupBy` field value of the cards it holds. */
|
|
89
|
+
id: string;
|
|
90
|
+
/** Header title. Defaults to the id (or `(empty)` for a blank value). */
|
|
91
|
+
title?: string;
|
|
92
|
+
/** Accent color (any CSS color) for the lane header bar + card ring. */
|
|
93
|
+
color?: string;
|
|
94
|
+
/**
|
|
95
|
+
* Soft max number of cards. When exceeded the lane header is flagged
|
|
96
|
+
* over-limit. Enforcement/styling is an enterprise concern; the count is
|
|
97
|
+
* always shown.
|
|
98
|
+
*/
|
|
99
|
+
wipLimit?: number;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
/** A checklist item inside a card. See {@link BoardConfig.subtasks}. */
|
|
103
|
+
export type BoardSubtask = {
|
|
104
|
+
id: string | number;
|
|
105
|
+
title: string;
|
|
106
|
+
done: boolean;
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
/** A comment on a card. See {@link BoardConfig.commentsField}. */
|
|
110
|
+
export type BoardComment = {
|
|
111
|
+
id: string | number;
|
|
112
|
+
text: string;
|
|
113
|
+
author?: string;
|
|
114
|
+
/** Timestamp label (any string). */
|
|
115
|
+
at?: string;
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* The serializable board layout - the per-card position/edit overlay plus
|
|
120
|
+
* collapsed lanes. Persisted by `board.persistKey` and passed to
|
|
121
|
+
* `board.onLayoutChange`.
|
|
122
|
+
*/
|
|
123
|
+
export type BoardLayout = {
|
|
124
|
+
/** rowId -> lane id. */
|
|
125
|
+
laneOf?: Record<string, string>;
|
|
126
|
+
/** rowId -> sort order within its lane. */
|
|
127
|
+
orderOf?: Record<string, number>;
|
|
128
|
+
/** rowId -> swimlane id. */
|
|
129
|
+
swimOf?: Record<string, string>;
|
|
130
|
+
/** rowId -> edited field values. */
|
|
131
|
+
edits?: Record<string, Record<string, unknown>>;
|
|
132
|
+
/** lane id -> collapsed. */
|
|
133
|
+
collapsed?: Record<string, boolean>;
|
|
134
|
+
/** swimlane id -> collapsed. */
|
|
135
|
+
collapsedSwim?: Record<string, boolean>;
|
|
136
|
+
/** Explicit lane order (ids), when lanes have been drag-reordered. */
|
|
137
|
+
laneOrder?: string[];
|
|
138
|
+
/** rowId -> subtaskId -> done override. */
|
|
139
|
+
subDone?: Record<string, Record<string, boolean>>;
|
|
140
|
+
/** rowId -> subtasks added on the card. */
|
|
141
|
+
subAdded?: Record<string, BoardSubtask[]>;
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
/** Emitted when a card's built-in editor is saved. */
|
|
145
|
+
export type BoardCardCommitEvent<TData extends RowData = RowData> = {
|
|
146
|
+
/** The edited row. */
|
|
147
|
+
row: TData;
|
|
148
|
+
/** Only the fields that changed, `{ field: newValue }`. */
|
|
149
|
+
changes: Record<string, unknown>;
|
|
150
|
+
/** The full set of edited field values. */
|
|
151
|
+
values: Record<string, unknown>;
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
/** Emitted when a card is dragged to a new lane and/or position. */
|
|
155
|
+
export type BoardCardMoveEvent<TData extends RowData = RowData> = {
|
|
156
|
+
/** The dragged row. */
|
|
157
|
+
row: TData;
|
|
158
|
+
/** Lane the card came from. */
|
|
159
|
+
fromLane: string;
|
|
160
|
+
/** Lane the card was dropped on. */
|
|
161
|
+
toLane: string;
|
|
162
|
+
/** Insertion index within the destination lane. */
|
|
163
|
+
toIndex: number;
|
|
164
|
+
/** Swimlane the card came from (only when `swimlaneBy` is set). */
|
|
165
|
+
fromSwimlane?: string;
|
|
166
|
+
/** Swimlane the card was dropped on (only when `swimlaneBy` is set). */
|
|
167
|
+
toSwimlane?: string;
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Turns the grid into a Kanban board. Set `board` and the grid renders its
|
|
172
|
+
* rows as cards in horizontal lanes (bucketed by the `groupBy` field) instead
|
|
173
|
+
* of a table. Dragging a card between lanes fires {@link BoardConfig.onCardMove}
|
|
174
|
+
* where you reassign the `groupBy` field on your own data.
|
|
175
|
+
*/
|
|
176
|
+
export type BoardConfig<TFeatures extends TableFeatures = TableFeatures, TData extends RowData = RowData> = {
|
|
177
|
+
/** Field whose value buckets each row into a lane. */
|
|
178
|
+
groupBy: keyof TData & string;
|
|
179
|
+
/**
|
|
180
|
+
* Explicit, ordered lanes. Omit to derive lanes from the distinct
|
|
181
|
+
* `groupBy` values found in the data (first-seen order).
|
|
182
|
+
*/
|
|
183
|
+
lanes?: ReadonlyArray<BoardLane>;
|
|
184
|
+
/** Custom card body. Receives the row. Omit for the built-in default card. */
|
|
185
|
+
card?: Snippet<[TData]>;
|
|
186
|
+
/**
|
|
187
|
+
* Fired when a card is dragged to a new lane/position. Update your data
|
|
188
|
+
* here (reassign the `groupBy` field, and optionally reorder). Without it
|
|
189
|
+
* the board is display-only.
|
|
190
|
+
*/
|
|
191
|
+
onCardMove?: (event: BoardCardMoveEvent<TData>) => void;
|
|
192
|
+
/**
|
|
193
|
+
* Add-card affordance. A `+` in the lane header (or, with `composer`, a
|
|
194
|
+
* type-a-title box at the bottom of the lane) fires this with the lane id
|
|
195
|
+
* and - from the composer - the typed title.
|
|
196
|
+
*/
|
|
197
|
+
onCardAdd?: (laneId: string, title?: string) => void;
|
|
198
|
+
/**
|
|
199
|
+
* Show a quick-add composer at the bottom of each lane (a "+ Add a card"
|
|
200
|
+
* button that opens an inline title input; Enter calls `onCardAdd(lane,
|
|
201
|
+
* title)`). Without it, `onCardAdd` shows a plain `+` in the header.
|
|
202
|
+
*/
|
|
203
|
+
composer?: boolean;
|
|
204
|
+
/**
|
|
205
|
+
* Field holding a card's checklist of sub-tasks (`BoardSubtask[]`). The card
|
|
206
|
+
* shows a progress chip + bar and expands to an inline checklist with a
|
|
207
|
+
* quick-add. Toggles/adds run through an overlay (never mutating your data)
|
|
208
|
+
* and fire the callbacks below.
|
|
209
|
+
*/
|
|
210
|
+
subtasks?: keyof TData & string;
|
|
211
|
+
/** Fired when a sub-task checkbox is toggled. */
|
|
212
|
+
onSubtaskToggle?: (row: TData, subtaskId: string | number, done: boolean) => void;
|
|
213
|
+
/** Fired when a sub-task is added from the card. */
|
|
214
|
+
onSubtaskAdd?: (row: TData, title: string) => void;
|
|
215
|
+
/**
|
|
216
|
+
* Field holding label/tag strings (or `{ text, color }`) shown as chips on
|
|
217
|
+
* the default card's badge row.
|
|
218
|
+
*/
|
|
219
|
+
labelsField?: keyof TData & string;
|
|
220
|
+
/** Field holding a due date (Date | ISO string); shown as a badge, red when overdue. */
|
|
221
|
+
dueField?: keyof TData & string;
|
|
222
|
+
/**
|
|
223
|
+
* Field holding one or more assignee names (string | string[]); shown as
|
|
224
|
+
* avatar(s) on the default card's badge row.
|
|
225
|
+
*/
|
|
226
|
+
assigneesField?: keyof TData & string;
|
|
227
|
+
/**
|
|
228
|
+
* Enable the built-in card editor: double-click a card (or press F2 while
|
|
229
|
+
* it is focused) to edit its fields inline. Fields are rendered from the
|
|
230
|
+
* columns that declare an `editorType` (or all fields if none do). Ignored
|
|
231
|
+
* when `onCardEdit` is set.
|
|
232
|
+
*/
|
|
233
|
+
editable?: boolean;
|
|
234
|
+
/**
|
|
235
|
+
* Open your own editor instead of the built-in one. Called on double-click /
|
|
236
|
+
* F2 with the row; you might open a drawer or route to a detail screen.
|
|
237
|
+
*/
|
|
238
|
+
onCardEdit?: (row: TData) => void;
|
|
239
|
+
/**
|
|
240
|
+
* Built-in **detail drawer**: opening a card (double-click / F2) shows an
|
|
241
|
+
* `SvDrawer` with an `SvForm` of its fields (kit editors). `true` = all
|
|
242
|
+
* fields; pass a {@link BoardDrawerConfig} to pick a subset / customize.
|
|
243
|
+
* Ignored when `onCardEdit` is set.
|
|
244
|
+
*/
|
|
245
|
+
drawer?: boolean | BoardDrawerConfig<TData>;
|
|
246
|
+
/** Fired when the built-in editor is saved. Persist / mirror the changes. */
|
|
247
|
+
onCardCommit?: (event: BoardCardCommitEvent<TData>) => void;
|
|
248
|
+
/** Field used as the card title. Defaults to the first column's field. */
|
|
249
|
+
titleField?: keyof TData & string;
|
|
250
|
+
/**
|
|
251
|
+
* Column fields shown as label:value meta lines on the default card
|
|
252
|
+
* (max 4). Defaults to the first few non-title, non-groupBy columns.
|
|
253
|
+
*/
|
|
254
|
+
cardFields?: ReadonlyArray<keyof TData & string>;
|
|
255
|
+
/**
|
|
256
|
+
* Second grouping axis: split the board into horizontal **swimlanes** by
|
|
257
|
+
* this field. Each swimlane band shows the full lane set with only its own
|
|
258
|
+
* cards. Dragging a card into another band reassigns this field too.
|
|
259
|
+
*/
|
|
260
|
+
swimlaneBy?: keyof TData & string;
|
|
261
|
+
/** Let users collapse a swimlane band via its header chevron. */
|
|
262
|
+
collapsibleSwimlanes?: boolean;
|
|
263
|
+
/**
|
|
264
|
+
* Field holding a card's comments - `BoardComment[]` (or plain strings, or a
|
|
265
|
+
* number for a count only). Renders a comment-count badge that expands to a
|
|
266
|
+
* thread; provide the callbacks below to let users write / delete comments.
|
|
267
|
+
*/
|
|
268
|
+
commentsField?: keyof TData & string;
|
|
269
|
+
/** Fired when a comment is added on the card; append it to your data. */
|
|
270
|
+
onCommentAdd?: (row: TData, text: string) => void;
|
|
271
|
+
/** Fired when a comment's delete button is pressed; remove it from your data. */
|
|
272
|
+
onCommentDelete?: (row: TData, commentId: string | number) => void;
|
|
273
|
+
/**
|
|
274
|
+
* Field holding a card's attachments - an array or a number. Renders an
|
|
275
|
+
* attachment-count badge on the default card.
|
|
276
|
+
*/
|
|
277
|
+
attachmentsField?: keyof TData & string;
|
|
278
|
+
/**
|
|
279
|
+
* Field holding a cover colour (any CSS colour string) shown as a strip
|
|
280
|
+
* across the top of the default card.
|
|
281
|
+
*/
|
|
282
|
+
coverField?: keyof TData & string;
|
|
283
|
+
/**
|
|
284
|
+
* Enforce `wipLimit`: reject a drop / keyboard move that would push a lane
|
|
285
|
+
* past its limit (the card snaps back). Off by default (the limit is a
|
|
286
|
+
* soft, visual flag only).
|
|
287
|
+
*/
|
|
288
|
+
enforceWip?: boolean;
|
|
289
|
+
/** Let users collapse a lane to a slim strip by clicking its header. */
|
|
290
|
+
collapsibleLanes?: boolean;
|
|
291
|
+
/** Let users drag lane headers to reorder lanes (persisted with `persistKey`). */
|
|
292
|
+
reorderableLanes?: boolean;
|
|
293
|
+
/** Fired after a lane drag-reorder, with the new ordered lane ids. */
|
|
294
|
+
onLaneReorder?: (orderedIds: string[]) => void;
|
|
295
|
+
/**
|
|
296
|
+
* Enable inline lane rename: double-click a lane title to edit it. Fires
|
|
297
|
+
* with the lane id and new title - update your own lane config / data.
|
|
298
|
+
*/
|
|
299
|
+
onLaneRename?: (laneId: string, title: string) => void;
|
|
300
|
+
/**
|
|
301
|
+
* Per-swimlane summary shown in the band header (e.g. a points/$ total or a
|
|
302
|
+
* WIP count). Receives the swimlane's cards and its id; return a short string.
|
|
303
|
+
*/
|
|
304
|
+
swimlaneSummary?: (rows: TData[], swimId: string) => string;
|
|
305
|
+
/**
|
|
306
|
+
* Right-click (or long-press) a card to open a context menu. Return the
|
|
307
|
+
* menu items for that card; `ctx` gives board-native `moveTo(laneId)` and
|
|
308
|
+
* `edit()` helpers plus the lane list. Return empty/undefined for no menu.
|
|
309
|
+
*/
|
|
310
|
+
cardMenu?: (row: TData, ctx: BoardMenuContext<TData>) => ReadonlyArray<MenuItem> | undefined;
|
|
311
|
+
/** Right-click a lane header for a lane context menu (rename / clear / add / collapse). */
|
|
312
|
+
laneMenu?: (laneId: string, ctx: BoardLaneMenuContext<TData>) => ReadonlyArray<MenuItem> | undefined;
|
|
313
|
+
/**
|
|
314
|
+
* Truthy field marks a card as **blocked** (waiting on a dependency): a red
|
|
315
|
+
* corner + a "Blocked" badge on the card. If the value is a non-empty string
|
|
316
|
+
* it is used as the blocked **reason** (shown in the badge tooltip). A blocked
|
|
317
|
+
* card is **locked from moving** (drag + keyboard) until it is unblocked - set
|
|
318
|
+
* {@link BoardConfig.flagBlocksMoves} `false` for a purely visual flag.
|
|
319
|
+
*/
|
|
320
|
+
flagField?: keyof TData & string;
|
|
321
|
+
/** Whether a blocked (`flagField`) card is locked from moving. Defaults to `true`. */
|
|
322
|
+
flagBlocksMoves?: boolean;
|
|
323
|
+
/**
|
|
324
|
+
* Field holding a created/started date (Date | ISO string); shown as a
|
|
325
|
+
* relative **age** badge (e.g. `3d`).
|
|
326
|
+
*/
|
|
327
|
+
ageField?: keyof TData & string;
|
|
328
|
+
/**
|
|
329
|
+
* Fields to expose as a **facet filter bar** above the board - a chip per
|
|
330
|
+
* distinct value; selecting chips filters the visible cards.
|
|
331
|
+
*/
|
|
332
|
+
facets?: ReadonlyArray<keyof TData & string>;
|
|
333
|
+
/**
|
|
334
|
+
* Enable card **multi-select**: click to select, Ctrl/Cmd-click to toggle,
|
|
335
|
+
* and dragging a selected card moves the whole selection. Fires
|
|
336
|
+
* `onSelectionChange`.
|
|
337
|
+
*/
|
|
338
|
+
selectable?: boolean;
|
|
339
|
+
/** Fired when the selection changes, with the selected rows. */
|
|
340
|
+
onSelectionChange?: (rows: TData[]) => void;
|
|
341
|
+
/**
|
|
342
|
+
* Field holding a card's **child rows** (`TData[]`) - the card gets a
|
|
343
|
+
* children count and expands to show them as nested mini-cards (epic ->
|
|
344
|
+
* stories). Each child renders its title and, if present, its `groupBy` value.
|
|
345
|
+
*/
|
|
346
|
+
childrenField?: keyof TData & string;
|
|
347
|
+
/**
|
|
348
|
+
* Optional per-lane summary shown in the lane header (e.g. a story-point or
|
|
349
|
+
* dollar total). Receives the lane's cards (the current swimlane's, when
|
|
350
|
+
* `swimlaneBy` is set) and the lane id; return a short string.
|
|
351
|
+
*/
|
|
352
|
+
laneSummary?: (rows: TData[], laneId: string) => string;
|
|
353
|
+
/** Show the built-in card search box (default `true`). */
|
|
354
|
+
searchable?: boolean;
|
|
355
|
+
/** Placeholder for the search box. Defaults to `"Search cards..."`. */
|
|
356
|
+
searchPlaceholder?: string;
|
|
357
|
+
/**
|
|
358
|
+
* Virtualize each lane so only the cards in view are in the DOM - for boards
|
|
359
|
+
* with thousands of cards per lane. Assumes roughly uniform card height; set
|
|
360
|
+
* `cardHeight` to match your cards.
|
|
361
|
+
*/
|
|
362
|
+
virtualized?: boolean;
|
|
363
|
+
/** Estimated card height in px used by `virtualized` windowing (default 76). */
|
|
364
|
+
cardHeight?: number;
|
|
365
|
+
/**
|
|
366
|
+
* Persist the board layout (card positions, edits, collapsed lanes) to
|
|
367
|
+
* `localStorage` under this key, restored on load. Requires `getRowId` for
|
|
368
|
+
* stable identity across reloads.
|
|
369
|
+
*/
|
|
370
|
+
persistKey?: string;
|
|
371
|
+
/** Called whenever the board layout changes, with the serializable state. */
|
|
372
|
+
onLayoutChange?: (layout: BoardLayout) => void;
|
|
373
|
+
};
|
|
374
|
+
|
|
41
375
|
export type Props<TFeatures extends TableFeatures = TableFeatures, TData extends RowData = RowData> = {
|
|
42
376
|
data: ReadonlyArray<TData>;
|
|
43
377
|
columns: Array<ColumnDef<TFeatures, TData>>;
|
|
378
|
+
/**
|
|
379
|
+
* Kanban board mode. When set, the grid renders its rows as cards in
|
|
380
|
+
* horizontal lanes (bucketed by `board.groupBy`) instead of a table. See
|
|
381
|
+
* {@link BoardConfig}.
|
|
382
|
+
*/
|
|
383
|
+
board?: BoardConfig<TFeatures, TData>;
|
|
44
384
|
/**
|
|
45
385
|
* Right-click context menu. `true` shows the default item set (copy, cut,
|
|
46
386
|
* paste, clear, insert row above/below, remove row, remove column). Pass an
|
|
@@ -173,6 +513,15 @@ export type Props<TFeatures extends TableFeatures = TableFeatures, TData extends
|
|
|
173
513
|
* win once they happen.
|
|
174
514
|
*/
|
|
175
515
|
fitColumns?: boolean;
|
|
516
|
+
/**
|
|
517
|
+
* Make the grid usable on narrow screens. When the grid's own width drops
|
|
518
|
+
* below the breakpoint (default `640`px), pinned columns are un-pinned so the
|
|
519
|
+
* whole grid pans, `fitColumns` scaling is suspended (columns keep their
|
|
520
|
+
* natural widths and scroll), touch panning is smoothed, and columns whose
|
|
521
|
+
* `hideBelow` exceeds the width are hidden. `true` uses the default
|
|
522
|
+
* breakpoint; pass `{ breakpoint }` to change it. Off by default.
|
|
523
|
+
*/
|
|
524
|
+
responsive?: boolean | { breakpoint?: number };
|
|
176
525
|
showFilterMenu?: boolean;
|
|
177
526
|
showFilterRow?: boolean;
|
|
178
527
|
enableCellSelection?: boolean;
|
|
@@ -453,6 +802,31 @@ export type Props<TFeatures extends TableFeatures = TableFeatures, TData extends
|
|
|
453
802
|
* `isDetailRow` is true. Receives the row's data and its index.
|
|
454
803
|
*/
|
|
455
804
|
renderDetailRow?: Snippet<[{ row: TData; rowIndex: number }]>;
|
|
805
|
+
/**
|
|
806
|
+
* Server-side group / tree keyboard + accessibility, built into the grid. When
|
|
807
|
+
* set, the grid uses the treegrid role and marks matching rows with
|
|
808
|
+
* `aria-level` / `aria-expanded`, and ArrowRight / ArrowLeft expand / collapse
|
|
809
|
+
* the focused group row (no app-level key handling). Pair with `serverGroupRows`
|
|
810
|
+
* + `SvGroupCell` for the visual expander. Every accessor receives the row data.
|
|
811
|
+
*/
|
|
812
|
+
serverGroup?: {
|
|
813
|
+
/** Whether a row is an expandable group / branch. */
|
|
814
|
+
isGroup: (row: TData) => boolean;
|
|
815
|
+
/** Tree depth of the row (0 = top level), for `aria-level`. */
|
|
816
|
+
level: (row: TData) => number;
|
|
817
|
+
/** Whether an expandable row is currently expanded. */
|
|
818
|
+
expanded?: (row: TData) => boolean;
|
|
819
|
+
/** Expand / collapse a group row. Called on ArrowRight / ArrowLeft. */
|
|
820
|
+
onToggle: (row: TData) => void;
|
|
821
|
+
};
|
|
822
|
+
/**
|
|
823
|
+
* Server-side set-filter values. When set, a column's filter checklist is
|
|
824
|
+
* populated by fetching the distinct values from the server (once per column,
|
|
825
|
+
* cached) instead of deriving them from the loaded page - so the checklist
|
|
826
|
+
* shows every value, not just those on screen. Return the distinct string
|
|
827
|
+
* values for the column id.
|
|
828
|
+
*/
|
|
829
|
+
serverFilterValues?: (columnId: string) => Promise<string[]>;
|
|
456
830
|
/**
|
|
457
831
|
* Rows to pin to the TOP of the grid - rendered above the regular
|
|
458
832
|
* rows and sticky-positioned so they stay visible while the user
|