@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
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { template as _$template } from "solid-js/web";
|
|
2
|
+
import { delegateEvents as _$delegateEvents } from "solid-js/web";
|
|
3
|
+
import { effect as _$effect } from "solid-js/web";
|
|
4
|
+
import { setAttribute as _$setAttribute } from "solid-js/web";
|
|
5
|
+
import { memo as _$memo } from "solid-js/web";
|
|
6
|
+
import { insert as _$insert } from "solid-js/web";
|
|
7
|
+
import { createComponent as _$createComponent } from "solid-js/web";
|
|
8
|
+
import { className as _$className } from "solid-js/web";
|
|
9
|
+
var _tmpl$ = /* @__PURE__ */ _$template(`<span>`), _tmpl$2 = /* @__PURE__ */ _$template(`<span class="flex items-center gap-1">`), _tmpl$3 = /* @__PURE__ */ _$template(`<span>,`), _tmpl$4 = /* @__PURE__ */ _$template(`<button type=button data-clear-button tabindex=-1 aria-label="\uC120\uD0DD \uD574\uC81C">`), _tmpl$5 = /* @__PURE__ */ _$template(`<button type=button data-search-button tabindex=-1 aria-label=\uAC80\uC0C9>`), _tmpl$6 = /* @__PURE__ */ _$template(`<div data-data-select-button><div role=combobox aria-haspopup=dialog><div></div><div class="flex items-center gap-0.5">`);
|
|
10
|
+
import { createEffect, createMemo, createResource, createSignal, For, on, Show, splitProps } from "solid-js";
|
|
11
|
+
import clsx from "clsx";
|
|
12
|
+
import { twMerge } from "tailwind-merge";
|
|
13
|
+
import { IconSearch, IconX } from "@tabler/icons-solidjs";
|
|
14
|
+
import { Icon } from "../../display/Icon.js";
|
|
15
|
+
import { Invalid } from "../../form-control/Invalid.js";
|
|
16
|
+
import { useDialog } from "../../disclosure/DialogContext.js";
|
|
17
|
+
import { createControllableSignal } from "../../../hooks/createControllableSignal.js";
|
|
18
|
+
import { textMuted } from "../../../styles/tokens.styles.js";
|
|
19
|
+
import { triggerBaseClass, triggerDisabledClass, triggerInsetClass, triggerSizeClasses } from "../../form-control/DropdownTrigger.styles.js";
|
|
20
|
+
const containerClass = clsx("inline-flex items-center", "group");
|
|
21
|
+
const selectedValueClass = clsx("flex-1", "whitespace-nowrap", "overflow-hidden", "text-ellipsis");
|
|
22
|
+
const actionButtonClass = clsx("flex-shrink-0", "p-0.5", "rounded", "cursor-pointer", "transition-colors", "hover:bg-base-200 dark:hover:bg-base-700", "focus:outline-none");
|
|
23
|
+
function getTriggerContainerClass(options) {
|
|
24
|
+
return twMerge(triggerBaseClass, "px-2 py-1", options.size && triggerSizeClasses[options.size], options.disabled && triggerDisabledClass, options.inset && triggerInsetClass, options.class);
|
|
25
|
+
}
|
|
26
|
+
function DataSelectButton(props) {
|
|
27
|
+
const [local] = splitProps(props, ["value", "onValueChange", "load", "modal", "renderItem", "multiple", "required", "disabled", "size", "inset", "validate", "touchMode", "dialogOptions"]);
|
|
28
|
+
const dialog = useDialog();
|
|
29
|
+
const normalizeKeys = (value) => {
|
|
30
|
+
if (value === void 0 || value === null) return [];
|
|
31
|
+
if (Array.isArray(value)) return value;
|
|
32
|
+
return [value];
|
|
33
|
+
};
|
|
34
|
+
const [getValue, setValue] = createControllableSignal({
|
|
35
|
+
value: () => local.value,
|
|
36
|
+
onChange: () => local.onValueChange
|
|
37
|
+
});
|
|
38
|
+
const [loadKeys, setLoadKeys] = createSignal(normalizeKeys(local.value));
|
|
39
|
+
createEffect(on(() => getValue(), (value) => {
|
|
40
|
+
setLoadKeys(normalizeKeys(value));
|
|
41
|
+
}));
|
|
42
|
+
const [selectedItems] = createResource(loadKeys, async (keys) => {
|
|
43
|
+
if (keys.length === 0) return [];
|
|
44
|
+
return Promise.resolve(local.load(keys));
|
|
45
|
+
});
|
|
46
|
+
const hasValue = createMemo(() => {
|
|
47
|
+
const keys = normalizeKeys(getValue());
|
|
48
|
+
return keys.length > 0;
|
|
49
|
+
});
|
|
50
|
+
const clearable = createMemo(() => !local.required && hasValue() && !local.disabled);
|
|
51
|
+
const errorMsg = createMemo(() => {
|
|
52
|
+
var _a;
|
|
53
|
+
const v = getValue();
|
|
54
|
+
if (local.required) {
|
|
55
|
+
const keys = normalizeKeys(v);
|
|
56
|
+
if (keys.length === 0) return "\uD544\uC218 \uC785\uB825 \uD56D\uBAA9\uC785\uB2C8\uB2E4";
|
|
57
|
+
}
|
|
58
|
+
return (_a = local.validate) == null ? void 0 : _a.call(local, v);
|
|
59
|
+
});
|
|
60
|
+
const handleOpenModal = async () => {
|
|
61
|
+
if (local.disabled) return;
|
|
62
|
+
const result = await dialog.show(local.modal, local.dialogOptions ?? {});
|
|
63
|
+
if (result) {
|
|
64
|
+
const newKeys = result.selectedKeys;
|
|
65
|
+
if (local.multiple) {
|
|
66
|
+
setValue(newKeys);
|
|
67
|
+
} else {
|
|
68
|
+
setValue(newKeys.length > 0 ? newKeys[0] : void 0);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
const handleClear = (e) => {
|
|
73
|
+
e.stopPropagation();
|
|
74
|
+
if (local.multiple) {
|
|
75
|
+
setValue([]);
|
|
76
|
+
} else {
|
|
77
|
+
setValue(void 0);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
const renderSelectedDisplay = () => {
|
|
81
|
+
const items = selectedItems();
|
|
82
|
+
if (!items || items.length === 0) {
|
|
83
|
+
return (() => {
|
|
84
|
+
var _el$ = _tmpl$();
|
|
85
|
+
_$className(_el$, textMuted);
|
|
86
|
+
return _el$;
|
|
87
|
+
})();
|
|
88
|
+
}
|
|
89
|
+
return (() => {
|
|
90
|
+
var _el$2 = _tmpl$2();
|
|
91
|
+
_$insert(_el$2, _$createComponent(For, {
|
|
92
|
+
each: items,
|
|
93
|
+
children: (item, index) => [_$createComponent(Show, {
|
|
94
|
+
get when() {
|
|
95
|
+
return index() > 0;
|
|
96
|
+
},
|
|
97
|
+
get children() {
|
|
98
|
+
var _el$3 = _tmpl$3();
|
|
99
|
+
_$className(_el$3, textMuted);
|
|
100
|
+
return _el$3;
|
|
101
|
+
}
|
|
102
|
+
}), _$memo(() => local.renderItem(item))]
|
|
103
|
+
}));
|
|
104
|
+
return _el$2;
|
|
105
|
+
})();
|
|
106
|
+
};
|
|
107
|
+
const triggerClassName = () => getTriggerContainerClass({
|
|
108
|
+
size: local.size,
|
|
109
|
+
disabled: local.disabled,
|
|
110
|
+
inset: local.inset
|
|
111
|
+
});
|
|
112
|
+
return _$createComponent(Invalid, {
|
|
113
|
+
get message() {
|
|
114
|
+
return errorMsg();
|
|
115
|
+
},
|
|
116
|
+
variant: "border",
|
|
117
|
+
get touchMode() {
|
|
118
|
+
return local.touchMode;
|
|
119
|
+
},
|
|
120
|
+
get children() {
|
|
121
|
+
var _el$4 = _tmpl$6(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
|
|
122
|
+
_$className(_el$4, containerClass);
|
|
123
|
+
_el$5.$$keydown = (e) => {
|
|
124
|
+
if (local.disabled) return;
|
|
125
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
126
|
+
e.preventDefault();
|
|
127
|
+
void handleOpenModal();
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
_$setAttribute(_el$5, "aria-expanded", false);
|
|
131
|
+
_$className(_el$6, selectedValueClass);
|
|
132
|
+
_$insert(_el$6, renderSelectedDisplay);
|
|
133
|
+
_$insert(_el$7, _$createComponent(Show, {
|
|
134
|
+
get when() {
|
|
135
|
+
return clearable();
|
|
136
|
+
},
|
|
137
|
+
get children() {
|
|
138
|
+
var _el$8 = _tmpl$4();
|
|
139
|
+
_el$8.$$click = handleClear;
|
|
140
|
+
_$insert(_el$8, _$createComponent(Icon, {
|
|
141
|
+
icon: IconX,
|
|
142
|
+
size: "0.875em"
|
|
143
|
+
}));
|
|
144
|
+
_$effect(() => _$className(_el$8, twMerge(actionButtonClass, "text-base-400 hover:text-danger-500")));
|
|
145
|
+
return _el$8;
|
|
146
|
+
}
|
|
147
|
+
}), null);
|
|
148
|
+
_$insert(_el$7, _$createComponent(Show, {
|
|
149
|
+
get when() {
|
|
150
|
+
return !local.disabled;
|
|
151
|
+
},
|
|
152
|
+
get children() {
|
|
153
|
+
var _el$9 = _tmpl$5();
|
|
154
|
+
_el$9.$$click = () => void handleOpenModal();
|
|
155
|
+
_$insert(_el$9, _$createComponent(Icon, {
|
|
156
|
+
icon: IconSearch,
|
|
157
|
+
size: "0.875em"
|
|
158
|
+
}));
|
|
159
|
+
_$effect(() => _$className(_el$9, twMerge(actionButtonClass, "text-base-400 hover:text-primary-500")));
|
|
160
|
+
return _el$9;
|
|
161
|
+
}
|
|
162
|
+
}), null);
|
|
163
|
+
_$effect((_p$) => {
|
|
164
|
+
var _v$ = local.disabled || void 0, _v$2 = local.required || void 0, _v$3 = local.disabled ? -1 : 0, _v$4 = triggerClassName();
|
|
165
|
+
_v$ !== _p$.e && _$setAttribute(_el$5, "aria-disabled", _p$.e = _v$);
|
|
166
|
+
_v$2 !== _p$.t && _$setAttribute(_el$5, "aria-required", _p$.t = _v$2);
|
|
167
|
+
_v$3 !== _p$.a && _$setAttribute(_el$5, "tabindex", _p$.a = _v$3);
|
|
168
|
+
_v$4 !== _p$.o && _$className(_el$5, _p$.o = _v$4);
|
|
169
|
+
return _p$;
|
|
170
|
+
}, {
|
|
171
|
+
e: void 0,
|
|
172
|
+
t: void 0,
|
|
173
|
+
a: void 0,
|
|
174
|
+
o: void 0
|
|
175
|
+
});
|
|
176
|
+
return _el$4;
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
_$delegateEvents(["keydown", "click"]);
|
|
181
|
+
export {
|
|
182
|
+
DataSelectButton
|
|
183
|
+
};
|
|
184
|
+
//# sourceMappingURL=DataSelectButton.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/features/data-select-button/DataSelectButton.tsx"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["createEffect", "createMemo", "createResource", "createSignal", "For", "on", "Show", "splitProps", "clsx", "twMerge", "IconSearch", "IconX", "Icon", "Invalid", "useDialog", "createControllableSignal", "textMuted", "triggerBaseClass", "triggerDisabledClass", "triggerInsetClass", "triggerSizeClasses", "containerClass", "selectedValueClass", "actionButtonClass", "getTriggerContainerClass", "options", "size", "disabled", "inset", "class", "DataSelectButton", "props", "local", "dialog", "normalizeKeys", "value", "undefined", "Array", "isArray", "getValue", "setValue", "onChange", "onValueChange", "loadKeys", "setLoadKeys", "selectedItems", "keys", "length", "Promise", "resolve", "load", "hasValue", "clearable", "required", "errorMsg", "v", "validate", "handleOpenModal", "result", "show", "modal", "dialogOptions", "newKeys", "selectedKeys", "multiple", "handleClear", "e", "stopPropagation", "renderSelectedDisplay", "items", "_el$", "_tmpl$", "_$className", "_el$2", "_tmpl$2", "_$insert", "_$createComponent", "each", "children", "item", "index", "when", "_el$3", "_tmpl$3", "_$memo", "renderItem", "triggerClassName", "message", "variant", "touchMode", "_el$4", "_tmpl$6", "_el$5", "firstChild", "_el$6", "_el$7", "nextSibling", "$$keydown", "key", "preventDefault", "_$setAttribute", "_el$8", "_tmpl$4", "$$click", "icon", "_$effect", "_el$9", "_tmpl$5", "_p$", "_v$", "_v$2", "_v$3", "_v$4", "t", "a", "o", "_$delegateEvents"]
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissionTable.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\permission-table\\PermissionTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EACL,KAAK,SAAS,EAQf,MAAM,UAAU,CAAC;AAMlB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAQnE,MAAM,WAAW,oBAAoB,CAAC,OAAO,GAAG,MAAM;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACzD,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;CAC3B;AAID,6BAA6B;AAC7B,wBAAgB,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,CAY5E;AAED,wCAAwC;AACxC,wBAAgB,eAAe,CAAC,OAAO,EACrC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EACzB,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,GAC7B,OAAO,CAAC,OAAO,CAAC,EAAE,CAiBpB;AAED,2BAA2B;AAC3B,wBAAgB,eAAe,CAAC,OAAO,EACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgCzB;AA8FD,eAAO,MAAM,eAAe,EAAE,SAAS,CAAC,oBAAoB,CAqG3D,CAAC"}
|
|
@@ -9,7 +9,7 @@ var _tmpl$ = /* @__PURE__ */ _$template(`<div data-permission-table>`), _tmpl$2
|
|
|
9
9
|
import { createEffect, createMemo, createSignal, For, on, Show, splitProps } from "solid-js";
|
|
10
10
|
import clsx from "clsx";
|
|
11
11
|
import { twMerge } from "tailwind-merge";
|
|
12
|
-
import { DataSheet } from "
|
|
12
|
+
import { DataSheet } from "../../data/sheet/DataSheet.js";
|
|
13
13
|
import { Checkbox } from "../../form-control/checkbox/Checkbox.js";
|
|
14
14
|
import { borderDefault } from "../../../styles/tokens.styles.js";
|
|
15
15
|
const titleCellClass = clsx("flex items-stretch", "px-2");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/
|
|
3
|
+
"sources": ["../../../../src/components/features/permission-table/PermissionTable.tsx"],
|
|
4
4
|
"mappings": "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",
|
|
5
5
|
"names": ["createEffect", "createMemo", "createSignal", "For", "on", "Show", "splitProps", "clsx", "twMerge", "DataSheet", "Checkbox", "borderDefault", "titleCellClass", "indentGuideWrapperClass", "indentGuideLineClass", "collectAllPerms", "items", "set", "Set", "walk", "list", "item", "perms", "p", "add", "children", "filterByModules", "modules", "length", "result", "some", "m", "includes", "undefined", "push", "changePermCheck", "value", "perm", "checked", "apply", "target", "href", "permIndex", "indexOf", "basePerm", "baseOff", "i", "child", "isItemVisible", "collectVisiblePerms", "isGroupPermChecked", "hasPermInTree", "isPermDisabled", "collectExpandable", "getChildren", "PermissionTable", "props", "local", "visibleItems", "filter", "filtered", "allPerms", "currentValue", "getAllExpandable", "expandedItems", "setExpandedItems", "defer", "handlePermChange", "newValue", "onValueChange", "_el$", "_tmpl$", "_$insert", "_$createComponent", "onExpandedItemsChange", "hideConfigBar", "Column", "key", "header", "sortable", "resizable", "ctx", "_el$2", "_tmpl$2", "_el$3", "firstChild", "_$className", "each", "Array", "from", "depth", "_el$4", "_tmpl$3", "_el$5", "title", "when", "disabled", "inset", "_$effect", "_p$", "_v$", "class", "_v$2", "style", "e", "t", "_$style"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
import { type SharedDataAccessor } from "../../../providers/shared-data/SharedDataContext";
|
|
3
|
+
import { type ComponentSize } from "../../../styles/tokens.styles";
|
|
4
|
+
/** SharedDataSelect Props */
|
|
5
|
+
export interface SharedDataSelectProps<TItem> {
|
|
6
|
+
/** 공유 데이터 접근자 */
|
|
7
|
+
data: SharedDataAccessor<TItem>;
|
|
8
|
+
/** 현재 선택된 값 */
|
|
9
|
+
value?: unknown;
|
|
10
|
+
/** 값 변경 콜백 */
|
|
11
|
+
onValueChange?: (value: unknown) => void;
|
|
12
|
+
/** 다중 선택 모드 */
|
|
13
|
+
multiple?: boolean;
|
|
14
|
+
/** 필수 입력 */
|
|
15
|
+
required?: boolean;
|
|
16
|
+
/** 비활성화 */
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
/** 트리거 크기 */
|
|
19
|
+
size?: ComponentSize;
|
|
20
|
+
/** 테두리 없는 스타일 */
|
|
21
|
+
inset?: boolean;
|
|
22
|
+
/** 항목 필터 함수 */
|
|
23
|
+
filterFn?: (item: TItem, index: number) => boolean;
|
|
24
|
+
/** 선택 모달 컴포넌트 팩토리 */
|
|
25
|
+
modal?: () => JSX.Element;
|
|
26
|
+
/** 편집 모달 컴포넌트 팩토리 */
|
|
27
|
+
editModal?: () => JSX.Element;
|
|
28
|
+
/** 아이템 렌더링 함수 */
|
|
29
|
+
children: (item: TItem, index: number, depth: number) => JSX.Element;
|
|
30
|
+
}
|
|
31
|
+
export declare function SharedDataSelect<TItem>(props: SharedDataSelectProps<TItem>): JSX.Element;
|
|
32
|
+
//# sourceMappingURL=SharedDataSelect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SharedDataSelect.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\shared-data\\SharedDataSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,GAAG,EAA0B,MAAM,UAAU,CAAC;AAExE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAI3F,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,6BAA6B;AAC7B,MAAM,WAAW,qBAAqB,CAAC,KAAK;IAC1C,iBAAiB;IACjB,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEhC,eAAe;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc;IACd,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,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,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAC1B,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAE9B,iBAAiB;IACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC;CACtE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CA6DxF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { mergeProps as _$mergeProps } from "solid-js/web";
|
|
2
|
+
import { memo as _$memo } from "solid-js/web";
|
|
3
|
+
import { createComponent as _$createComponent } from "solid-js/web";
|
|
4
|
+
import { createMemo, mergeProps, splitProps } from "solid-js";
|
|
5
|
+
import { IconEdit, IconSearch } from "@tabler/icons-solidjs";
|
|
6
|
+
import { Select } from "../../form-control/select/Select.js";
|
|
7
|
+
import { Icon } from "../../display/Icon.js";
|
|
8
|
+
import { useDialog } from "../../disclosure/DialogContext.js";
|
|
9
|
+
function SharedDataSelect(props) {
|
|
10
|
+
const [local, rest] = splitProps(props, ["data", "filterFn", "modal", "editModal", "children"]);
|
|
11
|
+
const dialog = useDialog();
|
|
12
|
+
const items = createMemo(() => {
|
|
13
|
+
const allItems = local.data.items();
|
|
14
|
+
if (!local.filterFn) return allItems;
|
|
15
|
+
return allItems.filter(local.filterFn);
|
|
16
|
+
});
|
|
17
|
+
const handleOpenModal = async () => {
|
|
18
|
+
if (!local.modal) return;
|
|
19
|
+
await dialog.show(local.modal, {});
|
|
20
|
+
};
|
|
21
|
+
const handleOpenEditModal = async () => {
|
|
22
|
+
if (!local.editModal) return;
|
|
23
|
+
await dialog.show(local.editModal, {});
|
|
24
|
+
};
|
|
25
|
+
const selectProps = mergeProps(rest, {
|
|
26
|
+
get items() {
|
|
27
|
+
return items();
|
|
28
|
+
},
|
|
29
|
+
get getChildren() {
|
|
30
|
+
if (!local.data.getParentKey) return void 0;
|
|
31
|
+
return (item) => {
|
|
32
|
+
const key = local.data.getKey(item);
|
|
33
|
+
return items().filter((child) => local.data.getParentKey(child) === key);
|
|
34
|
+
};
|
|
35
|
+
},
|
|
36
|
+
get getSearchText() {
|
|
37
|
+
return local.data.getSearchText;
|
|
38
|
+
},
|
|
39
|
+
get getIsHidden() {
|
|
40
|
+
return local.data.getIsHidden;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return _$createComponent(Select, _$mergeProps(selectProps, {
|
|
44
|
+
get children() {
|
|
45
|
+
return [_$createComponent(Select.ItemTemplate, {
|
|
46
|
+
get children() {
|
|
47
|
+
return local.children;
|
|
48
|
+
}
|
|
49
|
+
}), _$memo(() => _$memo(() => !!local.modal)() && _$createComponent(Select.Action, {
|
|
50
|
+
onClick: () => void handleOpenModal(),
|
|
51
|
+
"aria-label": "\uAC80\uC0C9",
|
|
52
|
+
get children() {
|
|
53
|
+
return _$createComponent(Icon, {
|
|
54
|
+
icon: IconSearch,
|
|
55
|
+
size: "1em"
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
})), _$memo(() => _$memo(() => !!local.editModal)() && _$createComponent(Select.Action, {
|
|
59
|
+
onClick: () => void handleOpenEditModal(),
|
|
60
|
+
"aria-label": "\uD3B8\uC9D1",
|
|
61
|
+
get children() {
|
|
62
|
+
return _$createComponent(Icon, {
|
|
63
|
+
icon: IconEdit,
|
|
64
|
+
size: "1em"
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}))];
|
|
68
|
+
}
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
export {
|
|
72
|
+
SharedDataSelect
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=SharedDataSelect.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/features/shared-data/SharedDataSelect.tsx"],
|
|
4
|
+
"mappings": ";;;AAAA,SAASA,YAAsBC,YAAYC,kBAAkB;AAC7D,SAASC,UAAUC,kBAAkB;AAErC,SAASC,cAAgC;AACzC,SAASC,YAAY;AACrB,SAASC,iBAAiB;AAkCnB,SAASC,iBAAwBC,OAAkD;AACxF,QAAM,CAACC,OAAOC,IAAI,IAAIT,WAAWO,OAAO,CAAC,QAAQ,YAAY,SAAS,aAAa,UAAU,CAAC;AAE9F,QAAMG,SAASL,UAAU;AAGzB,QAAMM,QAAQb,WAAW,MAAM;AAC7B,UAAMc,WAAWJ,MAAMK,KAAKF,MAAM;AAClC,QAAI,CAACH,MAAMM,SAAU,QAAOF;AAC5B,WAAOA,SAASG,OAAOP,MAAMM,QAAQ;EACvC,CAAC;AAGD,QAAME,kBAAkB,YAAY;AAClC,QAAI,CAACR,MAAMS,MAAO;AAClB,UAAMP,OAAOQ,KAAKV,MAAMS,OAAO,CAAC,CAAC;EACnC;AAGA,QAAME,sBAAsB,YAAY;AACtC,QAAI,CAACX,MAAMY,UAAW;AACtB,UAAMV,OAAOQ,KAAKV,MAAMY,WAAW,CAAC,CAAC;EACvC;AAIA,QAAMC,cAActB,WAAWU,MAAM;IACnC,IAAIE,QAAQ;AACV,aAAOA,MAAM;IACf;IACA,IAAIW,cAAc;AAChB,UAAI,CAACd,MAAMK,KAAKU,aAAc,QAAOC;AAErC,aAAQC,UAAgB;AACtB,cAAMC,MAAMlB,MAAMK,KAAKc,OAAOF,IAAI;AAClC,eAAOd,MAAM,EAAEI,OAAQa,WAAUpB,MAAMK,KAAKU,aAAcK,KAAK,MAAMF,GAAG;MAC1E;IACF;IACA,IAAIG,gBAAgB;AAClB,aAAOrB,MAAMK,KAAKgB;IACpB;IACA,IAAIC,cAAc;AAChB,aAAOtB,MAAMK,KAAKiB;IACpB;EACF,CAAC;AAED,SAAAC,kBACG5B,QAAM6B,aAAKX,aAAW;IAAA,IAAAY,WAAA;AAAA,aAAA,CAAAF,kBACpB5B,OAAO+B,cAAY;QAAA,IAAAD,WAAA;AAAA,iBAAEzB,MAAMyB;QAAQ;MAAA,CAAA,GAAAE,OAAA,MACnCA,OAAA,MAAA,CAAA,CAAA3B,MAAMS,KAAK,EAAA,KAAAc,kBACT5B,OAAOiC,QAAM;QAACC,SAASA,MAAM,KAAKrB,gBAAgB;QAAC,cAAA;QAAA,IAAAiB,WAAA;AAAA,iBAAAF,kBACjD3B,MAAI;YAACkC,MAAMpC;YAAYqC,MAAI;UAAA,CAAA;QAAA;MAAA,CAAA,CAE/B,GAAAJ,OAAA,MACAA,OAAA,MAAA,CAAA,CAAA3B,MAAMY,SAAS,EAAA,KAAAW,kBACb5B,OAAOiC,QAAM;QAACC,SAASA,MAAM,KAAKlB,oBAAoB;QAAC,cAAA;QAAA,IAAAc,WAAA;AAAA,iBAAAF,kBACrD3B,MAAI;YAACkC,MAAMrC;YAAUsC,MAAI;UAAA,CAAA;QAAA;MAAA,CAAA,CAE7B,CAAA;IAAA;EAAA,CAAA,CAAA;AAGP;",
|
|
5
|
+
"names": ["createMemo", "mergeProps", "splitProps", "IconEdit", "IconSearch", "Select", "Icon", "useDialog", "SharedDataSelect", "props", "local", "rest", "dialog", "items", "allItems", "data", "filterFn", "filter", "handleOpenModal", "modal", "show", "handleOpenEditModal", "editModal", "selectProps", "getChildren", "getParentKey", "undefined", "item", "key", "getKey", "child", "getSearchText", "getIsHidden", "_$createComponent", "_$mergeProps", "children", "ItemTemplate", "_$memo", "Action", "onClick", "icon", "size"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
import { type SharedDataAccessor } from "../../../providers/shared-data/SharedDataContext";
|
|
3
|
+
import { type DataSelectButtonProps } from "../data-select-button/DataSelectButton";
|
|
4
|
+
import { type ComponentSize } from "../../../styles/tokens.styles";
|
|
5
|
+
/** SharedDataSelectButton Props */
|
|
6
|
+
export interface SharedDataSelectButtonProps<TItem> {
|
|
7
|
+
/** 공유 데이터 접근자 */
|
|
8
|
+
data: SharedDataAccessor<TItem>;
|
|
9
|
+
/** 현재 선택된 키 (단일 또는 다중) */
|
|
10
|
+
value?: DataSelectButtonProps<TItem>["value"];
|
|
11
|
+
/** 값 변경 콜백 */
|
|
12
|
+
onValueChange?: DataSelectButtonProps<TItem>["onValueChange"];
|
|
13
|
+
/** 다중 선택 모드 */
|
|
14
|
+
multiple?: boolean;
|
|
15
|
+
/** 필수 입력 */
|
|
16
|
+
required?: boolean;
|
|
17
|
+
/** 비활성화 */
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
/** 트리거 크기 */
|
|
20
|
+
size?: ComponentSize;
|
|
21
|
+
/** 테두리 없는 스타일 */
|
|
22
|
+
inset?: boolean;
|
|
23
|
+
/** 선택 모달 컴포넌트 팩토리 */
|
|
24
|
+
modal: () => JSX.Element;
|
|
25
|
+
/** 아이템 렌더링 함수 */
|
|
26
|
+
children: (item: TItem) => JSX.Element;
|
|
27
|
+
}
|
|
28
|
+
export declare function SharedDataSelectButton<TItem>(props: SharedDataSelectButtonProps<TItem>): JSX.Element;
|
|
29
|
+
//# sourceMappingURL=SharedDataSelectButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SharedDataSelectButton.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\shared-data\\SharedDataSelectButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAc,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,mCAAmC;AACnC,MAAM,WAAW,2BAA2B,CAAC,KAAK;IAChD,iBAAiB;IACjB,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEhC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9C,cAAc;IACd,aAAa,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC;IAC9D,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,qBAAqB;IACrB,KAAK,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACzB,iBAAiB;IACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,GAAG,CAAC,OAAO,CAAC;CACxC;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAC1C,KAAK,EAAE,2BAA2B,CAAC,KAAK,CAAC,GACxC,GAAG,CAAC,OAAO,CAUb"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "solid-js/web";
|
|
2
|
+
import { mergeProps as _$mergeProps } from "solid-js/web";
|
|
3
|
+
import { splitProps } from "solid-js";
|
|
4
|
+
import { DataSelectButton } from "../data-select-button/DataSelectButton.js";
|
|
5
|
+
function SharedDataSelectButton(props) {
|
|
6
|
+
const [local, rest] = splitProps(props, ["data", "children"]);
|
|
7
|
+
return _$createComponent(DataSelectButton, _$mergeProps({
|
|
8
|
+
load: (keys) => local.data.items().filter((item) => keys.includes(local.data.getKey(item))),
|
|
9
|
+
get renderItem() {
|
|
10
|
+
return local.children;
|
|
11
|
+
}
|
|
12
|
+
}, rest));
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
SharedDataSelectButton
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=SharedDataSelectButton.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/features/shared-data/SharedDataSelectButton.tsx"],
|
|
4
|
+
"mappings": ";;AAAA,SAAmBA,kBAAkB;AAErC,SACEC,wBAEK;AA6BA,SAASC,uBACdC,OACa;AACb,QAAM,CAACC,OAAOC,IAAI,IAAIL,WAAWG,OAAO,CAAC,QAAQ,UAAU,CAAC;AAE5D,SAAAG,kBACGL,kBAAgBM,aAAA;IACfC,MAAOC,UAASL,MAAMM,KAAKC,MAAM,EAAEC,OAAQC,UAASJ,KAAKK,SAASV,MAAMM,KAAKK,OAAOF,IAAI,CAAC,CAAC;IAAC,IAC3FG,aAAU;AAAA,aAAEZ,MAAMa;IAAQ;EAAA,GACtBZ,IAAI,CAAA;AAGd;",
|
|
5
|
+
"names": ["splitProps", "DataSelectButton", "SharedDataSelectButton", "props", "local", "rest", "_$createComponent", "_$mergeProps", "load", "keys", "data", "items", "filter", "item", "includes", "getKey", "renderItem", "children"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
import { type SharedDataAccessor } from "../../../providers/shared-data/SharedDataContext";
|
|
3
|
+
/** SharedDataSelectList Props */
|
|
4
|
+
export interface SharedDataSelectListProps<TItem> {
|
|
5
|
+
/** 공유 데이터 접근자 */
|
|
6
|
+
data: SharedDataAccessor<TItem>;
|
|
7
|
+
/** 현재 선택된 값 */
|
|
8
|
+
value?: TItem;
|
|
9
|
+
/** 값 변경 콜백 */
|
|
10
|
+
onValueChange?: (value: TItem | undefined) => void;
|
|
11
|
+
/** 필수 입력 */
|
|
12
|
+
required?: boolean;
|
|
13
|
+
/** 비활성화 */
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
/** 항목 필터 함수 */
|
|
16
|
+
filterFn?: (item: TItem, index: number) => boolean;
|
|
17
|
+
/** 값 변경 가드 (false 반환 시 변경 차단) */
|
|
18
|
+
canChange?: (item: TItem | undefined) => boolean | Promise<boolean>;
|
|
19
|
+
/** 페이지 크기 (있으면 Pagination 자동 표시) */
|
|
20
|
+
pageSize?: number;
|
|
21
|
+
/** 헤더 텍스트 */
|
|
22
|
+
header?: string;
|
|
23
|
+
/** 관리 모달 컴포넌트 팩토리 */
|
|
24
|
+
modal?: () => JSX.Element;
|
|
25
|
+
/** 서브 컴포넌트용 children (ItemTemplate 등) */
|
|
26
|
+
children: JSX.Element;
|
|
27
|
+
}
|
|
28
|
+
export declare function SharedDataSelectList<TItem>(props: SharedDataSelectListProps<TItem>): JSX.Element;
|
|
29
|
+
//# sourceMappingURL=SharedDataSelectList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SharedDataSelectList.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\features\\shared-data\\SharedDataSelectList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,GAAG,EAAoB,MAAM,UAAU,CAAC;AAElE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAK3F,iCAAiC;AACjC,MAAM,WAAW,yBAAyB,CAAC,KAAK;IAC9C,iBAAiB;IACjB,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEhC,eAAe;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,cAAc;IACd,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC;IACnD,YAAY;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,eAAe;IACf,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,iCAAiC;IACjC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAE1B,yCAAyC;IACzC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAgDhG"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { template as _$template } from "solid-js/web";
|
|
2
|
+
import { delegateEvents as _$delegateEvents } from "solid-js/web";
|
|
3
|
+
import { mergeProps as _$mergeProps } from "solid-js/web";
|
|
4
|
+
import { createComponent as _$createComponent } from "solid-js/web";
|
|
5
|
+
import { insert as _$insert } from "solid-js/web";
|
|
6
|
+
import { memo as _$memo } from "solid-js/web";
|
|
7
|
+
var _tmpl$ = /* @__PURE__ */ _$template(`<span>`), _tmpl$2 = /* @__PURE__ */ _$template(`<button type=button class="inline-flex items-center justify-center rounded p-0.5 text-base-500 hover:text-primary-500 dark:text-base-400 dark:hover:text-primary-400"aria-label=\uAD00\uB9AC>`), _tmpl$3 = /* @__PURE__ */ _$template(`<div class="flex items-center gap-1">`);
|
|
8
|
+
import { createMemo, Show, splitProps } from "solid-js";
|
|
9
|
+
import { IconExternalLink } from "@tabler/icons-solidjs";
|
|
10
|
+
import { SelectList } from "../../form-control/select-list/SelectList.js";
|
|
11
|
+
import { Icon } from "../../display/Icon.js";
|
|
12
|
+
import { useDialog } from "../../disclosure/DialogContext.js";
|
|
13
|
+
function SharedDataSelectList(props) {
|
|
14
|
+
const [local, rest] = splitProps(props, ["data", "filterFn", "modal", "header", "children"]);
|
|
15
|
+
const dialog = useDialog();
|
|
16
|
+
const items = createMemo(() => {
|
|
17
|
+
const allItems = local.data.items();
|
|
18
|
+
if (!local.filterFn) return allItems;
|
|
19
|
+
return allItems.filter(local.filterFn);
|
|
20
|
+
});
|
|
21
|
+
const handleOpenModal = async () => {
|
|
22
|
+
if (!local.modal) return;
|
|
23
|
+
await dialog.show(local.modal, {});
|
|
24
|
+
};
|
|
25
|
+
return _$createComponent(SelectList, _$mergeProps(rest, {
|
|
26
|
+
get items() {
|
|
27
|
+
return items();
|
|
28
|
+
},
|
|
29
|
+
get getSearchText() {
|
|
30
|
+
return local.data.getSearchText;
|
|
31
|
+
},
|
|
32
|
+
get getIsHidden() {
|
|
33
|
+
return local.data.getIsHidden;
|
|
34
|
+
},
|
|
35
|
+
get children() {
|
|
36
|
+
return [_$createComponent(Show, {
|
|
37
|
+
get when() {
|
|
38
|
+
return local.header != null || local.modal != null;
|
|
39
|
+
},
|
|
40
|
+
get children() {
|
|
41
|
+
return _$createComponent(SelectList.Header, {
|
|
42
|
+
get children() {
|
|
43
|
+
var _el$ = _tmpl$3();
|
|
44
|
+
_$insert(_el$, _$createComponent(Show, {
|
|
45
|
+
get when() {
|
|
46
|
+
return local.header != null;
|
|
47
|
+
},
|
|
48
|
+
get children() {
|
|
49
|
+
var _el$2 = _tmpl$();
|
|
50
|
+
_$insert(_el$2, () => local.header);
|
|
51
|
+
return _el$2;
|
|
52
|
+
}
|
|
53
|
+
}), null);
|
|
54
|
+
_$insert(_el$, _$createComponent(Show, {
|
|
55
|
+
get when() {
|
|
56
|
+
return local.modal != null;
|
|
57
|
+
},
|
|
58
|
+
get children() {
|
|
59
|
+
var _el$3 = _tmpl$2();
|
|
60
|
+
_el$3.$$click = () => void handleOpenModal();
|
|
61
|
+
_$insert(_el$3, _$createComponent(Icon, {
|
|
62
|
+
icon: IconExternalLink,
|
|
63
|
+
size: "1em"
|
|
64
|
+
}));
|
|
65
|
+
return _el$3;
|
|
66
|
+
}
|
|
67
|
+
}), null);
|
|
68
|
+
return _el$;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}), _$memo(() => local.children)];
|
|
73
|
+
}
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
_$delegateEvents(["click"]);
|
|
77
|
+
export {
|
|
78
|
+
SharedDataSelectList
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=SharedDataSelectList.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/features/shared-data/SharedDataSelectList.tsx"],
|
|
4
|
+
"mappings": ";;;;;;;AAAA,SAASA,YAAsBC,MAAMC,kBAAkB;AACvD,SAASC,wBAAwB;AAEjC,SAASC,kBAAkB;AAC3B,SAASC,YAAY;AACrB,SAASC,iBAAiB;AA+BnB,SAASC,qBAA4BC,OAAsD;AAChG,QAAM,CAACC,OAAOC,IAAI,IAAIR,WAAWM,OAAO,CAAC,QAAQ,YAAY,SAAS,UAAU,UAAU,CAAC;AAE3F,QAAMG,SAASL,UAAU;AAGzB,QAAMM,QAAQZ,WAAW,MAAM;AAC7B,UAAMa,WAAWJ,MAAMK,KAAKF,MAAM;AAClC,QAAI,CAACH,MAAMM,SAAU,QAAOF;AAC5B,WAAOA,SAASG,OAAOP,MAAMM,QAAQ;EACvC,CAAC;AAGD,QAAME,kBAAkB,YAAY;AAClC,QAAI,CAACR,MAAMS,MAAO;AAClB,UAAMP,OAAOQ,KAAKV,MAAMS,OAAO,CAAC,CAAC;EACnC;AAEA,SAAAE,kBACGhB,YAAUiB,aACLX,MAAI;IAAA,IACRE,QAAK;AAAA,aAAEA,MAAM;IAAC;IAAA,IACdU,gBAAa;AAAA,aAAEb,MAAMK,KAAKQ;IAAa;IAAA,IACvCC,cAAW;AAAA,aAAEd,MAAMK,KAAKS;IAAW;IAAA,IAAAC,WAAA;AAAA,aAAA,CAAAJ,kBAGlCnB,MAAI;QAAA,IAACwB,OAAI;AAAA,iBAAEhB,MAAMiB,UAAU,QAAQjB,MAAMS,SAAS;QAAI;QAAA,IAAAM,WAAA;AAAA,iBAAAJ,kBACpDhB,WAAWuB,QAAM;YAAA,IAAAH,WAAA;AAAA,kBAAAI,OAAAC,QAAA;AAAAC,uBAAAF,MAAAR,kBAEbnB,MAAI;gBAAA,IAACwB,OAAI;AAAA,yBAAEhB,MAAMiB,UAAU;gBAAI;gBAAA,IAAAF,WAAA;AAAA,sBAAAO,QAAAC,OAAA;AAAAF,2BAAAC,OAAA,MACvBtB,MAAMiB,MAAM;AAAA,yBAAAK;gBAAA;cAAA,CAAA,GAAA,IAAA;AAAAD,uBAAAF,MAAAR,kBAEpBnB,MAAI;gBAAA,IAACwB,OAAI;AAAA,yBAAEhB,MAAMS,SAAS;gBAAI;gBAAA,IAAAM,WAAA;AAAA,sBAAAS,QAAAC,QAAA;AAAAD,wBAAAE,UAKlB,MAAM,KAAKlB,gBAAgB;AAACa,2BAAAG,OAAAb,kBAEpCf,MAAI;oBAAC+B,MAAMjC;oBAAkBkC,MAAI;kBAAA,CAAA,CAAA;AAAA,yBAAAJ;gBAAA;cAAA,CAAA,GAAA,IAAA;AAAA,qBAAAL;YAAA;UAAA,CAAA;QAAA;MAAA,CAAA,GAAAU,OAAA,MAM3C7B,MAAMe,QAAQ,CAAA;IAAA;EAAA,CAAA,CAAA;AAGrB;AAACe,iBAAA,CAAA,OAAA,CAAA;",
|
|
5
|
+
"names": ["createMemo", "Show", "splitProps", "IconExternalLink", "SelectList", "Icon", "useDialog", "SharedDataSelectList", "props", "local", "rest", "dialog", "items", "allItems", "data", "filterFn", "filter", "handleOpenModal", "modal", "show", "_$createComponent", "_$mergeProps", "getSearchText", "getIsHidden", "children", "when", "header", "Header", "_el$", "_tmpl$3", "_$insert", "_el$2", "_tmpl$", "_el$3", "_tmpl$2", "$$click", "icon", "size", "_$memo", "_$delegateEvents"]
|
|
6
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\form-control\\checkbox\\Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,eAAe,EAAgC,MAAM,UAAU,CAAC;AAMxF,OAAO,EACL,KAAK,YAAY,EASlB,MAAM,mBAAmB,CAAC;AAM3B,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;IAC1B,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,QAAQ,EAAE,eAAe,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\form-control\\checkbox\\Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,eAAe,EAAgC,MAAM,UAAU,CAAC;AAMxF,OAAO,EACL,KAAK,YAAY,EASlB,MAAM,mBAAmB,CAAC;AAM3B,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;IAC1B,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,QAAQ,EAAE,eAAe,CAAC,aAAa,CA6EnD,CAAC"}
|
|
@@ -7,7 +7,7 @@ import { use as _$use } from "solid-js/web";
|
|
|
7
7
|
import { spread as _$spread } from "solid-js/web";
|
|
8
8
|
import { mergeProps as _$mergeProps } from "solid-js/web";
|
|
9
9
|
import { memo as _$memo } from "solid-js/web";
|
|
10
|
-
var _tmpl$ = /* @__PURE__ */ _$template(`<span>`), _tmpl$2 = /* @__PURE__ */ _$template(`<div
|
|
10
|
+
var _tmpl$ = /* @__PURE__ */ _$template(`<span>`), _tmpl$2 = /* @__PURE__ */ _$template(`<div><div>`);
|
|
11
11
|
import { Show, splitProps, createMemo } from "solid-js";
|
|
12
12
|
import { twMerge } from "tailwind-merge";
|
|
13
13
|
import { IconCheck } from "@tabler/icons-solidjs";
|
|
@@ -50,9 +50,9 @@ const Checkbox = (props) => {
|
|
|
50
50
|
return local.touchMode;
|
|
51
51
|
},
|
|
52
52
|
get children() {
|
|
53
|
-
var _el$ = _tmpl$2(), _el$2 = _el$.firstChild
|
|
54
|
-
_$use(ripple, _el
|
|
55
|
-
_$spread(_el
|
|
53
|
+
var _el$ = _tmpl$2(), _el$2 = _el$.firstChild;
|
|
54
|
+
_$use(ripple, _el$, () => !local.disabled);
|
|
55
|
+
_$spread(_el$, _$mergeProps(rest, {
|
|
56
56
|
"role": "checkbox",
|
|
57
57
|
get ["aria-checked"]() {
|
|
58
58
|
return value();
|
|
@@ -69,7 +69,7 @@ const Checkbox = (props) => {
|
|
|
69
69
|
"onClick": handleClick,
|
|
70
70
|
"onKeyDown": handleKeyDown
|
|
71
71
|
}), false, true);
|
|
72
|
-
_$insert(_el$
|
|
72
|
+
_$insert(_el$2, _$createComponent(Show, {
|
|
73
73
|
get when() {
|
|
74
74
|
return value();
|
|
75
75
|
},
|
|
@@ -80,17 +80,17 @@ const Checkbox = (props) => {
|
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
}));
|
|
83
|
-
_$insert(_el
|
|
83
|
+
_$insert(_el$, _$createComponent(Show, {
|
|
84
84
|
get when() {
|
|
85
85
|
return local.children;
|
|
86
86
|
},
|
|
87
87
|
get children() {
|
|
88
|
-
var _el$
|
|
89
|
-
_$insert(_el$
|
|
90
|
-
return _el$
|
|
88
|
+
var _el$3 = _tmpl$();
|
|
89
|
+
_$insert(_el$3, () => local.children);
|
|
90
|
+
return _el$3;
|
|
91
91
|
}
|
|
92
92
|
}), null);
|
|
93
|
-
_$effect(() => _$className(_el$
|
|
93
|
+
_$effect(() => _$className(_el$2, getIndicatorClass()));
|
|
94
94
|
return _el$;
|
|
95
95
|
}
|
|
96
96
|
});
|