inconel 0.1.16 → 0.1.18
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/cjs/components/CheckBoxList/CheckBoxList.cjs +2 -0
- package/dist/cjs/components/CheckBoxList/CheckBoxList.cjs.map +1 -0
- package/dist/cjs/components/FloatingPanel/FloatingPanel.cjs +2 -0
- package/dist/cjs/components/FloatingPanel/FloatingPanel.cjs.map +1 -0
- package/dist/cjs/components/MultiSelectCheckBox/MultiSelectCheckBox.cjs +2 -0
- package/dist/cjs/components/MultiSelectCheckBox/MultiSelectCheckBox.cjs.map +1 -0
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/styles.css +1 -1
- package/dist/components/CheckBoxList/CheckBoxList.d.ts +25 -0
- package/dist/components/CheckBoxList/CheckBoxList.d.ts.map +1 -0
- package/dist/components/CheckBoxList/CheckBoxList.js +243 -0
- package/dist/components/CheckBoxList/CheckBoxList.js.map +1 -0
- package/dist/components/CheckBoxList/index.d.ts +3 -0
- package/dist/components/CheckBoxList/index.d.ts.map +1 -0
- package/dist/components/FloatingPanel/FloatingPanel.d.ts +29 -0
- package/dist/components/FloatingPanel/FloatingPanel.d.ts.map +1 -0
- package/dist/components/FloatingPanel/FloatingPanel.js +180 -0
- package/dist/components/FloatingPanel/FloatingPanel.js.map +1 -0
- package/dist/components/FloatingPanel/index.d.ts +3 -0
- package/dist/components/FloatingPanel/index.d.ts.map +1 -0
- package/dist/components/MultiSelectCheckBox/MultiSelectCheckBox.d.ts +40 -0
- package/dist/components/MultiSelectCheckBox/MultiSelectCheckBox.d.ts.map +1 -0
- package/dist/components/MultiSelectCheckBox/MultiSelectCheckBox.js +315 -0
- package/dist/components/MultiSelectCheckBox/MultiSelectCheckBox.js.map +1 -0
- package/dist/components/MultiSelectCheckBox/index.d.ts +3 -0
- package/dist/components/MultiSelectCheckBox/index.d.ts.map +1 -0
- package/dist/components/index.d.ts +3 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/index.js +76 -70
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { jsxs as u, jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import { useState as O, useCallback as h, useMemo as b, useEffect as ee } from "react";
|
|
3
|
+
import { classNames as F } from "../shared/classNames.js";
|
|
4
|
+
/* empty css */
|
|
5
|
+
function a(f) {
|
|
6
|
+
return f != null;
|
|
7
|
+
}
|
|
8
|
+
const I = [];
|
|
9
|
+
function se({
|
|
10
|
+
id: f = null,
|
|
11
|
+
className: U = null,
|
|
12
|
+
options: V = I,
|
|
13
|
+
defaultSelectedOptions: L = I,
|
|
14
|
+
optionLabel: T = "label",
|
|
15
|
+
optionValue: k = "value",
|
|
16
|
+
multiple: d = !0,
|
|
17
|
+
transferMode: $ = !1,
|
|
18
|
+
disabled: s = !1,
|
|
19
|
+
selectedText: G = "seçildi",
|
|
20
|
+
emptyText: H = "Veri bulunamadı",
|
|
21
|
+
sourceTitle: J = "Veriler",
|
|
22
|
+
selectedTitle: K = "Seçilenler",
|
|
23
|
+
transferAllText: Q = "Tümünü aktar",
|
|
24
|
+
clearAllText: W = "Tümünü temizle",
|
|
25
|
+
searchPlaceholder: N = "Ara",
|
|
26
|
+
onChange: E
|
|
27
|
+
}) {
|
|
28
|
+
const [r, j] = O([]), [_, w] = O(""), [S, X] = O(""), t = h(
|
|
29
|
+
(e) => e?.[k] ?? e?.value ?? e?.id,
|
|
30
|
+
[k]
|
|
31
|
+
), p = h(
|
|
32
|
+
(e) => e?.[T] ?? e?.label ?? e?.name ?? "",
|
|
33
|
+
[T]
|
|
34
|
+
), z = b(() => L.map((c) => {
|
|
35
|
+
if (c && typeof c == "object") {
|
|
36
|
+
const n = c;
|
|
37
|
+
return n[k] ?? n.value ?? n.id;
|
|
38
|
+
}
|
|
39
|
+
return c;
|
|
40
|
+
}).filter(a), [L, k]), o = b(() => {
|
|
41
|
+
const e = /* @__PURE__ */ new Map();
|
|
42
|
+
return V.forEach((c) => {
|
|
43
|
+
const n = t(c);
|
|
44
|
+
a(n) && !e.has(n) && e.set(n, c);
|
|
45
|
+
}), Array.from(e.values());
|
|
46
|
+
}, [t, V]), g = b(
|
|
47
|
+
() => o.filter((e) => {
|
|
48
|
+
const c = t(e);
|
|
49
|
+
return a(c) && r.includes(c);
|
|
50
|
+
}),
|
|
51
|
+
[t, o, r]
|
|
52
|
+
), y = b(
|
|
53
|
+
() => o.filter((e) => {
|
|
54
|
+
const c = t(e);
|
|
55
|
+
return !a(c) || !r.includes(c);
|
|
56
|
+
}),
|
|
57
|
+
[t, o, r]
|
|
58
|
+
), v = h(
|
|
59
|
+
(e, c) => {
|
|
60
|
+
const n = c.trim().toLocaleLowerCase();
|
|
61
|
+
return n ? e.filter(
|
|
62
|
+
(i) => String(p(i)).toLocaleLowerCase().includes(n)
|
|
63
|
+
) : e;
|
|
64
|
+
},
|
|
65
|
+
[p]
|
|
66
|
+
), M = b(
|
|
67
|
+
() => v(y, _),
|
|
68
|
+
[v, _, y]
|
|
69
|
+
), q = b(
|
|
70
|
+
() => v(g, S),
|
|
71
|
+
[v, g, S]
|
|
72
|
+
), B = b(
|
|
73
|
+
() => v(o, _),
|
|
74
|
+
[v, o, _]
|
|
75
|
+
), D = h(
|
|
76
|
+
(e) => {
|
|
77
|
+
const c = o.filter((i) => {
|
|
78
|
+
const m = t(i);
|
|
79
|
+
return a(m) && e.includes(m);
|
|
80
|
+
}), n = o.filter((i) => {
|
|
81
|
+
const m = t(i);
|
|
82
|
+
return !a(m) || !e.includes(m);
|
|
83
|
+
});
|
|
84
|
+
E?.(c, n);
|
|
85
|
+
},
|
|
86
|
+
[t, o, E]
|
|
87
|
+
), x = h(
|
|
88
|
+
(e) => {
|
|
89
|
+
const c = d ? e : e.slice(-1);
|
|
90
|
+
j(c), D(c);
|
|
91
|
+
},
|
|
92
|
+
[D, d]
|
|
93
|
+
), R = h(
|
|
94
|
+
(e) => {
|
|
95
|
+
if (s) return;
|
|
96
|
+
const c = t(e);
|
|
97
|
+
if (!a(c)) return;
|
|
98
|
+
if (r.includes(c)) {
|
|
99
|
+
x(
|
|
100
|
+
r.filter((i) => i !== c)
|
|
101
|
+
);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
x(d ? [...r, c] : [c]);
|
|
105
|
+
},
|
|
106
|
+
[s, t, d, r, x]
|
|
107
|
+
), Z = h(() => {
|
|
108
|
+
if (s) return;
|
|
109
|
+
const e = o.map((c) => t(c)).filter(a);
|
|
110
|
+
x(d ? e : e.slice(0, 1));
|
|
111
|
+
}, [s, t, d, o, x]), P = h(() => {
|
|
112
|
+
s || x([]);
|
|
113
|
+
}, [s, x]);
|
|
114
|
+
ee(() => {
|
|
115
|
+
const e = o.map((i) => t(i)).filter(a), c = z.filter(
|
|
116
|
+
(i) => e.includes(i)
|
|
117
|
+
), n = d ? c : c.slice(0, 1);
|
|
118
|
+
j(n);
|
|
119
|
+
}, [t, d, z, o]);
|
|
120
|
+
const C = h(
|
|
121
|
+
(e, c = "list") => {
|
|
122
|
+
const n = t(e), i = a(n) && r.includes(n), m = `${f || "inconel-checkbox-list"}-${c}-${String(n)}`, Y = p(e);
|
|
123
|
+
return /* @__PURE__ */ u(
|
|
124
|
+
"label",
|
|
125
|
+
{
|
|
126
|
+
className: F(
|
|
127
|
+
"inconel-checkbox-list__item",
|
|
128
|
+
i && "inconel-is-selected"
|
|
129
|
+
),
|
|
130
|
+
htmlFor: m,
|
|
131
|
+
title: String(Y),
|
|
132
|
+
children: [
|
|
133
|
+
/* @__PURE__ */ l(
|
|
134
|
+
"input",
|
|
135
|
+
{
|
|
136
|
+
type: "checkbox",
|
|
137
|
+
id: m,
|
|
138
|
+
checked: i,
|
|
139
|
+
disabled: s,
|
|
140
|
+
onChange: () => R(e)
|
|
141
|
+
}
|
|
142
|
+
),
|
|
143
|
+
/* @__PURE__ */ l("span", { className: "inconel-checkbox-list__checkmark", "aria-hidden": "true" }),
|
|
144
|
+
/* @__PURE__ */ l("span", { className: "inconel-checkbox-list__item-label", children: Y })
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
`${c}-${String(n)}`
|
|
148
|
+
);
|
|
149
|
+
},
|
|
150
|
+
[s, p, t, R, f, r]
|
|
151
|
+
), A = () => /* @__PURE__ */ l("div", { className: "inconel-checkbox-list__empty", children: H });
|
|
152
|
+
return /* @__PURE__ */ u(
|
|
153
|
+
"div",
|
|
154
|
+
{
|
|
155
|
+
className: F(
|
|
156
|
+
"inconel-checkbox-list",
|
|
157
|
+
$ && "inconel-checkbox-list--transfer-mode",
|
|
158
|
+
s && "inconel-is-disabled",
|
|
159
|
+
U
|
|
160
|
+
),
|
|
161
|
+
id: f ?? void 0,
|
|
162
|
+
children: [
|
|
163
|
+
/* @__PURE__ */ l("div", { className: "inconel-checkbox-list__summary", children: /* @__PURE__ */ u("span", { children: [
|
|
164
|
+
g.length,
|
|
165
|
+
" ",
|
|
166
|
+
G
|
|
167
|
+
] }) }),
|
|
168
|
+
$ ? /* @__PURE__ */ u("div", { className: "inconel-checkbox-list__transfer", children: [
|
|
169
|
+
/* @__PURE__ */ u("section", { className: "inconel-checkbox-list__box", children: [
|
|
170
|
+
/* @__PURE__ */ u("div", { className: "inconel-checkbox-list__box-header", children: [
|
|
171
|
+
/* @__PURE__ */ l("span", { children: J }),
|
|
172
|
+
/* @__PURE__ */ l(
|
|
173
|
+
"button",
|
|
174
|
+
{
|
|
175
|
+
type: "button",
|
|
176
|
+
onClick: Z,
|
|
177
|
+
disabled: s || y.length === 0,
|
|
178
|
+
children: Q
|
|
179
|
+
}
|
|
180
|
+
)
|
|
181
|
+
] }),
|
|
182
|
+
/* @__PURE__ */ l("div", { className: "inconel-checkbox-list__box-search", children: /* @__PURE__ */ l(
|
|
183
|
+
"input",
|
|
184
|
+
{
|
|
185
|
+
type: "text",
|
|
186
|
+
value: _,
|
|
187
|
+
onChange: (e) => w(e.target.value),
|
|
188
|
+
placeholder: N,
|
|
189
|
+
disabled: s
|
|
190
|
+
}
|
|
191
|
+
) }),
|
|
192
|
+
/* @__PURE__ */ l("div", { className: "inconel-checkbox-list__box-body", children: M.length > 0 ? M.map(
|
|
193
|
+
(e) => C(e, "source")
|
|
194
|
+
) : A() })
|
|
195
|
+
] }),
|
|
196
|
+
/* @__PURE__ */ u("section", { className: "inconel-checkbox-list__box inconel-checkbox-list__box--selected", children: [
|
|
197
|
+
/* @__PURE__ */ u("div", { className: "inconel-checkbox-list__box-header", children: [
|
|
198
|
+
/* @__PURE__ */ l("span", { children: K }),
|
|
199
|
+
/* @__PURE__ */ l(
|
|
200
|
+
"button",
|
|
201
|
+
{
|
|
202
|
+
type: "button",
|
|
203
|
+
onClick: P,
|
|
204
|
+
disabled: s || g.length === 0,
|
|
205
|
+
children: W
|
|
206
|
+
}
|
|
207
|
+
)
|
|
208
|
+
] }),
|
|
209
|
+
/* @__PURE__ */ l("div", { className: "inconel-checkbox-list__box-search", children: /* @__PURE__ */ l(
|
|
210
|
+
"input",
|
|
211
|
+
{
|
|
212
|
+
type: "text",
|
|
213
|
+
value: S,
|
|
214
|
+
onChange: (e) => X(e.target.value),
|
|
215
|
+
placeholder: N,
|
|
216
|
+
disabled: s
|
|
217
|
+
}
|
|
218
|
+
) }),
|
|
219
|
+
/* @__PURE__ */ l("div", { className: "inconel-checkbox-list__box-body", children: q.length > 0 ? q.map(
|
|
220
|
+
(e) => C(e, "selected")
|
|
221
|
+
) : A() })
|
|
222
|
+
] })
|
|
223
|
+
] }) : /* @__PURE__ */ u("div", { className: "inconel-checkbox-list__list", children: [
|
|
224
|
+
/* @__PURE__ */ l("div", { className: "inconel-checkbox-list__box-search", children: /* @__PURE__ */ l(
|
|
225
|
+
"input",
|
|
226
|
+
{
|
|
227
|
+
type: "text",
|
|
228
|
+
value: _,
|
|
229
|
+
onChange: (e) => w(e.target.value),
|
|
230
|
+
placeholder: N,
|
|
231
|
+
disabled: s
|
|
232
|
+
}
|
|
233
|
+
) }),
|
|
234
|
+
/* @__PURE__ */ l("div", { className: "inconel-checkbox-list__list-body", children: B.length > 0 ? B.map((e) => C(e)) : A() })
|
|
235
|
+
] })
|
|
236
|
+
]
|
|
237
|
+
}
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
export {
|
|
241
|
+
se as CheckBoxList
|
|
242
|
+
};
|
|
243
|
+
//# sourceMappingURL=CheckBoxList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckBoxList.js","sources":["../../../src/components/CheckBoxList/CheckBoxList.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useMemo,\n useState,\n type ChangeEvent,\n type ReactNode,\n} from 'react'\n\nimport { classNames } from '../shared/classNames'\nimport './styles.css'\n\nexport type CheckBoxListValue = string | number\n\nexport interface CheckBoxListOption {\n [key: string]: unknown\n}\n\nexport interface CheckBoxListProps<\n T extends CheckBoxListOption = CheckBoxListOption,\n> {\n id?: string | null\n className?: string | null\n options?: T[]\n defaultSelectedOptions?: Array<T | CheckBoxListValue>\n optionLabel?: string\n optionValue?: string\n multiple?: boolean\n transferMode?: boolean\n disabled?: boolean\n selectedText?: string\n emptyText?: string\n sourceTitle?: string\n selectedTitle?: string\n transferAllText?: string\n clearAllText?: string\n searchPlaceholder?: string\n onChange?: (selected: T[], unselected: T[]) => void\n}\n\nfunction isDefinedValue(\n value: CheckBoxListValue | undefined | null,\n): value is CheckBoxListValue {\n return value !== undefined && value !== null\n}\n\nconst EMPTY_ARRAY: never[] = []\n\nexport function CheckBoxList<\n T extends CheckBoxListOption = CheckBoxListOption,\n>({\n id = null,\n className = null,\n options = EMPTY_ARRAY,\n defaultSelectedOptions = EMPTY_ARRAY,\n optionLabel = 'label',\n optionValue = 'value',\n multiple = true,\n transferMode = false,\n disabled = false,\n selectedText = 'seçildi',\n emptyText = 'Veri bulunamadı',\n sourceTitle = 'Veriler',\n selectedTitle = 'Seçilenler',\n transferAllText = 'Tümünü aktar',\n clearAllText = 'Tümünü temizle',\n searchPlaceholder = 'Ara',\n onChange,\n}: CheckBoxListProps<T>) {\n const [selectedValues, setSelectedValues] = useState<CheckBoxListValue[]>([])\n const [sourceSearch, setSourceSearch] = useState('')\n const [selectedSearch, setSelectedSearch] = useState('')\n\n const getValue = useCallback(\n (option: T) =>\n (option?.[optionValue] ?? option?.value ?? option?.id) as\n | CheckBoxListValue\n | undefined,\n [optionValue],\n )\n\n const getLabel = useCallback(\n (option: T): ReactNode =>\n (option?.[optionLabel] ?? option?.label ?? option?.name ?? '') as ReactNode,\n [optionLabel],\n )\n\n const normalizedDefaultValues = useMemo(() => {\n const values = defaultSelectedOptions.map((item) => {\n if (item && typeof item === 'object') {\n const option = item as T\n return (option[optionValue] ?? option.value ?? option.id) as\n | CheckBoxListValue\n | undefined\n }\n return item\n })\n return values.filter(isDefinedValue)\n }, [defaultSelectedOptions, optionValue])\n\n const normalizedOptions = useMemo(() => {\n const uniqueMap = new Map<CheckBoxListValue, T>()\n options.forEach((option) => {\n const value = getValue(option)\n if (isDefinedValue(value) && !uniqueMap.has(value)) {\n uniqueMap.set(value, option)\n }\n })\n return Array.from(uniqueMap.values())\n }, [getValue, options])\n\n const selectedOptions = useMemo(\n () =>\n normalizedOptions.filter((option) => {\n const value = getValue(option)\n return isDefinedValue(value) && selectedValues.includes(value)\n }),\n [getValue, normalizedOptions, selectedValues],\n )\n\n const unselectedOptions = useMemo(\n () =>\n normalizedOptions.filter((option) => {\n const value = getValue(option)\n return !isDefinedValue(value) || !selectedValues.includes(value)\n }),\n [getValue, normalizedOptions, selectedValues],\n )\n\n const filterBySearch = useCallback(\n (list: T[], searchValue: string) => {\n const query = searchValue.trim().toLocaleLowerCase()\n if (!query) return list\n return list.filter((option) =>\n String(getLabel(option)).toLocaleLowerCase().includes(query),\n )\n },\n [getLabel],\n )\n\n const filteredUnselectedOptions = useMemo(\n () => filterBySearch(unselectedOptions, sourceSearch),\n [filterBySearch, sourceSearch, unselectedOptions],\n )\n\n const filteredSelectedOptions = useMemo(\n () => filterBySearch(selectedOptions, selectedSearch),\n [filterBySearch, selectedOptions, selectedSearch],\n )\n\n const filteredOptions = useMemo(\n () => filterBySearch(normalizedOptions, sourceSearch),\n [filterBySearch, normalizedOptions, sourceSearch],\n )\n\n const emitChange = useCallback(\n (nextValues: CheckBoxListValue[]) => {\n const selected = normalizedOptions.filter((option) => {\n const value = getValue(option)\n return isDefinedValue(value) && nextValues.includes(value)\n })\n const unselected = normalizedOptions.filter((option) => {\n const value = getValue(option)\n return !isDefinedValue(value) || !nextValues.includes(value)\n })\n onChange?.(selected, unselected)\n },\n [getValue, normalizedOptions, onChange],\n )\n\n const updateSelection = useCallback(\n (nextValues: CheckBoxListValue[]) => {\n const cleanValues = multiple ? nextValues : nextValues.slice(-1)\n setSelectedValues(cleanValues)\n emitChange(cleanValues)\n },\n [emitChange, multiple],\n )\n\n const handleToggle = useCallback(\n (option: T) => {\n if (disabled) return\n const value = getValue(option)\n if (!isDefinedValue(value)) return\n const isSelected = selectedValues.includes(value)\n if (isSelected) {\n updateSelection(\n selectedValues.filter((selectedValue) => selectedValue !== value),\n )\n return\n }\n updateSelection(multiple ? [...selectedValues, value] : [value])\n },\n [disabled, getValue, multiple, selectedValues, updateSelection],\n )\n\n const handleTransferAll = useCallback(() => {\n if (disabled) return\n const values = normalizedOptions\n .map((option) => getValue(option))\n .filter(isDefinedValue)\n updateSelection(multiple ? values : values.slice(0, 1))\n }, [disabled, getValue, multiple, normalizedOptions, updateSelection])\n\n const handleClearAll = useCallback(() => {\n if (disabled) return\n updateSelection([])\n }, [disabled, updateSelection])\n\n useEffect(() => {\n const optionValues = normalizedOptions\n .map((option) => getValue(option))\n .filter(isDefinedValue)\n const nextValues = normalizedDefaultValues.filter((value) =>\n optionValues.includes(value),\n )\n const limitedValues = multiple ? nextValues : nextValues.slice(0, 1)\n setSelectedValues(limitedValues)\n }, [getValue, multiple, normalizedDefaultValues, normalizedOptions])\n\n const renderOption = useCallback(\n (option: T, area: 'list' | 'source' | 'selected' = 'list') => {\n const value = getValue(option)\n const checked = isDefinedValue(value) && selectedValues.includes(value)\n const inputId = `${id || 'inconel-checkbox-list'}-${area}-${String(value)}`\n const label = getLabel(option)\n\n return (\n <label\n className={classNames(\n 'inconel-checkbox-list__item',\n checked && 'inconel-is-selected',\n )}\n htmlFor={inputId}\n key={`${area}-${String(value)}`}\n title={String(label)}\n >\n <input\n type=\"checkbox\"\n id={inputId}\n checked={checked}\n disabled={disabled}\n onChange={() => handleToggle(option)}\n />\n <span className=\"inconel-checkbox-list__checkmark\" aria-hidden=\"true\" />\n <span className=\"inconel-checkbox-list__item-label\">{label}</span>\n </label>\n )\n },\n [disabled, getLabel, getValue, handleToggle, id, selectedValues],\n )\n\n const renderEmpty = () => (\n <div className=\"inconel-checkbox-list__empty\">{emptyText}</div>\n )\n\n return (\n <div\n className={classNames(\n 'inconel-checkbox-list',\n transferMode && 'inconel-checkbox-list--transfer-mode',\n disabled && 'inconel-is-disabled',\n className,\n )}\n id={id ?? undefined}\n >\n <div className=\"inconel-checkbox-list__summary\">\n <span>\n {selectedOptions.length} {selectedText}\n </span>\n </div>\n\n {transferMode ? (\n <div className=\"inconel-checkbox-list__transfer\">\n <section className=\"inconel-checkbox-list__box\">\n <div className=\"inconel-checkbox-list__box-header\">\n <span>{sourceTitle}</span>\n <button\n type=\"button\"\n onClick={handleTransferAll}\n disabled={disabled || unselectedOptions.length === 0}\n >\n {transferAllText}\n </button>\n </div>\n\n <div className=\"inconel-checkbox-list__box-search\">\n <input\n type=\"text\"\n value={sourceSearch}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n setSourceSearch(event.target.value)\n }\n placeholder={searchPlaceholder}\n disabled={disabled}\n />\n </div>\n\n <div className=\"inconel-checkbox-list__box-body\">\n {filteredUnselectedOptions.length > 0\n ? filteredUnselectedOptions.map((option) =>\n renderOption(option, 'source'),\n )\n : renderEmpty()}\n </div>\n </section>\n\n <section className=\"inconel-checkbox-list__box inconel-checkbox-list__box--selected\">\n <div className=\"inconel-checkbox-list__box-header\">\n <span>{selectedTitle}</span>\n <button\n type=\"button\"\n onClick={handleClearAll}\n disabled={disabled || selectedOptions.length === 0}\n >\n {clearAllText}\n </button>\n </div>\n\n <div className=\"inconel-checkbox-list__box-search\">\n <input\n type=\"text\"\n value={selectedSearch}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n setSelectedSearch(event.target.value)\n }\n placeholder={searchPlaceholder}\n disabled={disabled}\n />\n </div>\n\n <div className=\"inconel-checkbox-list__box-body\">\n {filteredSelectedOptions.length > 0\n ? filteredSelectedOptions.map((option) =>\n renderOption(option, 'selected'),\n )\n : renderEmpty()}\n </div>\n </section>\n </div>\n ) : (\n <div className=\"inconel-checkbox-list__list\">\n <div className=\"inconel-checkbox-list__box-search\">\n <input\n type=\"text\"\n value={sourceSearch}\n onChange={(event: ChangeEvent<HTMLInputElement>) =>\n setSourceSearch(event.target.value)\n }\n placeholder={searchPlaceholder}\n disabled={disabled}\n />\n </div>\n\n <div className=\"inconel-checkbox-list__list-body\">\n {filteredOptions.length > 0\n ? filteredOptions.map((option) => renderOption(option))\n : renderEmpty()}\n </div>\n </div>\n )}\n </div>\n )\n}\n"],"names":["isDefinedValue","value","EMPTY_ARRAY","CheckBoxList","id","className","options","defaultSelectedOptions","optionLabel","optionValue","multiple","transferMode","disabled","selectedText","emptyText","sourceTitle","selectedTitle","transferAllText","clearAllText","searchPlaceholder","onChange","selectedValues","setSelectedValues","useState","sourceSearch","setSourceSearch","selectedSearch","setSelectedSearch","getValue","useCallback","option","getLabel","normalizedDefaultValues","useMemo","item","normalizedOptions","uniqueMap","selectedOptions","unselectedOptions","filterBySearch","list","searchValue","query","filteredUnselectedOptions","filteredSelectedOptions","filteredOptions","emitChange","nextValues","selected","unselected","updateSelection","cleanValues","handleToggle","selectedValue","handleTransferAll","values","handleClearAll","useEffect","optionValues","limitedValues","renderOption","area","checked","inputId","label","jsxs","classNames","jsx","renderEmpty","event"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CheckBoxList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type FloatingPanelTrianglePosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right' | 'left-top' | 'left-center' | 'left-bottom' | 'right-top' | 'right-center' | 'right-bottom';
|
|
3
|
+
export interface FloatingPanelPosition {
|
|
4
|
+
x: number | null;
|
|
5
|
+
y: number | null;
|
|
6
|
+
}
|
|
7
|
+
export interface FloatingPanelProps {
|
|
8
|
+
id?: string | null;
|
|
9
|
+
className?: string;
|
|
10
|
+
target?: HTMLElement | null;
|
|
11
|
+
watchTarget?: boolean;
|
|
12
|
+
trianglePosition?: FloatingPanelTrianglePosition;
|
|
13
|
+
triangleShow?: boolean;
|
|
14
|
+
windowCenterToPage?: boolean;
|
|
15
|
+
closeButtonShow?: boolean;
|
|
16
|
+
onClosed: () => void;
|
|
17
|
+
onOutsideClick?: (event: MouseEvent) => void;
|
|
18
|
+
closeOnScroll?: boolean;
|
|
19
|
+
transition?: 'slide' | 'fade' | 'off';
|
|
20
|
+
draggable?: boolean;
|
|
21
|
+
defaultPositionX?: number | null;
|
|
22
|
+
defaultPositionY?: number | null;
|
|
23
|
+
onPositionChange?: (position: FloatingPanelPosition) => void;
|
|
24
|
+
render?: boolean;
|
|
25
|
+
children?: ReactNode;
|
|
26
|
+
portalTarget?: Element | null;
|
|
27
|
+
}
|
|
28
|
+
export declare function FloatingPanel({ id, className, target, watchTarget, trianglePosition, triangleShow, windowCenterToPage, closeButtonShow, onClosed, onOutsideClick, closeOnScroll, transition, draggable, defaultPositionX, defaultPositionY, onPositionChange, render, children, portalTarget, }: FloatingPanelProps): import('react').ReactPortal | null;
|
|
29
|
+
//# sourceMappingURL=FloatingPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloatingPanel.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingPanel/FloatingPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIhF,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,6BAA6B,GACrC,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,eAAe,GACf,cAAc,GACd,UAAU,GACV,aAAa,GACb,aAAa,GACb,WAAW,GACX,cAAc,GACd,cAAc,CAAA;AAElB,MAAM,WAAW,qBAAqB;IACpC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,gBAAgB,CAAC,EAAE,6BAA6B,CAAA;IAChD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAA;IACrC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,IAAI,CAAA;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CAC9B;AASD,wBAAgB,aAAa,CAAC,EAC5B,EAAS,EACT,SAAS,EACT,MAAa,EACb,WAAkB,EAClB,gBAA6B,EAC7B,YAAmB,EACnB,kBAA0B,EAC1B,eAAsB,EACtB,QAAQ,EACR,cAAc,EACd,aAAqB,EACrB,UAAoB,EACpB,SAAiB,EACjB,gBAAuB,EACvB,gBAAuB,EACvB,gBAAgB,EAChB,MAAa,EACb,QAAQ,EACR,YAAY,GACb,EAAE,kBAAkB,sCA6RpB"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { jsx as M, jsxs as te } from "react/jsx-runtime";
|
|
2
|
+
import { useState as ne, useRef as m, useCallback as d, useEffect as y } from "react";
|
|
3
|
+
import { createPortal as re } from "react-dom";
|
|
4
|
+
import { classNames as oe } from "../shared/classNames.js";
|
|
5
|
+
/* empty css */
|
|
6
|
+
const a = 10, s = 5;
|
|
7
|
+
function k(p) {
|
|
8
|
+
return p != null && !Number.isNaN(p);
|
|
9
|
+
}
|
|
10
|
+
function ue({
|
|
11
|
+
id: p = null,
|
|
12
|
+
className: q,
|
|
13
|
+
target: u = null,
|
|
14
|
+
watchTarget: z = !0,
|
|
15
|
+
trianglePosition: g = "top-left",
|
|
16
|
+
triangleShow: G = !0,
|
|
17
|
+
windowCenterToPage: v = !1,
|
|
18
|
+
closeButtonShow: K = !0,
|
|
19
|
+
onClosed: f,
|
|
20
|
+
onOutsideClick: W,
|
|
21
|
+
closeOnScroll: S = !1,
|
|
22
|
+
transition: j = "slide",
|
|
23
|
+
draggable: w = !1,
|
|
24
|
+
defaultPositionX: L = null,
|
|
25
|
+
defaultPositionY: R = null,
|
|
26
|
+
onPositionChange: C,
|
|
27
|
+
render: N = !0,
|
|
28
|
+
children: U,
|
|
29
|
+
portalTarget: J
|
|
30
|
+
}) {
|
|
31
|
+
const [Q, O] = ne(!1), c = m(null), V = m(null), X = m(null), $ = m({ x: null, y: null }), E = m(
|
|
32
|
+
void 0
|
|
33
|
+
), I = m(!1), _ = J ?? (typeof document < "u" ? document.body : null), B = N && _ !== null, Y = !w && z && B, D = d(() => {
|
|
34
|
+
const t = c.current;
|
|
35
|
+
if (!t) return;
|
|
36
|
+
const { width: i, height: l } = t.getBoundingClientRect(), n = window.innerWidth / 2, e = window.innerHeight / 2;
|
|
37
|
+
t.style.transform = `translate(${n - i / 2}px, ${e - l / 2}px)`;
|
|
38
|
+
}, []), F = d(() => {
|
|
39
|
+
const t = c.current;
|
|
40
|
+
if (!t || !u) return;
|
|
41
|
+
const i = window.innerWidth, l = window.innerHeight, n = t.getBoundingClientRect(), e = u.getBoundingClientRect(), h = a * 1.5;
|
|
42
|
+
let r = 0, o = 0;
|
|
43
|
+
switch (g) {
|
|
44
|
+
case "top-left":
|
|
45
|
+
r = e.left + e.width / 2 - h, o = e.top + e.height + s;
|
|
46
|
+
break;
|
|
47
|
+
case "top-center":
|
|
48
|
+
r = e.left + e.width / 2 - n.width / 2, o = e.top + e.height + s;
|
|
49
|
+
break;
|
|
50
|
+
case "top-right":
|
|
51
|
+
r = e.left + e.width / 2 - n.width + h, o = e.top + e.height + s;
|
|
52
|
+
break;
|
|
53
|
+
case "bottom-left":
|
|
54
|
+
r = e.left + e.width / 2 - h, o = e.top - n.height - s;
|
|
55
|
+
break;
|
|
56
|
+
case "bottom-center":
|
|
57
|
+
r = e.left + e.width / 2 - n.width / 2, o = e.top - n.height - s;
|
|
58
|
+
break;
|
|
59
|
+
case "bottom-right":
|
|
60
|
+
r = e.left + e.width / 2 - n.width + h, o = e.top - n.height - s;
|
|
61
|
+
break;
|
|
62
|
+
case "left-top":
|
|
63
|
+
r = e.left + e.width + s, o = e.top + e.height / 2 - h;
|
|
64
|
+
break;
|
|
65
|
+
case "left-center":
|
|
66
|
+
r = e.left + e.width + s, o = e.top + e.height / 2 - n.height / 2;
|
|
67
|
+
break;
|
|
68
|
+
case "left-bottom":
|
|
69
|
+
r = e.left + e.width + s, o = e.top + e.height / 2 - n.height + h;
|
|
70
|
+
break;
|
|
71
|
+
case "right-top":
|
|
72
|
+
r = e.left - n.width - s, o = e.top + e.height / 2 - h;
|
|
73
|
+
break;
|
|
74
|
+
case "right-center":
|
|
75
|
+
r = e.left - n.width - s, o = e.top + e.height / 2 - n.height / 2;
|
|
76
|
+
break;
|
|
77
|
+
case "right-bottom":
|
|
78
|
+
r = e.left - n.width - s, o = e.top + e.height / 2 - n.height + h;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
r = r < a ? a : r, r = r + n.width + a > i ? i - (n.width + a) : r, o = o < a ? a : o, o = o + n.height + a > l ? l - (n.height + a) : o, t.style.transform = `translate(${r}px, ${o}px)`;
|
|
82
|
+
}, [u, g]), T = d(
|
|
83
|
+
(t) => {
|
|
84
|
+
const i = c.current;
|
|
85
|
+
i && !i.contains(t.target) && f();
|
|
86
|
+
},
|
|
87
|
+
[f]
|
|
88
|
+
), b = d(
|
|
89
|
+
(t) => {
|
|
90
|
+
const i = c.current;
|
|
91
|
+
i && !i.contains(t.target) && W?.(t);
|
|
92
|
+
},
|
|
93
|
+
[W]
|
|
94
|
+
), Z = d(() => {
|
|
95
|
+
Y && (v ? D() : F()), u && !document.body.contains(u) && (clearInterval(E.current), f());
|
|
96
|
+
}, [f, D, F, u, Y, v]), x = d((t) => {
|
|
97
|
+
t.preventDefault();
|
|
98
|
+
const i = X.current, l = c.current;
|
|
99
|
+
if (!i || !l) return;
|
|
100
|
+
const n = t.pageX - i.x, e = t.pageY - i.y;
|
|
101
|
+
$.current = { x: n, y: e }, I.current && requestAnimationFrame(() => {
|
|
102
|
+
l.style.transform = `translate(${n}px, ${e}px)`;
|
|
103
|
+
}), O(!0);
|
|
104
|
+
}, []), H = d(() => {
|
|
105
|
+
document.removeEventListener("mouseup", H), document.removeEventListener("mousemove", x), I.current = !1, C?.({
|
|
106
|
+
x: $.current.x,
|
|
107
|
+
y: $.current.y
|
|
108
|
+
}), O(!1);
|
|
109
|
+
}, [x, C]), A = d(
|
|
110
|
+
(t) => {
|
|
111
|
+
t.preventDefault();
|
|
112
|
+
const i = c.current;
|
|
113
|
+
if (!i) return;
|
|
114
|
+
const { left: l, top: n } = i.getBoundingClientRect();
|
|
115
|
+
X.current = { x: t.clientX - l, y: t.clientY - n }, I.current = !0, document.addEventListener("mouseup", H), document.addEventListener("mousemove", x);
|
|
116
|
+
},
|
|
117
|
+
[x, H]
|
|
118
|
+
);
|
|
119
|
+
if (y(() => {
|
|
120
|
+
document.removeEventListener("mousedown", b), clearInterval(E.current), !k(L) && !k(R) && (v ? D() : F()), B && document.addEventListener("mousedown", b);
|
|
121
|
+
let t;
|
|
122
|
+
return u && (E.current = setInterval(Z, 100), t = setTimeout(() => {
|
|
123
|
+
c.current?.classList.add("inconel-is-watched");
|
|
124
|
+
}, 500)), () => {
|
|
125
|
+
document.removeEventListener("mousedown", b), clearInterval(E.current), clearTimeout(t);
|
|
126
|
+
};
|
|
127
|
+
}, [N, u, b, v, w]), y(() => {
|
|
128
|
+
if (S)
|
|
129
|
+
return window.addEventListener("scroll", T, !0), () => window.removeEventListener("scroll", T, !0);
|
|
130
|
+
}, [S, T]), y(() => {
|
|
131
|
+
const t = V.current;
|
|
132
|
+
if (!(!t || !w))
|
|
133
|
+
return t.addEventListener("mousedown", A), () => t.removeEventListener("mousedown", A);
|
|
134
|
+
}, [w, A, N]), y(() => {
|
|
135
|
+
k(L) && k(R) && c.current?.style.setProperty(
|
|
136
|
+
"transform",
|
|
137
|
+
`translate(${L}px, ${R}px)`
|
|
138
|
+
);
|
|
139
|
+
}, []), !B || !_) return null;
|
|
140
|
+
const P = G ? g : "inconel-triangle-off", ee = j === "slide" ? `inconel-is-animated-${g.split("-")[0]}` : j === "fade" ? "inconel-is-animation-fade" : void 0;
|
|
141
|
+
return re(
|
|
142
|
+
/* @__PURE__ */ M(
|
|
143
|
+
"div",
|
|
144
|
+
{
|
|
145
|
+
id: p ?? void 0,
|
|
146
|
+
className: oe(
|
|
147
|
+
"inconel-floating-panel",
|
|
148
|
+
P,
|
|
149
|
+
ee,
|
|
150
|
+
Q && "inconel-is-holding",
|
|
151
|
+
q
|
|
152
|
+
),
|
|
153
|
+
ref: c,
|
|
154
|
+
style: { transform: "translate(-1000px, 0px)" },
|
|
155
|
+
children: /* @__PURE__ */ te("div", { className: "inconel-floating-panel__content", children: [
|
|
156
|
+
w && /* @__PURE__ */ M("div", { className: "inconel-floating-panel__drag-bg", ref: V }),
|
|
157
|
+
U,
|
|
158
|
+
K && /* @__PURE__ */ M(
|
|
159
|
+
"div",
|
|
160
|
+
{
|
|
161
|
+
className: "inconel-floating-panel__close",
|
|
162
|
+
role: "button",
|
|
163
|
+
tabIndex: 0,
|
|
164
|
+
onClick: () => f(),
|
|
165
|
+
onKeyDown: (t) => {
|
|
166
|
+
(t.key === "Enter" || t.key === " ") && f();
|
|
167
|
+
},
|
|
168
|
+
children: "×"
|
|
169
|
+
}
|
|
170
|
+
)
|
|
171
|
+
] })
|
|
172
|
+
}
|
|
173
|
+
),
|
|
174
|
+
_
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
export {
|
|
178
|
+
ue as FloatingPanel
|
|
179
|
+
};
|
|
180
|
+
//# sourceMappingURL=FloatingPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloatingPanel.js","sources":["../../../src/components/FloatingPanel/FloatingPanel.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState, type ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { classNames } from '../shared/classNames'\nimport './styles.css'\n\nexport type FloatingPanelTrianglePosition =\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right'\n | 'left-top'\n | 'left-center'\n | 'left-bottom'\n | 'right-top'\n | 'right-center'\n | 'right-bottom'\n\nexport interface FloatingPanelPosition {\n x: number | null\n y: number | null\n}\n\nexport interface FloatingPanelProps {\n id?: string | null\n className?: string\n target?: HTMLElement | null\n watchTarget?: boolean\n trianglePosition?: FloatingPanelTrianglePosition\n triangleShow?: boolean\n windowCenterToPage?: boolean\n closeButtonShow?: boolean\n onClosed: () => void\n onOutsideClick?: (event: MouseEvent) => void\n closeOnScroll?: boolean\n transition?: 'slide' | 'fade' | 'off'\n draggable?: boolean\n defaultPositionX?: number | null\n defaultPositionY?: number | null\n onPositionChange?: (position: FloatingPanelPosition) => void\n render?: boolean\n children?: ReactNode\n portalTarget?: Element | null\n}\n\nconst TRIANGLE_OFFSET = 10\nconst VERTICAL_OFFSET = 5\n\nfunction isValidNumber(value: number | null | undefined): value is number {\n return value !== null && value !== undefined && !Number.isNaN(value)\n}\n\nexport function FloatingPanel({\n id = null,\n className,\n target = null,\n watchTarget = true,\n trianglePosition = 'top-left',\n triangleShow = true,\n windowCenterToPage = false,\n closeButtonShow = true,\n onClosed,\n onOutsideClick,\n closeOnScroll = false,\n transition = 'slide',\n draggable = false,\n defaultPositionX = null,\n defaultPositionY = null,\n onPositionChange,\n render = true,\n children,\n portalTarget,\n}: FloatingPanelProps) {\n const [holding, setHolding] = useState(false)\n const panelRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n const referencePosition = useRef<{ x: number; y: number } | null>(null)\n const lastDragPosition = useRef<FloatingPanelPosition>({ x: null, y: null })\n const watchIntervalRef = useRef<ReturnType<typeof setInterval> | undefined>(\n undefined,\n )\n const isDraggingRef = useRef(false)\n\n const resolvedPortalTarget =\n portalTarget ?? (typeof document !== 'undefined' ? document.body : null)\n const show = render && resolvedPortalTarget !== null\n const watchTargetActive = !draggable && watchTarget && show\n\n const setCenter = useCallback(() => {\n const panelElement = panelRef.current\n if (!panelElement) return\n const { width, height } = panelElement.getBoundingClientRect()\n const halfBrowserWidth = window.innerWidth / 2\n const halfBrowserHeight = window.innerHeight / 2\n panelElement.style.transform = `translate(${halfBrowserWidth - width / 2}px, ${\n halfBrowserHeight - height / 2\n }px)`\n }, [])\n\n const setPosition = useCallback(() => {\n const panelElement = panelRef.current\n if (!panelElement || !target) return\n\n const winWidth = window.innerWidth\n const winHeight = window.innerHeight\n const panelRect = panelElement.getBoundingClientRect()\n const targetRect = target.getBoundingClientRect()\n const horizontalOffset = TRIANGLE_OFFSET * 1.5\n\n let posX = 0\n let posY = 0\n\n switch (trianglePosition) {\n case 'top-left':\n posX = targetRect.left + targetRect.width / 2 - horizontalOffset\n posY = targetRect.top + targetRect.height + VERTICAL_OFFSET\n break\n case 'top-center':\n posX = targetRect.left + targetRect.width / 2 - panelRect.width / 2\n posY = targetRect.top + targetRect.height + VERTICAL_OFFSET\n break\n case 'top-right':\n posX =\n targetRect.left + targetRect.width / 2 - panelRect.width + horizontalOffset\n posY = targetRect.top + targetRect.height + VERTICAL_OFFSET\n break\n case 'bottom-left':\n posX = targetRect.left + targetRect.width / 2 - horizontalOffset\n posY = targetRect.top - panelRect.height - VERTICAL_OFFSET\n break\n case 'bottom-center':\n posX = targetRect.left + targetRect.width / 2 - panelRect.width / 2\n posY = targetRect.top - panelRect.height - VERTICAL_OFFSET\n break\n case 'bottom-right':\n posX =\n targetRect.left + targetRect.width / 2 - panelRect.width + horizontalOffset\n posY = targetRect.top - panelRect.height - VERTICAL_OFFSET\n break\n case 'left-top':\n posX = targetRect.left + targetRect.width + VERTICAL_OFFSET\n posY = targetRect.top + targetRect.height / 2 - horizontalOffset\n break\n case 'left-center':\n posX = targetRect.left + targetRect.width + VERTICAL_OFFSET\n posY = targetRect.top + targetRect.height / 2 - panelRect.height / 2\n break\n case 'left-bottom':\n posX = targetRect.left + targetRect.width + VERTICAL_OFFSET\n posY =\n targetRect.top + targetRect.height / 2 - panelRect.height + horizontalOffset\n break\n case 'right-top':\n posX = targetRect.left - panelRect.width - VERTICAL_OFFSET\n posY = targetRect.top + targetRect.height / 2 - horizontalOffset\n break\n case 'right-center':\n posX = targetRect.left - panelRect.width - VERTICAL_OFFSET\n posY = targetRect.top + targetRect.height / 2 - panelRect.height / 2\n break\n case 'right-bottom':\n posX = targetRect.left - panelRect.width - VERTICAL_OFFSET\n posY =\n targetRect.top + targetRect.height / 2 - panelRect.height + horizontalOffset\n break\n default:\n break\n }\n\n posX = posX < TRIANGLE_OFFSET ? TRIANGLE_OFFSET : posX\n posX =\n posX + panelRect.width + TRIANGLE_OFFSET > winWidth\n ? winWidth - (panelRect.width + TRIANGLE_OFFSET)\n : posX\n\n posY = posY < TRIANGLE_OFFSET ? TRIANGLE_OFFSET : posY\n posY =\n posY + panelRect.height + TRIANGLE_OFFSET > winHeight\n ? winHeight - (panelRect.height + TRIANGLE_OFFSET)\n : posY\n\n panelElement.style.transform = `translate(${posX}px, ${posY}px)`\n }, [target, trianglePosition])\n\n const handleScroll = useCallback(\n (event: Event) => {\n const panelElement = panelRef.current\n if (panelElement && !panelElement.contains(event.target as Node)) {\n onClosed()\n }\n },\n [onClosed],\n )\n\n const handleOutsideClick = useCallback(\n (event: MouseEvent) => {\n const panelElement = panelRef.current\n if (panelElement && !panelElement.contains(event.target as Node)) {\n onOutsideClick?.(event)\n }\n },\n [onOutsideClick],\n )\n\n const watchComponent = useCallback(() => {\n if (watchTargetActive) {\n if (windowCenterToPage) setCenter()\n else setPosition()\n }\n\n if (target && !document.body.contains(target)) {\n clearInterval(watchIntervalRef.current)\n onClosed()\n }\n }, [onClosed, setCenter, setPosition, target, watchTargetActive, windowCenterToPage])\n\n const handleMouseMove = useCallback((event: MouseEvent) => {\n event.preventDefault()\n const reference = referencePosition.current\n const panelElement = panelRef.current\n if (!reference || !panelElement) return\n\n const posX = event.pageX - reference.x\n const posY = event.pageY - reference.y\n lastDragPosition.current = { x: posX, y: posY }\n\n if (isDraggingRef.current) {\n requestAnimationFrame(() => {\n panelElement.style.transform = `translate(${posX}px, ${posY}px)`\n })\n }\n setHolding(true)\n }, [])\n\n const handleMouseUp = useCallback(() => {\n document.removeEventListener('mouseup', handleMouseUp)\n document.removeEventListener('mousemove', handleMouseMove)\n isDraggingRef.current = false\n onPositionChange?.({\n x: lastDragPosition.current.x,\n y: lastDragPosition.current.y,\n })\n setHolding(false)\n }, [handleMouseMove, onPositionChange])\n\n const handlePanelMouseDown = useCallback(\n (event: MouseEvent) => {\n event.preventDefault()\n const panelElement = panelRef.current\n if (!panelElement) return\n const { left, top } = panelElement.getBoundingClientRect()\n referencePosition.current = { x: event.clientX - left, y: event.clientY - top }\n isDraggingRef.current = true\n document.addEventListener('mouseup', handleMouseUp)\n document.addEventListener('mousemove', handleMouseMove)\n },\n [handleMouseMove, handleMouseUp],\n )\n\n useEffect(() => {\n document.removeEventListener('mousedown', handleOutsideClick)\n clearInterval(watchIntervalRef.current)\n\n if (!isValidNumber(defaultPositionX) && !isValidNumber(defaultPositionY)) {\n if (windowCenterToPage) setCenter()\n else setPosition()\n }\n\n if (show) {\n document.addEventListener('mousedown', handleOutsideClick)\n }\n\n let watchedTimeout: ReturnType<typeof setTimeout> | undefined\n if (target) {\n watchIntervalRef.current = setInterval(watchComponent, 100)\n watchedTimeout = setTimeout(() => {\n panelRef.current?.classList.add('inconel-is-watched')\n }, 500)\n }\n\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick)\n clearInterval(watchIntervalRef.current)\n clearTimeout(watchedTimeout)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [render, target, handleOutsideClick, windowCenterToPage, draggable])\n\n useEffect(() => {\n if (!closeOnScroll) return undefined\n window.addEventListener('scroll', handleScroll, true)\n return () => window.removeEventListener('scroll', handleScroll, true)\n }, [closeOnScroll, handleScroll])\n\n useEffect(() => {\n const contentElement = contentRef.current\n if (!contentElement || !draggable) return undefined\n contentElement.addEventListener('mousedown', handlePanelMouseDown)\n return () =>\n contentElement.removeEventListener('mousedown', handlePanelMouseDown)\n }, [draggable, handlePanelMouseDown, render])\n\n useEffect(() => {\n if (isValidNumber(defaultPositionX) && isValidNumber(defaultPositionY)) {\n panelRef.current?.style.setProperty(\n 'transform',\n `translate(${defaultPositionX}px, ${defaultPositionY}px)`,\n )\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n if (!show || !resolvedPortalTarget) return null\n\n const triangleClass = triangleShow ? trianglePosition : 'inconel-triangle-off'\n const transitionClass =\n transition === 'slide'\n ? `inconel-is-animated-${trianglePosition.split('-')[0]}`\n : transition === 'fade'\n ? 'inconel-is-animation-fade'\n : undefined\n\n return createPortal(\n <div\n id={id ?? undefined}\n className={classNames(\n 'inconel-floating-panel',\n triangleClass,\n transitionClass,\n holding && 'inconel-is-holding',\n className,\n )}\n ref={panelRef}\n style={{ transform: 'translate(-1000px, 0px)' }}\n >\n <div className=\"inconel-floating-panel__content\">\n {draggable && (\n <div className=\"inconel-floating-panel__drag-bg\" ref={contentRef} />\n )}\n {children}\n {closeButtonShow && (\n <div\n className=\"inconel-floating-panel__close\"\n role=\"button\"\n tabIndex={0}\n onClick={() => onClosed()}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') onClosed()\n }}\n >\n ×\n </div>\n )}\n </div>\n </div>,\n resolvedPortalTarget,\n )\n}\n"],"names":["TRIANGLE_OFFSET","VERTICAL_OFFSET","isValidNumber","value","FloatingPanel","id","className","target","watchTarget","trianglePosition","triangleShow","windowCenterToPage","closeButtonShow","onClosed","onOutsideClick","closeOnScroll","transition","draggable","defaultPositionX","defaultPositionY","onPositionChange","render","children","portalTarget","holding","setHolding","useState","panelRef","useRef","contentRef","referencePosition","lastDragPosition","watchIntervalRef","isDraggingRef","resolvedPortalTarget","show","watchTargetActive","setCenter","useCallback","panelElement","width","height","halfBrowserWidth","halfBrowserHeight","setPosition","winWidth","winHeight","panelRect","targetRect","horizontalOffset","posX","posY","handleScroll","event","handleOutsideClick","watchComponent","handleMouseMove","reference","handleMouseUp","handlePanelMouseDown","left","top","useEffect","watchedTimeout","contentElement","triangleClass","transitionClass","createPortal","jsx","classNames","jsxs"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingPanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface MultiSelectCheckBoxOption {
|
|
3
|
+
[key: string]: unknown;
|
|
4
|
+
}
|
|
5
|
+
export interface MultiSelectCheckBoxProps<T extends MultiSelectCheckBoxOption = MultiSelectCheckBoxOption> {
|
|
6
|
+
id?: string | null;
|
|
7
|
+
label?: ReactNode;
|
|
8
|
+
className?: string | null;
|
|
9
|
+
labelClassName?: string | null;
|
|
10
|
+
inputClassName?: string | null;
|
|
11
|
+
optionsClassName?: string | null;
|
|
12
|
+
optionItemClassName?: string | null;
|
|
13
|
+
searchableInputClassName?: string | null;
|
|
14
|
+
options?: T[];
|
|
15
|
+
defaultSelectedOptions?: T[];
|
|
16
|
+
optionLabel?: string;
|
|
17
|
+
optionValue?: string;
|
|
18
|
+
onChange?: (selected: T[]) => void;
|
|
19
|
+
placeholder?: string;
|
|
20
|
+
selectedInputMessage?: string;
|
|
21
|
+
itemSelectedText?: string;
|
|
22
|
+
selectAllText?: string;
|
|
23
|
+
searchPlaceholder?: string;
|
|
24
|
+
noDataMessage?: string;
|
|
25
|
+
errorMessage?: string;
|
|
26
|
+
errorPlace?: 'in' | 'out';
|
|
27
|
+
isSearchable?: boolean;
|
|
28
|
+
isLoading?: boolean;
|
|
29
|
+
isDisabled?: boolean;
|
|
30
|
+
reactPortal?: boolean;
|
|
31
|
+
windowPosition?: boolean;
|
|
32
|
+
windowHeight?: number;
|
|
33
|
+
windowClose?: (closed: boolean) => void;
|
|
34
|
+
isScrollEnd?: (end: boolean) => void;
|
|
35
|
+
getOptionTooltip?: (option: T) => string | undefined;
|
|
36
|
+
limit?: number | null;
|
|
37
|
+
selectionLimit?: number | null;
|
|
38
|
+
}
|
|
39
|
+
export declare function MultiSelectCheckBox<T extends MultiSelectCheckBoxOption = MultiSelectCheckBoxOption>({ id, label, className, labelClassName, inputClassName, optionsClassName, optionItemClassName, searchableInputClassName, options, defaultSelectedOptions, optionLabel, optionValue, onChange, placeholder, selectedInputMessage, itemSelectedText, selectAllText, searchPlaceholder, noDataMessage, errorMessage, errorPlace, isSearchable, isLoading, isDisabled, reactPortal, windowPosition, windowHeight, windowClose, isScrollEnd, getOptionTooltip, limit, selectionLimit, }: MultiSelectCheckBoxProps<T>): import("react").JSX.Element;
|
|
40
|
+
//# sourceMappingURL=MultiSelectCheckBox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiSelectCheckBox.d.ts","sourceRoot":"","sources":["../../../src/components/MultiSelectCheckBox/MultiSelectCheckBox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,SAAS,EAEf,MAAM,OAAO,CAAA;AAKd,OAAO,cAAc,CAAA;AAErB,MAAM,WAAW,yBAAyB;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,wBAAwB,CACvC,CAAC,SAAS,yBAAyB,GAAG,yBAAyB;IAE/D,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAA;IACb,sBAAsB,CAAC,EAAE,CAAC,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,IAAI,GAAG,KAAK,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACvC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IACpC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAA;IACpD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AAcD,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,yBAAyB,GAAG,yBAAyB,EAC/D,EACA,EAAS,EACT,KAAY,EACZ,SAAgB,EAChB,cAAqB,EACrB,cAAqB,EACrB,gBAAuB,EACvB,mBAA0B,EAC1B,wBAA+B,EAC/B,OAAuB,EACvB,sBAAsC,EACtC,WAAqB,EACrB,WAAqB,EACrB,QAAQ,EACR,WAAuB,EACvB,oBAAoB,EACpB,gBAA+B,EAC/B,aAA4B,EAC5B,iBAAyB,EACzB,aAAiC,EACjC,YAAiB,EACjB,UAAkB,EAClB,YAAoB,EACpB,SAAiB,EACjB,UAAkB,EAClB,WAAmB,EACnB,cAAsB,EACtB,YAAkB,EAClB,WAAW,EACX,WAAW,EACX,gBACkE,EAClE,KAAY,EACZ,cAAqB,GACtB,EAAE,wBAAwB,CAAC,CAAC,CAAC,+BAwX7B"}
|