@simplysm/solid 13.0.61 → 13.0.64

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.
Files changed (86) hide show
  1. package/README.md +6 -0
  2. package/dist/components/data/crud-detail/CrudDetail.d.ts.map +1 -1
  3. package/dist/components/data/crud-detail/CrudDetail.js +62 -41
  4. package/dist/components/data/crud-detail/CrudDetail.js.map +2 -2
  5. package/dist/components/data/crud-sheet/CrudSheet.d.ts.map +1 -1
  6. package/dist/components/data/crud-sheet/CrudSheet.js +164 -19
  7. package/dist/components/data/crud-sheet/CrudSheet.js.map +2 -2
  8. package/dist/components/data/crud-sheet/types.d.ts +9 -3
  9. package/dist/components/data/crud-sheet/types.d.ts.map +1 -1
  10. package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
  11. package/dist/components/data/sheet/DataSheet.js +3 -2
  12. package/dist/components/data/sheet/DataSheet.js.map +2 -2
  13. package/dist/components/form-control/checkbox/Checkbox.d.ts.map +1 -1
  14. package/dist/components/form-control/checkbox/Checkbox.js +10 -10
  15. package/dist/components/form-control/checkbox/Checkbox.js.map +2 -2
  16. package/dist/components/form-control/checkbox/Checkbox.styles.d.ts.map +1 -1
  17. package/dist/components/form-control/checkbox/Checkbox.styles.js +2 -2
  18. package/dist/components/form-control/checkbox/Checkbox.styles.js.map +1 -1
  19. package/dist/components/form-control/checkbox/Radio.d.ts.map +1 -1
  20. package/dist/components/form-control/checkbox/Radio.js +13 -13
  21. package/dist/components/form-control/checkbox/Radio.js.map +2 -2
  22. package/dist/components/form-control/data-select-button/DataSelectButton.d.ts +38 -0
  23. package/dist/components/form-control/data-select-button/DataSelectButton.d.ts.map +1 -0
  24. package/dist/components/form-control/data-select-button/DataSelectButton.js +184 -0
  25. package/dist/components/form-control/data-select-button/DataSelectButton.js.map +6 -0
  26. package/dist/components/form-control/select/Select.d.ts +7 -3
  27. package/dist/components/form-control/select/Select.d.ts.map +1 -1
  28. package/dist/components/form-control/select/Select.js +146 -45
  29. package/dist/components/form-control/select/Select.js.map +2 -2
  30. package/dist/components/form-control/select-list/SelectList.d.ts +54 -0
  31. package/dist/components/form-control/select-list/SelectList.d.ts.map +1 -0
  32. package/dist/components/form-control/select-list/SelectList.js +280 -0
  33. package/dist/components/form-control/select-list/SelectList.js.map +6 -0
  34. package/dist/components/form-control/select-list/SelectListContext.d.ts +13 -0
  35. package/dist/components/form-control/select-list/SelectListContext.d.ts.map +1 -0
  36. package/dist/components/form-control/select-list/SelectListContext.js +14 -0
  37. package/dist/components/form-control/select-list/SelectListContext.js.map +6 -0
  38. package/dist/components/form-control/shared-data/SharedDataSelect.d.ts +32 -0
  39. package/dist/components/form-control/shared-data/SharedDataSelect.d.ts.map +1 -0
  40. package/dist/components/form-control/shared-data/SharedDataSelect.js +74 -0
  41. package/dist/components/form-control/shared-data/SharedDataSelect.js.map +6 -0
  42. package/dist/components/form-control/shared-data/SharedDataSelectButton.d.ts +29 -0
  43. package/dist/components/form-control/shared-data/SharedDataSelectButton.d.ts.map +1 -0
  44. package/dist/components/form-control/shared-data/SharedDataSelectButton.js +17 -0
  45. package/dist/components/form-control/shared-data/SharedDataSelectButton.js.map +6 -0
  46. package/dist/components/form-control/shared-data/SharedDataSelectList.d.ts +29 -0
  47. package/dist/components/form-control/shared-data/SharedDataSelectList.d.ts.map +1 -0
  48. package/dist/components/form-control/shared-data/SharedDataSelectList.js +80 -0
  49. package/dist/components/form-control/shared-data/SharedDataSelectList.js.map +6 -0
  50. package/dist/features/address/AddressSearch.d.ts +8 -0
  51. package/dist/features/address/AddressSearch.d.ts.map +1 -0
  52. package/dist/features/address/AddressSearch.js +72 -0
  53. package/dist/features/address/AddressSearch.js.map +6 -0
  54. package/dist/index.d.ts +6 -0
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +6 -0
  57. package/dist/index.js.map +1 -1
  58. package/dist/providers/shared-data/SharedDataContext.d.ts +14 -0
  59. package/dist/providers/shared-data/SharedDataContext.d.ts.map +1 -1
  60. package/dist/providers/shared-data/SharedDataContext.js.map +1 -1
  61. package/dist/providers/shared-data/SharedDataProvider.d.ts.map +1 -1
  62. package/dist/providers/shared-data/SharedDataProvider.js +5 -1
  63. package/dist/providers/shared-data/SharedDataProvider.js.map +2 -2
  64. package/docs/data-components.md +15 -4
  65. package/docs/form-controls.md +257 -0
  66. package/docs/hooks.md +30 -0
  67. package/docs/providers.md +7 -0
  68. package/package.json +3 -3
  69. package/src/components/data/crud-detail/CrudDetail.tsx +51 -26
  70. package/src/components/data/crud-sheet/CrudSheet.tsx +157 -20
  71. package/src/components/data/crud-sheet/types.ts +13 -3
  72. package/src/components/data/sheet/DataSheet.tsx +6 -7
  73. package/src/components/form-control/checkbox/Checkbox.styles.ts +2 -2
  74. package/src/components/form-control/checkbox/Checkbox.tsx +18 -20
  75. package/src/components/form-control/checkbox/Radio.tsx +18 -20
  76. package/src/components/form-control/data-select-button/DataSelectButton.tsx +279 -0
  77. package/src/components/form-control/select/Select.tsx +192 -36
  78. package/src/components/form-control/select-list/SelectList.tsx +385 -0
  79. package/src/components/form-control/select-list/SelectListContext.ts +23 -0
  80. package/src/components/form-control/shared-data/SharedDataSelect.tsx +101 -0
  81. package/src/components/form-control/shared-data/SharedDataSelectButton.tsx +47 -0
  82. package/src/components/form-control/shared-data/SharedDataSelectList.tsx +85 -0
  83. package/src/features/address/AddressSearch.tsx +75 -0
  84. package/src/index.ts +18 -0
  85. package/src/providers/shared-data/SharedDataContext.ts +14 -0
  86. package/src/providers/shared-data/SharedDataProvider.tsx +4 -0
