@simplysm/solid 13.0.93 → 13.0.95
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/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
- package/dist/components/features/crud-sheet/CrudSheet.js +14 -9
- package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
- package/dist/components/features/crud-sheet/CrudSheet.types.d.ts +2 -0
- package/dist/components/features/crud-sheet/CrudSheet.types.d.ts.map +1 -1
- package/docs/features.md +230 -3
- package/package.json +5 -5
- package/src/components/features/crud-sheet/CrudSheet.tsx +15 -7
- package/src/components/features/crud-sheet/CrudSheet.types.ts +2 -0
- package/tests/components/features/crud-sheet/CrudSheet.spec.tsx +116 -1
|
@@ -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":"AAgBA,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;AAmsB3B,eAAO,MAAM,SAAS,IAjsBC,KAAK,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAC5D,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;CAqsBrC,CAAC"}
|
|
@@ -7,9 +7,10 @@ import { insert as _$insert } from "solid-js/web";
|
|
|
7
7
|
import { createComponent as _$createComponent } from "solid-js/web";
|
|
8
8
|
import { memo as _$memo } from "solid-js/web";
|
|
9
9
|
var _tmpl$ = /* @__PURE__ */ _$template(`<button>`), _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>`);
|
|
10
|
-
import { createEffect, createSignal, createUniqueId, For, onCleanup, Show, splitProps, useContext } from "solid-js";
|
|
10
|
+
import { createEffect, createMemo, 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 { createControllableSignal } from "../../../hooks/createControllableSignal.js";
|
|
13
14
|
import { obj } from "@simplysm/core-common";
|
|
14
15
|
import "@simplysm/core-common";
|
|
15
16
|
import { openFileDialog } from "@simplysm/core-browser";
|
|
@@ -37,7 +38,7 @@ import { CrudSheetFilter, createCrudSheetFilterSlotAccessor } from "./CrudSheetF
|
|
|
37
38
|
import { CrudSheetTools, createCrudSheetToolsSlotAccessor } from "./CrudSheetTools.js";
|
|
38
39
|
import { CrudSheetHeader, createCrudSheetHeaderSlotAccessor } from "./CrudSheetHeader.js";
|
|
39
40
|
const CrudSheetBase = (props) => {
|
|
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"]);
|
|
41
|
+
const [local] = splitProps(props, ["search", "getItemKey", "storageKey", "editable", "isItemEditable", "isItemDeletable", "isItemDeleted", "isItemSelectable", "lastModifiedAtProp", "lastModifiedByProp", "onSubmitComplete", "filterInitial", "items", "onItemsChange", "inlineEdit", "dialogEdit", "excel", "selectionMode", "selectedKeys", "onSelectedKeysChange", "onSelect", "hideAutoTools", "close", "class", "children"]);
|
|
41
42
|
const noti = useNotification();
|
|
42
43
|
const i18n = useI18n();
|
|
43
44
|
const topbarCtx = useContext(TopbarContext);
|
|
@@ -72,7 +73,11 @@ const CrudSheetBase = (props) => {
|
|
|
72
73
|
}
|
|
73
74
|
const [ready, setReady] = createSignal(false);
|
|
74
75
|
const [selection, setSelection] = createSignal([]);
|
|
75
|
-
const [selectedKeys, setSelectedKeys] =
|
|
76
|
+
const [selectedKeys, setSelectedKeys] = createControllableSignal({
|
|
77
|
+
value: () => local.selectedKeys ?? [],
|
|
78
|
+
onChange: () => local.onSelectedKeysChange
|
|
79
|
+
});
|
|
80
|
+
const selectedKeysSet = createMemo(() => new Set(selectedKeys()));
|
|
76
81
|
let formRef;
|
|
77
82
|
const crudId = createUniqueId();
|
|
78
83
|
onCleanup(() => unregisterCrud(crudId));
|
|
@@ -84,8 +89,8 @@ const CrudSheetBase = (props) => {
|
|
|
84
89
|
});
|
|
85
90
|
createEffect(() => {
|
|
86
91
|
const currentItems = items;
|
|
87
|
-
const
|
|
88
|
-
if (
|
|
92
|
+
const keysSet = selectedKeysSet();
|
|
93
|
+
if (keysSet.size === 0) {
|
|
89
94
|
if (selection().length > 0) {
|
|
90
95
|
setSelection([]);
|
|
91
96
|
}
|
|
@@ -93,7 +98,7 @@ const CrudSheetBase = (props) => {
|
|
|
93
98
|
}
|
|
94
99
|
const restored = currentItems.filter((item) => {
|
|
95
100
|
const key = local.getItemKey(item);
|
|
96
|
-
return key != null &&
|
|
101
|
+
return key != null && keysSet.has(key);
|
|
97
102
|
});
|
|
98
103
|
setSelection(restored);
|
|
99
104
|
});
|
|
@@ -249,7 +254,7 @@ const CrudSheetBase = (props) => {
|
|
|
249
254
|
for (const key of newSelectedKeys) {
|
|
250
255
|
merged.add(key);
|
|
251
256
|
}
|
|
252
|
-
setSelectedKeys(merged);
|
|
257
|
+
setSelectedKeys([...merged]);
|
|
253
258
|
setSelection(newSelection);
|
|
254
259
|
if (isInDialog && local.selectionMode === "single" && newSelection.length > 0) {
|
|
255
260
|
(_a = local.onSelect) == null ? void 0 : _a.call(local, {
|
|
@@ -259,14 +264,14 @@ const CrudSheetBase = (props) => {
|
|
|
259
264
|
}
|
|
260
265
|
}
|
|
261
266
|
function clearSelection() {
|
|
262
|
-
setSelectedKeys(
|
|
267
|
+
setSelectedKeys([]);
|
|
263
268
|
setSelection([]);
|
|
264
269
|
}
|
|
265
270
|
function handleSelectConfirm() {
|
|
266
271
|
var _a;
|
|
267
272
|
(_a = local.onSelect) == null ? void 0 : _a.call(local, {
|
|
268
273
|
items: selection(),
|
|
269
|
-
keys:
|
|
274
|
+
keys: selectedKeys()
|
|
270
275
|
});
|
|
271
276
|
}
|
|
272
277
|
function handleSelectCancel() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/features/crud-sheet/CrudSheet.tsx"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["createEffect", "createSignal", "createUniqueId", "For", "onCleanup", "Show", "splitProps", "useContext", "createStore", "produce", "reconcile", "createControllableStore", "obj", "openFileDialog", "DataSheet", "DataSheetColumn", "normalizeHeader", "BusyContainer", "useNotification", "useI18n", "Button", "Icon", "FormGroup", "useTopbarActions", "TopbarContext", "Dialog", "Link", "createEventListener", "useBeforeLeave", "clsx", "text", "gap", "pad", "IconDeviceFloppy", "IconExternalLink", "IconFileExcel", "IconPlus", "IconRefresh", "IconSearch", "IconTrash", "IconTrashOff", "IconUpload", "registerCrud", "unregisterCrud", "activateCrud", "isActiveCrud", "CrudSheetColumn", "createCrudSheetColumnSlotsAccessor", "CrudSheetFilter", "createCrudSheetFilterSlotAccessor", "CrudSheetTools", "createCrudSheetToolsSlotAccessor", "CrudSheetHeader", "createCrudSheetHeaderSlotAccessor", "CrudSheetBase", "props", "local", "noti", "i18n", "topbarCtx", "isInDialog", "close", "undefined", "isSelectMode", "selectionMode", "canEdit", "editable", "headerSlot", "HeaderProvider", "filterSlot", "FilterProvider", "toolsSlot", "ToolsProvider", "columnSlots", "ColumnsProvider", "items", "setItems", "value", "onChange", "onItemsChange", "originalItems", "filter", "setFilter", "filterInitial", "lastFilter", "setLastFilter", "clone", "page", "setPage", "totalPageCount", "setTotalPageCount", "sorts", "setSorts", "busyCount", "setBusyCount", "withBusy", "fn", "errorMessage", "c", "err", "error", "ready", "setReady", "selection", "setSelection", "selectedKeys", "setSelectedKeys", "Set", "formRef", "crudId", "refreshVersion", "doRefresh", "currentItems", "
|
|
4
|
+
"mappings": ";;;;;;;;;AAAA,SACEA,cACAC,YACAC,cACAC,gBACAC,KACAC,WACAC,MACAC,YACAC,kBACK;AACP,SAASC,aAAaC,SAASC,iBAAiB;AAChD,SAASC,+BAA+B;AACxC,SAASC,gCAAgC;AAEzC,SAASC,WAAW;AACpB,OAAO;AACP,SAASC,sBAAsB;AAE/B,SAASC,iBAAiB;AAC1B,SAASC,uBAAuB;AAChC,SAASC,uBAAuB;AAChC,SAASC,qBAAqB;AAC9B,SAASC,uBAAuB;AAChC,SAASC,eAAe;AACxB,SAASC,cAAc;AACvB,SAASC,YAAY;AACrB,SAASC,iBAAiB;AAC1B,SAASC,kBAAkBC,qBAAqB;AAChD,SAASC,cAAc;AACvB,SAASC,YAAY;AACrB,SAASC,2BAA2B;AACpC,SAASC,sBAAsB;AAC/B,OAAOC,UAAU;AACjB,SAASC,YAAY;AACrB,SAASC,KAAKC,WAAW;AACzB,SACEC,kBACAC,kBACAC,eACAC,UACAC,aACAC,YACAC,WACAC,cACAC,kBACK;AACP,SAASC,cAAcC,gBAAgBC,cAAcC,oBAAoB;AACzE,SAASC,iBAAiBC,0CAA0C;AACpE,SAASC,iBAAiBC,yCAAyC;AACnE,SAASC,gBAAgBC,wCAAwC;AACjE,SAASC,iBAAiBC,yCAAyC;AAQnE,MAAMC,gBACJC,WACG;AACH,QAAM,CAACC,KAAK,IAAInD,WAAWkD,OAAO,CAChC,UACA,cACA,cACA,YACA,kBACA,mBACA,iBACA,oBACA,sBACA,sBACA,oBACA,iBACA,SACA,iBACA,cACA,cACA,SACA,iBACA,gBACA,wBACA,YACA,iBACA,SACA,SACA,UAAU,CACX;AAED,QAAME,OAAOvC,gBAAgB;AAC7B,QAAMwC,OAAOvC,QAAQ;AACrB,QAAMwC,YAAYrD,WAAWkB,aAAa;AAC1C,QAAMoC,aAAaJ,MAAMK,UAAUC;AACnC,QAAMC,eAAeA,MAAMP,MAAMQ,iBAAiB;AAClD,QAAMC,UAAUA,MAAOL,cAAcG,aAAa,IAAI,QAASP,MAAMU,YAAY;AAGjF,QAAM,CAACC,YAAYC,cAAc,IAAIf,kCAAkC;AACvE,QAAM,CAACgB,YAAYC,cAAc,IAAIrB,kCAAkC;AACvE,QAAM,CAACsB,WAAWC,aAAa,IAAIrB,iCAAiC;AACpE,QAAM,CAACsB,aAAaC,eAAe,IAAI3B,mCAAmC;AAG1E,QAAM,CAAC4B,OAAOC,QAAQ,IAAIlE,wBAAiC;IACzDmE,OAAOA,MAAMrB,MAAMmB,SAAS,CAAA;IAC5BG,UAAUA,MAAMtB,MAAMuB;EACxB,CAAC;AACD,MAAIC,gBAAyB,CAAA;AAE7B,QAAM,CAACC,QAAQC,SAAS,IAAI3E,YAAsBiD,MAAM2B,iBAAiB,CAAC,CAAa;AACvF,QAAM,CAACC,YAAYC,aAAa,IAAIrF,aAAsBY,IAAI0E,MAAML,MAAM,CAAC;AAE3E,QAAM,CAACM,MAAMC,OAAO,IAAIxF,aAAa,CAAC;AACtC,QAAM,CAACyF,gBAAgBC,iBAAiB,IAAI1F,aAAa,CAAC;AAC1D,QAAM,CAAC2F,OAAOC,QAAQ,IAAI5F,aAA2B,CAAA,CAAE;AAEvD,QAAM,CAAC6F,WAAWC,YAAY,IAAI9F,aAAa,CAAC;AAEhD,iBAAe+F,SAAYC,IAAsBC,cAA+C;AAC9FH,iBAAcI,OAAMA,IAAI,CAAC;AACzB,QAAI;AACF,aAAO,MAAMF,GAAG;IAClB,SAASG,KAAK;AACZ1C,WAAK2C,MAAMD,KAAKF,YAAY;AAC5B,aAAOnC;IACT,UAAC;AACCgC,mBAAcI,OAAMA,IAAI,CAAC;IAC3B;EACF;AAEA,QAAM,CAACG,OAAOC,QAAQ,IAAItG,aAAa,KAAK;AAE5C,QAAM,CAACuG,WAAWC,YAAY,IAAIxG,aAAsB,CAAA,CAAE;AAC1D,QAAM,CAACyG,cAAcC,eAAe,IAAI/F,yBAA8C;IACpFkE,OAAOA,MAAMrB,MAAMiD,gBAAgB,CAAA;IACnC3B,UAAUA,MAAMtB,MAAMmD;EACxB,CAAC;AACD,QAAMC,kBAAkB7G,WAAW,MAAM,IAAI8G,IAAIJ,aAAa,CAAC,CAAC;AAEhE,MAAIK;AAEJ,QAAMC,SAAS9G,eAAe;AAC9BE,YAAU,MAAMwC,eAAeoE,MAAM,CAAC;AACtCpF,sBAAoB,MAAMmF,SAAS,eAAe,MAAMlE,aAAamE,MAAM,CAAC;AAC5EpF,sBAAoB,MAAMmF,SAAS,WAAW,MAAMlE,aAAamE,MAAM,CAAC;AAExE,MAAIC,iBAAiB;AAErBlH,eAAa,MAAM;AACjB,SAAKmH,UAAU;EACjB,CAAC;AAGDnH,eAAa,MAAM;AACjB,UAAMoH,eAAevC;AACrB,UAAMwC,UAAUP,gBAAgB;AAChC,QAAIO,QAAQC,SAAS,GAAG;AACtB,UAAIb,UAAU,EAAEc,SAAS,GAAG;AAC1Bb,qBAAa,CAAA,CAAE;MACjB;AACA;IACF;AACA,UAAMc,WAAWJ,aAAajC,OAAQsC,UAAS;AAC7C,YAAMC,MAAMhE,MAAMiE,WAAWF,IAAI;AACjC,aAAOC,OAAO,QAAQL,QAAQO,IAAIF,GAAG;IACvC,CAAC;AACDhB,iBAAac,QAAQ;EACvB,CAAC;AAED,iBAAeL,YAAY;AACzB,UAAMU,UAAU,EAAEX;AAClBlB,iBAAcI,OAAMA,IAAI,CAAC;AACzB,QAAI;AACF,YAAM0B,QAAQ;AACd,UAAID,YAAYX,eAAgB;AAChCV,eAAS,IAAI;IACf,SAASH,KAAK;AACZ,UAAIwB,YAAYX,eAAgB;AAChCvD,WAAK2C,MAAMD,KAAKzC,KAAKmE,EAAE,wBAAwB,CAAC;IAClD,UAAC;AACC/B,mBAAcI,OAAMA,IAAI,CAAC;IAC3B;EACF;AAEA,iBAAe0B,UAAU;AACvB,UAAME,SAA8B,MAAMtE,MAAMuE,OAAO3C,WAAW,GAAGG,KAAK,GAAGI,MAAM,CAAC;AACpFf,aAASnE,UAAUqH,OAAOnD,KAAK,CAAC;AAChCK,oBAAgBpE,IAAI0E,MAAMwC,OAAOnD,KAAK;AACtCe,sBAAkBoC,OAAOE,aAAa,CAAC;EACzC;AAEA,WAASC,eAAe;;AACtB,WAAOtD,MAAMuD,YAAYlD,eAAgBuC,UAAS/D,MAAMiE,WAAWF,IAAI,GAAG;MACxEY,WAAU3E,WAAM4E,eAAN5E,mBAAkB6E;IAC9B,CAAC;EACH;AAEA,WAASC,qBAA8B;AACrC,QAAI,CAAC9E,MAAM4E,WAAY,QAAO;AAC9B,QAAIH,aAAa,EAAEZ,WAAW,EAAG,QAAO;AACxC,WAAOkB,QAAQ7E,KAAKmE,EAAE,0BAA0B,CAAC;EACnD;AAGA,WAASW,mBAAmBC,GAAU;AACpCA,MAAEC,eAAe;AACjB,QAAI,CAACJ,mBAAmB,EAAG;AAC3B9C,YAAQ,CAAC;AACTH,kBAAc,MAAMzE,IAAI0E,MAAML,MAAM,CAAC;EACvC;AAEA,iBAAe0D,gBAAgB;AAC7B,QAAI,CAACL,mBAAmB,EAAG;AAC3B,UAAMrB,UAAU;EAClB;AAGA,WAAS2B,eAAe;AACtB,QAAI,CAACpF,MAAM4E,WAAY;AACvBxD,aACEpE,QAASqI,WAAU;AACjBA,YAAMC,QAAQtF,MAAM4E,WAAYW,QAAQ,CAAC;IAC3C,CAAC,CACH;EACF;AAEA,WAASC,mBAAmBzB,MAAa0B,OAAe;;AACtD,QAAI,IAAEzF,WAAM0F,oBAAN1F,+BAAwB+D,UAAS,MAAO;AAC9C,UAAI/D,WAAM4E,eAAN5E,mBAAkB2F,eAAc,KAAM;AAC1C,UAAMC,KAAK5F,MAAM4E,WAAWe;AAE5B,QAAI3F,MAAMiE,WAAWF,IAAI,KAAK,MAAM;AAClC3C,eACEpE,QAASqI,WAAU;AACjBA,cAAMQ,OAAOJ,OAAO,CAAC;MACvB,CAAC,CACH;AACA;IACF;AAEArE,aACEpE,QAASqI,WAAU;AAChBA,YAAMI,KAAK,EAA8BG,EAAE,IAAI,CAAE7B,KAAK6B,EAAE;IAC3D,CAAC,CACH;EACF;AAEA,iBAAeE,aAAa;AAC1B,QAAIzD,UAAU,IAAI,EAAG;AACrB,QAAI,CAAC5B,QAAQ,EAAG;AAChB,QAAI,CAACT,MAAM4E,WAAY;AAEvB,UAAMmB,QAAQtB,aAAa;AAE3B,QAAIsB,MAAMlC,WAAW,GAAG;AACtB5D,WAAK+F,KAAK9F,KAAKmE,EAAE,kBAAkB,GAAGnE,KAAKmE,EAAE,qBAAqB,CAAC;AACnE;IACF;AAEA,UAAM9B,SAAS,YAAY;;AACzB,YAAMvC,MAAM4E,WAAYqB,OAAOF,KAAK;AACpC9F,WAAKiG,QAAQhG,KAAKmE,EAAE,yBAAyB,GAAGnE,KAAKmE,EAAE,uBAAuB,CAAC;AAC/E,YAAMD,QAAQ;AACdpE,kBAAMmG,qBAANnG;IACF,GAAGE,KAAKmE,EAAE,sBAAsB,CAAC;EACnC;AAEA,iBAAe+B,iBAAiBnB,GAAU;AACxCA,MAAEC,eAAe;AACjB,UAAMY,WAAW;EACnB;AAGA,iBAAeO,eAAetC,MAAc;AAC1C,QAAI,CAAC/D,MAAMsG,WAAY;AACvB,UAAMhC,SAAS,MAAMtE,MAAMsG,WAAWC,SAASxC,IAAI;AACnD,QAAI,CAACO,OAAQ;AAEb,UAAM/B,SAAS,MAAM6B,QAAQ,GAAGlE,KAAKmE,EAAE,wBAAwB,CAAC;EAClE;AAEA,iBAAemC,oBAAoB;;AACjC,QAAI,GAACxG,WAAMsG,eAANtG,mBAAkByG,aAAa;AACpC,UAAMnC,SAAS,MAAMtE,MAAMsG,WAAWG,YAAY1D,UAAU,CAAC;AAC7D,QAAI,CAACuB,OAAQ;AAEb,UAAM/B,SAAS,YAAY;AACzB,YAAM6B,QAAQ;AACdnE,WAAKiG,QAAQhG,KAAKmE,EAAE,2BAA2B,GAAGnE,KAAKmE,EAAE,yBAAyB,CAAC;IACrF,GAAGnE,KAAKmE,EAAE,wBAAwB,CAAC;EACrC;AAEA,iBAAeqC,qBAAqB;;AAClC,QAAI,GAAC1G,WAAMsG,eAANtG,mBAAkB2G,cAAc;AACrC,UAAMrC,SAAS,MAAMtE,MAAMsG,WAAWK,aAAa5D,UAAU,CAAC;AAC9D,QAAI,CAACuB,OAAQ;AAEb,UAAM/B,SAAS,YAAY;AACzB,YAAM6B,QAAQ;AACdnE,WAAKiG,QAAQhG,KAAKmE,EAAE,4BAA4B,GAAGnE,KAAKmE,EAAE,0BAA0B,CAAC;IACvF,GAAGnE,KAAKmE,EAAE,yBAAyB,CAAC;EACtC;AAGA,iBAAeuC,sBAAsB;AACnC,QAAI,CAAC5G,MAAM6G,MAAO;AAElB,UAAMtE,SAAS,YAAY;AACzB,YAAM+B,SAAS,MAAMtE,MAAMuE,OAAO3C,WAAW,GAAGtB,QAAW6B,MAAM,CAAC;AAClE,YAAMnC,MAAM6G,MAAOC,SAASxC,OAAOnD,KAAK;IAC1C,GAAGjB,KAAKmE,EAAE,+BAA+B,CAAC;EAC5C;AAEA,iBAAe0C,oBAAoB;;AACjC,QAAI,GAAC/G,WAAM6G,UAAN7G,mBAAagH,QAAQ;AAE1B,UAAMC,QAAQ,MAAM5J,eAAe;MAAE6J,QAAQ;IAAQ,CAAC;AACtD,UAAMC,OAAOF,+BAAQ;AACrB,QAAIE,QAAQ,KAAM;AAElB,UAAM5E,SAAS,YAAY;AACzB,YAAMvC,MAAM6G,MAAOG,OAAQG,IAAI;AAC/BlH,WAAKiG,QAAQhG,KAAKmE,EAAE,0BAA0B,GAAGnE,KAAKmE,EAAE,8BAA8B,CAAC;AACvF,YAAMD,QAAQ;IAChB,GAAGlE,KAAKmE,EAAE,6BAA6B,CAAC;EAC1C;AAGA,WAAS+C,sBAAsBC,cAAuB;;AAEpD,UAAM3D,eAAevC;AACrB,UAAMmG,cAAc,oBAAIjE,IAAqB;AAC7C,eAAWU,QAAQL,cAAc;AAC/B,YAAMM,MAAMhE,MAAMiE,WAAWF,IAAI;AACjC,UAAIC,OAAO,KAAMsD,aAAYC,IAAIvD,GAAG;IACtC;AAGA,UAAMwD,kBAAkB,oBAAInE,IAAqB;AACjD,eAAWU,QAAQsD,cAAc;AAC/B,YAAMrD,MAAMhE,MAAMiE,WAAWF,IAAI;AACjC,UAAIC,OAAO,KAAMwD,iBAAgBD,IAAIvD,GAAG;IAC1C;AAGA,UAAMyD,SAAS,oBAAIpE,IAAqB;AACxC,eAAWW,OAAOf,aAAa,GAAG;AAChC,UAAI,CAACqE,YAAYpD,IAAIF,GAAG,GAAG;AACzByD,eAAOF,IAAIvD,GAAG;MAChB;IACF;AACA,eAAWA,OAAOwD,iBAAiB;AACjCC,aAAOF,IAAIvD,GAAG;IAChB;AAEAd,oBAAgB,CAAC,GAAGuE,MAAM,CAAC;AAC3BzE,iBAAaqE,YAAY;AAGzB,QAAIjH,cAAcJ,MAAMQ,kBAAkB,YAAY6G,aAAaxD,SAAS,GAAG;AAC7E7D,kBAAM0H,aAAN1H,+BAAiB;QACfmB,OAAOkG;QACPM,MAAM,CAAC,GAAGF,MAAM;MAClB;IACF;EACF;AAEA,WAASG,iBAAiB;AACxB1E,oBAAgB,CAAA,CAAE;AAClBF,iBAAa,CAAA,CAAE;EACjB;AAEA,WAAS6E,sBAAsB;;AAC7B7H,gBAAM0H,aAAN1H,+BAAiB;MACfmB,OAAO4B,UAAU;MACjB4E,MAAM1E,aAAa;IACrB;EACF;AAEA,WAAS6E,qBAAqB;;AAC5BF,mBAAe;AACf5H,gBAAM0H,aAAN1H,+BAAiB;MAAEmB,OAAO,CAAA;MAAIwG,MAAM,CAAA;IAAG;EACzC;AAGAxJ,sBAAoB4J,UAAU,WAAW,OAAO9C,MAAqB;AACnE,QAAI,CAACA,EAAE+C,WAAW,CAAC3I,aAAakE,MAAM,EAAG;AACzC,QAAI0B,EAAEjB,QAAQ,OAAO,CAACzD,aAAa,GAAG;AACpC0E,QAAEC,eAAe;AACjBD,QAAEgD,yBAAyB;AAC3B3E,yCAAS4E;IACX;AACA,QAAIjD,EAAEkD,UAAUlD,EAAEjB,QAAQ,KAAK;AAC7BiB,QAAEC,eAAe;AACjBD,QAAEgD,yBAAyB;AAC3B,UAAI,CAACnD,mBAAmB,EAAG;AAC3B,YAAMrB,UAAU;IAClB;EACF,CAAC;AAGD,MAAI,CAACrD,cAAcJ,MAAM4E,YAAY;AACnC,QAAI;AACFxG,qBAAgB6G,OAAM;AACpB,YAAI,CAACH,mBAAmB,GAAG;AACzBG,YAAEC,eAAe;QACnB;MACF,CAAC;IACH,QAAQ;IACN;EAEJ;AAGA,MAAI/E,WAAW;AACbpC,qBAAiB,MAAA,CAAAqK,kBAEZxL,MAAI;MAAA,IAACyL,OAAI;AAAA,eAAEC,OAAA,MAAA,CAAA,CAAA7H,QAAQ,CAAC,EAAA,KAAIT,MAAM4E;MAAU;MAAA,IAAA2D,WAAA;AAAA,eAAAH,kBACtCxK,QAAM;UACL4K,SAAO;UACPC,OAAK;UACLC,SAASA,MAAMpF,mCAAS4E;UAAe,IAAAK,WAAA;AAAA,mBAAA,CAAAH,kBAEtCvK,MAAI;cAAC8K,MAAMlK;cAAgB,SAAA;YAAA,CAAA,GAAA6J,OAAA,MAC3BpI,KAAKmE,EAAE,gBAAgB,CAAC,CAAA;UAAA;QAAA,CAAA;MAAA;IAAA,CAAA,GAAA+D,kBAG5BxK,QAAM;MAAC4K,SAAO;MAASC,OAAK;MAAQC,SAASvD;MAAa,IAAAoD,WAAA;AAAA,eAAA,CAAAH,kBACxDvK,MAAI;UAAC8K,MAAM9J;UAAW,SAAA;QAAA,CAAA,GAAAyJ,OAAA,MACtBpI,KAAKmE,EAAE,mBAAmB,CAAC,CAAA;MAAA;IAAA,CAAA,CAAA,CAGjC;EACH;AAGA,QAAMuE,MAA+B;IACnCzH,OAAOA,MAAMA;IACb4B;IACAhB;IACAI;IACA0G,MAAMA,MAAMxG,UAAU,IAAI;IAC1ByG,YAAYA,MAAM;AAChB,UAAI,CAAC9I,MAAM4E,WAAY,QAAO;AAC9B,aAAOH,aAAa,EAAEZ,SAAS;IACjC;IACAkF,MAAMjD;IACN1B,SAAS,YAAY;AACnB,YAAMX,UAAU;IAClB;IACAuF,SAAS5D;IACTpD;IACAI;IACAwF;EACF;AAGA,QAAMjC,aAAaA,MAAA;;AAAM3F,uBAAM4E,eAAN5E,mBAAkB2F;;AAC3C,QAAMsD,gBAAiBlF,UAAW;;AAAK/D,wBAAMiJ,kBAANjJ,+BAAsB+D,UAAS;;AAEtE,SAAA,CAAAqE,kBAEKlH,iBAAe;IAAA,IAAAqH,WAAA;AAAA,aAAAH,kBACbxH,gBAAc;QAAA,IAAA2H,WAAA;AAAA,iBAAAH,kBACZtH,gBAAc;YAAA,IAAAyH,WAAA;AAAA,qBAAAH,kBACZpH,eAAa;gBAAA,IAAAuH,WAAA;AAAA,yBAAEvI,MAAMuI;gBAAQ;cAAA,CAAA;YAAA;UAAA,CAAA;QAAA;MAAA,CAAA;IAAA;EAAA,CAAA,GAAAH,kBAMnCxL,MAAI;IAACyL,MAAMjI;IAAU,IAAAmI,WAAA;AAAA,aAAAH,kBACnBnK,OAAOiL,QAAM;QAAA,IAAAX,WAAA;AAAA,cAAAY,OAAAC,OAAA;AAAAD,eAAAE,UAGDlE;AAAamE,mBAAAH,MAAAf,kBAErBvK,MAAI;YAAC8K,MAAM9J;UAAW,CAAA,CAAA;AAAA0K,mBAAA,MAAAC,YAAAL,MAHhB9K,KAAK,8CAA8CC,KAAKmL,KAAK,CAAC,CAAA;AAAA,iBAAAN;QAAA;MAAA,CAAA;IAAA;EAAA,CAAA,GAAAf,kBAQ1E3K,eAAa;IAAA,IACZoF,QAAK;AAAA,aAAEA,MAAM;IAAC;IAAA,IACdgG,OAAI;AAAA,aAAExG,UAAU,IAAI;IAAC;IAAA,KAAA,OAAA,IAAA;AAAA,aACdhE,KAAK,wBAAwB2B,MAAM0J,KAAK;IAAC;IAAA,IAAAnB,WAAA;AAAA,aAAA,CAAAH,kBAG/CxL,MAAI;QAACyL,MAAM,CAACjI,cAAc,CAACD;QAAS,IAAAoI,WAAA;AAAA,cAAAoB,QAAAC,QAAA;AAAAN,mBAAAK,OAAAvB,kBAEhCxL,MAAI;YAAA,IAACyL,OAAI;AAAA,qBAAEC,OAAA,MAAA,CAAA,CAAA7H,QAAQ,CAAC,EAAA,KAAIT,MAAM4E;YAAU;YAAA,IAAA2D,WAAA;AAAA,qBAAAH,kBACtCxK,QAAM;gBACLgG,MAAI;gBACJ6E,OAAK;gBACLD,SAAO;gBACPE,SAASA,MAAMpF,mCAAS4E;gBAAe,IAAAK,WAAA;AAAA,yBAAA,CAAAH,kBAEtCvK,MAAI;oBAAC8K,MAAMlK;oBAAgB,SAAA;kBAAA,CAAA,GAAA6J,OAAA,MAC3BpI,KAAKmE,EAAE,gBAAgB,CAAC,CAAA;gBAAA;cAAA,CAAA;YAAA;UAAA,CAAA,GAAA,IAAA;AAAAiF,mBAAAK,OAAAvB,kBAG5BxK,QAAM;YAACgG,MAAI;YAAM6E,OAAK;YAAQD,SAAO;YAASE,SAASvD;YAAa,IAAAoD,WAAA;AAAA,qBAAA,CAAAH,kBAClEvK,MAAI;gBAAC8K,MAAM9J;gBAAW,SAAA;cAAA,CAAA,GAAAyJ,OAAA,MACtBpI,KAAKmE,EAAE,mBAAmB,CAAC,CAAA;YAAA;UAAA,CAAA,GAAA,IAAA;AAAA,iBAAAsF;QAAA;MAAA,CAAA,GAAAvB,kBAMjCxL,MAAI;QAAA,IAACyL,OAAI;AAAA,iBAAE1H,WAAW;QAAC;QAAA4H,UAAIsB,UAASA,KAAK,EAAEtB;MAAQ,CAAA,GAAAH,kBAGnDxL,MAAI;QAAA,IAACyL,OAAI;AAAA,iBAAExH,WAAW;QAAC;QAAA0H,UACpBsB,WAAI,MAAA;AAAA,cAAAC,QAAAC,QAAA;AAAAD,gBAAAE,iBAAA,UACwBhF,kBAAkB;AAAAsE,mBAAAQ,OAAA1B,kBAC3CtK,WAAS;YAACmM,QAAM;YAAA,IAAA1B,WAAA;AAAA,qBAAA,CAAAH,kBACdtK,UAAUoM,MAAI;gBAAA,IAAA3B,WAAA;AAAA,yBAAAH,kBACZxK,QAAM;oBAACuM,MAAI;oBAAU1B,OAAK;oBAAQD,SAAO;oBAAA,IAAAD,WAAA;AAAA,6BAAA,CAAAH,kBACvCvK,MAAI;wBAAC8K,MAAM7J;wBAAU,SAAA;sBAAA,CAAA,GAAAwJ,OAAA,MACrBpI,KAAKmE,EAAE,kBAAkB,CAAC,CAAA;oBAAA;kBAAA,CAAA;gBAAA;cAAA,CAAA,GAAAiE,OAAA,MAG9BuB,KAAK,EAAEtB,SAAS9G,QAAQC,SAAS,CAAC,CAAA;YAAA;UAAA,CAAA,CAAA;AAAA,iBAAAoI;QAAA,GAAA;MAGxC,CAAA,GAAA1B,kBAIFxL,MAAI;QAAA,IAACyL,OAAI;AAAA,iBAAE,EAAEjI,cAAcG,aAAa;QAAE;QAAA,IAAAgI,WAAA;AAAA,cAAA6B,QAAAR,QAAA;AAAAN,mBAAAc,OAAAhC,kBAEtCxL,MAAI;YAAA,IAACyL,OAAI;AAAA,qBAAE,CAACrI,MAAMqK;YAAa;YAAA,IAAA9B,WAAA;AAAA,qBAAA,CAAAH,kBAE7BxL,MAAI;gBAAA,IAACyL,OAAI;AAAA,yBAAEC,OAAA,MAAA,CAAA,CAAA7H,QAAQ,CAAC,EAAA,KAAIT,MAAM4E;gBAAU;gBAAA,IAAA2D,WAAA;AAAA,yBAAAH,kBACtCxK,QAAM;oBAACgG,MAAI;oBAAM6E,OAAK;oBAAWD,SAAO;oBAASE,SAAStD;oBAAY,IAAAmD,WAAA;AAAA,6BAAA,CAAAH,kBACpEvK,MAAI;wBAAC8K,MAAM/J;wBAAQ,SAAA;sBAAA,CAAA,GAAA0J,OAAA,MAAkBpI,KAAKmE,EAAE,kBAAkB,CAAC,CAAA;oBAAA;kBAAA,CAAA;gBAAA;cAAA,CAAA,GAAA+D,kBAKnExL,MAAI;gBAAA,IAACyL,OAAI;AAAA,yBAAEC,OAAA,MAAA,CAAA,CAAA7H,QAAQ,CAAC,EAAA,KAAIT,MAAMsG;gBAAU;gBAAA,IAAAiC,WAAA;AAAA,yBAAAH,kBACtCxK,QAAM;oBACLgG,MAAI;oBACJ6E,OAAK;oBACLD,SAAO;oBACPE,SAASA,MAAM,KAAKrC,eAAe;oBAAC,IAAAkC,WAAA;AAAA,6BAAA,CAAAH,kBAEnCvK,MAAI;wBAAC8K,MAAM/J;wBAAQ,SAAA;sBAAA,CAAA,GAAA0J,OAAA,MACnBpI,KAAKmE,EAAE,oBAAoB,CAAC,CAAA;oBAAA;kBAAA,CAAA;gBAAA;cAAA,CAAA,GAAA+D,kBAGhCxL,MAAI;gBAAA,IAACyL,OAAI;;AAAA,yBAAEC,OAAA,MAAA,CAAA,CAAA7H,QAAQ,CAAC,EAAA,OAAIT,WAAMsG,eAANtG,mBAAkByG;gBAAW;gBAAA,IAAA8B,WAAA;AAAA,yBAAAH,kBACnDxK,QAAM;oBACLgG,MAAI;oBACJ6E,OAAK;oBACLD,SAAO;oBACPE,SAASlC;oBAAiB,IAC1B8D,WAAQ;AAAA,6BACNvH,UAAU,EAAEc,WAAW,KACvB,CAACd,UAAU,EAAEwH,KACVxG,UAAI;;AACF/D,6CAAM0F,oBAAN1F,+BAAwB+D,UAAS,SAClC,IAAE/D,WAAMiJ,kBAANjJ,+BAAsB+D,UAAS;uBACrC;oBAAC;oBAAA,IAAAwE,WAAA;AAAA,6BAAA,CAAAH,kBAGFvK,MAAI;wBAAC8K,MAAM5J;wBAAS,SAAA;sBAAA,CAAA,GAAAuJ,OAAA,MACpBpI,KAAKmE,EAAE,0BAA0B,CAAC,CAAA;oBAAA;kBAAA,CAAA;gBAAA;cAAA,CAAA,GAAA+D,kBAGtCxL,MAAI;gBAAA,IAACyL,OAAI;;AAAA,yBAAEC,OAAA,MAAA,CAAA,CAAA7H,QAAQ,CAAC,EAAA,OAAIT,WAAMsG,eAANtG,mBAAkB2G;gBAAY;gBAAA,IAAA4B,WAAA;AAAA,yBAAAH,kBACpDxK,QAAM;oBACLgG,MAAI;oBACJ6E,OAAK;oBACLD,SAAO;oBACPE,SAAShC;oBAAkB,IAC3B4D,WAAQ;AAAA,6BACNvH,UAAU,EAAEc,WAAW,KACvB,CAACd,UAAU,EAAEwH,KAAMxG,UAAI;;AAAK/D,4CAAMiJ,kBAANjJ,+BAAsB+D,UAAS;uBAAK;oBAAC;oBAAA,IAAAwE,WAAA;AAAA,6BAAA,CAAAH,kBAGlEvK,MAAI;wBAAC8K,MAAM3J;wBAAY,SAAA;sBAAA,CAAA,GAAAsJ,OAAA,MACvBpI,KAAKmE,EAAE,2BAA2B,CAAC,CAAA;oBAAA;kBAAA,CAAA;gBAAA;cAAA,CAAA,GAAA+D,kBAKvCxL,MAAI;gBAAA,IAACyL,OAAI;;AAAA,yBAAEC,OAAA,MAAA,CAAA,CAAA7H,QAAQ,CAAC,EAAA,OAAIT,WAAM6G,UAAN7G,mBAAagH;gBAAM;gBAAA,IAAAuB,WAAA;AAAA,yBAAAH,kBACzCxK,QAAM;oBAACgG,MAAI;oBAAM6E,OAAK;oBAAWD,SAAO;oBAASE,SAAS3B;oBAAiB,IAAAwB,WAAA;AAAA,6BAAA,CAAAH,kBACzEvK,MAAI;wBAAC8K,MAAM1J;wBAAU,SAAA;sBAAA,CAAA,GAAAqJ,OAAA,MACrBpI,KAAKmE,EAAE,uBAAuB,CAAC,CAAA;oBAAA;kBAAA,CAAA;gBAAA;cAAA,CAAA,GAAA+D,kBAGnCxL,MAAI;gBAAA,IAACyL,OAAI;AAAA,yBAAErI,MAAM6G;gBAAK;gBAAA,IAAA0B,WAAA;AAAA,yBAAAH,kBACpBxK,QAAM;oBAACgG,MAAI;oBAAM6E,OAAK;oBAAWD,SAAO;oBAASE,SAAS9B;oBAAmB,IAAA2B,WAAA;AAAA,6BAAA,CAAAH,kBAC3EvK,MAAI;wBAAC8K,MAAMhK;wBAAa,SAAA;sBAAA,CAAA,GAAA2J,OAAA,MACxBpI,KAAKmE,EAAE,yBAAyB,CAAC,CAAA;oBAAA;kBAAA,CAAA;gBAAA;cAAA,CAAA,CAAA;YAAA;UAAA,CAAA,GAAA,IAAA;AAAAiF,mBAAAc,OAAAhC,kBAMvCxL,MAAI;YAAA,IAACyL,OAAI;AAAA,qBAAEtH,UAAU;YAAC;YAAAwH,UAAIsB,UAASA,KAAK,EAAEtB,SAASK,GAAG;UAAC,CAAA,GAAA,IAAA;AAAA,iBAAAwB;QAAA;MAAA,CAAA,IAAA,MAAA;AAAA,YAAAI,QAAAC,QAAA;AAAAD,cAAAR,iBAAA,UAKsD5D,gBAAgB;AAAAsE,cAAtHC,QAAO;AAAErH,oBAAUqH;AAAIzL,uBAAaqE,QAAQoH,EAAE;QAAG,GAACH,KAAA;AAAAlB,iBAAAkB,OAAApC,kBAC3D9K,WAAS;UAAA,SAAA;UAER6D;UAAY,IACZyJ,aAAU;AAAA,mBAAEtC,OAAA,MAAAtI,MAAM4K,cAAc,IAAI,EAAA,IAAG,GAAG5K,MAAM4K,UAAU,WAAWtK;UAAS;UAAA,IAC9EyB,OAAI;AAAA,mBAAEuG,OAAA,MAAArG,eAAe,IAAI,CAAC,EAAA,IAAGF,KAAK,IAAIzB;UAAS;UAC/CuK,cAAc7I;UAAO,IACrBC,iBAAc;AAAA,mBAAEA,eAAe;UAAC;UAAA,IAChCE,QAAK;AAAA,mBAAEA,MAAM;UAAC;UACd2I,eAAe1I;UAAQ,IACvB2I,mBAAgB;AAAA,mBAAE/K,MAAM+K;UAAgB;UAAA,IACxCvK,gBAAa;;AAAA,mBACX8H,OAAA,MAAA,CAAA,CAAA/H,aAAa,CAAC,EAAA,IACVP,MAAMQ,kBACNR,WAAMsG,eAANtG,mBAAkByG,gBAAe,UAAQzG,WAAMsG,eAANtG,mBAAkB2G,iBAAgB,OACzE,aACArG;UAAS;UAAA,IAEjByC,YAAS;AAAA,mBAAEA,UAAU;UAAC;UACtBiI,mBAAmB5D;UAAqB,IACxC6D,aAAU;AAAA,mBAAE1K,aAAa,KAAKP,MAAMQ,kBAAkB,WAAW,OAAOF;UAAS;UACjF4K,WAAYnH,UAAS;AACnB,gBAAIkF,cAAclF,IAAI,GAAG;AACvB,qBAAO;YACT;AACA,mBAAOzD;UACT;UAAC,IAAAiI,WAAA;AAAA,mBAAA,CAAAH,kBAGAxL,MAAI;cAAA,IAACyL,OAAI;AAAA,uBAAEC,OAAA,MAAA3C,WAAW,KAAK,IAAI,EAAA,KAAIlF,QAAQ;cAAC;cAAA,IAAA8H,WAAA;AAAA,uBAAAH,kBAC1C7K,iBAAe;kBACdyG,KAAG;kBACHmH,QAAM;kBACNC,OAAK;kBACLC,UAAU;kBACVC,WAAW;kBAAK/C,UAEdgD,YAAK,MAAA;AAAA,wBAAAC,QAAAC,QAAA;AAAAnC,6BAAAkC,OAAApD,kBAEFlK,MAAI;sBACHuK,OAAK;sBAAA,IACL6B,WAAQ;;AAAA,+BAAE,IAAEtK,WAAM0F,oBAAN1F,+BAAwBuL,MAAMxH,UAAS;sBAAK;sBACxD2E,SAASA,MAAMlD,mBAAmB+F,MAAMxH,MAAMwH,MAAM9F,KAAK;sBAAC,IAAA8C,WAAA;AAAA,+BAAAH,kBAEzDvK,MAAI;0BAAA,IAAC8K,OAAI;AAAA,mCAAEM,cAAcsC,MAAMxH,IAAI,IAAI/E,eAAeD;0BAAS;wBAAA,CAAA;sBAAA;oBAAA,CAAA,CAAA;AAAA,2BAAAyM;kBAAA,GAAA;gBAGrE,CAAA;cAAA;YAAA,CAAA,GAAApD,kBAKJ1L,KAAG;cAAA,IAACgP,OAAI;AAAA,uBAAEzK,YAAY;cAAC;cAAAsH,UACpBoD,SAAGvD,kBACF7K,iBAAe;gBAAA,IACdyG,MAAG;AAAA,yBAAE2H,IAAI3H;gBAAG;gBAAA,IACZmH,SAAM;AAAA,yBAAE3N,gBAAgBmO,IAAIR,MAAM;gBAAC;gBAAA,IACnCS,gBAAa;AAAA,yBAAED,IAAIC;gBAAa;gBAAA,IAChCC,cAAW;AAAA,yBAAEF,IAAIE;gBAAW;gBAAA,IAC5BC,UAAO;AAAA,yBAAEH,IAAIG;gBAAO;gBAAA,IACpBC,UAAO;AAAA,yBAAEJ,IAAII;gBAAO;gBAAA,IACpBX,QAAK;AAAA,yBAAEO,IAAIP,SAAS;gBAAK;gBAAA,IACzBY,SAAM;AAAA,yBAAEL,IAAIK,UAAU;gBAAK;gBAAA,IAC3BC,WAAQ;AAAA,yBAAEN,IAAIM,YAAY;gBAAK;gBAAA,IAC/BC,QAAK;AAAA,yBAAEP,IAAIO;gBAAK;gBAAA,KAAA,OAAA,IAAA;AAAA,yBACTP,IAAIjC;gBAAK;gBAAA,IAChB2B,WAAQ;AAAA,yBAAEM,IAAIN,YAAY;gBAAI;gBAAA,IAC9BC,YAAS;AAAA,yBAAEK,IAAIL,aAAa;gBAAI;gBAAA/C,UAE9BgD,WAAU;;AACV,wBAAMY,UAAqC;oBACzC,GAAGZ;oBACHa,SAASA,CAACpI,KAAK3C,UAAU;AACvBD,+BAASmK,MAAM9F,OAAczB,KAAY3C,KAAK;oBAChD;kBACF;AAGA,sBACErB,MAAMsG,eACLqF,IAAIU,eAAe,UACpB5L,QAAQ,QACPT,WAAMsM,mBAANtM,+BAAuBuL,MAAMxH,UAAS,OACvC;AACA,2BAAAqE,kBACGlK,MAAI;sBAAA,KAAA,OAAA,IAAA;AAAA,+BACIG,KAAK,QAAQE,IAAIgO,EAAE;sBAAC;sBAC3B7D,SAAUzD,OAAM;AACdA,0BAAEC,eAAe;AACjBD,0BAAEuH,gBAAgB;AAClB,6BAAKnG,eAAekF,MAAMxH,IAAI;sBAChC;sBAAC,IAAAwE,WAAA;AAAA,+BAAA,EAAA,MAAA;AAAA,8BAAAkE,QAAAC,QAAA;AAAApD,mCAAAmD,OAAArE,kBAGEvK,MAAI;4BAAC8K,MAAMjK;0BAAgB,CAAA,CAAA;AAAA,iCAAA+N;wBAAA,GAAA,IAAA,MAAA;AAAA,8BAAAE,QAAAC,QAAA;AAAAtD,mCAAAqD,OAAA,MAEPhB,IAAIpD,SAAS4D,OAAO,CAAC;AAAA,iCAAAQ;wBAAA,GAAA,CAAA;sBAAA;oBAAA,CAAA;kBAGlD;AAEA,yBAAOhB,IAAIpD,SAAS4D,OAAO;gBAC7B;cAAC,CAAA;YAEJ,CAAA,GAAA/D,kBAIFxL,MAAI;cAAA,IAACyL,OAAI;AAAA,uBAAErI,MAAM6M;cAAkB;cAAA,IAAAtE,WAAA;AAAA,uBAAAH,kBACjC7K,iBAAe;kBAAA,IAAQyG,MAAG;AAAA,2BAAEhE,MAAM6M;kBAAkB;kBAAA,IAAG1B,SAAM;AAAA,2BAAEjL,KAAKmE,EAAE,wBAAwB;kBAAC;kBAAE2H,QAAM;kBAAAzD,UACpGgD,YAAK,MAAA;AAAA,wBAAAuB,QAAAC,QAAA;AAAAzD,6BAAAwD,OAAA,MAAA;;AAGD1P,uCAAI4P,cAAczB,MAAMxH,MAAM/D,MAAM6M,oBAAqB,IAAI,MAA7DzP,mBAGC6P,eAAe;qBAAmB;AAAA1D,6BAAA,MAAAC,YAAAsD,OAL3BzO,KAAKG,IAAI+N,IAAI,aAAa,CAAC,CAAA;AAAA,2BAAAO;kBAAA,GAAA;gBAOxC,CAAA;cAAA;YAAA,CAAA,GAAA1E,kBAIJxL,MAAI;cAAA,IAACyL,OAAI;AAAA,uBAAErI,MAAMkN;cAAkB;cAAA,IAAA3E,WAAA;AAAA,uBAAAH,kBACjC7K,iBAAe;kBAAA,IAAQyG,MAAG;AAAA,2BAAEhE,MAAMkN;kBAAkB;kBAAA,IAAG/B,SAAM;AAAA,2BAAEjL,KAAKmE,EAAE,sBAAsB;kBAAC;kBAAE2H,QAAM;kBAAAzD,UAClGgD,YAAK,MAAA;AAAA,wBAAA4B,SAAAJ,QAAA;AAAAzD,6BAAA6D,QAAA,MAEF/P,IAAI4P,cAAczB,MAAMxH,MAAM/D,MAAMkN,oBAAqB,IAAI,CAAC;AAAA3D,6BAAA,MAAAC,YAAA2D,QADrD9O,KAAKG,IAAI+N,IAAI,aAAa,CAAC,CAAA;AAAA,2BAAAY;kBAAA,GAAA;gBAGxC,CAAA;cAAA;YAAA,CAAA,CAAA;UAAA;QAAA,CAAA,CAAA;AAAA,eAAA3C;MAAA,GAAA,GAAApC,kBAORxL,MAAI;QAAA,IAACyL,OAAI;AAAA,iBAAEjI,cAAcG,aAAa;QAAC;QAAA,IAAAgI,WAAA;AAAA,cAAA6E,QAAAC,QAAA,GAAAC,QAAAF,MAAAG;AAAAjE,mBAAA8D,OAAAhF,kBAGnCxL,MAAI;YAAA,IAACyL,OAAI;AAAA,qBAAEtF,UAAU,EAAEc,SAAS;YAAC;YAAA,IAAA0E,WAAA;AAAA,qBAAAH,kBAC/BxK,QAAM;gBAACgG,MAAI;gBAAM6E,OAAK;gBAAUC,SAASZ;gBAAkB,IAAAS,WAAA;AAAA,yBACzDD,OAAA,MAAAtI,MAAMQ,kBAAkB,UAAU,EAAA,IAAGN,KAAKmE,EAAE,uBAAuB,IAAInE,KAAKmE,EAAE,oBAAoB;gBAAC;cAAA,CAAA;YAAA;UAAA,CAAA,GAAA,IAAA;AAAAiF,mBAAA8D,OAAAhF,kBAGvGxL,MAAI;YAAA,IAACyL,OAAI;AAAA,qBAAErI,MAAMQ,kBAAkB;YAAU;YAAA,IAAA+H,WAAA;AAAA,qBAAAH,kBAC3CxK,QAAM;gBAACgG,MAAI;gBAAM6E,OAAK;gBAAWC,SAASb;gBAAmB,IAAAU,WAAA;AAAA,yBAAA,CAAAD,OAAA,MAC3DpI,KAAKmE,EAAE,mBAAmB,CAAC,GAAA,MAAAiE,OAAA,MAAIvF,UAAU,EAAEc,MAAM,GAAA,GAAA;gBAAA;cAAA,CAAA;YAAA;UAAA,CAAA,GAAA,IAAA;AAAA,iBAAAuJ;QAAA;MAAA,CAAA,CAAA;IAAA;EAAA,CAAA,CAAA;AAQlE;AAGO,MAAMI,YAAYC,OAAOC,OAAO5N,eAAe;EACpD6N,QAAQrO;EACRsO,QAAQpO;EACRqO,OAAOnO;EACPoO,QAAQlO;AACV,CAAC;AACDmO,iBAAA,CAAA,OAAA,CAAA;",
|
|
5
|
+
"names": ["createEffect", "createMemo", "createSignal", "createUniqueId", "For", "onCleanup", "Show", "splitProps", "useContext", "createStore", "produce", "reconcile", "createControllableStore", "createControllableSignal", "obj", "openFileDialog", "DataSheet", "DataSheetColumn", "normalizeHeader", "BusyContainer", "useNotification", "useI18n", "Button", "Icon", "FormGroup", "useTopbarActions", "TopbarContext", "Dialog", "Link", "createEventListener", "useBeforeLeave", "clsx", "text", "gap", "pad", "IconDeviceFloppy", "IconExternalLink", "IconFileExcel", "IconPlus", "IconRefresh", "IconSearch", "IconTrash", "IconTrashOff", "IconUpload", "registerCrud", "unregisterCrud", "activateCrud", "isActiveCrud", "CrudSheetColumn", "createCrudSheetColumnSlotsAccessor", "CrudSheetFilter", "createCrudSheetFilterSlotAccessor", "CrudSheetTools", "createCrudSheetToolsSlotAccessor", "CrudSheetHeader", "createCrudSheetHeaderSlotAccessor", "CrudSheetBase", "props", "local", "noti", "i18n", "topbarCtx", "isInDialog", "close", "undefined", "isSelectMode", "selectionMode", "canEdit", "editable", "headerSlot", "HeaderProvider", "filterSlot", "FilterProvider", "toolsSlot", "ToolsProvider", "columnSlots", "ColumnsProvider", "items", "setItems", "value", "onChange", "onItemsChange", "originalItems", "filter", "setFilter", "filterInitial", "lastFilter", "setLastFilter", "clone", "page", "setPage", "totalPageCount", "setTotalPageCount", "sorts", "setSorts", "busyCount", "setBusyCount", "withBusy", "fn", "errorMessage", "c", "err", "error", "ready", "setReady", "selection", "setSelection", "selectedKeys", "setSelectedKeys", "onSelectedKeysChange", "selectedKeysSet", "Set", "formRef", "crudId", "refreshVersion", "doRefresh", "currentItems", "keysSet", "size", "length", "restored", "item", "key", "getItemKey", "has", "version", "refresh", "t", "result", "search", "pageCount", "getItemDiffs", "oneWayDiffs", "excludes", "inlineEdit", "diffsExcludes", "checkIgnoreChanges", "confirm", "handleFilterSubmit", "e", "preventDefault", "handleRefresh", "handleAddRow", "draft", "unshift", "newItem", "handleToggleDelete", "index", "isItemDeletable", "deleteProp", "dp", "splice", "handleSave", "diffs", "info", "submit", "success", "onSubmitComplete", "handleFormSubmit", "handleEditItem", "dialogEdit", "editItem", "handleDeleteItems", "deleteItems", "handleRestoreItems", "restoreItems", "handleExcelDownload", "excel", "download", "handleExcelUpload", "upload", "files", "accept", "file", "handleSelectionChange", "newSelection", "currentKeys", "add", "newSelectedKeys", "merged", "onSelect", "keys", "clearSelection", "handleSelectConfirm", "handleSelectCancel", "document", "ctrlKey", "stopImmediatePropagation", "requestSubmit", "altKey", "_$createComponent", "when", "_$memo", "children", "variant", "theme", "onClick", "icon", "ctx", "busy", "hasChanges", "save", "addItem", "isItemDeleted", "Action", "_el$", "_tmpl$", "$$click", "_$insert", "_$effect", "_$className", "muted", "class", "_el$2", "_tmpl$2", "slot", "_el$7", "_tmpl$5", "addEventListener", "inline", "Item", "type", "_el$3", "hideAutoTools", "disabled", "some", "_el$4", "_tmpl$3", "_$use", "el", "storageKey", "onPageChange", "onSortsChange", "isItemSelectable", "onSelectionChange", "autoSelect", "cellClass", "header", "fixed", "sortable", "resizable", "dsCtx", "_el$8", "_tmpl$6", "each", "col", "headerContent", "headerStyle", "summary", "tooltip", "hidden", "collapse", "width", "crudCtx", "setItem", "editTrigger", "isItemEditable", "md", "stopPropagation", "_el$9", "_tmpl$7", "_el$0", "_tmpl$8", "lastModifiedAtProp", "_el$1", "_tmpl$9", "getChainValue", "toFormatString", "lastModifiedByProp", "_el$10", "_el$5", "_tmpl$4", "_el$6", "firstChild", "CrudSheet", "Object", "assign", "Column", "Filter", "Tools", "Header", "_$delegateEvents"]
|
|
6
6
|
}
|
|
@@ -71,6 +71,8 @@ interface CrudSheetBaseProps<TItem, TFilter extends Record<string, unknown>> {
|
|
|
71
71
|
onItemsChange?: (items: TItem[]) => void;
|
|
72
72
|
excel?: ExcelConfig<TItem>;
|
|
73
73
|
selectionMode?: "single" | "multiple";
|
|
74
|
+
selectedKeys?: (string | number)[];
|
|
75
|
+
onSelectedKeysChange?: (keys: (string | number)[]) => void;
|
|
74
76
|
onSelect?: (result: SelectResult<TItem>) => void;
|
|
75
77
|
onSubmitComplete?: () => void;
|
|
76
78
|
hideAutoTools?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrudSheet.types.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\crud-sheet\\CrudSheet.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CrudSheet.types.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\crud-sheet\\CrudSheet.types.ts"],"names":[],"mappings":"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"}
|
package/docs/features.md
CHANGED
|
@@ -39,7 +39,7 @@ const result = await dialog.open(UserList);
|
|
|
39
39
|
|
|
40
40
|
## CrudSheet
|
|
41
41
|
|
|
42
|
-
DataSheet 기반 CRUD 기능 통합 컴포넌트. 인라인/다이얼로그 편집, 검색, Excel 가져오기/내보내기, 배치 작업을 지원한다.
|
|
42
|
+
DataSheet 기반 CRUD 기능 통합 컴포넌트. 인라인/다이얼로그 편집, 검색, Excel 가져오기/내보내기, 선택 모드, 배치 작업을 지원한다.
|
|
43
43
|
|
|
44
44
|
편집 방식은 `inlineEdit`과 `dialogEdit` 중 하나를 선택한다 (동시 사용 불가).
|
|
45
45
|
|
|
@@ -80,6 +80,7 @@ function ProductSheet(props: { close?: (result?: boolean) => void }) {
|
|
|
80
80
|
dialogEdit={{
|
|
81
81
|
editItem: (item) => dialog.open(ProductDetail, { item }),
|
|
82
82
|
deleteItems: (items) => deleteProducts(items),
|
|
83
|
+
restoreItems: (items) => restoreProducts(items),
|
|
83
84
|
}}
|
|
84
85
|
>
|
|
85
86
|
<CrudSheet.Column header="상품명" key="name" editTrigger>
|
|
@@ -90,15 +91,241 @@ function ProductSheet(props: { close?: (result?: boolean) => void }) {
|
|
|
90
91
|
}
|
|
91
92
|
```
|
|
92
93
|
|
|
94
|
+
### CrudSheet Props
|
|
95
|
+
|
|
96
|
+
| Prop | 타입 | 설명 |
|
|
97
|
+
|------|------|------|
|
|
98
|
+
| `search` | `(filter, page, sorts) => Promise<SearchResult<TItem>>` | 데이터 조회 함수. `page`가 `undefined`면 전체 조회 (Excel 등) |
|
|
99
|
+
| `getItemKey` | `(item: TItem) => string \| number \| undefined` | 아이템 고유 키 반환 |
|
|
100
|
+
| `close` | `() => void` | Dialog 모드 활성화. 전달 시 Dialog 헤더에 새로고침 버튼 표시 |
|
|
101
|
+
| `inlineEdit` | `InlineEditConfig<TItem>` | 인라인 편집 설정 (`dialogEdit`과 동시 사용 불가) |
|
|
102
|
+
| `dialogEdit` | `DialogEditConfig<TItem>` | 다이얼로그 편집 설정 (`inlineEdit`과 동시 사용 불가) |
|
|
103
|
+
| `editable` | `boolean` | 편집 버튼 표시 여부 (기본값: `true`) |
|
|
104
|
+
| `isItemEditable` | `(item: TItem) => boolean` | 아이템별 편집 가능 여부 (dialogEdit의 editTrigger 링크에 적용) |
|
|
105
|
+
| `isItemDeletable` | `(item: TItem) => boolean` | 아이템별 삭제 가능 여부 (삭제 버튼/링크 비활성화) |
|
|
106
|
+
| `isItemDeleted` | `(item: TItem) => boolean` | 아이템 삭제 상태 확인 (취소선 표시) |
|
|
107
|
+
| `isItemSelectable` | `(item: TItem) => boolean \| string` | 아이템별 선택 가능 여부 |
|
|
108
|
+
| `filterInitial` | `TFilter` | 필터 초기값 |
|
|
109
|
+
| `items` | `TItem[]` | 제어 모드: 외부에서 아이템 배열 전달 |
|
|
110
|
+
| `onItemsChange` | `(items: TItem[]) => void` | 제어 모드: 아이템 변경 콜백 |
|
|
111
|
+
| `storageKey` | `string` | DataSheet 컬럼 너비 등 상태 저장 키 |
|
|
112
|
+
| `lastModifiedAtProp` | `string` | 자동 "최종수정일시" 컬럼 추가 (DateTime 타입, hidden) |
|
|
113
|
+
| `lastModifiedByProp` | `string` | 자동 "수정자" 컬럼 추가 (string 타입, hidden) |
|
|
114
|
+
| `excel` | `ExcelConfig<TItem>` | Excel 가져오기/내보내기 설정 |
|
|
115
|
+
| `selectionMode` | `"single" \| "multiple"` | 선택 모드 활성화 |
|
|
116
|
+
| `selectedKeys` | `(string \| number)[]` | 제어 모드: 선택된 키 배열 |
|
|
117
|
+
| `onSelectedKeysChange` | `(keys) => void` | 제어 모드: 선택 변경 콜백 |
|
|
118
|
+
| `onSelect` | `(result: SelectResult<TItem>) => void` | 선택 확인 콜백 (single 모드는 클릭 시 자동 호출) |
|
|
119
|
+
| `onSubmitComplete` | `() => void` | 저장 완료 후 콜백 |
|
|
120
|
+
| `hideAutoTools` | `boolean` | 자동 생성 툴바 버튼 숨기기 |
|
|
121
|
+
| `class` | `string` | CSS 클래스 |
|
|
122
|
+
|
|
123
|
+
### 설정 타입
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
// 인라인 편집 설정
|
|
127
|
+
interface InlineEditConfig<TItem> {
|
|
128
|
+
submit: (diffs: ArrayOneWayDiffResult<TItem>[]) => Promise<void>;
|
|
129
|
+
newItem: () => TItem;
|
|
130
|
+
deleteProp?: keyof TItem & string; // 삭제 플래그 프로퍼티 (예: "isDeleted")
|
|
131
|
+
diffsExcludes?: string[]; // diff 비교 제외 프로퍼티
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// 다이얼로그 편집 설정
|
|
135
|
+
interface DialogEditConfig<TItem> {
|
|
136
|
+
editItem: (item?: TItem) => Promise<boolean | undefined>; // 등록(item 없음)/수정 다이얼로그
|
|
137
|
+
deleteItems?: (items: TItem[]) => Promise<boolean>; // 선택 항목 삭제
|
|
138
|
+
restoreItems?: (items: TItem[]) => Promise<boolean>; // 선택 항목 복원
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Excel 설정
|
|
142
|
+
interface ExcelConfig<TItem> {
|
|
143
|
+
download: (items: TItem[]) => Promise<void>; // 전체 데이터 다운로드
|
|
144
|
+
upload?: (file: File) => Promise<void>; // .xlsx 파일 업로드
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// 조회 결과
|
|
148
|
+
interface SearchResult<TItem> {
|
|
149
|
+
items: TItem[];
|
|
150
|
+
pageCount?: number; // 페이지 수 (미설정 시 페이징 없음)
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// 선택 결과
|
|
154
|
+
interface SelectResult<TItem> {
|
|
155
|
+
items: TItem[];
|
|
156
|
+
keys: (string | number)[];
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 선택 모드
|
|
161
|
+
|
|
162
|
+
`selectionMode`를 설정하면 체크박스 컬럼이 자동 추가된다. Dialog 모드에서 사용하면 선택 전용 UI로 전환된다.
|
|
163
|
+
|
|
164
|
+
```tsx
|
|
165
|
+
// 다중 선택 (제어 모드)
|
|
166
|
+
const [selectedKeys, setSelectedKeys] = createSignal<number[]>([]);
|
|
167
|
+
|
|
168
|
+
<CrudSheet
|
|
169
|
+
search={searchFn}
|
|
170
|
+
getItemKey={(item) => item.id}
|
|
171
|
+
selectionMode="multiple"
|
|
172
|
+
selectedKeys={selectedKeys()}
|
|
173
|
+
onSelectedKeysChange={setSelectedKeys}
|
|
174
|
+
>
|
|
175
|
+
<CrudSheet.Column key="name" header="이름">
|
|
176
|
+
{(ctx) => <div>{ctx.item.name}</div>}
|
|
177
|
+
</CrudSheet.Column>
|
|
178
|
+
</CrudSheet>
|
|
179
|
+
|
|
180
|
+
// Dialog에서 단일 선택 (클릭 시 자동 확정)
|
|
181
|
+
<CrudSheet
|
|
182
|
+
close={props.close}
|
|
183
|
+
search={searchFn}
|
|
184
|
+
getItemKey={(item) => item.id}
|
|
185
|
+
selectionMode="single"
|
|
186
|
+
onSelect={(result) => props.close?.({ selectedKeys: result.keys })}
|
|
187
|
+
>
|
|
188
|
+
...
|
|
189
|
+
</CrudSheet>
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Excel 가져오기/내보내기
|
|
193
|
+
|
|
194
|
+
```tsx
|
|
195
|
+
<CrudSheet
|
|
196
|
+
search={searchFn}
|
|
197
|
+
getItemKey={(item) => item.id}
|
|
198
|
+
excel={{
|
|
199
|
+
download: async (items) => {
|
|
200
|
+
// items는 전체 데이터 (페이징 무시하고 재조회)
|
|
201
|
+
await exportToExcel(items);
|
|
202
|
+
},
|
|
203
|
+
upload: async (file) => {
|
|
204
|
+
// .xlsx 파일 업로드 후 자동 새로고침
|
|
205
|
+
await importFromExcel(file);
|
|
206
|
+
},
|
|
207
|
+
}}
|
|
208
|
+
>
|
|
209
|
+
...
|
|
210
|
+
</CrudSheet>
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### 키보드 단축키
|
|
214
|
+
|
|
215
|
+
| 단축키 | 동작 |
|
|
216
|
+
|--------|------|
|
|
217
|
+
| `Ctrl+S` | 저장 (인라인 편집 모드) |
|
|
218
|
+
| `Ctrl+Alt+L` | 새로고침 |
|
|
219
|
+
|
|
220
|
+
활성화 조건: 해당 CrudSheet 영역에 포커스/클릭이 있어야 한다 (다중 CrudSheet 환경에서 충돌 방지).
|
|
221
|
+
|
|
93
222
|
### CrudSheet 서브 컴포넌트
|
|
94
223
|
|
|
95
224
|
| 컴포넌트 | 설명 |
|
|
96
225
|
|----------|------|
|
|
97
226
|
| `CrudSheet.Column` | 컬럼 정의. `editTrigger`로 dialogEdit 시 클릭 편집 링크 표시 |
|
|
98
|
-
| `CrudSheet.Filter` | 검색 필터
|
|
99
|
-
| `CrudSheet.Tools` | 커스텀 툴바
|
|
227
|
+
| `CrudSheet.Filter` | 검색 필터 영역. render prop으로 `(filter, setFilter)` 전달 |
|
|
228
|
+
| `CrudSheet.Tools` | 커스텀 툴바 버튼. render prop으로 `CrudSheetContext` 전달 |
|
|
100
229
|
| `CrudSheet.Header` | 시트 상단 커스텀 헤더 영역 |
|
|
101
230
|
|
|
231
|
+
### CrudSheet.Column
|
|
232
|
+
|
|
233
|
+
`DataSheetColumn`의 모든 props를 상속하며, 추가로 `editTrigger`와 CRUD 전용 셀 컨텍스트를 제공한다.
|
|
234
|
+
|
|
235
|
+
```tsx
|
|
236
|
+
<CrudSheet.Column<TItem>
|
|
237
|
+
key="name" // 컬럼 식별 키 (정렬, 저장에 사용)
|
|
238
|
+
header="이름" // 헤더 텍스트 또는 JSX
|
|
239
|
+
editTrigger // dialogEdit 시 클릭 편집 링크 표시
|
|
240
|
+
fixed // 고정 컬럼
|
|
241
|
+
hidden // 기본 숨김 (사용자가 토글 가능)
|
|
242
|
+
collapse // 접기 가능
|
|
243
|
+
width="150px" // 초기 너비
|
|
244
|
+
sortable={true} // 정렬 가능 (기본: true)
|
|
245
|
+
resizable={true} // 리사이즈 가능 (기본: true)
|
|
246
|
+
summary={(items) => items.reduce((sum, item) => sum + item.amount, 0)}
|
|
247
|
+
>
|
|
248
|
+
{(ctx) => (
|
|
249
|
+
// ctx: CrudSheetCellContext<TItem>
|
|
250
|
+
// ctx.item: 현재 아이템
|
|
251
|
+
// ctx.index: 배열 인덱스
|
|
252
|
+
// ctx.row: 행 번호
|
|
253
|
+
// ctx.depth: 트리 깊이
|
|
254
|
+
// ctx.setItem(key, value): 인라인 편집 시 값 변경
|
|
255
|
+
<TextInput value={ctx.item.name} onValueChange={(v) => ctx.setItem("name", v)} />
|
|
256
|
+
)}
|
|
257
|
+
</CrudSheet.Column>
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### CrudSheet.Filter
|
|
261
|
+
|
|
262
|
+
검색 필터 영역. render prop으로 현재 `filter` 상태와 `setFilter` (SolidJS store setter)를 전달한다. 검색 버튼은 자동 생성된다.
|
|
263
|
+
|
|
264
|
+
```tsx
|
|
265
|
+
<CrudSheet.Filter<{ searchText?: string; status?: string }>>
|
|
266
|
+
{(filter, setFilter) => (
|
|
267
|
+
<>
|
|
268
|
+
<FormGroup.Item label="검색어">
|
|
269
|
+
<TextInput value={filter.searchText ?? ""} onValueChange={(v) => setFilter("searchText", v)} />
|
|
270
|
+
</FormGroup.Item>
|
|
271
|
+
<FormGroup.Item label="상태">
|
|
272
|
+
<Select
|
|
273
|
+
value={filter.status}
|
|
274
|
+
onValueChange={(v) => setFilter("status", v)}
|
|
275
|
+
items={["active", "inactive"]}
|
|
276
|
+
/>
|
|
277
|
+
</FormGroup.Item>
|
|
278
|
+
</>
|
|
279
|
+
)}
|
|
280
|
+
</CrudSheet.Filter>
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### CrudSheet.Tools
|
|
284
|
+
|
|
285
|
+
커스텀 툴바 버튼. render prop으로 `CrudSheetContext`를 전달하여 내부 상태 접근 및 액션 호출이 가능하다.
|
|
286
|
+
|
|
287
|
+
```tsx
|
|
288
|
+
<CrudSheet.Tools<TItem>>
|
|
289
|
+
{(ctx) => (
|
|
290
|
+
<>
|
|
291
|
+
<Button size="sm" onClick={() => void handleCustomAction(ctx.selection())}>
|
|
292
|
+
커스텀 액션 ({ctx.selection().length}건)
|
|
293
|
+
</Button>
|
|
294
|
+
<Show when={ctx.hasChanges()}>
|
|
295
|
+
<span class="text-warning-500">변경사항 있음</span>
|
|
296
|
+
</Show>
|
|
297
|
+
</>
|
|
298
|
+
)}
|
|
299
|
+
</CrudSheet.Tools>
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
#### CrudSheetContext API
|
|
303
|
+
|
|
304
|
+
| 멤버 | 타입 | 설명 |
|
|
305
|
+
|------|------|------|
|
|
306
|
+
| `items()` | `TItem[]` | 현재 페이지 아이템 목록 |
|
|
307
|
+
| `selection()` | `TItem[]` | 현재 선택된 아이템 목록 |
|
|
308
|
+
| `page()` | `number` | 현재 페이지 번호 |
|
|
309
|
+
| `sorts()` | `SortingDef[]` | 현재 정렬 정의 |
|
|
310
|
+
| `busy()` | `boolean` | 로딩 중 여부 |
|
|
311
|
+
| `hasChanges()` | `boolean` | 변경사항 존재 여부 (인라인 편집) |
|
|
312
|
+
| `save()` | `Promise<void>` | 저장 실행 |
|
|
313
|
+
| `refresh()` | `Promise<void>` | 데이터 새로고침 |
|
|
314
|
+
| `addItem()` | `void` | 행 추가 (인라인 편집) |
|
|
315
|
+
| `clearSelection()` | `void` | 선택 초기화 |
|
|
316
|
+
| `setPage(page)` | `void` | 페이지 변경 |
|
|
317
|
+
| `setSorts(sorts)` | `void` | 정렬 변경 |
|
|
318
|
+
|
|
319
|
+
### CrudSheet.Header
|
|
320
|
+
|
|
321
|
+
시트 상단에 커스텀 헤더 영역을 추가한다.
|
|
322
|
+
|
|
323
|
+
```tsx
|
|
324
|
+
<CrudSheet.Header>
|
|
325
|
+
<div class="p-2 text-lg font-bold">사용자 관리</div>
|
|
326
|
+
</CrudSheet.Header>
|
|
327
|
+
```
|
|
328
|
+
|
|
102
329
|
---
|
|
103
330
|
|
|
104
331
|
## CrudDetail
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysm/solid",
|
|
3
|
-
"version": "13.0.
|
|
3
|
+
"version": "13.0.95",
|
|
4
4
|
"description": "Simplysm package - SolidJS library",
|
|
5
5
|
"author": "simplysm",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -52,10 +52,10 @@
|
|
|
52
52
|
"tabbable": "^6.4.0",
|
|
53
53
|
"tailwind-merge": "^3.5.0",
|
|
54
54
|
"tailwindcss": "^3.4.19",
|
|
55
|
-
"@simplysm/core-browser": "13.0.
|
|
56
|
-
"@simplysm/core-common": "13.0.
|
|
57
|
-
"@simplysm/service-common": "13.0.
|
|
58
|
-
"@simplysm/service-client": "13.0.
|
|
55
|
+
"@simplysm/core-browser": "13.0.95",
|
|
56
|
+
"@simplysm/core-common": "13.0.95",
|
|
57
|
+
"@simplysm/service-common": "13.0.95",
|
|
58
|
+
"@simplysm/service-client": "13.0.95"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@solidjs/testing-library": "^0.8.10"
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createEffect,
|
|
3
|
+
createMemo,
|
|
3
4
|
createSignal,
|
|
4
5
|
createUniqueId,
|
|
5
6
|
For,
|
|
@@ -10,6 +11,7 @@ import {
|
|
|
10
11
|
} from "solid-js";
|
|
11
12
|
import { createStore, produce, reconcile } from "solid-js/store";
|
|
12
13
|
import { createControllableStore } from "../../../hooks/createControllableStore";
|
|
14
|
+
import { createControllableSignal } from "../../../hooks/createControllableSignal";
|
|
13
15
|
import type { DateTime } from "@simplysm/core-common";
|
|
14
16
|
import { obj } from "@simplysm/core-common";
|
|
15
17
|
import "@simplysm/core-common"; // register extensions
|
|
@@ -77,6 +79,8 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, unknown>>(
|
|
|
77
79
|
"dialogEdit",
|
|
78
80
|
"excel",
|
|
79
81
|
"selectionMode",
|
|
82
|
+
"selectedKeys",
|
|
83
|
+
"onSelectedKeysChange",
|
|
80
84
|
"onSelect",
|
|
81
85
|
"hideAutoTools",
|
|
82
86
|
"close",
|
|
@@ -128,7 +132,11 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, unknown>>(
|
|
|
128
132
|
const [ready, setReady] = createSignal(false);
|
|
129
133
|
|
|
130
134
|
const [selection, setSelection] = createSignal<TItem[]>([]);
|
|
131
|
-
const [selectedKeys, setSelectedKeys] =
|
|
135
|
+
const [selectedKeys, setSelectedKeys] = createControllableSignal<(string | number)[]>({
|
|
136
|
+
value: () => local.selectedKeys ?? [],
|
|
137
|
+
onChange: () => local.onSelectedKeysChange,
|
|
138
|
+
});
|
|
139
|
+
const selectedKeysSet = createMemo(() => new Set(selectedKeys()));
|
|
132
140
|
|
|
133
141
|
let formRef: HTMLFormElement | undefined;
|
|
134
142
|
|
|
@@ -146,8 +154,8 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, unknown>>(
|
|
|
146
154
|
// -- Key-based selection: restore selection when items change --
|
|
147
155
|
createEffect(() => {
|
|
148
156
|
const currentItems = items;
|
|
149
|
-
const
|
|
150
|
-
if (
|
|
157
|
+
const keysSet = selectedKeysSet();
|
|
158
|
+
if (keysSet.size === 0) {
|
|
151
159
|
if (selection().length > 0) {
|
|
152
160
|
setSelection([]);
|
|
153
161
|
}
|
|
@@ -155,7 +163,7 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, unknown>>(
|
|
|
155
163
|
}
|
|
156
164
|
const restored = currentItems.filter((item) => {
|
|
157
165
|
const key = local.getItemKey(item);
|
|
158
|
-
return key != null &&
|
|
166
|
+
return key != null && keysSet.has(key);
|
|
159
167
|
});
|
|
160
168
|
setSelection(restored);
|
|
161
169
|
});
|
|
@@ -346,7 +354,7 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, unknown>>(
|
|
|
346
354
|
merged.add(key); // Add current page selection
|
|
347
355
|
}
|
|
348
356
|
|
|
349
|
-
setSelectedKeys(merged);
|
|
357
|
+
setSelectedKeys([...merged]);
|
|
350
358
|
setSelection(newSelection);
|
|
351
359
|
|
|
352
360
|
// Auto-confirm for single selection mode in dialog
|
|
@@ -359,14 +367,14 @@ const CrudSheetBase = <TItem, TFilter extends Record<string, unknown>>(
|
|
|
359
367
|
}
|
|
360
368
|
|
|
361
369
|
function clearSelection() {
|
|
362
|
-
setSelectedKeys(
|
|
370
|
+
setSelectedKeys([]);
|
|
363
371
|
setSelection([]);
|
|
364
372
|
}
|
|
365
373
|
|
|
366
374
|
function handleSelectConfirm() {
|
|
367
375
|
local.onSelect?.({
|
|
368
376
|
items: selection(),
|
|
369
|
-
keys:
|
|
377
|
+
keys: selectedKeys(),
|
|
370
378
|
});
|
|
371
379
|
}
|
|
372
380
|
|
|
@@ -94,6 +94,8 @@ interface CrudSheetBaseProps<TItem, TFilter extends Record<string, unknown>> {
|
|
|
94
94
|
onItemsChange?: (items: TItem[]) => void;
|
|
95
95
|
excel?: ExcelConfig<TItem>;
|
|
96
96
|
selectionMode?: "single" | "multiple";
|
|
97
|
+
selectedKeys?: (string | number)[];
|
|
98
|
+
onSelectedKeysChange?: (keys: (string | number)[]) => void;
|
|
97
99
|
onSelect?: (result: SelectResult<TItem>) => void;
|
|
98
100
|
onSubmitComplete?: () => void;
|
|
99
101
|
hideAutoTools?: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
|
|
2
2
|
import type { JSX } from "solid-js";
|
|
3
3
|
import { render } from "@solidjs/testing-library";
|
|
4
4
|
import { CrudSheet } from "../../../../src/components/features/crud-sheet/CrudSheet";
|
|
@@ -460,3 +460,118 @@ describe("CrudSheet dialog mode", () => {
|
|
|
460
460
|
expect(container.textContent).not.toContain("Confirm");
|
|
461
461
|
});
|
|
462
462
|
});
|
|
463
|
+
|
|
464
|
+
describe("CrudSheet selectedKeys controllable", () => {
|
|
465
|
+
beforeEach(() => {
|
|
466
|
+
localStorage.setItem("test.i18n-locale", JSON.stringify("en"));
|
|
467
|
+
});
|
|
468
|
+
|
|
469
|
+
afterEach(() => {
|
|
470
|
+
localStorage.removeItem("test.i18n-locale");
|
|
471
|
+
});
|
|
472
|
+
|
|
473
|
+
const searchFn = () =>
|
|
474
|
+
Promise.resolve({
|
|
475
|
+
items: [
|
|
476
|
+
{ id: 1, name: "홍길동", isDeleted: false },
|
|
477
|
+
{ id: 2, name: "김철수", isDeleted: false },
|
|
478
|
+
{ id: 3, name: "이영희", isDeleted: false },
|
|
479
|
+
],
|
|
480
|
+
pageCount: 1,
|
|
481
|
+
});
|
|
482
|
+
|
|
483
|
+
it("controlled: selectedKeys prop sets initial selection", async () => {
|
|
484
|
+
const { container } = render(() => (
|
|
485
|
+
<ConfigProvider clientName="test"><I18nProvider>
|
|
486
|
+
<TestWrapper>
|
|
487
|
+
<CrudSheet<TestItem, Record<string, never>>
|
|
488
|
+
search={searchFn}
|
|
489
|
+
getItemKey={(item) => item.id}
|
|
490
|
+
selectionMode="multiple"
|
|
491
|
+
selectedKeys={[1, 3]}
|
|
492
|
+
onSelectedKeysChange={() => {}}
|
|
493
|
+
>
|
|
494
|
+
<CrudSheet.Column<TestItem> key="name" header="이름">
|
|
495
|
+
{(ctx) => <div>{ctx.item.name}</div>}
|
|
496
|
+
</CrudSheet.Column>
|
|
497
|
+
</CrudSheet>
|
|
498
|
+
</TestWrapper>
|
|
499
|
+
</I18nProvider></ConfigProvider>
|
|
500
|
+
));
|
|
501
|
+
|
|
502
|
+
await new Promise((r) => setTimeout(r, 100));
|
|
503
|
+
|
|
504
|
+
const checkboxes = container.querySelectorAll('[role="checkbox"]');
|
|
505
|
+
// Header checkbox + 3 row checkboxes = 4 total
|
|
506
|
+
// Row checkboxes: index 1 (id=1, checked), index 2 (id=2, unchecked), index 3 (id=3, checked)
|
|
507
|
+
const rowCheckboxes = Array.from(checkboxes).slice(1);
|
|
508
|
+
expect(rowCheckboxes[0].getAttribute("aria-checked")).toBe("true");
|
|
509
|
+
expect(rowCheckboxes[1].getAttribute("aria-checked")).toBe("false");
|
|
510
|
+
expect(rowCheckboxes[2].getAttribute("aria-checked")).toBe("true");
|
|
511
|
+
});
|
|
512
|
+
|
|
513
|
+
it("controlled: onSelectedKeysChange is called when row checkbox is clicked", async () => {
|
|
514
|
+
const onKeysChange = vi.fn();
|
|
515
|
+
|
|
516
|
+
const { container } = render(() => (
|
|
517
|
+
<ConfigProvider clientName="test"><I18nProvider>
|
|
518
|
+
<TestWrapper>
|
|
519
|
+
<CrudSheet<TestItem, Record<string, never>>
|
|
520
|
+
search={searchFn}
|
|
521
|
+
getItemKey={(item) => item.id}
|
|
522
|
+
selectionMode="multiple"
|
|
523
|
+
selectedKeys={[]}
|
|
524
|
+
onSelectedKeysChange={onKeysChange}
|
|
525
|
+
>
|
|
526
|
+
<CrudSheet.Column<TestItem> key="name" header="이름">
|
|
527
|
+
{(ctx) => <div>{ctx.item.name}</div>}
|
|
528
|
+
</CrudSheet.Column>
|
|
529
|
+
</CrudSheet>
|
|
530
|
+
</TestWrapper>
|
|
531
|
+
</I18nProvider></ConfigProvider>
|
|
532
|
+
));
|
|
533
|
+
|
|
534
|
+
await new Promise((r) => setTimeout(r, 100));
|
|
535
|
+
|
|
536
|
+
// Click the first row's checkbox cell (the clickable div wrapping the checkbox)
|
|
537
|
+
const checkboxCells = container.querySelectorAll('[role="checkbox"]');
|
|
538
|
+
const firstRowCheckboxCell = checkboxCells[1].parentElement;
|
|
539
|
+
firstRowCheckboxCell?.click();
|
|
540
|
+
|
|
541
|
+
await new Promise((r) => setTimeout(r, 50));
|
|
542
|
+
|
|
543
|
+
expect(onKeysChange).toHaveBeenCalled();
|
|
544
|
+
expect(onKeysChange.mock.calls[0][0]).toContain(1);
|
|
545
|
+
});
|
|
546
|
+
|
|
547
|
+
it("uncontrolled: selection works without selectedKeys prop", async () => {
|
|
548
|
+
const { container } = render(() => (
|
|
549
|
+
<ConfigProvider clientName="test"><I18nProvider>
|
|
550
|
+
<TestWrapper>
|
|
551
|
+
<CrudSheet<TestItem, Record<string, never>>
|
|
552
|
+
search={searchFn}
|
|
553
|
+
getItemKey={(item) => item.id}
|
|
554
|
+
selectionMode="multiple"
|
|
555
|
+
onSelect={() => {}}
|
|
556
|
+
>
|
|
557
|
+
<CrudSheet.Column<TestItem> key="name" header="이름">
|
|
558
|
+
{(ctx) => <div>{ctx.item.name}</div>}
|
|
559
|
+
</CrudSheet.Column>
|
|
560
|
+
</CrudSheet>
|
|
561
|
+
</TestWrapper>
|
|
562
|
+
</I18nProvider></ConfigProvider>
|
|
563
|
+
));
|
|
564
|
+
|
|
565
|
+
await new Promise((r) => setTimeout(r, 100));
|
|
566
|
+
|
|
567
|
+
// Click the first row's checkbox cell
|
|
568
|
+
const checkboxCells = container.querySelectorAll('[role="checkbox"]');
|
|
569
|
+
const firstRowCheckboxCell = checkboxCells[1].parentElement;
|
|
570
|
+
firstRowCheckboxCell?.click();
|
|
571
|
+
|
|
572
|
+
await new Promise((r) => setTimeout(r, 50));
|
|
573
|
+
|
|
574
|
+
// Checkbox should be checked (internal state)
|
|
575
|
+
expect(checkboxCells[1].getAttribute("aria-checked")).toBe("true");
|
|
576
|
+
});
|
|
577
|
+
});
|