@ryuzaki13/react-foundation-api 1.1.1 → 1.1.2
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/adt/index.js +1 -1
- package/dist/chunks/{fetch-3O2E2pQ9.js → fetch-CPEFkAcU.js} +64 -63
- package/dist/chunks/{fetch-3O2E2pQ9.js.map → fetch-CPEFkAcU.js.map} +1 -1
- package/dist/chunks/{odataFetchFn-BS26nUg7.js → odataFetchFn-D8PGKDZM.js} +7 -5
- package/dist/chunks/{odataFetchFn-BS26nUg7.js.map → odataFetchFn-D8PGKDZM.js.map} +1 -1
- package/dist/odata/index.js +216 -108
- package/dist/odata/index.js.map +1 -1
- package/dist/persisted/index.js +1 -1
- package/dist/transport/index.js +1 -1
- package/package.json +1 -1
package/dist/odata/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { C as e, S as t, _ as n, a as r, b as i, c as a, d as o, f as s, g as c, h as l, i as u, l as d, m as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y, v as b, w as x, x as S, y as C } from "../chunks/fetch-
|
|
2
|
-
import {
|
|
3
|
-
import { logError as
|
|
4
|
-
import { parseDate as
|
|
5
|
-
import { compareStrings as
|
|
6
|
-
import { useCallback as
|
|
7
|
-
import { queryOptions as
|
|
8
|
-
import { buildSeparatedArrays as
|
|
9
|
-
import { persistedQueryMeta as
|
|
10
|
-
import { buildEntityPath as
|
|
11
|
-
import { createTableColumnVisibilityFromODataMetadata as
|
|
12
|
-
import "@ryuzaki13/react-foundation-lib/notifications";
|
|
1
|
+
import { C as e, S as t, _ as n, a as r, b as i, c as a, d as o, f as s, g as c, h as l, i as u, l as d, m as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y, v as b, w as x, x as S, y as C } from "../chunks/fetch-CPEFkAcU.js";
|
|
2
|
+
import { S as ee, _ as te, a as ne, b as re, c as ie, d as ae, f as oe, g as se, h as ce, i as le, l as ue, m as de, n as fe, o as pe, p as me, r as w, s as he, t as ge, u as _e, v as T, x as E, y as ve } from "../chunks/odataFetchFn-D8PGKDZM.js";
|
|
3
|
+
import { logError as ye } from "@ryuzaki13/react-foundation-lib/utils";
|
|
4
|
+
import { parseDate as be } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
5
|
+
import { compareStrings as xe } from "@ryuzaki13/react-foundation-lib/string-comparison";
|
|
6
|
+
import { useCallback as D, useEffect as Se, useMemo as O, useRef as Ce, useState as k } from "react";
|
|
7
|
+
import { queryOptions as we, useQuery as A, useQueryClient as j } from "@tanstack/react-query";
|
|
8
|
+
import { buildSeparatedArrays as Te, useODataCollectionStore as Ee } from "@ryuzaki13/react-foundation-lib/odata";
|
|
9
|
+
import { persistedQueryMeta as M } from "@ryuzaki13/react-foundation-lib/query-client";
|
|
10
|
+
import { buildEntityPath as De } from "@ryuzaki13/react-foundation-lib/odata-service";
|
|
11
|
+
import { createTableColumnVisibilityFromODataMetadata as N, createTableColumnsFromODataMetadata as Oe, enrichTableColumnsWithODataFormatting as ke, resolveStableColumnId as Ae } from "@ryuzaki13/react-foundation-lib/table";
|
|
12
|
+
import { notify as je } from "@ryuzaki13/react-foundation-lib/notifications";
|
|
13
13
|
//#region src/odata/createODataCollectionQueryKey.ts
|
|
14
|
-
var
|
|
14
|
+
var P = () => [...ee, "collection"], F = ({ service: e, target: t, limitedKeys: n, serverFilter: r }) => [...P(), {
|
|
15
15
|
service: e,
|
|
16
16
|
target: t,
|
|
17
17
|
limitedKeys: n,
|
|
@@ -19,7 +19,7 @@ var I = () => [...T, "collection"], L = ({ service: e, target: t, limitedKeys: n
|
|
|
19
19
|
}];
|
|
20
20
|
//#endregion
|
|
21
21
|
//#region src/odata/flattenODataDependentServices.ts
|
|
22
|
-
function
|
|
22
|
+
function Me(e) {
|
|
23
23
|
let t = [];
|
|
24
24
|
for (let [n, r] of e.entries()) {
|
|
25
25
|
let e = `${r.odata.service}.${r.odata.target}`;
|
|
@@ -41,7 +41,7 @@ function Se(e) {
|
|
|
41
41
|
}
|
|
42
42
|
//#endregion
|
|
43
43
|
//#region src/odata/sortODataDependentSegmentItemsByChains.ts
|
|
44
|
-
function
|
|
44
|
+
function Ne(e, t, n) {
|
|
45
45
|
let r = /* @__PURE__ */ new Map();
|
|
46
46
|
for (let [e, n] of Object.entries(t)) r.set(e, new Map(n.map((e, t) => [e.codeKey, t])));
|
|
47
47
|
let i = [...e].map((e, t) => ({
|
|
@@ -63,7 +63,7 @@ function Ce(e, t, n) {
|
|
|
63
63
|
}
|
|
64
64
|
//#endregion
|
|
65
65
|
//#region src/odata/sortODataDependentServicesByChains.ts
|
|
66
|
-
function
|
|
66
|
+
function Pe(e, t) {
|
|
67
67
|
if (!t?.length) return [...e];
|
|
68
68
|
let n = /* @__PURE__ */ new Set();
|
|
69
69
|
for (let t of e) for (let e of Object.keys(t.segments)) n.add(e);
|
|
@@ -82,13 +82,13 @@ function we(e, t) {
|
|
|
82
82
|
return (n ? o.get(n) ?? 2 ** 53 - 1 : 2 ** 53 - 1) - (r ? o.get(r) ?? 2 ** 53 - 1 : 2 ** 53 - 1);
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
|
-
function
|
|
86
|
-
return
|
|
85
|
+
function Fe(e, t, n) {
|
|
86
|
+
return Pe(e.map((e) => {
|
|
87
87
|
let n = t[`${e.odata.service}.${e.odata.target}`];
|
|
88
88
|
if (!n?.length) return e;
|
|
89
89
|
let r = new Map(n.map((e, t) => [e.codeKey, t])), i = Object.entries(e.segments).sort(([e], [t]) => {
|
|
90
90
|
let n = r.get(e), i = r.get(t);
|
|
91
|
-
return n !== void 0 && i !== void 0 ? n - i : n === void 0 ? i === void 0 ?
|
|
91
|
+
return n !== void 0 && i !== void 0 ? n - i : n === void 0 ? i === void 0 ? xe(e, t) : 1 : -1;
|
|
92
92
|
});
|
|
93
93
|
return {
|
|
94
94
|
...e,
|
|
@@ -98,62 +98,62 @@ function Te(e, t, n) {
|
|
|
98
98
|
}
|
|
99
99
|
//#endregion
|
|
100
100
|
//#region src/odata/fetchCollectionData.ts
|
|
101
|
-
async function
|
|
101
|
+
async function Ie(e) {
|
|
102
102
|
let { url: t, query: n, signal: r } = e;
|
|
103
103
|
try {
|
|
104
104
|
let e = await E(t, n, { signal: r });
|
|
105
105
|
if (a(e)) throw Error("отсутствует тело ответа");
|
|
106
106
|
return { items: e.data.map(({ ID: e, CNT: t, __metadata: n, __Parameters: r, ...i }) => i) };
|
|
107
107
|
} catch (e) {
|
|
108
|
-
return
|
|
108
|
+
return ye("Ошибка загрузки справочника:", e), { items: [] };
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
//#endregion
|
|
112
112
|
//#region src/odata/useODataCollectionUpdatesQuery.ts
|
|
113
|
-
var
|
|
114
|
-
...
|
|
113
|
+
var Le = __APP_BUILD_ID__, Re = 1e3 * 60 * 60 * 4, I = 1e3 * 60 * 60 * 24 * 7, L = "ttl=forever;name=ref", R = "bust=forever;name=ref", z = "ttl=4h;name=ref-updates", B = () => [
|
|
114
|
+
...ee,
|
|
115
115
|
"collection-updates",
|
|
116
|
-
{ buildId:
|
|
116
|
+
{ buildId: Le }
|
|
117
117
|
];
|
|
118
|
-
function
|
|
118
|
+
function ze(e) {
|
|
119
119
|
return {
|
|
120
120
|
...e,
|
|
121
|
-
lastChangedAt:
|
|
121
|
+
lastChangedAt: be(e.lastChanged)
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
|
-
function
|
|
125
|
-
let n = e.map(
|
|
124
|
+
function V(e, t) {
|
|
125
|
+
let n = e.map(ze);
|
|
126
126
|
return {
|
|
127
127
|
items: n,
|
|
128
128
|
byEntityName: n.reduce((e, t) => (t.entityName && (e[t.entityName] = t), e), {}),
|
|
129
129
|
fetchedAt: t,
|
|
130
|
-
coverageStartedAt: t -
|
|
130
|
+
coverageStartedAt: t - I
|
|
131
131
|
};
|
|
132
132
|
}
|
|
133
|
-
function
|
|
133
|
+
function H() {
|
|
134
134
|
return async ({ signal: t }) => {
|
|
135
135
|
let n = Date.now(), r = S().collectionUpdates;
|
|
136
|
-
return r ?
|
|
136
|
+
return r ? V((await E(`/${r.service}/${r.target}`, {
|
|
137
137
|
baseUrl: e(r.service, r.baseUrl),
|
|
138
|
-
swCache:
|
|
139
|
-
}, { signal: t })).data, Math.max(n, Date.now())) :
|
|
138
|
+
swCache: z
|
|
139
|
+
}, { signal: t })).data, Math.max(n, Date.now())) : V([], n);
|
|
140
140
|
};
|
|
141
141
|
}
|
|
142
|
-
var
|
|
143
|
-
queryKey:
|
|
144
|
-
queryFn:
|
|
145
|
-
meta:
|
|
142
|
+
var U = (e = {}) => we({
|
|
143
|
+
queryKey: B(),
|
|
144
|
+
queryFn: H(),
|
|
145
|
+
meta: M,
|
|
146
146
|
enabled: !!S().collectionUpdates,
|
|
147
|
-
staleTime: e.staleTime ??
|
|
147
|
+
staleTime: e.staleTime ?? Re,
|
|
148
148
|
gcTime: Infinity
|
|
149
149
|
});
|
|
150
|
-
function
|
|
151
|
-
return
|
|
150
|
+
function W(e = {}) {
|
|
151
|
+
return A(U(e));
|
|
152
152
|
}
|
|
153
153
|
//#endregion
|
|
154
154
|
//#region src/odata/useODataMetadata.ts
|
|
155
|
-
function
|
|
156
|
-
let { data: t, dataUpdatedAt: n = 0, isLoading: r, isError: i } =
|
|
155
|
+
function G(e) {
|
|
156
|
+
let { data: t, dataUpdatedAt: n = 0, isLoading: r, isError: i } = T({ service: e.service }), a = t?.entities[e.target];
|
|
157
157
|
if (!r && !a && t?.functionImports[e.target]) throw Error(`OData target '${e.target}' является FunctionImport и не может использоваться как сущность`);
|
|
158
158
|
if (i) throw Error(`Ошибка загрузки метаданных сервиса ${e.service}`);
|
|
159
159
|
return {
|
|
@@ -164,32 +164,32 @@ function q(e) {
|
|
|
164
164
|
}
|
|
165
165
|
//#endregion
|
|
166
166
|
//#region src/odata/useODataEntity.ts
|
|
167
|
-
var
|
|
168
|
-
function
|
|
169
|
-
let { metadata: t, metadataUpdatedAt: n, isLoading: r } =
|
|
167
|
+
var K = "Использование actions недопустимо до окончания загрузки metadata";
|
|
168
|
+
function q(e) {
|
|
169
|
+
let { metadata: t, metadataUpdatedAt: n, isLoading: r } = G(e);
|
|
170
170
|
return {
|
|
171
171
|
config: e,
|
|
172
172
|
metadata: t,
|
|
173
173
|
metadataUpdatedAt: n,
|
|
174
174
|
isLoading: r,
|
|
175
|
-
actions:
|
|
175
|
+
actions: O(() => ({
|
|
176
176
|
getEntityPath: (n = {}) => {
|
|
177
|
-
if (!t) throw Error(
|
|
178
|
-
return
|
|
177
|
+
if (!t) throw Error(K);
|
|
178
|
+
return De(t, e, n);
|
|
179
179
|
},
|
|
180
180
|
getKeys: () => {
|
|
181
|
-
if (!t) throw Error(
|
|
181
|
+
if (!t) throw Error(K);
|
|
182
182
|
return t.columns?.map((e) => e.id);
|
|
183
183
|
},
|
|
184
184
|
getKeyPairs: () => {
|
|
185
|
-
if (!t) throw Error(
|
|
185
|
+
if (!t) throw Error(K);
|
|
186
186
|
return t.columns?.filter((e) => e.semanticType === "code" && e.linkedColumnId).map((e) => ({
|
|
187
187
|
codeKey: e.id,
|
|
188
188
|
textKey: e.linkedColumnId
|
|
189
189
|
}));
|
|
190
190
|
},
|
|
191
191
|
getKeyPairsMap: () => {
|
|
192
|
-
if (!t) throw Error(
|
|
192
|
+
if (!t) throw Error(K);
|
|
193
193
|
let e = {};
|
|
194
194
|
for (let n of t.columns ?? []) n.semanticType === "code" && n.linkedColumnId && (e[n.id] = n.linkedColumnId);
|
|
195
195
|
return e;
|
|
@@ -199,20 +199,20 @@ function Y(e) {
|
|
|
199
199
|
}
|
|
200
200
|
//#endregion
|
|
201
201
|
//#region src/odata/useODataCollectionQuery.ts
|
|
202
|
-
function
|
|
202
|
+
function J(e, t) {
|
|
203
203
|
if (!t) return e;
|
|
204
204
|
let n = e.trim().toLowerCase();
|
|
205
|
-
return n === "off" || n.startsWith("bust=") ? e : n.startsWith("ttl=") ? e.replace(/^\s*ttl=/i, "bust=") :
|
|
205
|
+
return n === "off" || n.startsWith("bust=") ? e : n.startsWith("ttl=") ? e.replace(/^\s*ttl=/i, "bust=") : R;
|
|
206
206
|
}
|
|
207
|
-
function
|
|
207
|
+
function Y(e) {
|
|
208
208
|
return typeof e == "number" && Number.isFinite(e) && e > 0;
|
|
209
209
|
}
|
|
210
|
-
function
|
|
210
|
+
function Be(e, t) {
|
|
211
211
|
let n = t?.cacheUpdatedAt ?? 0, r = e.update?.lastChangedAt?.getTime();
|
|
212
|
-
return !!(
|
|
212
|
+
return !!(Y(r) && (!t || !n || r > n) || Y(e.metadataUpdatedAt) && (!t || !n || e.metadataUpdatedAt > n) || Y(e.updatesCoverageStartedAt) && (!t || !n || n < e.updatesCoverageStartedAt));
|
|
213
213
|
}
|
|
214
|
-
function
|
|
215
|
-
let { service: t, target: n, limitedKeys: r, excludeEmpty: i, sortByCode: a, serverFilter: o, clientFilter: s, swCache: c =
|
|
214
|
+
function X(e) {
|
|
215
|
+
let { service: t, target: n, limitedKeys: r, excludeEmpty: i, sortByCode: a, serverFilter: o, clientFilter: s, swCache: c = L } = e, l = j(), { actions: u, metadata: d, metadataUpdatedAt: f, isLoading: p } = q(e), m = W(), h = O(() => F({
|
|
216
216
|
service: t,
|
|
217
217
|
target: n,
|
|
218
218
|
limitedKeys: r,
|
|
@@ -222,19 +222,19 @@ function $(e) {
|
|
|
222
222
|
n,
|
|
223
223
|
r,
|
|
224
224
|
o
|
|
225
|
-
]), g = l.getQueryData(h), _ = m.data?.byEntityName[n], v =
|
|
225
|
+
]), g = l.getQueryData(h), _ = m.data?.byEntityName[n], v = Be({
|
|
226
226
|
update: _,
|
|
227
227
|
metadataUpdatedAt: f,
|
|
228
228
|
updatesCoverageStartedAt: m.data?.coverageStartedAt
|
|
229
|
-
}, g), y =
|
|
230
|
-
return
|
|
229
|
+
}, g), y = J(c, v), b = m.isError || m.isSuccess && !m.isFetching;
|
|
230
|
+
return Se(() => {
|
|
231
231
|
!g || !v || l.invalidateQueries({ queryKey: h });
|
|
232
232
|
}, [
|
|
233
233
|
g,
|
|
234
234
|
l,
|
|
235
235
|
h,
|
|
236
236
|
v
|
|
237
|
-
]),
|
|
237
|
+
]), A({
|
|
238
238
|
queryKey: h,
|
|
239
239
|
queryFn: async ({ signal: e }) => {
|
|
240
240
|
let c = Date.now(), l = r ? [...r] : u.getKeys(), d = u.getKeyPairs(), p = u.getKeyPairsMap();
|
|
@@ -242,7 +242,7 @@ function $(e) {
|
|
|
242
242
|
let t = p[e];
|
|
243
243
|
t && !l.includes(t) && l.push(t);
|
|
244
244
|
}
|
|
245
|
-
let { items: m } = await
|
|
245
|
+
let { items: m } = await Ie({
|
|
246
246
|
url: `/${t}/${n}`,
|
|
247
247
|
query: {
|
|
248
248
|
select: l,
|
|
@@ -252,7 +252,7 @@ function $(e) {
|
|
|
252
252
|
signal: e
|
|
253
253
|
}), h = m;
|
|
254
254
|
s && (h = m.filter(s));
|
|
255
|
-
let g =
|
|
255
|
+
let g = Te(h, d, i, a), v = d.map((e) => ({
|
|
256
256
|
codeKey: e.codeKey,
|
|
257
257
|
count: g[e.codeKey].length
|
|
258
258
|
})).sort((e, t) => e.count - t.count);
|
|
@@ -267,15 +267,15 @@ function $(e) {
|
|
|
267
267
|
};
|
|
268
268
|
},
|
|
269
269
|
enabled: !!(!p && d && t && n && b),
|
|
270
|
-
meta:
|
|
270
|
+
meta: M,
|
|
271
271
|
staleTime: 1e3 * 60 * 60 * 2,
|
|
272
272
|
gcTime: 1e3 * 60 * 60 * 1
|
|
273
273
|
});
|
|
274
274
|
}
|
|
275
275
|
//#endregion
|
|
276
276
|
//#region src/odata/useODataCollection.ts
|
|
277
|
-
function
|
|
278
|
-
let { codeKey: r, maxVisibleItems: i } = t, { data: a, isLoading: o, isError: s, refetch: c } =
|
|
277
|
+
function Ve({ odata: e, model: t, pageSize: n = 50 }) {
|
|
278
|
+
let { codeKey: r, maxVisibleItems: i } = t, { data: a, isLoading: o, isError: s, refetch: c } = X(e), l = a?.keyPairsMap[r] ?? "", u = j(), [d, f] = k(), p = Ce(/* @__PURE__ */ new Map()), { itemsMap: m, separatedItems: h, orderedKeys: g } = O(() => {
|
|
279
279
|
let e = /* @__PURE__ */ new Map(), t = [], n = [];
|
|
280
280
|
if (a && a.separated[r]) {
|
|
281
281
|
n = a.separated[r];
|
|
@@ -289,7 +289,7 @@ function Ae({ odata: e, model: t, pageSize: n = 50 }) {
|
|
|
289
289
|
separatedItems: n,
|
|
290
290
|
orderedKeys: t
|
|
291
291
|
};
|
|
292
|
-
}, [a, r]), _ =
|
|
292
|
+
}, [a, r]), _ = D((e) => {
|
|
293
293
|
let t = a?.separated[r];
|
|
294
294
|
if (!t) return /* @__PURE__ */ new Map();
|
|
295
295
|
let n = /* @__PURE__ */ new Map();
|
|
@@ -301,11 +301,11 @@ function Ae({ odata: e, model: t, pageSize: n = 50 }) {
|
|
|
301
301
|
}
|
|
302
302
|
}
|
|
303
303
|
return n;
|
|
304
|
-
}, [a, r]), v =
|
|
304
|
+
}, [a, r]), v = D((e) => {
|
|
305
305
|
f(() => {
|
|
306
306
|
if (e?.length) return new Set(e.map((e) => e[r]));
|
|
307
307
|
});
|
|
308
|
-
}, [r]), y =
|
|
308
|
+
}, [r]), y = D((e, t) => {
|
|
309
309
|
if (!g.length) return [];
|
|
310
310
|
let n = i, a = /* @__PURE__ */ new Set(), o = [];
|
|
311
311
|
if (t?.length) for (let e = 0; e < t.length; e++) a.add(t[e][r]);
|
|
@@ -325,26 +325,26 @@ function Ae({ odata: e, model: t, pageSize: n = 50 }) {
|
|
|
325
325
|
m,
|
|
326
326
|
d,
|
|
327
327
|
l
|
|
328
|
-
]), b =
|
|
328
|
+
]), b = D((e) => {
|
|
329
329
|
let t = a?.separated[r] || [], i = e * n, o = i + n;
|
|
330
330
|
return t.slice(i, o);
|
|
331
331
|
}, [
|
|
332
332
|
a,
|
|
333
333
|
n,
|
|
334
334
|
r
|
|
335
|
-
]), x =
|
|
335
|
+
]), x = D((e, t) => {
|
|
336
336
|
if (!a) return [];
|
|
337
337
|
let n = new Set(t);
|
|
338
338
|
return a.items.filter((t) => n.has(t[e]));
|
|
339
|
-
}, [a]), S =
|
|
339
|
+
}, [a]), S = D((e, t, n = 200) => {
|
|
340
340
|
p.current.has(e) && clearTimeout(p.current.get(e));
|
|
341
341
|
let r = setTimeout(t, n);
|
|
342
342
|
p.current.set(e, r);
|
|
343
|
-
}, []), C =
|
|
343
|
+
}, []), C = D(() => {
|
|
344
344
|
for (let e of p.current.values()) clearTimeout(e);
|
|
345
345
|
p.current.clear();
|
|
346
346
|
}, []);
|
|
347
|
-
return
|
|
347
|
+
return O(() => () => {
|
|
348
348
|
C();
|
|
349
349
|
}, [C]), {
|
|
350
350
|
data: a,
|
|
@@ -362,20 +362,20 @@ function Ae({ odata: e, model: t, pageSize: n = 50 }) {
|
|
|
362
362
|
separatedItems: h,
|
|
363
363
|
orderedKeys: g,
|
|
364
364
|
refetch: c,
|
|
365
|
-
invalidate: () => u.invalidateQueries({ queryKey:
|
|
365
|
+
invalidate: () => u.invalidateQueries({ queryKey: F(e) }),
|
|
366
366
|
totalCount: a?.separated[r]?.length || 0,
|
|
367
367
|
pageSize: n
|
|
368
368
|
};
|
|
369
369
|
}
|
|
370
370
|
//#endregion
|
|
371
371
|
//#region src/odata/useODataCollectionChains.ts
|
|
372
|
-
function
|
|
373
|
-
let t =
|
|
374
|
-
return
|
|
372
|
+
function He(e) {
|
|
373
|
+
let t = j(), [n, r] = k({}), i = O(() => e.map((e) => F(e)), [e]);
|
|
374
|
+
return Se(() => {
|
|
375
375
|
function n() {
|
|
376
376
|
let n = {};
|
|
377
377
|
for (let r of e) {
|
|
378
|
-
let e =
|
|
378
|
+
let e = F(r), i = t.getQueryData(e);
|
|
379
379
|
i?.chain && (n[`${r.service}.${r.target}`] = i.chain);
|
|
380
380
|
}
|
|
381
381
|
r((e) => Object.keys(e).length === Object.keys(n).length && Object.entries(n).every(([t, n]) => e[t] === n) ? e : n);
|
|
@@ -394,9 +394,9 @@ function je(e) {
|
|
|
394
394
|
}
|
|
395
395
|
//#endregion
|
|
396
396
|
//#region src/odata/useODataCollectionModel.ts
|
|
397
|
-
function
|
|
398
|
-
let [t] =
|
|
399
|
-
let t =
|
|
397
|
+
function Ue(e) {
|
|
398
|
+
let [t] = k(() => {
|
|
399
|
+
let t = Ee.getState(), { codeKey: n, maxVisibleItems: r = t.defaultMaxVisibleItems, minSearchCodeLength: i = t.defaultMinSearchCodeLength, minSearchTextLength: a = t.defaultMinSearchTextLength, searchDebounceDelay: o = t.defaultSearchDebounceDelay } = e;
|
|
400
400
|
return {
|
|
401
401
|
codeKey: n,
|
|
402
402
|
maxVisibleItems: r,
|
|
@@ -409,31 +409,31 @@ function Me(e) {
|
|
|
409
409
|
}
|
|
410
410
|
//#endregion
|
|
411
411
|
//#region src/odata/useODataTableColumns.ts
|
|
412
|
-
function
|
|
412
|
+
function We(e, t) {
|
|
413
413
|
let n = {}, r = (e) => {
|
|
414
414
|
for (let i of e) {
|
|
415
415
|
if ("columns" in i && Array.isArray(i.columns) && i.columns.length > 0) {
|
|
416
416
|
r(i.columns);
|
|
417
417
|
continue;
|
|
418
418
|
}
|
|
419
|
-
let e =
|
|
419
|
+
let e = Ae(i);
|
|
420
420
|
!e || !(e in t) || (n[e] = t[e]);
|
|
421
421
|
}
|
|
422
422
|
};
|
|
423
423
|
return r(e), n;
|
|
424
424
|
}
|
|
425
|
-
function
|
|
426
|
-
let { metadata: t, isLoading: n } =
|
|
425
|
+
function Ge(e) {
|
|
426
|
+
let { metadata: t, isLoading: n } = G(e);
|
|
427
427
|
return {
|
|
428
|
-
columns:
|
|
428
|
+
columns: O(() => t ? e.mode === "build" ? Oe(t.columns, {
|
|
429
429
|
resolveHeader: e.resolveHeader,
|
|
430
430
|
resolveFormatting: e.resolveFormatting
|
|
431
|
-
}) :
|
|
432
|
-
defaultColumnVisibility:
|
|
431
|
+
}) : ke(e.columns, t.columns) : e.mode === "build" ? [] : [...e.columns], [e, t]),
|
|
432
|
+
defaultColumnVisibility: O(() => {
|
|
433
433
|
if (!t) return;
|
|
434
|
-
if (e.mode === "build") return
|
|
435
|
-
let n =
|
|
436
|
-
return
|
|
434
|
+
if (e.mode === "build") return N(t.columns, { resolveVisible: e.resolveVisible });
|
|
435
|
+
let n = N(t.columns);
|
|
436
|
+
return We(e.columns, n);
|
|
437
437
|
}, [e, t]),
|
|
438
438
|
metadata: t,
|
|
439
439
|
isLoading: n
|
|
@@ -441,33 +441,141 @@ function Pe(e) {
|
|
|
441
441
|
}
|
|
442
442
|
//#endregion
|
|
443
443
|
//#region src/odata/useTextServiceQuery.ts
|
|
444
|
-
function
|
|
445
|
-
return
|
|
444
|
+
function Ke(e) {
|
|
445
|
+
return X({
|
|
446
446
|
service: "TEXT_DICTIONARY_SRV",
|
|
447
447
|
target: e
|
|
448
448
|
});
|
|
449
449
|
}
|
|
450
450
|
//#endregion
|
|
451
451
|
//#region src/odata/odataFetchFnDev.ts
|
|
452
|
-
function
|
|
453
|
-
return
|
|
452
|
+
function qe() {
|
|
453
|
+
return globalThis.console;
|
|
454
454
|
}
|
|
455
|
-
function
|
|
456
|
-
|
|
455
|
+
function Je(e) {
|
|
456
|
+
let t = {};
|
|
457
|
+
return new Headers(e).forEach((e, n) => {
|
|
458
|
+
t[n] = e;
|
|
459
|
+
}), t;
|
|
457
460
|
}
|
|
458
|
-
function
|
|
459
|
-
|
|
461
|
+
function Ye(e) {
|
|
462
|
+
if (e != null) {
|
|
463
|
+
if (typeof e != "string") return e;
|
|
464
|
+
try {
|
|
465
|
+
return JSON.parse(e);
|
|
466
|
+
} catch {
|
|
467
|
+
return e;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
460
470
|
}
|
|
461
|
-
function
|
|
462
|
-
return
|
|
471
|
+
function Xe(e) {
|
|
472
|
+
return e !== void 0 && !["GET", "HEAD"].includes(e.toUpperCase());
|
|
473
|
+
}
|
|
474
|
+
function Ze(e) {
|
|
475
|
+
return (e.baseUrl ?? "odata") === "" ? e.path.startsWith("/sap/") || e.path.startsWith("/sap-dp0/") : !0;
|
|
476
|
+
}
|
|
477
|
+
function Qe(e, t) {
|
|
478
|
+
let n = t.toLowerCase();
|
|
479
|
+
return Object.keys(e).some((e) => e.toLowerCase() === n);
|
|
480
|
+
}
|
|
481
|
+
function Z(e, t, n) {
|
|
482
|
+
Qe(e, t) || (e[t] = n);
|
|
483
|
+
}
|
|
484
|
+
function $e(e) {
|
|
485
|
+
let t = Je(e.init.headers), n = e.init.method, r = Ze(e);
|
|
486
|
+
return Z(t, "DataServiceVersion", "2.0"), Z(t, "MaxDataServiceVersion", "2.0"), Z(t, "Accept", "application/json"), t["sap-language"] = "ru", r && (t["sap-contextid-accept"] = "header"), Xe(n) && e.init.body && Z(t, "Content-Type", "application/json"), Xe(n) && r && Z(t, "x-csrf-token", "<получается отдельным GET перед реальным write-запросом>"), t;
|
|
487
|
+
}
|
|
488
|
+
function et(e) {
|
|
489
|
+
return ue(e) ? "FunctionImport" : e.result ? "Parameterized Entity" : "Entity";
|
|
490
|
+
}
|
|
491
|
+
function Q(e, t) {
|
|
492
|
+
let n = qe();
|
|
493
|
+
n.groupCollapsed(e), n.info(t), n.groupEnd();
|
|
494
|
+
}
|
|
495
|
+
function tt(e) {
|
|
496
|
+
let t = qe(), n = Ye(e.request.init.body), r = Je(e.request.init.headers), i = $e(e.request), a = {
|
|
497
|
+
method: e.request.init.method,
|
|
498
|
+
headers: r,
|
|
499
|
+
body: n,
|
|
500
|
+
hasSignal: !!e.request.init.signal
|
|
501
|
+
};
|
|
502
|
+
t.groupCollapsed(`[OData DEV] ${e.requestMethod} ${e.request.fullUrl}`), t.table([{
|
|
503
|
+
helper: e.helperName,
|
|
504
|
+
operation: e.operation,
|
|
505
|
+
target: e.odata.target,
|
|
506
|
+
targetKind: et(e.target),
|
|
507
|
+
service: e.odata.service,
|
|
508
|
+
realFetch: "не выполнялся"
|
|
509
|
+
}]), t.info("Итоговый URL:", e.request.fullUrl), t.info("Path без base URL:", e.request.path), t.info("Target path до query options:", e.targetPath), t.info("Query string:", e.request.queryString || "<пусто>"), t.info("Body:", n ?? "<пусто>"), t.info("Auto parse:", e.autoParse ?? !1), t.info("Transform:", e.hasTransform ? "передан, но не вызывается без ответа backend" : "не передан"), t.info("Dry-run result:", e.operation === "query" ? {
|
|
510
|
+
data: [],
|
|
511
|
+
totalCount: 0
|
|
512
|
+
} : { data: void 0 }), Q("OData config", e.odata), Q("Target metadata", e.target), Q("Target params", e.params), Q("Query options", e.queryOptions), Q("RequestInit, переданный в transport", a), Q("Заголовки после transport defaults (без реального fetch)", i), t.groupEnd();
|
|
513
|
+
}
|
|
514
|
+
function nt(e) {
|
|
515
|
+
je.warning(`${e}: DEV dry-run OData запроса. Реальный запрос не выполняется, payload выведен в console.`, { title: "OData DEV helper" });
|
|
516
|
+
}
|
|
517
|
+
function $(t, n, r) {
|
|
518
|
+
let { odata: i, options: a = {}, init: o = {}, autoParse: s, swCache: c } = n, l = n.params ?? {};
|
|
519
|
+
return async ({ client: u, signal: d }) => {
|
|
520
|
+
nt(r);
|
|
521
|
+
let f = e(i.service, a.baseUrl), p = await se({
|
|
522
|
+
service: i.service,
|
|
523
|
+
baseUrl: f
|
|
524
|
+
}, u);
|
|
525
|
+
if (!p) throw Error(`Не удалось загрузить metadata OData-сервиса '${i.service}'`);
|
|
526
|
+
let m = _e(p, i.target);
|
|
527
|
+
me(m, t, i);
|
|
528
|
+
let h = ae(n.body, t), g = oe(m, t), _ = ie(m, i, l, t), v = c ? {
|
|
529
|
+
...a,
|
|
530
|
+
baseUrl: f,
|
|
531
|
+
swCache: c
|
|
532
|
+
} : {
|
|
533
|
+
...a,
|
|
534
|
+
baseUrl: f
|
|
535
|
+
}, y = re(_, v, {
|
|
536
|
+
...o,
|
|
537
|
+
method: g,
|
|
538
|
+
body: h,
|
|
539
|
+
signal: d
|
|
540
|
+
});
|
|
541
|
+
return tt({
|
|
542
|
+
helperName: r,
|
|
543
|
+
operation: t,
|
|
544
|
+
odata: i,
|
|
545
|
+
target: m,
|
|
546
|
+
targetPath: _,
|
|
547
|
+
request: y,
|
|
548
|
+
requestMethod: g,
|
|
549
|
+
params: l,
|
|
550
|
+
queryOptions: v,
|
|
551
|
+
body: h,
|
|
552
|
+
autoParse: s,
|
|
553
|
+
hasTransform: !!n.transform
|
|
554
|
+
}), t === "query" ? {
|
|
555
|
+
data: [],
|
|
556
|
+
totalCount: 0
|
|
557
|
+
} : { data: void 0 };
|
|
558
|
+
};
|
|
559
|
+
}
|
|
560
|
+
function rt(e) {
|
|
561
|
+
return __DEV__ ? $("create", e, "odataCreateFnDev") : w("create", e);
|
|
562
|
+
}
|
|
563
|
+
function it(e) {
|
|
564
|
+
return __DEV__ ? $("update", e, "odataUpdateFnDev") : w("update", e);
|
|
565
|
+
}
|
|
566
|
+
function at(e) {
|
|
567
|
+
return __DEV__ ? $("delete", e, "odataDeleteFnDev") : w("delete", e);
|
|
568
|
+
}
|
|
569
|
+
function ot(e) {
|
|
570
|
+
return __DEV__ ? $("read", e, "odataReadFnDev") : w("read", e);
|
|
463
571
|
}
|
|
464
|
-
function
|
|
465
|
-
return
|
|
572
|
+
function st(e) {
|
|
573
|
+
return __DEV__ ? $("query", e, "odataQueryFnDev") : w("query", e);
|
|
466
574
|
}
|
|
467
|
-
function
|
|
468
|
-
return
|
|
575
|
+
function ct(e) {
|
|
576
|
+
return __DEV__ ? $("fi", e, "odataFunctionImportFnDev") : w("fi", e);
|
|
469
577
|
}
|
|
470
578
|
//#endregion
|
|
471
|
-
export { h as BaseAppConfigURL, f as BaseODataDp0URL, l as BaseODataUI2URL, c as BaseODataURL, n as BaseUrlMap,
|
|
579
|
+
export { h as BaseAppConfigURL, f as BaseODataDp0URL, l as BaseODataUI2URL, c as BaseODataURL, n as BaseUrlMap, R as ODATA_COLLECTION_BUST_SW_CACHE, L as ODATA_COLLECTION_DEFAULT_SW_CACHE, I as ODATA_COLLECTION_UPDATES_LOOKBACK_MS, z as ODATA_COLLECTION_UPDATES_SW_CACHE, d as SsoRequiredError, de as applyODataMetadataVersion, i as configureODataProjectAdapter, P as createODataCollectionBaseQueryKey, F as createODataCollectionQueryKey, B as createODataCollectionUpdatesQueryKey, v as fetchBase, p as fetchDeleteFn, g as fetchJson, u as fetchJsonMutationFn, r as fetchJsonQueryFn, ce as fetchMetadata, H as fetchODataCollectionUpdates, m as fetchODataJson, _ as fetchQueryFn, Me as flattenODataDependentServices, b as getInputUrl, se as getODataMetadataData, S as getODataProjectAdapter, a as isNoContentResponse, y as isSsoForm, t as normalizeODataServiceName, C as normalizeRelativePath, U as odataCollectionUpdatesQueryOptions, ge as odataCreateFn, rt as odataCreateFnDev, fe as odataDeleteFn, at as odataDeleteFnDev, E as odataFetch, le as odataFunctionImportFn, ct as odataFunctionImportFnDev, te as odataMetadataQueryOptions, ne as odataQueryFn, st as odataQueryFnDev, pe as odataReadFn, ot as odataReadFnDev, he as odataUpdateFn, it as odataUpdateFnDev, o as recoverSsoSession, e as resolveODataBaseUrl, J as resolveODataCollectionSwCachePolicy, x as resolveODataSapClient, Be as shouldRefreshODataCollectionCache, Ne as sortODataDependentSegmentItemsByChains, Fe as sortODataDependentServicesByChains, s as submitSsoForm, Ve as useODataCollection, He as useODataCollectionChains, Ue as useODataCollectionModel, X as useODataCollectionQuery, W as useODataCollectionUpdatesQuery, q as useODataEntity, G as useODataMetadata, T as useODataMetadataQuery, ve as useODataMetadataVersionQuery, Ge as useODataTableColumns, Ke as useTextServiceQuery };
|
|
472
580
|
|
|
473
581
|
//# sourceMappingURL=index.js.map
|