package/README.md CHANGED
@@ -127,6 +127,11 @@ import "@simplysm/solid/tailwind.css";
127
127
  - [`DateRangePicker`](docs/form-controls.md#daterangepicker) - Date range input with period type selection (day/month/range)
128
128
  - [`Textarea`](docs/form-controls.md#textarea) - Multi-line text input with auto-height and IME support
129
129
  - [`Select`](docs/form-controls.md#select) - Dropdown selection with single/multiple, hierarchical items, and compound components
130
+ - [`SelectList`](docs/form-controls.md#selectlist) - List-style single selection with search, pagination, and slot customization
131
+ - [`DataSelectButton`](docs/form-controls.md#dataselectbutton) - Modal-based selection button with key-based loading
132
+ - [`SharedDataSelect`](docs/form-controls.md#shareddataselect) - SharedData-connected Select wrapper
133
+ - [`SharedDataSelectButton`](docs/form-controls.md#shareddataselectbutton) - SharedData-connected DataSelectButton wrapper
134
+ - [`SharedDataSelectList`](docs/form-controls.md#shareddataselectlist) - SharedData-connected SelectList wrapper
130
135
  - [`Combobox`](docs/form-controls.md#combobox) - Autocomplete with async search and debouncing
131
136
  - [`Checkbox`](docs/form-controls.md#checkbox--radio) / [`Radio`](docs/form-controls.md#checkbox--radio) - Checkbox and radio button
132
137
  - [`CheckboxGroup`](docs/form-controls.md#checkboxgroup--radiogroup) / [`RadioGroup`](docs/form-controls.md#checkboxgroup--radiogroup) - Group components for multiple/single selection
@@ -198,6 +203,7 @@ import "@simplysm/solid/tailwind.css";
198
203
  - [`createControllableStore`](docs/hooks.md#createcontrollablestore) - Controlled/Uncontrolled store pattern (for objects/arrays)
199
204
  - [`createMountTransition`](docs/hooks.md#createmounttransition) - Mount/unmount CSS animation hook
200
205
  - [`createIMEHandler`](docs/hooks.md#createimehandler) - IME composition delay handler
206
+ - [`createSlotSignal`](docs/hooks.md#createslotsignal) - Slot registration signal for compound components
201
207
  - [`createTopbarActions`](docs/layout.md#topbar-actions-slot) - Register actions in nearest Topbar.Container scope
202
208
  - [`useTopbarActionsAccessor`](docs/layout.md#topbar-actions-slot) - Direct access to topbar actions accessor
203
209
  - [`useRouterLink`](docs/hooks.md#userouterlink) - Navigation with Ctrl/Shift+click support
@@ -1 +1 @@
1
- {"version":3,"file":"CrudDetail.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\data\\crud-detail\\CrudDetail.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,GAAG,EAKT,MAAM,UAAU,CAAC;AAoBlB,OAAO,EAAE,eAAe,EAAwB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAyB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAwB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAKV,eAAe,EAEhB,MAAM,SAAS,CAAC;AAEjB,UAAU,mBAAmB;IAC3B,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;IACnE,KAAK,EAAE,OAAO,eAAe,CAAC;IAC9B,MAAM,EAAE,OAAO,gBAAgB,CAAC;IAChC,KAAK,EAAE,OAAO,eAAe,CAAC;CAC/B;AA6SD,eAAO,MAAM,UAAU,EAAgC,mBAAmB,CAAC"}
1
+ {"version":3,"file":"CrudDetail.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\data\\crud-detail\\CrudDetail.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,GAAG,EAKT,MAAM,UAAU,CAAC;AAoBlB,OAAO,EAAE,eAAe,EAAwB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAyB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAwB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAKV,eAAe,EAEhB,MAAM,SAAS,CAAC;AAEjB,UAAU,mBAAmB;IAC3B,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;IACnE,KAAK,EAAE,OAAO,eAAe,CAAC;IAC9B,MAAM,EAAE,OAAO,gBAAgB,CAAC;IAChC,KAAK,EAAE,OAAO,eAAe,CAAC;CAC/B;AAsUD,eAAO,MAAM,UAAU,EAAgC,mBAAmB,CAAC"}
@@ -142,6 +142,24 @@ const CrudDetailBase = (props) => {
142
142
  }
143
143
  });
144
144
  }
145
+ }), _$createComponent(Show, {
146
+ get when() {
147
+ return _$memo(() => !!(canEdit() && local.toggleDelete && info() && !info().isNew))() && (local.deletable ?? true);
148
+ },
149
+ children: (_) => _$createComponent(Button, {
150
+ size: "lg",
151
+ variant: "ghost",
152
+ theme: "danger",
153
+ onClick: () => void handleToggleDelete(),
154
+ get children() {
155
+ return [_$createComponent(Icon, {
156
+ get icon() {
157
+ return info().isDeleted ? IconTrashOff : IconTrash;
158
+ },
159
+ "class": "mr-1"
160
+ }), _$memo(() => info().isDeleted ? "\uBCF5\uAD6C" : "\uC0AD\uC81C")];
161
+ }
162
+ })
145
163
  }), _$createComponent(Button, {
146
164
  size: "lg",
147
165
  variant: "ghost",
@@ -205,60 +223,63 @@ const CrudDetailBase = (props) => {
205
223
  get children() {
206
224
  return [_$createComponent(Show, {
207
225
  get when() {
208
- return !isModal && canEdit();
226
+ return !isModal && !topbarCtx || defs().tools;
209
227
  },
210
228
  get children() {
211
229
  var _el$ = _tmpl$();
212
230
  _$insert(_el$, _$createComponent(Show, {
213
- get when() {
214
- return local.submit;
215
- },
231
+ when: !topbarCtx && !isModal,
216
232
  get children() {
217
- return _$createComponent(Button, {
233
+ return [_$createComponent(Show, {
234
+ get when() {
235
+ return _$memo(() => !!canEdit())() && local.submit;
236
+ },
237
+ get children() {
238
+ return _$createComponent(Button, {
239
+ size: "sm",
240
+ theme: "primary",
241
+ variant: "ghost",
242
+ onClick: () => formRef == null ? void 0 : formRef.requestSubmit(),
243
+ get children() {
244
+ return [_$createComponent(Icon, {
245
+ icon: IconDeviceFloppy,
246
+ "class": "mr-1"
247
+ }), "\uC800\uC7A5"];
248
+ }
249
+ });
250
+ }
251
+ }), _$createComponent(Show, {
252
+ get when() {
253
+ return _$memo(() => !!(canEdit() && local.toggleDelete && info() && !info().isNew))() && (local.deletable ?? true);
254
+ },
255
+ children: (_) => _$createComponent(Button, {
256
+ size: "sm",
257
+ theme: "danger",
258
+ variant: "ghost",
259
+ onClick: () => void handleToggleDelete(),
260
+ get children() {
261
+ return [_$createComponent(Icon, {
262
+ get icon() {
263
+ return info().isDeleted ? IconTrashOff : IconTrash;
264
+ },
265
+ "class": "mr-1"
266
+ }), _$memo(() => info().isDeleted ? "\uBCF5\uAD6C" : "\uC0AD\uC81C")];
267
+ }
268
+ })
269
+ }), _$createComponent(Button, {
218
270
  size: "sm",
219
- theme: "primary",
271
+ theme: "info",
220
272
  variant: "ghost",
221
- onClick: () => formRef == null ? void 0 : formRef.requestSubmit(),
273
+ onClick: () => void handleRefresh(),
222
274
  get children() {
223
275
  return [_$createComponent(Icon, {
224
- icon: IconDeviceFloppy,
276
+ icon: IconRefresh,
225
277
  "class": "mr-1"
226
- }), "\uC800\uC7A5"];
278
+ }), "\uC0C8\uB85C\uACE0\uCE68"];
227
279
  }
228
- });
280
+ })];
229
281
  }
230
282
  }), null);
231
- _$insert(_el$, _$createComponent(Button, {
232
- size: "sm",
233
- theme: "info",
234
- variant: "ghost",
235
- onClick: () => void handleRefresh(),
236
- get children() {
237
- return [_$createComponent(Icon, {
238
- icon: IconRefresh,
239
- "class": "mr-1"
240
- }), "\uC0C8\uB85C\uACE0\uCE68"];
241
- }
242
- }), null);
243
- _$insert(_el$, _$createComponent(Show, {
244
- get when() {
245
- return _$memo(() => !!(local.toggleDelete && info() && !info().isNew))() && (local.deletable ?? true);
246
- },
247
- children: (_) => _$createComponent(Button, {
248
- size: "sm",
249
- theme: "danger",
250
- variant: "ghost",
251
- onClick: () => void handleToggleDelete(),
252
- get children() {
253
- return [_$createComponent(Icon, {
254
- get icon() {
255
- return info().isDeleted ? IconTrashOff : IconTrash;
256
- },
257
- "class": "mr-1"
258
- }), _$memo(() => info().isDeleted ? "\uBCF5\uAD6C" : "\uC0AD\uC81C")];
259
- }
260
- })
261
- }), null);
262
283
  _$insert(_el$, _$createComponent(Show, {
263
284
  get when() {
264
285
  return defs().tools;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/data/crud-detail/CrudDetail.tsx"],
4
- "mappings": "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",
5
- "names": ["children", "createMemo", "createSignal", "onMount", "Show", "splitProps", "useContext", "reconcile", "unwrap", "createControllableStore", "objClone", "objEqual", "BusyContainer", "useNotification", "Button", "Icon", "createTopbarActions", "TopbarContext", "useDialogInstance", "Dialog", "createEventListener", "clsx", "IconCheck", "IconDeviceFloppy", "IconRefresh", "IconTrash", "IconTrashOff", "CrudDetailTools", "isCrudDetailToolsDef", "CrudDetailBefore", "isCrudDetailBeforeDef", "CrudDetailAfter", "isCrudDetailAfterDef", "CrudDetailBase", "props", "local", "_rest", "noti", "topbarCtx", "dialogInstance", "isModal", "undefined", "canEdit", "editable", "data", "setData", "value", "onChange", "onDataChange", "originalData", "info", "setInfo", "busyCount", "setBusyCount", "ready", "setReady", "formRef", "doLoad", "c", "result", "load", "err", "error", "hasChanges", "handleRefresh", "confirm", "handleSave", "submit", "currentInfo", "isNew", "success", "close", "handleFormSubmit", "e", "preventDefault", "handleToggleDelete", "toggleDelete", "del", "isDeleted", "document", "ctrlKey", "key", "requestSubmit", "altKey", "_$createComponent", "when", "_$memo", "size", "variant", "theme", "onClick", "icon", "ctx", "busy", "save", "refresh", "rendered", "defs", "arr", "toArray", "tools", "find", "before", "after", "formContent", "filter", "el", "Action", "class", "_el$", "_tmpl$", "_$insert", "deletable", "_", "toolsDef", "beforeDef", "_el$2", "_tmpl$2", "addEventListener", "_ref$", "_$use", "lastModifiedAt", "_el$5", "_tmpl$4", "_el$6", "firstChild", "toFormatString", "lastModifiedBy", "afterDef", "_el$3", "_tmpl$3", "_el$4", "CrudDetail", "Tools", "Before", "After"]
4
+ "mappings": "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",
5
+ "names": ["children", "createMemo", "createSignal", "onMount", "Show", "splitProps", "useContext", "reconcile", "unwrap", "createControllableStore", "objClone", "objEqual", "BusyContainer", "useNotification", "Button", "Icon", "createTopbarActions", "TopbarContext", "useDialogInstance", "Dialog", "createEventListener", "clsx", "IconCheck", "IconDeviceFloppy", "IconRefresh", "IconTrash", "IconTrashOff", "CrudDetailTools", "isCrudDetailToolsDef", "CrudDetailBefore", "isCrudDetailBeforeDef", "CrudDetailAfter", "isCrudDetailAfterDef", "CrudDetailBase", "props", "local", "_rest", "noti", "topbarCtx", "dialogInstance", "isModal", "undefined", "canEdit", "editable", "data", "setData", "value", "onChange", "onDataChange", "originalData", "info", "setInfo", "busyCount", "setBusyCount", "ready", "setReady", "formRef", "doLoad", "c", "result", "load", "err", "error", "hasChanges", "handleRefresh", "confirm", "handleSave", "submit", "currentInfo", "isNew", "success", "close", "handleFormSubmit", "e", "preventDefault", "handleToggleDelete", "toggleDelete", "del", "isDeleted", "document", "ctrlKey", "key", "requestSubmit", "altKey", "_$createComponent", "when", "_$memo", "size", "variant", "theme", "onClick", "icon", "deletable", "_", "ctx", "busy", "save", "refresh", "rendered", "defs", "arr", "toArray", "tools", "find", "before", "after", "formContent", "filter", "el", "Action", "class", "_el$", "_tmpl$", "_$insert", "toolsDef", "beforeDef", "_el$2", "_tmpl$2", "addEventListener", "_ref$", "_$use", "lastModifiedAt", "_el$5", "_tmpl$4", "_el$6", "firstChild", "toFormatString", "lastModifiedBy", "afterDef", "_el$3", "_tmpl$3", "_el$4", "CrudDetail", "Tools", "Before", "After"]
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CrudSheet.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\data\\crud-sheet\\CrudSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,GAAG,EAIT,MAAM,UAAU,CAAC;AAIlB,OAAO,uBAAuB,CAAC;AA0B/B,OAAO,EAAE,eAAe,EAAwB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAwB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAwB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAKV,cAAc,EAGf,MAAM,SAAS,CAAC;AAEjB,UAAU,kBAAkB;IAC1B,CAAC,KAAK,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;IACjG,MAAM,EAAE,OAAO,eAAe,CAAC;IAC/B,MAAM,EAAE,OAAO,eAAe,CAAC;IAC/B,KAAK,EAAE,OAAO,cAAc,CAAC;IAC7B,MAAM,EAAE,OAAO,eAAe,CAAC;CAChC;AA+iBD,eAAO,MAAM,SAAS,EAA+B,kBAAkB,CAAC"}
1
+ {"version":3,"file":"CrudSheet.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\data\\crud-sheet\\CrudSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,GAAG,EAIT,MAAM,UAAU,CAAC;AAKlB,OAAO,uBAAuB,CAAC;AA2B/B,OAAO,EAAE,eAAe,EAAwB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAwB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAwB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAKV,cAAc,EAGf,MAAM,SAAS,CAAC;AAEjB,UAAU,kBAAkB;IAC1B,CAAC,KAAK,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;IACjG,MAAM,EAAE,OAAO,eAAe,CAAC;IAC/B,MAAM,EAAE,OAAO,eAAe,CAAC;IAC/B,KAAK,EAAE,OAAO,cAAc,CAAC;IAC7B,MAAM,EAAE,OAAO,eAAe,CAAC;CAChC;AAsrBD,eAAO,MAAM,SAAS,EAA+B,kBAAkB,CAAC"}
@@ -4,11 +4,11 @@ import { use as _$use } from "solid-js/web";
4
4
  import { insert as _$insert } from "solid-js/web";
5
5
  import { createComponent as _$createComponent } from "solid-js/web";
6
6
  import { memo as _$memo } from "solid-js/web";
7
- var _tmpl$ = /* @__PURE__ */ _$template(`<button class="flex items-center px-2 text-base-400 hover:text-base-600">`), _tmpl$2 = /* @__PURE__ */ _$template(`<div class="flex gap-2 p-2 pb-0">`), _tmpl$3 = /* @__PURE__ */ _$template(`<form class="flex-1 overflow-hidden p-2 pt-1">`), _tmpl$4 = /* @__PURE__ */ _$template(`<div class="flex gap-2 border-t p-2"><div class=flex-1>`), _tmpl$5 = /* @__PURE__ */ _$template(`<form class=p-2>`), _tmpl$6 = /* @__PURE__ */ _$template(`<div class="flex items-center justify-center px-1 py-0.5">`), _tmpl$7 = /* @__PURE__ */ _$template(`<div class=p-1>`), _tmpl$8 = /* @__PURE__ */ _$template(`<div class=flex-1>`);
7
+ var _tmpl$ = /* @__PURE__ */ _$template(`<button class="flex items-center px-2 text-base-400 hover:text-base-600">`), _tmpl$2 = /* @__PURE__ */ _$template(`<div class="flex gap-2 p-2 pb-0">`), _tmpl$3 = /* @__PURE__ */ _$template(`<form class="flex-1 overflow-hidden p-2 pt-1">`), _tmpl$4 = /* @__PURE__ */ _$template(`<div class="flex gap-2 border-t p-2"><div class=flex-1>`), _tmpl$5 = /* @__PURE__ */ _$template(`<form class=p-2>`), _tmpl$6 = /* @__PURE__ */ _$template(`<div class="flex items-center justify-center px-1 py-0.5">`), _tmpl$7 = /* @__PURE__ */ _$template(`<div class=p-1>`), _tmpl$8 = /* @__PURE__ */ _$template(`<div class=flex-1>`), _tmpl$9 = /* @__PURE__ */ _$template(`<div class="px-2 py-1 text-center">`);
8
8
  import { children, createEffect, createMemo, createSignal, For, Show, splitProps, useContext } from "solid-js";
9
9
  import { createStore, produce, reconcile } from "solid-js/store";
10
10
  import { createControllableStore } from "../../../hooks/createControllableStore.js";
11
- import { objClone } from "@simplysm/core-common";
11
+ import { objClone, objGetChainValue } from "@simplysm/core-common";
12
12
  import "@simplysm/core-common";
13
13
  import { DataSheet } from "../sheet/DataSheet.js";
14
14
  import { DataSheetColumn } from "../sheet/DataSheetColumn.js";
@@ -22,6 +22,7 @@ import { useDialogInstance } from "../../disclosure/DialogInstanceContext.js";
22
22
  import { Dialog } from "../../disclosure/Dialog.js";
23
23
  import { Link } from "../../display/Link.js";
24
24
  import { createEventListener } from "@solid-primitives/event-listener";
25
+ import { useBeforeLeave } from "@solidjs/router";
25
26
  import clsx from "clsx";
26
27
  import { IconDeviceFloppy, IconExternalLink, IconFileExcel, IconPlus, IconRefresh, IconSearch, IconTrash, IconTrashOff, IconUpload } from "@tabler/icons-solidjs";
27
28
  import { CrudSheetColumn, isCrudSheetColumnDef } from "./CrudSheetColumn.js";
@@ -29,7 +30,7 @@ import { CrudSheetFilter, isCrudSheetFilterDef } from "./CrudSheetFilter.js";
29
30
  import { CrudSheetTools, isCrudSheetToolsDef } from "./CrudSheetTools.js";
30
31
  import { CrudSheetHeader, isCrudSheetHeaderDef } from "./CrudSheetHeader.js";
31
32
  const CrudSheetBase = (props) => {
32
- const [local, _rest] = splitProps(props, ["search", "getItemKey", "persistKey", "itemsPerPage", "editable", "itemEditable", "itemDeletable", "itemDeleted", "filterInitial", "items", "onItemsChange", "inlineEdit", "modalEdit", "excel", "selectMode", "onSelect", "hideAutoTools", "class", "children"]);
33
+ const [local, _rest] = splitProps(props, ["search", "getItemKey", "persistKey", "editable", "itemEditable", "itemDeletable", "itemDeleted", "isItemSelectable", "lastModifiedAtProp", "lastModifiedByProp", "onSubmitted", "filterInitial", "items", "onItemsChange", "inlineEdit", "modalEdit", "excel", "selectMode", "onSelect", "hideAutoTools", "class", "children"]);
33
34
  const noti = useNotification();
34
35
  const topbarCtx = useContext(TopbarContext);
35
36
  const dialogInstance = useDialogInstance();
@@ -59,10 +60,26 @@ const CrudSheetBase = (props) => {
59
60
  const [busyCount, setBusyCount] = createSignal(0);
60
61
  const [ready, setReady] = createSignal(false);
61
62
  const [selectedItems, setSelectedItems] = createSignal([]);
63
+ const [selectedKeys, setSelectedKeys] = createSignal(/* @__PURE__ */ new Set());
62
64
  let formRef;
63
65
  createEffect(() => {
64
66
  void doRefresh();
65
67
  });
68
+ createEffect(() => {
69
+ const currentItems = items;
70
+ const keys = selectedKeys();
71
+ if (keys.size === 0) {
72
+ if (selectedItems().length > 0) {
73
+ setSelectedItems([]);
74
+ }
75
+ return;
76
+ }
77
+ const restored = currentItems.filter((item) => {
78
+ const key = local.getItemKey(item);
79
+ return key != null && keys.has(key);
80
+ });
81
+ setSelectedItems(restored);
82
+ });
66
83
  async function doRefresh() {
67
84
  setBusyCount((c) => c + 1);
68
85
  try {
@@ -74,23 +91,30 @@ const CrudSheetBase = (props) => {
74
91
  setReady(true);
75
92
  }
76
93
  async function refresh() {
77
- const usePagination = local.itemsPerPage != null;
78
- const result = await local.search(lastFilter(), usePagination ? page() : 0, sorts());
94
+ const result = await local.search(lastFilter(), page(), sorts());
79
95
  setItems(reconcile(result.items));
80
96
  originalItems = objClone(result.items);
81
97
  setTotalPageCount(result.pageCount ?? 0);
82
98
  }
83
99
  function getItemDiffs() {
84
- return items.oneWayDiffs(originalItems, (item) => {
85
- return local.getItemKey(item);
100
+ var _a;
101
+ return items.oneWayDiffs(originalItems, (item) => local.getItemKey(item), {
102
+ excludes: (_a = local.inlineEdit) == null ? void 0 : _a.diffsExcludes
86
103
  });
87
104
  }
105
+ function checkIgnoreChanges() {
106
+ if (!local.inlineEdit) return true;
107
+ if (getItemDiffs().length === 0) return true;
108
+ return confirm("\uBCC0\uACBD\uC0AC\uD56D\uC774 \uC788\uC2B5\uB2C8\uB2E4. \uBB34\uC2DC\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?");
109
+ }
88
110
  function handleFilterSubmit(e) {
89
111
  e.preventDefault();
112
+ if (!checkIgnoreChanges()) return;
90
113
  setPage(1);
91
114
  setLastFilter(() => objClone(filter));
92
115
  }
93
116
  async function handleRefresh() {
117
+ if (!checkIgnoreChanges()) return;
94
118
  await doRefresh();
95
119
  }
96
120
  function handleAddRow() {
@@ -113,6 +137,7 @@ const CrudSheetBase = (props) => {
113
137
  setItems(index, dp, !item[dp]);
114
138
  }
115
139
  async function handleSave() {
140
+ var _a;
116
141
  if (busyCount() > 0) return;
117
142
  if (!canEdit()) return;
118
143
  if (!local.inlineEdit) return;
@@ -126,6 +151,7 @@ const CrudSheetBase = (props) => {
126
151
  await local.inlineEdit.submit(diffs);
127
152
  noti.success("\uC800\uC7A5 \uC644\uB8CC", "\uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4.");
128
153
  await refresh();
154
+ (_a = local.onSubmitted) == null ? void 0 : _a.call(local);
129
155
  } catch (err) {
130
156
  noti.error(err, "\uC800\uC7A5 \uC2E4\uD328");
131
157
  }
@@ -161,11 +187,25 @@ const CrudSheetBase = (props) => {
161
187
  }
162
188
  setBusyCount((c) => c - 1);
163
189
  }
190
+ async function handleRestoreItems() {
191
+ var _a;
192
+ if (!((_a = local.modalEdit) == null ? void 0 : _a.restoreItems)) return;
193
+ const result = await local.modalEdit.restoreItems(selectedItems());
194
+ if (!result) return;
195
+ setBusyCount((c) => c + 1);
196
+ try {
197
+ await refresh();
198
+ noti.success("\uBCF5\uAD6C \uC644\uB8CC", "\uBCF5\uAD6C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.");
199
+ } catch (err) {
200
+ noti.error(err, "\uBCF5\uAD6C \uC2E4\uD328");
201
+ }
202
+ setBusyCount((c) => c - 1);
203
+ }
164
204
  async function handleExcelDownload() {
165
205
  if (!local.excel) return;
166
206
  setBusyCount((c) => c + 1);
167
207
  try {
168
- const result = await local.search(lastFilter(), 0, sorts());
208
+ const result = await local.search(lastFilter(), void 0, sorts());
169
209
  await local.excel.download(result.items);
170
210
  } catch (err) {
171
211
  noti.error(err, "\uC5D1\uC140 \uB2E4\uC6B4\uB85C\uB4DC \uC2E4\uD328");
@@ -194,15 +234,44 @@ const CrudSheetBase = (props) => {
194
234
  };
195
235
  input.click();
196
236
  }
237
+ function handleSelectedItemsChange(newSelectedItems) {
238
+ const currentItems = items;
239
+ const currentKeys = /* @__PURE__ */ new Set();
240
+ for (const item of currentItems) {
241
+ const key = local.getItemKey(item);
242
+ if (key != null) currentKeys.add(key);
243
+ }
244
+ const newSelectedKeys = /* @__PURE__ */ new Set();
245
+ for (const item of newSelectedItems) {
246
+ const key = local.getItemKey(item);
247
+ if (key != null) newSelectedKeys.add(key);
248
+ }
249
+ const merged = /* @__PURE__ */ new Set();
250
+ for (const key of selectedKeys()) {
251
+ if (!currentKeys.has(key)) {
252
+ merged.add(key);
253
+ }
254
+ }
255
+ for (const key of newSelectedKeys) {
256
+ merged.add(key);
257
+ }
258
+ setSelectedKeys(merged);
259
+ setSelectedItems(newSelectedItems);
260
+ }
261
+ function clearSelection() {
262
+ setSelectedKeys(/* @__PURE__ */ new Set());
263
+ setSelectedItems([]);
264
+ }
197
265
  function handleSelectConfirm() {
198
266
  var _a;
199
267
  (_a = local.onSelect) == null ? void 0 : _a.call(local, {
200
268
  items: selectedItems(),
201
- keys: selectedItems().map((item) => local.getItemKey(item)).filter((k) => k != null)
269
+ keys: [...selectedKeys()]
202
270
  });
203
271
  }
204
272
  function handleSelectCancel() {
205
273
  var _a;
274
+ clearSelection();
206
275
  (_a = local.onSelect) == null ? void 0 : _a.call(local, {
207
276
  items: [],
208
277
  keys: []
@@ -215,9 +284,20 @@ const CrudSheetBase = (props) => {
215
284
  }
216
285
  if (e.ctrlKey && e.altKey && e.key === "l") {
217
286
  e.preventDefault();
287
+ if (!checkIgnoreChanges()) return;
218
288
  await doRefresh();
219
289
  }
220
290
  });
291
+ if (!isModal && local.inlineEdit) {
292
+ try {
293
+ useBeforeLeave((e) => {
294
+ if (!checkIgnoreChanges()) {
295
+ e.preventDefault();
296
+ }
297
+ });
298
+ } catch {
299
+ }
300
+ }
221
301
  if (topbarCtx) {
222
302
  createTopbarActions(() => [_$createComponent(Show, {
223
303
  get when() {
@@ -266,7 +346,8 @@ const CrudSheetBase = (props) => {
266
346
  },
267
347
  addItem: handleAddRow,
268
348
  setPage,
269
- setSorts
349
+ setSorts,
350
+ clearSelection
270
351
  };
271
352
  const deleteProp = () => {
272
353
  var _a;
@@ -432,8 +513,8 @@ const CrudSheetBase = (props) => {
432
513
  onClick: handleDeleteItems,
433
514
  get disabled() {
434
515
  return selectedItems().length === 0 || !selectedItems().some((item) => {
435
- var _a;
436
- return ((_a = local.itemDeletable) == null ? void 0 : _a.call(local, item)) ?? true;
516
+ var _a, _b;
517
+ return (((_a = local.itemDeletable) == null ? void 0 : _a.call(local, item)) ?? true) && !(((_b = local.itemDeleted) == null ? void 0 : _b.call(local, item)) ?? false);
437
518
  });
438
519
  },
439
520
  get children() {
@@ -444,6 +525,31 @@ const CrudSheetBase = (props) => {
444
525
  }
445
526
  });
446
527
  }
528
+ }), _$createComponent(Show, {
529
+ get when() {
530
+ var _a;
531
+ return _$memo(() => !!canEdit())() && ((_a = local.modalEdit) == null ? void 0 : _a.restoreItems);
532
+ },
533
+ get children() {
534
+ return _$createComponent(Button, {
535
+ size: "sm",
536
+ theme: "warning",
537
+ variant: "ghost",
538
+ onClick: handleRestoreItems,
539
+ get disabled() {
540
+ return selectedItems().length === 0 || !selectedItems().some((item) => {
541
+ var _a;
542
+ return ((_a = local.itemDeleted) == null ? void 0 : _a.call(local, item)) ?? false;
543
+ });
544
+ },
545
+ get children() {
546
+ return [_$createComponent(Icon, {
547
+ icon: IconTrashOff,
548
+ "class": "mr-1"
549
+ }), "\uC120\uD0DD \uBCF5\uAD6C"];
550
+ }
551
+ });
552
+ }
447
553
  }), _$createComponent(Show, {
448
554
  get when() {
449
555
  var _a;
@@ -504,27 +610,27 @@ const CrudSheetBase = (props) => {
504
610
  return _$memo(() => local.persistKey != null)() ? `${local.persistKey}-sheet` : void 0;
505
611
  },
506
612
  get page() {
507
- return _$memo(() => local.itemsPerPage != null)() ? page() : void 0;
613
+ return _$memo(() => totalPageCount() > 0)() ? page() : void 0;
508
614
  },
509
615
  onPageChange: setPage,
510
616
  get totalPageCount() {
511
617
  return totalPageCount();
512
618
  },
513
- get itemsPerPage() {
514
- return local.itemsPerPage;
515
- },
516
619
  get sorts() {
517
620
  return sorts();
518
621
  },
519
622
  onSortsChange: setSorts,
623
+ get isItemSelectable() {
624
+ return local.isItemSelectable;
625
+ },
520
626
  get selectMode() {
521
- var _a;
522
- return _$memo(() => !!isSelectMode())() ? local.selectMode : ((_a = local.modalEdit) == null ? void 0 : _a.deleteItems) != null ? "multiple" : void 0;
627
+ var _a, _b;
628
+ return _$memo(() => !!isSelectMode())() ? local.selectMode : ((_a = local.modalEdit) == null ? void 0 : _a.deleteItems) != null || ((_b = local.modalEdit) == null ? void 0 : _b.restoreItems) != null ? "multiple" : void 0;
523
629
  },
524
630
  get selectedItems() {
525
631
  return selectedItems();
526
632
  },
527
- onSelectedItemsChange: setSelectedItems,
633
+ onSelectedItemsChange: handleSelectedItemsChange,
528
634
  get autoSelect() {
529
635
  return isSelectMode() && local.selectMode === "single" ? "click" : void 0;
530
636
  },
@@ -647,6 +753,45 @@ const CrudSheetBase = (props) => {
647
753
  return col.cell(crudCtx);
648
754
  }
649
755
  })
756
+ }), _$createComponent(Show, {
757
+ get when() {
758
+ return local.lastModifiedAtProp;
759
+ },
760
+ get children() {
761
+ return _$createComponent(DataSheetColumn, {
762
+ get key() {
763
+ return local.lastModifiedAtProp;
764
+ },
765
+ header: "\uC218\uC815\uC77C\uC2DC",
766
+ hidden: true,
767
+ children: (dsCtx) => (() => {
768
+ var _el$1 = _tmpl$9();
769
+ _$insert(_el$1, () => {
770
+ var _a;
771
+ return (_a = objGetChainValue(dsCtx.item, local.lastModifiedAtProp, true)) == null ? void 0 : _a.toFormatString("yyyy-MM-dd HH:mm");
772
+ });
773
+ return _el$1;
774
+ })()
775
+ });
776
+ }
777
+ }), _$createComponent(Show, {
778
+ get when() {
779
+ return local.lastModifiedByProp;
780
+ },
781
+ get children() {
782
+ return _$createComponent(DataSheetColumn, {
783
+ get key() {
784
+ return local.lastModifiedByProp;
785
+ },
786
+ header: "\uC218\uC815\uC790",
787
+ hidden: true,
788
+ children: (dsCtx) => (() => {
789
+ var _el$10 = _tmpl$9();
790
+ _$insert(_el$10, () => objGetChainValue(dsCtx.item, local.lastModifiedByProp, true));
791
+ return _el$10;
792
+ })()
793
+ });
794
+ }
650
795
  })];
651
796
  }
652
797
  }));