urfu-ui-kit-react 2.1.7-next.2 → 2.1.7-next.4
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 +2 -2
- package/dist/components/Calendar/Calendar.d.ts.map +1 -1
- package/dist/components/Calendar/Calendar.js +226 -205
- package/dist/components/Calendar/Calendar.types.d.ts +19 -0
- package/dist/components/Calendar/Calendar.types.d.ts.map +1 -1
- package/dist/components/ErrorScreen/ErrorScreen.js +117 -115
- package/dist/components/SearchSelect/SearchSelect.d.ts.map +1 -1
- package/dist/components/SearchSelect/SearchSelect.js +162 -152
- package/dist/components/Table/Filter/FilterStringBox.js +8 -8
- package/dist/components/Table/Filter/useFilterOptionsPreload.js +2 -2
- package/dist/components/Table/Table.types.d.ts +1 -1
- package/dist/components/Table/Table.types.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.js +34 -33
- package/dist/components/Tabs/distributeTabs.d.ts +7 -3
- package/dist/components/Tabs/distributeTabs.d.ts.map +1 -1
- package/dist/components/Tabs/useTabsOverflow.d.ts +4 -0
- package/dist/components/Tabs/useTabsOverflow.d.ts.map +1 -1
- package/dist/components/Tabs/useTabsOverflow.js +40 -41
- package/dist/dev/index.js +2 -2
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/shared/kitCopy.js +1 -1
- 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 +2 -2
- package/dist/urfu-ui-kit-react.js +10 -9
- package/dist/utils/describeError.d.ts +27 -0
- package/dist/utils/describeError.d.ts.map +1 -1
- package/dist/vanilla/core/dateLimits.js +21 -0
- package/dist/vanilla/core/describeError.js +44 -39
- package/dist/vanilla/core/distributeTabs.js +36 -23
- package/package.json +1 -1
|
@@ -3,20 +3,20 @@ import { jsxs as a, jsx as r } from "react/jsx-runtime";
|
|
|
3
3
|
/* empty css */
|
|
4
4
|
/* empty css */
|
|
5
5
|
/* empty css */
|
|
6
|
-
import { useState as
|
|
6
|
+
import { useState as D, useRef as p, useEffect as ee, Fragment as oe } from "react";
|
|
7
7
|
import { Icon$u as b } from "../Icon/Icon.js";
|
|
8
|
-
import { Tooltip$u as
|
|
9
|
-
import { useDismiss$u as
|
|
10
|
-
import { useMountTransition$u as
|
|
11
|
-
import { getPopupTransitionStyle$u as
|
|
12
|
-
import { useTabsOverflow$u as
|
|
13
|
-
import { useTabsIndicator$u as
|
|
14
|
-
import { useTabsScroll$u as
|
|
15
|
-
import { useAutoId$u as
|
|
16
|
-
import { isPlainLeftClick$u as
|
|
17
|
-
const
|
|
8
|
+
import { Tooltip$u as te } from "../Tooltip/Tooltip.js";
|
|
9
|
+
import { useDismiss$u as re } from "../../hooks/useDismiss.js";
|
|
10
|
+
import { useMountTransition$u as ne } from "../../hooks/useMountTransition.js";
|
|
11
|
+
import { getPopupTransitionStyle$u as se, POPUP_TRANSITION_MS$u as ie } from "../../shared/popupTransition.js";
|
|
12
|
+
import { useTabsOverflow$u as le } from "./useTabsOverflow.js";
|
|
13
|
+
import { useTabsIndicator$u as ae } from "./useTabsIndicator.js";
|
|
14
|
+
import { useTabsScroll$u as ce } from "./useTabsScroll.js";
|
|
15
|
+
import { useAutoId$u as ue } from "../../hooks/useAutoId.js";
|
|
16
|
+
import { isPlainLeftClick$u as me } from "../../vanilla/core/linkClick.js";
|
|
17
|
+
const de = [], Se = ({
|
|
18
18
|
onClick: h,
|
|
19
|
-
tabsData: n =
|
|
19
|
+
tabsData: n = de,
|
|
20
20
|
activeTab: m,
|
|
21
21
|
className: w = "",
|
|
22
22
|
variant: g = "line",
|
|
@@ -26,29 +26,29 @@ const me = [], Se = ({
|
|
|
26
26
|
LinkComponent: $,
|
|
27
27
|
ariaLabel: B
|
|
28
28
|
}) => {
|
|
29
|
-
const { containerRef: K, measureRef: j, moreMeasureRef: q, visible: z, overflow: u, paddingOf: F,
|
|
29
|
+
const { containerRef: K, measureRef: j, moreMeasureRef: q, visible: z, overflow: u, paddingOf: F, morePadding: L, promote: H } = le(n, m, y, g !== "segment"), [d, c] = D(!1), R = p(null), N = p(null), k = p(null), A = ue(void 0, "u-tabs-menu"), { shouldRender: J, status: Y, isAnimated: G } = ne({ isOpen: d, duration: ie }), O = p(u);
|
|
30
30
|
d && (O.current = u);
|
|
31
|
-
const f = g === "segment", T = n.some((e) => e.url), v = f ? "u-tab-segment" : "u-tab-line",
|
|
32
|
-
|
|
31
|
+
const f = g === "segment", T = n.some((e) => e.url), v = f ? "u-tab-segment" : "u-tab-line", Q = f ? "u-tab-segment-active" : "u-tab-active", { trackRef: I, indicatorRef: V } = ae(m, `${g}|${y}|${JSON.stringify(n.map((e) => e.id))}`);
|
|
32
|
+
ce(I, !f, m), re({ refs: [R], enabled: d, onDismiss: () => c(!1) }), ee(() => {
|
|
33
33
|
u.length || c(!1);
|
|
34
34
|
}, [u.length]);
|
|
35
|
-
const
|
|
35
|
+
const P = (e) => {
|
|
36
36
|
var t, s;
|
|
37
37
|
if ((t = n[e]) != null && t.disabled) return;
|
|
38
38
|
const o = u.includes(e);
|
|
39
|
-
|
|
40
|
-
},
|
|
39
|
+
H(e), c(!1), h == null || h(n[e]), o && ((s = N.current) == null || s.focus({ preventScroll: !0 }));
|
|
40
|
+
}, S = () => {
|
|
41
41
|
var e;
|
|
42
42
|
return Array.from(((e = k.current) == null ? void 0 : e.querySelectorAll('[role="menuitem"]:not([aria-disabled="true"])')) || []);
|
|
43
|
-
},
|
|
43
|
+
}, X = (e) => {
|
|
44
44
|
var t;
|
|
45
|
-
const o =
|
|
45
|
+
const o = S();
|
|
46
46
|
(t = o[e < 0 ? o.length - 1 : e]) == null || t.focus();
|
|
47
|
-
},
|
|
47
|
+
}, Z = (e) => {
|
|
48
48
|
var i, l;
|
|
49
|
-
const o =
|
|
49
|
+
const o = S(), t = o.indexOf(document.activeElement), s = e.key === "ArrowDown" ? (t + 1) % o.length : e.key === "ArrowUp" ? (t - 1 + o.length) % o.length : e.key === "Home" ? 0 : e.key === "End" ? o.length - 1 : -1;
|
|
50
50
|
s >= 0 ? (e.preventDefault(), (i = o[s]) == null || i.focus()) : e.key === "Escape" && (e.preventDefault(), c(!1), (l = N.current) == null || l.focus());
|
|
51
|
-
}, M = (e) => /* @__PURE__ */ r("span", { className: "u-tabs-title", "data-label": e.title, children: e.title }),
|
|
51
|
+
}, M = (e) => /* @__PURE__ */ r("span", { className: "u-tabs-title", "data-label": e.title, children: e.title }), W = (e) => {
|
|
52
52
|
if (!e.icon) return M(e);
|
|
53
53
|
const o = e.iconPosition === "right";
|
|
54
54
|
return /* @__PURE__ */ a("span", { className: `u-tabs-content${o ? " u-tabs-content-reverse" : ""}`, children: [
|
|
@@ -58,16 +58,16 @@ const me = [], Se = ({
|
|
|
58
58
|
}, C = (e, o, t, s = !1) => {
|
|
59
59
|
const i = n[e];
|
|
60
60
|
if (!i.url)
|
|
61
|
-
return /* @__PURE__ */ r("button", { type: "button", ...o, onClick: s ? void 0 : () =>
|
|
61
|
+
return /* @__PURE__ */ r("button", { type: "button", ...o, onClick: s ? void 0 : () => P(e), children: t });
|
|
62
62
|
if (s || i.disabled)
|
|
63
63
|
return /* @__PURE__ */ r("a", { ...o, role: o.role ?? (s ? void 0 : "link"), children: t });
|
|
64
|
-
const l = (
|
|
65
|
-
|
|
64
|
+
const l = (x) => {
|
|
65
|
+
me(x) && P(e);
|
|
66
66
|
};
|
|
67
67
|
return $ ? /* @__PURE__ */ r($, { to: i.url, ...o, onClick: l, children: t }) : /* @__PURE__ */ r("a", { href: i.url, ...o, onClick: l, children: t });
|
|
68
68
|
}, E = (e, o = !1) => {
|
|
69
69
|
const t = n[e], s = !!(t.icon && t.iconOnly), i = t.icon ? s ? " u-tab-icon-only" : ` u-tab-with-icon${t.iconPosition === "right" ? " u-tab-icon-right" : ""}` : "", l = C(e, {
|
|
70
|
-
className: `${v}${i}${t.id === m ? ` ${
|
|
70
|
+
className: `${v}${i}${t.id === m ? ` ${Q}` : ""}${t.disabled ? " u-tab--disabled" : ""}`,
|
|
71
71
|
"data-label": s ? void 0 : t.title,
|
|
72
72
|
"aria-label": s ? t.title : void 0,
|
|
73
73
|
"data-measure-tab": o ? "" : void 0,
|
|
@@ -78,8 +78,8 @@ const me = [], Se = ({
|
|
|
78
78
|
tabIndex: o || t.disabled ? -1 : void 0,
|
|
79
79
|
"aria-current": !o && t.id === m ? "page" : void 0,
|
|
80
80
|
"aria-disabled": !o && t.disabled ? "true" : void 0
|
|
81
|
-
},
|
|
82
|
-
return /* @__PURE__ */ r("div", { className: "u-tabs-item", children: U && !_ && !o ? /* @__PURE__ */ r(
|
|
81
|
+
}, W(t), o);
|
|
82
|
+
return /* @__PURE__ */ r("div", { className: "u-tabs-item", children: U && !_ && !o ? /* @__PURE__ */ r(te, { tooltipText: t.title, portalOn: !0, className: "u-tabs-tooltip", children: l }) : l }, e);
|
|
83
83
|
};
|
|
84
84
|
return /* @__PURE__ */ a(
|
|
85
85
|
T ? "nav" : "div",
|
|
@@ -89,14 +89,14 @@ const me = [], Se = ({
|
|
|
89
89
|
"aria-label": T ? B : void 0,
|
|
90
90
|
children: [
|
|
91
91
|
/* @__PURE__ */ a("div", { className: "u-tabs-track", ref: I, children: [
|
|
92
|
-
/* @__PURE__ */ r("span", { className: "u-tabs-indicator", ref:
|
|
92
|
+
/* @__PURE__ */ r("span", { className: "u-tabs-indicator", ref: V, "aria-hidden": "true" }),
|
|
93
93
|
z.map((e) => E(e)),
|
|
94
94
|
u.length > 0 && /* @__PURE__ */ a(
|
|
95
95
|
"div",
|
|
96
96
|
{
|
|
97
97
|
className: "u-tabs-more",
|
|
98
98
|
ref: R,
|
|
99
|
-
onKeyDown:
|
|
99
|
+
onKeyDown: Z,
|
|
100
100
|
onBlur: (e) => {
|
|
101
101
|
const o = e.relatedTarget;
|
|
102
102
|
o && !e.currentTarget.contains(o) && c(!1);
|
|
@@ -108,12 +108,13 @@ const me = [], Se = ({
|
|
|
108
108
|
type: "button",
|
|
109
109
|
ref: N,
|
|
110
110
|
className: `${v} u-tabs-more-trigger`,
|
|
111
|
+
style: L(),
|
|
111
112
|
"aria-expanded": d,
|
|
112
113
|
"aria-haspopup": "menu",
|
|
113
114
|
"aria-controls": A,
|
|
114
115
|
onClick: () => c((e) => !e),
|
|
115
116
|
onKeyDown: (e) => {
|
|
116
|
-
(e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), e.stopPropagation(), c(!0), requestAnimationFrame(() =>
|
|
117
|
+
(e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), e.stopPropagation(), c(!0), requestAnimationFrame(() => X(e.key === "ArrowUp" ? -1 : 0)));
|
|
117
118
|
},
|
|
118
119
|
children: [
|
|
119
120
|
/* @__PURE__ */ r("span", { children: "Ещё" }),
|
|
@@ -121,7 +122,7 @@ const me = [], Se = ({
|
|
|
121
122
|
]
|
|
122
123
|
}
|
|
123
124
|
),
|
|
124
|
-
|
|
125
|
+
J && /* @__PURE__ */ r("div", { className: "u-tabs-more-menu", role: "menu", id: A, ref: k, style: se(Y, G), children: O.current.filter((e) => n[e]).map((e) => /* @__PURE__ */ r(oe, { children: C(e, {
|
|
125
126
|
role: "menuitem",
|
|
126
127
|
"aria-disabled": n[e].disabled ? "true" : void 0,
|
|
127
128
|
tabIndex: n[e].disabled ? -1 : void 0
|
|
@@ -3,8 +3,11 @@ export declare const TAB_PADDING_MIN_RATIO = 0.4;
|
|
|
3
3
|
/**
|
|
4
4
|
* Насколько ужать отступы видимых вкладок: 0 — не ужимать, 1 — до предела.
|
|
5
5
|
* Ровно столько, чтобы вкладки вместе с «Ещё» поместились в контейнер.
|
|
6
|
+
* `moreCut` — на сколько можно сузить кнопку «Ещё» за счёт её боковых отступов: она ужимается так же,
|
|
7
|
+
* как вкладки, иначе в ряду вкладки с узкими отступами, а «Ещё» с полными.
|
|
8
|
+
* `fullWidth` — колонки равные по самой широкой вкладке; ужимаем, пока она не влезает в колонку.
|
|
6
9
|
*/
|
|
7
|
-
export declare const tabsSqueeze: (visible: number[], widths: number[], cuts: number[], availableWidth: number, gap: number, moreWidth: number, withMore: boolean) => number;
|
|
10
|
+
export declare const tabsSqueeze: (visible: number[], widths: number[], cuts: number[], availableWidth: number, gap: number, moreWidth: number, withMore: boolean, moreCut?: number, fullWidth?: boolean) => number;
|
|
8
11
|
/**
|
|
9
12
|
* Ужатие отступов линейных вкладок: они не прячутся в «Ещё», а прокручиваются (tabsScroll.ts).
|
|
10
13
|
* Ужимаем, только если так помещаются все; не помещаются и ужатыми — обычные отступы и прокрутка,
|
|
@@ -13,11 +16,12 @@ export declare const tabsSqueeze: (visible: number[], widths: number[], cuts: nu
|
|
|
13
16
|
export declare const lineTabsSqueeze: (order: number[], widths: number[], cuts: number[], availableWidth: number, gap: number) => number;
|
|
14
17
|
/**
|
|
15
18
|
* Индексы сохраняют порядок и исходные объекты tabsData, включая дополнительные поля.
|
|
16
|
-
* `cuts` — на сколько каждую вкладку можно сузить за счёт боковых
|
|
19
|
+
* `cuts` — на сколько каждую вкладку можно сузить за счёт боковых отступов, `moreCut` — то же для кнопки «Ещё».
|
|
20
|
+
* В fullWidth колонки равные: их ширина — по самой широкой вкладке с ужатыми отступами. Прежде чем прятать
|
|
17
21
|
* вкладку в «Ещё», проверяем, не помещаются ли все с ужатыми отступами: иначе «Ещё» появлялась,
|
|
18
22
|
* когда не хватало пары пикселей, а в меню оказывалась одна вкладка.
|
|
19
23
|
*/
|
|
20
|
-
export declare const distributeTabs: (order: number[], widths: number[], availableWidth: number, gap: number, moreWidth: number, activeIndex: number, fullWidth?: boolean, cuts?: number[]) => {
|
|
24
|
+
export declare const distributeTabs: (order: number[], widths: number[], availableWidth: number, gap: number, moreWidth: number, activeIndex: number, fullWidth?: boolean, cuts?: number[], moreCut?: number) => {
|
|
21
25
|
visible: number[];
|
|
22
26
|
overflow: number[];
|
|
23
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distributeTabs.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/distributeTabs.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC
|
|
1
|
+
{"version":3,"file":"distributeTabs.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/distributeTabs.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,SAAS,MAAM,EAAE,EACjB,QAAQ,MAAM,EAAE,EAChB,MAAM,MAAM,EAAE,EACd,gBAAgB,MAAM,EACtB,KAAK,MAAM,EACX,WAAW,MAAM,EACjB,UAAU,OAAO,EACjB,gBAAW,EACX,mBAAiB,WA4BlB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,EAAE,QAAQ,MAAM,EAAE,EAAE,MAAM,MAAM,EAAE,EAAE,gBAAgB,MAAM,EAAE,KAAK,MAAM,WAGrH,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EAAE,EACf,QAAQ,MAAM,EAAE,EAChB,gBAAgB,MAAM,EACtB,KAAK,MAAM,EACX,WAAW,MAAM,EACjB,aAAa,MAAM,EACnB,mBAAiB,EACjB,OAAM,MAAM,EAAO,EACnB,gBAAW;;cAegC,MAAM,EAAE;CAsBpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTabsOverflow.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/useTabsOverflow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,eAAO,MAAM,eAAe,GAC1B,MAAM,kBAAkB,EAAE,EAC1B,WAAW,MAAM,GAAG,MAAM,GAAG,SAAS,EACtC,WAAW,OAAO;AAClB,+GAA+G;AAC/G,QAAQ,OAAO;
|
|
1
|
+
{"version":3,"file":"useTabsOverflow.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/useTabsOverflow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,eAAO,MAAM,eAAe,GAC1B,MAAM,kBAAkB,EAAE,EAC1B,WAAW,MAAM,GAAG,MAAM,GAAG,SAAS,EACtC,WAAW,OAAO;AAClB,+GAA+G;AAC/G,QAAQ,OAAO;uBA+EW,MAAM;;;;;;;;qBAIR,MAAM;;;;;;CAY/B,CAAC"}
|
|
@@ -1,49 +1,48 @@
|
|
|
1
|
-
import { useRef as O, useState as
|
|
2
|
-
import { TAB_PADDING_MIN_RATIO$u as
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
paddings: R,
|
|
1
|
+
import { useRef as O, useState as _, useCallback as k, useLayoutEffect as J } from "react";
|
|
2
|
+
import { TAB_PADDING_MIN_RATIO$u as L, distributeTabs$u as j, lineTabsSqueeze$u as H, tabsSqueeze$u as K } from "../../vanilla/core/distributeTabs.js";
|
|
3
|
+
const Z = (u, F, p, f) => {
|
|
4
|
+
const b = O(null), h = O(null), z = O(null), v = JSON.stringify(u.map((e) => e.id)), C = u.map((e, t) => t), [S, M] = _({ signature: v, order: C }), w = S.signature === v ? S.order : C, [n, D] = _({ widths: [], paddings: [], available: 0, gap: 0, more: 0, morePadding: [0, 0] }), o = k(() => {
|
|
5
|
+
const e = b.current, t = h.current;
|
|
6
|
+
if (!e || !t) return;
|
|
7
|
+
const r = getComputedStyle(e), a = e.getBoundingClientRect().width - (Number.parseFloat(r.borderLeftWidth) || 0) - (Number.parseFloat(r.borderRightWidth) || 0) - (Number.parseFloat(r.paddingLeft) || 0) - (Number.parseFloat(r.paddingRight) || 0), i = Array.from(t.querySelectorAll("[data-measure-tab]")), P = i.map((d) => d.getBoundingClientRect().width), N = i.map((d) => {
|
|
8
|
+
const l = getComputedStyle(d);
|
|
9
|
+
return [Number.parseFloat(l.paddingLeft) || 0, Number.parseFloat(l.paddingRight) || 0];
|
|
10
|
+
}), m = z.current, c = m ? getComputedStyle(m) : null, g = {
|
|
11
|
+
widths: P,
|
|
12
|
+
paddings: N,
|
|
14
13
|
available: a,
|
|
15
|
-
gap: Number.parseFloat(
|
|
16
|
-
more: (
|
|
14
|
+
gap: Number.parseFloat(r.columnGap || "0") || 0,
|
|
15
|
+
more: (m == null ? void 0 : m.getBoundingClientRect().width) || 0,
|
|
16
|
+
morePadding: [Number.parseFloat((c == null ? void 0 : c.paddingLeft) ?? "") || 0, Number.parseFloat((c == null ? void 0 : c.paddingRight) ?? "") || 0]
|
|
17
17
|
};
|
|
18
|
-
|
|
19
|
-
var E,
|
|
20
|
-
return
|
|
21
|
-
}) ?
|
|
18
|
+
D((d) => d.available === g.available && d.gap === g.gap && d.more === g.more && d.morePadding[0] === g.morePadding[0] && d.morePadding[1] === g.morePadding[1] && d.widths.length === P.length && d.widths.every((l, y) => l === P[y]) && d.paddings.every(([l, y], B) => {
|
|
19
|
+
var E, T;
|
|
20
|
+
return l === ((E = N[B]) == null ? void 0 : E[0]) && y === ((T = N[B]) == null ? void 0 : T[1]);
|
|
21
|
+
}) ? d : g);
|
|
22
22
|
}, []);
|
|
23
|
-
|
|
24
|
-
var
|
|
23
|
+
J(() => {
|
|
24
|
+
var r, a;
|
|
25
25
|
o();
|
|
26
|
-
let
|
|
27
|
-
const
|
|
28
|
-
return
|
|
29
|
-
|
|
26
|
+
let e = !1;
|
|
27
|
+
const t = typeof ResizeObserver > "u" ? null : new ResizeObserver(o);
|
|
28
|
+
return b.current && (t == null || t.observe(b.current)), h.current && (t == null || t.observe(h.current)), window.addEventListener("resize", o), (r = document.fonts) == null || r.addEventListener("loadingdone", o), (a = document.fonts) == null || a.ready.then(() => {
|
|
29
|
+
e || o();
|
|
30
30
|
}), () => {
|
|
31
|
-
var
|
|
32
|
-
|
|
31
|
+
var i;
|
|
32
|
+
e = !0, t == null || t.disconnect(), window.removeEventListener("resize", o), (i = document.fonts) == null || i.removeEventListener("loadingdone", o);
|
|
33
33
|
};
|
|
34
|
-
}, [o,
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
[n[a], n[s]] = [n[s], n[a]], T({ signature: h, order: n });
|
|
34
|
+
}, [o, u, p, f]);
|
|
35
|
+
const G = F === void 0 ? -1 : u.findIndex((e) => e.id === F), q = n.widths.length === u.length && n.widths.every((e) => e > 0), R = n.paddings.map(([e, t]) => (e + t) * (1 - L)), x = (n.morePadding[0] + n.morePadding[1]) * (1 - L), s = q && !f ? j(w, n.widths, n.available, n.gap, n.more, G, p, R, x) : { visible: w, overflow: [] }, A = !q || p && f ? 0 : f ? H(w, n.widths, R, n.available, n.gap) : K(s.visible, n.widths, R, n.available, n.gap, n.more, s.overflow.length > 0, x, p), I = (e) => {
|
|
36
|
+
if (!A || !e) return;
|
|
37
|
+
const t = 1 - A * (1 - L);
|
|
38
|
+
return { paddingLeft: e[0] * t, paddingRight: e[1] * t };
|
|
39
|
+
};
|
|
40
|
+
return { containerRef: b, measureRef: h, moreMeasureRef: z, ...s, paddingOf: (e) => I(n.paddings[e]), morePadding: () => I(n.morePadding), promote: (e) => {
|
|
41
|
+
if (!s.overflow.includes(e)) return;
|
|
42
|
+
const t = s.visible[s.visible.length - 1];
|
|
43
|
+
if (t === void 0) return;
|
|
44
|
+
const r = [...w], a = r.indexOf(e), i = r.indexOf(t);
|
|
45
|
+
[r[a], r[i]] = [r[i], r[a]], M({ signature: v, order: r });
|
|
47
46
|
} };
|
|
48
47
|
};
|
|
49
|
-
export {
|
|
48
|
+
export { Z as useTabsOverflow$u };
|