@archbase/data 3.0.4 → 3.0.6

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/index.js CHANGED
@@ -6,7 +6,7 @@ import { ADVANCED as Mt, ARCHBASE_IOC_API_TYPE as jt, FILTER_TYPE as Ut, NORMAL
6
6
  import { useState as C, useCallback as l, useRef as le, useMemo as H, useEffect as J, useReducer as We } from "react";
7
7
  import { produce as _ } from "immer";
8
8
  import "reflect-metadata";
9
- import ee from "axios";
9
+ import Y from "axios";
10
10
  import * as ne from "inversify";
11
11
  import { useContainer as ze } from "inversify-react";
12
12
  import { create as Me } from "zustand";
@@ -2186,15 +2186,15 @@ function be(n) {
2186
2186
  J(() => (a.addListener(V), r(a.getCurrentRecord()), s(a.getCurrentIndex()), c(a.getTotalRecords()), R(a.isBrowsing()), N(a.isEditing()), T(a.isInserting()), () => {
2187
2187
  a.removeListener(V);
2188
2188
  }), [a, V]);
2189
- const Y = l((F, j) => {
2189
+ const X = l((F, j) => {
2190
2190
  a.setFieldValue(F, j);
2191
2191
  }, [a]), S = l((F) => a.getFieldValue(F), [a]), h = l(() => {
2192
2192
  a instanceof U, a.edit();
2193
- }, [a]), Q = l(async () => await a.save(), [a]), X = l(() => {
2193
+ }, [a]), Q = l(async () => await a.save(), [a]), Z = l(() => {
2194
2194
  a instanceof U, a.cancel();
2195
2195
  }, [a]), I = l((F) => {
2196
2196
  a instanceof U, a.insert(F);
2197
- }, [a]), G = l(async (F) => await a.remove(F), [a]), Z = l(() => {
2197
+ }, [a]), G = l(async (F) => await a.remove(F), [a]), ee = l(() => {
2198
2198
  a instanceof U, a.first();
2199
2199
  }, [a]), D = l(() => {
2200
2200
  a instanceof U, a.last();
@@ -2252,15 +2252,15 @@ function be(n) {
2252
2252
  isEditing: de,
2253
2253
  isInserting: ce,
2254
2254
  // Operações básicas
2255
- setFieldValue: Y,
2255
+ setFieldValue: X,
2256
2256
  getFieldValue: S,
2257
2257
  edit: h,
2258
2258
  save: Q,
2259
- cancel: X,
2259
+ cancel: Z,
2260
2260
  insert: I,
2261
2261
  remove: G,
2262
2262
  // Navegação
2263
- first: Z,
2263
+ first: ee,
2264
2264
  last: D,
2265
2265
  next: E,
2266
2266
  prior: A,
@@ -2322,7 +2322,7 @@ function wt(n) {
2322
2322
  return be(n);
2323
2323
  }
2324
2324
  function De(n) {
2325
- const e = le(null), [t, r] = C(void 0), [i, s] = C(-1), [o, c] = C(0), [f, R] = C(0), [b, N] = C(!0), [W, T] = C(!1), [O, $] = C(!1), [z, u] = C(!1), [a, V] = C(null), [, Y] = C({}), S = l(() => Y({}), []), h = H(() => (e.current || (e.current = new Je(n)), e.current), []), Q = l((w) => {
2325
+ const e = le(null), [t, r] = C(void 0), [i, s] = C(-1), [o, c] = C(0), [f, R] = C(0), [b, N] = C(!0), [W, T] = C(!1), [O, $] = C(!1), [z, u] = C(!1), [a, V] = C(null), [, X] = C({}), S = l(() => X({}), []), h = H(() => (e.current || (e.current = new Je(n)), e.current), []), Q = l((w) => {
2326
2326
  switch (w.type) {
2327
2327
  case d.dataChanged:
2328
2328
  case d.recordChanged:
@@ -2359,11 +2359,11 @@ function De(n) {
2359
2359
  J(() => (h.addListener(Q), r(h.getCurrentRecord()), s(h.getCurrentIndex()), c(h.getTotalRecords()), R(h.getGrandTotalRecords()), N(h.isBrowsing()), T(h.isEditing()), $(h.isInserting()), () => {
2360
2360
  h.removeListener(Q);
2361
2361
  }), [h, Q]);
2362
- const X = l((w, M) => {
2362
+ const Z = l((w, M) => {
2363
2363
  h.setFieldValue(w, M);
2364
2364
  }, [h]), I = l((w) => h.getFieldValue(w), [h]), G = l(() => {
2365
2365
  h.edit();
2366
- }, [h]), Z = l(async () => {
2366
+ }, [h]), ee = l(async () => {
2367
2367
  try {
2368
2368
  return V(null), await h.save();
2369
2369
  } catch (w) {
@@ -2448,10 +2448,10 @@ function De(n) {
2448
2448
  isEditing: Re,
2449
2449
  isInserting: pe,
2450
2450
  // Operações básicas
2451
- setFieldValue: X,
2451
+ setFieldValue: Z,
2452
2452
  getFieldValue: I,
2453
2453
  edit: G,
2454
- save: Z,
2454
+ save: ee,
2455
2455
  cancel: D,
2456
2456
  insert: E,
2457
2457
  remove: A,
@@ -2498,11 +2498,11 @@ function Et(n) {
2498
2498
  prior: u,
2499
2499
  goToRecord: a,
2500
2500
  getFieldValue: V,
2501
- getFieldArray: Y,
2501
+ getFieldArray: X,
2502
2502
  isFieldArray: S,
2503
2503
  applyRemoteFilter: h,
2504
2504
  refreshData: Q,
2505
- getPageSize: X,
2505
+ getPageSize: Z,
2506
2506
  getDebugInfo: I
2507
2507
  } = De(n);
2508
2508
  return {
@@ -2525,11 +2525,11 @@ function Et(n) {
2525
2525
  prior: u,
2526
2526
  goToRecord: a,
2527
2527
  getFieldValue: V,
2528
- getFieldArray: Y,
2528
+ getFieldArray: X,
2529
2529
  isFieldArray: S,
2530
2530
  applyRemoteFilter: h,
2531
2531
  refreshData: Q,
2532
- getPageSize: X,
2532
+ getPageSize: Z,
2533
2533
  getDebugInfo: I
2534
2534
  };
2535
2535
  }
@@ -2653,7 +2653,7 @@ class Ve {
2653
2653
  }
2654
2654
  async get(e, t, r, i) {
2655
2655
  try {
2656
- const s = this.prepareHeaders(t, r), o = await ee.get(e, { headers: s, ...i });
2656
+ const s = this.prepareHeaders(t, r), o = await Y.get(e, { headers: s, ...i });
2657
2657
  return ie.convertJsonToObject(o.data);
2658
2658
  } catch (s) {
2659
2659
  return Promise.reject(s);
@@ -2661,7 +2661,7 @@ class Ve {
2661
2661
  }
2662
2662
  async post(e, t, r, i, s) {
2663
2663
  try {
2664
- const o = this.prepareHeaders(r, i), c = await ee.post(
2664
+ const o = this.prepareHeaders(r, i), c = await Y.post(
2665
2665
  e,
2666
2666
  ie.convertObjectToJson(t),
2667
2667
  {
@@ -2677,7 +2677,7 @@ class Ve {
2677
2677
  async postNoConvertId(e, t, r, i, s) {
2678
2678
  try {
2679
2679
  const o = this.prepareHeaders(r, i);
2680
- return (await ee.post(
2680
+ return (await Y.post(
2681
2681
  e,
2682
2682
  t,
2683
2683
  {
@@ -2691,7 +2691,7 @@ class Ve {
2691
2691
  }
2692
2692
  async put(e, t, r, i, s) {
2693
2693
  try {
2694
- const o = this.prepareHeaders(r, i), c = await ee.put(e, ie.convertObjectToJson(t), {
2694
+ const o = this.prepareHeaders(r, i), c = await Y.put(e, ie.convertObjectToJson(t), {
2695
2695
  headers: o,
2696
2696
  ...s
2697
2697
  });
@@ -2703,7 +2703,7 @@ class Ve {
2703
2703
  async putNoConvertId(e, t, r, i, s) {
2704
2704
  try {
2705
2705
  const o = this.prepareHeaders(r, i);
2706
- return (await ee.put(e, t, {
2706
+ return (await Y.put(e, t, {
2707
2707
  headers: o,
2708
2708
  ...s
2709
2709
  })).data;
@@ -2714,7 +2714,7 @@ class Ve {
2714
2714
  async binaryPut(e, t, r = {}, i, s) {
2715
2715
  try {
2716
2716
  const o = this.prepareHeaders(r, i);
2717
- return s = s || {}, (await ee.put(e, t, {
2717
+ return s = s || {}, (await Y.put(e, t, {
2718
2718
  headers: o,
2719
2719
  ...s
2720
2720
  })).data;
@@ -2724,7 +2724,7 @@ class Ve {
2724
2724
  }
2725
2725
  async delete(e, t, r, i) {
2726
2726
  try {
2727
- const s = this.prepareHeaders(t, r), o = await ee.delete(e, { headers: s, ...i });
2727
+ const s = this.prepareHeaders(t, r), o = await Y.delete(e, { headers: s, ...i });
2728
2728
  return ie.convertJsonToObject(o.data);
2729
2729
  } catch (s) {
2730
2730
  return Promise.reject(s);
@@ -2732,7 +2732,7 @@ class Ve {
2732
2732
  }
2733
2733
  async patch(e, t, r, i, s) {
2734
2734
  try {
2735
- const o = this.prepareHeaders(r, i), c = await ee.patch(e, ie.convertObjectToJson(t), {
2735
+ const o = this.prepareHeaders(r, i), c = await Y.patch(e, ie.convertObjectToJson(t), {
2736
2736
  headers: o,
2737
2737
  ...s
2738
2738
  });
@@ -2744,7 +2744,7 @@ class Ve {
2744
2744
  async patchNoConvertId(e, t, r, i, s) {
2745
2745
  try {
2746
2746
  const o = this.prepareHeaders(r, i);
2747
- return (await ee.patch(e, t, {
2747
+ return (await Y.patch(e, t, {
2748
2748
  headers: o,
2749
2749
  ...s
2750
2750
  })).data;
@@ -2752,6 +2752,36 @@ class Ve {
2752
2752
  return Promise.reject(o);
2753
2753
  }
2754
2754
  }
2755
+ /**
2756
+ * Faz requisição GET e retorna Blob (para download de arquivos).
2757
+ * Útil para exportação de relatórios em PDF, Excel, CSV, etc.
2758
+ */
2759
+ async getBlob(e, t, r) {
2760
+ try {
2761
+ const i = this.prepareHeaders(t, r);
2762
+ return (await Y.get(e, {
2763
+ headers: i,
2764
+ responseType: "blob"
2765
+ })).data;
2766
+ } catch (i) {
2767
+ return Promise.reject(i);
2768
+ }
2769
+ }
2770
+ /**
2771
+ * Faz requisição POST e retorna Blob (para download de arquivos).
2772
+ * Útil para exportação de relatórios que requerem parâmetros complexos no body.
2773
+ */
2774
+ async postBlob(e, t, r, i) {
2775
+ try {
2776
+ const s = this.prepareHeaders(r, i);
2777
+ return (await Y.post(e, t, {
2778
+ headers: s,
2779
+ responseType: "blob"
2780
+ })).data;
2781
+ } catch (s) {
2782
+ return Promise.reject(s);
2783
+ }
2784
+ }
2755
2785
  }
2756
2786
  ne.decorate(ne.inject(He.TokenManager), Ve, 0);
2757
2787
  ne.decorate(ne.injectable(), Ve);
@@ -2912,15 +2942,15 @@ function Dt(n) {
2912
2942
  loadOnStart: u = !0,
2913
2943
  store: a,
2914
2944
  id: V,
2915
- validator: Y
2945
+ validator: X
2916
2946
  } = n, S = le(!1), h = () => !!(a && a.existsValue(e) || O), Q = () => a && a.existsValue(e) ? a.getValue(e) : O || new Ce(r, e, {
2917
2947
  records: [],
2918
2948
  grandTotalRecords: 0,
2919
2949
  currentPage: z,
2920
2950
  totalPages: 0,
2921
2951
  pageSize: $,
2922
- validator: Y
2923
- }, t), X = () => a && a.existsValue(e) ? a.getValue(e).getCurrentPage() : O ? O.getCurrentPage() : 0, [I, G] = C({
2952
+ validator: X
2953
+ }, t), Z = () => a && a.existsValue(e) ? a.getValue(e).getCurrentPage() : O ? O.getCurrentPage() : 0, [I, G] = C({
2924
2954
  dataSource: Q(),
2925
2955
  isLoading: !1,
2926
2956
  isError: !1,
@@ -2930,10 +2960,10 @@ function Dt(n) {
2930
2960
  filter: i,
2931
2961
  sort: s,
2932
2962
  id: V,
2933
- currentPage: X(),
2963
+ currentPage: Z(),
2934
2964
  pageSize: $,
2935
2965
  loadDataCount: h() ? 1 : 0
2936
- }), Z = async (p, v, x, L, y, q, te, oe, ae) => {
2966
+ }), ee = async (p, v, x, L, y, q, te, oe, ae) => {
2937
2967
  let B;
2938
2968
  if (q) {
2939
2969
  const K = await r.findOne(q);
@@ -2952,7 +2982,7 @@ function Dt(n) {
2952
2982
  originFilter: te,
2953
2983
  originGlobalFilter: ae,
2954
2984
  originSort: oe,
2955
- validator: Y
2985
+ validator: X
2956
2986
  };
2957
2987
  return K.dataSource.isActive() ? K.dataSource.setData(re) : K.dataSource.open(re), {
2958
2988
  ...K,
@@ -2982,7 +3012,7 @@ function Dt(n) {
2982
3012
  sort: v.sort,
2983
3013
  currentPage: v.currentPage,
2984
3014
  id: v.id
2985
- })), Z(
3015
+ })), ee(
2986
3016
  I.name,
2987
3017
  v.currentPage,
2988
3018
  v.pageSize,
@@ -3011,14 +3041,14 @@ function Dt(n) {
3011
3041
  })), n.onError && n.onError(L, x);
3012
3042
  }
3013
3043
  }
3014
- }, [Z, I.name, n.onError]), E = l((p) => {
3044
+ }, [ee, I.name, n.onError]), E = l((p) => {
3015
3045
  S.current || (p.addListener(D), S.current = !0);
3016
3046
  }, [D]), A = l((p) => {
3017
3047
  S.current && (p.removeListener(D), S.current = !1);
3018
3048
  }, [D]);
3019
3049
  J(() => {
3020
3050
  try {
3021
- return E(I.dataSource), u && I.loadDataCount === 0 ? (G((p) => ({ ...p, isLoading: !0 })), Z(
3051
+ return E(I.dataSource), u && I.loadDataCount === 0 ? (G((p) => ({ ...p, isLoading: !0 })), ee(
3022
3052
  I.name,
3023
3053
  z,
3024
3054
  $,
@@ -3098,7 +3128,7 @@ function Vt(n) {
3098
3128
  loadOnStart: z = !0,
3099
3129
  store: u,
3100
3130
  validator: a
3101
- } = n, V = () => !!(u && u.existsValue(e) || T), Y = () => u && u.existsValue(e) ? u.getValue(e) : T || new _e(t, e, {
3131
+ } = n, V = () => !!(u && u.existsValue(e) || T), X = () => u && u.existsValue(e) ? u.getValue(e) : T || new _e(t, e, {
3102
3132
  records: [],
3103
3133
  grandTotalRecords: 0,
3104
3134
  currentPage: $,
@@ -3106,7 +3136,7 @@ function Vt(n) {
3106
3136
  pageSize: O,
3107
3137
  validator: a
3108
3138
  }), [S, h] = C({
3109
- dataSource: Y(),
3139
+ dataSource: X(),
3110
3140
  isLoading: !1,
3111
3141
  isError: !1,
3112
3142
  error: "",
@@ -3144,7 +3174,7 @@ function Vt(n) {
3144
3174
  loadDataCount: q.loadDataCount + 1
3145
3175
  };
3146
3176
  }), u && u.setValue(e, S.dataSource), o && o(S.dataSource);
3147
- }, X = (D) => {
3177
+ }, Z = (D) => {
3148
3178
  if (D.type === d.refreshData) {
3149
3179
  const E = D.options;
3150
3180
  try {
@@ -3183,9 +3213,9 @@ function Vt(n) {
3183
3213
  }
3184
3214
  }
3185
3215
  }, I = (D) => {
3186
- D.addListener(X);
3216
+ D.addListener(Z);
3187
3217
  }, G = (D) => {
3188
- D.removeListener(X);
3218
+ D.removeListener(Z);
3189
3219
  };
3190
3220
  J(() => {
3191
3221
  try {
@@ -3222,7 +3252,7 @@ function Vt(n) {
3222
3252
  S.currentPage,
3223
3253
  S.pageSize
3224
3254
  ]);
3225
- const Z = () => {
3255
+ const ee = () => {
3226
3256
  h((D) => ({
3227
3257
  ...D,
3228
3258
  isError: !1,
@@ -3235,7 +3265,7 @@ function Vt(n) {
3235
3265
  isError: S.isError,
3236
3266
  error: S.error,
3237
3267
  dataSource: S.dataSource,
3238
- clearError: Z
3268
+ clearError: ee
3239
3269
  };
3240
3270
  }
3241
3271
  function Tt(n) {
@@ -42,6 +42,10 @@ export interface ArchbaseRemoteApiClient {
42
42
  delete<T>(url: string, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<T>;
43
43
  patch<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
44
44
  patchNoConvertId<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
45
+ /** Faz requisição GET e retorna Blob (para download de arquivos) */
46
+ getBlob(url: string, headers?: Record<string, string>, withoutToken?: boolean): Promise<Blob>;
47
+ /** Faz requisição POST e retorna Blob (para download de arquivos) */
48
+ postBlob<T>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean): Promise<Blob>;
45
49
  }
46
50
  export declare class ArchbaseAxiosRemoteApiClient implements ArchbaseRemoteApiClient {
47
51
  protected tokenManager: ArchbaseTokenManager;
@@ -56,6 +60,16 @@ export declare class ArchbaseAxiosRemoteApiClient implements ArchbaseRemoteApiCl
56
60
  delete<T>(url: string, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<T>;
57
61
  patch<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
58
62
  patchNoConvertId<T, R>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean, options?: any): Promise<R>;
63
+ /**
64
+ * Faz requisição GET e retorna Blob (para download de arquivos).
65
+ * Útil para exportação de relatórios em PDF, Excel, CSV, etc.
66
+ */
67
+ getBlob(url: string, headers?: Record<string, string>, withoutToken?: boolean): Promise<Blob>;
68
+ /**
69
+ * Faz requisição POST e retorna Blob (para download de arquivos).
70
+ * Útil para exportação de relatórios que requerem parâmetros complexos no body.
71
+ */
72
+ postBlob<T>(url: string, data: T, headers?: Record<string, string>, withoutToken?: boolean): Promise<Blob>;
59
73
  }
60
74
  export interface ArchbaseEntityTransformer<T> {
61
75
  transform(entity: T): T;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@archbase/data",
3
- "version": "3.0.4",
3
+ "version": "3.0.6",
4
4
  "description": "Data management layer for Archbase React v3 - DataSource, hooks, and API services",
5
5
  "author": "Edson Martins <edsonmartins2005@gmail.com>",
6
6
  "license": "MIT",
@@ -25,7 +25,7 @@
25
25
  "react-dom": "^18.3.0 || ^19.2.0"
26
26
  },
27
27
  "dependencies": {
28
- "@archbase/core": "3.0.4",
28
+ "@archbase/core": "3.0.6",
29
29
  "@tanstack/react-query": "^5.81.5",
30
30
  "axios": "^1.7.2",
31
31
  "date-fns": "^2.30.0",