urfu-ui-kit-react 2.1.5 → 2.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Accordion/Accordion.d.ts +1 -1
- package/dist/components/Accordion/Accordion.d.ts.map +1 -1
- package/dist/components/Accordion/Accordion.js +9 -8
- package/dist/components/Accordion/Accordion.types.d.ts +2 -0
- package/dist/components/Accordion/Accordion.types.d.ts.map +1 -1
- package/dist/components/BreadCrumbs/BreadCrumbs.d.ts.map +1 -1
- package/dist/components/BreadCrumbs/BreadCrumbs.js +20 -19
- package/dist/components/Calendar/Calendar.d.ts.map +1 -1
- package/dist/components/Calendar/Calendar.js +145 -144
- package/dist/components/Calendar/Calendar.types.d.ts +9 -4
- package/dist/components/Calendar/Calendar.types.d.ts.map +1 -1
- package/dist/components/Card/Card.d.ts.map +1 -1
- package/dist/components/Card/Card.js +37 -31
- package/dist/components/ColumnSettings/ColumnSettings.d.ts.map +1 -1
- package/dist/components/ColumnSettings/ColumnSettings.js +72 -72
- package/dist/components/Drawer/Drawer.d.ts +11 -0
- package/dist/components/Drawer/Drawer.d.ts.map +1 -0
- package/dist/components/Drawer/Drawer.js +87 -0
- package/dist/components/Drawer/Drawer.types.d.ts +44 -0
- package/dist/components/Drawer/Drawer.types.d.ts.map +1 -0
- package/dist/components/ErrorScreen/ErrorScreen.d.ts.map +1 -1
- package/dist/components/ErrorScreen/ErrorScreen.js +172 -138
- package/dist/components/FormField/FormField.d.ts +1 -1
- package/dist/components/FormField/FormField.d.ts.map +1 -1
- package/dist/components/FormField/FormField.js +42 -29
- package/dist/components/FormField/FormField.types.d.ts +6 -0
- package/dist/components/FormField/FormField.types.d.ts.map +1 -1
- package/dist/components/InfiniteScroll/InfiniteScroll.d.ts +22 -0
- package/dist/components/InfiniteScroll/InfiniteScroll.d.ts.map +1 -0
- package/dist/components/InfiniteScroll/InfiniteScroll.js +27 -0
- package/dist/components/InputText/InputText.d.ts +39 -2
- package/dist/components/InputText/InputText.d.ts.map +1 -1
- package/dist/components/InputText/InputText.js +103 -94
- package/dist/components/InputText/InputText.types.d.ts +11 -0
- package/dist/components/InputText/InputText.types.d.ts.map +1 -1
- package/dist/components/InputTime/inputTimeKeyDown.d.ts +17 -2
- package/dist/components/InputTime/inputTimeKeyDown.d.ts.map +1 -1
- package/dist/components/InputTime/useInputTimeWheel.d.ts +13 -1
- package/dist/components/InputTime/useInputTimeWheel.d.ts.map +1 -1
- package/dist/components/Menu/Menu.d.ts.map +1 -1
- package/dist/components/Menu/Menu.js +54 -49
- package/dist/components/Modal/Modal.d.ts.map +1 -1
- package/dist/components/Modal/Modal.js +52 -49
- package/dist/components/Modal/Modal.types.d.ts +4 -2
- package/dist/components/Modal/Modal.types.d.ts.map +1 -1
- package/dist/components/Notification/Notification.d.ts.map +1 -1
- package/dist/components/Notification/Notification.js +97 -86
- package/dist/components/OfflineBanner/OfflineBanner.d.ts.map +1 -1
- package/dist/components/OfflineBanner/OfflineBanner.js +40 -32
- package/dist/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/components/Pagination/Pagination.js +61 -66
- package/dist/components/SearchSelect/SearchSelect.d.ts.map +1 -1
- package/dist/components/SearchSelect/SearchSelect.js +137 -134
- package/dist/components/TabPanels/TabPanels.d.ts +13 -0
- package/dist/components/TabPanels/TabPanels.d.ts.map +1 -0
- package/dist/components/TabPanels/TabPanels.js +8 -0
- package/dist/components/Table/Filter/Filter.d.ts.map +1 -1
- package/dist/components/Table/Filter/Filter.js +47 -47
- package/dist/components/Table/Filter/Filter.types.d.ts +2 -1
- package/dist/components/Table/Filter/Filter.types.d.ts.map +1 -1
- package/dist/components/Table/Filter/SelectFilter.d.ts.map +1 -1
- package/dist/components/Table/Filter/SelectFilter.js +9 -9
- package/dist/components/Table/Table.d.ts +1 -1
- package/dist/components/Table/Table.d.ts.map +1 -1
- package/dist/components/Table/Table.dataPipeline.d.ts +4 -3
- package/dist/components/Table/Table.dataPipeline.d.ts.map +1 -1
- package/dist/components/Table/Table.dataPipeline.js +64 -63
- package/dist/components/Table/Table.js +299 -299
- package/dist/components/Table/Table.rowTypes.d.ts +6 -0
- package/dist/components/Table/Table.rowTypes.d.ts.map +1 -0
- package/dist/components/Table/Table.types.d.ts +10 -3
- package/dist/components/Table/Table.types.d.ts.map +1 -1
- package/dist/components/Table/TableHead.d.ts +27 -19
- package/dist/components/Table/TableHead.d.ts.map +1 -1
- package/dist/components/Table/TableHead.js +1 -1
- package/dist/components/Table/TableMobileCard.d.ts +11 -11
- package/dist/components/Table/TableMobileCard.d.ts.map +1 -1
- package/dist/components/Table/TableMobileCard.js +81 -84
- package/dist/components/Table/TableMobileView.d.ts +7 -5
- package/dist/components/Table/TableMobileView.d.ts.map +1 -1
- package/dist/components/Table/TableRow.d.ts +10 -8
- package/dist/components/Table/TableRow.d.ts.map +1 -1
- package/dist/components/Table/TableRow.js +116 -112
- package/dist/components/Table/useTableColumnPinning.d.ts.map +1 -1
- package/dist/components/Table/useTableVirtualization.d.ts +5 -5
- package/dist/components/Table/useTableVirtualization.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts +1 -1
- package/dist/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.js +109 -104
- package/dist/components/Tabs/Tabs.types.d.ts +29 -1
- package/dist/components/Tabs/Tabs.types.d.ts.map +1 -1
- package/dist/components/Tabs/distributeTabs.d.ts +6 -0
- package/dist/components/Tabs/distributeTabs.d.ts.map +1 -1
- package/dist/components/Tabs/tabsIndicator.d.ts +7 -3
- package/dist/components/Tabs/tabsIndicator.d.ts.map +1 -1
- package/dist/components/Tabs/tabsScroll.d.ts +20 -0
- package/dist/components/Tabs/tabsScroll.d.ts.map +1 -0
- package/dist/components/Tabs/useTabsOverflow.d.ts +3 -1
- package/dist/components/Tabs/useTabsOverflow.d.ts.map +1 -1
- package/dist/components/Tabs/useTabsOverflow.js +33 -33
- package/dist/components/Tabs/useTabsScroll.d.ts +4 -0
- package/dist/components/Tabs/useTabsScroll.d.ts.map +1 -0
- package/dist/components/Tabs/useTabsScroll.js +17 -0
- package/dist/components/Textarea/Textarea.d.ts +22 -2
- package/dist/components/Textarea/Textarea.d.ts.map +1 -1
- package/dist/components/Textarea/Textarea.js +48 -43
- package/dist/components/Textarea/Textarea.types.d.ts +1 -0
- package/dist/components/Textarea/Textarea.types.d.ts.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +150 -131
- package/dist/components/Tooltip/Tooltip.types.d.ts +7 -2
- package/dist/components/Tooltip/Tooltip.types.d.ts.map +1 -1
- package/dist/components/TreeView/TreeView.js +95 -95
- package/dist/components/TreeView/TreeView.types.d.ts +1 -1
- package/dist/components/TreeView/TreeView.types.d.ts.map +1 -1
- package/dist/components/VirtualList/VirtualList.d.ts +45 -0
- package/dist/components/VirtualList/VirtualList.d.ts.map +1 -0
- package/dist/components/VirtualList/VirtualList.js +62 -0
- package/dist/dev/index.js +1306 -584
- package/dist/dev/types/react/src/dev/index.d.ts +1 -1
- package/dist/dev/types/vanilla/src/core/motion.d.ts +41 -0
- package/dist/dev/types/vanilla/src/core/requestLog.d.ts +29 -0
- package/dist/dev/types/vanilla/src/dev/highlight.d.ts +32 -0
- package/dist/dev/types/vanilla/src/dev/intercept.d.ts +4 -1
- package/dist/dev/types/vanilla/src/dev/motionModes.d.ts +30 -0
- package/dist/dev/types/vanilla/src/dev/panelKit.d.ts +49 -0
- package/dist/dev/types/vanilla/src/dev/panelStyles.d.ts +7 -0
- package/dist/dev/types/vanilla/src/dev/rules.d.ts +31 -0
- package/dist/dev/types/vanilla/src/dev/store.d.ts +7 -4
- package/dist/dev/types/vanilla/src/dev/types.d.ts +14 -3
- package/dist/dev/types/vanilla/src/dev/viewModes.d.ts +22 -0
- package/dist/hooks/useCollapseMotion.d.ts +18 -0
- package/dist/hooks/useCollapseMotion.d.ts.map +1 -0
- package/dist/hooks/useCollapseMotion.js +9 -0
- package/dist/hooks/useDismiss.d.ts +7 -1
- package/dist/hooks/useDismiss.d.ts.map +1 -1
- package/dist/hooks/useDismiss.js +19 -17
- package/dist/hooks/useEnterMotion.d.ts +9 -0
- package/dist/hooks/useEnterMotion.d.ts.map +1 -0
- package/dist/hooks/useEnterMotion.js +10 -0
- package/dist/hooks/useForwardedRef.d.ts +8 -0
- package/dist/hooks/useForwardedRef.d.ts.map +1 -0
- package/dist/hooks/useForwardedRef.js +8 -0
- package/dist/hooks/useInfiniteScroll.d.ts +27 -0
- package/dist/hooks/useInfiniteScroll.d.ts.map +1 -0
- package/dist/hooks/useInfiniteScroll.js +13 -0
- package/dist/hooks/useMountTransition.d.ts +1 -1
- package/dist/hooks/useMountTransition.d.ts.map +1 -1
- package/dist/hooks/useMountTransition.js +14 -13
- package/dist/hooks/useVirtualList.d.ts +34 -0
- package/dist/hooks/useVirtualList.d.ts.map +1 -0
- package/dist/hooks/useVirtualList.js +21 -0
- package/dist/index.d.ts +15 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/shared/collapseMotion.d.ts +32 -0
- package/dist/shared/collapseMotion.d.ts.map +1 -0
- package/dist/shared/infiniteScroll.d.ts +42 -0
- package/dist/shared/infiniteScroll.d.ts.map +1 -0
- package/dist/shared/kitCopy.js +1 -1
- package/dist/shared/linkClick.d.ts +7 -0
- package/dist/shared/linkClick.d.ts.map +1 -0
- package/dist/shared/motion.d.ts +42 -0
- package/dist/shared/motion.d.ts.map +1 -0
- package/dist/shared/popupTransition.d.ts +10 -2
- package/dist/shared/popupTransition.d.ts.map +1 -1
- package/dist/shared/popupTransition.js +6 -5
- package/dist/shared/virtualList.d.ts +103 -0
- package/dist/shared/virtualList.d.ts.map +1 -0
- package/dist/style-no-fonts.css +1 -1
- package/dist/style.css +1 -1
- package/dist/style.layer.css +2 -2
- package/dist/style.shell.css +5 -5
- package/dist/urfu-ui-kit-react.js +53 -45
- package/dist/utils/describeError.d.ts +12 -1
- package/dist/utils/describeError.d.ts.map +1 -1
- package/dist/vanilla/core/collapseMotion.js +58 -0
- package/dist/vanilla/core/describeError.js +172 -115
- package/dist/vanilla/core/distributeTabs.js +23 -20
- package/dist/vanilla/core/infiniteScroll.js +79 -0
- package/dist/vanilla/core/linkClick.js +2 -0
- package/dist/vanilla/core/motion.js +29 -0
- package/dist/vanilla/core/requestLog.js +40 -0
- package/dist/vanilla/core/tabsIndicator.js +29 -26
- package/dist/vanilla/core/tabsScroll.js +29 -0
- package/dist/vanilla/core/virtualList.js +213 -0
- package/package.json +1 -1
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
import { jsxs as f, jsx as i, Fragment as
|
|
2
|
-
import { useState as O, useRef as z, useMemo as
|
|
1
|
+
import { jsxs as f, jsx as i, Fragment as Q } from "react/jsx-runtime";
|
|
2
|
+
import { useState as O, useRef as z, useMemo as X } from "react";
|
|
3
3
|
/* empty css */
|
|
4
|
-
import { createPortal as
|
|
4
|
+
import { createPortal as $e } from "react-dom";
|
|
5
5
|
/* empty css */
|
|
6
6
|
/* empty css */
|
|
7
7
|
/* empty css */
|
|
8
8
|
/* empty css */
|
|
9
|
-
import { useDismiss$u as
|
|
9
|
+
import { useDismiss$u as Ce } from "../../hooks/useDismiss.js";
|
|
10
10
|
import { useAnchoredPosition$u as Ie, fitToViewport$u as ke } from "../../hooks/useAnchoredPosition.js";
|
|
11
11
|
import { useMountTransition$u as Ee } from "../../hooks/useMountTransition.js";
|
|
12
12
|
import Se from "../../hooks/useDebounce.js";
|
|
13
13
|
import { useOptionKeyboardNavigation$u as _e } from "../../hooks/useOptionKeyboardNavigation.js";
|
|
14
14
|
import { useActiveOptionScroll$u as je } from "../../hooks/useActiveOptionScroll.js";
|
|
15
|
-
import { OPTION_STATE_COLORS$u as
|
|
15
|
+
import { OPTION_STATE_COLORS$u as Z } from "../../shared/optionStateColors.js";
|
|
16
16
|
import { getPopupTransitionStyle$u as Ae, POPUP_TRANSITION_MS$u as Pe } from "../../shared/popupTransition.js";
|
|
17
17
|
import { useAutoId$u as ze } from "../../hooks/useAutoId.js";
|
|
18
18
|
import { sizeClassName$u as De, isCompact$u as Be } from "../../shared/size.js";
|
|
19
19
|
import { getPortalScopeProps$u as Ke } from "../../shared/uiKitDefaults.js";
|
|
20
20
|
import { resolveValidation$u as Le } from "../../vanilla/core/validation.js";
|
|
21
|
-
const
|
|
21
|
+
const ot = ({
|
|
22
22
|
title: D = "",
|
|
23
|
-
required:
|
|
24
|
-
styleSelectContainer:
|
|
25
|
-
styleTitle:
|
|
23
|
+
required: U = !1,
|
|
24
|
+
styleSelectContainer: ee,
|
|
25
|
+
styleTitle: te,
|
|
26
26
|
lineUp: E = !1,
|
|
27
|
-
rowGap:
|
|
28
|
-
columnGap:
|
|
29
|
-
placeholder:
|
|
27
|
+
rowGap: ie = 4,
|
|
28
|
+
columnGap: ne = 20,
|
|
29
|
+
placeholder: ce = "Выберите из списка",
|
|
30
30
|
value: n,
|
|
31
31
|
isClearable: S,
|
|
32
|
-
onDelete:
|
|
32
|
+
onDelete: re,
|
|
33
33
|
onClick: B,
|
|
34
|
-
className:
|
|
35
|
-
tableView:
|
|
36
|
-
size:
|
|
37
|
-
validationText:
|
|
34
|
+
className: K,
|
|
35
|
+
tableView: L = !1,
|
|
36
|
+
size: M,
|
|
37
|
+
validationText: oe = "Заполните поле",
|
|
38
38
|
validationOn: se,
|
|
39
39
|
error: le,
|
|
40
40
|
absoluteValidationText: ae,
|
|
41
41
|
data: a,
|
|
42
42
|
portalOn: T,
|
|
43
43
|
id: ue,
|
|
44
|
-
disabled:
|
|
44
|
+
disabled: v,
|
|
45
45
|
isSearchable: r
|
|
46
46
|
}) => {
|
|
47
|
-
var
|
|
48
|
-
const
|
|
49
|
-
|
|
47
|
+
var J;
|
|
48
|
+
const y = Be(M, L), R = De(M, L), _ = Le({ error: le, validationOn: se, validationText: oe }), V = ze(ue, "u-tree"), [h, $] = O(""), [de, pe] = O(null), [b, me] = O([]), [o, C] = O(!1), [fe, H] = O(null), W = z(null), I = z(null), u = z(), F = Se(h, 300), j = X(() => a.filter((e) => e.title.toLowerCase().includes((F || "").toLowerCase())), [F, a]), k = () => {
|
|
49
|
+
C(!1);
|
|
50
50
|
};
|
|
51
|
-
|
|
52
|
-
refs: [
|
|
51
|
+
Ce({
|
|
52
|
+
refs: [W, I],
|
|
53
53
|
onDismiss: k,
|
|
54
|
-
enabled:
|
|
54
|
+
enabled: o
|
|
55
55
|
});
|
|
56
|
-
const
|
|
57
|
-
e.stopPropagation(),
|
|
58
|
-
},
|
|
56
|
+
const G = (e) => typeof e == "number" ? `calc(${e} * var(--u-preset-unit, 1px))` : String(e), he = (e, t) => {
|
|
57
|
+
e.stopPropagation(), me((c) => c != null && c.includes(t) ? c.filter((l) => l !== t) : [...c, t]);
|
|
58
|
+
}, q = (e) => {
|
|
59
59
|
const t = a.filter((l) => l.parentId === e.id);
|
|
60
60
|
if (t.length === 0)
|
|
61
61
|
return e;
|
|
62
|
-
let
|
|
62
|
+
let c = null;
|
|
63
63
|
return t.forEach((l) => {
|
|
64
|
-
const d =
|
|
65
|
-
d && (
|
|
66
|
-
}),
|
|
64
|
+
const d = q(l);
|
|
65
|
+
d && (c = d);
|
|
66
|
+
}), c;
|
|
67
67
|
}, A = ({ node: e, counter: t }) => {
|
|
68
|
-
const
|
|
69
|
-
var
|
|
70
|
-
B(e), k(), r && (
|
|
68
|
+
const c = a.filter((m) => m.parentId === e.id), l = t + 1, d = b == null ? void 0 : b.includes(e.id), p = q(e), we = xe === e.id, Ne = n == (e == null ? void 0 : e.title), Oe = fe === e.id, Te = () => {
|
|
69
|
+
var m;
|
|
70
|
+
B(e), k(), r && ($(""), (m = u == null ? void 0 : u.current) == null || m.focus());
|
|
71
71
|
};
|
|
72
72
|
return /* @__PURE__ */ f("ul", { className: "treeview-list", children: [
|
|
73
73
|
/* @__PURE__ */ f(
|
|
@@ -76,44 +76,44 @@ const ct = ({
|
|
|
76
76
|
className: "treeview-list__item",
|
|
77
77
|
"data-node-id": String(e.id),
|
|
78
78
|
style: Object.assign(
|
|
79
|
-
{ paddingLeft: `calc(${t} * 16 * var(--u-preset-unit, 1px))` },
|
|
80
|
-
Ne ? { backgroundColor:
|
|
79
|
+
{ paddingLeft: `calc((${t} * 16 + 12) * var(--u-preset-unit, 1px))` },
|
|
80
|
+
Ne ? { backgroundColor: Z.selectedBackground, borderRadius: "calc(10 * var(--u-preset-unit, 1px))" } : Oe || we ? { backgroundColor: Z.hoveredBackground, borderRadius: "calc(10 * var(--u-preset-unit, 1px))" } : null
|
|
81
81
|
),
|
|
82
|
-
onMouseEnter: () =>
|
|
83
|
-
onMouseLeave: () =>
|
|
82
|
+
onMouseEnter: () => H(e.id),
|
|
83
|
+
onMouseLeave: () => H(null),
|
|
84
84
|
children: [
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
p.id !== e.id && /* @__PURE__ */ i("div", { onClick: (m) => he(m, e.id), children: d ? /* @__PURE__ */ i("i", { style: { cursor: "pointer", width: "calc(20 * var(--u-unit, 1px))", height: "calc(20 * var(--u-unit, 1px))" }, className: "u-icon icon-down clr-blue-main" }) : /* @__PURE__ */ i("i", { style: { cursor: "pointer", width: "calc(20 * var(--u-unit, 1px))", height: "calc(20 * var(--u-unit, 1px))" }, className: "u-icon icon-right clr-blue-main" }) }),
|
|
86
|
+
p.id !== e.id && /* @__PURE__ */ i("i", { className: "u-icon icon-folder clr-orange" }),
|
|
87
87
|
/* @__PURE__ */ i("p", { onClick: Te, style: { cursor: "pointer" }, className: "tt", children: e.title })
|
|
88
88
|
]
|
|
89
89
|
}
|
|
90
90
|
),
|
|
91
|
-
d &&
|
|
91
|
+
d && c.map((m) => /* @__PURE__ */ i(A, { node: m, counter: l }, m.id))
|
|
92
92
|
] });
|
|
93
|
-
}, s = r && h ? j : a == null ? void 0 : a.filter((e) => e.parentId === null), w =
|
|
93
|
+
}, s = r && h ? j : a == null ? void 0 : a.filter((e) => e.parentId === null), w = X(() => {
|
|
94
94
|
if (!Array.isArray(a)) return [];
|
|
95
95
|
if (r && h)
|
|
96
96
|
return j;
|
|
97
97
|
const e = /* @__PURE__ */ new Map();
|
|
98
98
|
a.forEach((l) => {
|
|
99
|
-
const d = l.parentId,
|
|
100
|
-
|
|
99
|
+
const d = l.parentId, p = e.get(d) ?? [];
|
|
100
|
+
p.push(l), e.set(d, p);
|
|
101
101
|
});
|
|
102
|
-
const t = [],
|
|
103
|
-
(e.get(l) ?? []).forEach((
|
|
104
|
-
t.push(
|
|
102
|
+
const t = [], c = (l) => {
|
|
103
|
+
(e.get(l) ?? []).forEach((p) => {
|
|
104
|
+
t.push(p), b.includes(p.id) && c(p.id);
|
|
105
105
|
});
|
|
106
106
|
};
|
|
107
|
-
return
|
|
108
|
-
}, [a, b, j, r, h]), { activeIndex: P, handleKeyDown:
|
|
109
|
-
isOpen:
|
|
110
|
-
disabled:
|
|
107
|
+
return c(null), t;
|
|
108
|
+
}, [a, b, j, r, h]), { activeIndex: P, handleKeyDown: Y } = _e({
|
|
109
|
+
isOpen: o,
|
|
110
|
+
disabled: v,
|
|
111
111
|
optionsLength: w.length,
|
|
112
112
|
initialIndex: Math.max(
|
|
113
113
|
0,
|
|
114
114
|
w.findIndex((e) => (e == null ? void 0 : e.title) === n)
|
|
115
115
|
),
|
|
116
|
-
onOpen: () =>
|
|
116
|
+
onOpen: () => C(!0),
|
|
117
117
|
onClose: () => {
|
|
118
118
|
k();
|
|
119
119
|
},
|
|
@@ -121,9 +121,9 @@ const ct = ({
|
|
|
121
121
|
const t = w[e];
|
|
122
122
|
t && ge(t);
|
|
123
123
|
}
|
|
124
|
-
}), xe = P >= 0 ? (
|
|
124
|
+
}), xe = P >= 0 ? (J = w[P]) == null ? void 0 : J.id : void 0;
|
|
125
125
|
je({
|
|
126
|
-
isOpen:
|
|
126
|
+
isOpen: o,
|
|
127
127
|
activeIndex: P,
|
|
128
128
|
portalOn: !1,
|
|
129
129
|
localRef: I,
|
|
@@ -134,15 +134,15 @@ const ct = ({
|
|
|
134
134
|
});
|
|
135
135
|
const ge = (e) => {
|
|
136
136
|
var t;
|
|
137
|
-
e && (B(e), k(), r && (
|
|
137
|
+
e && (B(e), k(), r && ($(""), (t = u == null ? void 0 : u.current) == null || t.focus()));
|
|
138
138
|
}, { rect: x } = Ie({
|
|
139
139
|
anchor: de,
|
|
140
|
-
enabled:
|
|
141
|
-
}), N = x ? ke(x.x, x.width) : null, g = x && N ? { x: N.x, y: x.y + 60 + x.height + x.scrollY } : null, { shouldRender:
|
|
142
|
-
isOpen:
|
|
140
|
+
enabled: o && !!T
|
|
141
|
+
}), N = x ? ke(x.x, x.width) : null, g = x && N ? { x: N.x, y: x.y + 60 + x.height + x.scrollY } : null, { shouldRender: ve, status: ye, isAnimated: be } = Ee({
|
|
142
|
+
isOpen: o && !!T,
|
|
143
143
|
duration: Pe
|
|
144
144
|
});
|
|
145
|
-
return /* @__PURE__ */ f("div", { className: `u-react-select-container${
|
|
145
|
+
return /* @__PURE__ */ f("div", { className: `u-react-select-container${R ? ` ${R}` : ""}${K ? ` ${K}` : ""}`, style: { position: "relative" }, children: [
|
|
146
146
|
/* @__PURE__ */ f(
|
|
147
147
|
"div",
|
|
148
148
|
{
|
|
@@ -150,22 +150,22 @@ const ct = ({
|
|
|
150
150
|
{
|
|
151
151
|
display: "flex",
|
|
152
152
|
flexDirection: E ? "row" : "column",
|
|
153
|
-
rowGap: E ? null :
|
|
154
|
-
columnGap: E ?
|
|
153
|
+
rowGap: E ? null : G(ie),
|
|
154
|
+
columnGap: E ? G(ne) : null
|
|
155
155
|
},
|
|
156
|
-
|
|
156
|
+
ee
|
|
157
157
|
),
|
|
158
158
|
children: [
|
|
159
159
|
D && /* @__PURE__ */ i(
|
|
160
160
|
"div",
|
|
161
161
|
{
|
|
162
|
-
className: `${
|
|
162
|
+
className: `${U ? "u-required" : ""} u-react-select-title`,
|
|
163
163
|
style: Object.assign(
|
|
164
164
|
{
|
|
165
165
|
color: "var(--u-field-title-color, #545454)",
|
|
166
166
|
fontSize: "var(--u-field-label-size-main, calc(14 * var(--u-unit, 1px)))"
|
|
167
167
|
},
|
|
168
|
-
|
|
168
|
+
te
|
|
169
169
|
),
|
|
170
170
|
children: D
|
|
171
171
|
}
|
|
@@ -173,82 +173,82 @@ const ct = ({
|
|
|
173
173
|
/* @__PURE__ */ f(
|
|
174
174
|
"div",
|
|
175
175
|
{
|
|
176
|
-
className: `u-selectbox${
|
|
177
|
-
ref:
|
|
178
|
-
style: { cursor:
|
|
176
|
+
className: `u-selectbox${v ? " u-selectbox-disabled" : ""} u-react-tree-view`,
|
|
177
|
+
ref: W,
|
|
178
|
+
style: { cursor: v ? "default" : "pointer" },
|
|
179
179
|
children: [
|
|
180
180
|
/* @__PURE__ */ f(
|
|
181
181
|
"div",
|
|
182
182
|
{
|
|
183
|
-
tabIndex:
|
|
184
|
-
onKeyDown: r ? void 0 :
|
|
183
|
+
tabIndex: v ? -1 : 0,
|
|
184
|
+
onKeyDown: r ? void 0 : Y,
|
|
185
185
|
onClick: (e) => {
|
|
186
186
|
var t;
|
|
187
|
-
|
|
187
|
+
o || (r && ((t = u == null ? void 0 : u.current) == null || t.focus(), $("")), T && pe(e.currentTarget)), C(!o);
|
|
188
188
|
},
|
|
189
|
-
className: `u-selectbox-select ${
|
|
190
|
-
id: `u-selectbox-select${
|
|
189
|
+
className: `u-selectbox-select ${o ? "u-selectbox-select-open" : ""}`,
|
|
190
|
+
id: `u-selectbox-select${V}`,
|
|
191
191
|
style: Object.assign(
|
|
192
|
-
|
|
192
|
+
y ? {
|
|
193
193
|
height: "var(--u-compact-height)",
|
|
194
194
|
fontSize: "var(--u-compact-font-size)",
|
|
195
195
|
lineHeight: 1,
|
|
196
196
|
padding: "var(--u-compact-padding)"
|
|
197
197
|
} : {},
|
|
198
198
|
_.hasError && { border: "1px solid var(--u-color-error, #EF302B)" },
|
|
199
|
-
|
|
199
|
+
v && { pointerEvents: "none" }
|
|
200
200
|
),
|
|
201
201
|
children: [
|
|
202
|
-
!n && (!r || !
|
|
202
|
+
!n && (!r || !o) ? /* @__PURE__ */ i(
|
|
203
203
|
"span",
|
|
204
204
|
{
|
|
205
205
|
style: Object.assign(
|
|
206
|
-
|
|
207
|
-
maxWidth: `calc(100% - ${(n == null ? void 0 : n.length) > 0 ? 32 : 16}px)`
|
|
206
|
+
y ? {
|
|
207
|
+
maxWidth: `calc(100% - ${((n == null ? void 0 : n.length) ?? 0) > 0 ? 32 : 16}px)`
|
|
208
208
|
} : {},
|
|
209
209
|
{ color: "var(--u-field-title-color, #545454)" }
|
|
210
210
|
),
|
|
211
211
|
className: "u-selectbox-select-title",
|
|
212
|
-
children:
|
|
212
|
+
children: ce
|
|
213
213
|
}
|
|
214
|
-
) : /* @__PURE__ */ i(
|
|
215
|
-
n && (!
|
|
214
|
+
) : /* @__PURE__ */ i(Q, {}),
|
|
215
|
+
n && (!o || !r) ? /* @__PURE__ */ i(
|
|
216
216
|
"span",
|
|
217
217
|
{
|
|
218
|
-
style:
|
|
218
|
+
style: y ? { maxWidth: `calc(100% - ${S && (n != null && n.length) ? 32 : 16}px)` } : {},
|
|
219
219
|
className: "u-selectbox-select-title",
|
|
220
220
|
children: n
|
|
221
221
|
}
|
|
222
|
-
) : /* @__PURE__ */ i(
|
|
222
|
+
) : /* @__PURE__ */ i(Q, {}),
|
|
223
223
|
r && /* @__PURE__ */ i(
|
|
224
224
|
"input",
|
|
225
225
|
{
|
|
226
226
|
ref: u,
|
|
227
|
-
className:
|
|
227
|
+
className: o ? "treeview__search" : "treeview__search_disabled",
|
|
228
228
|
placeholder: n || "Введите значение",
|
|
229
229
|
value: h,
|
|
230
|
-
onChange: (e) =>
|
|
230
|
+
onChange: (e) => $(e.target.value),
|
|
231
231
|
onClick: (e) => {
|
|
232
|
-
|
|
232
|
+
o && e.stopPropagation();
|
|
233
233
|
},
|
|
234
|
-
onKeyDown:
|
|
235
|
-
style: Object.assign(
|
|
234
|
+
onKeyDown: Y,
|
|
235
|
+
style: Object.assign(y ? { padding: 0, paddingRight: `calc(${S && (n != null && n.length) ? 37 : 20} * var(--u-unit, 1px))`, fontSize: "var(--u-compact-font-size)" } : {}, { width: "100%" })
|
|
236
236
|
}
|
|
237
237
|
),
|
|
238
238
|
n && S && /* @__PURE__ */ i(
|
|
239
239
|
"i",
|
|
240
240
|
{
|
|
241
241
|
onClick: (e) => {
|
|
242
|
-
|
|
242
|
+
re(e), C(!1);
|
|
243
243
|
},
|
|
244
244
|
className: "u-selectbox-select-icon-cross",
|
|
245
245
|
role: "button",
|
|
246
246
|
"aria-label": "Очистить",
|
|
247
247
|
style: Object.assign(
|
|
248
|
-
|
|
248
|
+
y ? {
|
|
249
249
|
right: "calc(24 * var(--u-unit, 1px))"
|
|
250
250
|
} : {},
|
|
251
|
-
|
|
251
|
+
v && { pointerEvents: "none" }
|
|
252
252
|
)
|
|
253
253
|
}
|
|
254
254
|
),
|
|
@@ -256,8 +256,8 @@ const ct = ({
|
|
|
256
256
|
"i",
|
|
257
257
|
{
|
|
258
258
|
className: "u-selectbox-select-icon-arrow",
|
|
259
|
-
id: `u-selectbox-select-icon-arrow${
|
|
260
|
-
style:
|
|
259
|
+
id: `u-selectbox-select-icon-arrow${V}`,
|
|
260
|
+
style: y ? {
|
|
261
261
|
width: "calc(12 * var(--u-unit, 1px)) !important",
|
|
262
262
|
right: "calc(6 * var(--u-unit, 1px))"
|
|
263
263
|
} : null
|
|
@@ -266,7 +266,7 @@ const ct = ({
|
|
|
266
266
|
]
|
|
267
267
|
}
|
|
268
268
|
),
|
|
269
|
-
T ?
|
|
269
|
+
T ? ve && g && $e(
|
|
270
270
|
/* @__PURE__ */ i(
|
|
271
271
|
"div",
|
|
272
272
|
{
|
|
@@ -290,7 +290,7 @@ const ct = ({
|
|
|
290
290
|
minWidth: N == null ? void 0 : N.width,
|
|
291
291
|
width: "auto"
|
|
292
292
|
},
|
|
293
|
-
Ae(
|
|
293
|
+
Ae(ye, be)
|
|
294
294
|
),
|
|
295
295
|
className: "u-selectbox-options",
|
|
296
296
|
children: /* @__PURE__ */ f("div", { className: "treeview", children: [
|
|
@@ -320,4 +320,4 @@ const ct = ({
|
|
|
320
320
|
_.showText && /* @__PURE__ */ i("h5", { className: "h5 clr-red-main", style: ae ? { position: "absolute", bottom: "calc(-20 * var(--u-unit, 1px))" } : { position: "relative", marginTop: "calc(4 * var(--u-unit, 1px))" }, children: _.text })
|
|
321
321
|
] });
|
|
322
322
|
};
|
|
323
|
-
export {
|
|
323
|
+
export { ot as TreeView$u };
|
|
@@ -15,7 +15,7 @@ export type SelectProperties = Partial<{
|
|
|
15
15
|
rowGap: string | number;
|
|
16
16
|
columnGap: string | number;
|
|
17
17
|
placeholder: string;
|
|
18
|
-
value:
|
|
18
|
+
value: string | null;
|
|
19
19
|
isClearable: boolean;
|
|
20
20
|
onDelete: (...args: unknown[]) => unknown;
|
|
21
21
|
onClick: (...args: unknown[]) => unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeView.types.d.ts","sourceRoot":"","sources":["../../../src/components/TreeView/TreeView.types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TreeView.types.d.ts","sourceRoot":"","sources":["../../../src/components/TreeView/TreeView.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,oBAAoB,EAAE,aAAa,CAAC;IACpC,UAAU,EAAE,aAAa,CAAC;IAC1B,WAAW,EAAE,aAAa,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IAC1C,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,OAAO,CAAC;IAChC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
|
|
2
|
+
import { type CSSProperties, type ReactElement, type ReactNode, type Ref } from 'react';
|
|
3
|
+
import type { VirtualKey, VirtualScrollOptions } from '../../shared/virtualList';
|
|
4
|
+
export interface VirtualListProps<T> {
|
|
5
|
+
items: readonly T[];
|
|
6
|
+
/** Устойчивый ключ строки (id записи): по нему хранится замер высоты и фокус. */
|
|
7
|
+
getKey: (item: T, index: number) => VirtualKey;
|
|
8
|
+
/** Содержимое строки. Обёртка `li` с позицией — у списка. */
|
|
9
|
+
renderItem: (item: T, index: number) => ReactNode;
|
|
10
|
+
/** Оценка высоты строки до замера, px. По умолчанию 40. */
|
|
11
|
+
estimateSize?: number;
|
|
12
|
+
/** Сколько строк держать в разметке сверх видимых сверху и снизу. По умолчанию 5. */
|
|
13
|
+
overscan?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Высота своей области прокрутки (число — px). Не задана — список прокручивается
|
|
16
|
+
* вместе с ближайшим прокручиваемым предком: телом Modal, панелью, страницей.
|
|
17
|
+
*/
|
|
18
|
+
height?: CSSProperties['height'];
|
|
19
|
+
/** Область прокрутки явно, если её не удаётся найти по предкам. */
|
|
20
|
+
scrollElement?: HTMLElement | null;
|
|
21
|
+
/** Идёт загрузка — `aria-busy` у списка. */
|
|
22
|
+
busy?: boolean;
|
|
23
|
+
/** После строк внутри области прокрутки: датчик `InfiniteScroll`, кнопка, подпись. */
|
|
24
|
+
footer?: ReactNode;
|
|
25
|
+
/** Вместо пустого списка. */
|
|
26
|
+
empty?: ReactNode;
|
|
27
|
+
'aria-label'?: string;
|
|
28
|
+
'aria-labelledby'?: string;
|
|
29
|
+
className?: string;
|
|
30
|
+
itemClassName?: string;
|
|
31
|
+
style?: CSSProperties;
|
|
32
|
+
}
|
|
33
|
+
export interface VirtualListHandle {
|
|
34
|
+
/** Докрутить до строки; `behavior: 'smooth'` при «уменьшить движение» — мгновенно. */
|
|
35
|
+
scrollToIndex: (index: number, options?: VirtualScrollOptions) => void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Длинный список: в DOM только видимые строки и запас, высоты строк — по факту.
|
|
39
|
+
* Прокручивается сам (`height`) или вместе с телом Modal / страницей. Сфокусированная
|
|
40
|
+
* строка не пропадает при прокрутке — Tab продолжает с неё. Ядро общее с Vue `VirtualList`.
|
|
41
|
+
*/
|
|
42
|
+
export declare const VirtualList: <T>(props: VirtualListProps<T> & {
|
|
43
|
+
ref?: Ref<VirtualListHandle>;
|
|
44
|
+
}) => ReactElement;
|
|
45
|
+
//# sourceMappingURL=VirtualList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VirtualList.d.ts","sourceRoot":"","sources":["../../../src/components/VirtualList/VirtualList.tsx"],"names":[],"mappings":"AAAA,OAAO,2DAA2D,CAAC;AACnE,OAAO,EAAmC,KAAK,aAAa,EAAqB,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5I,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEjF,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,iFAAiF;IACjF,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC;IAC/C,6DAA6D;IAC7D,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IAClD,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,mEAAmE;IACnE,aAAa,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,4CAA4C;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sFAAsF;IACtF,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACxE;AAkED;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAmC,CAAC,CAAC,EAC3D,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,KAC1D,YAAY,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { jsxs as B, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
/* empty css */
|
|
3
|
+
import { forwardRef as C, useImperativeHandle as R } from "react";
|
|
4
|
+
import { useVirtualList$u as S } from "../../hooks/useVirtualList.js";
|
|
5
|
+
function E({
|
|
6
|
+
items: l,
|
|
7
|
+
getKey: n,
|
|
8
|
+
renderItem: u,
|
|
9
|
+
estimateSize: c,
|
|
10
|
+
overscan: m,
|
|
11
|
+
height: e,
|
|
12
|
+
scrollElement: d,
|
|
13
|
+
busy: v,
|
|
14
|
+
footer: f,
|
|
15
|
+
empty: r,
|
|
16
|
+
"aria-label": p,
|
|
17
|
+
"aria-labelledby": b,
|
|
18
|
+
className: h,
|
|
19
|
+
itemClassName: N,
|
|
20
|
+
style: t
|
|
21
|
+
}, _) {
|
|
22
|
+
const { listRef: y, virtualItems: j, totalSize: I, measureElement: w, scrollToIndex: s } = S({
|
|
23
|
+
items: l,
|
|
24
|
+
getKey: n,
|
|
25
|
+
estimateSize: c,
|
|
26
|
+
overscan: m,
|
|
27
|
+
scrollElement: d
|
|
28
|
+
});
|
|
29
|
+
R(_, () => ({ scrollToIndex: s }), [s]);
|
|
30
|
+
const o = e !== void 0, x = ["u-virtual-list", o && "u-virtual-list--scroll", h].filter(Boolean).join(" "), L = ["u-virtual-list__item", N].filter(Boolean).join(" ");
|
|
31
|
+
return /* @__PURE__ */ B("div", { className: x, style: o ? { height: e, ...t } : t, children: [
|
|
32
|
+
/* @__PURE__ */ i(
|
|
33
|
+
"ul",
|
|
34
|
+
{
|
|
35
|
+
ref: y,
|
|
36
|
+
role: "list",
|
|
37
|
+
className: "u-virtual-list__inner",
|
|
38
|
+
style: { height: I },
|
|
39
|
+
"aria-label": p,
|
|
40
|
+
"aria-labelledby": b,
|
|
41
|
+
"aria-busy": v || void 0,
|
|
42
|
+
children: j.map(({ key: V, index: a, start: g, item: z }) => /* @__PURE__ */ i(
|
|
43
|
+
"li",
|
|
44
|
+
{
|
|
45
|
+
ref: w,
|
|
46
|
+
"data-index": a,
|
|
47
|
+
className: L,
|
|
48
|
+
style: { top: g },
|
|
49
|
+
"aria-setsize": l.length,
|
|
50
|
+
"aria-posinset": a + 1,
|
|
51
|
+
children: u(z, a)
|
|
52
|
+
},
|
|
53
|
+
V
|
|
54
|
+
))
|
|
55
|
+
}
|
|
56
|
+
),
|
|
57
|
+
!l.length && r !== void 0 && /* @__PURE__ */ i("div", { className: "u-virtual-list__empty", children: r }),
|
|
58
|
+
f
|
|
59
|
+
] });
|
|
60
|
+
}
|
|
61
|
+
const A = C(E);
|
|
62
|
+
export { A as VirtualList$u };
|