@proyecto-viviana/solid-stately 0.5.1 → 0.6.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/dist/autocomplete/createAutocompleteState.d.ts +2 -1
- package/dist/autocomplete/createAutocompleteState.d.ts.map +1 -0
- package/dist/autocomplete/index.d.ts +1 -0
- package/dist/autocomplete/index.d.ts.map +1 -0
- package/dist/calendar/IncompleteDate.d.ts +2 -1
- package/dist/calendar/IncompleteDate.d.ts.map +1 -0
- package/dist/calendar/createCalendarState.d.ts +7 -8
- package/dist/calendar/createCalendarState.d.ts.map +1 -0
- package/dist/calendar/createDateFieldState.d.ts +4 -20
- package/dist/calendar/createDateFieldState.d.ts.map +1 -0
- package/dist/calendar/createDatePickerState.d.ts +2 -7
- package/dist/calendar/createDatePickerState.d.ts.map +1 -0
- package/dist/calendar/createRangeCalendarState.d.ts +7 -7
- package/dist/calendar/createRangeCalendarState.d.ts.map +1 -0
- package/dist/calendar/createTimeFieldState.d.ts +4 -23
- package/dist/calendar/createTimeFieldState.d.ts.map +1 -0
- package/dist/calendar/index.d.ts +1 -0
- package/dist/calendar/index.d.ts.map +1 -0
- package/dist/calendar/intl/index.d.ts +1 -0
- package/dist/calendar/intl/index.d.ts.map +1 -0
- package/dist/checkbox/createCheckboxGroupState.d.ts +1 -0
- package/dist/checkbox/createCheckboxGroupState.d.ts.map +1 -0
- package/dist/checkbox/index.d.ts +1 -0
- package/dist/checkbox/index.d.ts.map +1 -0
- package/dist/collections/ListCollection.d.ts +5 -0
- package/dist/collections/ListCollection.d.ts.map +1 -0
- package/dist/collections/createListState.d.ts +2 -6
- package/dist/collections/createListState.d.ts.map +1 -0
- package/dist/collections/createMenuState.d.ts +30 -13
- package/dist/collections/createMenuState.d.ts.map +1 -0
- package/dist/collections/createSelectionState.d.ts +2 -5
- package/dist/collections/createSelectionState.d.ts.map +1 -0
- package/dist/collections/getChildNodes.d.ts +6 -3
- package/dist/collections/getChildNodes.d.ts.map +1 -0
- package/dist/collections/index.d.ts +2 -1
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/collections/types.d.ts +36 -2
- package/dist/collections/types.d.ts.map +1 -0
- package/dist/color/Color.d.ts +7 -1
- package/dist/color/Color.d.ts.map +1 -0
- package/dist/color/createColorAreaState.d.ts +2 -5
- package/dist/color/createColorAreaState.d.ts.map +1 -0
- package/dist/color/createColorFieldState.d.ts +2 -5
- package/dist/color/createColorFieldState.d.ts.map +1 -0
- package/dist/color/createColorSliderState.d.ts +2 -5
- package/dist/color/createColorSliderState.d.ts.map +1 -0
- package/dist/color/createColorWheelState.d.ts +2 -5
- package/dist/color/createColorWheelState.d.ts.map +1 -0
- package/dist/color/getColorChannels.d.ts +3 -0
- package/dist/color/getColorChannels.d.ts.map +1 -0
- package/dist/color/index.d.ts +2 -1
- package/dist/color/index.d.ts.map +1 -0
- package/dist/color/intl/index.d.ts +1 -0
- package/dist/color/intl/index.d.ts.map +1 -0
- package/dist/color/types.d.ts +2 -1
- package/dist/color/types.d.ts.map +1 -0
- package/dist/combobox/createComboBoxState.d.ts +4 -8
- package/dist/combobox/createComboBoxState.d.ts.map +1 -0
- package/dist/combobox/index.d.ts +1 -0
- package/dist/combobox/index.d.ts.map +1 -0
- package/dist/data/createAsyncList.d.ts +1 -7
- package/dist/data/createAsyncList.d.ts.map +1 -0
- package/dist/data/createListData.d.ts +1 -6
- package/dist/data/createListData.d.ts.map +1 -0
- package/dist/data/createTreeData.d.ts +1 -6
- package/dist/data/createTreeData.d.ts.map +1 -0
- package/dist/data/index.d.ts +1 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/datepicker/index.d.ts +1 -0
- package/dist/datepicker/index.d.ts.map +1 -0
- package/dist/disclosure/createDisclosureState.d.ts +2 -5
- package/dist/disclosure/createDisclosureState.d.ts.map +1 -0
- package/dist/disclosure/index.d.ts +1 -0
- package/dist/disclosure/index.d.ts.map +1 -0
- package/dist/dnd/createDragState.d.ts +2 -6
- package/dist/dnd/createDragState.d.ts.map +1 -0
- package/dist/dnd/createDraggableCollectionState.d.ts +39 -10
- package/dist/dnd/createDraggableCollectionState.d.ts.map +1 -0
- package/dist/dnd/createDropState.d.ts +2 -6
- package/dist/dnd/createDropState.d.ts.map +1 -0
- package/dist/dnd/createDroppableCollectionState.d.ts +28 -11
- package/dist/dnd/createDroppableCollectionState.d.ts.map +1 -0
- package/dist/dnd/index.d.ts +3 -2
- package/dist/dnd/index.d.ts.map +1 -0
- package/dist/dnd/types.d.ts +17 -0
- package/dist/dnd/types.d.ts.map +1 -0
- package/dist/flags/flags.d.ts +5 -0
- package/dist/flags/flags.d.ts.map +1 -0
- package/dist/form/createFormValidationState.d.ts +2 -9
- package/{src → dist}/form/createFormValidationState.d.ts.map +1 -1
- package/dist/form/index.d.ts +1 -0
- package/dist/form/index.d.ts.map +1 -0
- package/dist/grid/createGridState.d.ts +3 -2
- package/dist/grid/createGridState.d.ts.map +1 -0
- package/dist/grid/index.d.ts +1 -0
- package/dist/grid/index.d.ts.map +1 -0
- package/dist/grid/types.d.ts +23 -1
- package/dist/grid/types.d.ts.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2030 -593
- package/dist/index.js.map +1 -1
- package/dist/menu/index.d.ts +2 -1
- package/dist/menu/index.d.ts.map +1 -0
- package/dist/numberfield/createNumberFieldState.d.ts +31 -6
- package/dist/numberfield/createNumberFieldState.d.ts.map +1 -0
- package/dist/numberfield/index.d.ts +1 -0
- package/dist/numberfield/index.d.ts.map +1 -0
- package/dist/overlays/createOverlayTriggerState.d.ts +12 -1
- package/dist/overlays/createOverlayTriggerState.d.ts.map +1 -0
- package/dist/overlays/index.d.ts +1 -0
- package/dist/overlays/index.d.ts.map +1 -0
- package/dist/private/flags/flags.js +26 -0
- package/dist/private/flags/flags.js.map +1 -0
- package/dist/radio/createRadioGroupState.d.ts +1 -0
- package/dist/radio/createRadioGroupState.d.ts.map +1 -0
- package/dist/radio/index.d.ts +1 -0
- package/dist/radio/index.d.ts.map +1 -0
- package/dist/searchfield/createSearchFieldState.d.ts +2 -5
- package/dist/searchfield/createSearchFieldState.d.ts.map +1 -0
- package/dist/searchfield/index.d.ts +1 -0
- package/dist/searchfield/index.d.ts.map +1 -0
- package/dist/select/createSelectState.d.ts +17 -6
- package/dist/select/createSelectState.d.ts.map +1 -0
- package/dist/select/index.d.ts +1 -0
- package/dist/select/index.d.ts.map +1 -0
- package/dist/selection/Selection.d.ts +2 -1
- package/dist/selection/Selection.d.ts.map +1 -0
- package/dist/selection/SelectionManager.d.ts +1 -19
- package/dist/selection/SelectionManager.d.ts.map +1 -0
- package/dist/selection/createMultipleSelectionState.d.ts +2 -13
- package/dist/selection/createMultipleSelectionState.d.ts.map +1 -0
- package/dist/selection/index.d.ts +1 -0
- package/dist/selection/index.d.ts.map +1 -0
- package/dist/slider/createSliderState.d.ts +2 -5
- package/dist/slider/createSliderState.d.ts.map +1 -0
- package/dist/slider/index.d.ts +1 -0
- package/dist/slider/index.d.ts.map +1 -0
- package/dist/ssr/index.d.ts +2 -7
- package/dist/ssr/index.d.ts.map +1 -0
- package/dist/steplist/createStepListState.d.ts +2 -5
- package/dist/steplist/createStepListState.d.ts.map +1 -0
- package/dist/steplist/index.d.ts +1 -0
- package/dist/steplist/index.d.ts.map +1 -0
- package/dist/table/TableCollection.d.ts +1 -0
- package/dist/table/TableCollection.d.ts.map +1 -0
- package/dist/table/createTableColumnResizeState.d.ts +2 -9
- package/dist/table/createTableColumnResizeState.d.ts.map +1 -0
- package/dist/table/createTableState.d.ts +2 -5
- package/dist/table/createTableState.d.ts.map +1 -0
- package/dist/table/createTreeGridState.d.ts +2 -8
- package/dist/table/createTreeGridState.d.ts.map +1 -0
- package/dist/table/index.d.ts +1 -0
- package/dist/table/index.d.ts.map +1 -0
- package/dist/table/types.d.ts +35 -1
- package/dist/table/types.d.ts.map +1 -0
- package/dist/tabs/createTabListState.d.ts +2 -5
- package/dist/tabs/createTabListState.d.ts.map +1 -0
- package/dist/tabs/index.d.ts +1 -0
- package/dist/tabs/index.d.ts.map +1 -0
- package/dist/textfield/createTextFieldState.d.ts +1 -0
- package/dist/textfield/createTextFieldState.d.ts.map +1 -0
- package/dist/textfield/index.d.ts +1 -0
- package/dist/textfield/index.d.ts.map +1 -0
- package/dist/toast/createToastState.d.ts +2 -5
- package/dist/toast/createToastState.d.ts.map +1 -0
- package/dist/toast/index.d.ts +1 -0
- package/dist/toast/index.d.ts.map +1 -0
- package/dist/toggle/createToggleGroupState.d.ts +1 -0
- package/dist/toggle/createToggleGroupState.d.ts.map +1 -0
- package/dist/toggle/createToggleState.d.ts +1 -0
- package/dist/toggle/createToggleState.d.ts.map +1 -0
- package/dist/toggle/index.d.ts +1 -0
- package/dist/toggle/index.d.ts.map +1 -0
- package/dist/tokenfield/TokenFieldValue.d.ts +72 -0
- package/dist/tokenfield/TokenFieldValue.d.ts.map +1 -0
- package/dist/tokenfield/createTokenFieldState.d.ts +33 -0
- package/dist/tokenfield/createTokenFieldState.d.ts.map +1 -0
- package/dist/tokenfield/index.d.ts +3 -0
- package/dist/tokenfield/index.d.ts.map +1 -0
- package/dist/tooltip/createTooltipTriggerState.d.ts +9 -8
- package/dist/tooltip/createTooltipTriggerState.d.ts.map +1 -0
- package/dist/tooltip/index.d.ts +1 -0
- package/dist/tooltip/index.d.ts.map +1 -0
- package/dist/tree/TreeCollection.d.ts +1 -0
- package/dist/tree/TreeCollection.d.ts.map +1 -0
- package/dist/tree/createTreeState.d.ts +2 -7
- package/{src → dist}/tree/createTreeState.d.ts.map +1 -1
- package/dist/tree/index.d.ts +1 -0
- package/dist/tree/index.d.ts.map +1 -0
- package/dist/tree/types.d.ts +19 -1
- package/dist/tree/types.d.ts.map +1 -0
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/owner.d.ts +9 -0
- package/dist/utils/owner.d.ts.map +1 -0
- package/dist/utils/reactivity.d.ts +19 -0
- package/dist/utils/reactivity.d.ts.map +1 -0
- package/package.json +21 -9
- package/src/autocomplete/createAutocompleteState.ts +18 -4
- package/src/calendar/IncompleteDate.ts +15 -1
- package/src/calendar/createCalendarState.ts +194 -79
- package/src/calendar/createDateFieldState.ts +45 -31
- package/src/calendar/createDatePickerState.ts +32 -14
- package/src/calendar/createRangeCalendarState.ts +134 -73
- package/src/calendar/createTimeFieldState.ts +25 -6
- package/src/calendar/intl/index.ts +37 -2
- package/src/checkbox/createCheckboxGroupState.ts +29 -13
- package/src/collections/ListCollection.ts +31 -0
- package/src/collections/createListState.ts +23 -6
- package/src/collections/createMenuState.ts +59 -14
- package/src/collections/createSelectionState.ts +32 -12
- package/src/collections/getChildNodes.ts +20 -3
- package/src/collections/index.ts +2 -0
- package/src/collections/types.ts +35 -2
- package/src/color/Color.ts +61 -22
- package/src/color/createColorAreaState.ts +29 -4
- package/src/color/createColorFieldState.ts +37 -11
- package/src/color/createColorSliderState.ts +36 -7
- package/src/color/createColorWheelState.ts +20 -4
- package/src/color/getColorChannels.ts +16 -0
- package/src/color/index.ts +1 -0
- package/src/color/intl/index.ts +38 -3
- package/src/color/types.ts +1 -1
- package/src/combobox/createComboBoxState.ts +178 -195
- package/src/data/createAsyncList.ts +22 -2
- package/src/data/createListData.ts +19 -2
- package/src/data/createTreeData.ts +19 -3
- package/src/disclosure/createDisclosureState.ts +40 -19
- package/src/dnd/createDragState.ts +22 -4
- package/src/dnd/createDraggableCollectionState.ts +137 -10
- package/src/dnd/createDropState.ts +21 -3
- package/src/dnd/createDroppableCollectionState.ts +117 -11
- package/src/dnd/index.ts +4 -0
- package/src/dnd/types.ts +16 -0
- package/src/flags/flags.ts +25 -0
- package/src/form/createFormValidationState.ts +54 -36
- package/src/grid/createGridState.ts +187 -109
- package/src/grid/types.ts +22 -1
- package/src/index.ts +15 -0
- package/src/menu/index.ts +2 -0
- package/src/numberfield/createNumberFieldState.ts +153 -66
- package/src/overlays/createOverlayTriggerState.ts +31 -4
- package/src/radio/createRadioGroupState.ts +19 -5
- package/src/searchfield/createSearchFieldState.ts +18 -3
- package/src/select/createSelectState.ts +73 -8
- package/src/selection/Selection.ts +15 -1
- package/src/selection/SelectionManager.ts +14 -0
- package/src/selection/createMultipleSelectionState.ts +44 -25
- package/src/slider/createSliderState.ts +20 -5
- package/src/ssr/index.ts +27 -4
- package/src/steplist/createStepListState.ts +38 -17
- package/src/table/TableCollection.ts +14 -0
- package/src/table/createTableColumnResizeState.ts +20 -3
- package/src/table/createTableState.ts +22 -1
- package/src/table/createTreeGridState.ts +21 -4
- package/src/table/types.ts +36 -3
- package/src/tabs/createTabListState.ts +77 -34
- package/src/textfield/createTextFieldState.ts +17 -3
- package/src/toast/createToastState.ts +28 -3
- package/src/toggle/createToggleGroupState.ts +20 -5
- package/src/toggle/createToggleState.ts +19 -4
- package/src/tokenfield/TokenFieldValue.ts +440 -0
- package/src/tokenfield/createTokenFieldState.ts +88 -0
- package/src/tokenfield/index.ts +14 -0
- package/src/tooltip/createTooltipTriggerState.ts +49 -13
- package/src/tree/TreeCollection.ts +14 -0
- package/src/tree/createTreeState.ts +62 -35
- package/src/tree/types.ts +18 -1
- package/src/utils/index.ts +9 -1
- package/src/utils/owner.ts +20 -0
- package/src/utils/reactivity.ts +45 -1
- package/src/autocomplete/createAutocompleteState.d.ts +0 -48
- package/src/autocomplete/createAutocompleteState.d.ts.map +0 -1
- package/src/autocomplete/index.d.ts +0 -6
- package/src/autocomplete/index.d.ts.map +0 -1
- package/src/calendar/createCalendarState.d.ts +0 -152
- package/src/calendar/createCalendarState.d.ts.map +0 -1
- package/src/calendar/createDateFieldState.d.ts +0 -145
- package/src/calendar/createDateFieldState.d.ts.map +0 -1
- package/src/calendar/createRangeCalendarState.d.ts +0 -171
- package/src/calendar/createRangeCalendarState.d.ts.map +0 -1
- package/src/calendar/createTimeFieldState.d.ts +0 -97
- package/src/calendar/createTimeFieldState.d.ts.map +0 -1
- package/src/calendar/index.d.ts +0 -80
- package/src/calendar/index.d.ts.map +0 -1
- package/src/checkbox/createCheckboxGroupState.d.ts +0 -73
- package/src/checkbox/createCheckboxGroupState.d.ts.map +0 -1
- package/src/checkbox/index.d.ts +0 -6
- package/src/checkbox/index.d.ts.map +0 -1
- package/src/collections/ListCollection.d.ts +0 -40
- package/src/collections/ListCollection.d.ts.map +0 -1
- package/src/collections/createListState.d.ts +0 -94
- package/src/collections/createListState.d.ts.map +0 -1
- package/src/collections/createMenuState.d.ts +0 -55
- package/src/collections/createMenuState.d.ts.map +0 -1
- package/src/collections/createSelectionState.d.ts +0 -89
- package/src/collections/createSelectionState.d.ts.map +0 -1
- package/src/collections/index.d.ts +0 -38
- package/src/collections/index.d.ts.map +0 -1
- package/src/collections/types.d.ts +0 -147
- package/src/collections/types.d.ts.map +0 -1
- package/src/color/Color.d.ts +0 -43
- package/src/color/Color.d.ts.map +0 -1
- package/src/color/createColorAreaState.d.ts +0 -78
- package/src/color/createColorAreaState.d.ts.map +0 -1
- package/src/color/createColorFieldState.d.ts +0 -57
- package/src/color/createColorFieldState.d.ts.map +0 -1
- package/src/color/createColorSliderState.d.ts +0 -69
- package/src/color/createColorSliderState.d.ts.map +0 -1
- package/src/color/createColorWheelState.d.ts +0 -53
- package/src/color/createColorWheelState.d.ts.map +0 -1
- package/src/color/index.d.ts +0 -39
- package/src/color/index.d.ts.map +0 -1
- package/src/color/types.d.ts +0 -111
- package/src/color/types.d.ts.map +0 -1
- package/src/combobox/createComboBoxState.d.ts +0 -127
- package/src/combobox/createComboBoxState.d.ts.map +0 -1
- package/src/combobox/index.d.ts +0 -13
- package/src/combobox/index.d.ts.map +0 -1
- package/src/disclosure/createDisclosureState.d.ts +0 -68
- package/src/disclosure/createDisclosureState.d.ts.map +0 -1
- package/src/disclosure/index.d.ts +0 -10
- package/src/disclosure/index.d.ts.map +0 -1
- package/src/dnd/createDragState.d.ts +0 -68
- package/src/dnd/createDragState.d.ts.map +0 -1
- package/src/dnd/createDraggableCollectionState.d.ts +0 -68
- package/src/dnd/createDraggableCollectionState.d.ts.map +0 -1
- package/src/dnd/createDropState.d.ts +0 -80
- package/src/dnd/createDropState.d.ts.map +0 -1
- package/src/dnd/createDroppableCollectionState.d.ts +0 -107
- package/src/dnd/createDroppableCollectionState.d.ts.map +0 -1
- package/src/dnd/index.d.ts +0 -60
- package/src/dnd/index.d.ts.map +0 -1
- package/src/dnd/types.d.ts +0 -277
- package/src/dnd/types.d.ts.map +0 -1
- package/src/form/createFormValidationState.d.ts +0 -102
- package/src/form/index.d.ts +0 -16
- package/src/form/index.d.ts.map +0 -1
- package/src/grid/createGridState.d.ts +0 -15
- package/src/grid/createGridState.d.ts.map +0 -1
- package/src/grid/index.d.ts +0 -7
- package/src/grid/index.d.ts.map +0 -1
- package/src/grid/types.d.ts +0 -163
- package/src/grid/types.d.ts.map +0 -1
- package/src/index.d.ts +0 -311
- package/src/index.d.ts.map +0 -1
- package/src/numberfield/createNumberFieldState.d.ts +0 -67
- package/src/numberfield/createNumberFieldState.d.ts.map +0 -1
- package/src/numberfield/index.d.ts +0 -6
- package/src/numberfield/index.d.ts.map +0 -1
- package/src/overlays/createOverlayTriggerState.d.ts +0 -34
- package/src/overlays/createOverlayTriggerState.d.ts.map +0 -1
- package/src/overlays/index.d.ts +0 -6
- package/src/overlays/index.d.ts.map +0 -1
- package/src/radio/createRadioGroupState.d.ts +0 -79
- package/src/radio/createRadioGroupState.d.ts.map +0 -1
- package/src/radio/index.d.ts +0 -7
- package/src/radio/index.d.ts.map +0 -1
- package/src/searchfield/createSearchFieldState.d.ts +0 -27
- package/src/searchfield/createSearchFieldState.d.ts.map +0 -1
- package/src/searchfield/index.d.ts +0 -3
- package/src/searchfield/index.d.ts.map +0 -1
- package/src/select/createSelectState.d.ts +0 -75
- package/src/select/createSelectState.d.ts.map +0 -1
- package/src/select/index.d.ts +0 -2
- package/src/select/index.d.ts.map +0 -1
- package/src/slider/createSliderState.d.ts +0 -72
- package/src/slider/createSliderState.d.ts.map +0 -1
- package/src/slider/index.d.ts +0 -3
- package/src/slider/index.d.ts.map +0 -1
- package/src/ssr/index.d.ts +0 -28
- package/src/ssr/index.d.ts.map +0 -1
- package/src/table/TableCollection.d.ts +0 -54
- package/src/table/TableCollection.d.ts.map +0 -1
- package/src/table/createTableState.d.ts +0 -15
- package/src/table/createTableState.d.ts.map +0 -1
- package/src/table/index.d.ts +0 -18
- package/src/table/index.d.ts.map +0 -1
- package/src/table/types.d.ts +0 -145
- package/src/table/types.d.ts.map +0 -1
- package/src/tabs/createTabListState.d.ts +0 -70
- package/src/tabs/createTabListState.d.ts.map +0 -1
- package/src/tabs/index.d.ts +0 -8
- package/src/tabs/index.d.ts.map +0 -1
- package/src/textfield/createTextFieldState.d.ts +0 -32
- package/src/textfield/createTextFieldState.d.ts.map +0 -1
- package/src/textfield/index.d.ts +0 -6
- package/src/textfield/index.d.ts.map +0 -1
- package/src/toast/createToastState.d.ts +0 -129
- package/src/toast/createToastState.d.ts.map +0 -1
- package/src/toast/index.d.ts +0 -12
- package/src/toast/index.d.ts.map +0 -1
- package/src/toggle/createToggleState.d.ts +0 -34
- package/src/toggle/createToggleState.d.ts.map +0 -1
- package/src/toggle/index.d.ts +0 -2
- package/src/toggle/index.d.ts.map +0 -1
- package/src/tooltip/createTooltipTriggerState.d.ts +0 -39
- package/src/tooltip/createTooltipTriggerState.d.ts.map +0 -1
- package/src/tooltip/index.d.ts +0 -7
- package/src/tooltip/index.d.ts.map +0 -1
- package/src/tree/TreeCollection.d.ts +0 -43
- package/src/tree/TreeCollection.d.ts.map +0 -1
- package/src/tree/createTreeState.d.ts +0 -17
- package/src/tree/index.d.ts +0 -13
- package/src/tree/index.d.ts.map +0 -1
- package/src/tree/types.d.ts +0 -162
- package/src/tree/types.d.ts.map +0 -1
- package/src/utils/index.d.ts +0 -2
- package/src/utils/index.d.ts.map +0 -1
- package/src/utils/reactivity.d.ts +0 -28
- package/src/utils/reactivity.d.ts.map +0 -1
package/src/dnd/types.ts
CHANGED
|
@@ -1,7 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/@react-types/shared/src/dnd.d.ts
|
|
14
|
+
|
|
1
15
|
/**
|
|
2
16
|
* Drag and Drop types for solid-stately.
|
|
3
17
|
*
|
|
4
18
|
* Core types for drag and drop operations, matching React Aria's DnD API.
|
|
19
|
+
*
|
|
20
|
+
* Ported from packages/@react-types/shared/src/dnd.d.ts.
|
|
5
21
|
*/
|
|
6
22
|
|
|
7
23
|
/** The type of drop operation to perform. */
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/flags/flags.ts
|
|
14
|
+
|
|
15
|
+
let shadowDOMEnabled = false;
|
|
16
|
+
|
|
17
|
+
/** Enables React Stately's opt-in Shadow DOM behavior across the port stack. */
|
|
18
|
+
export function enableShadowDOM(): void {
|
|
19
|
+
shadowDOMEnabled = true;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** Returns whether opt-in Shadow DOM behavior is enabled. */
|
|
23
|
+
export function shadowDOM(): boolean {
|
|
24
|
+
return shadowDOMEnabled;
|
|
25
|
+
}
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/form/useFormValidationState.ts
|
|
14
|
+
|
|
1
15
|
/**
|
|
2
16
|
* createFormValidationState for solid-stately
|
|
3
17
|
*
|
|
@@ -7,14 +21,9 @@
|
|
|
7
21
|
* Port of react-stately's useFormValidationState.
|
|
8
22
|
*/
|
|
9
23
|
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
createEffect,
|
|
14
|
-
createMemo,
|
|
15
|
-
createSignal,
|
|
16
|
-
useContext,
|
|
17
|
-
} from "solid-js";
|
|
24
|
+
import { createContext, createEffect, createMemo } from "solid-js";
|
|
25
|
+
import type { Accessor } from "solid-js";
|
|
26
|
+
import { createInternalSignal, useContextOptional } from "../utils";
|
|
18
27
|
|
|
19
28
|
/** Standard HTML ValidityState interface. */
|
|
20
29
|
export interface ValidityState {
|
|
@@ -197,15 +206,17 @@ export function createFormValidationState<T>(props: FormValidationProps<T>): For
|
|
|
197
206
|
: null,
|
|
198
207
|
);
|
|
199
208
|
|
|
200
|
-
// Client-side validation
|
|
201
|
-
|
|
209
|
+
// Client-side validation. Compute live so commitValidation sees a value
|
|
210
|
+
// that was written in this same turn (Solid 2 memos stay committed until flush).
|
|
211
|
+
const computeClientError = (): ValidationResult | null => {
|
|
202
212
|
const validate = props.validate;
|
|
203
213
|
if (!validate || props.value == null) {
|
|
204
214
|
return null;
|
|
205
215
|
}
|
|
206
216
|
const validateErrors = runValidate(validate, props.value);
|
|
207
217
|
return getValidationResult(validateErrors);
|
|
208
|
-
}
|
|
218
|
+
};
|
|
219
|
+
const clientError = createMemo<ValidationResult | null>(computeClientError);
|
|
209
220
|
|
|
210
221
|
// Built-in validation (skip if valid)
|
|
211
222
|
const builtinValidation = createMemo<ValidationResult | undefined>(() => {
|
|
@@ -216,8 +227,9 @@ export function createFormValidationState<T>(props: FormValidationProps<T>): For
|
|
|
216
227
|
return builtinValidationProp;
|
|
217
228
|
});
|
|
218
229
|
|
|
219
|
-
// Server errors from context
|
|
220
|
-
|
|
230
|
+
// Server errors from context. Optional: hook factories and tests call this
|
|
231
|
+
// outside a component / FormValidationContext provider.
|
|
232
|
+
const serverErrors = useContextOptional(FormValidationContext) ?? {};
|
|
221
233
|
const serverErrorMessages = createMemo(() => {
|
|
222
234
|
const name = props.name;
|
|
223
235
|
if (name) {
|
|
@@ -229,39 +241,45 @@ export function createFormValidationState<T>(props: FormValidationProps<T>): For
|
|
|
229
241
|
});
|
|
230
242
|
|
|
231
243
|
// Track server errors clearing
|
|
232
|
-
const [lastServerErrors, setLastServerErrors] =
|
|
233
|
-
const [isServerErrorCleared, setServerErrorCleared] =
|
|
234
|
-
|
|
235
|
-
createEffect(
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
244
|
+
const [lastServerErrors, setLastServerErrors] = createInternalSignal(serverErrors);
|
|
245
|
+
const [isServerErrorCleared, setServerErrorCleared] = createInternalSignal(false);
|
|
246
|
+
|
|
247
|
+
createEffect(
|
|
248
|
+
() => ({ errors: serverErrors, last: lastServerErrors() }),
|
|
249
|
+
({ errors, last }) => {
|
|
250
|
+
if (errors !== last) {
|
|
251
|
+
setLastServerErrors(errors);
|
|
252
|
+
setServerErrorCleared(false);
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
);
|
|
241
256
|
|
|
242
257
|
const serverError = createMemo<ValidationResult | null>(() =>
|
|
243
258
|
getValidationResult(isServerErrorCleared() ? [] : serverErrorMessages()),
|
|
244
259
|
);
|
|
245
260
|
|
|
246
261
|
// Track validation state
|
|
247
|
-
const [currentValidity, setCurrentValidity] =
|
|
248
|
-
const [commitQueued, setCommitQueued] =
|
|
262
|
+
const [currentValidity, setCurrentValidity] = createInternalSignal(DEFAULT_VALIDATION_RESULT);
|
|
263
|
+
const [commitQueued, setCommitQueued] = createInternalSignal(false);
|
|
249
264
|
|
|
250
265
|
let nextValidation = DEFAULT_VALIDATION_RESULT;
|
|
251
266
|
let lastError = DEFAULT_VALIDATION_RESULT;
|
|
252
267
|
|
|
253
268
|
// Commit validation effect
|
|
254
|
-
createEffect(
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
269
|
+
createEffect(
|
|
270
|
+
() => ({
|
|
271
|
+
queued: commitQueued(),
|
|
272
|
+
error: clientError() || builtinValidation() || nextValidation,
|
|
273
|
+
}),
|
|
274
|
+
({ queued, error }) => {
|
|
275
|
+
if (!queued) return;
|
|
276
|
+
setCommitQueued(false);
|
|
277
|
+
if (!isEqualValidation(error, lastError)) {
|
|
278
|
+
lastError = error;
|
|
279
|
+
setCurrentValidity(error);
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
);
|
|
265
283
|
|
|
266
284
|
// Realtime validation (for native input state)
|
|
267
285
|
const realtimeValidation = createMemo<ValidationResult>(
|
|
@@ -314,7 +332,7 @@ export function createFormValidationState<T>(props: FormValidationProps<T>): For
|
|
|
314
332
|
commitValidation() {
|
|
315
333
|
// Commit validation state so the user sees it on blur/change/submit.
|
|
316
334
|
if (validationBehavior() === "native") {
|
|
317
|
-
const error =
|
|
335
|
+
const error = computeClientError() || builtinValidation() || nextValidation;
|
|
318
336
|
if (!isEqualValidation(error, lastError)) {
|
|
319
337
|
lastError = error;
|
|
320
338
|
setCurrentValidity(error);
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Grid state management for Table and GridList components.
|
|
3
|
-
* Based on
|
|
3
|
+
* Based on packages/react-stately/src/grid/useGridState.ts.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { createEffect, createMemo } from "solid-js";
|
|
7
|
+
import type { Accessor } from "solid-js";
|
|
7
8
|
import type { GridState, GridStateOptions, GridCollection, GridNode } from "./types";
|
|
8
9
|
import type { Key, FocusStrategy, SelectionBehavior, Selection } from "../collections/types";
|
|
10
|
+
import { createInternalSignal } from "../utils";
|
|
9
11
|
|
|
10
12
|
/**
|
|
11
13
|
* Creates state management for a grid component.
|
|
@@ -21,52 +23,53 @@ export function createGridState<T extends object, C extends GridCollection<T> =
|
|
|
21
23
|
return keys ? new Set(keys) : new Set<Key>();
|
|
22
24
|
});
|
|
23
25
|
|
|
24
|
-
const [isFocused, setIsFocused] =
|
|
25
|
-
const [focusedKey, setFocusedKeyInternal] =
|
|
26
|
-
const [childFocusStrategy, setChildFocusStrategy] =
|
|
27
|
-
|
|
26
|
+
const [isFocused, setIsFocused] = createInternalSignal(false);
|
|
27
|
+
const [focusedKey, setFocusedKeyInternal] = createInternalSignal<Key | null>(null);
|
|
28
|
+
const [childFocusStrategy, setChildFocusStrategy] = createInternalSignal<FocusStrategy | null>(
|
|
29
|
+
null,
|
|
30
|
+
);
|
|
31
|
+
const [isKeyboardNavigationDisabled, setKeyboardNavigationDisabled] = createInternalSignal(false);
|
|
28
32
|
|
|
29
|
-
const [internalSelectedKeys, setInternalSelectedKeys] =
|
|
33
|
+
const [internalSelectedKeys, setInternalSelectedKeys] = createInternalSignal<"all" | Set<Key>>(
|
|
30
34
|
getInitialSelection(getOptions().defaultSelectedKeys),
|
|
31
35
|
);
|
|
32
|
-
const [anchorKey, setAnchorKey] =
|
|
36
|
+
const [anchorKey, setAnchorKey] = createInternalSignal<Key | null>(null);
|
|
33
37
|
|
|
34
|
-
const selectedKeys =
|
|
38
|
+
const selectedKeys = (): "all" | Set<Key> => {
|
|
35
39
|
const opts = getOptions();
|
|
36
40
|
if (opts.selectedKeys !== undefined) {
|
|
37
41
|
return normalizeSelection(opts.selectedKeys);
|
|
38
42
|
}
|
|
39
43
|
return internalSelectedKeys();
|
|
40
|
-
}
|
|
44
|
+
};
|
|
41
45
|
|
|
42
46
|
const selectionMode = createMemo(() => getOptions().selectionMode ?? "none");
|
|
43
47
|
const selectionBehaviorProp = (): SelectionBehavior => getOptions().selectionBehavior ?? "toggle";
|
|
44
48
|
const [selectionBehaviorState, setSelectionBehaviorState] =
|
|
45
|
-
|
|
49
|
+
createInternalSignal<SelectionBehavior>(selectionBehaviorProp());
|
|
46
50
|
const selectionBehavior = createMemo(() => selectionBehaviorState());
|
|
47
51
|
const disallowEmptySelection = createMemo(() => getOptions().disallowEmptySelection ?? false);
|
|
48
52
|
const disabledBehavior = createMemo(() => getOptions().disabledBehavior ?? "all");
|
|
49
53
|
|
|
50
54
|
const focusMode = createMemo(() => getOptions().focusMode ?? "row");
|
|
51
55
|
|
|
56
|
+
createEffect(selectionBehaviorProp, (behavior) => {
|
|
57
|
+
setSelectionBehaviorState(behavior);
|
|
58
|
+
});
|
|
59
|
+
|
|
52
60
|
createEffect(
|
|
53
|
-
|
|
54
|
-
|
|
61
|
+
() => ({
|
|
62
|
+
prop: selectionBehaviorProp(),
|
|
63
|
+
state: selectionBehaviorState(),
|
|
64
|
+
keys: selectedKeys(),
|
|
55
65
|
}),
|
|
66
|
+
({ prop, state, keys }) => {
|
|
67
|
+
if (prop === "replace" && state === "toggle" && keys !== "all" && keys.size === 0) {
|
|
68
|
+
setSelectionBehaviorState("replace");
|
|
69
|
+
}
|
|
70
|
+
},
|
|
56
71
|
);
|
|
57
72
|
|
|
58
|
-
createEffect(() => {
|
|
59
|
-
const keys = selectedKeys();
|
|
60
|
-
if (
|
|
61
|
-
selectionBehaviorProp() === "replace" &&
|
|
62
|
-
selectionBehaviorState() === "toggle" &&
|
|
63
|
-
keys !== "all" &&
|
|
64
|
-
keys.size === 0
|
|
65
|
-
) {
|
|
66
|
-
setSelectionBehaviorState("replace");
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
|
|
70
73
|
const setFocusedKey = (key: Key | null, strategy: FocusStrategy = "first") => {
|
|
71
74
|
const opts = getOptions();
|
|
72
75
|
const collection = opts.collection;
|
|
@@ -88,84 +91,138 @@ export function createGridState<T extends object, C extends GridCollection<T> =
|
|
|
88
91
|
setChildFocusStrategy(strategy);
|
|
89
92
|
};
|
|
90
93
|
|
|
91
|
-
// Reset focused key if the item is deleted from the collection
|
|
92
|
-
|
|
94
|
+
// Reset focused key if the item is deleted from the collection.
|
|
95
|
+
// Seed the cache at factory time so the first effect run (Solid 2 flushes
|
|
96
|
+
// effects, they do not run synchronously) can still see a deletion.
|
|
97
|
+
let cachedCollection: C | null = getOptions().collection;
|
|
93
98
|
|
|
94
99
|
createEffect(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
(
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
node
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
cachedCollection = collection;
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
const cachedRows = cachedCollection.rows;
|
|
120
|
-
const rows = collection.rows;
|
|
121
|
-
const diff = cachedRows.length - rows.length;
|
|
100
|
+
() => ({
|
|
101
|
+
collection: getOptions().collection,
|
|
102
|
+
currentFocusedKey: focusedKey(),
|
|
103
|
+
disabled: disabledKeys(),
|
|
104
|
+
}),
|
|
105
|
+
({ collection, currentFocusedKey, disabled }) => {
|
|
106
|
+
if (currentFocusedKey != null && cachedCollection && !collection.getItem(currentFocusedKey)) {
|
|
107
|
+
// The focused item was deleted, find a new one to focus
|
|
108
|
+
const node = cachedCollection.getItem(currentFocusedKey);
|
|
109
|
+
const parentNode =
|
|
110
|
+
node?.parentKey != null &&
|
|
111
|
+
(node.type === "cell" || node.type === "rowheader" || node.type === "column")
|
|
112
|
+
? cachedCollection.getItem(node.parentKey)
|
|
113
|
+
: node;
|
|
114
|
+
|
|
115
|
+
if (!parentNode) {
|
|
116
|
+
setFocusedKeyInternal(null);
|
|
117
|
+
cachedCollection = collection;
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
122
120
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
121
|
+
const cachedRows = cachedCollection.rows;
|
|
122
|
+
const rows = collection.rows;
|
|
123
|
+
const diff = cachedRows.length - rows.length;
|
|
124
|
+
|
|
125
|
+
let index = Math.min(
|
|
126
|
+
diff > 1 ? Math.max(parentNode.index - diff + 1, 0) : parentNode.index,
|
|
127
|
+
rows.length - 1,
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
let newRow: GridNode<T> | null = null;
|
|
131
|
+
|
|
132
|
+
// Search forward once from the deleted position, then backward once.
|
|
133
|
+
// The previous direction-switching loop could bounce forever between
|
|
134
|
+
// two disabled rows when the focused row was deleted.
|
|
135
|
+
for (let i = Math.max(0, index); i < rows.length; i++) {
|
|
136
|
+
const row = rows[i];
|
|
137
|
+
if (!disabled.has(row.key) && row.type !== "headerrow") {
|
|
138
|
+
newRow = row;
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
127
142
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const row = rows[
|
|
131
|
-
if (!
|
|
143
|
+
if (newRow === null) {
|
|
144
|
+
for (let i = index - 1; i >= 0; i--) {
|
|
145
|
+
const row = rows[i];
|
|
146
|
+
if (!disabled.has(row.key) && row.type !== "headerrow") {
|
|
132
147
|
newRow = row;
|
|
133
148
|
break;
|
|
134
149
|
}
|
|
135
|
-
// Find next, not disabled row
|
|
136
|
-
if (index < rows.length - 1) {
|
|
137
|
-
index++;
|
|
138
|
-
} else {
|
|
139
|
-
// Otherwise, find previous, not disabled row
|
|
140
|
-
if (index > parentNode.index) {
|
|
141
|
-
index = parentNode.index;
|
|
142
|
-
}
|
|
143
|
-
index--;
|
|
144
|
-
}
|
|
145
150
|
}
|
|
151
|
+
}
|
|
146
152
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}
|
|
153
|
+
if (newRow) {
|
|
154
|
+
const childNodes = newRow.hasChildNodes ? [...collection.getChildren(newRow.key)] : [];
|
|
155
|
+
const keyToFocus =
|
|
156
|
+
newRow.hasChildNodes && parentNode !== node && node && node.index < childNodes.length
|
|
157
|
+
? childNodes[node.index].key
|
|
158
|
+
: newRow.key;
|
|
159
|
+
setFocusedKeyInternal(keyToFocus);
|
|
160
|
+
} else {
|
|
161
|
+
setFocusedKeyInternal(null);
|
|
157
162
|
}
|
|
163
|
+
}
|
|
158
164
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
),
|
|
165
|
+
cachedCollection = collection;
|
|
166
|
+
},
|
|
162
167
|
);
|
|
163
168
|
|
|
164
169
|
// Selection methods
|
|
170
|
+
const getSelectionKey = (key: Key): Key | null => {
|
|
171
|
+
const collection = getOptions().collection;
|
|
172
|
+
let item = collection.getItem(key);
|
|
173
|
+
|
|
174
|
+
if (!item) {
|
|
175
|
+
return key;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// Cells and other child nodes select their parent row.
|
|
179
|
+
while (item && item.type !== "item" && item.parentKey != null) {
|
|
180
|
+
item = collection.getItem(item.parentKey);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
return item?.type === "item" ? item.key : null;
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
const canSelectItem = (key: Key): boolean => {
|
|
187
|
+
if (selectionMode() === "none" || disabledKeys().has(key)) {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
const item = getOptions().collection.getItem(key);
|
|
192
|
+
return !!item && item.type === "item" && !item.isDisabled && !item.props?.isDisabled;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
const getSelectAllKeys = (): Key[] => {
|
|
196
|
+
return getOptions()
|
|
197
|
+
.collection.rows.filter((row) => row.type === "item" && canSelectItem(row.key))
|
|
198
|
+
.map((row) => row.key);
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
const isEmpty = createMemo(() => {
|
|
202
|
+
const keys = selectedKeys();
|
|
203
|
+
return keys !== "all" && keys.size === 0;
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
const isSelectAll = createMemo(() => {
|
|
207
|
+
const keys = selectedKeys();
|
|
208
|
+
if (isEmpty()) return false;
|
|
209
|
+
|
|
210
|
+
if (keys === "all") {
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
return getSelectAllKeys().every((key) => keys.has(key));
|
|
215
|
+
});
|
|
216
|
+
|
|
165
217
|
const isSelected = (key: Key): boolean => {
|
|
218
|
+
if (selectionMode() === "none") return false;
|
|
219
|
+
|
|
220
|
+
const selectionKey = getSelectionKey(key);
|
|
221
|
+
if (selectionKey == null) return false;
|
|
222
|
+
|
|
166
223
|
const keys = selectedKeys();
|
|
167
|
-
if (keys === "all") return
|
|
168
|
-
return keys.has(
|
|
224
|
+
if (keys === "all") return canSelectItem(selectionKey);
|
|
225
|
+
return keys.has(selectionKey);
|
|
169
226
|
};
|
|
170
227
|
|
|
171
228
|
const isDisabled = (key: Key): boolean => {
|
|
@@ -196,49 +253,62 @@ export function createGridState<T extends object, C extends GridCollection<T> =
|
|
|
196
253
|
};
|
|
197
254
|
|
|
198
255
|
const toggleSelection = (key: Key) => {
|
|
199
|
-
if (isDisabled(key)) return;
|
|
200
256
|
if (selectionMode() === "none") return;
|
|
201
257
|
|
|
258
|
+
const selectionKey = getSelectionKey(key);
|
|
259
|
+
if (selectionKey == null) return;
|
|
260
|
+
|
|
202
261
|
const current = selectedKeys();
|
|
203
262
|
|
|
204
263
|
if (selectionMode() === "single") {
|
|
205
|
-
if (isSelected(
|
|
264
|
+
if (isSelected(selectionKey) && !disallowEmptySelection()) {
|
|
206
265
|
updateSelection(new Set());
|
|
207
|
-
} else {
|
|
208
|
-
updateSelection(new Set([
|
|
266
|
+
} else if (canSelectItem(selectionKey)) {
|
|
267
|
+
updateSelection(new Set([selectionKey]));
|
|
209
268
|
}
|
|
210
269
|
return;
|
|
211
270
|
}
|
|
212
271
|
|
|
213
272
|
// Multiple selection
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
const newSelection = new Set(current);
|
|
220
|
-
if (newSelection.has(key)) {
|
|
273
|
+
const newSelection = new Set(current === "all" ? getSelectAllKeys() : current);
|
|
274
|
+
if (newSelection.has(selectionKey)) {
|
|
221
275
|
if (newSelection.size > 1 || !disallowEmptySelection()) {
|
|
222
|
-
newSelection.delete(
|
|
276
|
+
newSelection.delete(selectionKey);
|
|
223
277
|
}
|
|
224
|
-
} else {
|
|
225
|
-
newSelection.add(
|
|
278
|
+
} else if (canSelectItem(selectionKey)) {
|
|
279
|
+
newSelection.add(selectionKey);
|
|
226
280
|
}
|
|
227
281
|
|
|
228
282
|
updateSelection(newSelection);
|
|
229
|
-
setAnchorKey(
|
|
283
|
+
setAnchorKey(selectionKey);
|
|
230
284
|
};
|
|
231
285
|
|
|
232
286
|
const replaceSelection = (key: Key) => {
|
|
233
|
-
if (isDisabled(key)) return;
|
|
234
287
|
if (selectionMode() === "none") return;
|
|
235
288
|
|
|
236
|
-
|
|
237
|
-
|
|
289
|
+
const selectionKey = getSelectionKey(key);
|
|
290
|
+
if (selectionKey == null) return;
|
|
291
|
+
|
|
292
|
+
updateSelection(canSelectItem(selectionKey) ? new Set([selectionKey]) : new Set());
|
|
293
|
+
setAnchorKey(selectionKey);
|
|
238
294
|
};
|
|
239
295
|
|
|
240
296
|
const setSelectedKeys = (keys: Selection | Iterable<Key>) => {
|
|
241
|
-
|
|
297
|
+
if (selectionMode() === "none") return;
|
|
298
|
+
if (keys === "all") {
|
|
299
|
+
updateSelection("all");
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
const selection = new Set<Key>();
|
|
304
|
+
for (const key of keys) {
|
|
305
|
+
const selectionKey = getSelectionKey(key);
|
|
306
|
+
if (selectionKey != null) {
|
|
307
|
+
selection.add(selectionKey);
|
|
308
|
+
if (selectionMode() === "single") break;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
updateSelection(selection);
|
|
242
312
|
};
|
|
243
313
|
|
|
244
314
|
const extendSelection = (toKey: Key) => {
|
|
@@ -248,7 +318,7 @@ export function createGridState<T extends object, C extends GridCollection<T> =
|
|
|
248
318
|
return;
|
|
249
319
|
}
|
|
250
320
|
|
|
251
|
-
const anchor = anchorKey();
|
|
321
|
+
const anchor = anchorKey() ?? focusedKey();
|
|
252
322
|
if (!anchor) {
|
|
253
323
|
replaceSelection(toKey);
|
|
254
324
|
return;
|
|
@@ -274,7 +344,9 @@ export function createGridState<T extends object, C extends GridCollection<T> =
|
|
|
274
344
|
|
|
275
345
|
const selectAll = () => {
|
|
276
346
|
if (selectionMode() !== "multiple") return;
|
|
277
|
-
|
|
347
|
+
if (!isSelectAll()) {
|
|
348
|
+
updateSelection("all");
|
|
349
|
+
}
|
|
278
350
|
};
|
|
279
351
|
|
|
280
352
|
const clearSelection = () => {
|
|
@@ -285,7 +357,7 @@ export function createGridState<T extends object, C extends GridCollection<T> =
|
|
|
285
357
|
const toggleSelectAll = () => {
|
|
286
358
|
if (selectionMode() !== "multiple") return;
|
|
287
359
|
|
|
288
|
-
if (
|
|
360
|
+
if (isSelectAll()) {
|
|
289
361
|
clearSelection();
|
|
290
362
|
} else {
|
|
291
363
|
selectAll();
|
|
@@ -326,6 +398,12 @@ export function createGridState<T extends object, C extends GridCollection<T> =
|
|
|
326
398
|
get selectedKeys() {
|
|
327
399
|
return selectedKeys();
|
|
328
400
|
},
|
|
401
|
+
get isEmpty() {
|
|
402
|
+
return isEmpty();
|
|
403
|
+
},
|
|
404
|
+
get isSelectAll() {
|
|
405
|
+
return isSelectAll();
|
|
406
|
+
},
|
|
329
407
|
isSelected,
|
|
330
408
|
isDisabled,
|
|
331
409
|
setFocusedKey,
|
package/src/grid/types.ts
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/grid/GridCollection.ts
|
|
14
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-stately/src/grid/useGridState.ts
|
|
15
|
+
|
|
1
16
|
/**
|
|
2
17
|
* Grid collection types for Table and GridList components.
|
|
3
|
-
*
|
|
18
|
+
* Ported from:
|
|
19
|
+
* - packages/react-stately/src/grid/GridCollection.ts
|
|
20
|
+
* - packages/react-stately/src/grid/useGridState.ts
|
|
4
21
|
*/
|
|
5
22
|
|
|
6
23
|
import type { Key, FocusStrategy, Selection, SelectionBehavior } from "../collections/types";
|
|
@@ -145,6 +162,10 @@ export interface GridState<T, C extends GridCollection<T> = GridCollection<T>> {
|
|
|
145
162
|
readonly disallowEmptySelection: boolean;
|
|
146
163
|
/** The currently selected keys. */
|
|
147
164
|
readonly selectedKeys: "all" | Set<Key>;
|
|
165
|
+
/** Whether no rows are selected. */
|
|
166
|
+
readonly isEmpty: boolean;
|
|
167
|
+
/** Whether every selectable row is selected. */
|
|
168
|
+
readonly isSelectAll: boolean;
|
|
148
169
|
/** Check if a key is selected. */
|
|
149
170
|
isSelected(key: Key): boolean;
|
|
150
171
|
/** Check if a key is disabled. */
|