@simplysm/solid 13.0.75 → 13.0.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -14
- package/dist/components/data/Pagination.d.ts +2 -2
- package/dist/components/data/Pagination.d.ts.map +1 -1
- package/dist/components/data/Pagination.js +7 -5
- package/dist/components/data/Pagination.js.map +2 -2
- package/dist/components/data/Table.d.ts +5 -1
- package/dist/components/data/Table.d.ts.map +1 -1
- package/dist/components/data/Table.js +64 -22
- package/dist/components/data/Table.js.map +2 -2
- package/dist/components/data/calendar/Calendar.d.ts.map +1 -1
- package/dist/components/data/calendar/Calendar.js +10 -26
- package/dist/components/data/calendar/Calendar.js.map +2 -2
- package/dist/components/data/kanban/{Kanban.css → Kanban.animate.css} +0 -2
- package/dist/components/data/kanban/Kanban.d.ts +50 -16
- package/dist/components/data/kanban/Kanban.d.ts.map +1 -1
- package/dist/components/data/kanban/Kanban.js +144 -119
- package/dist/components/data/kanban/Kanban.js.map +2 -2
- package/dist/components/data/list/List.d.ts +7 -28
- package/dist/components/data/list/List.d.ts.map +1 -1
- package/dist/components/data/list/List.js +5 -7
- package/dist/components/data/list/List.js.map +2 -2
- package/dist/components/data/list/ListItem.d.ts +7 -34
- package/dist/components/data/list/ListItem.d.ts.map +1 -1
- package/dist/components/data/list/ListItem.js +15 -20
- package/dist/components/data/list/ListItem.js.map +2 -2
- package/dist/components/data/list/ListItem.styles.d.ts +1 -1
- package/dist/components/data/list/ListItem.styles.d.ts.map +1 -1
- package/dist/components/data/list/ListItem.styles.js +8 -8
- package/dist/components/data/list/ListItem.styles.js.map +1 -1
- package/dist/components/data/sheet/DataSheet.d.ts +3 -7
- package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheet.js +557 -843
- package/dist/components/data/sheet/DataSheet.js.map +2 -2
- package/dist/components/data/sheet/DataSheet.styles.d.ts +2 -1
- package/dist/components/data/sheet/DataSheet.styles.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheet.styles.js +32 -10
- package/dist/components/data/sheet/DataSheet.styles.js.map +1 -1
- package/dist/components/data/sheet/{types.d.ts → DataSheet.types.d.ts} +14 -9
- package/dist/components/data/sheet/DataSheet.types.d.ts.map +1 -0
- package/dist/components/data/sheet/DataSheet.types.js +1 -0
- package/dist/components/data/sheet/{sheetUtils.d.ts → DataSheet.utils.d.ts} +4 -4
- package/dist/components/data/sheet/DataSheet.utils.d.ts.map +1 -0
- package/dist/components/data/sheet/{sheetUtils.js → DataSheet.utils.js} +8 -8
- package/dist/components/data/sheet/DataSheet.utils.js.map +6 -0
- package/dist/components/data/sheet/DataSheetColumn.d.ts +4 -3
- package/dist/components/data/sheet/DataSheetColumn.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheetColumn.js +4 -22
- package/dist/components/data/sheet/DataSheetColumn.js.map +2 -2
- package/dist/components/data/sheet/DataSheetConfigDialog.d.ts +2 -1
- package/dist/components/data/sheet/DataSheetConfigDialog.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheetConfigDialog.js +19 -18
- package/dist/components/data/sheet/DataSheetConfigDialog.js.map +2 -2
- package/dist/components/data/sheet/hooks/useDataSheetExpansion.d.ts +17 -0
- package/dist/components/data/sheet/hooks/useDataSheetExpansion.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetExpansion.js +61 -0
- package/dist/components/data/sheet/hooks/useDataSheetExpansion.js.map +6 -0
- package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.d.ts +29 -0
- package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.js +101 -0
- package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.js.map +6 -0
- package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.d.ts +27 -0
- package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.js +173 -0
- package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.js.map +6 -0
- package/dist/components/data/sheet/hooks/useDataSheetPaging.d.ts +17 -0
- package/dist/components/data/sheet/hooks/useDataSheetPaging.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetPaging.js +32 -0
- package/dist/components/data/sheet/hooks/useDataSheetPaging.js.map +6 -0
- package/dist/components/data/sheet/hooks/useDataSheetReorder.d.ts +20 -0
- package/dist/components/data/sheet/hooks/useDataSheetReorder.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetReorder.js +112 -0
- package/dist/components/data/sheet/hooks/useDataSheetReorder.js.map +6 -0
- package/dist/components/data/sheet/hooks/useDataSheetSelection.d.ts +22 -0
- package/dist/components/data/sheet/hooks/useDataSheetSelection.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetSelection.js +63 -0
- package/dist/components/data/sheet/hooks/useDataSheetSelection.js.map +6 -0
- package/dist/components/data/sheet/hooks/useDataSheetSorting.d.ts +17 -0
- package/dist/components/data/sheet/hooks/useDataSheetSorting.d.ts.map +1 -0
- package/dist/components/data/sheet/hooks/useDataSheetSorting.js +45 -0
- package/dist/components/data/sheet/hooks/useDataSheetSorting.js.map +6 -0
- package/dist/components/disclosure/Collapse.d.ts.map +1 -1
- package/dist/components/disclosure/Collapse.js +1 -3
- package/dist/components/disclosure/Collapse.js.map +2 -2
- package/dist/components/disclosure/Dialog.d.ts +79 -25
- package/dist/components/disclosure/Dialog.d.ts.map +1 -1
- package/dist/components/disclosure/Dialog.js +251 -113
- package/dist/components/disclosure/Dialog.js.map +2 -2
- package/dist/components/disclosure/Dropdown.d.ts +8 -35
- package/dist/components/disclosure/Dropdown.d.ts.map +1 -1
- package/dist/components/disclosure/Dropdown.js +60 -61
- package/dist/components/disclosure/Dropdown.js.map +2 -2
- package/dist/components/disclosure/Tabs.d.ts +4 -6
- package/dist/components/disclosure/Tabs.d.ts.map +1 -1
- package/dist/components/disclosure/Tabs.js +16 -17
- package/dist/components/disclosure/Tabs.js.map +2 -2
- package/dist/components/display/Alert.d.ts +1 -1
- package/dist/components/display/Alert.d.ts.map +1 -1
- package/dist/components/display/Alert.js +2 -4
- package/dist/components/display/Alert.js.map +2 -2
- package/dist/components/display/Barcode.d.ts +1 -1
- package/dist/components/display/Barcode.d.ts.map +1 -1
- package/dist/components/display/Barcode.js +3 -4
- package/dist/components/display/Barcode.js.map +2 -2
- package/dist/components/display/Barcode.types.d.ts +2 -0
- package/dist/components/display/Barcode.types.d.ts.map +1 -0
- package/dist/components/display/Barcode.types.js +1 -0
- package/dist/components/display/Card.animate.css +11 -0
- package/dist/components/display/Card.d.ts +1 -0
- package/dist/components/display/Card.d.ts.map +1 -1
- package/dist/components/display/Card.js +3 -2
- package/dist/components/display/Card.js.map +2 -2
- package/dist/components/display/Echarts.d.ts +2 -2
- package/dist/components/display/Echarts.d.ts.map +1 -1
- package/dist/components/display/Echarts.js +8 -11
- package/dist/components/display/Echarts.js.map +2 -2
- package/dist/components/display/Link.d.ts +1 -1
- package/dist/components/display/Link.d.ts.map +1 -1
- package/dist/components/display/Link.js +3 -4
- package/dist/components/display/Link.js.map +2 -2
- package/dist/components/display/Tag.d.ts +1 -1
- package/dist/components/display/Tag.d.ts.map +1 -1
- package/dist/components/display/Tag.js +2 -4
- package/dist/components/display/Tag.js.map +2 -2
- package/dist/components/features/address/AddressSearch.d.ts +3 -1
- package/dist/components/features/address/AddressSearch.d.ts.map +1 -1
- package/dist/components/features/address/AddressSearch.js +7 -5
- package/dist/components/features/address/AddressSearch.js.map +2 -2
- package/dist/components/features/crud-detail/CrudDetail.d.ts +12 -13
- package/dist/components/features/crud-detail/CrudDetail.d.ts.map +1 -1
- package/dist/components/features/crud-detail/CrudDetail.js +218 -206
- package/dist/components/features/crud-detail/CrudDetail.js.map +2 -2
- package/dist/components/features/crud-detail/{types.d.ts → CrudDetail.types.d.ts} +3 -13
- package/dist/components/features/crud-detail/CrudDetail.types.d.ts.map +1 -0
- package/dist/components/features/crud-detail/CrudDetail.types.js +1 -0
- package/dist/components/features/crud-detail/CrudDetailAfter.d.ts +5 -4
- package/dist/components/features/crud-detail/CrudDetailAfter.d.ts.map +1 -1
- package/dist/components/features/crud-detail/CrudDetailAfter.js +3 -10
- package/dist/components/features/crud-detail/CrudDetailAfter.js.map +2 -2
- package/dist/components/features/crud-detail/CrudDetailBefore.d.ts +5 -4
- package/dist/components/features/crud-detail/CrudDetailBefore.d.ts.map +1 -1
- package/dist/components/features/crud-detail/CrudDetailBefore.js +3 -10
- package/dist/components/features/crud-detail/CrudDetailBefore.js.map +2 -2
- package/dist/components/features/crud-detail/CrudDetailTools.d.ts +5 -4
- package/dist/components/features/crud-detail/CrudDetailTools.d.ts.map +1 -1
- package/dist/components/features/crud-detail/CrudDetailTools.js +3 -10
- package/dist/components/features/crud-detail/CrudDetailTools.js.map +2 -2
- package/dist/components/features/crud-sheet/CrudSheet.d.ts +6 -9
- package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheet.js +147 -141
- package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
- package/dist/components/features/crud-sheet/{types.d.ts → CrudSheet.types.d.ts} +14 -44
- package/dist/components/features/crud-sheet/CrudSheet.types.d.ts.map +1 -0
- package/dist/components/features/crud-sheet/CrudSheet.types.js +1 -0
- package/dist/components/features/crud-sheet/CrudSheetColumn.d.ts +4 -3
- package/dist/components/features/crud-sheet/CrudSheetColumn.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheetColumn.js +4 -23
- package/dist/components/features/crud-sheet/CrudSheetColumn.js.map +2 -2
- package/dist/components/features/crud-sheet/CrudSheetFilter.d.ts +7 -5
- package/dist/components/features/crud-sheet/CrudSheetFilter.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheetFilter.js +4 -8
- package/dist/components/features/crud-sheet/CrudSheetFilter.js.map +2 -2
- package/dist/components/features/crud-sheet/CrudSheetHeader.d.ts +5 -4
- package/dist/components/features/crud-sheet/CrudSheetHeader.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheetHeader.js +3 -10
- package/dist/components/features/crud-sheet/CrudSheetHeader.js.map +2 -2
- package/dist/components/features/crud-sheet/CrudSheetTools.d.ts +7 -5
- package/dist/components/features/crud-sheet/CrudSheetTools.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheetTools.js +4 -8
- package/dist/components/features/crud-sheet/CrudSheetTools.js.map +2 -2
- package/dist/components/features/data-select-button/DataSelectButton.d.ts +25 -28
- package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -1
- package/dist/components/features/data-select-button/DataSelectButton.js +27 -38
- package/dist/components/features/data-select-button/DataSelectButton.js.map +2 -2
- package/dist/components/features/permission-table/PermissionTable.d.ts.map +1 -1
- package/dist/components/features/permission-table/PermissionTable.js +9 -13
- package/dist/components/features/permission-table/PermissionTable.js.map +2 -2
- package/dist/components/features/shared-data/SharedDataSelect.d.ts +20 -19
- package/dist/components/features/shared-data/SharedDataSelect.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelect.js +62 -84
- package/dist/components/features/shared-data/SharedDataSelect.js.map +2 -2
- package/dist/components/features/shared-data/SharedDataSelectButton.d.ts +12 -9
- package/dist/components/features/shared-data/SharedDataSelectButton.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelectButton.js.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelectList.d.ts +12 -8
- package/dist/components/features/shared-data/SharedDataSelectList.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelectList.js +136 -116
- package/dist/components/features/shared-data/SharedDataSelectList.js.map +2 -2
- package/dist/components/feedback/Progress.d.ts +3 -2
- package/dist/components/feedback/Progress.d.ts.map +1 -1
- package/dist/components/feedback/Progress.js +9 -7
- package/dist/components/feedback/Progress.js.map +2 -2
- package/dist/components/feedback/busy/BusyContainer.d.ts +2 -2
- package/dist/components/feedback/busy/BusyContainer.d.ts.map +1 -1
- package/dist/components/feedback/busy/BusyContainer.js +35 -32
- package/dist/components/feedback/busy/BusyContainer.js.map +2 -2
- package/dist/components/feedback/busy/BusyProvider.d.ts +26 -2
- package/dist/components/feedback/busy/BusyProvider.d.ts.map +1 -1
- package/dist/components/feedback/busy/BusyProvider.js +13 -7
- package/dist/components/feedback/busy/BusyProvider.js.map +2 -2
- package/dist/components/feedback/notification/NotificationBanner.d.ts.map +1 -1
- package/dist/components/feedback/notification/NotificationBanner.js +13 -19
- package/dist/components/feedback/notification/NotificationBanner.js.map +2 -2
- package/dist/components/feedback/notification/NotificationBell.d.ts.map +1 -1
- package/dist/components/feedback/notification/NotificationBell.js +69 -71
- package/dist/components/feedback/notification/NotificationBell.js.map +2 -2
- package/dist/components/feedback/notification/NotificationProvider.d.ts +68 -1
- package/dist/components/feedback/notification/NotificationProvider.d.ts.map +1 -1
- package/dist/components/feedback/notification/NotificationProvider.js +22 -5
- package/dist/components/feedback/notification/NotificationProvider.js.map +2 -2
- package/dist/components/feedback/print/Print.d.ts +4 -6
- package/dist/components/feedback/print/Print.d.ts.map +1 -1
- package/dist/components/feedback/print/Print.js +3 -2
- package/dist/components/feedback/print/Print.js.map +2 -2
- package/dist/components/feedback/print/PrintProvider.d.ts +14 -1
- package/dist/components/feedback/print/PrintProvider.d.ts.map +1 -1
- package/dist/components/feedback/print/PrintProvider.js +16 -5
- package/dist/components/feedback/print/PrintProvider.js.map +2 -2
- package/dist/components/form-control/Button.d.ts +2 -1
- package/dist/components/form-control/Button.d.ts.map +1 -1
- package/dist/components/form-control/Button.js +9 -8
- package/dist/components/form-control/Button.js.map +2 -2
- package/dist/components/form-control/DropdownTrigger.styles.d.ts +1 -1
- package/dist/components/form-control/DropdownTrigger.styles.d.ts.map +1 -1
- package/dist/components/form-control/DropdownTrigger.styles.js +16 -16
- package/dist/components/form-control/DropdownTrigger.styles.js.map +1 -1
- package/dist/components/form-control/Invalid.d.ts +1 -1
- package/dist/components/form-control/Invalid.d.ts.map +1 -1
- package/dist/components/form-control/Invalid.js +27 -26
- package/dist/components/form-control/Invalid.js.map +2 -2
- package/dist/components/form-control/ThemeToggle.d.ts +2 -1
- package/dist/components/form-control/ThemeToggle.d.ts.map +1 -1
- package/dist/components/form-control/ThemeToggle.js +71 -74
- package/dist/components/form-control/ThemeToggle.js.map +2 -2
- package/dist/components/form-control/checkbox/Checkbox.d.ts +2 -2
- package/dist/components/form-control/checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/Checkbox.js +14 -95
- package/dist/components/form-control/checkbox/Checkbox.js.map +2 -2
- package/dist/components/form-control/checkbox/Checkbox.styles.d.ts +2 -2
- package/dist/components/form-control/checkbox/Checkbox.styles.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/Checkbox.styles.js +20 -25
- package/dist/components/form-control/checkbox/Checkbox.styles.js.map +1 -1
- package/dist/components/form-control/checkbox/CheckboxGroup.d.ts +10 -10
- package/dist/components/form-control/checkbox/CheckboxGroup.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/CheckboxGroup.js +84 -9
- package/dist/components/form-control/checkbox/CheckboxGroup.js.map +2 -2
- package/dist/components/form-control/checkbox/Radio.d.ts +2 -2
- package/dist/components/form-control/checkbox/Radio.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/Radio.js +12 -95
- package/dist/components/form-control/checkbox/Radio.js.map +2 -2
- package/dist/components/form-control/checkbox/RadioGroup.d.ts +10 -10
- package/dist/components/form-control/checkbox/RadioGroup.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/RadioGroup.js +81 -9
- package/dist/components/form-control/checkbox/RadioGroup.js.map +2 -2
- package/dist/components/form-control/checkbox/SelectableBase.d.ts +26 -0
- package/dist/components/form-control/checkbox/SelectableBase.d.ts.map +1 -0
- package/dist/components/form-control/checkbox/SelectableBase.js +100 -0
- package/dist/components/form-control/checkbox/SelectableBase.js.map +6 -0
- package/dist/components/form-control/checkbox/SelectionGroupBase.d.ts +17 -0
- package/dist/components/form-control/checkbox/SelectionGroupBase.d.ts.map +1 -0
- package/dist/components/form-control/checkbox/SelectionGroupBase.js +53 -0
- package/dist/components/form-control/checkbox/SelectionGroupBase.js.map +6 -0
- package/dist/components/form-control/color-picker/ColorPicker.d.ts +3 -3
- package/dist/components/form-control/color-picker/ColorPicker.d.ts.map +1 -1
- package/dist/components/form-control/color-picker/ColorPicker.js +6 -18
- package/dist/components/form-control/color-picker/ColorPicker.js.map +2 -2
- package/dist/components/form-control/combobox/Combobox.d.ts +28 -49
- package/dist/components/form-control/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/form-control/combobox/Combobox.js +116 -63
- package/dist/components/form-control/combobox/Combobox.js.map +2 -2
- package/dist/components/form-control/date-range-picker/DateRangePicker.d.ts.map +1 -1
- package/dist/components/form-control/date-range-picker/DateRangePicker.js +16 -9
- package/dist/components/form-control/date-range-picker/DateRangePicker.js.map +2 -2
- package/dist/components/form-control/editor/EditorToolbar.d.ts.map +1 -1
- package/dist/components/form-control/editor/EditorToolbar.js +250 -239
- package/dist/components/form-control/editor/EditorToolbar.js.map +2 -2
- package/dist/components/form-control/editor/RichTextEditor.d.ts +1 -1
- package/dist/components/form-control/editor/RichTextEditor.d.ts.map +1 -1
- package/dist/components/form-control/editor/RichTextEditor.js +10 -10
- package/dist/components/form-control/editor/RichTextEditor.js.map +2 -2
- package/{src/components/form-control/editor/editor.css → dist/components/form-control/editor/RichTextEditor.tiptap.css} +0 -1
- package/dist/components/form-control/field/DatePicker.d.ts +3 -3
- package/dist/components/form-control/field/DatePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/DatePicker.js +50 -131
- package/dist/components/form-control/field/DatePicker.js.map +2 -2
- package/dist/components/form-control/field/DateTimePicker.d.ts +3 -3
- package/dist/components/form-control/field/DateTimePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/DateTimePicker.js +50 -131
- package/dist/components/form-control/field/DateTimePicker.js.map +2 -2
- package/dist/components/form-control/field/Field.styles.d.ts +3 -3
- package/dist/components/form-control/field/Field.styles.d.ts.map +1 -1
- package/dist/components/form-control/field/Field.styles.js +46 -40
- package/dist/components/form-control/field/Field.styles.js.map +1 -1
- package/dist/components/form-control/field/FieldPlaceholder.js +4 -3
- package/dist/components/form-control/field/FieldPlaceholder.js.map +2 -2
- package/dist/components/form-control/field/FieldShell.d.ts +37 -0
- package/dist/components/form-control/field/FieldShell.d.ts.map +1 -0
- package/dist/components/form-control/field/FieldShell.js +124 -0
- package/dist/components/form-control/field/FieldShell.js.map +6 -0
- package/dist/components/form-control/field/NumberInput.d.ts +13 -32
- package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
- package/dist/components/form-control/field/NumberInput.js +92 -196
- package/dist/components/form-control/field/NumberInput.js.map +2 -2
- package/dist/components/form-control/field/TextInput.d.ts +14 -29
- package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
- package/dist/components/form-control/field/TextInput.js +87 -197
- package/dist/components/form-control/field/TextInput.js.map +2 -2
- package/dist/components/form-control/field/Textarea.d.ts +3 -3
- package/dist/components/form-control/field/Textarea.d.ts.map +1 -1
- package/dist/components/form-control/field/Textarea.js +81 -156
- package/dist/components/form-control/field/Textarea.js.map +2 -2
- package/dist/components/form-control/field/TimePicker.d.ts +3 -3
- package/dist/components/form-control/field/TimePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/TimePicker.js +46 -123
- package/dist/components/form-control/field/TimePicker.js.map +2 -2
- package/dist/components/form-control/numpad/Numpad.d.ts +1 -1
- package/dist/components/form-control/numpad/Numpad.d.ts.map +1 -1
- package/dist/components/form-control/numpad/Numpad.js +5 -5
- package/dist/components/form-control/numpad/Numpad.js.map +2 -2
- package/dist/components/form-control/select/Select.d.ts +48 -51
- package/dist/components/form-control/select/Select.d.ts.map +1 -1
- package/dist/components/form-control/select/Select.js +220 -117
- package/dist/components/form-control/select/Select.js.map +2 -2
- package/dist/components/form-control/state-preset/StatePreset.d.ts +2 -2
- package/dist/components/form-control/state-preset/StatePreset.d.ts.map +1 -1
- package/dist/components/form-control/state-preset/StatePreset.js +68 -57
- package/dist/components/form-control/state-preset/StatePreset.js.map +2 -2
- package/dist/components/layout/FormGroup.d.ts +3 -6
- package/dist/components/layout/FormGroup.d.ts.map +1 -1
- package/dist/components/layout/FormGroup.js +5 -7
- package/dist/components/layout/FormGroup.js.map +2 -2
- package/dist/components/layout/FormTable.d.ts +7 -1
- package/dist/components/layout/FormTable.d.ts.map +1 -1
- package/dist/components/layout/FormTable.js +52 -18
- package/dist/components/layout/FormTable.js.map +2 -2
- package/dist/components/layout/sidebar/Sidebar.d.ts +60 -29
- package/dist/components/layout/sidebar/Sidebar.d.ts.map +1 -1
- package/dist/components/layout/sidebar/Sidebar.js +341 -21
- package/dist/components/layout/sidebar/Sidebar.js.map +2 -2
- package/dist/components/layout/topbar/Topbar.d.ts +44 -33
- package/dist/components/layout/topbar/Topbar.d.ts.map +1 -1
- package/dist/components/layout/topbar/Topbar.js +426 -39
- package/dist/components/layout/topbar/Topbar.js.map +2 -2
- package/dist/helpers/createAppStructure.d.ts.map +1 -1
- package/dist/helpers/createAppStructure.js +4 -5
- package/dist/helpers/createAppStructure.js.map +1 -1
- package/dist/helpers/createSlot.d.ts +3 -0
- package/dist/helpers/createSlot.d.ts.map +1 -0
- package/dist/helpers/createSlot.js +40 -0
- package/dist/helpers/createSlot.js.map +6 -0
- package/dist/helpers/createSlots.d.ts +7 -0
- package/dist/helpers/createSlots.d.ts.map +1 -0
- package/dist/helpers/createSlots.js +34 -0
- package/dist/helpers/createSlots.js.map +6 -0
- package/dist/hooks/createControllableSignal.d.ts +4 -12
- package/dist/hooks/createControllableSignal.d.ts.map +1 -1
- package/dist/hooks/createControllableSignal.js +4 -3
- package/dist/hooks/createControllableSignal.js.map +1 -1
- package/dist/hooks/createControllableStore.d.ts.map +1 -1
- package/dist/hooks/createControllableStore.js +5 -6
- package/dist/hooks/createControllableStore.js.map +1 -1
- package/dist/hooks/useLogger.d.ts +1 -1
- package/dist/hooks/useLogger.d.ts.map +1 -1
- package/dist/hooks/useLogger.js +1 -1
- package/dist/hooks/useSyncConfig.js +1 -1
- package/dist/index.d.ts +17 -23
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -23
- package/dist/index.js.map +1 -1
- package/dist/providers/ConfigContext.d.ts.map +1 -1
- package/dist/providers/ConfigContext.js +10 -13
- package/dist/providers/ConfigContext.js.map +1 -1
- package/dist/providers/{LoggerContext.d.ts → LoggerProvider.d.ts} +1 -1
- package/dist/providers/LoggerProvider.d.ts.map +1 -0
- package/dist/providers/{LoggerContext.js → LoggerProvider.js} +1 -1
- package/dist/providers/{LoggerContext.js.map → LoggerProvider.js.map} +1 -1
- package/dist/providers/PwaUpdateProvider.js +1 -1
- package/dist/providers/ServiceClientProvider.d.ts +22 -0
- package/dist/providers/ServiceClientProvider.d.ts.map +1 -1
- package/dist/providers/ServiceClientProvider.js +39 -48
- package/dist/providers/ServiceClientProvider.js.map +2 -2
- package/dist/providers/{SyncStorageContext.d.ts → SyncStorageProvider.d.ts} +1 -1
- package/dist/providers/SyncStorageProvider.d.ts.map +1 -0
- package/dist/providers/{SyncStorageContext.js → SyncStorageProvider.js} +1 -1
- package/dist/providers/{SyncStorageContext.js.map → SyncStorageProvider.js.map} +1 -1
- package/dist/providers/SystemProvider.d.ts +1 -1
- package/dist/providers/SystemProvider.d.ts.map +1 -1
- package/dist/providers/SystemProvider.js +3 -3
- package/dist/providers/SystemProvider.js.map +1 -1
- package/dist/providers/i18n/{I18nContext.d.ts → I18nProvider.d.ts} +2 -2
- package/dist/providers/i18n/I18nProvider.d.ts.map +1 -0
- package/dist/providers/i18n/{I18nContext.js → I18nProvider.js} +1 -1
- package/dist/providers/i18n/{I18nContext.js.map → I18nProvider.js.map} +1 -1
- package/dist/providers/i18n/{I18nContext.types.d.ts → I18nProvider.types.d.ts} +1 -1
- package/dist/providers/i18n/I18nProvider.types.d.ts.map +1 -0
- package/dist/providers/i18n/I18nProvider.types.js +1 -0
- package/dist/providers/i18n/I18nProvider.types.js.map +6 -0
- package/dist/providers/shared-data/SharedDataProvider.d.ts +75 -2
- package/dist/providers/shared-data/SharedDataProvider.d.ts.map +1 -1
- package/dist/providers/shared-data/SharedDataProvider.js +111 -91
- package/dist/providers/shared-data/SharedDataProvider.js.map +2 -2
- package/dist/styles/base.styles.d.ts +15 -0
- package/dist/styles/base.styles.d.ts.map +1 -0
- package/dist/styles/base.styles.js +21 -0
- package/dist/styles/base.styles.js.map +6 -0
- package/dist/styles/control.styles.d.ts +19 -0
- package/dist/styles/control.styles.d.ts.map +1 -0
- package/dist/styles/control.styles.js +24 -0
- package/dist/styles/control.styles.js.map +6 -0
- package/dist/styles/theme.styles.d.ts +52 -0
- package/dist/styles/theme.styles.d.ts.map +1 -0
- package/dist/styles/theme.styles.js +55 -0
- package/dist/styles/theme.styles.js.map +6 -0
- package/package.json +5 -5
- package/src/components/data/Pagination.tsx +9 -9
- package/src/components/data/Table.tsx +63 -30
- package/src/components/data/calendar/Calendar.tsx +38 -36
- package/src/components/data/kanban/{Kanban.css → Kanban.animate.css} +0 -2
- package/src/components/data/kanban/Kanban.tsx +133 -94
- package/src/components/data/list/List.tsx +8 -22
- package/src/components/data/list/ListItem.styles.ts +8 -8
- package/src/components/data/list/ListItem.tsx +20 -31
- package/src/components/data/sheet/DataSheet.styles.ts +32 -9
- package/src/components/data/sheet/DataSheet.tsx +356 -747
- package/src/components/data/sheet/{types.ts → DataSheet.types.ts} +13 -8
- package/src/components/data/sheet/{sheetUtils.ts → DataSheet.utils.ts} +8 -8
- package/src/components/data/sheet/DataSheetColumn.tsx +7 -29
- package/src/components/data/sheet/DataSheetConfigDialog.tsx +15 -21
- package/src/components/data/sheet/hooks/useDataSheetExpansion.ts +85 -0
- package/src/components/data/sheet/hooks/useDataSheetFixedColumns.ts +131 -0
- package/src/components/data/sheet/hooks/useDataSheetHeaderCell.tsx +168 -0
- package/src/components/data/sheet/hooks/useDataSheetPaging.ts +51 -0
- package/src/components/data/sheet/hooks/useDataSheetReorder.ts +154 -0
- package/src/components/data/sheet/hooks/useDataSheetSelection.ts +99 -0
- package/src/components/data/sheet/hooks/useDataSheetSorting.ts +68 -0
- package/src/components/disclosure/Collapse.tsx +1 -9
- package/src/components/disclosure/Dialog.tsx +254 -59
- package/src/components/disclosure/Dropdown.tsx +66 -80
- package/src/components/disclosure/Tabs.tsx +23 -37
- package/src/components/display/Alert.tsx +2 -5
- package/src/components/display/Barcode.tsx +5 -117
- package/src/components/display/Barcode.types.ts +111 -0
- package/src/components/display/Card.animate.css +11 -0
- package/src/components/display/Card.tsx +10 -11
- package/src/components/display/Echarts.tsx +11 -15
- package/src/components/display/Link.tsx +3 -5
- package/src/components/display/Tag.tsx +2 -5
- package/src/components/features/address/AddressSearch.tsx +24 -7
- package/src/components/features/crud-detail/CrudDetail.tsx +135 -165
- package/src/components/features/crud-detail/{types.ts → CrudDetail.types.ts} +3 -16
- package/src/components/features/crud-detail/CrudDetailAfter.tsx +3 -16
- package/src/components/features/crud-detail/CrudDetailBefore.tsx +3 -16
- package/src/components/features/crud-detail/CrudDetailTools.tsx +3 -16
- package/src/components/features/crud-sheet/CrudSheet.tsx +158 -176
- package/src/components/features/crud-sheet/{types.ts → CrudSheet.types.ts} +13 -47
- package/src/components/features/crud-sheet/CrudSheetColumn.tsx +7 -30
- package/src/components/features/crud-sheet/CrudSheetFilter.tsx +12 -16
- package/src/components/features/crud-sheet/CrudSheetHeader.tsx +3 -16
- package/src/components/features/crud-sheet/CrudSheetTools.tsx +12 -16
- package/src/components/features/data-select-button/DataSelectButton.tsx +57 -66
- package/src/components/features/permission-table/PermissionTable.tsx +9 -13
- package/src/components/features/shared-data/SharedDataSelect.tsx +97 -127
- package/src/components/features/shared-data/SharedDataSelectButton.tsx +22 -14
- package/src/components/features/shared-data/SharedDataSelectList.tsx +61 -42
- package/src/components/feedback/Progress.tsx +16 -21
- package/src/components/feedback/busy/BusyContainer.tsx +18 -45
- package/src/components/feedback/busy/BusyProvider.tsx +40 -7
- package/src/components/feedback/notification/NotificationBanner.tsx +13 -32
- package/src/components/feedback/notification/NotificationBell.tsx +18 -47
- package/src/components/feedback/notification/NotificationProvider.tsx +105 -11
- package/src/components/feedback/print/Print.tsx +4 -8
- package/src/components/feedback/print/PrintProvider.tsx +37 -5
- package/src/components/form-control/Button.tsx +11 -29
- package/src/components/form-control/DropdownTrigger.styles.ts +16 -17
- package/src/components/form-control/Invalid.tsx +33 -29
- package/src/components/form-control/ThemeToggle.tsx +18 -15
- package/src/components/form-control/checkbox/Checkbox.styles.ts +20 -26
- package/src/components/form-control/checkbox/Checkbox.tsx +15 -101
- package/src/components/form-control/checkbox/CheckboxGroup.tsx +83 -17
- package/src/components/form-control/checkbox/Radio.tsx +15 -104
- package/src/components/form-control/checkbox/RadioGroup.tsx +80 -17
- package/src/components/form-control/checkbox/SelectableBase.tsx +123 -0
- package/src/components/form-control/checkbox/SelectionGroupBase.tsx +57 -0
- package/src/components/form-control/color-picker/ColorPicker.tsx +12 -32
- package/src/components/form-control/combobox/Combobox.tsx +143 -44
- package/src/components/form-control/date-range-picker/DateRangePicker.tsx +10 -10
- package/src/components/form-control/editor/EditorToolbar.tsx +120 -217
- package/{dist/components/form-control/editor/editor.css → src/components/form-control/editor/RichTextEditor.tiptap.css} +0 -1
- package/src/components/form-control/editor/RichTextEditor.tsx +14 -29
- package/src/components/form-control/field/DatePicker.tsx +34 -76
- package/src/components/form-control/field/DateTimePicker.tsx +35 -83
- package/src/components/form-control/field/Field.styles.ts +48 -42
- package/src/components/form-control/field/FieldPlaceholder.tsx +2 -2
- package/src/components/form-control/field/FieldShell.tsx +113 -0
- package/src/components/form-control/field/NumberInput.tsx +75 -137
- package/src/components/form-control/field/TextInput.tsx +58 -120
- package/src/components/form-control/field/Textarea.tsx +67 -111
- package/src/components/form-control/field/TimePicker.tsx +33 -74
- package/src/components/form-control/numpad/Numpad.tsx +5 -6
- package/src/components/form-control/select/Select.tsx +266 -151
- package/src/components/form-control/state-preset/StatePreset.tsx +65 -88
- package/src/components/layout/FormGroup.tsx +10 -13
- package/src/components/layout/FormTable.tsx +40 -19
- package/src/components/layout/sidebar/Sidebar.tsx +456 -44
- package/src/components/layout/topbar/Topbar.tsx +420 -49
- package/src/helpers/createAppStructure.ts +22 -7
- package/src/helpers/createSlot.ts +45 -0
- package/src/helpers/createSlots.ts +44 -0
- package/src/hooks/createControllableSignal.ts +10 -18
- package/src/hooks/createControllableStore.ts +5 -6
- package/src/hooks/useLogger.ts +1 -1
- package/src/hooks/useSyncConfig.ts +1 -1
- package/src/index.ts +18 -23
- package/src/providers/ConfigContext.tsx +0 -1
- package/src/providers/PwaUpdateProvider.tsx +1 -1
- package/src/providers/ServiceClientProvider.tsx +62 -56
- package/src/providers/SystemProvider.tsx +4 -5
- package/src/providers/i18n/{I18nContext.tsx → I18nProvider.tsx} +1 -1
- package/src/providers/shared-data/SharedDataProvider.tsx +228 -124
- package/src/styles/base.styles.ts +21 -0
- package/src/styles/control.styles.ts +25 -0
- package/src/styles/theme.styles.ts +54 -0
- package/tailwind.config.ts +0 -11
- package/tests/components/data/List.spec.tsx +1 -262
- package/tests/components/data/Pagination.spec.tsx +0 -75
- package/tests/components/data/kanban/Kanban.selection.spec.tsx +1 -17
- package/tests/components/data/sheet/DataSheet.spec.tsx +38 -67
- package/tests/components/data/sheet/hooks/useDataSheetExpansion.spec.ts +254 -0
- package/tests/components/data/sheet/hooks/useDataSheetFixedColumns.spec.ts +488 -0
- package/tests/components/data/sheet/hooks/useDataSheetPaging.spec.ts +359 -0
- package/tests/components/data/sheet/hooks/useDataSheetReorder.spec.ts +251 -0
- package/tests/components/data/sheet/hooks/useDataSheetSelection.spec.ts +362 -0
- package/tests/components/data/sheet/hooks/useDataSheetSorting.spec.ts +279 -0
- package/tests/components/disclosure/Collapse.spec.tsx +0 -24
- package/tests/components/disclosure/Dialog.spec.tsx +11 -61
- package/tests/components/disclosure/DialogProvider.spec.tsx +9 -12
- package/tests/components/disclosure/Tabs.spec.tsx +0 -99
- package/tests/components/display/Barcode.spec.tsx +15 -15
- package/tests/components/features/address/AddressSearch.spec.tsx +3 -4
- package/tests/components/features/crud-detail/CrudDetail.spec.tsx +12 -74
- package/tests/components/features/crud-sheet/CrudSheet.spec.tsx +19 -72
- package/tests/components/features/data-select-button/DataSelectButton.spec.tsx +51 -29
- package/tests/components/features/permission-table/PermissionTable.spec.tsx +5 -30
- package/tests/components/features/shared-data/SharedDataSelect.spec.tsx +15 -19
- package/tests/components/features/shared-data/SharedDataSelectList.spec.tsx +17 -44
- package/tests/components/feedback/busy/BusyContainer.spec.tsx +15 -9
- package/tests/components/feedback/notification/LiveRegion.spec.tsx +2 -27
- package/tests/components/feedback/notification/NotificationBanner.spec.tsx +2 -27
- package/tests/components/feedback/notification/NotificationBell.spec.tsx +2 -16
- package/tests/components/feedback/notification/NotificationContext.spec.tsx +2 -16
- package/tests/components/form-control/Button.spec.tsx +0 -97
- package/tests/components/form-control/Invalid.spec.tsx +5 -20
- package/tests/components/form-control/checkbox/Checkbox.spec.tsx +1 -47
- package/tests/components/form-control/checkbox/CheckboxGroup.spec.tsx +1 -26
- package/tests/components/form-control/checkbox/Radio.spec.tsx +1 -46
- package/tests/components/form-control/checkbox/RadioGroup.spec.tsx +1 -26
- package/tests/components/form-control/color-picker/ColorPicker.spec.tsx +1 -31
- package/tests/components/form-control/combobox/Combobox.spec.tsx +28 -49
- package/tests/components/form-control/combobox/ComboboxItem.spec.tsx +7 -27
- package/tests/components/form-control/date-range-picker/DateRangePicker.spec.tsx +1 -58
- package/tests/components/form-control/field/DatePicker.spec.tsx +5 -93
- package/tests/components/form-control/field/DateTimePicker.spec.tsx +5 -86
- package/tests/components/form-control/field/FieldShell.spec.tsx +127 -0
- package/tests/components/form-control/field/NumberInput.spec.tsx +14 -133
- package/tests/components/form-control/field/TextInput.spec.tsx +6 -148
- package/tests/components/form-control/field/Textarea.spec.tsx +5 -69
- package/tests/components/form-control/field/TimePicker.spec.tsx +5 -84
- package/tests/components/form-control/numpad/Numpad.spec.tsx +1 -78
- package/tests/components/form-control/select/Select.spec.tsx +9 -59
- package/tests/components/form-control/select/SelectItem.spec.tsx +10 -62
- package/tests/components/layout/sidebar/Sidebar.spec.tsx +3 -122
- package/tests/components/layout/sidebar/SidebarContainer.spec.tsx +3 -45
- package/tests/components/layout/sidebar/SidebarMenu.spec.tsx +1 -74
- package/tests/components/layout/sidebar/SidebarUser.spec.tsx +0 -48
- package/tests/components/layout/topbar/TopbarActions.spec.tsx +5 -5
- package/tests/components/layout/topbar/{createTopbarActions.spec.tsx → useTopbarActions.spec.tsx} +4 -13
- package/tests/helpers/createAppStructure.spec.tsx +0 -26
- package/tests/helpers/createSlot.spec.tsx +99 -0
- package/tests/helpers/createSlots.spec.tsx +100 -0
- package/tests/hooks/createControllableSignal.spec.ts +0 -50
- package/tests/hooks/createControllableStore.spec.ts +67 -0
- package/tests/hooks/createMountTransition.spec.ts +0 -9
- package/tests/hooks/useLocalStorage.spec.tsx +0 -34
- package/tests/hooks/useLogger.spec.tsx +1 -18
- package/tests/hooks/usePrint.spec.tsx +1 -24
- package/tests/hooks/useSyncConfig.spec.tsx +1 -18
- package/tests/providers/ErrorLoggerProvider.spec.tsx +1 -11
- package/tests/providers/ServiceClientContext.spec.tsx +2 -20
- package/tests/providers/i18n/I18nContext.spec.tsx +1 -5
- package/tests/providers/shared-data/SharedDataProvider.spec.tsx +143 -21
- package/dist/components/data/kanban/KanbanContext.d.ts +0 -43
- package/dist/components/data/kanban/KanbanContext.d.ts.map +0 -1
- package/dist/components/data/kanban/KanbanContext.js +0 -24
- package/dist/components/data/kanban/KanbanContext.js.map +0 -6
- package/dist/components/data/sheet/DataSheet.css +0 -44
- package/dist/components/data/sheet/sheetUtils.d.ts.map +0 -1
- package/dist/components/data/sheet/sheetUtils.js.map +0 -6
- package/dist/components/data/sheet/types.d.ts.map +0 -1
- package/dist/components/data/sheet/types.js +0 -1
- package/dist/components/disclosure/DialogContext.d.ts +0 -57
- package/dist/components/disclosure/DialogContext.d.ts.map +0 -1
- package/dist/components/disclosure/DialogContext.js +0 -14
- package/dist/components/disclosure/DialogContext.js.map +0 -6
- package/dist/components/disclosure/DialogInstanceContext.d.ts +0 -20
- package/dist/components/disclosure/DialogInstanceContext.d.ts.map +0 -1
- package/dist/components/disclosure/DialogInstanceContext.js +0 -10
- package/dist/components/disclosure/DialogInstanceContext.js.map +0 -6
- package/dist/components/disclosure/DialogProvider.d.ts +0 -19
- package/dist/components/disclosure/DialogProvider.d.ts.map +0 -1
- package/dist/components/disclosure/DialogProvider.js +0 -145
- package/dist/components/disclosure/DialogProvider.js.map +0 -6
- package/dist/components/features/crud-detail/types.d.ts.map +0 -1
- package/dist/components/features/crud-detail/types.js +0 -1
- package/dist/components/features/crud-sheet/types.d.ts.map +0 -1
- package/dist/components/features/crud-sheet/types.js +0 -1
- package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts +0 -15
- package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts.map +0 -1
- package/dist/components/features/shared-data/SharedDataSelectListContext.js +0 -27
- package/dist/components/features/shared-data/SharedDataSelectListContext.js.map +0 -6
- package/dist/components/feedback/busy/BusyContext.d.ts +0 -29
- package/dist/components/feedback/busy/BusyContext.d.ts.map +0 -1
- package/dist/components/feedback/busy/BusyContext.js +0 -14
- package/dist/components/feedback/busy/BusyContext.js.map +0 -6
- package/dist/components/feedback/notification/NotificationContext.d.ts +0 -69
- package/dist/components/feedback/notification/NotificationContext.d.ts.map +0 -1
- package/dist/components/feedback/notification/NotificationContext.js +0 -14
- package/dist/components/feedback/notification/NotificationContext.js.map +0 -6
- package/dist/components/feedback/notification/index.d.ts +0 -5
- package/dist/components/feedback/notification/index.d.ts.map +0 -1
- package/dist/components/feedback/notification/index.js +0 -5
- package/dist/components/feedback/notification/index.js.map +0 -6
- package/dist/components/feedback/print/PrintContext.d.ts +0 -12
- package/dist/components/feedback/print/PrintContext.d.ts.map +0 -1
- package/dist/components/feedback/print/PrintContext.js +0 -12
- package/dist/components/feedback/print/PrintContext.js.map +0 -6
- package/dist/components/feedback/print/PrintInstanceContext.d.ts +0 -6
- package/dist/components/feedback/print/PrintInstanceContext.d.ts.map +0 -1
- package/dist/components/feedback/print/PrintInstanceContext.js +0 -10
- package/dist/components/feedback/print/PrintInstanceContext.js.map +0 -6
- package/dist/components/form-control/combobox/ComboboxContext.d.ts +0 -14
- package/dist/components/form-control/combobox/ComboboxContext.d.ts.map +0 -1
- package/dist/components/form-control/combobox/ComboboxContext.js +0 -14
- package/dist/components/form-control/combobox/ComboboxContext.js.map +0 -6
- package/dist/components/form-control/combobox/ComboboxItem.d.ts +0 -12
- package/dist/components/form-control/combobox/ComboboxItem.d.ts.map +0 -1
- package/dist/components/form-control/combobox/ComboboxItem.js +0 -56
- package/dist/components/form-control/combobox/ComboboxItem.js.map +0 -6
- package/dist/components/form-control/select/SelectContext.d.ts +0 -21
- package/dist/components/form-control/select/SelectContext.d.ts.map +0 -1
- package/dist/components/form-control/select/SelectContext.js +0 -14
- package/dist/components/form-control/select/SelectContext.js.map +0 -6
- package/dist/components/form-control/select/SelectItem.d.ts +0 -30
- package/dist/components/form-control/select/SelectItem.d.ts.map +0 -1
- package/dist/components/form-control/select/SelectItem.js +0 -112
- package/dist/components/form-control/select/SelectItem.js.map +0 -6
- package/dist/components/layout/sidebar/SidebarContainer.d.ts +0 -34
- package/dist/components/layout/sidebar/SidebarContainer.d.ts.map +0 -1
- package/dist/components/layout/sidebar/SidebarContainer.js +0 -88
- package/dist/components/layout/sidebar/SidebarContainer.js.map +0 -6
- package/dist/components/layout/sidebar/SidebarContext.d.ts +0 -28
- package/dist/components/layout/sidebar/SidebarContext.d.ts.map +0 -1
- package/dist/components/layout/sidebar/SidebarContext.js +0 -20
- package/dist/components/layout/sidebar/SidebarContext.js.map +0 -6
- package/dist/components/layout/sidebar/SidebarMenu.d.ts +0 -35
- package/dist/components/layout/sidebar/SidebarMenu.d.ts.map +0 -1
- package/dist/components/layout/sidebar/SidebarMenu.js +0 -153
- package/dist/components/layout/sidebar/SidebarMenu.js.map +0 -6
- package/dist/components/layout/sidebar/SidebarUser.d.ts +0 -48
- package/dist/components/layout/sidebar/SidebarUser.d.ts.map +0 -1
- package/dist/components/layout/sidebar/SidebarUser.js +0 -128
- package/dist/components/layout/sidebar/SidebarUser.js.map +0 -6
- package/dist/components/layout/topbar/TopbarActions.d.ts +0 -3
- package/dist/components/layout/topbar/TopbarActions.d.ts.map +0 -1
- package/dist/components/layout/topbar/TopbarActions.js +0 -17
- package/dist/components/layout/topbar/TopbarActions.js.map +0 -6
- package/dist/components/layout/topbar/TopbarContainer.d.ts +0 -25
- package/dist/components/layout/topbar/TopbarContainer.d.ts.map +0 -1
- package/dist/components/layout/topbar/TopbarContainer.js +0 -37
- package/dist/components/layout/topbar/TopbarContainer.js.map +0 -6
- package/dist/components/layout/topbar/TopbarContext.d.ts +0 -9
- package/dist/components/layout/topbar/TopbarContext.d.ts.map +0 -1
- package/dist/components/layout/topbar/TopbarContext.js +0 -29
- package/dist/components/layout/topbar/TopbarContext.js.map +0 -6
- package/dist/components/layout/topbar/TopbarMenu.d.ts +0 -41
- package/dist/components/layout/topbar/TopbarMenu.d.ts.map +0 -1
- package/dist/components/layout/topbar/TopbarMenu.js +0 -288
- package/dist/components/layout/topbar/TopbarMenu.js.map +0 -6
- package/dist/components/layout/topbar/TopbarUser.d.ts +0 -35
- package/dist/components/layout/topbar/TopbarUser.d.ts.map +0 -1
- package/dist/components/layout/topbar/TopbarUser.js +0 -110
- package/dist/components/layout/topbar/TopbarUser.js.map +0 -6
- package/dist/helpers/createHmrSafeContext.d.ts +0 -3
- package/dist/helpers/createHmrSafeContext.d.ts.map +0 -1
- package/dist/helpers/createHmrSafeContext.js +0 -10
- package/dist/helpers/createHmrSafeContext.js.map +0 -6
- package/dist/helpers/createSlotComponent.d.ts +0 -12
- package/dist/helpers/createSlotComponent.d.ts.map +0 -1
- package/dist/helpers/createSlotComponent.js +0 -13
- package/dist/helpers/createSlotComponent.js.map +0 -6
- package/dist/hooks/createSelectionGroup.d.ts +0 -70
- package/dist/hooks/createSelectionGroup.d.ts.map +0 -1
- package/dist/hooks/createSelectionGroup.js +0 -145
- package/dist/hooks/createSelectionGroup.js.map +0 -6
- package/dist/hooks/createSlotSignal.d.ts +0 -9
- package/dist/hooks/createSlotSignal.d.ts.map +0 -1
- package/dist/hooks/createSlotSignal.js +0 -10
- package/dist/hooks/createSlotSignal.js.map +0 -6
- package/dist/providers/LoggerContext.d.ts.map +0 -1
- package/dist/providers/ServiceClientContext.d.ts +0 -23
- package/dist/providers/ServiceClientContext.d.ts.map +0 -1
- package/dist/providers/ServiceClientContext.js +0 -14
- package/dist/providers/ServiceClientContext.js.map +0 -6
- package/dist/providers/SyncStorageContext.d.ts.map +0 -1
- package/dist/providers/i18n/I18nContext.d.ts.map +0 -1
- package/dist/providers/i18n/I18nContext.types.d.ts.map +0 -1
- package/dist/providers/i18n/I18nContext.types.js +0 -1
- package/dist/providers/shared-data/SharedDataContext.d.ts +0 -77
- package/dist/providers/shared-data/SharedDataContext.d.ts.map +0 -1
- package/dist/providers/shared-data/SharedDataContext.js +0 -14
- package/dist/providers/shared-data/SharedDataContext.js.map +0 -6
- package/dist/styles/patterns.styles.d.ts +0 -7
- package/dist/styles/patterns.styles.d.ts.map +0 -1
- package/dist/styles/patterns.styles.js +0 -47
- package/dist/styles/patterns.styles.js.map +0 -6
- package/dist/styles/tokens.styles.d.ts +0 -23
- package/dist/styles/tokens.styles.d.ts.map +0 -1
- package/dist/styles/tokens.styles.js +0 -76
- package/dist/styles/tokens.styles.js.map +0 -6
- package/src/components/data/kanban/KanbanContext.ts +0 -76
- package/src/components/data/sheet/DataSheet.css +0 -44
- package/src/components/disclosure/DialogContext.ts +0 -69
- package/src/components/disclosure/DialogInstanceContext.ts +0 -25
- package/src/components/disclosure/DialogProvider.tsx +0 -147
- package/src/components/features/shared-data/SharedDataSelectListContext.ts +0 -39
- package/src/components/feedback/busy/BusyContext.ts +0 -38
- package/src/components/feedback/notification/NotificationContext.ts +0 -95
- package/src/components/feedback/notification/index.ts +0 -4
- package/src/components/feedback/print/PrintContext.ts +0 -20
- package/src/components/feedback/print/PrintInstanceContext.ts +0 -11
- package/src/components/form-control/combobox/ComboboxContext.ts +0 -25
- package/src/components/form-control/combobox/ComboboxItem.tsx +0 -69
- package/src/components/form-control/select/SelectContext.ts +0 -35
- package/src/components/form-control/select/SelectItem.tsx +0 -128
- package/src/components/layout/sidebar/SidebarContainer.tsx +0 -123
- package/src/components/layout/sidebar/SidebarContext.ts +0 -40
- package/src/components/layout/sidebar/SidebarMenu.tsx +0 -182
- package/src/components/layout/sidebar/SidebarUser.tsx +0 -142
- package/src/components/layout/topbar/TopbarActions.tsx +0 -8
- package/src/components/layout/topbar/TopbarContainer.tsx +0 -44
- package/src/components/layout/topbar/TopbarContext.ts +0 -36
- package/src/components/layout/topbar/TopbarMenu.tsx +0 -227
- package/src/components/layout/topbar/TopbarUser.tsx +0 -97
- package/src/helpers/createHmrSafeContext.ts +0 -8
- package/src/helpers/createSlotComponent.ts +0 -23
- package/src/hooks/createSelectionGroup.tsx +0 -241
- package/src/hooks/createSlotSignal.ts +0 -14
- package/src/providers/ServiceClientContext.ts +0 -32
- package/src/providers/shared-data/SharedDataContext.ts +0 -91
- package/src/styles/patterns.styles.ts +0 -50
- package/src/styles/tokens.styles.ts +0 -86
- package/tests/components/data/Table.spec.tsx +0 -55
- package/tests/components/display/Alert.spec.tsx +0 -47
- package/tests/components/display/Card.spec.tsx +0 -41
- package/tests/components/display/Link.spec.tsx +0 -62
- package/tests/components/display/Tag.spec.tsx +0 -47
- package/tests/components/feedback/print/Print.spec.tsx +0 -45
- package/tests/components/layout/FormGroup.spec.tsx +0 -104
- package/tests/components/layout/FormTable.spec.tsx +0 -43
- package/tests/components/layout/topbar/TopbarContainer.spec.tsx +0 -38
- package/tests/providers/ClipboardProvider.spec.tsx +0 -20
- package/tests/providers/ConfigContext.spec.tsx +0 -42
- package/tests/providers/LoggerContext.spec.tsx +0 -76
- package/tests/providers/PwaUpdateProvider.spec.tsx +0 -32
- package/tests/providers/SyncStorageContext.spec.tsx +0 -77
- /package/dist/components/data/sheet/{types.js.map → DataSheet.types.js.map} +0 -0
- /package/dist/components/{features/crud-detail/types.js.map → display/Barcode.types.js.map} +0 -0
- /package/dist/components/features/{crud-sheet/types.js.map → crud-detail/CrudDetail.types.js.map} +0 -0
- /package/dist/{providers/i18n/I18nContext.types.js.map → components/features/crud-sheet/CrudSheet.types.js.map} +0 -0
- /package/dist/components/feedback/busy/{BusyContainer.css → BusyContainer.animate.css} +0 -0
- /package/src/components/feedback/busy/{BusyContainer.css → BusyContainer.animate.css} +0 -0
- /package/src/providers/{LoggerContext.tsx → LoggerProvider.tsx} +0 -0
- /package/src/providers/{SyncStorageContext.tsx → SyncStorageProvider.tsx} +0 -0
- /package/src/providers/i18n/{I18nContext.types.ts → I18nProvider.types.ts} +0 -0
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
|
-
children,
|
|
3
2
|
createEffect,
|
|
4
|
-
createMemo,
|
|
5
3
|
createSignal,
|
|
6
4
|
createUniqueId,
|
|
7
5
|
For,
|
|
8
|
-
type JSX,
|
|
9
6
|
onCleanup,
|
|
10
7
|
Show,
|
|
11
8
|
splitProps,
|
|
@@ -14,24 +11,27 @@ import {
|
|
|
14
11
|
import { createStore, produce, reconcile } from "solid-js/store";
|
|
15
12
|
import { createControllableStore } from "../../../hooks/createControllableStore";
|
|
16
13
|
import type { DateTime } from "@simplysm/core-common";
|
|
17
|
-
import {
|
|
14
|
+
import { obj } from "@simplysm/core-common";
|
|
18
15
|
import "@simplysm/core-common"; // register extensions
|
|
19
|
-
import
|
|
16
|
+
import { openFileDialog } from "@simplysm/core-browser";
|
|
17
|
+
import type { SortingDef } from "../../data/sheet/DataSheet.types";
|
|
20
18
|
import { DataSheet } from "../../data/sheet/DataSheet";
|
|
21
19
|
import { DataSheetColumn } from "../../data/sheet/DataSheetColumn";
|
|
20
|
+
import { normalizeHeader } from "../../data/sheet/DataSheet.utils";
|
|
22
21
|
import { BusyContainer } from "../../feedback/busy/BusyContainer";
|
|
23
|
-
import { useNotification } from "../../feedback/notification/
|
|
24
|
-
import { useI18n } from "../../../providers/i18n/
|
|
22
|
+
import { useNotification } from "../../feedback/notification/NotificationProvider";
|
|
23
|
+
import { useI18n } from "../../../providers/i18n/I18nProvider";
|
|
25
24
|
import { Button } from "../../form-control/Button";
|
|
26
25
|
import { Icon } from "../../display/Icon";
|
|
27
26
|
import { FormGroup } from "../../layout/FormGroup";
|
|
28
|
-
import {
|
|
29
|
-
import { useDialogInstance } from "../../disclosure/DialogInstanceContext";
|
|
27
|
+
import { useTopbarActions, TopbarContext } from "../../layout/topbar/Topbar";
|
|
30
28
|
import { Dialog } from "../../disclosure/Dialog";
|
|
31
29
|
import { Link } from "../../display/Link";
|
|
32
30
|
import { createEventListener } from "@solid-primitives/event-listener";
|
|
33
31
|
import { useBeforeLeave } from "@solidjs/router";
|
|
34
32
|
import clsx from "clsx";
|
|
33
|
+
import { text } from "../../../styles/base.styles";
|
|
34
|
+
import { gap, pad } from "../../../styles/control.styles";
|
|
35
35
|
import {
|
|
36
36
|
IconDeviceFloppy,
|
|
37
37
|
IconExternalLink,
|
|
@@ -44,52 +44,42 @@ import {
|
|
|
44
44
|
IconUpload,
|
|
45
45
|
} from "@tabler/icons-solidjs";
|
|
46
46
|
import { registerCrud, unregisterCrud, activateCrud, isActiveCrud } from "../crudRegistry";
|
|
47
|
-
import { CrudSheetColumn,
|
|
48
|
-
import { CrudSheetFilter,
|
|
49
|
-
import { CrudSheetTools,
|
|
50
|
-
import { CrudSheetHeader,
|
|
47
|
+
import { CrudSheetColumn, createCrudSheetColumnSlotsAccessor } from "./CrudSheetColumn";
|
|
48
|
+
import { CrudSheetFilter, createCrudSheetFilterSlotAccessor } from "./CrudSheetFilter";
|
|
49
|
+
import { CrudSheetTools, createCrudSheetToolsSlotAccessor } from "./CrudSheetTools";
|
|
50
|
+
import { CrudSheetHeader, createCrudSheetHeaderSlotAccessor } from "./CrudSheetHeader";
|
|
51
51
|
import type {
|
|
52
|
-
|
|
52
|
+
CrudSheetCellContext,
|
|
53
53
|
CrudSheetContext,
|
|
54
|
-
CrudSheetFilterDef,
|
|
55
|
-
CrudSheetHeaderDef,
|
|
56
54
|
CrudSheetProps,
|
|
57
|
-
CrudSheetToolsDef,
|
|
58
55
|
SearchResult,
|
|
59
|
-
} from "./types";
|
|
56
|
+
} from "./CrudSheet.types";
|
|
60
57
|
|
|
61
|
-
|
|
62
|
-
<TItem, TFilter extends Record<string, any>>(props: CrudSheetProps<TItem, TFilter>): JSX.Element;
|
|
63
|
-
Column: typeof CrudSheetColumn;
|
|
64
|
-
Filter: typeof CrudSheetFilter;
|
|
65
|
-
Tools: typeof CrudSheetTools;
|
|
66
|
-
Header: typeof CrudSheetHeader;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
58
|
+
const CrudSheetBase = <TItem, TFilter extends Record<string, unknown>>(
|
|
70
59
|
props: CrudSheetProps<TItem, TFilter>,
|
|
71
60
|
) => {
|
|
72
61
|
const [local] = splitProps(props, [
|
|
73
62
|
"search",
|
|
74
63
|
"getItemKey",
|
|
75
|
-
"
|
|
64
|
+
"storageKey",
|
|
76
65
|
"editable",
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
66
|
+
"isItemEditable",
|
|
67
|
+
"isItemDeletable",
|
|
68
|
+
"isItemDeleted",
|
|
80
69
|
"isItemSelectable",
|
|
81
70
|
"lastModifiedAtProp",
|
|
82
71
|
"lastModifiedByProp",
|
|
83
|
-
"
|
|
72
|
+
"onSubmitComplete",
|
|
84
73
|
"filterInitial",
|
|
85
74
|
"items",
|
|
86
75
|
"onItemsChange",
|
|
87
76
|
"inlineEdit",
|
|
88
77
|
"dialogEdit",
|
|
89
78
|
"excel",
|
|
90
|
-
"
|
|
79
|
+
"selectionMode",
|
|
91
80
|
"onSelect",
|
|
92
81
|
"hideAutoTools",
|
|
82
|
+
"close",
|
|
93
83
|
"class",
|
|
94
84
|
"children",
|
|
95
85
|
]);
|
|
@@ -97,22 +87,15 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
97
87
|
const noti = useNotification();
|
|
98
88
|
const i18n = useI18n();
|
|
99
89
|
const topbarCtx = useContext(TopbarContext);
|
|
100
|
-
const
|
|
101
|
-
const
|
|
102
|
-
const isSelectMode = () => local.selectMode != null;
|
|
90
|
+
const isInDialog = local.close !== undefined;
|
|
91
|
+
const isSelectMode = () => local.selectionMode != null;
|
|
103
92
|
const canEdit = () => (isInDialog && isSelectMode() ? false : (local.editable ?? true));
|
|
104
93
|
|
|
105
|
-
// --
|
|
106
|
-
const
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
filter: arr.find(isCrudSheetFilterDef) as CrudSheetFilterDef<TFilter> | undefined,
|
|
111
|
-
columns: arr.filter(isCrudSheetColumnDef) as unknown as CrudSheetColumnDef<TItem>[],
|
|
112
|
-
tools: arr.find(isCrudSheetToolsDef) as CrudSheetToolsDef<TItem> | undefined,
|
|
113
|
-
header: arr.find(isCrudSheetHeaderDef) as CrudSheetHeaderDef | undefined,
|
|
114
|
-
};
|
|
115
|
-
});
|
|
94
|
+
// -- Slot Accessors --
|
|
95
|
+
const [headerSlot, HeaderProvider] = createCrudSheetHeaderSlotAccessor();
|
|
96
|
+
const [filterSlot, FilterProvider] = createCrudSheetFilterSlotAccessor();
|
|
97
|
+
const [toolsSlot, ToolsProvider] = createCrudSheetToolsSlotAccessor();
|
|
98
|
+
const [columnSlots, ColumnsProvider] = createCrudSheetColumnSlotsAccessor();
|
|
116
99
|
|
|
117
100
|
// -- State --
|
|
118
101
|
const [items, setItems] = createControllableStore<TItem[]>({
|
|
@@ -121,18 +104,30 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
121
104
|
});
|
|
122
105
|
let originalItems: TItem[] = [];
|
|
123
106
|
|
|
124
|
-
// eslint-disable-next-line solid/reactivity -- filterInitial is used only for initial value
|
|
125
107
|
const [filter, setFilter] = createStore<TFilter>((local.filterInitial ?? {}) as TFilter);
|
|
126
|
-
const [lastFilter, setLastFilter] = createSignal<TFilter>(
|
|
108
|
+
const [lastFilter, setLastFilter] = createSignal<TFilter>(obj.clone(filter));
|
|
127
109
|
|
|
128
110
|
const [page, setPage] = createSignal(1);
|
|
129
111
|
const [totalPageCount, setTotalPageCount] = createSignal(0);
|
|
130
112
|
const [sorts, setSorts] = createSignal<SortingDef[]>([]);
|
|
131
113
|
|
|
132
114
|
const [busyCount, setBusyCount] = createSignal(0);
|
|
115
|
+
|
|
116
|
+
async function withBusy<T>(fn: () => Promise<T>, errorMessage?: string): Promise<T | undefined> {
|
|
117
|
+
setBusyCount((c) => c + 1);
|
|
118
|
+
try {
|
|
119
|
+
return await fn();
|
|
120
|
+
} catch (err) {
|
|
121
|
+
noti.error(err, errorMessage);
|
|
122
|
+
return undefined;
|
|
123
|
+
} finally {
|
|
124
|
+
setBusyCount((c) => c - 1);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
133
128
|
const [ready, setReady] = createSignal(false);
|
|
134
129
|
|
|
135
|
-
const [
|
|
130
|
+
const [selection, setSelection] = createSignal<TItem[]>([]);
|
|
136
131
|
const [selectedKeys, setSelectedKeys] = createSignal<Set<string | number>>(new Set());
|
|
137
132
|
|
|
138
133
|
let formRef: HTMLFormElement | undefined;
|
|
@@ -142,17 +137,19 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
142
137
|
createEventListener(() => formRef, "pointerdown", () => activateCrud(crudId));
|
|
143
138
|
createEventListener(() => formRef, "focusin", () => activateCrud(crudId));
|
|
144
139
|
|
|
140
|
+
let refreshVersion = 0;
|
|
141
|
+
|
|
145
142
|
createEffect(() => {
|
|
146
143
|
void doRefresh();
|
|
147
144
|
});
|
|
148
145
|
|
|
149
|
-
// -- Key-based selection: restore
|
|
146
|
+
// -- Key-based selection: restore selection when items change --
|
|
150
147
|
createEffect(() => {
|
|
151
|
-
const currentItems = items
|
|
148
|
+
const currentItems = items;
|
|
152
149
|
const keys = selectedKeys();
|
|
153
150
|
if (keys.size === 0) {
|
|
154
|
-
if (
|
|
155
|
-
|
|
151
|
+
if (selection().length > 0) {
|
|
152
|
+
setSelection([]);
|
|
156
153
|
}
|
|
157
154
|
return;
|
|
158
155
|
}
|
|
@@ -160,34 +157,36 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
160
157
|
const key = local.getItemKey(item);
|
|
161
158
|
return key != null && keys.has(key);
|
|
162
159
|
});
|
|
163
|
-
|
|
160
|
+
setSelection(restored);
|
|
164
161
|
});
|
|
165
162
|
|
|
166
163
|
async function doRefresh() {
|
|
164
|
+
const version = ++refreshVersion;
|
|
167
165
|
setBusyCount((c) => c + 1);
|
|
168
166
|
try {
|
|
169
167
|
await refresh();
|
|
168
|
+
if (version !== refreshVersion) return;
|
|
169
|
+
setReady(true);
|
|
170
170
|
} catch (err) {
|
|
171
|
+
if (version !== refreshVersion) return;
|
|
171
172
|
noti.error(err, i18n.t("crudSheet.lookupFailed"));
|
|
173
|
+
} finally {
|
|
174
|
+
setBusyCount((c) => c - 1);
|
|
172
175
|
}
|
|
173
|
-
setBusyCount((c) => c - 1);
|
|
174
|
-
setReady(true);
|
|
175
176
|
}
|
|
176
177
|
|
|
177
178
|
async function refresh() {
|
|
178
179
|
const result: SearchResult<TItem> = await local.search(lastFilter(), page(), sorts());
|
|
179
180
|
setItems(reconcile(result.items));
|
|
180
|
-
originalItems =
|
|
181
|
+
originalItems = obj.clone(result.items);
|
|
181
182
|
setTotalPageCount(result.pageCount ?? 0);
|
|
182
183
|
}
|
|
183
184
|
|
|
184
|
-
/* eslint-disable solid/reactivity -- called only in event handlers, immediate store read */
|
|
185
185
|
function getItemDiffs() {
|
|
186
186
|
return items.oneWayDiffs(originalItems, (item) => local.getItemKey(item), {
|
|
187
187
|
excludes: local.inlineEdit?.diffsExcludes,
|
|
188
188
|
});
|
|
189
189
|
}
|
|
190
|
-
/* eslint-enable solid/reactivity */
|
|
191
190
|
|
|
192
191
|
function checkIgnoreChanges(): boolean {
|
|
193
192
|
if (!local.inlineEdit) return true;
|
|
@@ -200,7 +199,7 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
200
199
|
e.preventDefault();
|
|
201
200
|
if (!checkIgnoreChanges()) return;
|
|
202
201
|
setPage(1);
|
|
203
|
-
setLastFilter(() =>
|
|
202
|
+
setLastFilter(() => obj.clone(filter));
|
|
204
203
|
}
|
|
205
204
|
|
|
206
205
|
async function handleRefresh() {
|
|
@@ -219,7 +218,7 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
219
218
|
}
|
|
220
219
|
|
|
221
220
|
function handleToggleDelete(item: TItem, index: number) {
|
|
222
|
-
if (!(local.
|
|
221
|
+
if (!(local.isItemDeletable?.(item) ?? true)) return;
|
|
223
222
|
if (local.inlineEdit?.deleteProp == null) return;
|
|
224
223
|
const dp = local.inlineEdit.deleteProp;
|
|
225
224
|
|
|
@@ -232,7 +231,11 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
232
231
|
return;
|
|
233
232
|
}
|
|
234
233
|
|
|
235
|
-
setItems(
|
|
234
|
+
setItems(
|
|
235
|
+
produce((draft) => {
|
|
236
|
+
(draft[index] as Record<string, unknown>)[dp] = !(item[dp] as boolean);
|
|
237
|
+
}),
|
|
238
|
+
);
|
|
236
239
|
}
|
|
237
240
|
|
|
238
241
|
async function handleSave() {
|
|
@@ -247,16 +250,12 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
247
250
|
return;
|
|
248
251
|
}
|
|
249
252
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
await local.inlineEdit.submit(diffs);
|
|
253
|
+
await withBusy(async () => {
|
|
254
|
+
await local.inlineEdit!.submit(diffs);
|
|
253
255
|
noti.success(i18n.t("crudSheet.saveCompleted"), i18n.t("crudSheet.saveSuccess"));
|
|
254
256
|
await refresh();
|
|
255
|
-
local.
|
|
256
|
-
}
|
|
257
|
-
noti.error(err, i18n.t("crudSheet.saveFailed"));
|
|
258
|
-
}
|
|
259
|
-
setBusyCount((c) => c - 1);
|
|
257
|
+
local.onSubmitComplete?.();
|
|
258
|
+
}, i18n.t("crudSheet.saveFailed"));
|
|
260
259
|
}
|
|
261
260
|
|
|
262
261
|
async function handleFormSubmit(e: Event) {
|
|
@@ -270,86 +269,59 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
270
269
|
const result = await local.dialogEdit.editItem(item);
|
|
271
270
|
if (!result) return;
|
|
272
271
|
|
|
273
|
-
|
|
274
|
-
try {
|
|
275
|
-
await refresh();
|
|
276
|
-
} catch (err) {
|
|
277
|
-
noti.error(err, i18n.t("crudSheet.lookupFailed"));
|
|
278
|
-
}
|
|
279
|
-
setBusyCount((c) => c - 1);
|
|
272
|
+
await withBusy(() => refresh(), i18n.t("crudSheet.lookupFailed"));
|
|
280
273
|
}
|
|
281
274
|
|
|
282
275
|
async function handleDeleteItems() {
|
|
283
276
|
if (!local.dialogEdit?.deleteItems) return;
|
|
284
|
-
const result = await local.dialogEdit.deleteItems(
|
|
277
|
+
const result = await local.dialogEdit.deleteItems(selection());
|
|
285
278
|
if (!result) return;
|
|
286
279
|
|
|
287
|
-
|
|
288
|
-
try {
|
|
280
|
+
await withBusy(async () => {
|
|
289
281
|
await refresh();
|
|
290
282
|
noti.success(i18n.t("crudSheet.deleteCompleted"), i18n.t("crudSheet.deleteSuccess"));
|
|
291
|
-
}
|
|
292
|
-
noti.error(err, i18n.t("crudSheet.deleteFailed"));
|
|
293
|
-
}
|
|
294
|
-
setBusyCount((c) => c - 1);
|
|
283
|
+
}, i18n.t("crudSheet.deleteFailed"));
|
|
295
284
|
}
|
|
296
285
|
|
|
297
286
|
async function handleRestoreItems() {
|
|
298
287
|
if (!local.dialogEdit?.restoreItems) return;
|
|
299
|
-
const result = await local.dialogEdit.restoreItems(
|
|
288
|
+
const result = await local.dialogEdit.restoreItems(selection());
|
|
300
289
|
if (!result) return;
|
|
301
290
|
|
|
302
|
-
|
|
303
|
-
try {
|
|
291
|
+
await withBusy(async () => {
|
|
304
292
|
await refresh();
|
|
305
293
|
noti.success(i18n.t("crudSheet.restoreCompleted"), i18n.t("crudSheet.restoreSuccess"));
|
|
306
|
-
}
|
|
307
|
-
noti.error(err, i18n.t("crudSheet.restoreFailed"));
|
|
308
|
-
}
|
|
309
|
-
setBusyCount((c) => c - 1);
|
|
294
|
+
}, i18n.t("crudSheet.restoreFailed"));
|
|
310
295
|
}
|
|
311
296
|
|
|
312
297
|
// -- Excel --
|
|
313
298
|
async function handleExcelDownload() {
|
|
314
299
|
if (!local.excel) return;
|
|
315
300
|
|
|
316
|
-
|
|
317
|
-
try {
|
|
301
|
+
await withBusy(async () => {
|
|
318
302
|
const result = await local.search(lastFilter(), undefined, sorts());
|
|
319
|
-
await local.excel
|
|
320
|
-
}
|
|
321
|
-
noti.error(err, i18n.t("crudSheet.excelDownloadFailed"));
|
|
322
|
-
}
|
|
323
|
-
setBusyCount((c) => c - 1);
|
|
303
|
+
await local.excel!.download(result.items);
|
|
304
|
+
}, i18n.t("crudSheet.excelDownloadFailed"));
|
|
324
305
|
}
|
|
325
306
|
|
|
326
|
-
function handleExcelUpload() {
|
|
307
|
+
async function handleExcelUpload() {
|
|
327
308
|
if (!local.excel?.upload) return;
|
|
328
309
|
|
|
329
|
-
const
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
await local.excel!.upload!(file);
|
|
339
|
-
noti.success(i18n.t("crudSheet.excelCompleted"), i18n.t("crudSheet.excelUploadSuccess"));
|
|
340
|
-
await refresh();
|
|
341
|
-
} catch (err) {
|
|
342
|
-
noti.error(err, i18n.t("crudSheet.excelUploadFailed"));
|
|
343
|
-
}
|
|
344
|
-
setBusyCount((c) => c - 1);
|
|
345
|
-
};
|
|
346
|
-
input.click();
|
|
310
|
+
const files = await openFileDialog({ accept: ".xlsx" });
|
|
311
|
+
const file = files?.[0];
|
|
312
|
+
if (file == null) return;
|
|
313
|
+
|
|
314
|
+
await withBusy(async () => {
|
|
315
|
+
await local.excel!.upload!(file);
|
|
316
|
+
noti.success(i18n.t("crudSheet.excelCompleted"), i18n.t("crudSheet.excelUploadSuccess"));
|
|
317
|
+
await refresh();
|
|
318
|
+
}, i18n.t("crudSheet.excelUploadFailed"));
|
|
347
319
|
}
|
|
348
320
|
|
|
349
321
|
// -- Select Mode --
|
|
350
|
-
function
|
|
322
|
+
function handleSelectionChange(newSelection: TItem[]) {
|
|
351
323
|
// Current page items key Set
|
|
352
|
-
const currentItems = items
|
|
324
|
+
const currentItems = items;
|
|
353
325
|
const currentKeys = new Set<string | number>();
|
|
354
326
|
for (const item of currentItems) {
|
|
355
327
|
const key = local.getItemKey(item);
|
|
@@ -358,7 +330,7 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
358
330
|
|
|
359
331
|
// Newly selected items key
|
|
360
332
|
const newSelectedKeys = new Set<string | number>();
|
|
361
|
-
for (const item of
|
|
333
|
+
for (const item of newSelection) {
|
|
362
334
|
const key = local.getItemKey(item);
|
|
363
335
|
if (key != null) newSelectedKeys.add(key);
|
|
364
336
|
}
|
|
@@ -375,17 +347,17 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
375
347
|
}
|
|
376
348
|
|
|
377
349
|
setSelectedKeys(merged);
|
|
378
|
-
|
|
350
|
+
setSelection(newSelection);
|
|
379
351
|
}
|
|
380
352
|
|
|
381
353
|
function clearSelection() {
|
|
382
354
|
setSelectedKeys(new Set<string | number>());
|
|
383
|
-
|
|
355
|
+
setSelection([]);
|
|
384
356
|
}
|
|
385
357
|
|
|
386
358
|
function handleSelectConfirm() {
|
|
387
359
|
local.onSelect?.({
|
|
388
|
-
items:
|
|
360
|
+
items: selection(),
|
|
389
361
|
keys: [...selectedKeys()],
|
|
390
362
|
});
|
|
391
363
|
}
|
|
@@ -412,7 +384,6 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
412
384
|
});
|
|
413
385
|
|
|
414
386
|
// -- Route Leave Guard --
|
|
415
|
-
// eslint-disable-next-line solid/reactivity -- inlineEdit is used only for initial value
|
|
416
387
|
if (!isInDialog && local.inlineEdit) {
|
|
417
388
|
try {
|
|
418
389
|
useBeforeLeave((e) => {
|
|
@@ -427,7 +398,7 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
427
398
|
|
|
428
399
|
// -- Topbar Actions --
|
|
429
400
|
if (topbarCtx) {
|
|
430
|
-
|
|
401
|
+
useTopbarActions(() => (
|
|
431
402
|
<>
|
|
432
403
|
<Show when={canEdit() && local.inlineEdit}>
|
|
433
404
|
<Button
|
|
@@ -450,8 +421,8 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
450
421
|
|
|
451
422
|
// -- Context for Tools --
|
|
452
423
|
const ctx: CrudSheetContext<TItem> = {
|
|
453
|
-
items: () => items
|
|
454
|
-
|
|
424
|
+
items: () => items,
|
|
425
|
+
selection,
|
|
455
426
|
page,
|
|
456
427
|
sorts,
|
|
457
428
|
busy: () => busyCount() > 0,
|
|
@@ -471,15 +442,23 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
471
442
|
|
|
472
443
|
// -- Render --
|
|
473
444
|
const deleteProp = () => local.inlineEdit?.deleteProp;
|
|
474
|
-
const isItemDeleted = (item: TItem) => local.
|
|
445
|
+
const isItemDeleted = (item: TItem) => local.isItemDeleted?.(item) ?? false;
|
|
475
446
|
|
|
476
447
|
return (
|
|
477
448
|
<>
|
|
449
|
+
<ColumnsProvider>
|
|
450
|
+
<HeaderProvider>
|
|
451
|
+
<FilterProvider>
|
|
452
|
+
<ToolsProvider>{local.children}</ToolsProvider>
|
|
453
|
+
</FilterProvider>
|
|
454
|
+
</HeaderProvider>
|
|
455
|
+
</ColumnsProvider>
|
|
456
|
+
|
|
478
457
|
{/* Dialog mode: Dialog.Action (refresh button in header) */}
|
|
479
458
|
<Show when={isInDialog}>
|
|
480
459
|
<Dialog.Action>
|
|
481
460
|
<button
|
|
482
|
-
class="flex items-center px-2
|
|
461
|
+
class={clsx("flex items-center px-2 hover:text-base-600", text.muted)}
|
|
483
462
|
onClick={handleRefresh}
|
|
484
463
|
>
|
|
485
464
|
<Icon icon={IconRefresh} />
|
|
@@ -514,11 +493,11 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
514
493
|
</Show>
|
|
515
494
|
|
|
516
495
|
{/* Header (optional) */}
|
|
517
|
-
<Show when={
|
|
496
|
+
<Show when={headerSlot()}>{(slot) => slot().children}</Show>
|
|
518
497
|
|
|
519
498
|
{/* Filter */}
|
|
520
|
-
<Show when={
|
|
521
|
-
{(
|
|
499
|
+
<Show when={filterSlot()}>
|
|
500
|
+
{(slot) => (
|
|
522
501
|
<form class="p-2" onSubmit={handleFilterSubmit}>
|
|
523
502
|
<FormGroup inline>
|
|
524
503
|
<FormGroup.Item>
|
|
@@ -527,7 +506,7 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
527
506
|
{i18n.t("crudSheet.search")}
|
|
528
507
|
</Button>
|
|
529
508
|
</FormGroup.Item>
|
|
530
|
-
{
|
|
509
|
+
{slot().children(filter, setFilter)}
|
|
531
510
|
</FormGroup>
|
|
532
511
|
</form>
|
|
533
512
|
)}
|
|
@@ -563,11 +542,11 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
563
542
|
variant="ghost"
|
|
564
543
|
onClick={handleDeleteItems}
|
|
565
544
|
disabled={
|
|
566
|
-
|
|
567
|
-
!
|
|
545
|
+
selection().length === 0 ||
|
|
546
|
+
!selection().some(
|
|
568
547
|
(item) =>
|
|
569
|
-
(local.
|
|
570
|
-
!(local.
|
|
548
|
+
(local.isItemDeletable?.(item) ?? true) &&
|
|
549
|
+
!(local.isItemDeleted?.(item) ?? false),
|
|
571
550
|
)
|
|
572
551
|
}
|
|
573
552
|
>
|
|
@@ -582,8 +561,8 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
582
561
|
variant="ghost"
|
|
583
562
|
onClick={handleRestoreItems}
|
|
584
563
|
disabled={
|
|
585
|
-
|
|
586
|
-
!
|
|
564
|
+
selection().length === 0 ||
|
|
565
|
+
!selection().some((item) => local.isItemDeleted?.(item) ?? false)
|
|
587
566
|
}
|
|
588
567
|
>
|
|
589
568
|
<Icon icon={IconTrashOff} class="mr-1" />
|
|
@@ -607,7 +586,7 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
607
586
|
</Show>
|
|
608
587
|
|
|
609
588
|
{/* Custom tools */}
|
|
610
|
-
<Show when={
|
|
589
|
+
<Show when={toolsSlot()}>{(slot) => slot().children(ctx)}</Show>
|
|
611
590
|
</div>
|
|
612
591
|
</Show>
|
|
613
592
|
|
|
@@ -616,23 +595,23 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
616
595
|
<DataSheet
|
|
617
596
|
class="h-full"
|
|
618
597
|
items={items}
|
|
619
|
-
|
|
598
|
+
storageKey={local.storageKey != null ? `${local.storageKey}-sheet` : undefined}
|
|
620
599
|
page={totalPageCount() > 0 ? page() : undefined}
|
|
621
600
|
onPageChange={setPage}
|
|
622
601
|
totalPageCount={totalPageCount()}
|
|
623
602
|
sorts={sorts()}
|
|
624
603
|
onSortsChange={setSorts}
|
|
625
604
|
isItemSelectable={local.isItemSelectable}
|
|
626
|
-
|
|
605
|
+
selectionMode={
|
|
627
606
|
isSelectMode()
|
|
628
|
-
? local.
|
|
607
|
+
? local.selectionMode
|
|
629
608
|
: local.dialogEdit?.deleteItems != null || local.dialogEdit?.restoreItems != null
|
|
630
609
|
? "multiple"
|
|
631
610
|
: undefined
|
|
632
611
|
}
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
autoSelect={isSelectMode() && local.
|
|
612
|
+
selection={selection()}
|
|
613
|
+
onSelectionChange={handleSelectionChange}
|
|
614
|
+
autoSelect={isSelectMode() && local.selectionMode === "single" ? true : undefined}
|
|
636
615
|
cellClass={(item) => {
|
|
637
616
|
if (isItemDeleted(item)) {
|
|
638
617
|
return "line-through";
|
|
@@ -653,7 +632,7 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
653
632
|
<div class="flex items-center justify-center px-1 py-0.5">
|
|
654
633
|
<Link
|
|
655
634
|
theme="danger"
|
|
656
|
-
disabled={!(local.
|
|
635
|
+
disabled={!(local.isItemDeletable?.(dsCtx.item) ?? true)}
|
|
657
636
|
onClick={() => handleToggleDelete(dsCtx.item, dsCtx.index)}
|
|
658
637
|
>
|
|
659
638
|
<Icon icon={isItemDeleted(dsCtx.item) ? IconTrashOff : IconTrash} />
|
|
@@ -664,41 +643,41 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
664
643
|
</Show>
|
|
665
644
|
|
|
666
645
|
{/* User-defined columns -- map CrudSheetColumn to DataSheetColumn */}
|
|
667
|
-
<For each={
|
|
646
|
+
<For each={columnSlots()}>
|
|
668
647
|
{(col) => (
|
|
669
648
|
<DataSheetColumn<TItem>
|
|
670
649
|
key={col.key}
|
|
671
|
-
header={col.header}
|
|
650
|
+
header={normalizeHeader(col.header)}
|
|
672
651
|
headerContent={col.headerContent}
|
|
673
652
|
headerStyle={col.headerStyle}
|
|
674
653
|
summary={col.summary}
|
|
675
654
|
tooltip={col.tooltip}
|
|
676
|
-
fixed={col.fixed}
|
|
677
|
-
hidden={col.hidden}
|
|
678
|
-
collapse={col.collapse}
|
|
655
|
+
fixed={col.fixed ?? false}
|
|
656
|
+
hidden={col.hidden ?? false}
|
|
657
|
+
collapse={col.collapse ?? false}
|
|
679
658
|
width={col.width}
|
|
680
659
|
class={col.class}
|
|
681
|
-
sortable={col.sortable}
|
|
682
|
-
resizable={col.resizable}
|
|
660
|
+
sortable={col.sortable ?? true}
|
|
661
|
+
resizable={col.resizable ?? true}
|
|
683
662
|
>
|
|
684
663
|
{(dsCtx) => {
|
|
685
|
-
const crudCtx = {
|
|
664
|
+
const crudCtx: CrudSheetCellContext<any> = {
|
|
686
665
|
...dsCtx,
|
|
687
|
-
setItem:
|
|
688
|
-
setItems(dsCtx.index as any, key as any, value
|
|
666
|
+
setItem: (key, value) => {
|
|
667
|
+
setItems(dsCtx.index as any, key as any, value);
|
|
689
668
|
},
|
|
690
669
|
};
|
|
691
670
|
|
|
692
671
|
// dialogEdit editable column -- wrap with edit link
|
|
693
672
|
if (
|
|
694
673
|
local.dialogEdit &&
|
|
695
|
-
col.editTrigger &&
|
|
674
|
+
(col.editTrigger ?? false) &&
|
|
696
675
|
canEdit() &&
|
|
697
|
-
(local.
|
|
676
|
+
(local.isItemEditable?.(dsCtx.item) ?? true)
|
|
698
677
|
) {
|
|
699
678
|
return (
|
|
700
679
|
<Link
|
|
701
|
-
class={clsx("flex",
|
|
680
|
+
class={clsx("flex", gap.default)}
|
|
702
681
|
onClick={(e) => {
|
|
703
682
|
e.preventDefault();
|
|
704
683
|
e.stopPropagation();
|
|
@@ -708,12 +687,12 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
708
687
|
<div class={"p-1"}>
|
|
709
688
|
<Icon icon={IconExternalLink} />
|
|
710
689
|
</div>
|
|
711
|
-
<div class={"flex-1"}>{col.
|
|
690
|
+
<div class={"flex-1"}>{col.children(crudCtx)}</div>
|
|
712
691
|
</Link>
|
|
713
692
|
);
|
|
714
693
|
}
|
|
715
694
|
|
|
716
|
-
return col.
|
|
695
|
+
return col.children(crudCtx);
|
|
717
696
|
}}
|
|
718
697
|
</DataSheetColumn>
|
|
719
698
|
)}
|
|
@@ -723,9 +702,9 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
723
702
|
<Show when={local.lastModifiedAtProp}>
|
|
724
703
|
<DataSheetColumn<TItem> key={local.lastModifiedAtProp!} header={i18n.t("crudSheet.lastModified")} hidden>
|
|
725
704
|
{(dsCtx) => (
|
|
726
|
-
<div class="
|
|
705
|
+
<div class={clsx(pad.default, "text-center")}>
|
|
727
706
|
{(
|
|
728
|
-
|
|
707
|
+
obj.getChainValue(dsCtx.item, local.lastModifiedAtProp!, true) as
|
|
729
708
|
| DateTime
|
|
730
709
|
| undefined
|
|
731
710
|
)?.toFormatString("yyyy-MM-dd HH:mm")}
|
|
@@ -737,8 +716,8 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
737
716
|
<Show when={local.lastModifiedByProp}>
|
|
738
717
|
<DataSheetColumn<TItem> key={local.lastModifiedByProp!} header={i18n.t("crudSheet.modifiedBy")} hidden>
|
|
739
718
|
{(dsCtx) => (
|
|
740
|
-
<div class="
|
|
741
|
-
{
|
|
719
|
+
<div class={clsx(pad.default, "text-center")}>
|
|
720
|
+
{obj.getChainValue(dsCtx.item, local.lastModifiedByProp!, true) as string}
|
|
742
721
|
</div>
|
|
743
722
|
)}
|
|
744
723
|
</DataSheetColumn>
|
|
@@ -750,14 +729,14 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
750
729
|
<Show when={isInDialog && isSelectMode()}>
|
|
751
730
|
<div class="flex gap-2 border-t p-2">
|
|
752
731
|
<div class="flex-1" />
|
|
753
|
-
<Show when={
|
|
732
|
+
<Show when={selection().length > 0}>
|
|
754
733
|
<Button size="sm" theme="danger" onClick={handleSelectCancel}>
|
|
755
|
-
{local.
|
|
734
|
+
{local.selectionMode === "multiple" ? i18n.t("crudSheet.deselectAll") : i18n.t("crudSheet.deselect")}
|
|
756
735
|
</Button>
|
|
757
736
|
</Show>
|
|
758
|
-
<Show when={local.
|
|
737
|
+
<Show when={local.selectionMode === "multiple"}>
|
|
759
738
|
<Button size="sm" theme="primary" onClick={handleSelectConfirm}>
|
|
760
|
-
{i18n.t("crudSheet.confirm")} ({
|
|
739
|
+
{i18n.t("crudSheet.confirm")} ({selection().length})
|
|
761
740
|
</Button>
|
|
762
741
|
</Show>
|
|
763
742
|
</div>
|
|
@@ -767,8 +746,11 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, any>>(
|
|
|
767
746
|
);
|
|
768
747
|
};
|
|
769
748
|
|
|
770
|
-
|
|
771
|
-
CrudSheet
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
749
|
+
//#region Export
|
|
750
|
+
export const CrudSheet = Object.assign(CrudSheetBase, {
|
|
751
|
+
Column: CrudSheetColumn,
|
|
752
|
+
Filter: CrudSheetFilter,
|
|
753
|
+
Tools: CrudSheetTools,
|
|
754
|
+
Header: CrudSheetHeader,
|
|
755
|
+
});
|
|
756
|
+
//#endregion
|