@simplysm/solid 13.0.62 → 13.0.65
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 +6 -0
- package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
- package/dist/components/data/sheet/DataSheet.js +3 -2
- package/dist/components/data/sheet/DataSheet.js.map +2 -2
- package/dist/components/features/address/AddressSearch.d.ts +8 -0
- package/dist/components/features/address/AddressSearch.d.ts.map +1 -0
- package/dist/components/features/address/AddressSearch.js +72 -0
- package/dist/components/features/address/AddressSearch.js.map +6 -0
- package/dist/components/features/crud-detail/CrudDetail.d.ts.map +1 -0
- package/dist/components/{data → features}/crud-detail/CrudDetail.js +62 -41
- package/dist/components/features/crud-detail/CrudDetail.js.map +6 -0
- package/dist/components/features/crud-detail/CrudDetailAfter.d.ts.map +1 -0
- package/dist/components/{data → features}/crud-detail/CrudDetailAfter.js.map +1 -1
- package/dist/components/features/crud-detail/CrudDetailBefore.d.ts.map +1 -0
- package/dist/components/{data → features}/crud-detail/CrudDetailBefore.js.map +1 -1
- package/dist/components/features/crud-detail/CrudDetailTools.d.ts.map +1 -0
- package/dist/components/{data → features}/crud-detail/CrudDetailTools.js.map +1 -1
- package/dist/components/features/crud-detail/types.d.ts.map +1 -0
- package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -0
- package/dist/components/{data → features}/crud-sheet/CrudSheet.js +166 -21
- package/dist/components/features/crud-sheet/CrudSheet.js.map +6 -0
- package/dist/components/features/crud-sheet/CrudSheetColumn.d.ts.map +1 -0
- package/dist/components/{data → features}/crud-sheet/CrudSheetColumn.js +1 -1
- package/dist/components/{data → features}/crud-sheet/CrudSheetColumn.js.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheetFilter.d.ts.map +1 -0
- package/dist/components/{data → features}/crud-sheet/CrudSheetFilter.js.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheetHeader.d.ts.map +1 -0
- package/dist/components/{data → features}/crud-sheet/CrudSheetHeader.js.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheetTools.d.ts.map +1 -0
- package/dist/components/{data → features}/crud-sheet/CrudSheetTools.js.map +1 -1
- package/dist/components/{data → features}/crud-sheet/types.d.ts +10 -4
- package/dist/components/features/crud-sheet/types.d.ts.map +1 -0
- package/dist/components/features/data-select-button/DataSelectButton.d.ts +38 -0
- package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -0
- package/dist/components/features/data-select-button/DataSelectButton.js +184 -0
- package/dist/components/features/data-select-button/DataSelectButton.js.map +6 -0
- package/dist/components/features/permission-table/PermissionTable.d.ts.map +1 -0
- package/dist/components/{data → features}/permission-table/PermissionTable.js +1 -1
- package/dist/components/{data → features}/permission-table/PermissionTable.js.map +1 -1
- package/dist/components/features/shared-data/SharedDataSelect.d.ts +32 -0
- package/dist/components/features/shared-data/SharedDataSelect.d.ts.map +1 -0
- package/dist/components/features/shared-data/SharedDataSelect.js +74 -0
- package/dist/components/features/shared-data/SharedDataSelect.js.map +6 -0
- package/dist/components/features/shared-data/SharedDataSelectButton.d.ts +29 -0
- package/dist/components/features/shared-data/SharedDataSelectButton.d.ts.map +1 -0
- package/dist/components/features/shared-data/SharedDataSelectButton.js +17 -0
- package/dist/components/features/shared-data/SharedDataSelectButton.js.map +6 -0
- package/dist/components/features/shared-data/SharedDataSelectList.d.ts +29 -0
- package/dist/components/features/shared-data/SharedDataSelectList.d.ts.map +1 -0
- package/dist/components/features/shared-data/SharedDataSelectList.js +80 -0
- package/dist/components/features/shared-data/SharedDataSelectList.js.map +6 -0
- package/dist/components/form-control/checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/Checkbox.js +10 -10
- package/dist/components/form-control/checkbox/Checkbox.js.map +2 -2
- package/dist/components/form-control/checkbox/Checkbox.styles.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/Checkbox.styles.js +2 -2
- package/dist/components/form-control/checkbox/Checkbox.styles.js.map +1 -1
- package/dist/components/form-control/checkbox/Radio.d.ts.map +1 -1
- package/dist/components/form-control/checkbox/Radio.js +13 -13
- package/dist/components/form-control/checkbox/Radio.js.map +2 -2
- package/dist/components/form-control/select/Select.d.ts +7 -3
- package/dist/components/form-control/select/Select.d.ts.map +1 -1
- package/dist/components/form-control/select/Select.js +146 -45
- package/dist/components/form-control/select/Select.js.map +2 -2
- package/dist/components/form-control/select-list/SelectList.d.ts +54 -0
- package/dist/components/form-control/select-list/SelectList.d.ts.map +1 -0
- package/dist/components/form-control/select-list/SelectList.js +280 -0
- package/dist/components/form-control/select-list/SelectList.js.map +6 -0
- package/dist/components/form-control/select-list/SelectListContext.d.ts +13 -0
- package/dist/components/form-control/select-list/SelectListContext.d.ts.map +1 -0
- package/dist/components/form-control/select-list/SelectListContext.js +14 -0
- package/dist/components/form-control/select-list/SelectListContext.js.map +6 -0
- package/dist/index.d.ts +11 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -5
- package/dist/index.js.map +1 -1
- package/dist/providers/ServiceClientContext.d.ts +5 -5
- package/dist/providers/ServiceClientContext.d.ts.map +1 -1
- package/dist/providers/ServiceClientProvider.d.ts.map +1 -1
- package/dist/providers/ServiceClientProvider.js +12 -8
- package/dist/providers/ServiceClientProvider.js.map +2 -2
- package/dist/providers/shared-data/SharedDataContext.d.ts +16 -2
- package/dist/providers/shared-data/SharedDataContext.d.ts.map +1 -1
- package/dist/providers/shared-data/SharedDataContext.js.map +1 -1
- package/dist/providers/shared-data/SharedDataProvider.d.ts +1 -2
- package/dist/providers/shared-data/SharedDataProvider.d.ts.map +1 -1
- package/dist/providers/shared-data/SharedDataProvider.js +27 -13
- package/dist/providers/shared-data/SharedDataProvider.js.map +2 -2
- package/docs/data-components.md +15 -4
- package/docs/form-controls.md +257 -0
- package/docs/hooks.md +30 -0
- package/docs/providers.md +7 -0
- package/package.json +5 -3
- package/src/components/data/sheet/DataSheet.tsx +6 -7
- package/src/components/features/address/AddressSearch.tsx +75 -0
- package/src/components/{data → features}/crud-detail/CrudDetail.tsx +51 -26
- package/src/components/{data → features}/crud-sheet/CrudSheet.tsx +160 -23
- package/src/components/{data → features}/crud-sheet/CrudSheetColumn.tsx +1 -1
- package/src/components/{data → features}/crud-sheet/types.ts +14 -4
- package/src/components/features/data-select-button/DataSelectButton.tsx +279 -0
- package/src/components/{data → features}/permission-table/PermissionTable.tsx +1 -1
- package/src/components/features/shared-data/SharedDataSelect.tsx +101 -0
- package/src/components/features/shared-data/SharedDataSelectButton.tsx +47 -0
- package/src/components/features/shared-data/SharedDataSelectList.tsx +85 -0
- package/src/components/form-control/checkbox/Checkbox.styles.ts +2 -2
- package/src/components/form-control/checkbox/Checkbox.tsx +18 -20
- package/src/components/form-control/checkbox/Radio.tsx +18 -20
- package/src/components/form-control/select/Select.tsx +192 -36
- package/src/components/form-control/select-list/SelectList.tsx +385 -0
- package/src/components/form-control/select-list/SelectListContext.ts +23 -0
- package/src/index.ts +29 -5
- package/src/providers/ServiceClientContext.ts +5 -5
- package/src/providers/ServiceClientProvider.tsx +17 -12
- package/src/providers/shared-data/SharedDataContext.ts +16 -2
- package/src/providers/shared-data/SharedDataProvider.tsx +33 -17
- package/dist/components/data/crud-detail/CrudDetail.d.ts.map +0 -1
- package/dist/components/data/crud-detail/CrudDetail.js.map +0 -6
- package/dist/components/data/crud-detail/CrudDetailAfter.d.ts.map +0 -1
- package/dist/components/data/crud-detail/CrudDetailBefore.d.ts.map +0 -1
- package/dist/components/data/crud-detail/CrudDetailTools.d.ts.map +0 -1
- package/dist/components/data/crud-detail/types.d.ts.map +0 -1
- package/dist/components/data/crud-sheet/CrudSheet.d.ts.map +0 -1
- package/dist/components/data/crud-sheet/CrudSheet.js.map +0 -6
- package/dist/components/data/crud-sheet/CrudSheetColumn.d.ts.map +0 -1
- package/dist/components/data/crud-sheet/CrudSheetFilter.d.ts.map +0 -1
- package/dist/components/data/crud-sheet/CrudSheetHeader.d.ts.map +0 -1
- package/dist/components/data/crud-sheet/CrudSheetTools.d.ts.map +0 -1
- package/dist/components/data/crud-sheet/types.d.ts.map +0 -1
- package/dist/components/data/permission-table/PermissionTable.d.ts.map +0 -1
- /package/dist/components/{data → features}/crud-detail/CrudDetail.d.ts +0 -0
- /package/dist/components/{data → features}/crud-detail/CrudDetailAfter.d.ts +0 -0
- /package/dist/components/{data → features}/crud-detail/CrudDetailAfter.js +0 -0
- /package/dist/components/{data → features}/crud-detail/CrudDetailBefore.d.ts +0 -0
- /package/dist/components/{data → features}/crud-detail/CrudDetailBefore.js +0 -0
- /package/dist/components/{data → features}/crud-detail/CrudDetailTools.d.ts +0 -0
- /package/dist/components/{data → features}/crud-detail/CrudDetailTools.js +0 -0
- /package/dist/components/{data → features}/crud-detail/types.d.ts +0 -0
- /package/dist/components/{data → features}/crud-detail/types.js +0 -0
- /package/dist/components/{data → features}/crud-detail/types.js.map +0 -0
- /package/dist/components/{data → features}/crud-sheet/CrudSheet.d.ts +0 -0
- /package/dist/components/{data → features}/crud-sheet/CrudSheetColumn.d.ts +0 -0
- /package/dist/components/{data → features}/crud-sheet/CrudSheetFilter.d.ts +0 -0
- /package/dist/components/{data → features}/crud-sheet/CrudSheetFilter.js +0 -0
- /package/dist/components/{data → features}/crud-sheet/CrudSheetHeader.d.ts +0 -0
- /package/dist/components/{data → features}/crud-sheet/CrudSheetHeader.js +0 -0
- /package/dist/components/{data → features}/crud-sheet/CrudSheetTools.d.ts +0 -0
- /package/dist/components/{data → features}/crud-sheet/CrudSheetTools.js +0 -0
- /package/dist/components/{data → features}/crud-sheet/types.js +0 -0
- /package/dist/components/{data → features}/crud-sheet/types.js.map +0 -0
- /package/dist/components/{data → features}/permission-table/PermissionTable.d.ts +0 -0
- /package/src/components/{data → features}/crud-detail/CrudDetailAfter.tsx +0 -0
- /package/src/components/{data → features}/crud-detail/CrudDetailBefore.tsx +0 -0
- /package/src/components/{data → features}/crud-detail/CrudDetailTools.tsx +0 -0
- /package/src/components/{data → features}/crud-detail/types.ts +0 -0
- /package/src/components/{data → features}/crud-sheet/CrudSheetFilter.tsx +0 -0
- /package/src/components/{data → features}/crud-sheet/CrudSheetHeader.tsx +0 -0
- /package/src/components/{data → features}/crud-sheet/CrudSheetTools.tsx +0 -0
|
@@ -4,14 +4,14 @@ 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
|
-
import { DataSheet } from "
|
|
14
|
-
import { DataSheetColumn } from "
|
|
13
|
+
import { DataSheet } from "../../data/sheet/DataSheet.js";
|
|
14
|
+
import { DataSheetColumn } from "../../data/sheet/DataSheetColumn.js";
|
|
15
15
|
import { BusyContainer } from "../../feedback/busy/BusyContainer.js";
|
|
16
16
|
import { useNotification } from "../../feedback/notification/NotificationContext.js";
|
|
17
17
|
import { Button } from "../../form-control/Button.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", "
|
|
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
|
|
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
|
-
|
|
85
|
-
|
|
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:
|
|
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(() =>
|
|
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:
|
|
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
|
}));
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/features/crud-sheet/CrudSheet.tsx"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["children", "createEffect", "createMemo", "createSignal", "For", "Show", "splitProps", "useContext", "createStore", "produce", "reconcile", "createControllableStore", "objClone", "objGetChainValue", "DataSheet", "DataSheetColumn", "BusyContainer", "useNotification", "Button", "Icon", "FormGroup", "createTopbarActions", "TopbarContext", "useDialogInstance", "Dialog", "Link", "createEventListener", "useBeforeLeave", "clsx", "IconDeviceFloppy", "IconExternalLink", "IconFileExcel", "IconPlus", "IconRefresh", "IconSearch", "IconTrash", "IconTrashOff", "IconUpload", "CrudSheetColumn", "isCrudSheetColumnDef", "CrudSheetFilter", "isCrudSheetFilterDef", "CrudSheetTools", "isCrudSheetToolsDef", "CrudSheetHeader", "isCrudSheetHeaderDef", "CrudSheetBase", "props", "local", "_rest", "noti", "topbarCtx", "dialogInstance", "isModal", "undefined", "isSelectMode", "selectMode", "canEdit", "editable", "resolved", "defs", "arr", "toArray", "filter", "find", "columns", "tools", "header", "items", "setItems", "value", "onChange", "onItemsChange", "originalItems", "setFilter", "filterInitial", "lastFilter", "setLastFilter", "page", "setPage", "totalPageCount", "setTotalPageCount", "sorts", "setSorts", "busyCount", "setBusyCount", "ready", "setReady", "selectedItems", "setSelectedItems", "selectedKeys", "setSelectedKeys", "Set", "formRef", "doRefresh", "currentItems", "keys", "size", "length", "restored", "item", "key", "getItemKey", "has", "c", "refresh", "err", "error", "result", "search", "pageCount", "getItemDiffs", "oneWayDiffs", "excludes", "inlineEdit", "diffsExcludes", "checkIgnoreChanges", "confirm", "handleFilterSubmit", "e", "preventDefault", "handleRefresh", "handleAddRow", "draft", "unshift", "newItem", "handleToggleDelete", "index", "itemDeletable", "deleteProp", "dp", "splice", "handleSave", "diffs", "info", "submit", "success", "onSubmitted", "handleFormSubmit", "handleEditItem", "modalEdit", "editItem", "handleDeleteItems", "deleteItems", "handleRestoreItems", "restoreItems", "handleExcelDownload", "excel", "download", "handleExcelUpload", "upload", "input", "document", "createElement", "type", "accept", "onchange", "file", "files", "click", "handleSelectedItemsChange", "newSelectedItems", "currentKeys", "add", "newSelectedKeys", "merged", "clearSelection", "handleSelectConfirm", "onSelect", "handleSelectCancel", "ctrlKey", "requestSubmit", "altKey", "_$createComponent", "when", "_$memo", "variant", "theme", "onClick", "icon", "ctx", "busy", "hasChanges", "save", "addItem", "isItemDeleted", "itemDeleted", "Action", "_el$", "_tmpl$", "$$click", "_$insert", "class", "_el$2", "_tmpl$2", "headerDef", "filterDef", "_el$7", "_tmpl$5", "addEventListener", "inline", "Item", "_el$3", "hideAutoTools", "disabled", "some", "toolsDef", "_el$4", "_tmpl$3", "_ref$", "_$use", "persistKey", "onPageChange", "onSortsChange", "isItemSelectable", "onSelectedItemsChange", "autoSelect", "cellClass", "fixed", "sortable", "resizable", "dsCtx", "_el$8", "_tmpl$6", "each", "col", "headerContent", "headerStyle", "summary", "tooltip", "hidden", "collapse", "width", "crudCtx", "setItem", "editTrigger", "itemEditable", "stopPropagation", "_el$9", "_tmpl$7", "_el$0", "_tmpl$8", "cell", "lastModifiedAtProp", "_el$1", "_tmpl$9", "toFormatString", "lastModifiedByProp", "_el$10", "_el$5", "_tmpl$4", "_el$6", "firstChild", "CrudSheet", "Column", "Filter", "Tools", "Header", "_$delegateEvents"]
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrudSheetColumn.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\crud-sheet\\CrudSheetColumn.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAGxE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAMzF;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAmBtF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/
|
|
3
|
+
"sources": ["../../../../src/components/features/crud-sheet/CrudSheetColumn.tsx"],
|
|
4
4
|
"mappings": "AAEA,SAASA,uBAAuB;AAEzB,SAASC,qBAAqBC,OAAsD;AACzF,SACEA,SAAS,QACT,OAAOA,UAAU,YAChBA,MAAkC,QAAQ,MAAM;AAErD;AAGO,SAASC,gBAAuBC,OAAiD;AACtF,SAAO;IACLC,QAAQ;IACRC,KAAKF,MAAME;IACXC,QAAQP,gBAAgBI,MAAMG,MAAM;IACpCC,eAAeJ,MAAMI;IACrBC,aAAaL,MAAMK;IACnBC,SAASN,MAAMM;IACfC,SAASP,MAAMO;IACfC,MAAMR,MAAMS;IACZC,OAAOV,MAAMU;IACbC,OAAOX,MAAMW,SAAS;IACtBC,QAAQZ,MAAMY,UAAU;IACxBC,UAAUb,MAAMa,YAAY;IAC5BC,OAAOd,MAAMc;IACbC,UAAUf,MAAMe,YAAY;IAC5BC,WAAWhB,MAAMgB,aAAa;IAC9BC,aAAajB,MAAMiB,eAAe;EACpC;AACF;",
|
|
5
5
|
"names": ["normalizeHeader", "isCrudSheetColumnDef", "value", "CrudSheetColumn", "props", "__type", "key", "header", "headerContent", "headerStyle", "summary", "tooltip", "cell", "children", "class", "fixed", "hidden", "collapse", "width", "sortable", "resizable", "editTrigger"]
|
|
6
6
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrudSheetFilter.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\crud-sheet\\CrudSheetFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAMrF;AAGD,wBAAgB,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE;IAC9C,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC;CAC5D,GAAG,GAAG,CAAC,OAAO,CAKd"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/
|
|
3
|
+
"sources": ["../../../../src/components/features/crud-sheet/CrudSheetFilter.tsx"],
|
|
4
4
|
"mappings": "AAGO,SAASA,qBAAqBC,OAAkD;AACrF,SACEA,SAAS,QACT,OAAOA,UAAU,YAChBA,MAAkC,QAAQ,MAAM;AAErD;AAGO,SAASC,gBAAyBC,OAEzB;AACd,SAAO;IACLC,QAAQ;IACRC,UAAUF,MAAME;EAClB;AACF;",
|
|
5
5
|
"names": ["isCrudSheetFilterDef", "value", "CrudSheetFilter", "props", "__type", "children"]
|
|
6
6
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrudSheetHeader.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\crud-sheet\\CrudSheetHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAMhF;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAK7E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/
|
|
3
|
+
"sources": ["../../../../src/components/features/crud-sheet/CrudSheetHeader.tsx"],
|
|
4
4
|
"mappings": "AAGO,SAASA,qBAAqBC,OAA6C;AAChF,SACEA,SAAS,QACT,OAAOA,UAAU,YAChBA,MAAkC,QAAQ,MAAM;AAErD;AAGO,SAASC,gBAAgBC,OAA+C;AAC7E,SAAO;IACLC,QAAQ;IACRC,UAAUF,MAAME;EAClB;AACF;",
|
|
5
5
|
"names": ["isCrudSheetHeaderDef", "value", "CrudSheetHeader", "props", "__type", "children"]
|
|
6
6
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrudSheetTools.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\crud-sheet\\CrudSheetTools.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAMnF;AAGD,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;IAC5C,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC;CACrC,GAAG,GAAG,CAAC,OAAO,CAKd"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/
|
|
3
|
+
"sources": ["../../../../src/components/features/crud-sheet/CrudSheetTools.tsx"],
|
|
4
4
|
"mappings": "AAGO,SAASA,oBAAoBC,OAAiD;AACnF,SACEA,SAAS,QACT,OAAOA,UAAU,YAChBA,MAAkC,QAAQ,MAAM;AAErD;AAGO,SAASC,eAAuBC,OAEvB;AACd,SAAO;IACLC,QAAQ;IACRC,UAAUF,MAAME;EAClB;AACF;",
|
|
5
5
|
"names": ["isCrudSheetToolsDef", "value", "CrudSheetTools", "props", "__type", "children"]
|
|
6
6
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { JSX } from "solid-js";
|
|
2
2
|
import type { SetStoreFunction } from "solid-js/store";
|
|
3
3
|
import type { ArrayDiffs2Result } from "@simplysm/core-common";
|
|
4
|
-
import type { DataSheetColumnProps, SortingDef } from "
|
|
4
|
+
import type { DataSheetColumnProps, SortingDef } from "../../data/sheet/types";
|
|
5
5
|
export interface SearchResult<TItem> {
|
|
6
6
|
items: TItem[];
|
|
7
7
|
pageCount?: number;
|
|
@@ -10,10 +10,12 @@ export interface InlineEditConfig<TItem> {
|
|
|
10
10
|
submit: (diffs: ArrayDiffs2Result<TItem>[]) => Promise<void>;
|
|
11
11
|
newItem: () => TItem;
|
|
12
12
|
deleteProp?: keyof TItem & string;
|
|
13
|
+
diffsExcludes?: string[];
|
|
13
14
|
}
|
|
14
15
|
export interface ModalEditConfig<TItem> {
|
|
15
|
-
editItem: (item?: TItem) => Promise<boolean>;
|
|
16
|
+
editItem: (item?: TItem) => Promise<boolean | undefined>;
|
|
16
17
|
deleteItems?: (items: TItem[]) => Promise<boolean>;
|
|
18
|
+
restoreItems?: (items: TItem[]) => Promise<boolean>;
|
|
17
19
|
}
|
|
18
20
|
export interface ExcelConfig<TItem> {
|
|
19
21
|
download: (items: TItem[]) => Promise<void>;
|
|
@@ -40,6 +42,7 @@ export interface CrudSheetContext<TItem> {
|
|
|
40
42
|
save(): Promise<void>;
|
|
41
43
|
refresh(): Promise<void>;
|
|
42
44
|
addItem(): void;
|
|
45
|
+
clearSelection(): void;
|
|
43
46
|
setPage(page: number): void;
|
|
44
47
|
setSorts(sorts: SortingDef[]): void;
|
|
45
48
|
}
|
|
@@ -54,20 +57,23 @@ export type CrudSheetProps<TItem, TFilter extends Record<string, any>> = CrudShe
|
|
|
54
57
|
modalEdit?: never;
|
|
55
58
|
});
|
|
56
59
|
interface CrudSheetBaseProps<TItem, TFilter extends Record<string, any>> {
|
|
57
|
-
search: (filter: TFilter, page: number, sorts: SortingDef[]) => Promise<SearchResult<TItem>>;
|
|
60
|
+
search: (filter: TFilter, page: number | undefined, sorts: SortingDef[]) => Promise<SearchResult<TItem>>;
|
|
58
61
|
getItemKey: (item: TItem) => string | number | undefined;
|
|
59
62
|
persistKey?: string;
|
|
60
|
-
itemsPerPage?: number;
|
|
61
63
|
editable?: boolean;
|
|
62
64
|
itemEditable?: (item: TItem) => boolean;
|
|
63
65
|
itemDeletable?: (item: TItem) => boolean;
|
|
64
66
|
itemDeleted?: (item: TItem) => boolean;
|
|
67
|
+
isItemSelectable?: (item: TItem) => boolean | string;
|
|
68
|
+
lastModifiedAtProp?: string;
|
|
69
|
+
lastModifiedByProp?: string;
|
|
65
70
|
filterInitial?: TFilter;
|
|
66
71
|
items?: TItem[];
|
|
67
72
|
onItemsChange?: (items: TItem[]) => void;
|
|
68
73
|
excel?: ExcelConfig<TItem>;
|
|
69
74
|
selectMode?: "single" | "multiple";
|
|
70
75
|
onSelect?: (result: SelectResult<TItem>) => void;
|
|
76
|
+
onSubmitted?: () => void;
|
|
71
77
|
hideAutoTools?: boolean;
|
|
72
78
|
class?: string;
|
|
73
79
|
children: JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\crud-sheet\\types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
import { type DialogShowOptions } from "../../disclosure/DialogContext";
|
|
3
|
+
import { type ComponentSize } from "../../../styles/tokens.styles";
|
|
4
|
+
/** 모달에서 반환하는 결과 인터페이스 */
|
|
5
|
+
export interface DataSelectModalResult<TKey> {
|
|
6
|
+
selectedKeys: TKey[];
|
|
7
|
+
}
|
|
8
|
+
/** DataSelectButton Props */
|
|
9
|
+
export interface DataSelectButtonProps<TItem, TKey = string | number> {
|
|
10
|
+
/** 현재 선택된 키 (단일 또는 다중) */
|
|
11
|
+
value?: TKey | TKey[];
|
|
12
|
+
/** 값 변경 콜백 */
|
|
13
|
+
onValueChange?: (value: TKey | TKey[] | undefined) => void;
|
|
14
|
+
/** 키로 아이템을 로드하는 함수 */
|
|
15
|
+
load: (keys: TKey[]) => TItem[] | Promise<TItem[]>;
|
|
16
|
+
/** 선택 모달 컴포넌트 팩토리 */
|
|
17
|
+
modal: () => JSX.Element;
|
|
18
|
+
/** 아이템 렌더링 함수 */
|
|
19
|
+
renderItem: (item: TItem) => JSX.Element;
|
|
20
|
+
/** 다중 선택 모드 */
|
|
21
|
+
multiple?: boolean;
|
|
22
|
+
/** 필수 입력 */
|
|
23
|
+
required?: boolean;
|
|
24
|
+
/** 비활성화 */
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
/** 트리거 크기 */
|
|
27
|
+
size?: ComponentSize;
|
|
28
|
+
/** 테두리 없는 스타일 */
|
|
29
|
+
inset?: boolean;
|
|
30
|
+
/** 커스텀 유효성 검사 함수 */
|
|
31
|
+
validate?: (value: unknown) => string | undefined;
|
|
32
|
+
/** touchMode: 포커스 해제 후에만 에러 표시 */
|
|
33
|
+
touchMode?: boolean;
|
|
34
|
+
/** 다이얼로그 옵션 */
|
|
35
|
+
dialogOptions?: DialogShowOptions;
|
|
36
|
+
}
|
|
37
|
+
export declare function DataSelectButton<TItem, TKey = string | number>(props: DataSelectButtonProps<TItem, TKey>): JSX.Element;
|
|
38
|
+
//# sourceMappingURL=DataSelectButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataSelectButton.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\data-select-button\\DataSelectButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,GAAG,EAIT,MAAM,UAAU,CAAC;AAMlB,OAAO,EAAa,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnF,OAAO,EAAE,KAAK,aAAa,EAAa,MAAM,+BAA+B,CAAC;AAQ9E,yBAAyB;AACzB,MAAM,WAAW,qBAAqB,CAAC,IAAI;IACzC,YAAY,EAAE,IAAI,EAAE,CAAC;CACtB;AAED,6BAA6B;AAC7B,MAAM,WAAW,qBAAqB,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM;IAClE,0BAA0B;IAC1B,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC;IACtB,cAAc;IACd,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,SAAS,KAAK,IAAI,CAAC;IAE3D,sBAAsB;IACtB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,qBAAqB;IACrB,KAAK,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACzB,iBAAiB;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,GAAG,CAAC,OAAO,CAAC;IAEzC,eAAe;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa;IACb,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;IAClD,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,eAAe;IACf,aAAa,CAAC,EAAE,iBAAiB,CAAC;CACnC;AA+BD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,EAC5D,KAAK,EAAE,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,GACxC,GAAG,CAAC,OAAO,CAsLb"}
|