@ryuzaki13/react-foundation-api 1.1.1 → 1.1.3

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.
@@ -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-3O2E2pQ9.js";
2
- import { a as ee, c as te, d as ne, f as w, h as T, i as re, l as ie, m as E, n as ae, o as oe, p as se, r as D, s as ce, t as le, u as ue } from "../chunks/odataFetchFn-BS26nUg7.js";
3
- import { logError as de } from "@ryuzaki13/react-foundation-lib/utils";
4
- import { parseDate as fe } from "@ryuzaki13/react-foundation-lib/formatters";
5
- import { compareStrings as pe } from "@ryuzaki13/react-foundation-lib/string-comparison";
6
- import { useCallback as O, useEffect as k, useMemo as A, useRef as me, useState as j } from "react";
7
- import { queryOptions as he, useQuery as M, useQueryClient as N } from "@tanstack/react-query";
8
- import { buildSeparatedArrays as ge, useODataCollectionStore as _e } from "@ryuzaki13/react-foundation-lib/odata";
9
- import { persistedQueryMeta as P } from "@ryuzaki13/react-foundation-lib/query-client";
10
- import { buildEntityPath as ve } from "@ryuzaki13/react-foundation-lib/odata-service";
11
- import { createTableColumnVisibilityFromODataMetadata as F, createTableColumnsFromODataMetadata as ye, enrichTableColumnsWithODataFormatting as be, resolveStableColumnId as xe } from "@ryuzaki13/react-foundation-lib/table";
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 I = () => [...T, "collection"], L = ({ service: e, target: t, limitedKeys: n, serverFilter: r }) => [...I(), {
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 Se(e) {
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 Ce(e, t, n) {
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 we(e, t) {
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 Te(e, t, n) {
86
- return we(e.map((e) => {
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 ? pe(e, t) : 1 : -1;
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 Ee(e) {
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 de("Ошибка загрузки справочника:", e), { items: [] };
108
+ return ye("Ошибка загрузки справочника:", e), { items: [] };
109
109
  }
110
110
  }
111
111
  //#endregion
112
112
  //#region src/odata/useODataCollectionUpdatesQuery.ts
113
- var De = "@ryuzaki13/react-foundation-api@1.1.1", Oe = 1e3 * 60 * 60 * 4, R = 1e3 * 60 * 60 * 24 * 7, z = "ttl=forever;name=ref", B = "bust=forever;name=ref", V = "ttl=4h;name=ref-updates", H = () => [
114
- ...T,
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: De }
116
+ { buildId: Le }
117
117
  ];
118
- function ke(e) {
118
+ function ze(e) {
119
119
  return {
120
120
  ...e,
121
- lastChangedAt: fe(e.lastChanged)
121
+ lastChangedAt: be(e.lastChanged)
122
122
  };
123
123
  }
124
- function U(e, t) {
125
- let n = e.map(ke);
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 - R
130
+ coverageStartedAt: t - I
131
131
  };
132
132
  }
133
- function W() {
133
+ function H() {
134
134
  return async ({ signal: t }) => {
135
135
  let n = Date.now(), r = S().collectionUpdates;
136
- return r ? U((await E(`/${r.service}/${r.target}`, {
136
+ return r ? V((await E(`/${r.service}/${r.target}`, {
137
137
  baseUrl: e(r.service, r.baseUrl),
138
- swCache: V
139
- }, { signal: t })).data, Math.max(n, Date.now())) : U([], n);
138
+ swCache: z
139
+ }, { signal: t })).data, Math.max(n, Date.now())) : V([], n);
140
140
  };
141
141
  }
142
- var G = (e = {}) => he({
143
- queryKey: H(),
144
- queryFn: W(),
145
- meta: P,
142
+ var U = (e = {}) => we({
143
+ queryKey: B(),
144
+ queryFn: H(),
145
+ meta: M,
146
146
  enabled: !!S().collectionUpdates,
147
- staleTime: e.staleTime ?? Oe,
147
+ staleTime: e.staleTime ?? Re,
148
148
  gcTime: Infinity
149
149
  });
150
- function K(e = {}) {
151
- return M(G(e));
150
+ function W(e = {}) {
151
+ return A(U(e));
152
152
  }
153
153
  //#endregion
154
154
  //#region src/odata/useODataMetadata.ts
155
- function q(e) {
156
- let { data: t, dataUpdatedAt: n = 0, isLoading: r, isError: i } = w({ service: e.service }), a = t?.entities[e.target];
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 J = "Использование actions недопустимо до окончания загрузки metadata";
168
- function Y(e) {
169
- let { metadata: t, metadataUpdatedAt: n, isLoading: r } = q(e);
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: A(() => ({
175
+ actions: O(() => ({
176
176
  getEntityPath: (n = {}) => {
177
- if (!t) throw Error(J);
178
- return ve(t, e, n);
177
+ if (!t) throw Error(K);
178
+ return De(t, e, n);
179
179
  },
180
180
  getKeys: () => {
181
- if (!t) throw Error(J);
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(J);
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(J);
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 X(e, t) {
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=") : B;
205
+ return n === "off" || n.startsWith("bust=") ? e : n.startsWith("ttl=") ? e.replace(/^\s*ttl=/i, "bust=") : R;
206
206
  }
207
- function Z(e) {
207
+ function Y(e) {
208
208
  return typeof e == "number" && Number.isFinite(e) && e > 0;
209
209
  }
210
- function Q(e, t) {
210
+ function Be(e, t) {
211
211
  let n = t?.cacheUpdatedAt ?? 0, r = e.update?.lastChangedAt?.getTime();
212
- return !!(Z(r) && (!t || !n || r > n) || Z(e.metadataUpdatedAt) && (!t || !n || e.metadataUpdatedAt > n) || Z(e.updatesCoverageStartedAt) && (!t || !n || n < e.updatesCoverageStartedAt));
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 $(e) {
215
- let { service: t, target: n, limitedKeys: r, excludeEmpty: i, sortByCode: a, serverFilter: o, clientFilter: s, swCache: c = z } = e, l = N(), { actions: u, metadata: d, metadataUpdatedAt: f, isLoading: p } = Y(e), m = K(), h = A(() => L({
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 = Q({
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 = X(c, v), b = m.isError || m.isSuccess && !m.isFetching;
230
- return k(() => {
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
- ]), M({
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 Ee({
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 = ge(h, d, i, a), v = d.map((e) => ({
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: P,
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 Ae({ odata: e, model: t, pageSize: n = 50 }) {
278
- let { codeKey: r, maxVisibleItems: i } = t, { data: a, isLoading: o, isError: s, refetch: c } = $(e), l = a?.keyPairsMap[r] ?? "", u = N(), [d, f] = j(), p = me(/* @__PURE__ */ new Map()), { itemsMap: m, separatedItems: h, orderedKeys: g } = A(() => {
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]), _ = O((e) => {
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 = O((e) => {
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 = O((e, t) => {
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 = O((e) => {
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 = O((e, t) => {
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 = O((e, t, n = 200) => {
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 = O(() => {
343
+ }, []), C = D(() => {
344
344
  for (let e of p.current.values()) clearTimeout(e);
345
345
  p.current.clear();
346
346
  }, []);
347
- return A(() => () => {
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: L(e) }),
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 je(e) {
373
- let t = N(), [n, r] = j({}), i = A(() => e.map((e) => L(e)), [e]);
374
- return k(() => {
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 = L(r), i = t.getQueryData(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 Me(e) {
398
- let [t] = j(() => {
399
- let t = _e.getState(), { codeKey: n, maxVisibleItems: r = t.defaultMaxVisibleItems, minSearchCodeLength: i = t.defaultMinSearchCodeLength, minSearchTextLength: a = t.defaultMinSearchTextLength, searchDebounceDelay: o = t.defaultSearchDebounceDelay } = e;
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 Ne(e, t) {
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 = xe(i);
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 Pe(e) {
426
- let { metadata: t, isLoading: n } = q(e);
425
+ function Ge(e) {
426
+ let { metadata: t, isLoading: n } = G(e);
427
427
  return {
428
- columns: A(() => t ? e.mode === "build" ? ye(t.columns, {
428
+ columns: O(() => t ? e.mode === "build" ? Oe(t.columns, {
429
429
  resolveHeader: e.resolveHeader,
430
430
  resolveFormatting: e.resolveFormatting
431
- }) : be(e.columns, t.columns) : e.mode === "build" ? [] : [...e.columns], [e, t]),
432
- defaultColumnVisibility: A(() => {
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 F(t.columns, { resolveVisible: e.resolveVisible });
435
- let n = F(t.columns);
436
- return Ne(e.columns, n);
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 Fe(e) {
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 Ie(e) {
453
- return D("create", e);
452
+ function qe() {
453
+ return globalThis.console;
454
454
  }
455
- function Le(e) {
456
- return D("update", e);
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 Re(e) {
459
- return D("delete", e);
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 ze(e) {
462
- return D("read", e);
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 Be(e) {
465
- return D("query", e);
572
+ function st(e) {
573
+ return __DEV__ ? $("query", e, "odataQueryFnDev") : w("query", e);
466
574
  }
467
- function Ve(e) {
468
- return D("fi", e);
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, B as ODATA_COLLECTION_BUST_SW_CACHE, z as ODATA_COLLECTION_DEFAULT_SW_CACHE, R as ODATA_COLLECTION_UPDATES_LOOKBACK_MS, V as ODATA_COLLECTION_UPDATES_SW_CACHE, d as SsoRequiredError, te as applyODataMetadataVersion, i as configureODataProjectAdapter, I as createODataCollectionBaseQueryKey, L as createODataCollectionQueryKey, H as createODataCollectionUpdatesQueryKey, v as fetchBase, p as fetchDeleteFn, g as fetchJson, u as fetchJsonMutationFn, r as fetchJsonQueryFn, ie as fetchMetadata, W as fetchODataCollectionUpdates, m as fetchODataJson, _ as fetchQueryFn, Se as flattenODataDependentServices, b as getInputUrl, ue as getODataMetadataData, S as getODataProjectAdapter, a as isNoContentResponse, y as isSsoForm, t as normalizeODataServiceName, C as normalizeRelativePath, G as odataCollectionUpdatesQueryOptions, le as odataCreateFn, Ie as odataCreateFnDev, ae as odataDeleteFn, Re as odataDeleteFnDev, E as odataFetch, re as odataFunctionImportFn, Ve as odataFunctionImportFnDev, ne as odataMetadataQueryOptions, ee as odataQueryFn, Be as odataQueryFnDev, oe as odataReadFn, ze as odataReadFnDev, ce as odataUpdateFn, Le as odataUpdateFnDev, o as recoverSsoSession, e as resolveODataBaseUrl, X as resolveODataCollectionSwCachePolicy, x as resolveODataSapClient, Q as shouldRefreshODataCollectionCache, Ce as sortODataDependentSegmentItemsByChains, Te as sortODataDependentServicesByChains, s as submitSsoForm, Ae as useODataCollection, je as useODataCollectionChains, Me as useODataCollectionModel, $ as useODataCollectionQuery, K as useODataCollectionUpdatesQuery, Y as useODataEntity, q as useODataMetadata, w as useODataMetadataQuery, se as useODataMetadataVersionQuery, Pe as useODataTableColumns, Fe as useTextServiceQuery };
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