@ryuzaki13/react-foundation-ui 1.1.7 → 1.1.8
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/advanced-search/index.js +136 -136
- package/dist/base-table/index.js +2 -2
- package/dist/chunks/{CalendarView-C0gJvre1.js → CalendarView-KCkhCtK-.js} +101 -101
- package/dist/chunks/{CalendarView-C0gJvre1.js.map → CalendarView-KCkhCtK-.js.map} +1 -1
- package/dist/chunks/SelectOptionContent-CI7wq9Oi.js +27 -0
- package/dist/chunks/SelectOptionContent-CI7wq9Oi.js.map +1 -0
- package/dist/chunks/{TextEditorLexicalClient-DYZ32dnX.js → TextEditorLexicalClient-DeBA6fQX.js} +157 -157
- package/dist/chunks/{TextEditorLexicalClient-DYZ32dnX.js.map → TextEditorLexicalClient-DeBA6fQX.js.map} +1 -1
- package/dist/chunks/{base-table-BXKFSgIk.js → base-table-Dv9i3CAT.js} +73 -73
- package/dist/chunks/{base-table-BXKFSgIk.js.map → base-table-Dv9i3CAT.js.map} +1 -1
- package/dist/chunks/{date-input-DKkW7_uw.js → date-input-DT9E8dhk.js} +44 -44
- package/dist/chunks/{date-input-DKkW7_uw.js.map → date-input-DT9E8dhk.js.map} +1 -1
- package/dist/chunks/{date-range-preset-select-UgsfaOeM.js → date-range-preset-select-BLnY47cv.js} +20 -20
- package/dist/chunks/{date-range-preset-select-UgsfaOeM.js.map → date-range-preset-select-BLnY47cv.js.map} +1 -1
- package/dist/chunks/{input-CZLUUggm.js → input-BCJfUdK_.js} +43 -43
- package/dist/chunks/{input-CZLUUggm.js.map → input-BCJfUdK_.js.map} +1 -1
- package/dist/chunks/{input-files-aB8iaqGk.js → input-files-Dcc5K-_1.js} +2 -2
- package/dist/chunks/{input-files-aB8iaqGk.js.map → input-files-Dcc5K-_1.js.map} +1 -1
- package/dist/chunks/{input-search-eMvnvgV0.js → input-search-B7HmrAM7.js} +2 -2
- package/dist/chunks/{input-search-eMvnvgV0.js.map → input-search-B7HmrAM7.js.map} +1 -1
- package/dist/chunks/{multi-select-DaOKgHKE.js → multi-select-BCpRct-k.js} +105 -104
- package/dist/chunks/{multi-select-DaOKgHKE.js.map → multi-select-BCpRct-k.js.map} +1 -1
- package/dist/chunks/{picker-BZ05h_ZJ.js → picker-DTZk09Ag.js} +27 -27
- package/dist/chunks/{picker-BZ05h_ZJ.js.map → picker-DTZk09Ag.js.map} +1 -1
- package/dist/chunks/select-Bd48kVI3.js +328 -0
- package/dist/chunks/{select-Dj3FfpS0.js.map → select-Bd48kVI3.js.map} +1 -1
- package/dist/chunks/{table-BdpMzhLH.js → table-BtXVqa2I.js} +10 -10
- package/dist/chunks/{table-BdpMzhLH.js.map → table-BtXVqa2I.js.map} +1 -1
- package/dist/chunks/{table-column-interactions-6RGjmiI5.js → table-column-interactions-BGd5Lwy9.js} +19 -19
- package/dist/chunks/{table-column-interactions-6RGjmiI5.js.map → table-column-interactions-BGd5Lwy9.js.map} +1 -1
- package/dist/chunks/{useODataSelectBase-BxAvhDww.js → useODataSelectBase-wZ07hQFv.js} +10 -10
- package/dist/chunks/{useODataSelectBase-BxAvhDww.js.map → useODataSelectBase-wZ07hQFv.js.map} +1 -1
- package/dist/date-input/index.js +2 -2
- package/dist/date-range-preset-select/index.js +1 -1
- package/dist/date-time-input/index.js +41 -41
- package/dist/drop-zone/index.js +1 -1
- package/dist/errors/index.js +39 -39
- package/dist/image/index.js +2 -2
- package/dist/input/index.js +1 -1
- package/dist/input-date-time/index.js +1 -1
- package/dist/input-file/index.js +1 -1
- package/dist/input-files/index.js +1 -1
- package/dist/input-image/index.js +1 -1
- package/dist/input-search/index.js +1 -1
- package/dist/layout-picker/index.js +1 -1
- package/dist/multi-select/index.js +1 -1
- package/dist/notifications/index.js +26 -26
- package/dist/period-select/index.js +19 -19
- package/dist/picker/index.js +1 -1
- package/dist/preset-range-date-input/index.js +2 -2
- package/dist/preset-select/index.js +1 -1
- package/dist/select/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/index.js +312 -312
- package/dist/slider/index.js.map +1 -1
- package/dist/state-select/index.js +14 -14
- package/dist/styles.css +1 -1
- package/dist/table/index.js +1 -1
- package/dist/table-column-interactions/index.js +1 -1
- package/dist/tag-input/index.js +1 -1
- package/dist/text/index.js +10 -10
- package/dist/text-editor/index.js +1 -1
- package/dist/textarea/index.js +1 -1
- package/dist/tree-select/index.js +240 -239
- package/dist/tree-select/index.js.map +1 -1
- package/dist/tree-table/index.js +15 -15
- package/package.json +2 -1
- package/storybook-static/project.json +1 -1
- package/dist/chunks/SelectOptionContent-lfEtHXfO.js +0 -1132
- package/dist/chunks/SelectOptionContent-lfEtHXfO.js.map +0 -1
- package/dist/chunks/select-Dj3FfpS0.js +0 -327
|
@@ -1,1132 +0,0 @@
|
|
|
1
|
-
import { HighlightText as e } from "../text/index.js";
|
|
2
|
-
import { t } from "./ui.module-BisoTevy.js";
|
|
3
|
-
import { useCallback as n, useEffect as r, useMemo as i, useRef as a, useState as o } from "react";
|
|
4
|
-
import { cn as s, logError as c } from "@ryuzaki13/react-foundation-lib/utils";
|
|
5
|
-
import { asRecord as l, isRecord as u, isSafe as d } from "@ryuzaki13/react-foundation-lib/validators";
|
|
6
|
-
import { reportTransportError as f } from "@ryuzaki13/react-foundation-lib/error-report";
|
|
7
|
-
import { formatDateAsODataDatetime as p, parseDate as m, truncateText as h } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
8
|
-
import { queryOptions as g, useQuery as _, useQueryClient as v } from "@tanstack/react-query";
|
|
9
|
-
import { persistedQueryMeta as y } from "@ryuzaki13/react-foundation-lib/query-client";
|
|
10
|
-
import { buildEntityOperationPath as b, buildEntityPath as x, buildFunctionImportPath as S, buildODataFilter as C, buildODataOrder as w, odataParseValueByMetadata as T, parseServiceMetadata as ee } from "@ryuzaki13/react-foundation-lib/odata-service";
|
|
11
|
-
import "@ryuzaki13/react-foundation-lib/string-comparison";
|
|
12
|
-
import { buildSeparatedArrays as te, useODataCollectionStore as E } from "@ryuzaki13/react-foundation-lib/odata";
|
|
13
|
-
import { createTableColumnVisibilityFromODataMetadata as ne, createTableColumnsFromODataMetadata as re, enrichTableColumnsWithODataFormatting as ie, resolveStableColumnId as ae } from "@ryuzaki13/react-foundation-lib/table";
|
|
14
|
-
import "@ryuzaki13/react-foundation-lib/notifications";
|
|
15
|
-
import { jsx as D, jsxs as oe } from "react/jsx-runtime";
|
|
16
|
-
//#region node_modules/@ryuzaki13/react-foundation-api/dist/chunks/fetch-CPEFkAcU.js
|
|
17
|
-
var O = {};
|
|
18
|
-
function k() {
|
|
19
|
-
return O;
|
|
20
|
-
}
|
|
21
|
-
function se(e) {
|
|
22
|
-
return e.split(";")[0] ?? e;
|
|
23
|
-
}
|
|
24
|
-
function A(e, t) {
|
|
25
|
-
let n = O.devDp0Service;
|
|
26
|
-
return (__DEV__ || __PREVIEW__) && n && se(e) === se(n) ? "odataDp0" : t ?? "odata";
|
|
27
|
-
}
|
|
28
|
-
function ce() {
|
|
29
|
-
return O.resolveSapClient?.() ?? null;
|
|
30
|
-
}
|
|
31
|
-
var le = "/sap/opu/odata/sap", ue = __DEV__ || __PREVIEW__ ? "/sap-dp0/opu/odata/sap" : "/sap/opu/odata/sap", de = __DEV__ || __PREVIEW__ ? "/sap-dp0/opu/odata/UI2" : "/sap/opu/odata/UI2", fe = __BASE_APP_CONFIG_URL__, j = Object.freeze({
|
|
32
|
-
"": "",
|
|
33
|
-
odata: le,
|
|
34
|
-
odataDp0: ue,
|
|
35
|
-
odataUi2: de,
|
|
36
|
-
config: fe
|
|
37
|
-
});
|
|
38
|
-
function M(e) {
|
|
39
|
-
return typeof e == "string" ? e : typeof Request < "u" && e instanceof Request ? e.url : e.toString();
|
|
40
|
-
}
|
|
41
|
-
function N(e) {
|
|
42
|
-
let t = e.split("?")[0]?.split("#")[0] ?? "";
|
|
43
|
-
return t ? t.startsWith("/") ? t : `/${t}` : "/";
|
|
44
|
-
}
|
|
45
|
-
var pe = 40, me = 1e3;
|
|
46
|
-
function he(e) {
|
|
47
|
-
try {
|
|
48
|
-
let t = typeof window < "u" ? window.location.origin : "http://localhost", n = new URL(e, t);
|
|
49
|
-
return `${n.origin === t ? "" : n.origin}${n.pathname}`;
|
|
50
|
-
} catch {
|
|
51
|
-
return N(e);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
function ge(e) {
|
|
55
|
-
if (!(typeof DOMParser > "u")) try {
|
|
56
|
-
return new DOMParser().parseFromString(e, "text/html");
|
|
57
|
-
} catch {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
function _e(e, t) {
|
|
62
|
-
return t?.querySelector("title")?.textContent || /<title[^>]*>([\s\S]*?)<\/title>/i.exec(e)?.[1];
|
|
63
|
-
}
|
|
64
|
-
function ve(e, t) {
|
|
65
|
-
let n = t?.querySelectorAll("form").length;
|
|
66
|
-
return n === void 0 ? Array.from(e.matchAll(/<form\b/gi)).length : n;
|
|
67
|
-
}
|
|
68
|
-
function ye(e, t) {
|
|
69
|
-
let n = t ? Array.from(t.querySelectorAll("input[name],textarea[name],select[name]")).map((e) => e.name).filter(Boolean) : Array.from(e.matchAll(/\bname\s*=\s*["']([^"']+)["']/gi)).map((e) => e[1]).filter((e) => !!e);
|
|
70
|
-
return Array.from(new Set(n)).slice(0, pe);
|
|
71
|
-
}
|
|
72
|
-
function be(e, t) {
|
|
73
|
-
return h(t?.body?.textContent ?? e.replace(/<script\b[\s\S]*?<\/script>/gi, " ").replace(/<style\b[\s\S]*?<\/style>/gi, " ").replace(/<[^>]+>/g, " "), me);
|
|
74
|
-
}
|
|
75
|
-
function xe(e) {
|
|
76
|
-
let t = ge(e);
|
|
77
|
-
return {
|
|
78
|
-
length: e.length,
|
|
79
|
-
title: h(_e(e, t), 200),
|
|
80
|
-
formCount: ve(e, t),
|
|
81
|
-
inputNames: ye(e, t),
|
|
82
|
-
textPreview: be(e, t)
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
function Se(e, t, n, r, i) {
|
|
86
|
-
let a = i ? M(i.input) : void 0, o = a?.startsWith("http") ? a : a ? `${j[i?.baseUrlType ?? ""]}${a}` : void 0;
|
|
87
|
-
f(e, {
|
|
88
|
-
source: t,
|
|
89
|
-
requestUrl: o ? he(o) : void 0,
|
|
90
|
-
responseUrl: n.url ? he(n.url) : void 0,
|
|
91
|
-
method: i?.init.method?.toUpperCase() ?? "GET",
|
|
92
|
-
baseUrlType: i?.baseUrlType,
|
|
93
|
-
sapClient: i?.sapClient,
|
|
94
|
-
status: n.status,
|
|
95
|
-
statusText: n.statusText,
|
|
96
|
-
contentType: n.headers.get("Content-Type") || void 0,
|
|
97
|
-
redirected: n.redirected,
|
|
98
|
-
responseType: n.type,
|
|
99
|
-
html: xe(r)
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
var P = null, Ce = 0;
|
|
103
|
-
function we(e) {
|
|
104
|
-
if (typeof window > "u") return e;
|
|
105
|
-
try {
|
|
106
|
-
let t = new RegExp(__ORIGIN_REG_EXP__, "i"), n = new URL(e, window.location.origin), r = t.test(n.origin), i = n.origin === __SSO_ORIGIN__;
|
|
107
|
-
return r || i || n.origin === window.location.origin ? `${n.pathname}${n.search}${n.hash}` : n.toString();
|
|
108
|
-
} catch {
|
|
109
|
-
return e;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
function F(e) {
|
|
113
|
-
return e ? typeof e.inputs.SAMLRequest == "string" || typeof e.inputs.SAMLResponse == "string" : !1;
|
|
114
|
-
}
|
|
115
|
-
function Te() {
|
|
116
|
-
let e = `${__APP_ID__}-sso-iframe-${++Ce}`, t = document.createElement("iframe");
|
|
117
|
-
return t.name = e, t.style.display = "none", t;
|
|
118
|
-
}
|
|
119
|
-
function Ee(e, t) {
|
|
120
|
-
return new Promise((n) => {
|
|
121
|
-
let r = null, i = () => {
|
|
122
|
-
r !== null && window.clearTimeout(r), r = window.setTimeout(() => {
|
|
123
|
-
t(), n(!0);
|
|
124
|
-
}, 400);
|
|
125
|
-
};
|
|
126
|
-
e.addEventListener("load", i), e.addEventListener("error", i);
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
function De(e, t) {
|
|
130
|
-
let n = document.createElement("form");
|
|
131
|
-
n.method = e.method === "GET" ? "GET" : "POST", n.action = we(e.action), n.target = t, n.style.display = "none";
|
|
132
|
-
for (let [t, r] of Object.entries(e.inputs)) {
|
|
133
|
-
let e = document.createElement("input");
|
|
134
|
-
e.type = "hidden", e.name = t, e.value = r, n.appendChild(e);
|
|
135
|
-
}
|
|
136
|
-
return n;
|
|
137
|
-
}
|
|
138
|
-
function Oe() {
|
|
139
|
-
return typeof document > "u" ? null : document.body ?? document.documentElement;
|
|
140
|
-
}
|
|
141
|
-
function ke(e) {
|
|
142
|
-
let t = Oe();
|
|
143
|
-
if (!t) return Promise.resolve(!1);
|
|
144
|
-
let n = Te(), r = De(e, n.name), i = Ee(n, () => {
|
|
145
|
-
n.remove(), r.remove();
|
|
146
|
-
});
|
|
147
|
-
return t.appendChild(n), t.appendChild(r), r.submit(), i;
|
|
148
|
-
}
|
|
149
|
-
function Ae(e) {
|
|
150
|
-
let t = Oe();
|
|
151
|
-
if (!t) return Promise.resolve(!1);
|
|
152
|
-
let n = Te(), r = Ee(n, () => {
|
|
153
|
-
n.remove();
|
|
154
|
-
});
|
|
155
|
-
return t.appendChild(n), n.src = we(e), r;
|
|
156
|
-
}
|
|
157
|
-
function je({ form: e, recoveryUrl: t } = {}) {
|
|
158
|
-
return P || (typeof window > "u" ? !1 : (P = (async () => F(e) ? ke(e) : t ? Ae(t) : !1)().finally(() => {
|
|
159
|
-
P = null;
|
|
160
|
-
}), P));
|
|
161
|
-
}
|
|
162
|
-
var I = class e extends Error {
|
|
163
|
-
form;
|
|
164
|
-
recoveryUrl;
|
|
165
|
-
recoverable;
|
|
166
|
-
constructor(t, n, r, i = {}) {
|
|
167
|
-
super(t), this.form = n, this.recoveryUrl = r, this.recoverable = i.recoverable ?? !0, Object.setPrototypeOf(this, e.prototype);
|
|
168
|
-
}
|
|
169
|
-
}, L = /* @__PURE__ */ new Map(), R = /* @__PURE__ */ new Map(), z = null, B = null;
|
|
170
|
-
function V(e, t) {
|
|
171
|
-
if (t !== "") return !0;
|
|
172
|
-
let n = N(M(e));
|
|
173
|
-
return n.startsWith("/sap/") || n.startsWith("/sap-dp0/");
|
|
174
|
-
}
|
|
175
|
-
function H(e, t) {
|
|
176
|
-
return __DEV__ || __PREVIEW__ ? V(e, t) ? t === "odataDp0" || t === "" && N(M(e)).startsWith("/sap-dp0/") ? "300" : `${__SAP_CLIENT__}` : null : ce();
|
|
177
|
-
}
|
|
178
|
-
function Me(e) {
|
|
179
|
-
return new I("Не удалось автоматически восстановить SSO-сессию. Перезагрузите страницу и выполните вход заново.", e.form, e.recoveryUrl, { recoverable: !1 });
|
|
180
|
-
}
|
|
181
|
-
function U(e) {
|
|
182
|
-
let t = Me(e);
|
|
183
|
-
return typeof window < "u" && (B = t), t;
|
|
184
|
-
}
|
|
185
|
-
async function Ne() {
|
|
186
|
-
let e = z;
|
|
187
|
-
if (e && await e.catch(() => {}), B) throw B;
|
|
188
|
-
}
|
|
189
|
-
async function W(e, t) {
|
|
190
|
-
if (B) throw B;
|
|
191
|
-
let n;
|
|
192
|
-
if (!z) {
|
|
193
|
-
if (z = (async () => {
|
|
194
|
-
if (!await Promise.resolve(je({
|
|
195
|
-
form: e.form,
|
|
196
|
-
recoveryUrl: e.recoveryUrl
|
|
197
|
-
})).catch(() => !1)) throw U(e);
|
|
198
|
-
try {
|
|
199
|
-
n = { value: await t() }, B = null;
|
|
200
|
-
} catch (e) {
|
|
201
|
-
throw e instanceof I ? U(e) : e;
|
|
202
|
-
}
|
|
203
|
-
})().finally(() => {
|
|
204
|
-
z = null;
|
|
205
|
-
}), await z, !n) throw B ?? Me(e);
|
|
206
|
-
return n.value;
|
|
207
|
-
}
|
|
208
|
-
await Ne();
|
|
209
|
-
try {
|
|
210
|
-
return await t();
|
|
211
|
-
} catch (e) {
|
|
212
|
-
throw e instanceof I ? U(e) : e;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
function Pe(e, t, n) {
|
|
216
|
-
if (t === "config") return {
|
|
217
|
-
cacheKey: `${__APP_ID__}:${n ?? ""}`,
|
|
218
|
-
fetchUrl: "/Statistics"
|
|
219
|
-
};
|
|
220
|
-
let [r] = N(M(e)).split("/").filter(Boolean);
|
|
221
|
-
if (!r) throw Error("Не удалось определить сервис для получения CSRF-токена");
|
|
222
|
-
return {
|
|
223
|
-
cacheKey: `${t}:${n ?? ""}:${r}`,
|
|
224
|
-
fetchUrl: `/${r}/`
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
|
-
async function Fe(e, t, n) {
|
|
228
|
-
let r = Pe(e, t, n), i = L.get(r.cacheKey);
|
|
229
|
-
if (i) return i;
|
|
230
|
-
let a = R.get(r.cacheKey);
|
|
231
|
-
if (a) return a;
|
|
232
|
-
let o = new Headers({ "x-csrf-token": "Fetch" });
|
|
233
|
-
o.set("sap-language", "ru"), o.set("sap-contextid-accept", "header"), o.set("Accept-Language", "ru"), n && o.set("sap-client", n);
|
|
234
|
-
let s = (t && j[t]) ?? "", c = fetch(s + r.fetchUrl, {
|
|
235
|
-
method: "GET",
|
|
236
|
-
headers: o,
|
|
237
|
-
credentials: "include",
|
|
238
|
-
redirect: "manual"
|
|
239
|
-
}).then(async (e) => {
|
|
240
|
-
if (Ge(e)) throw new I("Требуется повторная аутентификация", void 0, s + r.fetchUrl);
|
|
241
|
-
if (!e.ok) throw Error("Не удалось получить CSRF-токен");
|
|
242
|
-
let t = e.headers.get("x-csrf-token");
|
|
243
|
-
if (!t) {
|
|
244
|
-
let t = (e.headers.get("Content-Type") || "").toLowerCase(), n = await e.text();
|
|
245
|
-
if (Ie(t, n)) {
|
|
246
|
-
let e = K(n);
|
|
247
|
-
if (F(e)) throw new I("Требуется повторная аутентификация", e, s + r.fetchUrl);
|
|
248
|
-
}
|
|
249
|
-
throw Error("CSRF-токен отсутствует в ответе");
|
|
250
|
-
}
|
|
251
|
-
return L.set(r.cacheKey, t), R.delete(r.cacheKey), t;
|
|
252
|
-
}).catch((e) => {
|
|
253
|
-
throw R.delete(r.cacheKey), e;
|
|
254
|
-
});
|
|
255
|
-
return R.set(r.cacheKey, c), c;
|
|
256
|
-
}
|
|
257
|
-
function G(e, t) {
|
|
258
|
-
let n = t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
259
|
-
return RegExp(`${n}\\s*=\\s*["']([^"']*)["']`, "i").exec(e)?.[1];
|
|
260
|
-
}
|
|
261
|
-
function K(e) {
|
|
262
|
-
try {
|
|
263
|
-
if (typeof DOMParser < "u") {
|
|
264
|
-
let t = new DOMParser().parseFromString(e, "text/html").querySelector("form");
|
|
265
|
-
if (t) {
|
|
266
|
-
let e = t.getAttribute("action") || (typeof window < "u" ? window.location.href : ""), n = (t.getAttribute("method") || "GET").toUpperCase(), r = {};
|
|
267
|
-
return t.querySelectorAll("input[name]").forEach((e) => {
|
|
268
|
-
r[e.name] = e.value ?? "";
|
|
269
|
-
}), {
|
|
270
|
-
action: e,
|
|
271
|
-
method: n,
|
|
272
|
-
inputs: r
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
} catch {}
|
|
277
|
-
let t = /<form\b([^>]*)>([\s\S]*?)<\/form>/i.exec(e);
|
|
278
|
-
if (!t) return;
|
|
279
|
-
let [, n = "", r = ""] = t, i = G(n, "action") || (typeof window < "u" ? window.location.href : ""), a = (G(n, "method") || "GET").toUpperCase(), o = {};
|
|
280
|
-
for (let e of r.matchAll(/<input\b([^>]*)>/gi)) {
|
|
281
|
-
let t = e[1] ?? "", n = G(t, "name");
|
|
282
|
-
n && (o[n] = G(t, "value") ?? "");
|
|
283
|
-
}
|
|
284
|
-
return {
|
|
285
|
-
action: i,
|
|
286
|
-
method: a,
|
|
287
|
-
inputs: o
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
function Ie(e, t) {
|
|
291
|
-
return e.includes("text/html") || /<html/i.test(t) || /<form/i.test(t);
|
|
292
|
-
}
|
|
293
|
-
function Le(e) {
|
|
294
|
-
if (!u(e)) return e;
|
|
295
|
-
let t = { ...e };
|
|
296
|
-
return delete t.__metadata, t;
|
|
297
|
-
}
|
|
298
|
-
function Re(e) {
|
|
299
|
-
if (u(e) && u(e.d) && Array.isArray(e.d.results)) {
|
|
300
|
-
let t;
|
|
301
|
-
return e.d.__count && (t = Number(e.d.__count)), {
|
|
302
|
-
data: e.d.results.map(Le),
|
|
303
|
-
totalCount: t
|
|
304
|
-
};
|
|
305
|
-
}
|
|
306
|
-
return u(e) && e.d !== void 0 ? { data: Le(e.d) } : { data: e };
|
|
307
|
-
}
|
|
308
|
-
var ze = Object.freeze({ __noContent: !0 });
|
|
309
|
-
function Be(e) {
|
|
310
|
-
return !!e && typeof e == "object" && "__noContent" in e;
|
|
311
|
-
}
|
|
312
|
-
async function Ve(e, t) {
|
|
313
|
-
if (e.status === 204 || e.status === 205) return { data: ze };
|
|
314
|
-
let n = (e.headers.get("Content-Type") || "").toLowerCase();
|
|
315
|
-
if (n.includes("application/json") || n.includes("application/odata+json")) return Re(await e.json());
|
|
316
|
-
let r = await e.text();
|
|
317
|
-
if (Ie(n, r)) {
|
|
318
|
-
let n = K(r);
|
|
319
|
-
if (F(n)) throw new I("Требуется повторная аутентификация", n);
|
|
320
|
-
let i = /* @__PURE__ */ Error("Unexpected HTML response from OData endpoint");
|
|
321
|
-
throw Se(i, "fetch.parseResponse", e, r, t), i;
|
|
322
|
-
}
|
|
323
|
-
try {
|
|
324
|
-
return Re(JSON.parse(r));
|
|
325
|
-
} catch (e) {
|
|
326
|
-
throw c(e), Error("Unsupported response content type and body is not JSON");
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
function He(e) {
|
|
330
|
-
if (typeof e != "string") return null;
|
|
331
|
-
let t = e.trim();
|
|
332
|
-
return t.length ? t : null;
|
|
333
|
-
}
|
|
334
|
-
function q(e, t) {
|
|
335
|
-
let n = He(t);
|
|
336
|
-
!n || e.includes(n) || e.push(n);
|
|
337
|
-
}
|
|
338
|
-
function Ue(e) {
|
|
339
|
-
let t = [], n = e.error;
|
|
340
|
-
typeof n == "string" && q(t, n);
|
|
341
|
-
let r = l(n);
|
|
342
|
-
return r && (q(t, r.code), q(t, l(r.message)?.value ?? r.message)), q(t, e.details), q(t, e.message), t;
|
|
343
|
-
}
|
|
344
|
-
async function We(e, t) {
|
|
345
|
-
let n = (e.headers.get("Content-Type") || "").toLowerCase();
|
|
346
|
-
try {
|
|
347
|
-
if (n.includes("application/json") || n.includes("application/odata+json")) {
|
|
348
|
-
let t = Ue(await e.json());
|
|
349
|
-
if (t.length) return Error(t.join(" | "));
|
|
350
|
-
} else {
|
|
351
|
-
let r = He(await e.text());
|
|
352
|
-
if (r) {
|
|
353
|
-
if (Ie(n, r)) {
|
|
354
|
-
let n = K(r);
|
|
355
|
-
if (F(n)) return new I("Требуется повторная аутентификация", n);
|
|
356
|
-
let i = /* @__PURE__ */ Error("Unexpected HTML response from OData endpoint");
|
|
357
|
-
return Se(i, "fetch.buildHttpError", e, r, t), i;
|
|
358
|
-
}
|
|
359
|
-
return Error(r);
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
} catch {}
|
|
363
|
-
return /* @__PURE__ */ Error(`HTTP error: ${e.status} ${e.statusText}`);
|
|
364
|
-
}
|
|
365
|
-
function Ge(e) {
|
|
366
|
-
return e.type === "opaqueredirect";
|
|
367
|
-
}
|
|
368
|
-
async function Ke(e, t = {}, n = "odata") {
|
|
369
|
-
let r = t.method?.toUpperCase() || "GET", i = new Headers(t.headers), a = !["GET", "HEAD"].includes(r), o = d(t.body), s = V(e, n), c = H(e, n);
|
|
370
|
-
if (i.set("sap-language", "ru"), s && (i.set("sap-language", "ru"), i.set("sap-contextid-accept", "header")), c && i.set("sap-client", c), a && s) {
|
|
371
|
-
let t = await Fe(e, n, c);
|
|
372
|
-
i.set("x-csrf-token", t);
|
|
373
|
-
}
|
|
374
|
-
i.has("Accept") || i.set("Accept", "application/json"), o && a && !i.has("Content-Type") && i.set("Content-Type", "application/json");
|
|
375
|
-
let l = (n && j[n]) ?? "", u = typeof e == "string" ? e : e.toString(), f = await fetch(l + u, {
|
|
376
|
-
...t,
|
|
377
|
-
headers: i,
|
|
378
|
-
credentials: "include",
|
|
379
|
-
redirect: s ? "manual" : t.redirect
|
|
380
|
-
});
|
|
381
|
-
if (s && Ge(f)) throw new I("Требуется повторная аутентификация", void 0, l + u);
|
|
382
|
-
if ((f.status === 401 || f.status === 403) && a && s && !t.retried) {
|
|
383
|
-
let r = Pe(e, n, c);
|
|
384
|
-
L.delete(r.cacheKey), R.delete(r.cacheKey);
|
|
385
|
-
let a = await Fe(e, n, c), o = new Headers(i);
|
|
386
|
-
if (o.set("x-csrf-token", a), f = await fetch(l + u, {
|
|
387
|
-
...t,
|
|
388
|
-
headers: o,
|
|
389
|
-
credentials: "include",
|
|
390
|
-
redirect: "manual",
|
|
391
|
-
retried: !0
|
|
392
|
-
}), Ge(f)) throw new I("Требуется повторная аутентификация", void 0, l + u);
|
|
393
|
-
}
|
|
394
|
-
return f;
|
|
395
|
-
}
|
|
396
|
-
async function qe(e, t, n, r, i) {
|
|
397
|
-
if (!e.ok) throw e.status === 0 ? Error("Ошибка сети или CORS. Проверьте подключение и настройки сервера.") : await We(e, {
|
|
398
|
-
input: t,
|
|
399
|
-
init: n,
|
|
400
|
-
baseUrlType: r,
|
|
401
|
-
sapClient: i
|
|
402
|
-
});
|
|
403
|
-
return e;
|
|
404
|
-
}
|
|
405
|
-
async function Je(e, t = {}, n = "odata") {
|
|
406
|
-
let r = H(e, n);
|
|
407
|
-
return qe(await Ke(e, t, n), e, t, n, r);
|
|
408
|
-
}
|
|
409
|
-
async function Ye(e, t = {}, n = "odata") {
|
|
410
|
-
let r = V(e, n), i = H(e, n), a = () => Je(e, {
|
|
411
|
-
...t,
|
|
412
|
-
ssoRetried: !0
|
|
413
|
-
}, n);
|
|
414
|
-
r && await Ne();
|
|
415
|
-
let o;
|
|
416
|
-
try {
|
|
417
|
-
o = await Ke(e, t, n);
|
|
418
|
-
} catch (e) {
|
|
419
|
-
if (r && e instanceof I && e.recoverable && !t.ssoRetried) o = await W(e, a);
|
|
420
|
-
else throw e;
|
|
421
|
-
}
|
|
422
|
-
try {
|
|
423
|
-
return await qe(o, e, t, n, i);
|
|
424
|
-
} catch (o) {
|
|
425
|
-
if (r && o instanceof I && o.recoverable && !t.ssoRetried) return qe(await W(o, a), e, t, n, i);
|
|
426
|
-
throw o;
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
async function Xe(e, t = {}, n = "odata") {
|
|
430
|
-
let r = new Headers(t.headers);
|
|
431
|
-
r.set("DataServiceVersion", "2.0"), r.set("MaxDataServiceVersion", "2.0");
|
|
432
|
-
let i = {
|
|
433
|
-
...t,
|
|
434
|
-
headers: r
|
|
435
|
-
}, a = {
|
|
436
|
-
input: e,
|
|
437
|
-
init: t,
|
|
438
|
-
baseUrlType: n,
|
|
439
|
-
sapClient: H(e, n)
|
|
440
|
-
};
|
|
441
|
-
try {
|
|
442
|
-
return await Ve(await Ye(e, i, n), a);
|
|
443
|
-
} catch (r) {
|
|
444
|
-
if (V(e, n) && r instanceof I && r.recoverable && !t.ssoRetried) return W(r, async () => {
|
|
445
|
-
let t = {
|
|
446
|
-
...i,
|
|
447
|
-
ssoRetried: !0
|
|
448
|
-
};
|
|
449
|
-
return Ve(await Je(e, t, n), {
|
|
450
|
-
input: e,
|
|
451
|
-
init: t,
|
|
452
|
-
baseUrlType: n,
|
|
453
|
-
sapClient: H(e, n)
|
|
454
|
-
});
|
|
455
|
-
});
|
|
456
|
-
throw r;
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
function Ze(e, t) {
|
|
460
|
-
let n = t.init || {}, r = t.baseUrl, i = t.transform;
|
|
461
|
-
if (t.swCache) {
|
|
462
|
-
let e = new Headers(n.headers);
|
|
463
|
-
e.set("x-sw-cache", t.swCache), n.headers = e;
|
|
464
|
-
}
|
|
465
|
-
return async (t) => {
|
|
466
|
-
!n.signal && t?.signal && (n.signal = t.signal);
|
|
467
|
-
let a = await Ye(e, n, r);
|
|
468
|
-
if (typeof i != "function") throw Error("fetchQueryFn requires a transformation function!");
|
|
469
|
-
return await i(a);
|
|
470
|
-
};
|
|
471
|
-
}
|
|
472
|
-
//#endregion
|
|
473
|
-
//#region node_modules/@ryuzaki13/react-foundation-api/dist/chunks/odataFetchFn-D8PGKDZM.js
|
|
474
|
-
var J = ["odata"];
|
|
475
|
-
function Qe(e, t, n) {
|
|
476
|
-
n === void 0 || n === "" || e.set(t, String(n));
|
|
477
|
-
}
|
|
478
|
-
function $e(e, t = {}, n = {}) {
|
|
479
|
-
let [r, i = ""] = e.split("?"), a = new URLSearchParams(i);
|
|
480
|
-
if (t.expression) {
|
|
481
|
-
let e = C(t.expression);
|
|
482
|
-
e && a.set("$filter", e);
|
|
483
|
-
}
|
|
484
|
-
t.sorts && a.set("$orderby", w(t.sorts)), t.select && a.set("$select", t.select.join(",")), t.expand && a.set("$expand", t.expand.join(",")), Qe(a, "$top", t.top), Qe(a, "$skip", t.skip), Qe(a, "$inlinecount", t.inlinecount);
|
|
485
|
-
let o = r.replace(/\/+$/, ""), s = a.toString(), c = s ? `${o}?${s}` : o, l = n;
|
|
486
|
-
if (t.swCache) {
|
|
487
|
-
let e = new Headers(n.headers);
|
|
488
|
-
e.set("x-sw-cache", t.swCache), l = {
|
|
489
|
-
...n,
|
|
490
|
-
headers: e
|
|
491
|
-
};
|
|
492
|
-
}
|
|
493
|
-
return {
|
|
494
|
-
path: c,
|
|
495
|
-
fullUrl: `${j[t.baseUrl ?? "odata"]}${c}`,
|
|
496
|
-
baseUrl: t.baseUrl,
|
|
497
|
-
init: l,
|
|
498
|
-
queryString: s
|
|
499
|
-
};
|
|
500
|
-
}
|
|
501
|
-
async function Y(e, t = {}, n = {}) {
|
|
502
|
-
let r = $e(e, t, n);
|
|
503
|
-
return Xe(r.path, r.init, t.baseUrl);
|
|
504
|
-
}
|
|
505
|
-
var et = __APP_BUILD_ID__, tt = 1e3 * 60 * 60 * 24;
|
|
506
|
-
function nt(e) {
|
|
507
|
-
if (e) return Array.isArray(e) ? e[0] : e;
|
|
508
|
-
}
|
|
509
|
-
var rt = ({ service: e }) => [
|
|
510
|
-
...J,
|
|
511
|
-
"metadata-version",
|
|
512
|
-
{
|
|
513
|
-
service: e,
|
|
514
|
-
buildId: et
|
|
515
|
-
}
|
|
516
|
-
];
|
|
517
|
-
function it(e) {
|
|
518
|
-
return {
|
|
519
|
-
service: e,
|
|
520
|
-
changedAt: null,
|
|
521
|
-
version: null
|
|
522
|
-
};
|
|
523
|
-
}
|
|
524
|
-
function at(e) {
|
|
525
|
-
return async ({ signal: t }) => {
|
|
526
|
-
let n = k().metadataVersion;
|
|
527
|
-
if (!n) return it(e.service);
|
|
528
|
-
let r = m(nt((await Y(`/${n.service}/${n.target}('${se(e.service)}')`, { baseUrl: A(n.service, n.baseUrl) }, { signal: t })).data)?.lastChanged);
|
|
529
|
-
return {
|
|
530
|
-
service: e.service,
|
|
531
|
-
changedAt: r,
|
|
532
|
-
version: r ? p(r) : null
|
|
533
|
-
};
|
|
534
|
-
};
|
|
535
|
-
}
|
|
536
|
-
var ot = (e) => g({
|
|
537
|
-
queryKey: rt(e),
|
|
538
|
-
queryFn: at(e),
|
|
539
|
-
meta: y,
|
|
540
|
-
enabled: !!(e.service && k().metadataVersion),
|
|
541
|
-
staleTime: e.staleTime ?? tt,
|
|
542
|
-
gcTime: Infinity
|
|
543
|
-
});
|
|
544
|
-
function st(e, t) {
|
|
545
|
-
return e.invalidateQueries({ predicate: (e) => {
|
|
546
|
-
let [n, r, i] = e.queryKey;
|
|
547
|
-
return n !== J[0] || r !== "metadata" || !i || typeof i != "object" ? !1 : "service" in i && i.service === t;
|
|
548
|
-
} });
|
|
549
|
-
}
|
|
550
|
-
function ct(e, t) {
|
|
551
|
-
return e?.data === void 0 || !t.changedAt ? !1 : t.changedAt.getTime() > e.dataUpdatedAt;
|
|
552
|
-
}
|
|
553
|
-
function lt(e) {
|
|
554
|
-
return Ze(`/${e.service}/$metadata`, {
|
|
555
|
-
baseUrl: A(e.service, e.baseUrl),
|
|
556
|
-
init: { headers: {
|
|
557
|
-
Accept: "*/*",
|
|
558
|
-
"Content-Type": "application/xml"
|
|
559
|
-
} },
|
|
560
|
-
transform: async (t) => {
|
|
561
|
-
try {
|
|
562
|
-
return ee(await t.text());
|
|
563
|
-
} catch (t) {
|
|
564
|
-
throw Error(`Сервис ${e.service} содержит необработанную ошибку: ${String(t)}`);
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
});
|
|
568
|
-
}
|
|
569
|
-
var X = (e) => g({
|
|
570
|
-
queryKey: [
|
|
571
|
-
...J,
|
|
572
|
-
"metadata",
|
|
573
|
-
e
|
|
574
|
-
],
|
|
575
|
-
queryFn: lt(e),
|
|
576
|
-
meta: y,
|
|
577
|
-
enabled: !!e.service,
|
|
578
|
-
staleTime: Infinity,
|
|
579
|
-
gcTime: Infinity
|
|
580
|
-
});
|
|
581
|
-
async function ut(e, t, n) {
|
|
582
|
-
if (!t.service) return;
|
|
583
|
-
let r = X(t).queryKey;
|
|
584
|
-
ct(e.getQueryState(r), n) && await st(e, t.service);
|
|
585
|
-
}
|
|
586
|
-
function dt(e) {
|
|
587
|
-
let t = v(), n = i(() => ({
|
|
588
|
-
service: e.service,
|
|
589
|
-
baseUrl: e.baseUrl
|
|
590
|
-
}), [e.baseUrl, e.service]), a = _(ot(i(() => ({ service: e.service }), [e.service]))), o = _(X(n));
|
|
591
|
-
return r(() => {
|
|
592
|
-
!e.service || !a.isSuccess || ut(t, n, a.data);
|
|
593
|
-
}, [
|
|
594
|
-
n,
|
|
595
|
-
o.dataUpdatedAt,
|
|
596
|
-
e.service,
|
|
597
|
-
t,
|
|
598
|
-
a.data,
|
|
599
|
-
a.isSuccess
|
|
600
|
-
]), o;
|
|
601
|
-
}
|
|
602
|
-
async function ft(e, t) {
|
|
603
|
-
let n = { service: e.service };
|
|
604
|
-
try {
|
|
605
|
-
await ut(t, e, await t.fetchQuery(ot(n)));
|
|
606
|
-
} catch {}
|
|
607
|
-
}
|
|
608
|
-
async function pt(e, t) {
|
|
609
|
-
if (e.service) return await t.fetchQuery(X(e)), await ft(e, t), t.fetchQuery(X(e));
|
|
610
|
-
}
|
|
611
|
-
function Z(e) {
|
|
612
|
-
return "returnType" in e;
|
|
613
|
-
}
|
|
614
|
-
function mt(e, t) {
|
|
615
|
-
let n = e?.entities[t], r = e?.functionImports[t];
|
|
616
|
-
if (n && r) throw Error(`Найден конфликт metadata: '${t}' существует и как Entity, и как FunctionImport`);
|
|
617
|
-
if (n) return n;
|
|
618
|
-
if (r) return r;
|
|
619
|
-
throw Error(`OData target '${t}' не был загружен`);
|
|
620
|
-
}
|
|
621
|
-
function ht(e, t, n) {
|
|
622
|
-
if (Z(e)) {
|
|
623
|
-
if (t !== "fi") throw Error(`OData operation '${t}' несовместима с FunctionImport '${e.name}'. Для FunctionImport используйте method: 'fi'.`);
|
|
624
|
-
return;
|
|
625
|
-
}
|
|
626
|
-
if (t === "fi") throw Error(`OData operation 'fi' несовместима с Entity '${n.target}'. Для Entity используйте один из методов: 'create', 'update', 'delete', 'read', 'query', 'fm'.`);
|
|
627
|
-
if (t === "read" && e.result) throw Error(`OData operation '${t}' несовместима с parameterized query entity '${n.target}'. Для target с result='${e.result}' используйте method: 'query'.`);
|
|
628
|
-
}
|
|
629
|
-
function gt(e, t) {
|
|
630
|
-
if (t === "create") return "POST";
|
|
631
|
-
if (t === "update") return "PUT";
|
|
632
|
-
if (t === "delete") return "DELETE";
|
|
633
|
-
if (t === "read" || t === "query") return "GET";
|
|
634
|
-
if (Z(e)) {
|
|
635
|
-
if (!e.httpMethod) throw Error(`FunctionImport '${e.name}' не содержит httpMethod в metadata, поэтому operation 'fi' выполнить нельзя.`);
|
|
636
|
-
return e.httpMethod;
|
|
637
|
-
}
|
|
638
|
-
throw Error(`OData operation '${t}' не поддерживается для target '${"title" in e ? e.title : "unknown"}'.`);
|
|
639
|
-
}
|
|
640
|
-
function _t(e, t) {
|
|
641
|
-
if (e && (t === "create" || t === "update")) return JSON.stringify(e);
|
|
642
|
-
}
|
|
643
|
-
function vt(e, t, n, r) {
|
|
644
|
-
if (Z(e)) return S(e, t, n);
|
|
645
|
-
if (r === "fi") throw Error(`OData operation 'fi' несовместима с Entity '${t.target}'.`);
|
|
646
|
-
return b(e, t, n, r);
|
|
647
|
-
}
|
|
648
|
-
function yt(e, t) {
|
|
649
|
-
if (!Z(e)) return e.columns;
|
|
650
|
-
if (e.resultEntity) return t.entities[e.resultEntity]?.columns;
|
|
651
|
-
}
|
|
652
|
-
function bt(e) {
|
|
653
|
-
let t = [];
|
|
654
|
-
for (let n = 0; n < e.length; n += 1) {
|
|
655
|
-
let r = e[n];
|
|
656
|
-
t.push({
|
|
657
|
-
id: r.id,
|
|
658
|
-
type: r.type,
|
|
659
|
-
abapBooleanLike: r.abapBooleanLike
|
|
660
|
-
});
|
|
661
|
-
}
|
|
662
|
-
return t;
|
|
663
|
-
}
|
|
664
|
-
function xt(e, t) {
|
|
665
|
-
let n;
|
|
666
|
-
for (let r = 0; r < t.length; r += 1) {
|
|
667
|
-
let i = t[r];
|
|
668
|
-
if (!Object.prototype.hasOwnProperty.call(e, i.id)) continue;
|
|
669
|
-
let a = e[i.id], o = T(i, a);
|
|
670
|
-
o !== a && (n ||= { ...e }, n[i.id] = o);
|
|
671
|
-
}
|
|
672
|
-
return n ?? e;
|
|
673
|
-
}
|
|
674
|
-
function St(e, t, n) {
|
|
675
|
-
let r = yt(t, n);
|
|
676
|
-
if (!r?.length) return e;
|
|
677
|
-
let i = bt(r);
|
|
678
|
-
if (Array.isArray(e)) {
|
|
679
|
-
let t;
|
|
680
|
-
for (let n = 0; n < e.length; n += 1) {
|
|
681
|
-
let r = e[n];
|
|
682
|
-
if (!u(r)) continue;
|
|
683
|
-
let a = xt(r, i);
|
|
684
|
-
a !== r && (t ||= e.slice(), t[n] = a);
|
|
685
|
-
}
|
|
686
|
-
return t ?? e;
|
|
687
|
-
}
|
|
688
|
-
return u(e) ? xt(e, i) : e;
|
|
689
|
-
}
|
|
690
|
-
function Ct(...e) {
|
|
691
|
-
let [t, n] = e, { odata: r, options: i = {}, init: a = {}, autoParse: o, swCache: s } = n, c = "params" in n ? n.params ?? {} : {};
|
|
692
|
-
return async ({ client: e, signal: l }) => {
|
|
693
|
-
let u = A(r.service, i.baseUrl), d = await pt({
|
|
694
|
-
service: r.service,
|
|
695
|
-
baseUrl: u
|
|
696
|
-
}, e);
|
|
697
|
-
if (!d) throw Error(`Не удалось загрузить metadata OData-сервиса '${r.service}'`);
|
|
698
|
-
let f = mt(d, r.target);
|
|
699
|
-
ht(f, t, r);
|
|
700
|
-
let p = "body" in n ? _t(n.body, t) : void 0, m = gt(f, t);
|
|
701
|
-
__DEV__ && t === "query" && !("result" in f) && Object.keys(c).length > 0 && console.warn(`OData query для plain entity "${r.service}/${r.target}" получил params, но они будут проигнорированы. Для чтения сущности по ключу используйте odataReadFn.`);
|
|
702
|
-
let h = vt(f, r, c, t), g = s ? {
|
|
703
|
-
...i,
|
|
704
|
-
baseUrl: u,
|
|
705
|
-
swCache: s
|
|
706
|
-
} : {
|
|
707
|
-
...i,
|
|
708
|
-
baseUrl: u
|
|
709
|
-
}, _ = {
|
|
710
|
-
...a,
|
|
711
|
-
method: m,
|
|
712
|
-
body: p,
|
|
713
|
-
signal: l
|
|
714
|
-
};
|
|
715
|
-
if (t === "query") {
|
|
716
|
-
let e = await Y(h, g, _);
|
|
717
|
-
if (Be(e)) throw Error("OData query не должен возвращать 204 No Content");
|
|
718
|
-
let t = o ? St(e.data, f, d) : e.data;
|
|
719
|
-
return {
|
|
720
|
-
data: n.transform ? n.transform(t, f) : t,
|
|
721
|
-
totalCount: e.totalCount
|
|
722
|
-
};
|
|
723
|
-
}
|
|
724
|
-
let v = await Y(h, g, _);
|
|
725
|
-
if (Be(v)) return { data: v.data };
|
|
726
|
-
let y = o ? St(v.data, f, d) : v.data;
|
|
727
|
-
return {
|
|
728
|
-
data: n.transform ? n.transform(y, f) : y,
|
|
729
|
-
totalCount: v.totalCount
|
|
730
|
-
};
|
|
731
|
-
};
|
|
732
|
-
}
|
|
733
|
-
function wt(e) {
|
|
734
|
-
return Ct("query", e);
|
|
735
|
-
}
|
|
736
|
-
//#endregion
|
|
737
|
-
//#region node_modules/@ryuzaki13/react-foundation-api/dist/odata/index.js
|
|
738
|
-
var Tt = () => [...J, "collection"], Q = ({ service: e, target: t, limitedKeys: n, serverFilter: r }) => [...Tt(), {
|
|
739
|
-
service: e,
|
|
740
|
-
target: t,
|
|
741
|
-
limitedKeys: n,
|
|
742
|
-
serverFilter: r
|
|
743
|
-
}];
|
|
744
|
-
function Et(e) {
|
|
745
|
-
let t = [];
|
|
746
|
-
for (let [n, r] of e.entries()) {
|
|
747
|
-
let e = `${r.odata.service}.${r.odata.target}`;
|
|
748
|
-
for (let [i, [a, o]] of Object.entries(r.segments).entries()) t.push({
|
|
749
|
-
id: a,
|
|
750
|
-
serviceKey: e,
|
|
751
|
-
serviceIndex: n,
|
|
752
|
-
segmentIndex: i,
|
|
753
|
-
odata: r.odata,
|
|
754
|
-
segment: o,
|
|
755
|
-
model: {
|
|
756
|
-
...r.model,
|
|
757
|
-
codeKey: a
|
|
758
|
-
},
|
|
759
|
-
panelVisibility: o.panelVisibility ?? "user"
|
|
760
|
-
});
|
|
761
|
-
}
|
|
762
|
-
return t;
|
|
763
|
-
}
|
|
764
|
-
function Dt(e, t, n) {
|
|
765
|
-
let r = /* @__PURE__ */ new Map();
|
|
766
|
-
for (let [e, n] of Object.entries(t)) r.set(e, new Map(n.map((e, t) => [e.codeKey, t])));
|
|
767
|
-
let i = [...e].map((e, t) => ({
|
|
768
|
-
item: e,
|
|
769
|
-
index: t
|
|
770
|
-
})).sort((e, t) => {
|
|
771
|
-
if (e.item.serviceIndex !== t.item.serviceIndex) return e.item.serviceIndex - t.item.serviceIndex;
|
|
772
|
-
let n = r.get(e.item.serviceKey), i = n?.get(e.item.id), a = n?.get(t.item.id);
|
|
773
|
-
return i !== void 0 && a !== void 0 ? i - a : i === void 0 ? a === void 0 ? e.item.segmentIndex === t.item.segmentIndex ? e.index - t.index : e.item.segmentIndex - t.item.segmentIndex : 1 : -1;
|
|
774
|
-
});
|
|
775
|
-
if (!n?.length) return i.map(({ item: e }) => e);
|
|
776
|
-
let a = new Set(i.map(({ item: e }) => e.id)), o = [...new Set(n)].filter((e) => a.has(e));
|
|
777
|
-
if (o.length === 0) return i.map(({ item: e }) => e);
|
|
778
|
-
let s = new Map(o.map((e, t) => [e, t]));
|
|
779
|
-
return [...i].sort((e, t) => {
|
|
780
|
-
let n = s.get(e.item.id), r = s.get(t.item.id);
|
|
781
|
-
return n !== void 0 && r !== void 0 ? n - r : n === void 0 ? r === void 0 ? e.index - t.index : 1 : -1;
|
|
782
|
-
}).map(({ item: e }) => e);
|
|
783
|
-
}
|
|
784
|
-
async function Ot(e) {
|
|
785
|
-
let { url: t, query: n, signal: r } = e;
|
|
786
|
-
try {
|
|
787
|
-
let e = await Y(t, n, { signal: r });
|
|
788
|
-
if (Be(e)) throw Error("отсутствует тело ответа");
|
|
789
|
-
return { items: e.data.map(({ ID: e, CNT: t, __metadata: n, __Parameters: r, ...i }) => i) };
|
|
790
|
-
} catch (e) {
|
|
791
|
-
return c("Ошибка загрузки справочника:", e), { items: [] };
|
|
792
|
-
}
|
|
793
|
-
}
|
|
794
|
-
var kt = __APP_BUILD_ID__, At = 1e3 * 60 * 60 * 4, jt = 1e3 * 60 * 60 * 24 * 7, Mt = "ttl=forever;name=ref", Nt = "bust=forever;name=ref", Pt = "ttl=4h;name=ref-updates", Ft = () => [
|
|
795
|
-
...J,
|
|
796
|
-
"collection-updates",
|
|
797
|
-
{ buildId: kt }
|
|
798
|
-
];
|
|
799
|
-
function It(e) {
|
|
800
|
-
return {
|
|
801
|
-
...e,
|
|
802
|
-
lastChangedAt: m(e.lastChanged)
|
|
803
|
-
};
|
|
804
|
-
}
|
|
805
|
-
function Lt(e, t) {
|
|
806
|
-
let n = e.map(It);
|
|
807
|
-
return {
|
|
808
|
-
items: n,
|
|
809
|
-
byEntityName: n.reduce((e, t) => (t.entityName && (e[t.entityName] = t), e), {}),
|
|
810
|
-
fetchedAt: t,
|
|
811
|
-
coverageStartedAt: t - jt
|
|
812
|
-
};
|
|
813
|
-
}
|
|
814
|
-
function Rt() {
|
|
815
|
-
return async ({ signal: e }) => {
|
|
816
|
-
let t = Date.now(), n = k().collectionUpdates;
|
|
817
|
-
return n ? Lt((await Y(`/${n.service}/${n.target}`, {
|
|
818
|
-
baseUrl: A(n.service, n.baseUrl),
|
|
819
|
-
swCache: Pt
|
|
820
|
-
}, { signal: e })).data, Math.max(t, Date.now())) : Lt([], t);
|
|
821
|
-
};
|
|
822
|
-
}
|
|
823
|
-
var zt = (e = {}) => g({
|
|
824
|
-
queryKey: Ft(),
|
|
825
|
-
queryFn: Rt(),
|
|
826
|
-
meta: y,
|
|
827
|
-
enabled: !!k().collectionUpdates,
|
|
828
|
-
staleTime: e.staleTime ?? At,
|
|
829
|
-
gcTime: Infinity
|
|
830
|
-
});
|
|
831
|
-
function Bt(e = {}) {
|
|
832
|
-
return _(zt(e));
|
|
833
|
-
}
|
|
834
|
-
function Vt(e) {
|
|
835
|
-
let { data: t, dataUpdatedAt: n = 0, isLoading: r, isError: i } = dt({ service: e.service }), a = t?.entities[e.target];
|
|
836
|
-
if (!r && !a && t?.functionImports[e.target]) throw Error(`OData target '${e.target}' является FunctionImport и не может использоваться как сущность`);
|
|
837
|
-
if (i) throw Error(`Ошибка загрузки метаданных сервиса ${e.service}`);
|
|
838
|
-
return {
|
|
839
|
-
metadata: a,
|
|
840
|
-
metadataUpdatedAt: n,
|
|
841
|
-
isLoading: r
|
|
842
|
-
};
|
|
843
|
-
}
|
|
844
|
-
var $ = "Использование actions недопустимо до окончания загрузки metadata";
|
|
845
|
-
function Ht(e) {
|
|
846
|
-
let { metadata: t, metadataUpdatedAt: n, isLoading: r } = Vt(e);
|
|
847
|
-
return {
|
|
848
|
-
config: e,
|
|
849
|
-
metadata: t,
|
|
850
|
-
metadataUpdatedAt: n,
|
|
851
|
-
isLoading: r,
|
|
852
|
-
actions: i(() => ({
|
|
853
|
-
getEntityPath: (n = {}) => {
|
|
854
|
-
if (!t) throw Error($);
|
|
855
|
-
return x(t, e, n);
|
|
856
|
-
},
|
|
857
|
-
getKeys: () => {
|
|
858
|
-
if (!t) throw Error($);
|
|
859
|
-
return t.columns?.map((e) => e.id);
|
|
860
|
-
},
|
|
861
|
-
getKeyPairs: () => {
|
|
862
|
-
if (!t) throw Error($);
|
|
863
|
-
return t.columns?.filter((e) => e.semanticType === "code" && e.linkedColumnId).map((e) => ({
|
|
864
|
-
codeKey: e.id,
|
|
865
|
-
textKey: e.linkedColumnId
|
|
866
|
-
}));
|
|
867
|
-
},
|
|
868
|
-
getKeyPairsMap: () => {
|
|
869
|
-
if (!t) throw Error($);
|
|
870
|
-
let e = {};
|
|
871
|
-
for (let n of t.columns ?? []) n.semanticType === "code" && n.linkedColumnId && (e[n.id] = n.linkedColumnId);
|
|
872
|
-
return e;
|
|
873
|
-
}
|
|
874
|
-
}), [e, t])
|
|
875
|
-
};
|
|
876
|
-
}
|
|
877
|
-
function Ut(e, t) {
|
|
878
|
-
if (!t) return e;
|
|
879
|
-
let n = e.trim().toLowerCase();
|
|
880
|
-
return n === "off" || n.startsWith("bust=") ? e : n.startsWith("ttl=") ? e.replace(/^\s*ttl=/i, "bust=") : Nt;
|
|
881
|
-
}
|
|
882
|
-
function Wt(e) {
|
|
883
|
-
return typeof e == "number" && Number.isFinite(e) && e > 0;
|
|
884
|
-
}
|
|
885
|
-
function Gt(e, t) {
|
|
886
|
-
let n = t?.cacheUpdatedAt ?? 0, r = e.update?.lastChangedAt?.getTime();
|
|
887
|
-
return !!(Wt(r) && (!t || !n || r > n) || Wt(e.metadataUpdatedAt) && (!t || !n || e.metadataUpdatedAt > n) || Wt(e.updatesCoverageStartedAt) && (!t || !n || n < e.updatesCoverageStartedAt));
|
|
888
|
-
}
|
|
889
|
-
function Kt(e) {
|
|
890
|
-
let { service: t, target: n, limitedKeys: a, excludeEmpty: o, sortByCode: s, serverFilter: c, clientFilter: l, swCache: u = Mt } = e, d = v(), { actions: f, metadata: p, metadataUpdatedAt: m, isLoading: h } = Ht(e), g = Bt(), b = i(() => Q({
|
|
891
|
-
service: t,
|
|
892
|
-
target: n,
|
|
893
|
-
limitedKeys: a,
|
|
894
|
-
serverFilter: c
|
|
895
|
-
}), [
|
|
896
|
-
t,
|
|
897
|
-
n,
|
|
898
|
-
a,
|
|
899
|
-
c
|
|
900
|
-
]), x = d.getQueryData(b), S = g.data?.byEntityName[n], C = Gt({
|
|
901
|
-
update: S,
|
|
902
|
-
metadataUpdatedAt: m,
|
|
903
|
-
updatesCoverageStartedAt: g.data?.coverageStartedAt
|
|
904
|
-
}, x), w = Ut(u, C), T = g.isError || g.isSuccess && !g.isFetching;
|
|
905
|
-
return r(() => {
|
|
906
|
-
!x || !C || d.invalidateQueries({ queryKey: b });
|
|
907
|
-
}, [
|
|
908
|
-
x,
|
|
909
|
-
d,
|
|
910
|
-
b,
|
|
911
|
-
C
|
|
912
|
-
]), _({
|
|
913
|
-
queryKey: b,
|
|
914
|
-
queryFn: async ({ signal: e }) => {
|
|
915
|
-
let r = Date.now(), i = a ? [...a] : f.getKeys(), u = f.getKeyPairs(), d = f.getKeyPairsMap();
|
|
916
|
-
if (a) for (let e of a) {
|
|
917
|
-
let t = d[e];
|
|
918
|
-
t && !i.includes(t) && i.push(t);
|
|
919
|
-
}
|
|
920
|
-
let { items: p } = await Ot({
|
|
921
|
-
url: `/${t}/${n}`,
|
|
922
|
-
query: {
|
|
923
|
-
select: i,
|
|
924
|
-
expression: c,
|
|
925
|
-
swCache: w
|
|
926
|
-
},
|
|
927
|
-
signal: e
|
|
928
|
-
}), h = p;
|
|
929
|
-
l && (h = p.filter(l));
|
|
930
|
-
let g = te(h, u, o, s), _ = u.map((e) => ({
|
|
931
|
-
codeKey: e.codeKey,
|
|
932
|
-
count: g[e.codeKey].length
|
|
933
|
-
})).sort((e, t) => e.count - t.count);
|
|
934
|
-
return {
|
|
935
|
-
items: h,
|
|
936
|
-
keyPairs: u,
|
|
937
|
-
keyPairsMap: d,
|
|
938
|
-
separated: g,
|
|
939
|
-
chain: _,
|
|
940
|
-
count: h.length,
|
|
941
|
-
cacheUpdatedAt: Math.max(r, Date.now(), S?.lastChangedAt?.getTime() ?? 0, m)
|
|
942
|
-
};
|
|
943
|
-
},
|
|
944
|
-
enabled: !!(!h && p && t && n && T),
|
|
945
|
-
meta: y,
|
|
946
|
-
staleTime: 1e3 * 60 * 60 * 2,
|
|
947
|
-
gcTime: 1e3 * 60 * 60 * 1
|
|
948
|
-
});
|
|
949
|
-
}
|
|
950
|
-
function qt({ odata: e, model: t, pageSize: r = 50 }) {
|
|
951
|
-
let { codeKey: s, maxVisibleItems: c } = t, { data: l, isLoading: u, isError: d, refetch: f } = Kt(e), p = l?.keyPairsMap[s] ?? "", m = v(), [h, g] = o(), _ = a(/* @__PURE__ */ new Map()), { itemsMap: y, separatedItems: b, orderedKeys: x } = i(() => {
|
|
952
|
-
let e = /* @__PURE__ */ new Map(), t = [], n = [];
|
|
953
|
-
if (l && l.separated[s]) {
|
|
954
|
-
n = l.separated[s];
|
|
955
|
-
for (let r of n) {
|
|
956
|
-
let n = r[s];
|
|
957
|
-
n && (e.set(n, r), t.push(n));
|
|
958
|
-
}
|
|
959
|
-
}
|
|
960
|
-
return {
|
|
961
|
-
itemsMap: e,
|
|
962
|
-
separatedItems: n,
|
|
963
|
-
orderedKeys: t
|
|
964
|
-
};
|
|
965
|
-
}, [l, s]), S = n((e) => {
|
|
966
|
-
let t = l?.separated[s];
|
|
967
|
-
if (!t) return /* @__PURE__ */ new Map();
|
|
968
|
-
let n = /* @__PURE__ */ new Map();
|
|
969
|
-
for (let r of t) {
|
|
970
|
-
let t = r[e]?.toLowerCase();
|
|
971
|
-
if (t) for (let e = 1; e <= Math.min(5, t.length); e++) {
|
|
972
|
-
let i = t.substring(0, e);
|
|
973
|
-
n.has(i) || n.set(i, /* @__PURE__ */ new Set()), n.get(i).add(r[s]);
|
|
974
|
-
}
|
|
975
|
-
}
|
|
976
|
-
return n;
|
|
977
|
-
}, [l, s]), C = n((e) => {
|
|
978
|
-
g(() => {
|
|
979
|
-
if (e?.length) return new Set(e.map((e) => e[s]));
|
|
980
|
-
});
|
|
981
|
-
}, [s]), w = n((e, t) => {
|
|
982
|
-
if (!x.length) return [];
|
|
983
|
-
let n = c, r = /* @__PURE__ */ new Set(), i = [];
|
|
984
|
-
if (t?.length) for (let e = 0; e < t.length; e++) r.add(t[e][s]);
|
|
985
|
-
let a = 0, o = h && h.size > 0;
|
|
986
|
-
for (let t of x) {
|
|
987
|
-
if (a >= n) break;
|
|
988
|
-
let c = y.get(t);
|
|
989
|
-
if (!c || r.size > 0 && r.has(t)) continue;
|
|
990
|
-
let l = c[s];
|
|
991
|
-
o && !h.has(l) || e && !e(l, c[p]) || (i.push(c), a++);
|
|
992
|
-
}
|
|
993
|
-
return i;
|
|
994
|
-
}, [
|
|
995
|
-
x,
|
|
996
|
-
c,
|
|
997
|
-
s,
|
|
998
|
-
y,
|
|
999
|
-
h,
|
|
1000
|
-
p
|
|
1001
|
-
]), T = n((e) => {
|
|
1002
|
-
let t = l?.separated[s] || [], n = e * r, i = n + r;
|
|
1003
|
-
return t.slice(n, i);
|
|
1004
|
-
}, [
|
|
1005
|
-
l,
|
|
1006
|
-
r,
|
|
1007
|
-
s
|
|
1008
|
-
]), ee = n((e, t) => {
|
|
1009
|
-
if (!l) return [];
|
|
1010
|
-
let n = new Set(t);
|
|
1011
|
-
return l.items.filter((t) => n.has(t[e]));
|
|
1012
|
-
}, [l]), te = n((e, t, n = 200) => {
|
|
1013
|
-
_.current.has(e) && clearTimeout(_.current.get(e));
|
|
1014
|
-
let r = setTimeout(t, n);
|
|
1015
|
-
_.current.set(e, r);
|
|
1016
|
-
}, []), E = n(() => {
|
|
1017
|
-
for (let e of _.current.values()) clearTimeout(e);
|
|
1018
|
-
_.current.clear();
|
|
1019
|
-
}, []);
|
|
1020
|
-
return i(() => () => {
|
|
1021
|
-
E();
|
|
1022
|
-
}, [E]), {
|
|
1023
|
-
data: l,
|
|
1024
|
-
isLoading: u,
|
|
1025
|
-
isError: d,
|
|
1026
|
-
codeKey: s,
|
|
1027
|
-
textKey: p,
|
|
1028
|
-
getItems: w,
|
|
1029
|
-
findSourceItemsByKeys: ee,
|
|
1030
|
-
setFilteredItems: C,
|
|
1031
|
-
getPage: T,
|
|
1032
|
-
buildSearchIndex: S,
|
|
1033
|
-
debounce: te,
|
|
1034
|
-
itemsMap: y,
|
|
1035
|
-
separatedItems: b,
|
|
1036
|
-
orderedKeys: x,
|
|
1037
|
-
refetch: f,
|
|
1038
|
-
invalidate: () => m.invalidateQueries({ queryKey: Q(e) }),
|
|
1039
|
-
totalCount: l?.separated[s]?.length || 0,
|
|
1040
|
-
pageSize: r
|
|
1041
|
-
};
|
|
1042
|
-
}
|
|
1043
|
-
function Jt(e) {
|
|
1044
|
-
let t = v(), [n, a] = o({}), s = i(() => e.map((e) => Q(e)), [e]);
|
|
1045
|
-
return r(() => {
|
|
1046
|
-
function n() {
|
|
1047
|
-
let n = {};
|
|
1048
|
-
for (let r of e) {
|
|
1049
|
-
let e = Q(r), i = t.getQueryData(e);
|
|
1050
|
-
i?.chain && (n[`${r.service}.${r.target}`] = i.chain);
|
|
1051
|
-
}
|
|
1052
|
-
a((e) => Object.keys(e).length === Object.keys(n).length && Object.entries(n).every(([t, n]) => e[t] === n) ? e : n);
|
|
1053
|
-
}
|
|
1054
|
-
return n(), t.getQueryCache().subscribe((e) => {
|
|
1055
|
-
if (e?.query) {
|
|
1056
|
-
let t = e.query;
|
|
1057
|
-
s.some((e) => JSON.stringify(e) === JSON.stringify(t.queryKey)) && n();
|
|
1058
|
-
}
|
|
1059
|
-
});
|
|
1060
|
-
}, [
|
|
1061
|
-
e,
|
|
1062
|
-
t,
|
|
1063
|
-
s
|
|
1064
|
-
]), n;
|
|
1065
|
-
}
|
|
1066
|
-
function Yt(e) {
|
|
1067
|
-
let [t] = o(() => {
|
|
1068
|
-
let t = E.getState(), { codeKey: n, maxVisibleItems: r = t.defaultMaxVisibleItems, minSearchCodeLength: i = t.defaultMinSearchCodeLength, minSearchTextLength: a = t.defaultMinSearchTextLength, searchDebounceDelay: o = t.defaultSearchDebounceDelay } = e;
|
|
1069
|
-
return {
|
|
1070
|
-
codeKey: n,
|
|
1071
|
-
maxVisibleItems: r,
|
|
1072
|
-
minSearchCodeLength: i,
|
|
1073
|
-
minSearchTextLength: a,
|
|
1074
|
-
searchDebounceDelay: o
|
|
1075
|
-
};
|
|
1076
|
-
});
|
|
1077
|
-
return t;
|
|
1078
|
-
}
|
|
1079
|
-
function Xt(e, t) {
|
|
1080
|
-
let n = {}, r = (e) => {
|
|
1081
|
-
for (let i of e) {
|
|
1082
|
-
if ("columns" in i && Array.isArray(i.columns) && i.columns.length > 0) {
|
|
1083
|
-
r(i.columns);
|
|
1084
|
-
continue;
|
|
1085
|
-
}
|
|
1086
|
-
let e = ae(i);
|
|
1087
|
-
!e || !(e in t) || (n[e] = t[e]);
|
|
1088
|
-
}
|
|
1089
|
-
};
|
|
1090
|
-
return r(e), n;
|
|
1091
|
-
}
|
|
1092
|
-
function Zt(e) {
|
|
1093
|
-
let { metadata: t, isLoading: n } = Vt(e);
|
|
1094
|
-
return {
|
|
1095
|
-
columns: i(() => t ? e.mode === "build" ? re(t.columns, {
|
|
1096
|
-
resolveHeader: e.resolveHeader,
|
|
1097
|
-
resolveFormatting: e.resolveFormatting
|
|
1098
|
-
}) : ie(e.columns, t.columns) : e.mode === "build" ? [] : [...e.columns], [e, t]),
|
|
1099
|
-
defaultColumnVisibility: i(() => {
|
|
1100
|
-
if (!t) return;
|
|
1101
|
-
if (e.mode === "build") return ne(t.columns, { resolveVisible: e.resolveVisible });
|
|
1102
|
-
let n = ne(t.columns);
|
|
1103
|
-
return Xt(e.columns, n);
|
|
1104
|
-
}, [e, t]),
|
|
1105
|
-
metadata: t,
|
|
1106
|
-
isLoading: n
|
|
1107
|
-
};
|
|
1108
|
-
}
|
|
1109
|
-
//#endregion
|
|
1110
|
-
//#region src/select/SelectOptionContent.tsx
|
|
1111
|
-
function Qt({ label: n, code: r, highlight: i }) {
|
|
1112
|
-
return /* @__PURE__ */ oe("div", {
|
|
1113
|
-
className: t.uiOptionBase,
|
|
1114
|
-
children: [/* @__PURE__ */ D("div", {
|
|
1115
|
-
className: s(t.uiOptionText, "flexEllipsis"),
|
|
1116
|
-
children: /* @__PURE__ */ D(e, {
|
|
1117
|
-
text: n,
|
|
1118
|
-
highlight: i
|
|
1119
|
-
})
|
|
1120
|
-
}), r && /* @__PURE__ */ D("div", {
|
|
1121
|
-
className: t.uiOptionCode,
|
|
1122
|
-
children: /* @__PURE__ */ D(e, {
|
|
1123
|
-
text: r,
|
|
1124
|
-
highlight: i
|
|
1125
|
-
})
|
|
1126
|
-
})]
|
|
1127
|
-
});
|
|
1128
|
-
}
|
|
1129
|
-
//#endregion
|
|
1130
|
-
export { Dt as a, wt as c, Et as i, Zt as n, Yt as o, Jt as r, qt as s, Qt as t };
|
|
1131
|
-
|
|
1132
|
-
//# sourceMappingURL=SelectOptionContent-lfEtHXfO.js.map
|