urfu-ui-kit-react 2.1.7-next.0 → 2.1.7-next.1
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/StickyActionBar/StickyActionBar.d.ts.map +1 -1
- package/dist/components/StickyActionBar/StickyActionBar.js +45 -58
- package/dist/components/Table/Filter/FilterStringBox.d.ts.map +1 -1
- package/dist/components/Table/Filter/FilterStringBox.js +45 -40
- package/dist/components/Table/Filter/filterLoading.d.ts +4 -1
- package/dist/components/Table/Filter/filterLoading.d.ts.map +1 -1
- package/dist/components/Table/Filter/filterLoading.js +6 -2
- package/dist/components/Table/Filter/useServerFilterOptions.d.ts +4 -1
- package/dist/components/Table/Filter/useServerFilterOptions.d.ts.map +1 -1
- package/dist/components/Table/Filter/useServerFilterOptions.js +28 -25
- package/dist/components/Table/Table.filterTypes.d.ts +5 -0
- package/dist/components/Table/Table.filterTypes.d.ts.map +1 -1
- package/dist/dev/index.js +3 -4
- package/dist/dev/types/vanilla/src/dev/panelStyles.d.ts +1 -1
- package/dist/shared/kitCopy.js +1 -1
- package/dist/utils/inputMode.d.ts +5 -0
- package/dist/utils/inputMode.d.ts.map +1 -1
- package/dist/vanilla/core/describeError.js +1 -1
- package/dist/vanilla/core/inputMode.js +18 -11
- package/package.json +1 -1
- package/dist/shared/devLauncherOffset.d.ts +0 -8
- package/dist/shared/devLauncherOffset.d.ts.map +0 -1
- package/dist/vanilla/core/devLauncherOffset.js +0 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StickyActionBar.d.ts","sourceRoot":"","sources":["../../../src/components/StickyActionBar/StickyActionBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC5E,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gEAAgE,CAAC;
|
|
1
|
+
{"version":3,"file":"StickyActionBar.d.ts","sourceRoot":"","sources":["../../../src/components/StickyActionBar/StickyActionBar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC5E,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gEAAgE,CAAC;AAExE,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC,CAAC;AAEH,eAAO,MAAM,eAAe,GAAI,sCAAmD,oBAAoB,4CAiGtG,CAAC"}
|
|
@@ -1,73 +1,60 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useRef as
|
|
1
|
+
import { jsx as z } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as A, useState as N, useEffect as F } from "react";
|
|
3
3
|
/* empty css */
|
|
4
4
|
/* empty css */
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (!t) return;
|
|
5
|
+
const O = ({ children: k, className: E = "", mobileFixed: c = !1 }) => {
|
|
6
|
+
const m = A(null), [L, f] = N(!1);
|
|
7
|
+
return F(() => {
|
|
8
|
+
const e = m.current;
|
|
9
|
+
if (!e) return;
|
|
11
10
|
if (c) {
|
|
12
|
-
|
|
11
|
+
f(!1);
|
|
13
12
|
return;
|
|
14
13
|
}
|
|
15
|
-
const
|
|
14
|
+
const a = window.matchMedia("(max-width: 576px)");
|
|
16
15
|
let o;
|
|
17
|
-
const
|
|
16
|
+
const l = () => {
|
|
18
17
|
o == null || o(), o = void 0;
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
|
|
18
|
+
const u = "--u-sticky-action-bar-scroll-padding", g = "--u-sticky-action-bar-left-inset", w = "--u-sticky-action-bar-right-inset", S = [u, g, w].map((t) => [t, e.style.getPropertyValue(t)]), v = (t, r) => {
|
|
19
|
+
const i = String(r) + "px";
|
|
20
|
+
e.style.getPropertyValue(t) !== i && e.style.setProperty(t, i);
|
|
22
21
|
};
|
|
23
|
-
let
|
|
22
|
+
let n = null;
|
|
24
23
|
const b = () => {
|
|
25
|
-
let
|
|
26
|
-
for (;
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
},
|
|
43
|
-
|
|
44
|
-
|
|
24
|
+
let t = e.parentElement;
|
|
25
|
+
for (; t && !/(auto|scroll|hidden|overlay)/.test(getComputedStyle(t).overflowY); )
|
|
26
|
+
t = t.parentElement;
|
|
27
|
+
const r = a.matches && t && Number.parseFloat(getComputedStyle(t).paddingBottom) || 0, i = String(r) + "px";
|
|
28
|
+
e.style.getPropertyValue(u) !== i && e.style.setProperty(u, i);
|
|
29
|
+
const R = t ? t.getBoundingClientRect().top + t.clientTop + t.clientHeight : window.innerHeight, h = e.style.getPropertyValue("position"), x = e.style.getPropertyPriority("position");
|
|
30
|
+
e.style.setProperty("position", "static", "important");
|
|
31
|
+
const d = "u-react-sticky-action-bar-stuck", B = e.classList.contains(d);
|
|
32
|
+
e.classList.remove(d);
|
|
33
|
+
const y = e.getBoundingClientRect();
|
|
34
|
+
B && e.classList.add(d);
|
|
35
|
+
const P = t ? t.getBoundingClientRect().left + t.clientLeft : 0, C = t ? t.clientWidth : window.innerWidth;
|
|
36
|
+
v(g, Math.max(0, y.left - P)), v(w, Math.max(0, P + C - y.right));
|
|
37
|
+
const V = y.bottom;
|
|
38
|
+
h ? e.style.setProperty("position", h, x) : e.style.removeProperty("position");
|
|
39
|
+
const M = (Number.parseFloat(getComputedStyle(e).bottom) || 0) + r;
|
|
40
|
+
f(V > R - M + 1);
|
|
41
|
+
}, s = () => {
|
|
42
|
+
n === null && (n = window.requestAnimationFrame(() => {
|
|
43
|
+
n = null, b();
|
|
45
44
|
}));
|
|
46
45
|
};
|
|
47
|
-
b(), window.addEventListener("scroll",
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
window.removeEventListener("scroll",
|
|
51
|
-
for (const [
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
b(), window.addEventListener("scroll", s, { capture: !0, passive: !0 }), window.addEventListener("resize", s);
|
|
47
|
+
const p = new ResizeObserver(s);
|
|
48
|
+
p.observe(e), e.parentElement && p.observe(e.parentElement), o = () => {
|
|
49
|
+
window.removeEventListener("scroll", s, !0), window.removeEventListener("resize", s), p.disconnect();
|
|
50
|
+
for (const [t, r] of S)
|
|
51
|
+
r ? e.style.setProperty(t, r) : e.style.removeProperty(t);
|
|
52
|
+
n !== null && window.cancelAnimationFrame(n);
|
|
54
53
|
};
|
|
55
54
|
};
|
|
56
|
-
return
|
|
57
|
-
|
|
55
|
+
return l(), a.addEventListener("change", l), () => {
|
|
56
|
+
a.removeEventListener("change", l), o == null || o();
|
|
58
57
|
};
|
|
59
|
-
}, [c]),
|
|
60
|
-
const t = p.current;
|
|
61
|
-
if (!t) return;
|
|
62
|
-
const i = {}, o = window.matchMedia("(max-width: 576px)"), n = () => {
|
|
63
|
-
const d = m || c && o.matches;
|
|
64
|
-
E(i, d ? I(t) : null);
|
|
65
|
-
};
|
|
66
|
-
n();
|
|
67
|
-
const r = typeof ResizeObserver < "u" ? new ResizeObserver(n) : void 0;
|
|
68
|
-
return r == null || r.observe(t), window.addEventListener("resize", n), o.addEventListener("change", n), () => {
|
|
69
|
-
r == null || r.disconnect(), window.removeEventListener("resize", n), o.removeEventListener("change", n), E(i, null);
|
|
70
|
-
};
|
|
71
|
-
}, [m, c]), /* @__PURE__ */ A("footer", { ref: p, className: "u-react-sticky-action-bar " + (m ? "u-react-sticky-action-bar-stuck u-react-sticky-action-bar-shadow " : "") + (c ? "u-react-sticky-action-bar-mobile-fixed " : "") + S, children: R });
|
|
58
|
+
}, [c]), /* @__PURE__ */ z("footer", { ref: m, className: "u-react-sticky-action-bar " + (L ? "u-react-sticky-action-bar-stuck u-react-sticky-action-bar-shadow " : "") + (c ? "u-react-sticky-action-bar-mobile-fixed " : "") + E, children: k });
|
|
72
59
|
};
|
|
73
|
-
export {
|
|
60
|
+
export { O as StickyActionBar$u };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterStringBox.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/Filter/FilterStringBox.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,eAAO,MAAM,eAAe,GAAI,kQAI7B,cAAc,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"FilterStringBox.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/Filter/FilterStringBox.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,eAAO,MAAM,eAAe,GAAI,kQAI7B,cAAc,GAAG,iBAAiB,4CA4EpC,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as u } from "react/jsx-runtime";
|
|
2
2
|
import { FilterConditionSelect$u as q } from "./FilterConditionSelect.js";
|
|
3
3
|
import { getColumnSortDirection$u as B, getFilterResetLabel$u as k } from "./filterBoxHelpers.js";
|
|
4
|
-
import { selectNumber$u as
|
|
4
|
+
import { selectNumber$u as g, selectText$u as ee } from "./SelectOptions.js";
|
|
5
5
|
import { FilterBoxShell$u as te } from "./FilterBoxShell.js";
|
|
6
6
|
import { TableFilterOptions$u as E } from "./TableFilterOptions.js";
|
|
7
7
|
import { useState as H, useEffect as ie } from "react";
|
|
8
8
|
import { useServerFilterOptions$u as oe } from "./useServerFilterOptions.js";
|
|
9
9
|
import { usePagedFilterOptions$u as re } from "./usePagedFilterOptions.js";
|
|
10
10
|
import { filterExpressionSummary$u as ne, parseFilterNumber$u as se, matchesNumeric$u as le } from "./filterExpression.js";
|
|
11
|
-
import { getFilterSelectedCount$u as
|
|
11
|
+
import { getFilterSelectedCount$u as de, isServerFilterActive$u as ae } from "../Table.helpers.js";
|
|
12
12
|
const Ne = ({
|
|
13
13
|
column: i,
|
|
14
14
|
anchorRef: M,
|
|
@@ -16,48 +16,53 @@ const Ne = ({
|
|
|
16
16
|
width: j,
|
|
17
17
|
label: z,
|
|
18
18
|
tableRight: I,
|
|
19
|
-
typeFilterSearch:
|
|
19
|
+
typeFilterSearch: h,
|
|
20
20
|
setTypeFilterSearch: G,
|
|
21
|
-
handleSort:
|
|
22
|
-
sort:
|
|
21
|
+
handleSort: C,
|
|
22
|
+
sort: m,
|
|
23
23
|
textSearch: J,
|
|
24
24
|
setTextSearch: K,
|
|
25
25
|
searched: Q,
|
|
26
|
-
checkBoxes:
|
|
27
|
-
uncheckedValues:
|
|
26
|
+
checkBoxes: b,
|
|
27
|
+
uncheckedValues: A,
|
|
28
28
|
setUncheckedValues: V,
|
|
29
29
|
embedded: W,
|
|
30
|
-
basePages:
|
|
31
|
-
baseOptions:
|
|
30
|
+
basePages: T,
|
|
31
|
+
baseOptions: l,
|
|
32
32
|
onSelectedCountChange: f
|
|
33
33
|
}) => {
|
|
34
|
-
const e = i.filterServer, [o, X] = H(""),
|
|
34
|
+
const e = i.filterServer, [o, X] = H(""), F = i.filterType === "number", d = (e == null ? void 0 : e.type) === "values" && F && i.filterShowConditions === !0, [S, Y] = H(g[0]), O = !!l && (d || !o.trim()), Z = oe(
|
|
35
|
+
O ? void 0 : e,
|
|
36
|
+
d ? "" : o,
|
|
37
|
+
!0,
|
|
38
|
+
l != null && l.complete ? l.options : void 0
|
|
39
|
+
), N = O ? l : Z, r = (e == null ? void 0 : e.type) === "values" ? e.paged : void 0, R = Number(o.trim().replace(",", ".")), s = d && o.trim() && Number.isFinite(R) ? { operator: S.id === "1" ? "gt" : S.id === "2" ? "lt" : "eq", value: R } : void 0, w = !!T && !o.trim() && !s, _ = re(w ? void 0 : r, d && s ? "" : o.trim(), s), v = w ? T : _, p = r ? v : N, y = (e == null ? void 0 : e.type) === "values" ? de({
|
|
35
40
|
filter: e,
|
|
36
|
-
pagedSummary: r ? ne(r.expression,
|
|
37
|
-
loadedOptions: !r &&
|
|
41
|
+
pagedSummary: r ? ne(r.expression, v.options, v.complete && !o.trim() && !s) : void 0,
|
|
42
|
+
loadedOptions: !r && N.complete && !o.trim() ? N.options : void 0
|
|
38
43
|
}) : void 0;
|
|
39
44
|
ie(() => {
|
|
40
|
-
|
|
41
|
-
}, [
|
|
42
|
-
const $ = r || !
|
|
45
|
+
y !== void 0 && (f == null || f(y));
|
|
46
|
+
}, [y, f]);
|
|
47
|
+
const $ = r || !d || !o.trim() ? p.options : s ? p.options.filter((t) => {
|
|
43
48
|
if (t.value === null || typeof t.value == "boolean" || t.value === "") return !1;
|
|
44
49
|
const n = se(t.label, t.value);
|
|
45
50
|
return n !== void 0 && le(n, s);
|
|
46
|
-
}) : [], L =
|
|
51
|
+
}) : [], L = ae(e), U = (m == null ? void 0 : m.column) === i.field, D = (t) => F && t !== null && t !== "" && Number.isFinite(Number(t)) ? new Intl.NumberFormat("ru-RU", i.roundUpTo ? {
|
|
47
52
|
minimumFractionDigits: i.roundUpTo,
|
|
48
53
|
maximumFractionDigits: i.roundUpTo
|
|
49
54
|
} : void 0).format(Number(t)).replace(",", ".") : String(t ?? "");
|
|
50
|
-
return /* @__PURE__ */
|
|
55
|
+
return /* @__PURE__ */ u(te, { embedded: W, customContent: !!e, adaptiveHeight: i.filterAdaptiveHeight, anchorRef: M, tableRight: I, boxRef: P, width: j, label: z, children: (e == null ? void 0 : e.type) === "values" ? /* @__PURE__ */ u(
|
|
51
56
|
E,
|
|
52
57
|
{
|
|
53
|
-
...
|
|
54
|
-
onRetry:
|
|
58
|
+
...p,
|
|
59
|
+
onRetry: p.retry,
|
|
55
60
|
options: $,
|
|
56
|
-
allOptions:
|
|
61
|
+
allOptions: p.options,
|
|
57
62
|
virtualize: !!r,
|
|
58
63
|
paged: r,
|
|
59
64
|
numeric: s,
|
|
60
|
-
paging: r ?
|
|
65
|
+
paging: r ? v : void 0,
|
|
61
66
|
onReset: e.resetVisible !== !1 && (L || U) ? e.onReset : void 0,
|
|
62
67
|
resetLabel: k(U, L),
|
|
63
68
|
selection: e.selection,
|
|
@@ -67,45 +72,45 @@ const Ne = ({
|
|
|
67
72
|
searchLabel: e.searchLabel,
|
|
68
73
|
optionsAlreadyFiltered: !0,
|
|
69
74
|
selectFoundOnSearch: e.selectFoundOnSearch,
|
|
70
|
-
onSort:
|
|
71
|
-
conditionControl:
|
|
75
|
+
onSort: C,
|
|
76
|
+
conditionControl: d ? /* @__PURE__ */ u(
|
|
72
77
|
q,
|
|
73
78
|
{
|
|
74
|
-
value:
|
|
75
|
-
options:
|
|
79
|
+
value: S,
|
|
80
|
+
options: g,
|
|
76
81
|
onChange: (t) => {
|
|
77
82
|
var a;
|
|
78
|
-
const n = (a = t.typeFilterSearch) == null ? void 0 : a.id,
|
|
79
|
-
|
|
83
|
+
const n = (a = t.typeFilterSearch) == null ? void 0 : a.id, c = g.find((x) => x.id === n);
|
|
84
|
+
c && Y(c);
|
|
80
85
|
},
|
|
81
86
|
portalOn: !0
|
|
82
87
|
}
|
|
83
88
|
) : void 0,
|
|
84
|
-
sort: B(
|
|
89
|
+
sort: B(m, i.field)
|
|
85
90
|
}
|
|
86
|
-
) : /* @__PURE__ */
|
|
91
|
+
) : /* @__PURE__ */ u(
|
|
87
92
|
E,
|
|
88
93
|
{
|
|
89
94
|
options: (Q ?? []).map((t) => ({ value: t, label: D(t) })),
|
|
90
|
-
allOptions: (
|
|
91
|
-
values: (
|
|
95
|
+
allOptions: (b ?? []).map((t) => ({ value: t, label: D(t) })),
|
|
96
|
+
values: (b ?? []).filter((t) => {
|
|
92
97
|
var n;
|
|
93
|
-
return !((n =
|
|
98
|
+
return !((n = A[i.field]) != null && n.includes(t));
|
|
94
99
|
}),
|
|
95
100
|
search: J,
|
|
96
101
|
onSearchChange: K,
|
|
97
102
|
optionsAlreadyFiltered: !0,
|
|
98
103
|
onChange: (t) => {
|
|
99
|
-
const n = new Set(t),
|
|
100
|
-
|
|
104
|
+
const n = new Set(t), c = (b ?? []).filter((x) => !n.has(x)), a = { ...A };
|
|
105
|
+
c.length ? a[i.field] = c : delete a[i.field], V(a);
|
|
101
106
|
},
|
|
102
|
-
onSort:
|
|
103
|
-
sort: B(
|
|
104
|
-
conditionControl: i.filterShowConditions === !1 ? void 0 : /* @__PURE__ */
|
|
107
|
+
onSort: C,
|
|
108
|
+
sort: B(m, i.field),
|
|
109
|
+
conditionControl: i.filterShowConditions === !1 ? void 0 : /* @__PURE__ */ u(
|
|
105
110
|
q,
|
|
106
111
|
{
|
|
107
|
-
value:
|
|
108
|
-
options:
|
|
112
|
+
value: h == null ? void 0 : h.typeFilterSearch,
|
|
113
|
+
options: F ? g : ee,
|
|
109
114
|
onChange: G
|
|
110
115
|
}
|
|
111
116
|
)
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import type { TableFilterOption } from './TableFilterOptions';
|
|
1
2
|
/** Общий текст отказа загрузки вариантов фильтра. */
|
|
2
3
|
export declare const FILTER_LOAD_ERROR = "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0444\u0438\u043B\u044C\u0442\u0440\u0430. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437.";
|
|
3
4
|
/** Поиск ждёт паузу ввода; первая загрузка без условий идёт сразу. */
|
|
4
|
-
export declare const getFilterSearchDelay: (search: string, hasNumeric?: boolean) =>
|
|
5
|
+
export declare const getFilterSearchDelay: (search: string, hasNumeric?: boolean, delay?: number) => number;
|
|
6
|
+
/** Прошлые варианты, суженные по подписи без учёта регистра, — пока не пришёл ответ на новый поиск. */
|
|
7
|
+
export declare function narrowFilterOptions<Value>(options: readonly TableFilterOption<Value>[], search: string): readonly TableFilterOption<Value>[];
|
|
5
8
|
//# sourceMappingURL=filterLoading.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterLoading.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/Filter/filterLoading.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,eAAO,MAAM,iBAAiB,oTAA+D,CAAC;AAE9F,sEAAsE;AACtE,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,EAAE,oBAAkB,
|
|
1
|
+
{"version":3,"file":"filterLoading.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/Filter/filterLoading.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,qDAAqD;AACrD,eAAO,MAAM,iBAAiB,oTAA+D,CAAC;AAE9F,sEAAsE;AACtE,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,EAAE,oBAAkB,EAAE,cAAW,WAA4C,CAAC;AAEjI,uGAAuG;AACvG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,uCAGtG"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
1
|
+
const o = "Не удалось загрузить значения фильтра. Попробуйте ещё раз.", a = (e, t = !1, r = 300) => e.trim() || t ? r : 0;
|
|
2
|
+
function n(e, t) {
|
|
3
|
+
const r = t.trim().toLocaleLowerCase("ru");
|
|
4
|
+
return r ? e.filter((l) => l.label.toLocaleLowerCase("ru").includes(r)) : e;
|
|
5
|
+
}
|
|
6
|
+
export { o as FILTER_LOAD_ERROR$u, a as getFilterSearchDelay$u, n as narrowFilterOptions$u };
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { TableServerFilter, TableFilterValue } from '../Table.filterTypes';
|
|
2
2
|
import type { TableFilterOption } from './TableFilterOptions';
|
|
3
|
-
|
|
3
|
+
type Options = readonly TableFilterOption<TableFilterValue>[];
|
|
4
|
+
/** `fallback` — уже загруженный полный набор, который сужается, пока у этого хука нет своего ответа. */
|
|
5
|
+
export declare function useServerFilterOptions(filter: TableServerFilter | undefined, search: string, enabled?: boolean, fallback?: Options): {
|
|
4
6
|
options: readonly TableFilterOption<TableFilterValue>[];
|
|
5
7
|
error: string;
|
|
6
8
|
loading: boolean;
|
|
@@ -8,4 +10,5 @@ export declare function useServerFilterOptions(filter: TableServerFilter | undef
|
|
|
8
10
|
complete: boolean;
|
|
9
11
|
retry: () => void;
|
|
10
12
|
};
|
|
13
|
+
export {};
|
|
11
14
|
//# sourceMappingURL=useServerFilterOptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useServerFilterOptions.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/Filter/useServerFilterOptions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,UAAO;;;;
|
|
1
|
+
{"version":3,"file":"useServerFilterOptions.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/Filter/useServerFilterOptions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,KAAK,OAAO,GAAG,SAAS,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC;AAQ9D,wGAAwG;AACxG,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,UAAO,EAAE,QAAQ,CAAC,EAAE,OAAO;;;;IAwC5H,sGAAsG;;;EAGzG"}
|
|
@@ -1,35 +1,38 @@
|
|
|
1
|
-
import { useState as
|
|
2
|
-
import { FILTER_LOAD_ERROR$u as
|
|
3
|
-
function
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { useState as b, useRef as y, useEffect as C, useMemo as I } from "react";
|
|
2
|
+
import { FILTER_LOAD_ERROR$u as M, getFilterSearchDelay$u as Q, narrowFilterOptions$u as j } from "./filterLoading.js";
|
|
3
|
+
function q(o, t, c) {
|
|
4
|
+
return o.loader !== t ? c : o.error ? void 0 : o.options;
|
|
5
|
+
}
|
|
6
|
+
function G(o, t, c = !0, h) {
|
|
7
|
+
var D, E, F;
|
|
8
|
+
const s = (o == null ? void 0 : o.type) === "values" && !o.paged ? o : void 0, r = s == null ? void 0 : s.loadOptions, g = s == null ? void 0 : s.searchDelay, [e, f] = b({ options: [], loading: !!r }), [a, x] = b(0), m = y(!1), n = y(), u = y(!1), O = ((D = n.current) == null ? void 0 : D.loader) === r && ((E = n.current) == null ? void 0 : E.search) === t, l = O && ((F = n.current) == null ? void 0 : F.attempt) === a;
|
|
9
|
+
C(() => {
|
|
10
|
+
var S, A, T;
|
|
11
|
+
if (!r || !c || ((S = n.current) == null ? void 0 : S.loader) === r && ((A = n.current) == null ? void 0 : A.search) === t && ((T = n.current) == null ? void 0 : T.attempt) === a && u.current) return;
|
|
12
|
+
n.current = { loader: r, search: t, attempt: a }, u.current = !1;
|
|
13
|
+
const i = new AbortController(), _ = m.current;
|
|
14
|
+
m.current = !1, f((p) => ({ ...p, loading: !0, error: _ ? p.error : void 0 }));
|
|
15
|
+
const k = window.setTimeout(() => {
|
|
16
|
+
r(t, i.signal).then((p) => {
|
|
17
|
+
i.signal.aborted || (u.current = !0, f({ options: p, loading: !1, loader: r }));
|
|
15
18
|
}).catch(() => {
|
|
16
|
-
|
|
19
|
+
i.signal.aborted || (u.current = !0, f({ options: [], loading: !1, error: M, loader: r }));
|
|
17
20
|
});
|
|
18
|
-
},
|
|
21
|
+
}, Q(t, !1, g));
|
|
19
22
|
return () => {
|
|
20
|
-
|
|
23
|
+
i.abort(), window.clearTimeout(k);
|
|
21
24
|
};
|
|
22
|
-
}, [t,
|
|
23
|
-
const
|
|
25
|
+
}, [r, t, a, c, g]);
|
|
26
|
+
const v = !!r && c, w = v && (!l || e.loading), d = v ? q(e, r, h) : void 0, R = I(() => !w && l ? e.options : d ? j(d, t) : [], [w, l, e.options, d, t]), L = w && !R.length && (!d || g !== 0);
|
|
24
27
|
return {
|
|
25
|
-
options:
|
|
26
|
-
error:
|
|
27
|
-
loading:
|
|
28
|
+
options: R,
|
|
29
|
+
error: O ? e.error : void 0,
|
|
30
|
+
loading: L,
|
|
28
31
|
/** Словарь загружен для текущего запроса; пустой список выключенного загрузчика сюда не относится. */
|
|
29
|
-
complete:
|
|
32
|
+
complete: v && l && !e.loading && !e.error,
|
|
30
33
|
retry: () => {
|
|
31
|
-
|
|
34
|
+
m.current = !0, x((i) => i + 1);
|
|
32
35
|
}
|
|
33
36
|
};
|
|
34
37
|
}
|
|
35
|
-
export {
|
|
38
|
+
export { G as useServerFilterOptions$u };
|
|
@@ -53,6 +53,11 @@ export type TableServerFilter = {
|
|
|
53
53
|
/** Можно скрыть локальный сброс, оставив общий сброс в тулбаре сервиса. */
|
|
54
54
|
resetVisible?: boolean;
|
|
55
55
|
loadOptions: (search: string, signal: AbortSignal) => Promise<readonly TableFilterOption<TableFilterValue>[]>;
|
|
56
|
+
/**
|
|
57
|
+
* Пауза ввода перед `loadOptions` при поиске, мс (по умолчанию 300). `0` — для загрузчика без сети,
|
|
58
|
+
* который режет готовый набор: варианты обновляются сразу. Порционный режим `paged` её не использует.
|
|
59
|
+
*/
|
|
60
|
+
searchDelay?: number;
|
|
56
61
|
searchLabel?: string;
|
|
57
62
|
/** При поиске массовый выбор затрагивает только найденные варианты. */
|
|
58
63
|
selectFoundOnSearch?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.filterTypes.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Table.filterTypes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Table.filterTypes.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Table.filterTypes.ts"],"names":[],"mappings":"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"}
|
package/dist/dev/index.js
CHANGED
|
@@ -952,9 +952,8 @@ const La = `
|
|
|
952
952
|
/* «Анимации ×5» ставит длительности на каждый элемент документа, в том числе на хост панели:
|
|
953
953
|
режим замедляет сервис, а не инструмент, которым его включили. */
|
|
954
954
|
--u-duration-instant: 100ms; --u-duration-fast: 150ms; --u-duration-base: 200ms; --u-duration-moderate: 250ms; --u-duration-slow: 300ms;
|
|
955
|
-
/* Отступ кнопки снизу:
|
|
956
|
-
|
|
957
|
-
--launcher-bottom: var(--u-dev-launcher-bottom, calc(12px + env(safe-area-inset-bottom, 0px)));
|
|
955
|
+
/* Отступ кнопки снизу: всегда левый нижний угол, StickyActionBar её не поднимает. */
|
|
956
|
+
--launcher-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
|
|
958
957
|
font-family: Montserrat, "Segoe UI", Arial, sans-serif; font-size: 14px; line-height: 1.4; color: var(--u-color-text, #222); }
|
|
959
958
|
button, input, textarea { font: inherit; color: inherit; }
|
|
960
959
|
/* Кнопка панели — в цветах кита: токены --u-color-* с :root сервиса проходят в shadow DOM
|
|
@@ -1574,7 +1573,7 @@ function hn(t) {
|
|
|
1574
1573
|
function mn() {
|
|
1575
1574
|
(zt() ?? ot).reset();
|
|
1576
1575
|
}
|
|
1577
|
-
const bn = () => "2.1.7-next.
|
|
1576
|
+
const bn = () => "2.1.7-next.1";
|
|
1578
1577
|
function xn(t) {
|
|
1579
1578
|
return pn(t, { name: "urfu-ui-kit-react", version: bn() });
|
|
1580
1579
|
}
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* список «ключ — значение»). Цвета, радиусы, тени и движение — токены кита (`--u-*`):
|
|
5
5
|
* CSS-переменные документа проходят в Shadow DOM, `all: initial` их не сбрасывает.
|
|
6
6
|
*/
|
|
7
|
-
export declare const STYLES = "\n:host { all: initial; }\n* { box-sizing: border-box; }\n.root {\n /* \u00AB\u0410\u043D\u0438\u043C\u0430\u0446\u0438\u0438 \u00D75\u00BB \u0441\u0442\u0430\u0432\u0438\u0442 \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u043D\u0430 \u043A\u0430\u0436\u0434\u044B\u0439 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430, \u0432 \u0442\u043E\u043C \u0447\u0438\u0441\u043B\u0435 \u043D\u0430 \u0445\u043E\u0441\u0442 \u043F\u0430\u043D\u0435\u043B\u0438:\n \u0440\u0435\u0436\u0438\u043C \u0437\u0430\u043C\u0435\u0434\u043B\u044F\u0435\u0442 \u0441\u0435\u0440\u0432\u0438\u0441, \u0430 \u043D\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0435\u0433\u043E \u0432\u043A\u043B\u044E\u0447\u0438\u043B\u0438. */\n --u-duration-instant: 100ms; --u-duration-fast: 150ms; --u-duration-base: 200ms; --u-duration-moderate: 250ms; --u-duration-slow: 300ms;\n /* \u041E\u0442\u0441\u0442\u0443\u043F \u043A\u043D\u043E\u043F\u043A\u0438 \u0441\u043D\u0438\u0437\u0443: StickyActionBar \u043A\u0438\u0442\u0430, \u043F\u043E\u043A\u0430 \u0441\u0442\u043E\u0438\u0442 \u0443 \u043D\u0438\u0436\u043D\u0435\u0433\u043E \u043A\u0440\u0430\u044F, \u0437\u0430\u0434\u0430\u0451\u0442 \u043D\u0430 <html>\n --u-dev-launcher-bottom (\u0435\u0433\u043E \u0432\u044B\u0441\u043E\u0442\u0430 + 12px) \u2014 \u043A\u043D\u043E\u043F\u043A\u0430 \u0438 \u043F\u0430\u043D\u0435\u043B\u044C \u043F\u043E\u0434\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u043D\u0430\u0434 \u043D\u0438\u043C. */\n --launcher-bottom: var(--u-dev-launcher-bottom, calc(12px + env(safe-area-inset-bottom, 0px)));\n font-family: Montserrat, \"Segoe UI\", Arial, sans-serif; font-size: 14px; line-height: 1.4; color: var(--u-color-text, #222); }\nbutton, input, textarea { font: inherit; color: inherit; }\n/* \u041A\u043D\u043E\u043F\u043A\u0430 \u043F\u0430\u043D\u0435\u043B\u0438 \u2014 \u0432 \u0446\u0432\u0435\u0442\u0430\u0445 \u043A\u0438\u0442\u0430: \u0442\u043E\u043A\u0435\u043D\u044B --u-color-* \u0441 :root \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043F\u0440\u043E\u0445\u043E\u0434\u044F\u0442 \u0432 shadow DOM\n (all: initial \u0438\u0445 \u043D\u0435 \u0441\u0431\u0440\u0430\u0441\u044B\u0432\u0430\u0435\u0442), \u0437\u0430\u043F\u0430\u0441\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u2014 \u043A\u0430\u043A \u0432 \u043A\u0438\u0442\u0435. \u0412 \u043F\u043E\u043A\u043E\u0435 \u2014 \u043A\u0440\u0443\u0433 \u0441 \u043B\u043E\u0433\u043E\u0442\u0438\u043F\u043E\u043C,\n \u0447\u0442\u043E\u0431\u044B \u043C\u0435\u043D\u044C\u0448\u0435 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043D\u0438\u0436\u043D\u0438\u0435 \u043B\u0438\u043F\u043A\u0438\u0435 \u043F\u0430\u043D\u0435\u043B\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430; \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0438 \u0444\u043E\u043A\u0443\u0441\u0435 \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F\n \u0432 \u00AB\u043B\u043E\u0433\u043E\u0442\u0438\u043F + Dev\u00BB; \u043F\u0440\u0438 \u0432\u043A\u043B\u044E\u0447\u0451\u043D\u043D\u044B\u0445 \u0441\u0431\u043E\u044F\u0445 \u0440\u0430\u0441\u043A\u0440\u044B\u0442\u0430 \u0432\u0441\u0435\u0433\u0434\u0430, \u0446\u0432\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u0438 \u0438 \u0447\u0438\u0441\u043B\u043E \u0441\u0431\u043E\u0435\u0432. */\n.pill { --kit-p: var(--u-color-primary, #1e4391); --kit-error: var(--u-color-error, #ef302b);\n --kit-surface: var(--u-color-surface, #fff); --kit-line: var(--u-color-border, #748ab9);\n position: fixed; left: 12px; bottom: var(--launcher-bottom); z-index: 2147483000;\n display: inline-flex; align-items: center; height: 36px; padding: 0; border: 1px solid var(--kit-line); border-radius: 18px;\n background: var(--kit-surface); color: var(--kit-p); font-size: 13px; font-weight: 500; white-space: nowrap; cursor: pointer;\n box-shadow: 0 2px 8px rgba(0,0,0,.15);\n transition: background-color var(--u-duration-fast) var(--u-ease-standard), border-color var(--u-duration-fast) var(--u-ease-standard); }\n.pill .logo { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--kit-surface); }\n.pill .logo svg { display: block; width: 20px; height: 20px; }\n.pill .label { max-width: 0; overflow: hidden; opacity: 0; padding: 0;\n transition: max-width var(--u-duration-base) var(--u-ease-move), opacity var(--u-duration-base) var(--u-ease-move), padding var(--u-duration-base) var(--u-ease-move); }\n.pill:hover .label, .pill:focus-visible .label, .pill.on .label { max-width: 260px; opacity: 1; padding: 0 14px 0 2px; }\n.pill.on { background: var(--kit-error); border-color: var(--kit-error); color: #fff; }\n.pill.on .logo { width: 30px; height: 30px; margin: 0 1px 0 2px; }\n.pill:focus-visible { outline: 2px solid var(--kit-p); outline-offset: 2px; }\n.panel { position: fixed; left: 12px; bottom: calc(var(--launcher-bottom) + 44px); z-index: 2147483001;\n width: 400px; max-width: calc(100vw - 24px); max-height: min(75vh, 680px); display: flex; flex-direction: column;\n background: var(--u-color-surface, #fff); border: 1px solid var(--u-color-border-light, #d3d3d3); border-radius: var(--u-radius, 10px);\n box-shadow: var(--u-shadow-popup, 0 8px 24px rgba(15,43,94,.16)); }\n.panel.alone { bottom: var(--launcher-bottom); }\n/* \u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430 \u0443 \u043A\u043D\u043E\u043F\u043A\u0438 \u2014 \u043F\u0443\u0437\u044B\u0440\u044C, \u043A\u0430\u043A \u0443 Tooltip \u043A\u0438\u0442\u0430. */\n.hint { position: fixed; left: 12px; bottom: var(--launcher-bottom); z-index: 2147483000;\n max-width: min(360px, calc(100vw - 24px)); padding: 8px 12px; border-radius: var(--u-radius-small, 8px);\n background: var(--u-color-text, #222); color: var(--u-color-surface, #fff); font-size: 12px; box-shadow: var(--u-shadow-popup); }\n.pill ~ .hint { bottom: calc(var(--launcher-bottom) + 44px); }\n/* min-height \u0443 u-message-small \u043E\u0442\u043C\u0435\u043D\u044F\u0435\u0442 \u0437\u0430\u0449\u0438\u0442\u0443 \u0444\u043B\u0435\u043A\u0441-\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u043E\u0442 \u0441\u0436\u0430\u0442\u0438\u044F: \u0431\u0435\u0437 flex-shrink \u0442\u0435\u043A\u0441\u0442 \u043E\u0431\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044F. */\n.note { margin: 0 16px 8px; overflow-wrap: anywhere; flex-shrink: 0; }\n.head { display: flex; align-items: center; gap: 4px; padding: 10px 8px 2px 16px; }\n.title { flex: 1; min-width: 0; font-weight: 600; font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.title .u-selectbox { width: 100%; }\n.title .u-selectbox-select-title { font-weight: 600; }\n.intro, .caption, .escape { margin: 0; color: var(--u-color-text-secondary, #545454); }\n.intro { padding: 0 16px 10px; }\n.tabs { padding: 0 16px 8px; }\n.tabs .u-tab-segment { padding: 6px 4px; }\n.body { overflow: auto; padding: 4px 16px 12px; display: flex; flex-direction: column; gap: 14px; }\n.body .u-search { display: block; width: 100%; }\n.group { display: flex; flex-direction: column; gap: 8px; }\n.group-title { font-weight: 600; color: var(--u-color-text-secondary, #545454); }\n.u-switch { align-items: flex-start; }\n.u-switch .tt { padding-top: 3px; }\n.u-switch .sub { display: block; color: var(--u-color-text-secondary, #545454); font-size: 12px; }\n/* Select \u043A\u0438\u0442\u0430: \u043E\u0442\u043C\u0435\u0442\u043A\u0430 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0438 \u043F\u0443\u043D\u043A\u0442\u0430 \u043F\u043E\u0434 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043E\u0439 \u2014 \u043A\u0430\u043A \u0443 Select \u0432 React \u0438 Vue. */\n.u-selectbox-option[aria-selected=\"true\"] { background: var(--u-color-background, #f6f6f6); }\n.u-selectbox-option.active { background: var(--u-color-selected, #e7f2ff); }\n.u-selectbox-select-icon-arrow { transition: transform var(--u-duration-fast) var(--u-ease-standard); }\n.u-selectbox-select-open .u-selectbox-select-icon-arrow { transform: rotate(180deg); }\n.rule { display: flex; align-items: center; gap: 10px; padding: 6px 4px 6px 10px; border-radius: var(--u-radius-small, 8px);\n background: var(--u-color-background-light, #f9f9f9); }\n.rule .text { flex: 1; min-width: 0; font-family: Consolas, monospace; font-size: 12px; overflow-wrap: anywhere; }\n.rule small, .req small, .shown small { display: block; color: var(--u-color-text-secondary, #545454);\n font-family: Montserrat, \"Segoe UI\", Arial, sans-serif; font-size: 12px; }\n.add { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 8px; }\n.add .wide { grid-column: 1 / -1; }\n.add .u-textarea { height: auto; min-height: 76px; font-family: Consolas, monospace; font-size: 12px; resize: vertical; }\n.add .u-form-field__hint { color: var(--u-color-warning, #e98446); }\n.add [type=\"submit\"] { align-self: end; }\n.foot { display: flex; flex-direction: column; gap: 8px; padding: 10px 16px 12px; border-top: 1px solid var(--u-color-border-light, #d3d3d3); }\n.actions { display: flex; gap: 8px; flex-wrap: wrap; }\n.empty { margin: 0; color: var(--u-color-text-secondary, #545454); }\n.list-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--u-color-text-secondary, #545454); }\n.requests { display: flex; flex-direction: column; }\n.req { display: grid; grid-template-columns: 52px 1fr auto auto; gap: 8px; align-items: center; padding: 6px 0;\n border-bottom: 1px solid var(--u-color-background, #f6f6f6); font-family: Consolas, monospace; font-size: 12px; }\n.req .path { min-width: 0; overflow-wrap: break-word; }\n/* \u041F\u0443\u0442\u044C \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0441\u044F \u043F\u043E \u00AB/\u00BB (<wbr>), \u0430 \u043D\u0435 \u043F\u043E\u0441\u0440\u0435\u0434\u0438 \u0441\u043B\u043E\u0432\u0430; \u0434\u043B\u0438\u043D\u043D\u044B\u0439 \u043E\u0431\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044F \u043D\u0430 \u0432\u0442\u043E\u0440\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0435, \u043F\u043E\u043B\u043D\u044B\u0439 \u2014 \u0432 title. */\n.req .path .p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }\n.req .u-status { font-family: Montserrat, \"Segoe UI\", Arial, sans-serif; }\n.shown { padding: 8px 0; border-bottom: 1px solid var(--u-color-background, #f6f6f6); }\n.shown-head { display: flex; justify-content: space-between; gap: 8px; color: var(--u-color-text-secondary, #545454); font-size: 12px; }\n.shown-head .kind { font-weight: 600; color: var(--u-color-error, #ef302b); }\n.shown-head .kind.warning { color: var(--u-color-warning, #e98446); }\n.shown-title { font-weight: 600; }\n.shown .cause { margin-top: 2px; font-family: Consolas, monospace; font-size: 12px; }\ndl { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; margin: 0; }\ndt { color: var(--u-color-text-secondary, #545454); }\ndd { margin: 0; font-family: Consolas, monospace; font-size: 12px; overflow-wrap: anywhere; }\n@media (max-width: 576px) {\n .panel { left: 0; right: 0; bottom: 0; width: auto; max-width: none; max-height: 80vh;\n border-radius: var(--u-radius, 10px) var(--u-radius, 10px) 0 0; padding-bottom: env(safe-area-inset-bottom, 0px); }\n .panel ~ .pill { display: none; }\n}\n@media (prefers-reduced-motion: reduce) { .u-selectbox-select-icon-arrow, .pill, .pill .label { transition: none; } }\n";
|
|
7
|
+
export declare const STYLES = "\n:host { all: initial; }\n* { box-sizing: border-box; }\n.root {\n /* \u00AB\u0410\u043D\u0438\u043C\u0430\u0446\u0438\u0438 \u00D75\u00BB \u0441\u0442\u0430\u0432\u0438\u0442 \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u043D\u0430 \u043A\u0430\u0436\u0434\u044B\u0439 \u044D\u043B\u0435\u043C\u0435\u043D\u0442 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430, \u0432 \u0442\u043E\u043C \u0447\u0438\u0441\u043B\u0435 \u043D\u0430 \u0445\u043E\u0441\u0442 \u043F\u0430\u043D\u0435\u043B\u0438:\n \u0440\u0435\u0436\u0438\u043C \u0437\u0430\u043C\u0435\u0434\u043B\u044F\u0435\u0442 \u0441\u0435\u0440\u0432\u0438\u0441, \u0430 \u043D\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0435\u0433\u043E \u0432\u043A\u043B\u044E\u0447\u0438\u043B\u0438. */\n --u-duration-instant: 100ms; --u-duration-fast: 150ms; --u-duration-base: 200ms; --u-duration-moderate: 250ms; --u-duration-slow: 300ms;\n /* \u041E\u0442\u0441\u0442\u0443\u043F \u043A\u043D\u043E\u043F\u043A\u0438 \u0441\u043D\u0438\u0437\u0443: \u0432\u0441\u0435\u0433\u0434\u0430 \u043B\u0435\u0432\u044B\u0439 \u043D\u0438\u0436\u043D\u0438\u0439 \u0443\u0433\u043E\u043B, StickyActionBar \u0435\u0451 \u043D\u0435 \u043F\u043E\u0434\u043D\u0438\u043C\u0430\u0435\u0442. */\n --launcher-bottom: calc(12px + env(safe-area-inset-bottom, 0px));\n font-family: Montserrat, \"Segoe UI\", Arial, sans-serif; font-size: 14px; line-height: 1.4; color: var(--u-color-text, #222); }\nbutton, input, textarea { font: inherit; color: inherit; }\n/* \u041A\u043D\u043E\u043F\u043A\u0430 \u043F\u0430\u043D\u0435\u043B\u0438 \u2014 \u0432 \u0446\u0432\u0435\u0442\u0430\u0445 \u043A\u0438\u0442\u0430: \u0442\u043E\u043A\u0435\u043D\u044B --u-color-* \u0441 :root \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043F\u0440\u043E\u0445\u043E\u0434\u044F\u0442 \u0432 shadow DOM\n (all: initial \u0438\u0445 \u043D\u0435 \u0441\u0431\u0440\u0430\u0441\u044B\u0432\u0430\u0435\u0442), \u0437\u0430\u043F\u0430\u0441\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u2014 \u043A\u0430\u043A \u0432 \u043A\u0438\u0442\u0435. \u0412 \u043F\u043E\u043A\u043E\u0435 \u2014 \u043A\u0440\u0443\u0433 \u0441 \u043B\u043E\u0433\u043E\u0442\u0438\u043F\u043E\u043C,\n \u0447\u0442\u043E\u0431\u044B \u043C\u0435\u043D\u044C\u0448\u0435 \u0437\u0430\u043A\u0440\u044B\u0432\u0430\u0442\u044C \u043D\u0438\u0436\u043D\u0438\u0435 \u043B\u0438\u043F\u043A\u0438\u0435 \u043F\u0430\u043D\u0435\u043B\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430; \u043F\u0440\u0438 \u043D\u0430\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0438 \u0444\u043E\u043A\u0443\u0441\u0435 \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F\n \u0432 \u00AB\u043B\u043E\u0433\u043E\u0442\u0438\u043F + Dev\u00BB; \u043F\u0440\u0438 \u0432\u043A\u043B\u044E\u0447\u0451\u043D\u043D\u044B\u0445 \u0441\u0431\u043E\u044F\u0445 \u0440\u0430\u0441\u043A\u0440\u044B\u0442\u0430 \u0432\u0441\u0435\u0433\u0434\u0430, \u0446\u0432\u0435\u0442 \u043E\u0448\u0438\u0431\u043A\u0438 \u0438 \u0447\u0438\u0441\u043B\u043E \u0441\u0431\u043E\u0435\u0432. */\n.pill { --kit-p: var(--u-color-primary, #1e4391); --kit-error: var(--u-color-error, #ef302b);\n --kit-surface: var(--u-color-surface, #fff); --kit-line: var(--u-color-border, #748ab9);\n position: fixed; left: 12px; bottom: var(--launcher-bottom); z-index: 2147483000;\n display: inline-flex; align-items: center; height: 36px; padding: 0; border: 1px solid var(--kit-line); border-radius: 18px;\n background: var(--kit-surface); color: var(--kit-p); font-size: 13px; font-weight: 500; white-space: nowrap; cursor: pointer;\n box-shadow: 0 2px 8px rgba(0,0,0,.15);\n transition: background-color var(--u-duration-fast) var(--u-ease-standard), border-color var(--u-duration-fast) var(--u-ease-standard); }\n.pill .logo { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--kit-surface); }\n.pill .logo svg { display: block; width: 20px; height: 20px; }\n.pill .label { max-width: 0; overflow: hidden; opacity: 0; padding: 0;\n transition: max-width var(--u-duration-base) var(--u-ease-move), opacity var(--u-duration-base) var(--u-ease-move), padding var(--u-duration-base) var(--u-ease-move); }\n.pill:hover .label, .pill:focus-visible .label, .pill.on .label { max-width: 260px; opacity: 1; padding: 0 14px 0 2px; }\n.pill.on { background: var(--kit-error); border-color: var(--kit-error); color: #fff; }\n.pill.on .logo { width: 30px; height: 30px; margin: 0 1px 0 2px; }\n.pill:focus-visible { outline: 2px solid var(--kit-p); outline-offset: 2px; }\n.panel { position: fixed; left: 12px; bottom: calc(var(--launcher-bottom) + 44px); z-index: 2147483001;\n width: 400px; max-width: calc(100vw - 24px); max-height: min(75vh, 680px); display: flex; flex-direction: column;\n background: var(--u-color-surface, #fff); border: 1px solid var(--u-color-border-light, #d3d3d3); border-radius: var(--u-radius, 10px);\n box-shadow: var(--u-shadow-popup, 0 8px 24px rgba(15,43,94,.16)); }\n.panel.alone { bottom: var(--launcher-bottom); }\n/* \u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430 \u0443 \u043A\u043D\u043E\u043F\u043A\u0438 \u2014 \u043F\u0443\u0437\u044B\u0440\u044C, \u043A\u0430\u043A \u0443 Tooltip \u043A\u0438\u0442\u0430. */\n.hint { position: fixed; left: 12px; bottom: var(--launcher-bottom); z-index: 2147483000;\n max-width: min(360px, calc(100vw - 24px)); padding: 8px 12px; border-radius: var(--u-radius-small, 8px);\n background: var(--u-color-text, #222); color: var(--u-color-surface, #fff); font-size: 12px; box-shadow: var(--u-shadow-popup); }\n.pill ~ .hint { bottom: calc(var(--launcher-bottom) + 44px); }\n/* min-height \u0443 u-message-small \u043E\u0442\u043C\u0435\u043D\u044F\u0435\u0442 \u0437\u0430\u0449\u0438\u0442\u0443 \u0444\u043B\u0435\u043A\u0441-\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u043E\u0442 \u0441\u0436\u0430\u0442\u0438\u044F: \u0431\u0435\u0437 flex-shrink \u0442\u0435\u043A\u0441\u0442 \u043E\u0431\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044F. */\n.note { margin: 0 16px 8px; overflow-wrap: anywhere; flex-shrink: 0; }\n.head { display: flex; align-items: center; gap: 4px; padding: 10px 8px 2px 16px; }\n.title { flex: 1; min-width: 0; font-weight: 600; font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.title .u-selectbox { width: 100%; }\n.title .u-selectbox-select-title { font-weight: 600; }\n.intro, .caption, .escape { margin: 0; color: var(--u-color-text-secondary, #545454); }\n.intro { padding: 0 16px 10px; }\n.tabs { padding: 0 16px 8px; }\n.tabs .u-tab-segment { padding: 6px 4px; }\n.body { overflow: auto; padding: 4px 16px 12px; display: flex; flex-direction: column; gap: 14px; }\n.body .u-search { display: block; width: 100%; }\n.group { display: flex; flex-direction: column; gap: 8px; }\n.group-title { font-weight: 600; color: var(--u-color-text-secondary, #545454); }\n.u-switch { align-items: flex-start; }\n.u-switch .tt { padding-top: 3px; }\n.u-switch .sub { display: block; color: var(--u-color-text-secondary, #545454); font-size: 12px; }\n/* Select \u043A\u0438\u0442\u0430: \u043E\u0442\u043C\u0435\u0442\u043A\u0430 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0438 \u043F\u0443\u043D\u043A\u0442\u0430 \u043F\u043E\u0434 \u043A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u043E\u0439 \u2014 \u043A\u0430\u043A \u0443 Select \u0432 React \u0438 Vue. */\n.u-selectbox-option[aria-selected=\"true\"] { background: var(--u-color-background, #f6f6f6); }\n.u-selectbox-option.active { background: var(--u-color-selected, #e7f2ff); }\n.u-selectbox-select-icon-arrow { transition: transform var(--u-duration-fast) var(--u-ease-standard); }\n.u-selectbox-select-open .u-selectbox-select-icon-arrow { transform: rotate(180deg); }\n.rule { display: flex; align-items: center; gap: 10px; padding: 6px 4px 6px 10px; border-radius: var(--u-radius-small, 8px);\n background: var(--u-color-background-light, #f9f9f9); }\n.rule .text { flex: 1; min-width: 0; font-family: Consolas, monospace; font-size: 12px; overflow-wrap: anywhere; }\n.rule small, .req small, .shown small { display: block; color: var(--u-color-text-secondary, #545454);\n font-family: Montserrat, \"Segoe UI\", Arial, sans-serif; font-size: 12px; }\n.add { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 8px; }\n.add .wide { grid-column: 1 / -1; }\n.add .u-textarea { height: auto; min-height: 76px; font-family: Consolas, monospace; font-size: 12px; resize: vertical; }\n.add .u-form-field__hint { color: var(--u-color-warning, #e98446); }\n.add [type=\"submit\"] { align-self: end; }\n.foot { display: flex; flex-direction: column; gap: 8px; padding: 10px 16px 12px; border-top: 1px solid var(--u-color-border-light, #d3d3d3); }\n.actions { display: flex; gap: 8px; flex-wrap: wrap; }\n.empty { margin: 0; color: var(--u-color-text-secondary, #545454); }\n.list-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--u-color-text-secondary, #545454); }\n.requests { display: flex; flex-direction: column; }\n.req { display: grid; grid-template-columns: 52px 1fr auto auto; gap: 8px; align-items: center; padding: 6px 0;\n border-bottom: 1px solid var(--u-color-background, #f6f6f6); font-family: Consolas, monospace; font-size: 12px; }\n.req .path { min-width: 0; overflow-wrap: break-word; }\n/* \u041F\u0443\u0442\u044C \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0438\u0442\u0441\u044F \u043F\u043E \u00AB/\u00BB (<wbr>), \u0430 \u043D\u0435 \u043F\u043E\u0441\u0440\u0435\u0434\u0438 \u0441\u043B\u043E\u0432\u0430; \u0434\u043B\u0438\u043D\u043D\u044B\u0439 \u043E\u0431\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044F \u043D\u0430 \u0432\u0442\u043E\u0440\u043E\u0439 \u0441\u0442\u0440\u043E\u043A\u0435, \u043F\u043E\u043B\u043D\u044B\u0439 \u2014 \u0432 title. */\n.req .path .p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }\n.req .u-status { font-family: Montserrat, \"Segoe UI\", Arial, sans-serif; }\n.shown { padding: 8px 0; border-bottom: 1px solid var(--u-color-background, #f6f6f6); }\n.shown-head { display: flex; justify-content: space-between; gap: 8px; color: var(--u-color-text-secondary, #545454); font-size: 12px; }\n.shown-head .kind { font-weight: 600; color: var(--u-color-error, #ef302b); }\n.shown-head .kind.warning { color: var(--u-color-warning, #e98446); }\n.shown-title { font-weight: 600; }\n.shown .cause { margin-top: 2px; font-family: Consolas, monospace; font-size: 12px; }\ndl { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; margin: 0; }\ndt { color: var(--u-color-text-secondary, #545454); }\ndd { margin: 0; font-family: Consolas, monospace; font-size: 12px; overflow-wrap: anywhere; }\n@media (max-width: 576px) {\n .panel { left: 0; right: 0; bottom: 0; width: auto; max-width: none; max-height: 80vh;\n border-radius: var(--u-radius, 10px) var(--u-radius, 10px) 0 0; padding-bottom: env(safe-area-inset-bottom, 0px); }\n .panel ~ .pill { display: none; }\n}\n@media (prefers-reduced-motion: reduce) { .u-selectbox-select-icon-arrow, .pill, .pill .label { transition: none; } }\n";
|
package/dist/shared/kitCopy.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { registerKitCopy$u as e, getKitCopies$u as r, hasLegacyKitOverlay$u as o, kitIdPrefix$u as n } from "../vanilla/core/kitRegistry.js";
|
|
2
|
-
const c = "2.1.7-next.
|
|
2
|
+
const c = "2.1.7-next.1", t = () => e("react", c), a = () => n(t());
|
|
3
3
|
function p() {
|
|
4
4
|
return t(), r();
|
|
5
5
|
}
|
|
@@ -14,5 +14,10 @@
|
|
|
14
14
|
* Слушатели пассивные, на `document`, вешаются один раз за загрузку страницы — на все
|
|
15
15
|
* копии кита сразу (оболочка ЛК и сервисы): ставит их первая копия, см. `claimKitOnce`.
|
|
16
16
|
*/
|
|
17
|
+
/**
|
|
18
|
+
* Включает ли нажатие режим клавиатуры. В текстовом поле — только Tab: иначе пробел
|
|
19
|
+
* в поиске, кликнутом мышью, подсвечивал бы поле посреди набора.
|
|
20
|
+
*/
|
|
21
|
+
export declare function isKeyboardNavigation(e: Pick<KeyboardEvent, "key" | "target">): boolean;
|
|
17
22
|
export declare function installInputModeTracking(): void;
|
|
18
23
|
//# sourceMappingURL=inputMode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputMode.d.ts","sourceRoot":"","sources":["../../src/utils/inputMode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"inputMode.d.ts","sourceRoot":"","sources":["../../src/utils/inputMode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAuBH;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,QAAQ,CAAC,GAAG,OAAO,CAGtF;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAsB/C"}
|
|
@@ -225,7 +225,7 @@ function G() {
|
|
|
225
225
|
return `${e <= 576 ? "mobile" : e <= 900 ? "tablet" : "desktop"} (по ширине окна, шкала urfu не включена)`;
|
|
226
226
|
}
|
|
227
227
|
function T() {
|
|
228
|
-
return "2.1.7-next.
|
|
228
|
+
return "2.1.7-next.1";
|
|
229
229
|
}
|
|
230
230
|
function z(t) {
|
|
231
231
|
if (!(!s.roles && !t))
|
|
@@ -1,17 +1,24 @@
|
|
|
1
|
-
import { claimKitOnce$u as
|
|
2
|
-
const
|
|
3
|
-
let
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { claimKitOnce$u as r } from "./kitRegistry.js";
|
|
2
|
+
const o = "data-input-mode";
|
|
3
|
+
let t = !1;
|
|
4
|
+
const i = /* @__PURE__ */ new Set(["Tab", "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", "Home", "End", "Enter", " "]), u = /* @__PURE__ */ new Set(["checkbox", "radio", "range", "button", "submit", "reset", "image", "file", "color"]);
|
|
5
|
+
function a(e) {
|
|
6
|
+
return e instanceof HTMLElement ? e instanceof HTMLTextAreaElement ? !e.readOnly : e instanceof HTMLInputElement ? !e.readOnly && !u.has(e.type) : e.isContentEditable : !1;
|
|
7
|
+
}
|
|
8
|
+
function s(e) {
|
|
9
|
+
return i.has(e.key) ? e.key === "Tab" || !a(e.target) : !1;
|
|
10
|
+
}
|
|
11
|
+
function c() {
|
|
12
|
+
if (t || typeof document > "u" || (t = !0, !r("input-mode"))) return;
|
|
13
|
+
const e = (n) => {
|
|
14
|
+
document.documentElement.setAttribute(o, n);
|
|
15
|
+
};
|
|
9
16
|
document.addEventListener(
|
|
10
17
|
"keydown",
|
|
11
|
-
(
|
|
12
|
-
|
|
18
|
+
(n) => {
|
|
19
|
+
s(n) && e("keyboard");
|
|
13
20
|
},
|
|
14
21
|
{ capture: !0, passive: !0 }
|
|
15
22
|
), document.addEventListener("pointerdown", () => e("pointer"), { capture: !0, passive: !0 }), e("pointer");
|
|
16
23
|
}
|
|
17
|
-
export {
|
|
24
|
+
export { c as installInputModeTracking$u, s as isKeyboardNavigation$u };
|
package/package.json
CHANGED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/** Высота, которую занимает у нижнего края панель `owner`; `null` — панель не у края. */
|
|
2
|
-
export declare function setDevLauncherOffset(owner: object, px: number | null): void;
|
|
3
|
-
/**
|
|
4
|
-
* Сколько занимает элемент от нижнего края окна до своего верха; `null` — элемент не виден
|
|
5
|
-
* (`display: none` и т. п.): у него `top` 0, и кнопка dev улетела бы к верху экрана.
|
|
6
|
-
*/
|
|
7
|
-
export declare const occupiedFromBottom: (node: Element) => number | null;
|
|
8
|
-
//# sourceMappingURL=devLauncherOffset.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"devLauncherOffset.d.ts","sourceRoot":"","sources":["../../src/shared/devLauncherOffset.ts"],"names":[],"mappings":"AAwBA,yFAAyF;AACzF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAI3E;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,OAAO,KAAG,MAAM,GAAG,IAI3D,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
const o = "--u-dev-launcher-bottom";
|
|
2
|
-
const n = /* @__PURE__ */ new Map();
|
|
3
|
-
function r() {
|
|
4
|
-
if (typeof document > "u") return;
|
|
5
|
-
const t = document.documentElement;
|
|
6
|
-
if (n.size === 0) {
|
|
7
|
-
t.style.removeProperty(o);
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
const e = `calc(${Math.round(Math.max(...n.values()))}px + 12px)`;
|
|
11
|
-
t.style.getPropertyValue(o) !== e && t.style.setProperty(o, e);
|
|
12
|
-
}
|
|
13
|
-
function u(t, e) {
|
|
14
|
-
e === null ? n.delete(t) : n.set(t, Math.max(0, e)), r();
|
|
15
|
-
}
|
|
16
|
-
const c = (t) => {
|
|
17
|
-
const e = t.getBoundingClientRect();
|
|
18
|
-
return e.width === 0 && e.height === 0 ? null : window.innerHeight - e.top;
|
|
19
|
-
};
|
|
20
|
-
export { c as occupiedFromBottom$u, u as setDevLauncherOffset$u };
|