@proyecto-viviana/solidaria-components 0.5.0 → 0.7.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-APACHE-2.0 +201 -0
- package/NOTICE +91 -0
- package/README.md +4 -7
- package/dist/ActionBar.d.ts +2 -10
- package/dist/ActionBar.d.ts.map +1 -1
- package/dist/ActionBar.js +95 -59
- package/dist/ActionBar.js.map +1 -1
- package/dist/ActionBar.jsx +42 -15
- package/dist/ActionBar.jsx.map +1 -1
- package/dist/ActionGroup.d.ts +1 -12
- package/dist/ActionGroup.d.ts.map +1 -1
- package/dist/ActionGroup.js +66 -44
- package/dist/ActionGroup.js.map +1 -1
- package/dist/ActionGroup.jsx +25 -10
- package/dist/ActionGroup.jsx.map +1 -1
- package/dist/Alert.d.ts +4 -1
- package/dist/Alert.d.ts.map +1 -1
- package/dist/Alert.js +25 -17
- package/dist/Alert.js.map +1 -1
- package/dist/Alert.jsx +9 -5
- package/dist/Alert.jsx.map +1 -1
- package/dist/Autocomplete.d.ts +2 -9
- package/dist/Autocomplete.d.ts.map +1 -1
- package/dist/Autocomplete.js +18 -5
- package/dist/Autocomplete.js.map +1 -1
- package/dist/Autocomplete.jsx +20 -7
- package/dist/Autocomplete.jsx.map +1 -1
- package/dist/Breadcrumbs.d.ts +2 -7
- package/dist/Breadcrumbs.d.ts.map +1 -1
- package/dist/Breadcrumbs.js +71 -51
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Breadcrumbs.jsx +25 -12
- package/dist/Breadcrumbs.jsx.map +1 -1
- package/dist/Button.d.ts +1 -7
- package/dist/Button.d.ts.map +1 -1
- package/dist/Button.js +125 -72
- package/dist/Button.js.map +1 -1
- package/dist/Button.jsx +105 -43
- package/dist/Button.jsx.map +1 -1
- package/dist/Calendar.d.ts +1 -7
- package/dist/Calendar.d.ts.map +1 -1
- package/dist/Calendar.js +297 -221
- package/dist/Calendar.js.map +1 -1
- package/dist/Calendar.jsx +52 -32
- package/dist/Calendar.jsx.map +1 -1
- package/dist/CalendarPicker.d.ts +1 -10
- package/dist/CalendarPicker.d.ts.map +1 -1
- package/dist/CalendarPicker.js +12 -0
- package/dist/CalendarPicker.js.map +1 -1
- package/dist/CalendarPicker.jsx +12 -0
- package/dist/CalendarPicker.jsx.map +1 -1
- package/dist/Checkbox.d.ts +2 -7
- package/dist/Checkbox.d.ts.map +1 -1
- package/dist/Checkbox.js +332 -270
- package/dist/Checkbox.js.map +1 -1
- package/dist/Checkbox.jsx +70 -77
- package/dist/Checkbox.jsx.map +1 -1
- package/dist/Collection.d.ts +33 -7
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +128 -74
- package/dist/Collection.js.map +1 -1
- package/dist/Collection.jsx +46 -7
- package/dist/Collection.jsx.map +1 -1
- package/dist/Color.d.ts +15 -20
- package/dist/Color.d.ts.map +1 -1
- package/dist/Color.js +572 -334
- package/dist/Color.js.map +1 -1
- package/dist/Color.jsx +205 -85
- package/dist/Color.jsx.map +1 -1
- package/dist/ColorEditor.d.ts +3 -1
- package/dist/ColorEditor.d.ts.map +1 -1
- package/dist/ColorEditor.js +147 -124
- package/dist/ColorEditor.js.map +1 -1
- package/dist/ColorEditor.jsx +4 -1
- package/dist/ColorEditor.jsx.map +1 -1
- package/dist/ComboBox.d.ts +31 -10
- package/dist/ComboBox.d.ts.map +1 -1
- package/dist/ComboBox.js +539 -274
- package/dist/ComboBox.js.map +1 -1
- package/dist/ComboBox.jsx +213 -70
- package/dist/ComboBox.jsx.map +1 -1
- package/dist/ContextualHelpTrigger.d.ts +1 -7
- package/dist/ContextualHelpTrigger.d.ts.map +1 -1
- package/dist/ContextualHelpTrigger.js +102 -72
- package/dist/ContextualHelpTrigger.js.map +1 -1
- package/dist/ContextualHelpTrigger.jsx +36 -16
- package/dist/ContextualHelpTrigger.jsx.map +1 -1
- package/dist/DateField.d.ts +2 -7
- package/dist/DateField.d.ts.map +1 -1
- package/dist/DateField.js +0 -2
- package/dist/DateField.jsx +0 -2
- package/dist/DateField2.js +194 -179
- package/dist/DateField2.js.map +1 -1
- package/dist/DateField2.jsx +58 -55
- package/dist/DateField2.jsx.map +1 -1
- package/dist/DatePicker.d.ts +7 -7
- package/dist/DatePicker.d.ts.map +1 -1
- package/dist/DatePicker.js +2 -2
- package/dist/DatePicker.jsx +2 -2
- package/dist/DatePicker2.js +357 -435
- package/dist/DatePicker2.js.map +1 -1
- package/dist/DatePicker2.jsx +109 -178
- package/dist/DatePicker2.jsx.map +1 -1
- package/dist/DateRangePickerContext.d.ts +7 -0
- package/dist/DateRangePickerContext.d.ts.map +1 -1
- package/dist/Dialog.d.ts +4 -9
- package/dist/Dialog.d.ts.map +1 -1
- package/dist/Dialog.js +168 -101
- package/dist/Dialog.js.map +1 -1
- package/dist/Dialog.jsx +75 -27
- package/dist/Dialog.jsx.map +1 -1
- package/dist/Disclosure.d.ts +1 -9
- package/dist/Disclosure.d.ts.map +1 -1
- package/dist/Disclosure.js +121 -79
- package/dist/Disclosure.js.map +1 -1
- package/dist/Disclosure.jsx +32 -19
- package/dist/Disclosure.jsx.map +1 -1
- package/dist/DragAndDrop.d.ts +9 -6
- package/dist/DragAndDrop.d.ts.map +1 -1
- package/dist/DragAndDrop.js +37 -22
- package/dist/DragAndDrop.js.map +1 -1
- package/dist/DragAndDrop.jsx +20 -4
- package/dist/DragAndDrop.jsx.map +1 -1
- package/dist/DragPreview.d.ts +1 -1
- package/dist/DragPreview.d.ts.map +1 -1
- package/dist/DropZone.d.ts +1 -7
- package/dist/DropZone.d.ts.map +1 -1
- package/dist/DropZone.js +74 -40
- package/dist/DropZone.js.map +1 -1
- package/dist/DropZone.jsx +24 -8
- package/dist/DropZone.jsx.map +1 -1
- package/dist/ElementTag.d.ts +9 -20
- package/dist/ElementTag.d.ts.map +1 -1
- package/dist/ElementTag.js +8 -210
- package/dist/ElementTag.js.map +1 -1
- package/dist/ElementTag.jsx +8 -57
- package/dist/ElementTag.jsx.map +1 -1
- package/dist/FieldError.d.ts +8 -7
- package/dist/FieldError.d.ts.map +1 -1
- package/dist/FieldError.js +33 -13
- package/dist/FieldError.js.map +1 -1
- package/dist/FieldError.jsx +20 -5
- package/dist/FieldError.jsx.map +1 -1
- package/dist/FileTrigger.d.ts +1 -7
- package/dist/FileTrigger.d.ts.map +1 -1
- package/dist/FileTrigger.js +30 -12
- package/dist/FileTrigger.js.map +1 -1
- package/dist/FileTrigger.jsx +15 -2
- package/dist/FileTrigger.jsx.map +1 -1
- package/dist/Focusable.d.ts +2 -8
- package/dist/Focusable.d.ts.map +1 -1
- package/dist/Focusable.js +23 -6
- package/dist/Focusable.js.map +1 -1
- package/dist/Focusable.jsx +22 -5
- package/dist/Focusable.jsx.map +1 -1
- package/dist/Form.d.ts +9 -8
- package/dist/Form.d.ts.map +1 -1
- package/dist/Form.js +66 -43
- package/dist/Form.js.map +1 -1
- package/dist/Form.jsx +36 -16
- package/dist/Form.jsx.map +1 -1
- package/dist/GridList.d.ts +5 -10
- package/dist/GridList.d.ts.map +1 -1
- package/dist/GridList.js +372 -243
- package/dist/GridList.js.map +1 -1
- package/dist/GridList.jsx +177 -99
- package/dist/GridList.jsx.map +1 -1
- package/dist/HiddenDateInput.d.ts +1 -7
- package/dist/HiddenDateInput.d.ts.map +1 -1
- package/dist/Icon.d.ts +4 -1
- package/dist/Icon.d.ts.map +1 -1
- package/dist/Icon.js +41 -37
- package/dist/Icon.js.map +1 -1
- package/dist/Icon.jsx +7 -3
- package/dist/Icon.jsx.map +1 -1
- package/dist/Keyboard.d.ts +1 -7
- package/dist/Keyboard.d.ts.map +1 -1
- package/dist/Keyboard.js +24 -11
- package/dist/Keyboard.js.map +1 -1
- package/dist/Keyboard.jsx +15 -2
- package/dist/Keyboard.jsx.map +1 -1
- package/dist/Label.d.ts +20 -0
- package/dist/Label.d.ts.map +1 -0
- package/dist/Label.js +60 -0
- package/dist/Label.js.map +1 -0
- package/dist/Label.jsx +47 -0
- package/dist/Label.jsx.map +1 -0
- package/dist/Landmark.d.ts +4 -1
- package/dist/Landmark.d.ts.map +1 -1
- package/dist/Landmark.js +10 -4
- package/dist/Landmark.js.map +1 -1
- package/dist/Landmark.jsx +5 -1
- package/dist/Landmark.jsx.map +1 -1
- package/dist/Link.d.ts +2 -7
- package/dist/Link.d.ts.map +1 -1
- package/dist/Link.js +56 -36
- package/dist/Link.js.map +1 -1
- package/dist/Link.jsx +52 -10
- package/dist/Link.jsx.map +1 -1
- package/dist/ListBox.d.ts +17 -13
- package/dist/ListBox.d.ts.map +1 -1
- package/dist/ListBox.js +647 -348
- package/dist/ListBox.js.map +1 -1
- package/dist/ListBox.jsx +339 -236
- package/dist/ListBox.jsx.map +1 -1
- package/dist/ListDropTargetDelegate.d.ts +3 -0
- package/dist/ListDropTargetDelegate.d.ts.map +1 -1
- package/dist/Menu.d.ts +39 -30
- package/dist/Menu.d.ts.map +1 -1
- package/dist/Menu.js +547 -368
- package/dist/Menu.js.map +1 -1
- package/dist/Menu.jsx +328 -230
- package/dist/Menu.jsx.map +1 -1
- package/dist/Meter.d.ts +6 -13
- package/dist/Meter.d.ts.map +1 -1
- package/dist/Meter.js +55 -18
- package/dist/Meter.js.map +1 -1
- package/dist/Meter.jsx +33 -8
- package/dist/Meter.jsx.map +1 -1
- package/dist/Modal.d.ts +1 -7
- package/dist/Modal.d.ts.map +1 -1
- package/dist/Modal.js +104 -56
- package/dist/Modal.js.map +1 -1
- package/dist/Modal.jsx +68 -38
- package/dist/Modal.jsx.map +1 -1
- package/dist/NumberField.d.ts +4 -7
- package/dist/NumberField.d.ts.map +1 -1
- package/dist/NumberField.js +243 -124
- package/dist/NumberField.js.map +1 -1
- package/dist/NumberField.jsx +115 -26
- package/dist/NumberField.jsx.map +1 -1
- package/dist/Popover.d.ts +15 -7
- package/dist/Popover.d.ts.map +1 -1
- package/dist/Popover.js +370 -181
- package/dist/Popover.js.map +1 -1
- package/dist/Popover.jsx +215 -82
- package/dist/Popover.jsx.map +1 -1
- package/dist/Pressable.d.ts +2 -8
- package/dist/Pressable.d.ts.map +1 -1
- package/dist/Pressable.js +23 -6
- package/dist/Pressable.js.map +1 -1
- package/dist/Pressable.jsx +22 -5
- package/dist/Pressable.jsx.map +1 -1
- package/dist/PreviewTrigger.d.ts +24 -0
- package/dist/PreviewTrigger.d.ts.map +1 -0
- package/dist/PreviewTrigger.js +128 -0
- package/dist/PreviewTrigger.js.map +1 -0
- package/dist/PreviewTrigger.jsx +117 -0
- package/dist/PreviewTrigger.jsx.map +1 -0
- package/dist/ProgressBar.d.ts +1 -7
- package/dist/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar.js +34 -14
- package/dist/ProgressBar.js.map +1 -1
- package/dist/ProgressBar.jsx +17 -3
- package/dist/ProgressBar.jsx.map +1 -1
- package/dist/RadioGroup.d.ts +2 -7
- package/dist/RadioGroup.d.ts.map +1 -1
- package/dist/RadioGroup.js +388 -269
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioGroup.jsx +110 -99
- package/dist/RadioGroup.jsx.map +1 -1
- package/dist/RangeCalendar.d.ts +3 -7
- package/dist/RangeCalendar.d.ts.map +1 -1
- package/dist/RangeCalendar.js +271 -202
- package/dist/RangeCalendar.js.map +1 -1
- package/dist/RangeCalendar.jsx +56 -37
- package/dist/RangeCalendar.jsx.map +1 -1
- package/dist/RouterProvider.d.ts +3 -9
- package/dist/RouterProvider.d.ts.map +1 -1
- package/dist/RouterProvider.js +15 -14
- package/dist/RouterProvider.js.map +1 -1
- package/dist/RouterProvider.jsx +14 -13
- package/dist/RouterProvider.jsx.map +1 -1
- package/dist/SearchField.d.ts +4 -7
- package/dist/SearchField.d.ts.map +1 -1
- package/dist/SearchField.js +191 -164
- package/dist/SearchField.js.map +1 -1
- package/dist/SearchField.jsx +69 -62
- package/dist/SearchField.jsx.map +1 -1
- package/dist/Select.d.ts +5 -10
- package/dist/Select.d.ts.map +1 -1
- package/dist/Select.js +565 -359
- package/dist/Select.js.map +1 -1
- package/dist/Select.jsx +281 -161
- package/dist/Select.jsx.map +1 -1
- package/dist/SelectionIndicator.d.ts +1 -4
- package/dist/SelectionIndicator.d.ts.map +1 -1
- package/dist/SelectionIndicator.js +29 -13
- package/dist/SelectionIndicator.js.map +1 -1
- package/dist/SelectionIndicator.jsx +18 -4
- package/dist/SelectionIndicator.jsx.map +1 -1
- package/dist/Separator.d.ts +1 -7
- package/dist/Separator.d.ts.map +1 -1
- package/dist/Separator.js +22 -6
- package/dist/Separator.js.map +1 -1
- package/dist/Separator.jsx +16 -3
- package/dist/Separator.jsx.map +1 -1
- package/dist/SharedElementTransition.d.ts +1 -10
- package/dist/SharedElementTransition.d.ts.map +1 -1
- package/dist/SharedElementTransition.js +68 -40
- package/dist/SharedElementTransition.js.map +1 -1
- package/dist/SharedElementTransition.jsx +49 -25
- package/dist/SharedElementTransition.jsx.map +1 -1
- package/dist/Slider.d.ts +2 -8
- package/dist/Slider.d.ts.map +1 -1
- package/dist/Slider.js +155 -97
- package/dist/Slider.js.map +1 -1
- package/dist/Slider.jsx +25 -12
- package/dist/Slider.jsx.map +1 -1
- package/dist/StepList.d.ts +1 -7
- package/dist/StepList.d.ts.map +1 -1
- package/dist/StepList.js +112 -68
- package/dist/StepList.js.map +1 -1
- package/dist/StepList.jsx +58 -20
- package/dist/StepList.jsx.map +1 -1
- package/dist/Switch.d.ts +2 -9
- package/dist/Switch.d.ts.map +1 -1
- package/dist/Switch.js +164 -114
- package/dist/Switch.js.map +1 -1
- package/dist/Switch.jsx +26 -13
- package/dist/Switch.jsx.map +1 -1
- package/dist/Table.d.ts +2 -1
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +689 -592
- package/dist/Table.js.map +1 -1
- package/dist/Table.jsx +317 -237
- package/dist/Table.jsx.map +1 -1
- package/dist/Tabs.d.ts +2 -7
- package/dist/Tabs.d.ts.map +1 -1
- package/dist/Tabs.js +278 -293
- package/dist/Tabs.js.map +1 -1
- package/dist/Tabs.jsx +68 -66
- package/dist/Tabs.jsx.map +1 -1
- package/dist/TagGroup.d.ts +4 -11
- package/dist/TagGroup.d.ts.map +1 -1
- package/dist/TagGroup.js +153 -115
- package/dist/TagGroup.js.map +1 -1
- package/dist/TagGroup.jsx +37 -24
- package/dist/TagGroup.jsx.map +1 -1
- package/dist/Text.d.ts +3 -3
- package/dist/Text.d.ts.map +1 -1
- package/dist/Text.js +24 -7
- package/dist/Text.js.map +1 -1
- package/dist/Text.jsx +17 -5
- package/dist/Text.jsx.map +1 -1
- package/dist/TextField.d.ts +3 -16
- package/dist/TextField.d.ts.map +1 -1
- package/dist/TextField.js +104 -129
- package/dist/TextField.js.map +1 -1
- package/dist/TextField.jsx +76 -102
- package/dist/TextField.jsx.map +1 -1
- package/dist/TimeField.d.ts +2 -15
- package/dist/TimeField.d.ts.map +1 -1
- package/dist/TimeField.js +86 -102
- package/dist/TimeField.js.map +1 -1
- package/dist/TimeField.jsx +32 -49
- package/dist/TimeField.jsx.map +1 -1
- package/dist/Toast.d.ts +10 -13
- package/dist/Toast.d.ts.map +1 -1
- package/dist/Toast.js +209 -108
- package/dist/Toast.js.map +1 -1
- package/dist/Toast.jsx +127 -22
- package/dist/Toast.jsx.map +1 -1
- package/dist/ToggleButton.d.ts +1 -7
- package/dist/ToggleButton.d.ts.map +1 -1
- package/dist/ToggleButton.js +57 -35
- package/dist/ToggleButton.js.map +1 -1
- package/dist/ToggleButton.jsx +26 -12
- package/dist/ToggleButton.jsx.map +1 -1
- package/dist/ToggleButtonGroup.d.ts +1 -7
- package/dist/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/ToggleButtonGroup.js +59 -44
- package/dist/ToggleButtonGroup.js.map +1 -1
- package/dist/ToggleButtonGroup.jsx +25 -12
- package/dist/ToggleButtonGroup.jsx.map +1 -1
- package/dist/TokenField.d.ts +52 -0
- package/dist/TokenField.d.ts.map +1 -0
- package/dist/TokenField.js +301 -0
- package/dist/TokenField.js.map +1 -0
- package/dist/TokenField.jsx +197 -0
- package/dist/TokenField.jsx.map +1 -0
- package/dist/Toolbar.d.ts +2 -7
- package/dist/Toolbar.d.ts.map +1 -1
- package/dist/Toolbar.js +35 -16
- package/dist/Toolbar.js.map +1 -1
- package/dist/Toolbar.jsx +15 -2
- package/dist/Toolbar.jsx.map +1 -1
- package/dist/Tooltip.d.ts +2 -7
- package/dist/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip.js +105 -68
- package/dist/Tooltip.js.map +1 -1
- package/dist/Tooltip.jsx +60 -36
- package/dist/Tooltip.jsx.map +1 -1
- package/dist/Tree.d.ts +8 -11
- package/dist/Tree.d.ts.map +1 -1
- package/dist/Tree.js +486 -339
- package/dist/Tree.js.map +1 -1
- package/dist/Tree.jsx +155 -107
- package/dist/Tree.jsx.map +1 -1
- package/dist/Virtualizer.d.ts +39 -9
- package/dist/Virtualizer.d.ts.map +1 -1
- package/dist/Virtualizer.js +2 -2
- package/dist/Virtualizer.jsx +2 -2
- package/dist/Virtualizer2.js +491 -136
- package/dist/Virtualizer2.js.map +1 -1
- package/dist/Virtualizer2.jsx +455 -122
- package/dist/Virtualizer2.jsx.map +1 -1
- package/dist/VirtualizerLayouts.d.ts +55 -2
- package/dist/VirtualizerLayouts.d.ts.map +1 -1
- package/dist/VisuallyHidden.d.ts +4 -3
- package/dist/VisuallyHidden.d.ts.map +1 -1
- package/dist/VisuallyHidden.js +18 -11
- package/dist/VisuallyHidden.js.map +1 -1
- package/dist/VisuallyHidden.jsx +15 -9
- package/dist/VisuallyHidden.jsx.map +1 -1
- package/dist/contexts.d.ts +25 -0
- package/dist/contexts.d.ts.map +1 -1
- package/dist/contexts.js +3 -0
- package/dist/contexts.js.map +1 -1
- package/dist/contexts.jsx +3 -0
- package/dist/contexts.jsx.map +1 -1
- package/dist/index.d.ts +11 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -11
- package/dist/index.jsx +14 -11
- package/dist/intl/index.d.ts +16 -0
- package/dist/intl/index.d.ts.map +1 -0
- package/dist/intl.js +212 -0
- package/dist/intl.js.map +1 -0
- package/dist/intl.jsx +212 -0
- package/dist/intl.jsx.map +1 -0
- package/dist/useDragAndDrop.d.ts +4 -2
- package/dist/useDragAndDrop.d.ts.map +1 -1
- package/dist/useDragAndDrop2.js +39 -21
- package/dist/useDragAndDrop2.js.map +1 -1
- package/dist/useDragAndDrop2.jsx +39 -21
- package/dist/useDragAndDrop2.jsx.map +1 -1
- package/dist/utils.d.ts +28 -9
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +96 -24
- package/dist/utils.js.map +1 -1
- package/dist/utils.jsx +81 -24
- package/dist/utils.jsx.map +1 -1
- package/dist/virtualizer/Layout.d.ts +9 -0
- package/dist/virtualizer/Layout.d.ts.map +1 -1
- package/dist/virtualizer/Layout.js +23 -2
- package/dist/virtualizer/Layout.js.map +1 -1
- package/dist/virtualizer/Layout.jsx +23 -2
- package/dist/virtualizer/Layout.jsx.map +1 -1
- package/package.json +29 -10
- package/src/ActionBar.tsx +50 -24
- package/src/ActionGroup.tsx +31 -19
- package/src/Alert.tsx +10 -4
- package/src/Autocomplete.tsx +24 -15
- package/src/Breadcrumbs.tsx +32 -16
- package/src/Button.tsx +182 -67
- package/src/Calendar.tsx +65 -47
- package/src/CalendarPicker.tsx +16 -1
- package/src/Checkbox.tsx +84 -116
- package/src/Collection.tsx +84 -3
- package/src/Color.tsx +282 -104
- package/src/ColorEditor.tsx +5 -1
- package/src/ComboBox.tsx +384 -109
- package/src/ContextualHelpTrigger.tsx +47 -41
- package/src/DateField.tsx +74 -106
- package/src/DatePicker.tsx +156 -352
- package/src/DateRangePickerContext.tsx +8 -0
- package/src/Dialog.tsx +105 -38
- package/src/Disclosure.tsx +29 -19
- package/src/DragAndDrop.tsx +43 -8
- package/src/DragPreview.tsx +20 -1
- package/src/DropZone.tsx +32 -18
- package/src/ElementTag.tsx +14 -104
- package/src/FieldError.tsx +39 -7
- package/src/FileTrigger.tsx +18 -3
- package/src/Focusable.tsx +27 -6
- package/src/Form.tsx +57 -11
- package/src/GridList.tsx +233 -141
- package/src/HiddenDateInput.tsx +19 -3
- package/src/Icon.tsx +8 -2
- package/src/Keyboard.tsx +18 -2
- package/src/Label.tsx +77 -0
- package/src/Landmark.tsx +6 -1
- package/src/Link.tsx +65 -19
- package/src/ListBox.tsx +645 -468
- package/src/ListDropTargetDelegate.ts +4 -0
- package/src/Menu.tsx +512 -349
- package/src/Meter.tsx +42 -8
- package/src/Modal.tsx +85 -42
- package/src/NumberField.tsx +161 -48
- package/src/Popover.tsx +424 -148
- package/src/Pressable.tsx +27 -6
- package/src/PreviewTrigger.tsx +171 -0
- package/src/ProgressBar.tsx +25 -3
- package/src/RadioGroup.tsx +230 -161
- package/src/RangeCalendar.tsx +75 -63
- package/src/RouterProvider.tsx +24 -14
- package/src/SearchField.tsx +118 -121
- package/src/Select.tsx +454 -274
- package/src/SelectionIndicator.tsx +21 -3
- package/src/Separator.tsx +17 -1
- package/src/SharedElementTransition.tsx +115 -97
- package/src/Slider.tsx +35 -17
- package/src/StepList.tsx +71 -32
- package/src/Switch.tsx +45 -29
- package/src/Table.tsx +446 -380
- package/src/Tabs.tsx +132 -155
- package/src/TagGroup.tsx +53 -40
- package/src/Text.tsx +23 -6
- package/src/TextField.tsx +118 -159
- package/src/TimeField.tsx +34 -95
- package/src/Toast.tsx +141 -67
- package/src/ToggleButton.tsx +33 -15
- package/src/ToggleButtonGroup.tsx +27 -9
- package/src/TokenField.tsx +379 -0
- package/src/Toolbar.tsx +19 -9
- package/src/Tooltip.tsx +126 -84
- package/src/Tree.tsx +233 -173
- package/src/Virtualizer.tsx +400 -138
- package/src/VirtualizerLayouts.ts +211 -26
- package/src/VisuallyHidden.tsx +22 -8
- package/src/contexts.ts +13 -0
- package/src/index.ts +32 -11
- package/src/intl/ar-AE.json +6 -0
- package/src/intl/bg-BG.json +6 -0
- package/src/intl/cs-CZ.json +6 -0
- package/src/intl/da-DK.json +6 -0
- package/src/intl/de-DE.json +6 -0
- package/src/intl/el-GR.json +6 -0
- package/src/intl/en-US.json +6 -0
- package/src/intl/es-ES.json +6 -0
- package/src/intl/et-EE.json +6 -0
- package/src/intl/fi-FI.json +6 -0
- package/src/intl/fr-FR.json +6 -0
- package/src/intl/he-IL.json +6 -0
- package/src/intl/hr-HR.json +6 -0
- package/src/intl/hu-HU.json +6 -0
- package/src/intl/index.ts +125 -0
- package/src/intl/it-IT.json +6 -0
- package/src/intl/ja-JP.json +6 -0
- package/src/intl/ko-KR.json +6 -0
- package/src/intl/lt-LT.json +6 -0
- package/src/intl/lv-LV.json +6 -0
- package/src/intl/nb-NO.json +6 -0
- package/src/intl/nl-NL.json +6 -0
- package/src/intl/pl-PL.json +6 -0
- package/src/intl/pt-BR.json +6 -0
- package/src/intl/pt-PT.json +6 -0
- package/src/intl/ro-RO.json +6 -0
- package/src/intl/ru-RU.json +6 -0
- package/src/intl/sk-SK.json +6 -0
- package/src/intl/sl-SI.json +6 -0
- package/src/intl/sr-SP.json +6 -0
- package/src/intl/sv-SE.json +6 -0
- package/src/intl/tr-TR.json +6 -0
- package/src/intl/uk-UA.json +6 -0
- package/src/intl/zh-CN.json +6 -0
- package/src/intl/zh-TW.json +6 -0
- package/src/useDragAndDrop.ts +30 -32
- package/src/utils.tsx +124 -68
- package/src/virtualizer/Layout.ts +29 -0
package/dist/Table.js
CHANGED
|
@@ -2,12 +2,15 @@ import { dataAttr, filterDOMProps, useRenderProps } from "./utils.js";
|
|
|
2
2
|
import { ButtonContext } from "./Button.js";
|
|
3
3
|
import { SharedElementTransition } from "./SharedElementTransition.js";
|
|
4
4
|
import { useLinkProps, useRouter } from "./RouterProvider.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
5
|
+
import { t as racIntlStrings } from "./intl.js";
|
|
6
|
+
import { CollectionRendererContext, renderCollectionDropSlots, useCollectionRenderer, useCollectionRoot } from "./Collection.js";
|
|
7
|
+
import { o as useVirtualizerContext, t as PersistedVirtualItem } from "./Virtualizer2.js";
|
|
8
|
+
import { getNormalizedDropTargetKey, indexesOutsideRange, mergePersistedKeysIntoVirtualRange, useDndPersistedKeys, useRenderDropIndicator } from "./DragAndDrop.js";
|
|
9
|
+
import { createTreeDropTargetDelegate } from "./Tree.js";
|
|
10
|
+
import { className, createComponent, effect, getNextElement, getNextMarker, insert, memo, mergeProps, readShallow, ref, runHydrationEvents, scope, setAttribute, spread, style, template } from "@solidjs/web";
|
|
11
|
+
import { For, Show, createContext, createEffect, createMemo, createRenderEffect, createSignal, createTrackedEffect, createUniqueId, untrack, useContext } from "solid-js";
|
|
12
|
+
import { createFocusRing, createHover, createStringFormatter, createTable, createTableCell, createTableColumnHeader, createTableColumnResize, createTableRow, createTableRowGroup, createTableSelectAllCheckbox, createTableSelectionCheckbox, getTableData, isFocusVisible, mergeProps as mergeProps$1, useLocale } from "@proyecto-viviana/solidaria";
|
|
13
|
+
import { splitProps } from "@proyecto-viviana/solidaria/utils";
|
|
11
14
|
import { createTableCollection, createTableColumnResizeState, createTableState, createTreeGridState } from "@proyecto-viviana/solid-stately";
|
|
12
15
|
//#region src/Table.tsx
|
|
13
16
|
/**
|
|
@@ -16,8 +19,21 @@ import { createTableCollection, createTableColumnResizeState, createTableState,
|
|
|
16
19
|
* A pre-wired headless table that combines state + aria hooks.
|
|
17
20
|
* Based on react-aria-components/src/Table.tsx
|
|
18
21
|
*/
|
|
19
|
-
var _tmpl$ =
|
|
20
|
-
|
|
22
|
+
var _tmpl$ = /* @__PURE__ */ template(`<div>`);
|
|
23
|
+
var _tmpl$2 = /* @__PURE__ */ template(`<table>`);
|
|
24
|
+
var _tmpl$3 = /* @__PURE__ */ template(`<thead>`);
|
|
25
|
+
var _tmpl$4 = /* @__PURE__ */ template(`<tbody>`);
|
|
26
|
+
var _tmpl$5 = /* @__PURE__ */ template(`<tfoot>`);
|
|
27
|
+
var _tmpl$6 = /* @__PURE__ */ template(`<tr>`);
|
|
28
|
+
var _tmpl$7 = /* @__PURE__ */ template(`<th>`);
|
|
29
|
+
var _tmpl$8 = /* @__PURE__ */ template(`<td>`);
|
|
30
|
+
var _tmpl$9 = /* @__PURE__ */ template(`<div role=progressbar aria-label=loading>`);
|
|
31
|
+
var _tmpl$10 = /* @__PURE__ */ template(`<div data-testid=loadMoreSentinel style=position:absolute;height:1px;width:1px>`);
|
|
32
|
+
var _tmpl$11 = /* @__PURE__ */ template(`<tr inert style=position:relative;width:0;height:0;overflow:hidden><td><div data-testid=loadMoreSentinel style=position:absolute;height:1px;width:1px>`);
|
|
33
|
+
var _tmpl$12 = /* @__PURE__ */ template(`<tr role=row tabindex=0 data-loading><td role=rowheader>`);
|
|
34
|
+
var _tmpl$13 = /* @__PURE__ */ template(`<input>`);
|
|
35
|
+
var _tmpl$14 = /* @__PURE__ */ template(`<div><!$><!/><!$><!/>`);
|
|
36
|
+
function assignRef$1(ref, el) {
|
|
21
37
|
if (!ref) return;
|
|
22
38
|
if (typeof ref === "function") ref(el);
|
|
23
39
|
else ref.current = el;
|
|
@@ -40,6 +56,81 @@ function resolveItemKey(item, getKey, index) {
|
|
|
40
56
|
const record = item;
|
|
41
57
|
return record.id ?? record.key ?? index;
|
|
42
58
|
}
|
|
59
|
+
/** RAC Table.tsx TableElementType / THead / TBody / row / cell: div when virtualized. */
|
|
60
|
+
function TableHost(props) {
|
|
61
|
+
const [local, rest] = splitProps(props, [
|
|
62
|
+
"hostTag",
|
|
63
|
+
"virtualized",
|
|
64
|
+
"children"
|
|
65
|
+
]);
|
|
66
|
+
if (local.virtualized) {
|
|
67
|
+
var _el$ = getNextElement(_tmpl$);
|
|
68
|
+
spread(_el$, rest, true);
|
|
69
|
+
insert(_el$, scope(() => {
|
|
70
|
+
return local.children;
|
|
71
|
+
}));
|
|
72
|
+
runHydrationEvents();
|
|
73
|
+
return _el$;
|
|
74
|
+
}
|
|
75
|
+
switch (local.hostTag) {
|
|
76
|
+
case "table":
|
|
77
|
+
var _el$2 = getNextElement(_tmpl$2);
|
|
78
|
+
spread(_el$2, rest, true);
|
|
79
|
+
insert(_el$2, scope(() => {
|
|
80
|
+
return local.children;
|
|
81
|
+
}));
|
|
82
|
+
runHydrationEvents();
|
|
83
|
+
return _el$2;
|
|
84
|
+
case "thead":
|
|
85
|
+
var _el$3 = getNextElement(_tmpl$3);
|
|
86
|
+
spread(_el$3, rest, true);
|
|
87
|
+
insert(_el$3, scope(() => {
|
|
88
|
+
return local.children;
|
|
89
|
+
}));
|
|
90
|
+
runHydrationEvents();
|
|
91
|
+
return _el$3;
|
|
92
|
+
case "tbody":
|
|
93
|
+
var _el$4 = getNextElement(_tmpl$4);
|
|
94
|
+
spread(_el$4, rest, true);
|
|
95
|
+
insert(_el$4, scope(() => {
|
|
96
|
+
return local.children;
|
|
97
|
+
}));
|
|
98
|
+
runHydrationEvents();
|
|
99
|
+
return _el$4;
|
|
100
|
+
case "tfoot":
|
|
101
|
+
var _el$5 = getNextElement(_tmpl$5);
|
|
102
|
+
spread(_el$5, rest, true);
|
|
103
|
+
insert(_el$5, scope(() => {
|
|
104
|
+
return local.children;
|
|
105
|
+
}));
|
|
106
|
+
runHydrationEvents();
|
|
107
|
+
return _el$5;
|
|
108
|
+
case "tr":
|
|
109
|
+
var _el$6 = getNextElement(_tmpl$6);
|
|
110
|
+
spread(_el$6, rest, true);
|
|
111
|
+
insert(_el$6, scope(() => {
|
|
112
|
+
return local.children;
|
|
113
|
+
}));
|
|
114
|
+
runHydrationEvents();
|
|
115
|
+
return _el$6;
|
|
116
|
+
case "th":
|
|
117
|
+
var _el$7 = getNextElement(_tmpl$7);
|
|
118
|
+
spread(_el$7, rest, true);
|
|
119
|
+
insert(_el$7, scope(() => {
|
|
120
|
+
return local.children;
|
|
121
|
+
}));
|
|
122
|
+
runHydrationEvents();
|
|
123
|
+
return _el$7;
|
|
124
|
+
default:
|
|
125
|
+
var _el$8 = getNextElement(_tmpl$8);
|
|
126
|
+
spread(_el$8, rest, true);
|
|
127
|
+
insert(_el$8, scope(() => {
|
|
128
|
+
return local.children;
|
|
129
|
+
}));
|
|
130
|
+
runHydrationEvents();
|
|
131
|
+
return _el$8;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
43
134
|
/**
|
|
44
135
|
* Turns the flat `items` into nested {@link RowDefinition}s by recursively expanding each
|
|
45
136
|
* item's children via `getChildItems`. The result feeds the tree-grid collection.
|
|
@@ -102,6 +193,7 @@ function Table(props) {
|
|
|
102
193
|
"UNSTABLE_defaultExpandedKeys",
|
|
103
194
|
"UNSTABLE_onExpandedChange"
|
|
104
195
|
]);
|
|
196
|
+
const locale = useLocale();
|
|
105
197
|
const [ref, setRef] = createSignal(null);
|
|
106
198
|
const normalizedColumns = createMemo(() => normalizeColumnDefinitions(stateProps.columns));
|
|
107
199
|
const rowHeaderColumnKeys = createMemo(() => getRowHeaderColumnKeys(normalizedColumns()));
|
|
@@ -197,43 +289,38 @@ function Table(props) {
|
|
|
197
289
|
const hooks = local.dragAndDropHooks;
|
|
198
290
|
return Boolean(hooks?.useDroppableCollectionState && hooks.useDroppableCollection && (hooks.dropTargetDelegate || parentCollectionRenderer?.dropTargetDelegate || hooks.ListDropTargetDelegate));
|
|
199
291
|
});
|
|
200
|
-
const
|
|
292
|
+
const dragStateValue = createMemo(() => {
|
|
201
293
|
const hooks = local.dragAndDropHooks;
|
|
202
294
|
return Boolean(hooks?.useDraggableCollectionState && hooks.useDraggableCollection);
|
|
203
|
-
})
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
295
|
+
})() ? local.dragAndDropHooks?.useDraggableCollectionState?.({
|
|
296
|
+
items: stateProps.items,
|
|
297
|
+
collection: state.collection,
|
|
298
|
+
selectedKeys: state.selectedKeys,
|
|
299
|
+
isSelected: (key) => state.isSelected(key)
|
|
300
|
+
}) : void 0;
|
|
301
|
+
const dragState = () => dragStateValue;
|
|
302
|
+
const dropStateValue = hasDroppableDnd() ? local.dragAndDropHooks?.useDroppableCollectionState?.({ get collection() {
|
|
303
|
+
return state.collection;
|
|
304
|
+
} }) : void 0;
|
|
305
|
+
const dropState = () => dropStateValue;
|
|
306
|
+
if (local.dragAndDropHooks?.useDraggableCollection && dragStateValue) local.dragAndDropHooks.useDraggableCollection({}, dragStateValue, () => ref());
|
|
307
|
+
const droppableCollectionValue = (() => {
|
|
209
308
|
if (!hasDroppableDnd()) return void 0;
|
|
210
|
-
return local.dragAndDropHooks?.useDroppableCollectionState?.({});
|
|
211
|
-
});
|
|
212
|
-
createEffect(() => {
|
|
213
|
-
if (!hasDraggableDnd()) return;
|
|
214
309
|
const hooks = local.dragAndDropHooks;
|
|
215
|
-
const
|
|
216
|
-
if (!hooks?.useDraggableCollection || !activeDragState) return;
|
|
217
|
-
hooks.useDraggableCollection({}, activeDragState, () => ref());
|
|
218
|
-
});
|
|
219
|
-
const droppableCollection = createMemo(() => {
|
|
220
|
-
if (!hasDroppableDnd()) return void 0;
|
|
221
|
-
const hooks = local.dragAndDropHooks;
|
|
222
|
-
const activeDropState = dropState();
|
|
310
|
+
const activeDropState = dropStateValue;
|
|
223
311
|
if (!hooks?.useDroppableCollection || !activeDropState) return void 0;
|
|
224
|
-
const resolveDirection = () =>
|
|
225
|
-
|
|
226
|
-
if (el && typeof window !== "undefined" && typeof window.getComputedStyle === "function") {
|
|
227
|
-
if (window.getComputedStyle(el).direction === "rtl") return "rtl";
|
|
228
|
-
}
|
|
229
|
-
return typeof document !== "undefined" && document.dir === "rtl" ? "rtl" : "ltr";
|
|
230
|
-
};
|
|
231
|
-
const dropTargetDelegate = hooks.dropTargetDelegate ?? parentCollectionRenderer?.dropTargetDelegate ?? (hooks.ListDropTargetDelegate ? new hooks.ListDropTargetDelegate(() => state.collection, () => ref(), {
|
|
312
|
+
const resolveDirection = () => locale().direction;
|
|
313
|
+
const baseDropTargetDelegate = hooks.dropTargetDelegate ?? parentCollectionRenderer?.dropTargetDelegate ?? (hooks.ListDropTargetDelegate ? new hooks.ListDropTargetDelegate(() => state.collection, () => ref(), {
|
|
232
314
|
layout: "grid",
|
|
233
315
|
orientation: "vertical",
|
|
234
316
|
direction: resolveDirection()
|
|
235
317
|
}) : void 0);
|
|
236
|
-
if (!
|
|
318
|
+
if (!baseDropTargetDelegate) return void 0;
|
|
319
|
+
const expandedKeys = state.expandedKeys;
|
|
320
|
+
const dropTargetDelegate = createTreeDropTargetDelegate(baseDropTargetDelegate, {
|
|
321
|
+
collection: state.collection,
|
|
322
|
+
expandedKeys: expandedKeys === "all" ? new Set(Array.from(state.collection, (node) => node.key)) : expandedKeys ?? /* @__PURE__ */ new Set()
|
|
323
|
+
}, resolveDirection());
|
|
237
324
|
return hooks.useDroppableCollection({
|
|
238
325
|
dropTargetDelegate,
|
|
239
326
|
keyboardDelegate: {
|
|
@@ -259,7 +346,8 @@ function Table(props) {
|
|
|
259
346
|
},
|
|
260
347
|
setFocusedKey: (key) => state.setFocusedKey(key)
|
|
261
348
|
}, activeDropState, () => ref());
|
|
262
|
-
});
|
|
349
|
+
})();
|
|
350
|
+
const droppableCollection = () => droppableCollectionValue;
|
|
263
351
|
const isRootDropTarget = createMemo(() => {
|
|
264
352
|
return Boolean(dropState()?.target?.type === "root");
|
|
265
353
|
});
|
|
@@ -295,7 +383,8 @@ function Table(props) {
|
|
|
295
383
|
},
|
|
296
384
|
get isVirtualized() {
|
|
297
385
|
return ariaProps.isVirtualized ?? parentCollectionRenderer?.isVirtualized ?? false;
|
|
298
|
-
}
|
|
386
|
+
},
|
|
387
|
+
getScrollElement: () => ref()
|
|
299
388
|
};
|
|
300
389
|
const collectionRenderer = createMemo(() => ({
|
|
301
390
|
...parentCollectionRenderer,
|
|
@@ -306,38 +395,41 @@ function Table(props) {
|
|
|
306
395
|
const tableProps = () => ({
|
|
307
396
|
ref: (el) => {
|
|
308
397
|
setRef(el);
|
|
309
|
-
assignRef(local.ref, el);
|
|
398
|
+
assignRef$1(local.ref, el);
|
|
310
399
|
},
|
|
311
|
-
...mergeProps$
|
|
400
|
+
...mergeProps$1(domProps(), cleanGridProps(), cleanFocusProps(), droppableCollection()?.collectionProps ?? {}),
|
|
312
401
|
class: renderProps.class(),
|
|
313
402
|
style: renderProps.style(),
|
|
314
|
-
"data-focused": state.isFocused
|
|
315
|
-
"data-focus-visible": isFocusVisible()
|
|
316
|
-
"data-empty": stateProps.items.length === 0
|
|
317
|
-
"data-drop-target": isRootDropTarget()
|
|
403
|
+
"data-focused": dataAttr(state.isFocused),
|
|
404
|
+
"data-focus-visible": dataAttr(isFocusVisible()),
|
|
405
|
+
"data-empty": dataAttr(stateProps.items.length === 0),
|
|
406
|
+
"data-drop-target": dataAttr(isRootDropTarget()),
|
|
318
407
|
slot: local.slot
|
|
319
408
|
});
|
|
320
|
-
return createComponent(TableContext
|
|
409
|
+
return createComponent(TableContext, {
|
|
321
410
|
value: contextValue,
|
|
322
411
|
get children() {
|
|
323
|
-
return createComponent(TableStateContext
|
|
412
|
+
return createComponent(TableStateContext, {
|
|
324
413
|
value: state,
|
|
325
414
|
get children() {
|
|
326
|
-
return createComponent(CollectionRendererContext
|
|
415
|
+
return createComponent(CollectionRendererContext, {
|
|
327
416
|
get value() {
|
|
328
417
|
return collectionRenderer();
|
|
329
418
|
},
|
|
330
419
|
get children() {
|
|
331
|
-
return memo(() =>
|
|
420
|
+
return memo(() => {
|
|
421
|
+
return !!local.render;
|
|
422
|
+
})() ? local.render({
|
|
332
423
|
...tableProps(),
|
|
333
424
|
children: tableChildren()
|
|
334
|
-
}, renderValues()) : ((
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
425
|
+
}, renderValues()) : createComponent(TableHost, mergeProps({
|
|
426
|
+
hostTag: "table",
|
|
427
|
+
get virtualized() {
|
|
428
|
+
return contextValue.isVirtualized;
|
|
429
|
+
}
|
|
430
|
+
}, tableProps, { get children() {
|
|
431
|
+
return tableChildren();
|
|
432
|
+
} }));
|
|
341
433
|
}
|
|
342
434
|
});
|
|
343
435
|
}
|
|
@@ -357,7 +449,8 @@ function TableHeader(props) {
|
|
|
357
449
|
"children",
|
|
358
450
|
"ref"
|
|
359
451
|
]);
|
|
360
|
-
|
|
452
|
+
const context = useContext(TableContext);
|
|
453
|
+
if (!context) throw new Error("TableHeader must be used within a Table");
|
|
361
454
|
const { rowGroupProps } = createTableRowGroup(() => ({ type: "thead" }));
|
|
362
455
|
const { isHovered, hoverProps } = createHover({
|
|
363
456
|
isDisabled: false,
|
|
@@ -389,38 +482,55 @@ function TableHeader(props) {
|
|
|
389
482
|
return rest;
|
|
390
483
|
};
|
|
391
484
|
const headerProps = () => ({
|
|
392
|
-
ref: (el) => assignRef(local.ref, el),
|
|
485
|
+
ref: (el) => assignRef$1(local.ref, el),
|
|
393
486
|
...domProps,
|
|
394
487
|
...cleanRowGroupProps(),
|
|
395
488
|
...cleanHoverProps(),
|
|
396
489
|
class: renderProps.class(),
|
|
397
490
|
style: renderProps.style(),
|
|
398
491
|
"data-hovered": isHovered() || void 0,
|
|
399
|
-
children: (
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
})()
|
|
404
|
-
});
|
|
405
|
-
return local.render ? local.render(headerProps(), renderValues()) : (() => {
|
|
406
|
-
var _el$3 = getNextElement(_tmpl$3), _el$4 = _el$3.firstChild;
|
|
407
|
-
use((el) => assignRef(local.ref, el), _el$3);
|
|
408
|
-
spread(_el$3, mergeProps(domProps, cleanRowGroupProps, cleanHoverProps, {
|
|
409
|
-
get ["class"]() {
|
|
410
|
-
return renderProps.class();
|
|
411
|
-
},
|
|
412
|
-
get style() {
|
|
413
|
-
return renderProps.style();
|
|
492
|
+
children: createComponent(TableHost, {
|
|
493
|
+
hostTag: "tr",
|
|
494
|
+
get virtualized() {
|
|
495
|
+
return context.isVirtualized;
|
|
414
496
|
},
|
|
415
|
-
|
|
416
|
-
|
|
497
|
+
role: "row",
|
|
498
|
+
get children() {
|
|
499
|
+
return local.children;
|
|
417
500
|
}
|
|
418
|
-
})
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
501
|
+
})
|
|
502
|
+
});
|
|
503
|
+
return local.render ? local.render(headerProps(), renderValues()) : createComponent(TableHost, mergeProps({
|
|
504
|
+
hostTag: "thead",
|
|
505
|
+
get virtualized() {
|
|
506
|
+
return context.isVirtualized;
|
|
507
|
+
},
|
|
508
|
+
ref: (el) => assignRef$1(local.ref, el)
|
|
509
|
+
}, domProps, cleanRowGroupProps, cleanHoverProps, {
|
|
510
|
+
get "class"() {
|
|
511
|
+
return renderProps.class();
|
|
512
|
+
},
|
|
513
|
+
get style() {
|
|
514
|
+
return renderProps.style();
|
|
515
|
+
},
|
|
516
|
+
get "data-hovered"() {
|
|
517
|
+
return dataAttr(isHovered());
|
|
518
|
+
},
|
|
519
|
+
get children() {
|
|
520
|
+
return createComponent(TableHost, {
|
|
521
|
+
hostTag: "tr",
|
|
522
|
+
get virtualized() {
|
|
523
|
+
return context.isVirtualized;
|
|
524
|
+
},
|
|
525
|
+
role: "row",
|
|
526
|
+
get children() {
|
|
527
|
+
return local.children;
|
|
528
|
+
}
|
|
529
|
+
});
|
|
530
|
+
}
|
|
531
|
+
}));
|
|
423
532
|
}
|
|
533
|
+
const TableColumnDefinitionContext = createContext(null);
|
|
424
534
|
/**
|
|
425
535
|
* A column header in a table.
|
|
426
536
|
*/
|
|
@@ -535,64 +645,56 @@ function TableColumn(props) {
|
|
|
535
645
|
...widthStyle
|
|
536
646
|
};
|
|
537
647
|
});
|
|
538
|
-
const columnChildren = () =>
|
|
539
|
-
|
|
648
|
+
const columnChildren = () => {
|
|
649
|
+
const rawChildren = local.children;
|
|
650
|
+
return typeof rawChildren === "function" ? rawChildren(renderValues()) : rawChildren;
|
|
651
|
+
};
|
|
652
|
+
const columnAttrs = () => ({
|
|
540
653
|
ref: (el) => {
|
|
541
654
|
setRef(el);
|
|
542
|
-
assignRef(local.ref, el);
|
|
655
|
+
assignRef$1(local.ref, el);
|
|
543
656
|
},
|
|
544
657
|
...domProps,
|
|
545
|
-
...mergeProps$
|
|
658
|
+
...mergeProps$1(cleanColumnHeaderProps(), cleanHoverProps(), cleanFocusProps()),
|
|
546
659
|
class: renderProps.class(),
|
|
547
660
|
style: columnStyle(),
|
|
548
|
-
"data-sortable": local.allowsSorting
|
|
661
|
+
"data-sortable": dataAttr(!!local.allowsSorting),
|
|
549
662
|
"data-sort-direction": sortDirection() || void 0,
|
|
550
|
-
"data-resizable": local.allowsResizing
|
|
551
|
-
"data-resizing": isResizing()
|
|
552
|
-
"data-hovered": isHovered()
|
|
553
|
-
"data-focused": state.focusedKey === local.id
|
|
554
|
-
"data-focus-visible": isFocusVisible() && state.focusedKey === local.id
|
|
555
|
-
|
|
663
|
+
"data-resizable": dataAttr(!!local.allowsResizing),
|
|
664
|
+
"data-resizing": dataAttr(isResizing()),
|
|
665
|
+
"data-hovered": dataAttr(isHovered()),
|
|
666
|
+
"data-focused": dataAttr(state.focusedKey === local.id),
|
|
667
|
+
"data-focus-visible": dataAttr(isFocusVisible() && state.focusedKey === local.id),
|
|
668
|
+
"data-key": local.id
|
|
669
|
+
});
|
|
670
|
+
const columnDefinition = {
|
|
671
|
+
key: local.id,
|
|
672
|
+
width: local.width ?? local.defaultWidth,
|
|
673
|
+
minWidth: local.minWidth,
|
|
674
|
+
maxWidth: local.maxWidth
|
|
675
|
+
};
|
|
676
|
+
if (local.render) return createComponent(TableColumnDefinitionContext, {
|
|
677
|
+
value: columnDefinition,
|
|
678
|
+
get children() {
|
|
679
|
+
return local.render({
|
|
680
|
+
...columnAttrs(),
|
|
681
|
+
children: columnChildren()
|
|
682
|
+
}, renderValues());
|
|
683
|
+
}
|
|
684
|
+
});
|
|
685
|
+
return createComponent(TableColumnDefinitionContext, {
|
|
686
|
+
value: columnDefinition,
|
|
687
|
+
get children() {
|
|
688
|
+
return createComponent(TableHost, mergeProps({
|
|
689
|
+
hostTag: "th",
|
|
690
|
+
get virtualized() {
|
|
691
|
+
return context.isVirtualized;
|
|
692
|
+
}
|
|
693
|
+
}, columnAttrs, { get children() {
|
|
694
|
+
return columnChildren();
|
|
695
|
+
} }));
|
|
696
|
+
}
|
|
556
697
|
});
|
|
557
|
-
return local.render ? local.render(columnProps(), renderValues()) : (() => {
|
|
558
|
-
var _el$5 = getNextElement(_tmpl$4);
|
|
559
|
-
use((el) => {
|
|
560
|
-
setRef(el);
|
|
561
|
-
assignRef(local.ref, el);
|
|
562
|
-
}, _el$5);
|
|
563
|
-
spread(_el$5, mergeProps(domProps, () => mergeProps$2(cleanColumnHeaderProps(), cleanHoverProps(), cleanFocusProps()), {
|
|
564
|
-
get ["class"]() {
|
|
565
|
-
return renderProps.class();
|
|
566
|
-
},
|
|
567
|
-
get style() {
|
|
568
|
-
return columnStyle();
|
|
569
|
-
},
|
|
570
|
-
get ["data-sortable"]() {
|
|
571
|
-
return local.allowsSorting || void 0;
|
|
572
|
-
},
|
|
573
|
-
get ["data-sort-direction"]() {
|
|
574
|
-
return sortDirection() || void 0;
|
|
575
|
-
},
|
|
576
|
-
get ["data-resizable"]() {
|
|
577
|
-
return local.allowsResizing || void 0;
|
|
578
|
-
},
|
|
579
|
-
get ["data-resizing"]() {
|
|
580
|
-
return isResizing() || void 0;
|
|
581
|
-
},
|
|
582
|
-
get ["data-hovered"]() {
|
|
583
|
-
return isHovered() || void 0;
|
|
584
|
-
},
|
|
585
|
-
get ["data-focused"]() {
|
|
586
|
-
return state.focusedKey === local.id || void 0;
|
|
587
|
-
},
|
|
588
|
-
get ["data-focus-visible"]() {
|
|
589
|
-
return memo(() => !!isFocusVisible())() && state.focusedKey === local.id || void 0;
|
|
590
|
-
}
|
|
591
|
-
}), false, true);
|
|
592
|
-
insert(_el$5, columnChildren);
|
|
593
|
-
runHydrationEvents();
|
|
594
|
-
return _el$5;
|
|
595
|
-
})();
|
|
596
698
|
}
|
|
597
699
|
/**
|
|
598
700
|
* The body of a table containing data rows.
|
|
@@ -635,21 +737,22 @@ function TableBody(props) {
|
|
|
635
737
|
if (!virtualizer || !parentCollectionRenderer?.isVirtualized) return null;
|
|
636
738
|
const rowCount = items().length;
|
|
637
739
|
const baseRange = virtualizer.getVisibleRange(rowCount);
|
|
638
|
-
const persistedIndexes = Array.from(persistedKeys()).map((key) => rowNodes().findIndex((node) => node.key === key)).filter((index) => index >= 0);
|
|
639
740
|
const dropTarget = context.dropState?.target;
|
|
640
741
|
const normalizedDropKey = getNormalizedDropTargetKey(dropTarget, context.collection);
|
|
641
|
-
const
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
forceIncludeIndexes: [
|
|
645
|
-
dropTarget?.type === "item" ? rowNodes().findIndex((node) => node.key === dropTarget.key) : -1,
|
|
646
|
-
normalizedDropKey != null ? rowNodes().findIndex((node) => node.key === normalizedDropKey) : -1,
|
|
647
|
-
dropTarget?.type === "item" ? -1 : focusedIndex
|
|
648
|
-
].filter((index) => index >= 0),
|
|
742
|
+
const forceIncludeIndexes = [dropTarget?.type === "item" ? rowNodes().findIndex((node) => node.key === dropTarget.key) : -1, normalizedDropKey != null ? rowNodes().findIndex((node) => node.key === normalizedDropKey) : -1].filter((index) => index >= 0);
|
|
743
|
+
return mergePersistedKeysIntoVirtualRange(baseRange, [], rowCount, virtualizer, 80, {
|
|
744
|
+
forceIncludeIndexes,
|
|
649
745
|
forceIncludeMaxSpan: 320
|
|
650
746
|
});
|
|
651
747
|
});
|
|
652
|
-
|
|
748
|
+
const persistedOutsideIndexes = createMemo(() => {
|
|
749
|
+
const range = virtualRange();
|
|
750
|
+
if (!range) return [];
|
|
751
|
+
const persistedIndexes = Array.from(persistedKeys()).map((key) => rowNodes().findIndex((node) => node.key === key)).filter((index) => index >= 0);
|
|
752
|
+
return indexesOutsideRange(range, persistedIndexes);
|
|
753
|
+
});
|
|
754
|
+
createTrackedEffect(() => {
|
|
755
|
+
const _s2Cleanups = [];
|
|
653
756
|
if (!virtualizer || !parentCollectionRenderer?.isVirtualized) return;
|
|
654
757
|
virtualizer.setDropTargetItemCountResolver(() => items().length);
|
|
655
758
|
virtualizer.setDropTargetIndexResolver((key) => {
|
|
@@ -664,11 +767,14 @@ function TableBody(props) {
|
|
|
664
767
|
key: typeof node.key === "string" || typeof node.key === "number" ? node.key : void 0
|
|
665
768
|
};
|
|
666
769
|
});
|
|
667
|
-
|
|
770
|
+
_s2Cleanups.push(() => {
|
|
668
771
|
virtualizer.setDropTargetIndexResolver(void 0);
|
|
669
772
|
virtualizer.setDropTargetItemCountResolver(void 0);
|
|
670
773
|
virtualizer.setDropTargetResolver(void 0);
|
|
671
774
|
});
|
|
775
|
+
return () => {
|
|
776
|
+
for (const c of _s2Cleanups) c();
|
|
777
|
+
};
|
|
672
778
|
});
|
|
673
779
|
const visibleItems = createMemo(() => {
|
|
674
780
|
if (context.state.treeColumn != null) return rowNodes().map((node) => node.value);
|
|
@@ -677,68 +783,94 @@ function TableBody(props) {
|
|
|
677
783
|
return items().slice(range.start, range.end);
|
|
678
784
|
});
|
|
679
785
|
const spacerColSpan = () => context.columns.length + (context.showSelectionCheckboxes ? 1 : 0);
|
|
786
|
+
const CollectionRoot = useCollectionRoot();
|
|
787
|
+
const collectionRows = () => {
|
|
788
|
+
const rows = createComponent(For, {
|
|
789
|
+
get each() {
|
|
790
|
+
return visibleItems();
|
|
791
|
+
},
|
|
792
|
+
children: (item, index) => {
|
|
793
|
+
const itemIndex = () => (virtualRange()?.start ?? 0) + index();
|
|
794
|
+
return renderCollectionDropSlots({
|
|
795
|
+
index: itemIndex(),
|
|
796
|
+
lastIndex: rowNodes().length - 1,
|
|
797
|
+
renderDropIndicator: (i, position) => parentCollectionRenderer?.renderDropIndicator?.(i, position),
|
|
798
|
+
children: local.children?.(item)
|
|
799
|
+
});
|
|
800
|
+
}
|
|
801
|
+
});
|
|
802
|
+
if (!context.isVirtualized) return rows;
|
|
803
|
+
return createComponent(CollectionRoot, {
|
|
804
|
+
get collection() {
|
|
805
|
+
return memo(() => {
|
|
806
|
+
return !!virtualRange();
|
|
807
|
+
})() ? items() : [];
|
|
808
|
+
},
|
|
809
|
+
scrollRef: () => context.getScrollElement(),
|
|
810
|
+
get persistedKeys() {
|
|
811
|
+
return persistedKeys();
|
|
812
|
+
},
|
|
813
|
+
get children() {
|
|
814
|
+
return [rows, createComponent(For, {
|
|
815
|
+
get each() {
|
|
816
|
+
return persistedOutsideIndexes();
|
|
817
|
+
},
|
|
818
|
+
children: (index) => createComponent(PersistedVirtualItem, {
|
|
819
|
+
index,
|
|
820
|
+
get children() {
|
|
821
|
+
return renderCollectionDropSlots({
|
|
822
|
+
index,
|
|
823
|
+
lastIndex: rowNodes().length - 1,
|
|
824
|
+
renderDropIndicator: (i, position) => parentCollectionRenderer?.renderDropIndicator?.(i, position),
|
|
825
|
+
children: local.children?.(items()[index])
|
|
826
|
+
});
|
|
827
|
+
}
|
|
828
|
+
})
|
|
829
|
+
})];
|
|
830
|
+
}
|
|
831
|
+
});
|
|
832
|
+
};
|
|
680
833
|
const bodyChildren = () => [createComponent(SharedElementTransition, { get children() {
|
|
681
834
|
return createComponent(Show, {
|
|
682
835
|
get when() {
|
|
683
|
-
return memo(() =>
|
|
836
|
+
return memo(() => {
|
|
837
|
+
return !!(isEmpty() && local.renderEmptyState);
|
|
838
|
+
})() ? !local.isLoading : isEmpty() && local.renderEmptyState;
|
|
684
839
|
},
|
|
685
840
|
get fallback() {
|
|
686
|
-
return
|
|
687
|
-
memo(() => memo(() => !!virtualRange()?.offsetTop)() ? (() => {
|
|
688
|
-
var _el$8 = getNextElement(_tmpl$6), _el$9 = _el$8.firstChild;
|
|
689
|
-
effect((_p$) => {
|
|
690
|
-
var _v$ = spacerColSpan(), _v$2 = `${virtualRange().offsetTop}px`;
|
|
691
|
-
_v$ !== _p$.e && setAttribute(_el$9, "colspan", _p$.e = _v$);
|
|
692
|
-
_v$2 !== _p$.t && setStyleProperty(_el$9, "height", _p$.t = _v$2);
|
|
693
|
-
return _p$;
|
|
694
|
-
}, {
|
|
695
|
-
e: void 0,
|
|
696
|
-
t: void 0
|
|
697
|
-
});
|
|
698
|
-
return _el$8;
|
|
699
|
-
})() : null),
|
|
700
|
-
createComponent(For, {
|
|
701
|
-
get each() {
|
|
702
|
-
return visibleItems();
|
|
703
|
-
},
|
|
704
|
-
children: (item, index) => {
|
|
705
|
-
const itemIndex = () => (virtualRange()?.start ?? 0) + index();
|
|
706
|
-
const beforeIndicator = () => parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), "before");
|
|
707
|
-
const onIndicator = () => parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), "on");
|
|
708
|
-
const afterIndicator = () => parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), "after");
|
|
709
|
-
return [
|
|
710
|
-
memo(beforeIndicator),
|
|
711
|
-
memo(onIndicator),
|
|
712
|
-
memo(() => local.children?.(item)),
|
|
713
|
-
memo(afterIndicator)
|
|
714
|
-
];
|
|
715
|
-
}
|
|
716
|
-
}),
|
|
717
|
-
memo(() => memo(() => !!virtualRange()?.offsetBottom)() ? (() => {
|
|
718
|
-
var _el$0 = getNextElement(_tmpl$7), _el$1 = _el$0.firstChild;
|
|
719
|
-
effect((_p$) => {
|
|
720
|
-
var _v$3 = spacerColSpan(), _v$4 = `${virtualRange().offsetBottom}px`;
|
|
721
|
-
_v$3 !== _p$.e && setAttribute(_el$1, "colspan", _p$.e = _v$3);
|
|
722
|
-
_v$4 !== _p$.t && setStyleProperty(_el$1, "height", _p$.t = _v$4);
|
|
723
|
-
return _p$;
|
|
724
|
-
}, {
|
|
725
|
-
e: void 0,
|
|
726
|
-
t: void 0
|
|
727
|
-
});
|
|
728
|
-
return _el$0;
|
|
729
|
-
})() : null)
|
|
730
|
-
];
|
|
841
|
+
return collectionRows();
|
|
731
842
|
},
|
|
732
843
|
get children() {
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
844
|
+
return createComponent(TableHost, {
|
|
845
|
+
hostTag: "tr",
|
|
846
|
+
get virtualized() {
|
|
847
|
+
return context.isVirtualized;
|
|
848
|
+
},
|
|
849
|
+
role: "row",
|
|
850
|
+
"data-empty-state": true,
|
|
851
|
+
get children() {
|
|
852
|
+
return createComponent(TableHost, {
|
|
853
|
+
hostTag: "th",
|
|
854
|
+
get virtualized() {
|
|
855
|
+
return context.isVirtualized;
|
|
856
|
+
},
|
|
857
|
+
role: "rowheader",
|
|
858
|
+
get colSpan() {
|
|
859
|
+
return spacerColSpan();
|
|
860
|
+
},
|
|
861
|
+
get children() {
|
|
862
|
+
return local.renderEmptyState?.();
|
|
863
|
+
}
|
|
864
|
+
});
|
|
865
|
+
}
|
|
866
|
+
});
|
|
737
867
|
}
|
|
738
868
|
});
|
|
739
869
|
} }), createComponent(Show, {
|
|
740
870
|
get when() {
|
|
741
|
-
return memo(() =>
|
|
871
|
+
return memo(() => {
|
|
872
|
+
return !!local.hasMore;
|
|
873
|
+
})() ? local.onLoadMore : local.hasMore;
|
|
742
874
|
},
|
|
743
875
|
get children() {
|
|
744
876
|
return createComponent(TableLoadMoreItem, {
|
|
@@ -755,109 +887,34 @@ function TableBody(props) {
|
|
|
755
887
|
}
|
|
756
888
|
})];
|
|
757
889
|
const bodyProps = () => ({
|
|
758
|
-
ref: (el) => assignRef(local.ref, el),
|
|
890
|
+
ref: (el) => assignRef$1(local.ref, el),
|
|
759
891
|
...domProps,
|
|
760
892
|
...cleanRowGroupProps(),
|
|
761
893
|
class: renderProps.class(),
|
|
762
894
|
style: renderProps.style(),
|
|
763
|
-
"data-empty": isEmpty()
|
|
895
|
+
"data-empty": dataAttr(isEmpty()),
|
|
764
896
|
children: bodyChildren()
|
|
765
897
|
});
|
|
766
|
-
return local.render ? local.render(bodyProps(), renderValues()) : ((
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
return [
|
|
787
|
-
memo(() => memo(() => !!virtualRange()?.offsetTop)() ? (() => {
|
|
788
|
-
var _el$17 = getNextElement(_tmpl$6), _el$18 = _el$17.firstChild;
|
|
789
|
-
effect((_p$) => {
|
|
790
|
-
var _v$5 = spacerColSpan(), _v$6 = `${virtualRange().offsetTop}px`;
|
|
791
|
-
_v$5 !== _p$.e && setAttribute(_el$18, "colspan", _p$.e = _v$5);
|
|
792
|
-
_v$6 !== _p$.t && setStyleProperty(_el$18, "height", _p$.t = _v$6);
|
|
793
|
-
return _p$;
|
|
794
|
-
}, {
|
|
795
|
-
e: void 0,
|
|
796
|
-
t: void 0
|
|
797
|
-
});
|
|
798
|
-
return _el$17;
|
|
799
|
-
})() : null),
|
|
800
|
-
createComponent(For, {
|
|
801
|
-
get each() {
|
|
802
|
-
return visibleItems();
|
|
803
|
-
},
|
|
804
|
-
children: (item, index) => {
|
|
805
|
-
const itemIndex = () => (virtualRange()?.start ?? 0) + index();
|
|
806
|
-
const beforeIndicator = () => parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), "before");
|
|
807
|
-
const onIndicator = () => parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), "on");
|
|
808
|
-
const afterIndicator = () => parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), "after");
|
|
809
|
-
return [
|
|
810
|
-
memo(beforeIndicator),
|
|
811
|
-
memo(onIndicator),
|
|
812
|
-
memo(() => local.children?.(item)),
|
|
813
|
-
memo(afterIndicator)
|
|
814
|
-
];
|
|
815
|
-
}
|
|
816
|
-
}),
|
|
817
|
-
memo(() => memo(() => !!virtualRange()?.offsetBottom)() ? (() => {
|
|
818
|
-
var _el$19 = getNextElement(_tmpl$7), _el$20 = _el$19.firstChild;
|
|
819
|
-
effect((_p$) => {
|
|
820
|
-
var _v$7 = spacerColSpan(), _v$8 = `${virtualRange().offsetBottom}px`;
|
|
821
|
-
_v$7 !== _p$.e && setAttribute(_el$20, "colspan", _p$.e = _v$7);
|
|
822
|
-
_v$8 !== _p$.t && setStyleProperty(_el$20, "height", _p$.t = _v$8);
|
|
823
|
-
return _p$;
|
|
824
|
-
}, {
|
|
825
|
-
e: void 0,
|
|
826
|
-
t: void 0
|
|
827
|
-
});
|
|
828
|
-
return _el$19;
|
|
829
|
-
})() : null)
|
|
830
|
-
];
|
|
831
|
-
},
|
|
832
|
-
get children() {
|
|
833
|
-
var _el$11 = getNextElement(_tmpl$5), _el$12 = _el$11.firstChild;
|
|
834
|
-
insert(_el$12, () => local.renderEmptyState?.());
|
|
835
|
-
effect(() => setAttribute(_el$12, "colspan", spacerColSpan()));
|
|
836
|
-
return _el$11;
|
|
837
|
-
}
|
|
838
|
-
});
|
|
839
|
-
} }), _el$14, _co$);
|
|
840
|
-
insert(_el$10, createComponent(Show, {
|
|
841
|
-
get when() {
|
|
842
|
-
return memo(() => !!local.hasMore)() && local.onLoadMore;
|
|
843
|
-
},
|
|
844
|
-
get children() {
|
|
845
|
-
return createComponent(TableLoadMoreItem, {
|
|
846
|
-
get onLoadMore() {
|
|
847
|
-
return local.onLoadMore;
|
|
848
|
-
},
|
|
849
|
-
get isLoading() {
|
|
850
|
-
return local.isLoading;
|
|
851
|
-
},
|
|
852
|
-
get colSpan() {
|
|
853
|
-
return spacerColSpan();
|
|
854
|
-
}
|
|
855
|
-
});
|
|
856
|
-
}
|
|
857
|
-
}), _el$16, _co$2);
|
|
858
|
-
runHydrationEvents();
|
|
859
|
-
return _el$10;
|
|
860
|
-
})();
|
|
898
|
+
return local.render ? local.render(bodyProps(), renderValues()) : createComponent(TableHost, mergeProps({
|
|
899
|
+
hostTag: "tbody",
|
|
900
|
+
get virtualized() {
|
|
901
|
+
return context.isVirtualized;
|
|
902
|
+
},
|
|
903
|
+
ref: (el) => assignRef$1(local.ref, el)
|
|
904
|
+
}, domProps, cleanRowGroupProps, {
|
|
905
|
+
get "class"() {
|
|
906
|
+
return renderProps.class();
|
|
907
|
+
},
|
|
908
|
+
get style() {
|
|
909
|
+
return renderProps.style();
|
|
910
|
+
},
|
|
911
|
+
get "data-empty"() {
|
|
912
|
+
return dataAttr(isEmpty());
|
|
913
|
+
},
|
|
914
|
+
get children() {
|
|
915
|
+
return bodyChildren();
|
|
916
|
+
}
|
|
917
|
+
}));
|
|
861
918
|
}
|
|
862
919
|
/**
|
|
863
920
|
* The footer of a table containing summary rows.
|
|
@@ -870,7 +927,8 @@ function TableFooter(props) {
|
|
|
870
927
|
"slot",
|
|
871
928
|
"children"
|
|
872
929
|
]);
|
|
873
|
-
|
|
930
|
+
const context = useContext(TableContext);
|
|
931
|
+
if (!context) throw new Error("TableFooter must be used within a Table");
|
|
874
932
|
const { rowGroupProps } = createTableRowGroup(() => ({ type: "tfoot" }));
|
|
875
933
|
const items = createMemo(() => local.items ?? []);
|
|
876
934
|
const renderValues = createMemo(() => ({ isEmpty: items().length === 0 }));
|
|
@@ -883,40 +941,46 @@ function TableFooter(props) {
|
|
|
883
941
|
const { ref: _ref, ...rest } = rowGroupProps;
|
|
884
942
|
return rest;
|
|
885
943
|
};
|
|
886
|
-
return ((
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
944
|
+
return createComponent(TableHost, mergeProps({
|
|
945
|
+
hostTag: "tfoot",
|
|
946
|
+
get virtualized() {
|
|
947
|
+
return context.isVirtualized;
|
|
948
|
+
}
|
|
949
|
+
}, domProps, cleanRowGroupProps, {
|
|
950
|
+
get "class"() {
|
|
951
|
+
return renderProps.class();
|
|
952
|
+
},
|
|
953
|
+
get style() {
|
|
954
|
+
return renderProps.style();
|
|
955
|
+
},
|
|
956
|
+
get children() {
|
|
957
|
+
return createComponent(Show, {
|
|
958
|
+
get when() {
|
|
959
|
+
return memo(() => {
|
|
960
|
+
return !!local.items;
|
|
961
|
+
})() ? typeof local.children === "function" : local.items;
|
|
962
|
+
},
|
|
963
|
+
get fallback() {
|
|
964
|
+
return local.children;
|
|
965
|
+
},
|
|
966
|
+
get children() {
|
|
967
|
+
return createComponent(For, {
|
|
968
|
+
get each() {
|
|
969
|
+
return items();
|
|
970
|
+
},
|
|
971
|
+
children: (item) => local.children(item)
|
|
972
|
+
});
|
|
973
|
+
}
|
|
974
|
+
});
|
|
975
|
+
}
|
|
976
|
+
}));
|
|
915
977
|
}
|
|
916
978
|
function TableLoadMoreItem(props) {
|
|
917
|
-
|
|
979
|
+
const [sentinel, setSentinel] = createSignal();
|
|
918
980
|
const [isPending, setIsPending] = createSignal(false);
|
|
981
|
+
const scrollOffsetValue = createMemo(() => props.scrollOffset ?? 1);
|
|
919
982
|
const isLoading = () => !!props.isLoading || isPending();
|
|
983
|
+
const tableContext = useContext(TableContext);
|
|
920
984
|
const triggerLoadMore = async () => {
|
|
921
985
|
if (isPending()) return;
|
|
922
986
|
setIsPending(true);
|
|
@@ -926,50 +990,126 @@ function TableLoadMoreItem(props) {
|
|
|
926
990
|
setIsPending(false);
|
|
927
991
|
}
|
|
928
992
|
};
|
|
929
|
-
createEffect(() => {
|
|
930
|
-
|
|
931
|
-
|
|
993
|
+
createEffect(() => ({
|
|
994
|
+
current: sentinel(),
|
|
995
|
+
scrollOffset: scrollOffsetValue()
|
|
996
|
+
}), ({ current, scrollOffset }) => {
|
|
997
|
+
if (!current || typeof IntersectionObserver !== "function") return;
|
|
998
|
+
const margin = `0px 0px ${100 * scrollOffset}% 0px`;
|
|
932
999
|
const observer = new IntersectionObserver((entries) => {
|
|
933
1000
|
if (entries[0]?.isIntersecting) triggerLoadMore();
|
|
934
1001
|
}, { rootMargin: margin });
|
|
935
|
-
observer.observe(
|
|
1002
|
+
observer.observe(current);
|
|
936
1003
|
return () => observer.disconnect();
|
|
937
1004
|
});
|
|
938
1005
|
const renderProps = useRenderProps({
|
|
939
|
-
children: props.children ?? (() => isLoading() ? getNextElement(_tmpl$
|
|
1006
|
+
children: props.children ?? (() => isLoading() ? getNextElement(_tmpl$9) : null),
|
|
940
1007
|
class: props.class,
|
|
941
1008
|
style: props.style,
|
|
942
1009
|
defaultClassName: "solidaria-Table-loadMore"
|
|
943
1010
|
}, () => ({ isLoading: isLoading() }));
|
|
944
|
-
return
|
|
945
|
-
var _el$23 = getNextElement(_tmpl$1), _el$25 = _el$23.firstChild.firstChild;
|
|
946
|
-
var _ref$ = sentinelRef;
|
|
947
|
-
typeof _ref$ === "function" ? use(_ref$, _el$25) : sentinelRef = _el$25;
|
|
948
|
-
return _el$23;
|
|
949
|
-
})(), createComponent(Show, {
|
|
1011
|
+
return createComponent(Show, {
|
|
950
1012
|
get when() {
|
|
951
|
-
return
|
|
1013
|
+
return tableContext?.isVirtualized;
|
|
1014
|
+
},
|
|
1015
|
+
get fallback() {
|
|
1016
|
+
return [(() => {
|
|
1017
|
+
var _el$11 = getNextElement(_tmpl$11);
|
|
1018
|
+
var _el$13 = _el$11.firstChild.firstChild;
|
|
1019
|
+
ref(() => {
|
|
1020
|
+
return setSentinel;
|
|
1021
|
+
}, _el$13);
|
|
1022
|
+
return _el$11;
|
|
1023
|
+
})(), createComponent(Show, {
|
|
1024
|
+
get when() {
|
|
1025
|
+
return isLoading();
|
|
1026
|
+
},
|
|
1027
|
+
get children() {
|
|
1028
|
+
var _el$14 = getNextElement(_tmpl$12);
|
|
1029
|
+
var _el$15 = _el$14.firstChild;
|
|
1030
|
+
_el$14.addEventListener("focus", () => {
|
|
1031
|
+
triggerLoadMore();
|
|
1032
|
+
});
|
|
1033
|
+
insert(_el$15, scope(() => {
|
|
1034
|
+
return renderProps.renderChildren();
|
|
1035
|
+
}));
|
|
1036
|
+
effect(() => {
|
|
1037
|
+
return {
|
|
1038
|
+
e: readShallow(renderProps.class()),
|
|
1039
|
+
t: readShallow(renderProps.style()),
|
|
1040
|
+
a: props.colSpan ?? 1
|
|
1041
|
+
};
|
|
1042
|
+
}, ({ e, t, a }, _p$) => {
|
|
1043
|
+
className(_el$14, e, _p$?.e);
|
|
1044
|
+
style(_el$14, t, _p$?.t);
|
|
1045
|
+
a !== _p$?.a && setAttribute(_el$15, "colspan", a);
|
|
1046
|
+
});
|
|
1047
|
+
return _el$14;
|
|
1048
|
+
}
|
|
1049
|
+
})];
|
|
952
1050
|
},
|
|
953
1051
|
get children() {
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
1052
|
+
return [createComponent(TableHost, {
|
|
1053
|
+
hostTag: "tr",
|
|
1054
|
+
virtualized: true,
|
|
1055
|
+
style: {
|
|
1056
|
+
position: "relative",
|
|
1057
|
+
width: 0,
|
|
1058
|
+
height: 0,
|
|
1059
|
+
overflow: "hidden"
|
|
1060
|
+
},
|
|
1061
|
+
inert: true,
|
|
1062
|
+
get children() {
|
|
1063
|
+
return createComponent(TableHost, {
|
|
1064
|
+
hostTag: "td",
|
|
1065
|
+
virtualized: true,
|
|
1066
|
+
get children() {
|
|
1067
|
+
var _el$10 = getNextElement(_tmpl$10);
|
|
1068
|
+
ref(() => {
|
|
1069
|
+
return setSentinel;
|
|
1070
|
+
}, _el$10);
|
|
1071
|
+
return _el$10;
|
|
1072
|
+
}
|
|
1073
|
+
});
|
|
1074
|
+
}
|
|
1075
|
+
}), createComponent(Show, {
|
|
1076
|
+
get when() {
|
|
1077
|
+
return isLoading();
|
|
1078
|
+
},
|
|
1079
|
+
get children() {
|
|
1080
|
+
return createComponent(TableHost, {
|
|
1081
|
+
hostTag: "tr",
|
|
1082
|
+
virtualized: true,
|
|
1083
|
+
role: "row",
|
|
1084
|
+
tabindex: 0,
|
|
1085
|
+
onFocus: () => {
|
|
1086
|
+
triggerLoadMore();
|
|
1087
|
+
},
|
|
1088
|
+
get "class"() {
|
|
1089
|
+
return renderProps.class();
|
|
1090
|
+
},
|
|
1091
|
+
get style() {
|
|
1092
|
+
return renderProps.style();
|
|
1093
|
+
},
|
|
1094
|
+
"data-loading": true,
|
|
1095
|
+
get children() {
|
|
1096
|
+
return createComponent(TableHost, {
|
|
1097
|
+
hostTag: "td",
|
|
1098
|
+
virtualized: true,
|
|
1099
|
+
role: "rowheader",
|
|
1100
|
+
get colSpan() {
|
|
1101
|
+
return props.colSpan ?? 1;
|
|
1102
|
+
},
|
|
1103
|
+
get children() {
|
|
1104
|
+
return renderProps.renderChildren();
|
|
1105
|
+
}
|
|
1106
|
+
});
|
|
1107
|
+
}
|
|
1108
|
+
});
|
|
1109
|
+
}
|
|
1110
|
+
})];
|
|
971
1111
|
}
|
|
972
|
-
})
|
|
1112
|
+
});
|
|
973
1113
|
}
|
|
974
1114
|
/**
|
|
975
1115
|
* A row in a table.
|
|
@@ -1116,8 +1256,12 @@ function TableRow(props) {
|
|
|
1116
1256
|
return rest;
|
|
1117
1257
|
};
|
|
1118
1258
|
const rowContextValue = {
|
|
1119
|
-
|
|
1120
|
-
|
|
1259
|
+
get rowKey() {
|
|
1260
|
+
return rowKey();
|
|
1261
|
+
},
|
|
1262
|
+
get rowNode() {
|
|
1263
|
+
return rowNode();
|
|
1264
|
+
},
|
|
1121
1265
|
get isRowDisabled() {
|
|
1122
1266
|
return isDisabled();
|
|
1123
1267
|
},
|
|
@@ -1128,7 +1272,8 @@ function TableRow(props) {
|
|
|
1128
1272
|
index = registeredCellIds.length;
|
|
1129
1273
|
registeredCellIds.push(cellId);
|
|
1130
1274
|
}
|
|
1131
|
-
|
|
1275
|
+
const dataColumns = tableContext.columns.filter((column) => column.key !== "__selection__");
|
|
1276
|
+
return explicitId ?? dataColumns[index]?.key;
|
|
1132
1277
|
}
|
|
1133
1278
|
};
|
|
1134
1279
|
const dragButtonProps = createMemo(() => {
|
|
@@ -1189,10 +1334,10 @@ function TableRow(props) {
|
|
|
1189
1334
|
"--table-row-level": rowLevel()
|
|
1190
1335
|
};
|
|
1191
1336
|
};
|
|
1192
|
-
return createComponent(TableRowContext
|
|
1337
|
+
return createComponent(TableRowContext, {
|
|
1193
1338
|
value: rowContextValue,
|
|
1194
1339
|
get children() {
|
|
1195
|
-
return createComponent(ButtonContext
|
|
1340
|
+
return createComponent(ButtonContext, {
|
|
1196
1341
|
value: buttonContextValue,
|
|
1197
1342
|
get children() {
|
|
1198
1343
|
return (() => {
|
|
@@ -1206,30 +1351,32 @@ function TableRow(props) {
|
|
|
1206
1351
|
const tableRowProps = () => ({
|
|
1207
1352
|
ref: (el) => {
|
|
1208
1353
|
setRef(el);
|
|
1209
|
-
assignRef(local.ref, el);
|
|
1354
|
+
assignRef$1(local.ref, el);
|
|
1355
|
+
const dragRef = (draggableItem()?.dragProps)?.ref;
|
|
1356
|
+
if (typeof dragRef === "function") dragRef(el);
|
|
1210
1357
|
},
|
|
1211
1358
|
...domProps,
|
|
1212
|
-
...mergeProps$
|
|
1359
|
+
...mergeProps$1(cleanRowProps(), cleanHoverProps(), cleanFocusProps(), focusWithinProps, draggableItem()?.dragProps ?? {}, droppableItem()?.dropProps ?? {}),
|
|
1213
1360
|
class: renderProps.class(),
|
|
1214
1361
|
style: rowStyle(),
|
|
1215
1362
|
"data-key": rowKey(),
|
|
1216
|
-
"data-selected": isSelected()
|
|
1217
|
-
"data-focused": isFocused()
|
|
1218
|
-
"data-focus-visible": isFocusVisible$1() && isFocused()
|
|
1363
|
+
"data-selected": dataAttr(isSelected()),
|
|
1364
|
+
"data-focused": dataAttr(isFocused()),
|
|
1365
|
+
"data-focus-visible": dataAttr(isFocusVisible$1() && isFocused()),
|
|
1219
1366
|
"data-focus-visible-within": dataAttr(isFocusWithin() && isFocusVisible()),
|
|
1220
|
-
"data-pressed": isPressed()
|
|
1221
|
-
"data-hovered": isHovered()
|
|
1222
|
-
"data-disabled": isDisabled()
|
|
1367
|
+
"data-pressed": dataAttr(isPressed()),
|
|
1368
|
+
"data-hovered": dataAttr(isHovered()),
|
|
1369
|
+
"data-disabled": dataAttr(isDisabled()),
|
|
1223
1370
|
"data-href": linkProps().href,
|
|
1224
1371
|
"data-target": linkProps().target,
|
|
1225
1372
|
"data-rel": linkProps().rel,
|
|
1226
1373
|
"data-download": typeof linkProps().download === "string" ? linkProps().download : linkProps().download ? "" : void 0,
|
|
1227
1374
|
"data-ping": linkProps().ping,
|
|
1228
1375
|
"data-referrer-policy": linkProps().referrerPolicy,
|
|
1229
|
-
"data-dragging": draggableItem()?.isDragging
|
|
1230
|
-
"data-drop-target": droppableItem()?.isDropTarget
|
|
1231
|
-
"data-expanded": isTreeRow() && isExpanded()
|
|
1232
|
-
"data-has-child-items": isTreeRow() && hasChildItems()
|
|
1376
|
+
"data-dragging": dataAttr(!!draggableItem()?.isDragging),
|
|
1377
|
+
"data-drop-target": dataAttr(!!droppableItem()?.isDropTarget),
|
|
1378
|
+
"data-expanded": dataAttr(isTreeRow() && isExpanded()),
|
|
1379
|
+
"data-has-child-items": dataAttr(isTreeRow() && hasChildItems()),
|
|
1233
1380
|
"data-level": isTreeRow() ? rowLevel() : void 0,
|
|
1234
1381
|
children: rowChildrenContent
|
|
1235
1382
|
});
|
|
@@ -1238,80 +1385,20 @@ function TableRow(props) {
|
|
|
1238
1385
|
return local.render;
|
|
1239
1386
|
},
|
|
1240
1387
|
get fallback() {
|
|
1241
|
-
return (() => {
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
},
|
|
1254
|
-
get ["data-key"]() {
|
|
1255
|
-
return rowKey();
|
|
1256
|
-
},
|
|
1257
|
-
get ["data-selected"]() {
|
|
1258
|
-
return isSelected() || void 0;
|
|
1259
|
-
},
|
|
1260
|
-
get ["data-focused"]() {
|
|
1261
|
-
return isFocused() || void 0;
|
|
1262
|
-
},
|
|
1263
|
-
get ["data-focus-visible"]() {
|
|
1264
|
-
return memo(() => !!isFocusVisible$1())() && isFocused() || void 0;
|
|
1265
|
-
},
|
|
1266
|
-
get ["data-focus-visible-within"]() {
|
|
1267
|
-
return dataAttr(isFocusWithin() && isFocusVisible());
|
|
1268
|
-
},
|
|
1269
|
-
get ["data-pressed"]() {
|
|
1270
|
-
return isPressed() || void 0;
|
|
1271
|
-
},
|
|
1272
|
-
get ["data-hovered"]() {
|
|
1273
|
-
return isHovered() || void 0;
|
|
1274
|
-
},
|
|
1275
|
-
get ["data-disabled"]() {
|
|
1276
|
-
return isDisabled() || void 0;
|
|
1277
|
-
},
|
|
1278
|
-
get ["data-href"]() {
|
|
1279
|
-
return linkProps().href;
|
|
1280
|
-
},
|
|
1281
|
-
get ["data-target"]() {
|
|
1282
|
-
return linkProps().target;
|
|
1283
|
-
},
|
|
1284
|
-
get ["data-rel"]() {
|
|
1285
|
-
return linkProps().rel;
|
|
1286
|
-
},
|
|
1287
|
-
get ["data-download"]() {
|
|
1288
|
-
return memo(() => typeof linkProps().download === "string")() ? linkProps().download : linkProps().download ? "" : void 0;
|
|
1289
|
-
},
|
|
1290
|
-
get ["data-ping"]() {
|
|
1291
|
-
return linkProps().ping;
|
|
1292
|
-
},
|
|
1293
|
-
get ["data-referrer-policy"]() {
|
|
1294
|
-
return linkProps().referrerPolicy;
|
|
1295
|
-
},
|
|
1296
|
-
get ["data-dragging"]() {
|
|
1297
|
-
return draggableItem()?.isDragging || void 0;
|
|
1298
|
-
},
|
|
1299
|
-
get ["data-drop-target"]() {
|
|
1300
|
-
return droppableItem()?.isDropTarget || void 0;
|
|
1301
|
-
},
|
|
1302
|
-
get ["data-expanded"]() {
|
|
1303
|
-
return memo(() => !!isTreeRow())() && isExpanded() || void 0;
|
|
1304
|
-
},
|
|
1305
|
-
get ["data-has-child-items"]() {
|
|
1306
|
-
return memo(() => !!isTreeRow())() && hasChildItems() || void 0;
|
|
1307
|
-
},
|
|
1308
|
-
get ["data-level"]() {
|
|
1309
|
-
return memo(() => !!isTreeRow())() ? rowLevel() : void 0;
|
|
1310
|
-
}
|
|
1311
|
-
}), false, true);
|
|
1312
|
-
insert(_el$28, rowChildrenContent);
|
|
1388
|
+
return memo(() => {
|
|
1389
|
+
return !!tableContext.isVirtualized;
|
|
1390
|
+
})() ? (() => {
|
|
1391
|
+
var _el$16 = getNextElement(_tmpl$);
|
|
1392
|
+
spread(_el$16, () => {
|
|
1393
|
+
return tableRowProps();
|
|
1394
|
+
}, false);
|
|
1395
|
+
runHydrationEvents();
|
|
1396
|
+
return _el$16;
|
|
1397
|
+
})() : (() => {
|
|
1398
|
+
var _el$17 = getNextElement(_tmpl$6);
|
|
1399
|
+
spread(_el$17, tableRowProps, false);
|
|
1313
1400
|
runHydrationEvents();
|
|
1314
|
-
return _el$
|
|
1401
|
+
return _el$17;
|
|
1315
1402
|
})();
|
|
1316
1403
|
},
|
|
1317
1404
|
get children() {
|
|
@@ -1349,14 +1436,26 @@ function TableCell(props) {
|
|
|
1349
1436
|
const columnKey = createMemo(() => rowContext.getCellColumnKey(cellId, local.id));
|
|
1350
1437
|
const cellNode = createMemo(() => {
|
|
1351
1438
|
const key = columnKey();
|
|
1439
|
+
const collection = state.collection;
|
|
1352
1440
|
if (key != null) {
|
|
1353
1441
|
const cellKey = `${rowKey}-${key}`;
|
|
1354
|
-
const node =
|
|
1442
|
+
const node = collection.getItem(cellKey);
|
|
1355
1443
|
if (node) return node;
|
|
1444
|
+
return {
|
|
1445
|
+
type: collection.rowHeaderColumnKeys.has(key) ? "rowheader" : "cell",
|
|
1446
|
+
key: cellKey,
|
|
1447
|
+
value: rowNode.value,
|
|
1448
|
+
textValue: "",
|
|
1449
|
+
level: 1,
|
|
1450
|
+
index: 0,
|
|
1451
|
+
parentKey: rowKey,
|
|
1452
|
+
hasChildNodes: false,
|
|
1453
|
+
childNodes: []
|
|
1454
|
+
};
|
|
1356
1455
|
}
|
|
1357
1456
|
return {
|
|
1358
1457
|
type: "cell",
|
|
1359
|
-
key:
|
|
1458
|
+
key: `${rowKey}-cell`,
|
|
1360
1459
|
value: rowNode.value,
|
|
1361
1460
|
textValue: "",
|
|
1362
1461
|
level: 1,
|
|
@@ -1414,80 +1513,43 @@ function TableCell(props) {
|
|
|
1414
1513
|
const { ref: _ref3, ...rest } = focusProps;
|
|
1415
1514
|
return rest;
|
|
1416
1515
|
};
|
|
1417
|
-
const cellChildren = () =>
|
|
1418
|
-
|
|
1516
|
+
const cellChildren = () => {
|
|
1517
|
+
const rawChildren = local.children;
|
|
1518
|
+
return typeof rawChildren === "function" ? rawChildren(renderValues()) : rawChildren;
|
|
1519
|
+
};
|
|
1520
|
+
const cellAttrs = () => ({
|
|
1419
1521
|
ref: (el) => {
|
|
1420
1522
|
setRef(el);
|
|
1421
|
-
assignRef(local.ref, el);
|
|
1523
|
+
assignRef$1(local.ref, el);
|
|
1422
1524
|
},
|
|
1423
1525
|
...domProps,
|
|
1424
|
-
...mergeProps$
|
|
1526
|
+
...mergeProps$1(cleanCellProps(), cleanHoverProps(), cleanFocusProps()),
|
|
1425
1527
|
colSpan: local.colSpan,
|
|
1426
1528
|
class: renderProps.class(),
|
|
1427
1529
|
style: renderProps.style(),
|
|
1428
1530
|
"data-key": cellNode().key,
|
|
1429
|
-
"data-focused": isFocused()
|
|
1430
|
-
"data-focus-visible": isFocusVisible() && isFocused()
|
|
1531
|
+
"data-focused": dataAttr(isFocused()),
|
|
1532
|
+
"data-focus-visible": dataAttr(isFocusVisible() && isFocused()),
|
|
1431
1533
|
"data-column-index": cellColumnIndex(),
|
|
1432
|
-
"data-pressed": isPressed()
|
|
1433
|
-
"data-hovered": isHovered()
|
|
1434
|
-
"data-tree-column": isTreeColumn()
|
|
1435
|
-
"data-expanded": isTreeGridCell() && cellIsExpanded()
|
|
1436
|
-
"data-has-child-items": isTreeGridCell() && cellHasChildItems()
|
|
1437
|
-
"data-level": isTreeGridCell() ? cellLevel() : void 0
|
|
1438
|
-
children: cellChildren()
|
|
1534
|
+
"data-pressed": dataAttr(isPressed()),
|
|
1535
|
+
"data-hovered": dataAttr(isHovered()),
|
|
1536
|
+
"data-tree-column": dataAttr(isTreeColumn()),
|
|
1537
|
+
"data-expanded": dataAttr(isTreeGridCell() && cellIsExpanded()),
|
|
1538
|
+
"data-has-child-items": dataAttr(isTreeGridCell() && cellHasChildItems()),
|
|
1539
|
+
"data-level": isTreeGridCell() ? cellLevel() : void 0
|
|
1439
1540
|
});
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
},
|
|
1453
|
-
get style() {
|
|
1454
|
-
return renderProps.style();
|
|
1455
|
-
},
|
|
1456
|
-
get ["data-key"]() {
|
|
1457
|
-
return cellNode().key;
|
|
1458
|
-
},
|
|
1459
|
-
get ["data-focused"]() {
|
|
1460
|
-
return isFocused() || void 0;
|
|
1461
|
-
},
|
|
1462
|
-
get ["data-focus-visible"]() {
|
|
1463
|
-
return memo(() => !!isFocusVisible())() && isFocused() || void 0;
|
|
1464
|
-
},
|
|
1465
|
-
get ["data-column-index"]() {
|
|
1466
|
-
return cellColumnIndex();
|
|
1467
|
-
},
|
|
1468
|
-
get ["data-pressed"]() {
|
|
1469
|
-
return isPressed() || void 0;
|
|
1470
|
-
},
|
|
1471
|
-
get ["data-hovered"]() {
|
|
1472
|
-
return isHovered() || void 0;
|
|
1473
|
-
},
|
|
1474
|
-
get ["data-tree-column"]() {
|
|
1475
|
-
return isTreeColumn() || void 0;
|
|
1476
|
-
},
|
|
1477
|
-
get ["data-expanded"]() {
|
|
1478
|
-
return memo(() => !!isTreeGridCell())() && cellIsExpanded() || void 0;
|
|
1479
|
-
},
|
|
1480
|
-
get ["data-has-child-items"]() {
|
|
1481
|
-
return memo(() => !!isTreeGridCell())() && cellHasChildItems() || void 0;
|
|
1482
|
-
},
|
|
1483
|
-
get ["data-level"]() {
|
|
1484
|
-
return memo(() => !!isTreeGridCell())() ? cellLevel() : void 0;
|
|
1485
|
-
}
|
|
1486
|
-
}), false, true);
|
|
1487
|
-
insert(_el$29, cellChildren);
|
|
1488
|
-
runHydrationEvents();
|
|
1489
|
-
return _el$29;
|
|
1490
|
-
})();
|
|
1541
|
+
if (local.render) return local.render({
|
|
1542
|
+
...cellAttrs(),
|
|
1543
|
+
children: cellChildren()
|
|
1544
|
+
}, renderValues());
|
|
1545
|
+
return createComponent(TableHost, mergeProps({
|
|
1546
|
+
hostTag: "td",
|
|
1547
|
+
get virtualized() {
|
|
1548
|
+
return tableContext.isVirtualized;
|
|
1549
|
+
}
|
|
1550
|
+
}, cellAttrs, { get children() {
|
|
1551
|
+
return cellChildren();
|
|
1552
|
+
} }));
|
|
1491
1553
|
}
|
|
1492
1554
|
/**
|
|
1493
1555
|
* A checkbox cell for row selection.
|
|
@@ -1501,30 +1563,28 @@ function TableSelectionCheckbox(props) {
|
|
|
1501
1563
|
key: props.rowKey,
|
|
1502
1564
|
isRowDisabled: rowContext?.isRowDisabled
|
|
1503
1565
|
}), () => state);
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
return _el$30;
|
|
1527
|
-
})();
|
|
1566
|
+
var _el$18 = getNextElement(_tmpl$13);
|
|
1567
|
+
spread(_el$18, [() => {
|
|
1568
|
+
return selectionCheckboxAria.checkboxProps;
|
|
1569
|
+
}, {
|
|
1570
|
+
get "class"() {
|
|
1571
|
+
return props.class;
|
|
1572
|
+
},
|
|
1573
|
+
get style() {
|
|
1574
|
+
return props.style;
|
|
1575
|
+
},
|
|
1576
|
+
tabindex: -1,
|
|
1577
|
+
get "aria-label"() {
|
|
1578
|
+
return props["aria-label"] ?? selectionCheckboxAria.checkboxProps["aria-label"];
|
|
1579
|
+
},
|
|
1580
|
+
onClick: (event) => event.stopPropagation(),
|
|
1581
|
+
onKeyDown: (event) => event.stopPropagation(),
|
|
1582
|
+
onKeyUp: (event) => event.stopPropagation(),
|
|
1583
|
+
onPointerDown: (event) => event.stopPropagation(),
|
|
1584
|
+
onPointerUp: (event) => event.stopPropagation()
|
|
1585
|
+
}], false);
|
|
1586
|
+
runHydrationEvents();
|
|
1587
|
+
return _el$18;
|
|
1528
1588
|
}
|
|
1529
1589
|
/**
|
|
1530
1590
|
* A checkbox for select-all functionality.
|
|
@@ -1534,28 +1594,35 @@ function TableSelectAllCheckbox(props = {}) {
|
|
|
1534
1594
|
if (!context) throw new Error("TableSelectAllCheckbox must be used within a Table");
|
|
1535
1595
|
const { state } = context;
|
|
1536
1596
|
const selectAllCheckboxAria = createTableSelectAllCheckbox(() => state);
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
if (
|
|
1597
|
+
const [inputEl, setInputEl] = createSignal(null);
|
|
1598
|
+
const applyIndeterminate = (input) => {
|
|
1599
|
+
if (input) input.indeterminate = selectAllCheckboxAria.isIndeterminate;
|
|
1600
|
+
};
|
|
1601
|
+
createRenderEffect(() => [selectAllCheckboxAria.checkboxProps.checked, inputEl()], ([, input]) => {
|
|
1602
|
+
applyIndeterminate(input);
|
|
1540
1603
|
});
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1604
|
+
var _el$19 = getNextElement(_tmpl$13);
|
|
1605
|
+
ref(() => {
|
|
1606
|
+
return (el) => {
|
|
1607
|
+
setInputEl(el);
|
|
1608
|
+
applyIndeterminate(el);
|
|
1609
|
+
};
|
|
1610
|
+
}, _el$19);
|
|
1611
|
+
spread(_el$19, [() => {
|
|
1612
|
+
return selectAllCheckboxAria.checkboxProps;
|
|
1613
|
+
}, {
|
|
1614
|
+
get "class"() {
|
|
1615
|
+
return props.class;
|
|
1616
|
+
},
|
|
1617
|
+
get style() {
|
|
1618
|
+
return props.style;
|
|
1619
|
+
},
|
|
1620
|
+
get "aria-label"() {
|
|
1621
|
+
return props["aria-label"] ?? selectAllCheckboxAria.checkboxProps["aria-label"];
|
|
1622
|
+
}
|
|
1623
|
+
}], false);
|
|
1624
|
+
runHydrationEvents();
|
|
1625
|
+
return _el$19;
|
|
1559
1626
|
}
|
|
1560
1627
|
Table.Header = TableHeader;
|
|
1561
1628
|
Table.Column = TableColumn;
|
|
@@ -1578,8 +1645,15 @@ function ColumnResizer(props) {
|
|
|
1578
1645
|
"slot",
|
|
1579
1646
|
"children"
|
|
1580
1647
|
]);
|
|
1648
|
+
const stringFormatter = createStringFormatter(racIntlStrings, "react-aria-components");
|
|
1581
1649
|
const registerColumn = useContext(ResizableTableRegisterContext);
|
|
1582
|
-
|
|
1650
|
+
const columnDef = useContext(TableColumnDefinitionContext);
|
|
1651
|
+
if (registerColumn) registerColumn(local.column.key, {
|
|
1652
|
+
key: local.column.key,
|
|
1653
|
+
width: columnDef?.width,
|
|
1654
|
+
minWidth: columnDef?.minWidth,
|
|
1655
|
+
maxWidth: columnDef?.maxWidth
|
|
1656
|
+
});
|
|
1583
1657
|
const resizeCtx = useContext(TableColumnResizeStateContext);
|
|
1584
1658
|
const hasResizeContext = !!resizeCtx;
|
|
1585
1659
|
const noopResizeState = {
|
|
@@ -1604,7 +1678,7 @@ function ColumnResizer(props) {
|
|
|
1604
1678
|
const [isFocused, setIsFocused] = createSignal(false);
|
|
1605
1679
|
const columnResize = createTableColumnResize(() => ({
|
|
1606
1680
|
column: local.column,
|
|
1607
|
-
"aria-label": local["aria-label"] ?? "
|
|
1681
|
+
"aria-label": local["aria-label"] ?? stringFormatter().format("tableResizer"),
|
|
1608
1682
|
isDisabled: local.isDisabled,
|
|
1609
1683
|
onResizeStart: (widths) => {
|
|
1610
1684
|
resizeCtx?.getCallbacks?.().onResizeStart?.(widths);
|
|
@@ -1634,41 +1708,56 @@ function ColumnResizer(props) {
|
|
|
1634
1708
|
const { ref: _ref, ...rest } = hoverProps;
|
|
1635
1709
|
return rest;
|
|
1636
1710
|
};
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1711
|
+
var _el$20 = getNextElement(_tmpl$14);
|
|
1712
|
+
var _el$22 = _el$20.firstChild;
|
|
1713
|
+
var [_el$23, _el$24] = getNextMarker(_el$22.nextSibling);
|
|
1714
|
+
var _el$25 = _el$23.nextSibling;
|
|
1715
|
+
var [_el$26, _el$27] = getNextMarker(_el$25.nextSibling);
|
|
1716
|
+
spread(_el$20, [
|
|
1717
|
+
domProps,
|
|
1718
|
+
() => {
|
|
1719
|
+
return columnResize.resizerProps;
|
|
1720
|
+
},
|
|
1721
|
+
cleanHoverProps,
|
|
1722
|
+
{
|
|
1723
|
+
get "class"() {
|
|
1641
1724
|
return renderProps.class();
|
|
1642
1725
|
},
|
|
1643
1726
|
get style() {
|
|
1644
1727
|
return renderProps.style();
|
|
1645
1728
|
},
|
|
1646
|
-
get
|
|
1647
|
-
return isHovered()
|
|
1729
|
+
get "data-hovered"() {
|
|
1730
|
+
return dataAttr(isHovered());
|
|
1648
1731
|
},
|
|
1649
|
-
get
|
|
1650
|
-
return columnResize.isResizing()
|
|
1651
|
-
}
|
|
1652
|
-
}), false, true);
|
|
1653
|
-
insert(_el$32, createComponent(Show, {
|
|
1654
|
-
when: hasResizeContext,
|
|
1655
|
-
get children() {
|
|
1656
|
-
var _el$33 = getNextElement(_tmpl$13);
|
|
1657
|
-
spread(_el$33, mergeProps(() => columnResize.inputProps, {
|
|
1658
|
-
"onFocus": () => setIsFocused(true),
|
|
1659
|
-
"onBlur": () => setIsFocused(false)
|
|
1660
|
-
}), false, false);
|
|
1661
|
-
runHydrationEvents();
|
|
1662
|
-
return _el$33;
|
|
1732
|
+
get "data-resizing"() {
|
|
1733
|
+
return dataAttr(columnResize.isResizing());
|
|
1663
1734
|
}
|
|
1664
|
-
}
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1735
|
+
}
|
|
1736
|
+
], true);
|
|
1737
|
+
insert(_el$20, createComponent(Show, {
|
|
1738
|
+
when: hasResizeContext,
|
|
1739
|
+
get children() {
|
|
1740
|
+
var _el$21 = getNextElement(_tmpl$13);
|
|
1741
|
+
spread(_el$21, [() => {
|
|
1742
|
+
return columnResize.inputProps;
|
|
1743
|
+
}, {
|
|
1744
|
+
onFocus: () => setIsFocused(true),
|
|
1745
|
+
onBlur: () => setIsFocused(false)
|
|
1746
|
+
}], false);
|
|
1747
|
+
runHydrationEvents();
|
|
1748
|
+
return _el$21;
|
|
1749
|
+
}
|
|
1750
|
+
}), _el$23, _el$24);
|
|
1751
|
+
insert(_el$20, scope((() => {
|
|
1752
|
+
var _c$ = memo(() => {
|
|
1753
|
+
return typeof local.children === "function";
|
|
1754
|
+
});
|
|
1755
|
+
return () => {
|
|
1756
|
+
return _c$() ? local.children(renderValues()) : local.children;
|
|
1757
|
+
};
|
|
1758
|
+
})()), _el$26, _el$27);
|
|
1759
|
+
runHydrationEvents();
|
|
1760
|
+
return _el$20;
|
|
1672
1761
|
}
|
|
1673
1762
|
function ResizableTableContainer(props) {
|
|
1674
1763
|
const [local, domProps] = splitProps(props, [
|
|
@@ -1683,7 +1772,8 @@ function ResizableTableContainer(props) {
|
|
|
1683
1772
|
]);
|
|
1684
1773
|
const [containerRef, setContainerRef] = createSignal(null);
|
|
1685
1774
|
const [tableWidth, setTableWidth] = createSignal(0);
|
|
1686
|
-
|
|
1775
|
+
createTrackedEffect(() => {
|
|
1776
|
+
const _s2Cleanups = [];
|
|
1687
1777
|
const el = containerRef();
|
|
1688
1778
|
if (!el) return;
|
|
1689
1779
|
setTableWidth(el.clientWidth);
|
|
@@ -1692,10 +1782,13 @@ function ResizableTableContainer(props) {
|
|
|
1692
1782
|
for (const entry of entries) setTableWidth(entry.contentRect.width);
|
|
1693
1783
|
});
|
|
1694
1784
|
observer.observe(el);
|
|
1695
|
-
|
|
1785
|
+
_s2Cleanups.push(() => observer.disconnect());
|
|
1696
1786
|
}
|
|
1787
|
+
return () => {
|
|
1788
|
+
for (const c of _s2Cleanups) c();
|
|
1789
|
+
};
|
|
1697
1790
|
});
|
|
1698
|
-
const [autoColumns, setAutoColumns] = createSignal(/* @__PURE__ */ new Map());
|
|
1791
|
+
const [autoColumns, setAutoColumns] = createSignal(/* @__PURE__ */ new Map(), { ownedWrite: true });
|
|
1699
1792
|
const registerColumn = (key, def) => {
|
|
1700
1793
|
setAutoColumns((prev) => {
|
|
1701
1794
|
const next = new Map(prev);
|
|
@@ -1727,16 +1820,18 @@ function ResizableTableContainer(props) {
|
|
|
1727
1820
|
onResizeEnd: local.onResizeEnd
|
|
1728
1821
|
})
|
|
1729
1822
|
};
|
|
1730
|
-
return createComponent(ResizableTableRegisterContext
|
|
1823
|
+
return createComponent(ResizableTableRegisterContext, {
|
|
1731
1824
|
value: registerColumn,
|
|
1732
1825
|
get children() {
|
|
1733
|
-
return createComponent(TableColumnResizeStateContext
|
|
1826
|
+
return createComponent(TableColumnResizeStateContext, {
|
|
1734
1827
|
value: contextValue,
|
|
1735
1828
|
get children() {
|
|
1736
|
-
var _el$
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1829
|
+
var _el$28 = getNextElement(_tmpl$);
|
|
1830
|
+
ref(() => {
|
|
1831
|
+
return setContainerRef;
|
|
1832
|
+
}, _el$28);
|
|
1833
|
+
spread(_el$28, [domProps, {
|
|
1834
|
+
get "class"() {
|
|
1740
1835
|
return local.class ?? "solidaria-ResizableTableContainer";
|
|
1741
1836
|
},
|
|
1742
1837
|
get style() {
|
|
@@ -1746,10 +1841,12 @@ function ResizableTableContainer(props) {
|
|
|
1746
1841
|
...local.style
|
|
1747
1842
|
};
|
|
1748
1843
|
}
|
|
1749
|
-
}
|
|
1750
|
-
insert(_el$
|
|
1844
|
+
}], true);
|
|
1845
|
+
insert(_el$28, scope(() => {
|
|
1846
|
+
return local.children;
|
|
1847
|
+
}));
|
|
1751
1848
|
runHydrationEvents();
|
|
1752
|
-
return _el$
|
|
1849
|
+
return _el$28;
|
|
1753
1850
|
}
|
|
1754
1851
|
});
|
|
1755
1852
|
}
|