@simplysm/solid 13.0.76 → 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 +9 -10
- package/dist/components/data/kanban/Kanban.d.ts +31 -38
- package/dist/components/data/kanban/Kanban.d.ts.map +1 -1
- package/dist/components/data/kanban/Kanban.js.map +1 -1
- 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 +3 -2
- package/dist/components/data/list/List.js.map +2 -2
- package/dist/components/data/sheet/DataSheet.d.ts +3 -8
- package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheet.js +305 -418
- package/dist/components/data/sheet/DataSheet.js.map +2 -2
- package/dist/components/data/sheet/{types.d.ts → DataSheet.types.d.ts} +9 -3
- 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} +2 -2
- package/dist/components/data/sheet/DataSheet.utils.d.ts.map +1 -0
- package/dist/components/data/sheet/{sheetUtils.js → DataSheet.utils.js} +3 -3
- package/dist/components/data/sheet/DataSheet.utils.js.map +6 -0
- package/dist/components/data/sheet/DataSheetColumn.d.ts +1 -1
- package/dist/components/data/sheet/DataSheetColumn.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheetConfigDialog.d.ts +1 -1
- package/dist/components/data/sheet/DataSheetConfigDialog.d.ts.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetExpansion.d.ts +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetExpansion.d.ts.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetExpansion.js +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.d.ts +2 -2
- package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.d.ts.map +1 -1
- 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/useDataSheetReorder.d.ts +1 -2
- package/dist/components/data/sheet/hooks/useDataSheetReorder.d.ts.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetReorder.js.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetSelection.d.ts +2 -2
- package/dist/components/data/sheet/hooks/useDataSheetSelection.d.ts.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetSelection.js +2 -2
- package/dist/components/data/sheet/hooks/useDataSheetSelection.js.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetSorting.d.ts +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetSorting.d.ts.map +1 -1
- package/dist/components/data/sheet/hooks/useDataSheetSorting.js +1 -1
- package/dist/components/disclosure/Dialog.d.ts +6 -10
- package/dist/components/disclosure/Dialog.d.ts.map +1 -1
- package/dist/components/disclosure/Dialog.js +11 -14
- package/dist/components/disclosure/Dialog.js.map +2 -2
- package/dist/components/disclosure/Dropdown.d.ts +8 -12
- package/dist/components/disclosure/Dropdown.d.ts.map +1 -1
- package/dist/components/disclosure/Dropdown.js.map +1 -1
- package/dist/components/disclosure/Tabs.d.ts +3 -5
- package/dist/components/disclosure/Tabs.d.ts.map +1 -1
- package/dist/components/disclosure/Tabs.js.map +1 -1
- 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 +2 -1
- 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/Echarts.d.ts +2 -2
- package/dist/components/display/Echarts.d.ts.map +1 -1
- package/dist/components/display/Echarts.js +7 -8
- package/dist/components/display/Echarts.js.map +2 -2
- package/dist/components/features/address/AddressSearch.d.ts.map +1 -1
- package/dist/components/features/address/AddressSearch.js +4 -1
- 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 +18 -15
- package/dist/components/features/crud-detail/CrudDetail.js.map +2 -2
- package/dist/components/features/crud-detail/{types.d.ts → CrudDetail.types.d.ts} +1 -1
- 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-sheet/CrudSheet.d.ts +3 -13
- package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheet.js +62 -73
- package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
- package/dist/components/features/crud-sheet/{types.d.ts → CrudSheet.types.d.ts} +10 -10
- 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/CrudSheet.types.js.map +6 -0
- package/dist/components/features/crud-sheet/CrudSheetColumn.d.ts +1 -1
- package/dist/components/features/crud-sheet/CrudSheetColumn.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheetTools.d.ts +1 -1
- package/dist/components/features/crud-sheet/CrudSheetTools.d.ts.map +1 -1
- package/dist/components/features/data-select-button/DataSelectButton.d.ts +2 -2
- package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -1
- package/dist/components/features/data-select-button/DataSelectButton.js +3 -3
- package/dist/components/features/data-select-button/DataSelectButton.js.map +2 -2
- package/dist/components/features/shared-data/SharedDataSelect.d.ts +7 -11
- package/dist/components/features/shared-data/SharedDataSelect.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelect.js +5 -4
- package/dist/components/features/shared-data/SharedDataSelect.js.map +2 -2
- 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 +8 -15
- package/dist/components/features/shared-data/SharedDataSelectList.d.ts.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelectList.js +5 -3
- package/dist/components/features/shared-data/SharedDataSelectList.js.map +2 -2
- package/dist/components/feedback/notification/NotificationProvider.d.ts.map +1 -1
- package/dist/components/feedback/notification/NotificationProvider.js +9 -1
- 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.map +1 -1
- package/dist/components/feedback/print/PrintProvider.js +1 -0
- package/dist/components/feedback/print/PrintProvider.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/checkbox/Checkbox.d.ts +1 -1
- package/dist/components/form-control/checkbox/Checkbox.d.ts.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 +2 -2
- package/dist/components/form-control/checkbox/CheckboxGroup.js.map +2 -2
- package/dist/components/form-control/checkbox/Radio.d.ts +1 -1
- package/dist/components/form-control/checkbox/Radio.d.ts.map +1 -1
- 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 +2 -2
- package/dist/components/form-control/checkbox/RadioGroup.js.map +2 -2
- package/dist/components/form-control/checkbox/SelectableBase.d.ts +1 -1
- package/dist/components/form-control/checkbox/SelectableBase.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/SelectableBase.js +3 -3
- package/dist/components/form-control/checkbox/SelectableBase.js.map +2 -2
- package/dist/components/form-control/checkbox/SelectionGroupBase.d.ts +1 -1
- package/dist/components/form-control/checkbox/SelectionGroupBase.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/SelectionGroupBase.js +3 -3
- package/dist/components/form-control/checkbox/SelectionGroupBase.js.map +2 -2
- package/dist/components/form-control/color-picker/ColorPicker.d.ts +2 -2
- package/dist/components/form-control/color-picker/ColorPicker.d.ts.map +1 -1
- package/dist/components/form-control/color-picker/ColorPicker.js +3 -3
- package/dist/components/form-control/color-picker/ColorPicker.js.map +2 -2
- package/dist/components/form-control/combobox/Combobox.d.ts +3 -3
- package/dist/components/form-control/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/form-control/combobox/Combobox.js +10 -5
- package/dist/components/form-control/combobox/Combobox.js.map +2 -2
- package/dist/components/form-control/date-range-picker/DateRangePicker.js +4 -4
- 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 +176 -312
- package/dist/components/form-control/editor/EditorToolbar.js.map +2 -2
- package/dist/components/form-control/field/DatePicker.d.ts +2 -2
- package/dist/components/form-control/field/DatePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/DatePicker.js +3 -3
- package/dist/components/form-control/field/DatePicker.js.map +2 -2
- package/dist/components/form-control/field/DateTimePicker.d.ts +2 -2
- package/dist/components/form-control/field/DateTimePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/DateTimePicker.js +3 -3
- package/dist/components/form-control/field/DateTimePicker.js.map +2 -2
- package/dist/components/form-control/field/FieldShell.d.ts +1 -1
- package/dist/components/form-control/field/FieldShell.d.ts.map +1 -1
- package/dist/components/form-control/field/FieldShell.js +2 -2
- package/dist/components/form-control/field/FieldShell.js.map +2 -2
- package/dist/components/form-control/field/NumberInput.d.ts +7 -28
- package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
- package/dist/components/form-control/field/NumberInput.js +7 -5
- package/dist/components/form-control/field/NumberInput.js.map +2 -2
- package/dist/components/form-control/field/TextInput.d.ts +7 -23
- package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
- package/dist/components/form-control/field/TextInput.js +6 -5
- package/dist/components/form-control/field/TextInput.js.map +2 -2
- package/dist/components/form-control/field/Textarea.d.ts +2 -2
- package/dist/components/form-control/field/Textarea.d.ts.map +1 -1
- package/dist/components/form-control/field/Textarea.js +3 -3
- package/dist/components/form-control/field/Textarea.js.map +2 -2
- package/dist/components/form-control/field/TimePicker.d.ts +2 -2
- package/dist/components/form-control/field/TimePicker.d.ts.map +1 -1
- package/dist/components/form-control/field/TimePicker.js +3 -3
- package/dist/components/form-control/field/TimePicker.js.map +2 -2
- package/dist/components/form-control/select/Select.d.ts +22 -44
- package/dist/components/form-control/select/Select.d.ts.map +1 -1
- package/dist/components/form-control/select/Select.js +8 -6
- package/dist/components/form-control/select/Select.js.map +2 -2
- package/dist/components/form-control/state-preset/StatePreset.js +5 -5
- package/dist/components/form-control/state-preset/StatePreset.js.map +2 -2
- package/dist/components/layout/sidebar/Sidebar.d.ts +5 -102
- package/dist/components/layout/sidebar/Sidebar.d.ts.map +1 -1
- package/dist/components/layout/sidebar/Sidebar.js.map +1 -1
- package/dist/components/layout/topbar/Topbar.d.ts +1 -1
- package/dist/components/layout/topbar/Topbar.d.ts.map +1 -1
- package/dist/components/layout/topbar/Topbar.js +3 -3
- package/dist/components/layout/topbar/Topbar.js.map +2 -2
- package/dist/helpers/createAppStructure.d.ts.map +1 -1
- package/dist/helpers/createAppStructure.js.map +1 -1
- package/dist/hooks/createControllableStore.js +5 -5
- package/dist/hooks/createControllableStore.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/providers/ServiceClientProvider.d.ts +2 -2
- package/dist/providers/ServiceClientProvider.d.ts.map +1 -1
- package/dist/providers/ServiceClientProvider.js.map +1 -1
- package/dist/providers/shared-data/SharedDataProvider.d.ts +1 -1
- package/dist/providers/shared-data/SharedDataProvider.d.ts.map +1 -1
- package/dist/providers/shared-data/SharedDataProvider.js +98 -86
- package/dist/providers/shared-data/SharedDataProvider.js.map +2 -2
- package/package.json +5 -5
- package/src/components/data/kanban/Kanban.tsx +37 -32
- package/src/components/data/list/List.tsx +3 -6
- package/src/components/data/sheet/DataSheet.tsx +224 -334
- package/src/components/data/sheet/{types.ts → DataSheet.types.ts} +8 -2
- package/src/components/data/sheet/{sheetUtils.ts → DataSheet.utils.ts} +3 -3
- package/src/components/data/sheet/DataSheetColumn.tsx +1 -1
- package/src/components/data/sheet/DataSheetConfigDialog.tsx +1 -1
- package/src/components/data/sheet/hooks/useDataSheetExpansion.ts +2 -2
- package/src/components/data/sheet/hooks/useDataSheetFixedColumns.ts +2 -2
- package/src/components/data/sheet/hooks/useDataSheetHeaderCell.tsx +168 -0
- package/src/components/data/sheet/hooks/useDataSheetReorder.ts +1 -2
- package/src/components/data/sheet/hooks/useDataSheetSelection.ts +4 -4
- package/src/components/data/sheet/hooks/useDataSheetSorting.ts +2 -2
- package/src/components/disclosure/Dialog.tsx +21 -27
- package/src/components/disclosure/Dropdown.tsx +1 -6
- package/src/components/disclosure/Tabs.tsx +1 -6
- package/src/components/display/Barcode.tsx +4 -113
- package/src/components/display/Barcode.types.ts +111 -0
- package/src/components/display/Echarts.tsx +10 -11
- package/src/components/features/address/AddressSearch.tsx +21 -3
- package/src/components/features/crud-detail/CrudDetail.tsx +21 -38
- package/src/components/features/crud-sheet/CrudSheet.tsx +77 -93
- package/src/components/features/crud-sheet/{types.ts → CrudSheet.types.ts} +9 -9
- package/src/components/features/crud-sheet/CrudSheetColumn.tsx +1 -1
- package/src/components/features/crud-sheet/CrudSheetTools.tsx +1 -1
- package/src/components/features/data-select-button/DataSelectButton.tsx +8 -8
- package/src/components/features/shared-data/SharedDataSelect.tsx +23 -34
- package/src/components/features/shared-data/SharedDataSelectButton.tsx +1 -4
- package/src/components/features/shared-data/SharedDataSelectList.tsx +6 -10
- package/src/components/feedback/notification/NotificationProvider.tsx +9 -1
- package/src/components/feedback/print/Print.tsx +4 -8
- package/src/components/feedback/print/PrintProvider.tsx +2 -1
- package/src/components/form-control/Invalid.tsx +33 -29
- package/src/components/form-control/checkbox/Checkbox.tsx +1 -1
- package/src/components/form-control/checkbox/CheckboxGroup.tsx +3 -12
- package/src/components/form-control/checkbox/Radio.tsx +1 -1
- package/src/components/form-control/checkbox/RadioGroup.tsx +3 -12
- package/src/components/form-control/checkbox/SelectableBase.tsx +3 -3
- package/src/components/form-control/checkbox/SelectionGroupBase.tsx +3 -3
- package/src/components/form-control/color-picker/ColorPicker.tsx +4 -4
- package/src/components/form-control/combobox/Combobox.tsx +23 -18
- package/src/components/form-control/date-range-picker/DateRangePicker.tsx +5 -5
- package/src/components/form-control/editor/EditorToolbar.tsx +82 -202
- package/src/components/form-control/field/DatePicker.tsx +4 -4
- package/src/components/form-control/field/DateTimePicker.tsx +4 -4
- package/src/components/form-control/field/FieldShell.tsx +2 -2
- package/src/components/form-control/field/NumberInput.tsx +8 -11
- package/src/components/form-control/field/TextInput.tsx +7 -11
- package/src/components/form-control/field/Textarea.tsx +4 -4
- package/src/components/form-control/field/TimePicker.tsx +4 -4
- package/src/components/form-control/select/Select.tsx +33 -42
- package/src/components/form-control/state-preset/StatePreset.tsx +5 -5
- package/src/components/layout/sidebar/Sidebar.tsx +1 -7
- package/src/components/layout/topbar/Topbar.tsx +3 -3
- package/src/helpers/createAppStructure.ts +16 -0
- package/src/hooks/createControllableStore.ts +5 -5
- package/src/index.ts +4 -3
- package/src/providers/ServiceClientProvider.tsx +4 -4
- package/src/providers/shared-data/SharedDataProvider.tsx +136 -113
- package/tests/components/data/sheet/DataSheet.spec.tsx +2 -2
- package/tests/components/data/sheet/hooks/useDataSheetFixedColumns.spec.ts +1 -1
- package/tests/components/data/sheet/hooks/useDataSheetSelection.spec.ts +34 -17
- package/tests/components/data/sheet/hooks/useDataSheetSorting.spec.ts +1 -1
- package/tests/components/disclosure/Dialog.spec.tsx +7 -7
- package/tests/components/display/Barcode.spec.tsx +15 -1
- package/tests/components/features/crud-sheet/CrudSheet.spec.tsx +6 -6
- package/tests/components/form-control/Invalid.spec.tsx +5 -5
- package/tests/components/form-control/combobox/Combobox.spec.tsx +24 -1
- package/tests/components/layout/topbar/TopbarActions.spec.tsx +4 -4
- package/tests/components/layout/topbar/{createTopbarActions.spec.tsx → useTopbarActions.spec.tsx} +4 -4
- package/tests/providers/shared-data/SharedDataProvider.spec.tsx +130 -8
- 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/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/feedback/notification/index.d.ts +0 -4
- package/dist/components/feedback/notification/index.d.ts.map +0 -1
- package/dist/components/feedback/notification/index.js +0 -4
- package/dist/components/feedback/notification/index.js.map +0 -6
- package/src/components/feedback/notification/index.ts +0 -3
- /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/src/components/features/crud-detail/{types.ts → CrudDetail.types.ts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/features/address/AddressSearch.tsx"],
|
|
4
|
-
"mappings": ";;;;AAAA,SAAyBA,cAAcC,eAAe;AACtD,SAASC,qBAAqB;
|
|
5
|
-
"names": ["createSignal", "onMount", "BusyContainer", "AddressSearchContent", "props", "initialized", "setInitialized", "contentEl", "document", "getElementById", "Promise", "resolve", "scriptEl", "createElement", "src", "setAttribute", "onload", "daum", "postcode", "load", "head", "appendChild", "Postcode", "oncomplete", "data", "addr", "userSelectedType", "roadAddress", "jibunAddress", "extraAddr", "bname", "test", "buildingName", "apartment", "close", "postNumber", "zonecode", "address", "onresize", "size", "style", "height", "width", "embed", "autoClose", "_$createComponent", "busy", "children", "_el$", "_tmpl$", "_ref$", "_$use"]
|
|
4
|
+
"mappings": ";;;;AAAA,SAAyBA,cAAcC,eAAe;AACtD,SAASC,qBAAqB;AAuBvB,MAAMC,uBAEPC,WAAU;AACd,QAAM,CAACC,aAAaC,cAAc,IAAIN,aAAa,KAAK;AACxD,MAAIO;AAEJN,UAAQ,YAAY;AAClB,QAAI,CAACO,SAASC,eAAe,cAAc,GAAG;AAC5C,YAAM,IAAIC,QAAc,CAACC,SAASC,WAAW;AAC3C,cAAMC,WAAWL,SAASM,cAAc,QAAQ;AAChDD,iBAASE,MAAM;AACfF,iBAASG,aAAa,MAAM,cAAc;AAE1CH,iBAASI,SAAS,MAAY;AAE5BC,eAAKC,SAASC,KAAK,MAAM;AACvBT,oBAAQ;UACV,CAAC;QACH;AACAE,iBAASQ,UAAU,MAAM;AACvBT,iBAAO,IAAIU,MAAM,qCAAqC,CAAC;QACzD;AACAd,iBAASe,KAAKC,YAAYX,QAAQ;MACpC,CAAC;IACH;AAGA,QAAIK,KAAKO,SAAS;MAChBC,YAAaC,UAAmC;;AAC9C,cAAMC,OAAOD,KAAKE,qBAAqB,MAAMF,KAAKG,cAAcH,KAAKI;AAErE,YAAIC,YAAY;AAChB,YAAIL,KAAKE,qBAAqB,KAAK;AACjC,cAAIF,KAAKM,UAAU,MAAM,UAAUC,KAAKP,KAAKM,KAAK,GAAG;AACnDD,yBAAaL,KAAKM;UACpB;AAEA,cAAIN,KAAKQ,iBAAiB,MAAMR,KAAKS,cAAc,KAAK;AACtDJ,yBAAaA,cAAc,KAAK,OAAOL,KAAKQ,eAAeR,KAAKQ;UAClE;AAEA,cAAIH,cAAc,IAAI;AACpBA,wBAAY,OAAOA,YAAY;UACjC;QACF;AAEA5B,oBAAMiC,UAANjC,+BAAc;UACZkC,YAAYX,KAAKY;UACjBC,SAASZ,OAAOI;UAChBG,cAAcR,KAAKQ;QACrB;MACF;MACAM,UAAWC,UAAiC;AAC1CnC,kBAAUoC,MAAMC,SAASF,KAAKE,SAAS;MACzC;MACAC,OAAO;MACPD,QAAQ;IACV,CAAC,EAAEE,MAAMvC,WAAW;MAAEwC,WAAW;IAAM,CAAC;AAExCzC,mBAAe,IAAI;EACrB,CAAC;AAED,SAAA0C,kBACG9C,eAAa;IAAA,IAAC+C,OAAI;AAAA,aAAE,CAAC5C,YAAY;IAAC;IAAA,IAAA6C,WAAA;AAAA,UAAAC,OAAAC,OAAA;AAAA,UAAAC,QACvB9C;AAAS,aAAA8C,UAAA,aAAAC,MAAAD,OAAAF,IAAA,IAAT5C,YAAS4C;AAAA,aAAAA;IAAA;EAAA,CAAA;AAGzB;",
|
|
5
|
+
"names": ["createSignal", "onMount", "BusyContainer", "AddressSearchContent", "props", "initialized", "setInitialized", "contentEl", "document", "getElementById", "Promise", "resolve", "reject", "scriptEl", "createElement", "src", "setAttribute", "onload", "daum", "postcode", "load", "onerror", "Error", "head", "appendChild", "Postcode", "oncomplete", "data", "addr", "userSelectedType", "roadAddress", "jibunAddress", "extraAddr", "bname", "test", "buildingName", "apartment", "close", "postNumber", "zonecode", "address", "onresize", "size", "style", "height", "width", "embed", "autoClose", "_$createComponent", "busy", "children", "_el$", "_tmpl$", "_ref$", "_$use"]
|
|
6
6
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export {};
|
|
1
|
+
import type { CrudDetailProps } from "./CrudDetail.types";
|
|
2
|
+
export declare const CrudDetail: (<TData extends object>(props: CrudDetailProps<TData>) => import("solid-js").JSX.Element) & {
|
|
3
|
+
Tools: (props: {
|
|
4
|
+
children: import("solid-js").JSX.Element;
|
|
5
|
+
}) => null;
|
|
6
|
+
Before: (props: {
|
|
7
|
+
children: import("solid-js").JSX.Element;
|
|
8
|
+
}) => null;
|
|
9
|
+
After: (props: {
|
|
10
|
+
children: import("solid-js").JSX.Element;
|
|
11
|
+
}) => null;
|
|
12
|
+
};
|
|
14
13
|
//# sourceMappingURL=CrudDetail.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrudDetail.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\crud-detail\\CrudDetail.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CrudDetail.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\crud-detail\\CrudDetail.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAGV,eAAe,EAChB,MAAM,oBAAoB,CAAC;AA6T5B,eAAO,MAAM,UAAU,IA3TC,KAAK,SAAS,MAAM,SAAS,eAAe,CAAC,KAAK,CAAC;;;;;;;;;;CA+TzE,CAAC"}
|
|
@@ -3,19 +3,19 @@ import { className as _$className } from "solid-js/web";
|
|
|
3
3
|
import { effect as _$effect } from "solid-js/web";
|
|
4
4
|
import { use as _$use } from "solid-js/web";
|
|
5
5
|
import { insert as _$insert } from "solid-js/web";
|
|
6
|
-
import { createComponent as _$createComponent } from "solid-js/web";
|
|
7
6
|
import { memo as _$memo } from "solid-js/web";
|
|
7
|
+
import { createComponent as _$createComponent } from "solid-js/web";
|
|
8
8
|
var _tmpl$ = /* @__PURE__ */ _$template(`<div class="flex gap-2 pb-0">`), _tmpl$2 = /* @__PURE__ */ _$template(`<form class="flex-1 overflow-auto">`), _tmpl$3 = /* @__PURE__ */ _$template(`<div><div class=flex-1>`), _tmpl$4 = /* @__PURE__ */ _$template(`<div>: `);
|
|
9
9
|
import { createSignal, createUniqueId, onCleanup, onMount, Show, splitProps, useContext } from "solid-js";
|
|
10
10
|
import { registerCrud, unregisterCrud, activateCrud, isActiveCrud } from "../crudRegistry.js";
|
|
11
11
|
import { reconcile, unwrap } from "solid-js/store";
|
|
12
12
|
import { createControllableStore } from "../../../hooks/createControllableStore.js";
|
|
13
|
-
import {
|
|
13
|
+
import { obj } from "@simplysm/core-common";
|
|
14
14
|
import { BusyContainer } from "../../feedback/busy/BusyContainer.js";
|
|
15
15
|
import { useNotification } from "../../feedback/notification/NotificationProvider.js";
|
|
16
16
|
import { Button } from "../../form-control/Button.js";
|
|
17
17
|
import { Icon } from "../../display/Icon.js";
|
|
18
|
-
import {
|
|
18
|
+
import { useTopbarActions, TopbarContext } from "../../layout/topbar/Topbar.js";
|
|
19
19
|
import { Dialog } from "../../disclosure/Dialog.js";
|
|
20
20
|
import { createEventListener } from "@solid-primitives/event-listener";
|
|
21
21
|
import { useI18n } from "../../../providers/i18n/I18nProvider.js";
|
|
@@ -50,13 +50,14 @@ const CrudDetailBase = (props) => {
|
|
|
50
50
|
try {
|
|
51
51
|
const result = await local.load();
|
|
52
52
|
setData(reconcile(result.data));
|
|
53
|
-
originalData =
|
|
53
|
+
originalData = obj.clone(result.data);
|
|
54
54
|
setInfo(result.info);
|
|
55
|
+
setReady(true);
|
|
55
56
|
} catch (err) {
|
|
56
57
|
noti.error(err, i18n.t("crudDetail.lookupFailed"));
|
|
58
|
+
} finally {
|
|
59
|
+
setBusyCount((c) => c - 1);
|
|
57
60
|
}
|
|
58
|
-
setBusyCount((c) => c - 1);
|
|
59
|
-
setReady(true);
|
|
60
61
|
}
|
|
61
62
|
onMount(() => {
|
|
62
63
|
void doLoad();
|
|
@@ -66,7 +67,7 @@ const CrudDetailBase = (props) => {
|
|
|
66
67
|
createEventListener(() => formRef, "focusin", () => activateCrud(crudId));
|
|
67
68
|
function hasChanges() {
|
|
68
69
|
if (originalData == null) return false;
|
|
69
|
-
return !
|
|
70
|
+
return !obj.equal(unwrap(data), originalData);
|
|
70
71
|
}
|
|
71
72
|
async function handleRefresh() {
|
|
72
73
|
if (hasChanges()) {
|
|
@@ -84,7 +85,7 @@ const CrudDetailBase = (props) => {
|
|
|
84
85
|
}
|
|
85
86
|
setBusyCount((c) => c + 1);
|
|
86
87
|
try {
|
|
87
|
-
const result = await local.submit(
|
|
88
|
+
const result = await local.submit(obj.clone(unwrap(data)));
|
|
88
89
|
if (result) {
|
|
89
90
|
noti.success(i18n.t("crudDetail.saveCompleted"), i18n.t("crudDetail.saveSuccess"));
|
|
90
91
|
if (local.close) {
|
|
@@ -137,10 +138,12 @@ const CrudDetailBase = (props) => {
|
|
|
137
138
|
void handleRefresh();
|
|
138
139
|
}
|
|
139
140
|
});
|
|
141
|
+
const showSave = () => canEdit() && local.submit;
|
|
142
|
+
const showDelete = () => canEdit() && local.toggleDelete && info() && !info().isNew && (local.deletable ?? true);
|
|
140
143
|
if (topbarCtx) {
|
|
141
|
-
|
|
144
|
+
useTopbarActions(() => [_$createComponent(Show, {
|
|
142
145
|
get when() {
|
|
143
|
-
return
|
|
146
|
+
return showSave();
|
|
144
147
|
},
|
|
145
148
|
get children() {
|
|
146
149
|
return _$createComponent(Button, {
|
|
@@ -158,7 +161,7 @@ const CrudDetailBase = (props) => {
|
|
|
158
161
|
}
|
|
159
162
|
}), _$createComponent(Show, {
|
|
160
163
|
get when() {
|
|
161
|
-
return
|
|
164
|
+
return showDelete();
|
|
162
165
|
},
|
|
163
166
|
children: (_) => _$createComponent(Button, {
|
|
164
167
|
size: "lg",
|
|
@@ -242,7 +245,7 @@ const CrudDetailBase = (props) => {
|
|
|
242
245
|
get children() {
|
|
243
246
|
return [_$createComponent(Show, {
|
|
244
247
|
get when() {
|
|
245
|
-
return
|
|
248
|
+
return showSave();
|
|
246
249
|
},
|
|
247
250
|
get children() {
|
|
248
251
|
return _$createComponent(Button, {
|
|
@@ -260,7 +263,7 @@ const CrudDetailBase = (props) => {
|
|
|
260
263
|
}
|
|
261
264
|
}), _$createComponent(Show, {
|
|
262
265
|
get when() {
|
|
263
|
-
return
|
|
266
|
+
return showDelete();
|
|
264
267
|
},
|
|
265
268
|
children: (_) => _$createComponent(Button, {
|
|
266
269
|
size: "sm",
|
|
@@ -346,7 +349,7 @@ const CrudDetailBase = (props) => {
|
|
|
346
349
|
var _el$3 = _tmpl$3(), _el$4 = _el$3.firstChild;
|
|
347
350
|
_$insert(_el$3, _$createComponent(Show, {
|
|
348
351
|
get when() {
|
|
349
|
-
return
|
|
352
|
+
return showDelete();
|
|
350
353
|
},
|
|
351
354
|
children: (_) => _$createComponent(Button, {
|
|
352
355
|
variant: "solid",
|
|
@@ -364,7 +367,7 @@ const CrudDetailBase = (props) => {
|
|
|
364
367
|
}), null);
|
|
365
368
|
_$insert(_el$3, _$createComponent(Show, {
|
|
366
369
|
get when() {
|
|
367
|
-
return
|
|
370
|
+
return showSave();
|
|
368
371
|
},
|
|
369
372
|
get children() {
|
|
370
373
|
return _$createComponent(Button, {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/features/crud-detail/CrudDetail.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;AAAA,SACEA,cACAC,
|
|
5
|
-
"names": ["createSignal", "createUniqueId", "onCleanup", "onMount", "Show", "splitProps", "useContext", "registerCrud", "unregisterCrud", "activateCrud", "isActiveCrud", "reconcile", "unwrap", "createControllableStore", "
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["createSignal", "createUniqueId", "onCleanup", "onMount", "Show", "splitProps", "useContext", "registerCrud", "unregisterCrud", "activateCrud", "isActiveCrud", "reconcile", "unwrap", "createControllableStore", "obj", "BusyContainer", "useNotification", "Button", "Icon", "useTopbarActions", "TopbarContext", "Dialog", "createEventListener", "useI18n", "clsx", "border", "text", "IconCheck", "IconDeviceFloppy", "IconRefresh", "IconTrash", "IconTrashOff", "CrudDetailTools", "createCrudDetailToolsSlotAccessor", "CrudDetailBefore", "createCrudDetailBeforeSlotAccessor", "CrudDetailAfter", "createCrudDetailAfterSlotAccessor", "CrudDetailBase", "props", "local", "noti", "i18n", "topbarCtx", "isInDialog", "close", "undefined", "canEdit", "editable", "data", "setData", "value", "onChange", "onDataChange", "originalData", "info", "setInfo", "busyCount", "setBusyCount", "ready", "setReady", "formRef", "crudId", "tools", "ToolsProvider", "before", "BeforeProvider", "after", "AfterProvider", "doLoad", "c", "result", "load", "clone", "err", "error", "t", "hasChanges", "equal", "handleRefresh", "confirm", "handleSave", "submit", "currentInfo", "isNew", "success", "handleFormSubmit", "e", "preventDefault", "handleToggleDelete", "toggleDelete", "del", "isDeleted", "document", "ctrlKey", "key", "stopImmediatePropagation", "requestSubmit", "altKey", "showSave", "showDelete", "deletable", "_$createComponent", "when", "children", "size", "variant", "theme", "onClick", "icon", "_$memo", "_", "ctx", "busy", "save", "refresh", "Action", "class", "_el$", "_tmpl$", "_$insert", "toolsSlot", "beforeSlot", "_el$2", "_tmpl$2", "addEventListener", "_$use", "el", "lastModifiedAt", "_el$5", "_tmpl$4", "_el$6", "firstChild", "toFormatString", "lastModifiedBy", "_$effect", "_$className", "muted", "afterSlot", "_el$3", "_tmpl$3", "_el$4", "default", "CrudDetail", "Object", "assign", "Tools", "Before", "After"]
|
|
6
6
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrudDetail.types.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\crud-detail\\CrudDetail.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAItD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,MAAM,WAAW,iBAAiB,CAAC,KAAK;IACtC,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,cAAc,CAAC;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAID,MAAM,WAAW,eAAe,CAAC,KAAK,SAAS,MAAM;IACnD,IAAI,EAAE,MAAM,OAAO,CAAC;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC;IAC3D,QAAQ,EAAE,CAAC,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC;IAEzD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IAErC,gFAAgF;IAChF,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=CrudDetail.types.js.map
|
|
@@ -1,24 +1,14 @@
|
|
|
1
|
-
import { type JSX } from "solid-js";
|
|
2
1
|
import "@simplysm/core-common";
|
|
3
2
|
import { CrudSheetColumn } from "./CrudSheetColumn";
|
|
4
3
|
import { CrudSheetFilter } from "./CrudSheetFilter";
|
|
5
4
|
import { CrudSheetTools } from "./CrudSheetTools";
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
interface CrudSheetComponent {
|
|
9
|
-
<TItem, TFilter extends Record<string, any>>(props: CrudSheetProps<TItem, TFilter>): JSX.Element;
|
|
10
|
-
Column: typeof CrudSheetColumn;
|
|
11
|
-
Filter: typeof CrudSheetFilter;
|
|
12
|
-
Tools: typeof CrudSheetTools;
|
|
13
|
-
Header: typeof CrudSheetHeader;
|
|
14
|
-
}
|
|
15
|
-
export declare const CrudSheet: CrudSheetComponent & {
|
|
5
|
+
import type { CrudSheetProps } from "./CrudSheet.types";
|
|
6
|
+
export declare const CrudSheet: (<TItem, TFilter extends Record<string, unknown>>(props: CrudSheetProps<TItem, TFilter>) => import("solid-js").JSX.Element) & {
|
|
16
7
|
Column: typeof CrudSheetColumn;
|
|
17
8
|
Filter: typeof CrudSheetFilter;
|
|
18
9
|
Tools: typeof CrudSheetTools;
|
|
19
10
|
Header: (props: {
|
|
20
|
-
children: JSX.Element;
|
|
11
|
+
children: import("solid-js").JSX.Element;
|
|
21
12
|
}) => null;
|
|
22
13
|
};
|
|
23
|
-
export {};
|
|
24
14
|
//# sourceMappingURL=CrudSheet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrudSheet.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\crud-sheet\\CrudSheet.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CrudSheet.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\crud-sheet\\CrudSheet.tsx"],"names":[],"mappings":"AAcA,OAAO,uBAAuB,CAAC;AAgC/B,OAAO,EAAE,eAAe,EAAsC,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAqC,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,cAAc,EAAoC,MAAM,kBAAkB,CAAC;AAEpF,OAAO,KAAK,EAGV,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAsrB3B,eAAO,MAAM,SAAS,IAprBC,KAAK,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAC5D,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;CAwrBrC,CAAC"}
|
|
@@ -10,18 +10,19 @@ var _tmpl$ = /* @__PURE__ */ _$template(`<button>`), _tmpl$2 = /* @__PURE__ */ _
|
|
|
10
10
|
import { createEffect, createSignal, createUniqueId, For, onCleanup, Show, splitProps, useContext } from "solid-js";
|
|
11
11
|
import { createStore, produce, reconcile } from "solid-js/store";
|
|
12
12
|
import { createControllableStore } from "../../../hooks/createControllableStore.js";
|
|
13
|
-
import {
|
|
13
|
+
import { obj } from "@simplysm/core-common";
|
|
14
14
|
import "@simplysm/core-common";
|
|
15
|
+
import { openFileDialog } from "@simplysm/core-browser";
|
|
15
16
|
import { DataSheet } from "../../data/sheet/DataSheet.js";
|
|
16
17
|
import { DataSheetColumn } from "../../data/sheet/DataSheetColumn.js";
|
|
17
|
-
import { normalizeHeader } from "../../data/sheet/
|
|
18
|
+
import { normalizeHeader } from "../../data/sheet/DataSheet.utils.js";
|
|
18
19
|
import { BusyContainer } from "../../feedback/busy/BusyContainer.js";
|
|
19
20
|
import { useNotification } from "../../feedback/notification/NotificationProvider.js";
|
|
20
21
|
import { useI18n } from "../../../providers/i18n/I18nProvider.js";
|
|
21
22
|
import { Button } from "../../form-control/Button.js";
|
|
22
23
|
import { Icon } from "../../display/Icon.js";
|
|
23
24
|
import { FormGroup } from "../../layout/FormGroup.js";
|
|
24
|
-
import {
|
|
25
|
+
import { useTopbarActions, TopbarContext } from "../../layout/topbar/Topbar.js";
|
|
25
26
|
import { Dialog } from "../../disclosure/Dialog.js";
|
|
26
27
|
import { Link } from "../../display/Link.js";
|
|
27
28
|
import { createEventListener } from "@solid-primitives/event-listener";
|
|
@@ -36,7 +37,7 @@ import { CrudSheetFilter, createCrudSheetFilterSlotAccessor } from "./CrudSheetF
|
|
|
36
37
|
import { CrudSheetTools, createCrudSheetToolsSlotAccessor } from "./CrudSheetTools.js";
|
|
37
38
|
import { CrudSheetHeader, createCrudSheetHeaderSlotAccessor } from "./CrudSheetHeader.js";
|
|
38
39
|
const CrudSheetBase = (props) => {
|
|
39
|
-
const [local] = splitProps(props, ["search", "getItemKey", "storageKey", "editable", "
|
|
40
|
+
const [local] = splitProps(props, ["search", "getItemKey", "storageKey", "editable", "isItemEditable", "isItemDeletable", "isItemDeleted", "isItemSelectable", "lastModifiedAtProp", "lastModifiedByProp", "onSubmitComplete", "filterInitial", "items", "onItemsChange", "inlineEdit", "dialogEdit", "excel", "selectionMode", "onSelect", "hideAutoTools", "close", "class", "children"]);
|
|
40
41
|
const noti = useNotification();
|
|
41
42
|
const i18n = useI18n();
|
|
42
43
|
const topbarCtx = useContext(TopbarContext);
|
|
@@ -53,11 +54,22 @@ const CrudSheetBase = (props) => {
|
|
|
53
54
|
});
|
|
54
55
|
let originalItems = [];
|
|
55
56
|
const [filter, setFilter] = createStore(local.filterInitial ?? {});
|
|
56
|
-
const [lastFilter, setLastFilter] = createSignal(
|
|
57
|
+
const [lastFilter, setLastFilter] = createSignal(obj.clone(filter));
|
|
57
58
|
const [page, setPage] = createSignal(1);
|
|
58
59
|
const [totalPageCount, setTotalPageCount] = createSignal(0);
|
|
59
60
|
const [sorts, setSorts] = createSignal([]);
|
|
60
61
|
const [busyCount, setBusyCount] = createSignal(0);
|
|
62
|
+
async function withBusy(fn, errorMessage) {
|
|
63
|
+
setBusyCount((c) => c + 1);
|
|
64
|
+
try {
|
|
65
|
+
return await fn();
|
|
66
|
+
} catch (err) {
|
|
67
|
+
noti.error(err, errorMessage);
|
|
68
|
+
return void 0;
|
|
69
|
+
} finally {
|
|
70
|
+
setBusyCount((c) => c - 1);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
61
73
|
const [ready, setReady] = createSignal(false);
|
|
62
74
|
const [selection, setSelection] = createSignal([]);
|
|
63
75
|
const [selectedKeys, setSelectedKeys] = createSignal(/* @__PURE__ */ new Set());
|
|
@@ -66,6 +78,7 @@ const CrudSheetBase = (props) => {
|
|
|
66
78
|
onCleanup(() => unregisterCrud(crudId));
|
|
67
79
|
createEventListener(() => formRef, "pointerdown", () => activateCrud(crudId));
|
|
68
80
|
createEventListener(() => formRef, "focusin", () => activateCrud(crudId));
|
|
81
|
+
let refreshVersion = 0;
|
|
69
82
|
createEffect(() => {
|
|
70
83
|
void doRefresh();
|
|
71
84
|
});
|
|
@@ -85,19 +98,23 @@ const CrudSheetBase = (props) => {
|
|
|
85
98
|
setSelection(restored);
|
|
86
99
|
});
|
|
87
100
|
async function doRefresh() {
|
|
101
|
+
const version = ++refreshVersion;
|
|
88
102
|
setBusyCount((c) => c + 1);
|
|
89
103
|
try {
|
|
90
104
|
await refresh();
|
|
105
|
+
if (version !== refreshVersion) return;
|
|
106
|
+
setReady(true);
|
|
91
107
|
} catch (err) {
|
|
108
|
+
if (version !== refreshVersion) return;
|
|
92
109
|
noti.error(err, i18n.t("crudSheet.lookupFailed"));
|
|
110
|
+
} finally {
|
|
111
|
+
setBusyCount((c) => c - 1);
|
|
93
112
|
}
|
|
94
|
-
setBusyCount((c) => c - 1);
|
|
95
|
-
setReady(true);
|
|
96
113
|
}
|
|
97
114
|
async function refresh() {
|
|
98
115
|
const result = await local.search(lastFilter(), page(), sorts());
|
|
99
116
|
setItems(reconcile(result.items));
|
|
100
|
-
originalItems =
|
|
117
|
+
originalItems = obj.clone(result.items);
|
|
101
118
|
setTotalPageCount(result.pageCount ?? 0);
|
|
102
119
|
}
|
|
103
120
|
function getItemDiffs() {
|
|
@@ -115,7 +132,7 @@ const CrudSheetBase = (props) => {
|
|
|
115
132
|
e.preventDefault();
|
|
116
133
|
if (!checkIgnoreChanges()) return;
|
|
117
134
|
setPage(1);
|
|
118
|
-
setLastFilter(() =>
|
|
135
|
+
setLastFilter(() => obj.clone(filter));
|
|
119
136
|
}
|
|
120
137
|
async function handleRefresh() {
|
|
121
138
|
if (!checkIgnoreChanges()) return;
|
|
@@ -129,7 +146,7 @@ const CrudSheetBase = (props) => {
|
|
|
129
146
|
}
|
|
130
147
|
function handleToggleDelete(item, index) {
|
|
131
148
|
var _a, _b;
|
|
132
|
-
if (!(((_a = local.
|
|
149
|
+
if (!(((_a = local.isItemDeletable) == null ? void 0 : _a.call(local, item)) ?? true)) return;
|
|
133
150
|
if (((_b = local.inlineEdit) == null ? void 0 : _b.deleteProp) == null) return;
|
|
134
151
|
const dp = local.inlineEdit.deleteProp;
|
|
135
152
|
if (local.getItemKey(item) == null) {
|
|
@@ -138,10 +155,11 @@ const CrudSheetBase = (props) => {
|
|
|
138
155
|
}));
|
|
139
156
|
return;
|
|
140
157
|
}
|
|
141
|
-
setItems(
|
|
158
|
+
setItems(produce((draft) => {
|
|
159
|
+
draft[index][dp] = !item[dp];
|
|
160
|
+
}));
|
|
142
161
|
}
|
|
143
162
|
async function handleSave() {
|
|
144
|
-
var _a;
|
|
145
163
|
if (busyCount() > 0) return;
|
|
146
164
|
if (!canEdit()) return;
|
|
147
165
|
if (!local.inlineEdit) return;
|
|
@@ -150,16 +168,13 @@ const CrudSheetBase = (props) => {
|
|
|
150
168
|
noti.info(i18n.t("crudSheet.notice"), i18n.t("crudSheet.noChanges"));
|
|
151
169
|
return;
|
|
152
170
|
}
|
|
153
|
-
|
|
154
|
-
|
|
171
|
+
await withBusy(async () => {
|
|
172
|
+
var _a;
|
|
155
173
|
await local.inlineEdit.submit(diffs);
|
|
156
174
|
noti.success(i18n.t("crudSheet.saveCompleted"), i18n.t("crudSheet.saveSuccess"));
|
|
157
175
|
await refresh();
|
|
158
176
|
(_a = local.onSubmitComplete) == null ? void 0 : _a.call(local);
|
|
159
|
-
}
|
|
160
|
-
noti.error(err, i18n.t("crudSheet.saveFailed"));
|
|
161
|
-
}
|
|
162
|
-
setBusyCount((c) => c - 1);
|
|
177
|
+
}, i18n.t("crudSheet.saveFailed"));
|
|
163
178
|
}
|
|
164
179
|
async function handleFormSubmit(e) {
|
|
165
180
|
e.preventDefault();
|
|
@@ -169,74 +184,48 @@ const CrudSheetBase = (props) => {
|
|
|
169
184
|
if (!local.dialogEdit) return;
|
|
170
185
|
const result = await local.dialogEdit.editItem(item);
|
|
171
186
|
if (!result) return;
|
|
172
|
-
|
|
173
|
-
try {
|
|
174
|
-
await refresh();
|
|
175
|
-
} catch (err) {
|
|
176
|
-
noti.error(err, i18n.t("crudSheet.lookupFailed"));
|
|
177
|
-
}
|
|
178
|
-
setBusyCount((c) => c - 1);
|
|
187
|
+
await withBusy(() => refresh(), i18n.t("crudSheet.lookupFailed"));
|
|
179
188
|
}
|
|
180
189
|
async function handleDeleteItems() {
|
|
181
190
|
var _a;
|
|
182
191
|
if (!((_a = local.dialogEdit) == null ? void 0 : _a.deleteItems)) return;
|
|
183
192
|
const result = await local.dialogEdit.deleteItems(selection());
|
|
184
193
|
if (!result) return;
|
|
185
|
-
|
|
186
|
-
try {
|
|
194
|
+
await withBusy(async () => {
|
|
187
195
|
await refresh();
|
|
188
196
|
noti.success(i18n.t("crudSheet.deleteCompleted"), i18n.t("crudSheet.deleteSuccess"));
|
|
189
|
-
}
|
|
190
|
-
noti.error(err, i18n.t("crudSheet.deleteFailed"));
|
|
191
|
-
}
|
|
192
|
-
setBusyCount((c) => c - 1);
|
|
197
|
+
}, i18n.t("crudSheet.deleteFailed"));
|
|
193
198
|
}
|
|
194
199
|
async function handleRestoreItems() {
|
|
195
200
|
var _a;
|
|
196
201
|
if (!((_a = local.dialogEdit) == null ? void 0 : _a.restoreItems)) return;
|
|
197
202
|
const result = await local.dialogEdit.restoreItems(selection());
|
|
198
203
|
if (!result) return;
|
|
199
|
-
|
|
200
|
-
try {
|
|
204
|
+
await withBusy(async () => {
|
|
201
205
|
await refresh();
|
|
202
206
|
noti.success(i18n.t("crudSheet.restoreCompleted"), i18n.t("crudSheet.restoreSuccess"));
|
|
203
|
-
}
|
|
204
|
-
noti.error(err, i18n.t("crudSheet.restoreFailed"));
|
|
205
|
-
}
|
|
206
|
-
setBusyCount((c) => c - 1);
|
|
207
|
+
}, i18n.t("crudSheet.restoreFailed"));
|
|
207
208
|
}
|
|
208
209
|
async function handleExcelDownload() {
|
|
209
210
|
if (!local.excel) return;
|
|
210
|
-
|
|
211
|
-
try {
|
|
211
|
+
await withBusy(async () => {
|
|
212
212
|
const result = await local.search(lastFilter(), void 0, sorts());
|
|
213
213
|
await local.excel.download(result.items);
|
|
214
|
-
}
|
|
215
|
-
noti.error(err, i18n.t("crudSheet.excelDownloadFailed"));
|
|
216
|
-
}
|
|
217
|
-
setBusyCount((c) => c - 1);
|
|
214
|
+
}, i18n.t("crudSheet.excelDownloadFailed"));
|
|
218
215
|
}
|
|
219
|
-
function handleExcelUpload() {
|
|
216
|
+
async function handleExcelUpload() {
|
|
220
217
|
var _a;
|
|
221
218
|
if (!((_a = local.excel) == null ? void 0 : _a.upload)) return;
|
|
222
|
-
const
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
noti.success(i18n.t("crudSheet.excelCompleted"), i18n.t("crudSheet.excelUploadSuccess"));
|
|
233
|
-
await refresh();
|
|
234
|
-
} catch (err) {
|
|
235
|
-
noti.error(err, i18n.t("crudSheet.excelUploadFailed"));
|
|
236
|
-
}
|
|
237
|
-
setBusyCount((c) => c - 1);
|
|
238
|
-
};
|
|
239
|
-
input.click();
|
|
219
|
+
const files = await openFileDialog({
|
|
220
|
+
accept: ".xlsx"
|
|
221
|
+
});
|
|
222
|
+
const file = files == null ? void 0 : files[0];
|
|
223
|
+
if (file == null) return;
|
|
224
|
+
await withBusy(async () => {
|
|
225
|
+
await local.excel.upload(file);
|
|
226
|
+
noti.success(i18n.t("crudSheet.excelCompleted"), i18n.t("crudSheet.excelUploadSuccess"));
|
|
227
|
+
await refresh();
|
|
228
|
+
}, i18n.t("crudSheet.excelUploadFailed"));
|
|
240
229
|
}
|
|
241
230
|
function handleSelectionChange(newSelection) {
|
|
242
231
|
const currentItems = items;
|
|
@@ -306,7 +295,7 @@ const CrudSheetBase = (props) => {
|
|
|
306
295
|
}
|
|
307
296
|
}
|
|
308
297
|
if (topbarCtx) {
|
|
309
|
-
|
|
298
|
+
useTopbarActions(() => [_$createComponent(Show, {
|
|
310
299
|
get when() {
|
|
311
300
|
return _$memo(() => !!canEdit())() && local.inlineEdit;
|
|
312
301
|
},
|
|
@@ -362,7 +351,7 @@ const CrudSheetBase = (props) => {
|
|
|
362
351
|
};
|
|
363
352
|
const isItemDeleted = (item) => {
|
|
364
353
|
var _a;
|
|
365
|
-
return ((_a = local.
|
|
354
|
+
return ((_a = local.isItemDeleted) == null ? void 0 : _a.call(local, item)) ?? false;
|
|
366
355
|
};
|
|
367
356
|
return [_$createComponent(ColumnsProvider, {
|
|
368
357
|
get children() {
|
|
@@ -538,7 +527,7 @@ const CrudSheetBase = (props) => {
|
|
|
538
527
|
get disabled() {
|
|
539
528
|
return selection().length === 0 || !selection().some((item) => {
|
|
540
529
|
var _a, _b;
|
|
541
|
-
return (((_a = local.
|
|
530
|
+
return (((_a = local.isItemDeletable) == null ? void 0 : _a.call(local, item)) ?? true) && !(((_b = local.isItemDeleted) == null ? void 0 : _b.call(local, item)) ?? false);
|
|
542
531
|
});
|
|
543
532
|
},
|
|
544
533
|
get children() {
|
|
@@ -563,7 +552,7 @@ const CrudSheetBase = (props) => {
|
|
|
563
552
|
get disabled() {
|
|
564
553
|
return selection().length === 0 || !selection().some((item) => {
|
|
565
554
|
var _a;
|
|
566
|
-
return ((_a = local.
|
|
555
|
+
return ((_a = local.isItemDeleted) == null ? void 0 : _a.call(local, item)) ?? false;
|
|
567
556
|
});
|
|
568
557
|
},
|
|
569
558
|
get children() {
|
|
@@ -646,8 +635,8 @@ const CrudSheetBase = (props) => {
|
|
|
646
635
|
return sorts();
|
|
647
636
|
},
|
|
648
637
|
onSortsChange: setSorts,
|
|
649
|
-
get
|
|
650
|
-
return local.
|
|
638
|
+
get isItemSelectable() {
|
|
639
|
+
return local.isItemSelectable;
|
|
651
640
|
},
|
|
652
641
|
get selectionMode() {
|
|
653
642
|
var _a, _b;
|
|
@@ -658,7 +647,7 @@ const CrudSheetBase = (props) => {
|
|
|
658
647
|
},
|
|
659
648
|
onSelectionChange: handleSelectionChange,
|
|
660
649
|
get autoSelect() {
|
|
661
|
-
return isSelectMode() && local.selectionMode === "single" ?
|
|
650
|
+
return isSelectMode() && local.selectionMode === "single" ? true : void 0;
|
|
662
651
|
},
|
|
663
652
|
cellClass: (item) => {
|
|
664
653
|
if (isItemDeleted(item)) {
|
|
@@ -684,7 +673,7 @@ const CrudSheetBase = (props) => {
|
|
|
684
673
|
theme: "danger",
|
|
685
674
|
get disabled() {
|
|
686
675
|
var _a;
|
|
687
|
-
return !(((_a = local.
|
|
676
|
+
return !(((_a = local.isItemDeletable) == null ? void 0 : _a.call(local, dsCtx.item)) ?? true);
|
|
688
677
|
},
|
|
689
678
|
onClick: () => handleToggleDelete(dsCtx.item, dsCtx.index),
|
|
690
679
|
get children() {
|
|
@@ -751,7 +740,7 @@ const CrudSheetBase = (props) => {
|
|
|
751
740
|
setItems(dsCtx.index, key, value);
|
|
752
741
|
}
|
|
753
742
|
};
|
|
754
|
-
if (local.dialogEdit && (col.editTrigger ?? false) && canEdit() && (((_a = local.
|
|
743
|
+
if (local.dialogEdit && (col.editTrigger ?? false) && canEdit() && (((_a = local.isItemEditable) == null ? void 0 : _a.call(local, dsCtx.item)) ?? true)) {
|
|
755
744
|
return _$createComponent(Link, {
|
|
756
745
|
get ["class"]() {
|
|
757
746
|
return clsx("flex", gap.default);
|
|
@@ -796,7 +785,7 @@ const CrudSheetBase = (props) => {
|
|
|
796
785
|
var _el$1 = _tmpl$9();
|
|
797
786
|
_$insert(_el$1, () => {
|
|
798
787
|
var _a;
|
|
799
|
-
return (_a =
|
|
788
|
+
return (_a = obj.getChainValue(dsCtx.item, local.lastModifiedAtProp, true)) == null ? void 0 : _a.toFormatString("yyyy-MM-dd HH:mm");
|
|
800
789
|
});
|
|
801
790
|
_$effect(() => _$className(_el$1, clsx(pad.default, "text-center")));
|
|
802
791
|
return _el$1;
|
|
@@ -818,7 +807,7 @@ const CrudSheetBase = (props) => {
|
|
|
818
807
|
hidden: true,
|
|
819
808
|
children: (dsCtx) => (() => {
|
|
820
809
|
var _el$10 = _tmpl$9();
|
|
821
|
-
_$insert(_el$10, () =>
|
|
810
|
+
_$insert(_el$10, () => obj.getChainValue(dsCtx.item, local.lastModifiedByProp, true));
|
|
822
811
|
_$effect(() => _$className(_el$10, clsx(pad.default, "text-center")));
|
|
823
812
|
return _el$10;
|
|
824
813
|
})()
|