@wgalleti/primevue-components 0.22.2 → 0.22.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.
Files changed (99) hide show
  1. package/dist/components/charts/WChart.vue.d.ts +12 -19
  2. package/dist/components/crud/WCrudColumnRenderer.vue.d.ts +2 -1
  3. package/dist/components/crud/WCrudFormDialog.vue.d.ts +56 -5
  4. package/dist/components/crud/WCrudSubview.vue.d.ts +30 -6
  5. package/dist/components/crud/WCrudView.vue.d.ts +89 -95
  6. package/dist/components/crud/WEditableTable.vue.d.ts +29 -27
  7. package/dist/components/form/WAutoCompleteFK.vue.d.ts +3 -2
  8. package/dist/components/form/WDatePicker.vue.d.ts +4 -9
  9. package/dist/components/form/WDateRange.vue.d.ts +2 -1
  10. package/dist/components/form/WFileUpload.vue.d.ts +8 -16
  11. package/dist/components/form/WFormRenderer.vue.d.ts +57 -5
  12. package/dist/components/form/WImageCropper.vue.d.ts +12 -20
  13. package/dist/components/form/WMarkdownEditor.vue.d.ts +3 -4
  14. package/dist/components/form/WMoneyInput.vue.d.ts +2 -1
  15. package/dist/components/form/WTransferList.vue.d.ts +3 -2
  16. package/dist/components/form/WTreeSelect.vue.d.ts +19 -21
  17. package/dist/components/ui/WActionBar.vue.d.ts +14 -15
  18. package/dist/components/ui/WCheckList.vue.d.ts +8 -12
  19. package/dist/components/ui/WDetailHeader.vue.d.ts +7 -11
  20. package/dist/components/ui/WDialog.vue.d.ts +7 -9
  21. package/dist/components/ui/WEmptyState.vue.d.ts +3 -2
  22. package/dist/components/ui/WFormSection.vue.d.ts +9 -12
  23. package/dist/components/ui/WInfoCard.vue.d.ts +3 -2
  24. package/dist/components/ui/WKanbanBoard.vue.d.ts +23 -46
  25. package/dist/components/ui/WKpiCard.vue.d.ts +15 -15
  26. package/dist/components/ui/WKpiGrid.vue.d.ts +12 -16
  27. package/dist/components/ui/WMapSelect.vue.d.ts +33 -42
  28. package/dist/components/ui/WMarkdownToc.vue.d.ts +2 -1
  29. package/dist/components/ui/WMarkdownView.vue.d.ts +3 -4
  30. package/dist/components/ui/WPageHeader.vue.d.ts +8 -12
  31. package/dist/components/ui/WProgressFlow.vue.d.ts +12 -16
  32. package/dist/components/ui/WSectionHeader.vue.d.ts +11 -13
  33. package/dist/components/ui/WStatusTag.vue.d.ts +2 -1
  34. package/dist/components/ui/WStepFlow.vue.d.ts +8 -16
  35. package/dist/components/ui/WStepSection.vue.d.ts +21 -20
  36. package/dist/components/ui/WTabBar.vue.d.ts +3 -2
  37. package/dist/components/ui/WTabNav.vue.d.ts +13 -30
  38. package/dist/components/ui/WTabViewport.vue.d.ts +2 -1
  39. package/dist/components--YULeZoE.cjs +25 -0
  40. package/dist/components--YULeZoE.cjs.map +1 -0
  41. package/dist/components-CYjLRDxm.js +6785 -0
  42. package/dist/components-CYjLRDxm.js.map +1 -0
  43. package/dist/components.cjs +1 -2
  44. package/dist/components.d.ts +1 -1
  45. package/dist/components.js +2 -42
  46. package/dist/composables-B-LVf35N.js +680 -0
  47. package/dist/composables-B-LVf35N.js.map +1 -0
  48. package/dist/composables-BqRASiBc.cjs +2 -0
  49. package/dist/composables-BqRASiBc.cjs.map +1 -0
  50. package/dist/composables.cjs +1 -2
  51. package/dist/composables.d.ts +1 -1
  52. package/dist/composables.js +3 -20
  53. package/dist/index.cjs +2 -2
  54. package/dist/index.cjs.map +1 -1
  55. package/dist/index.js +155 -234
  56. package/dist/index.js.map +1 -1
  57. package/dist/labels-CXBhCk2N.js +20 -0
  58. package/dist/labels-CXBhCk2N.js.map +1 -0
  59. package/dist/labels-DiFDhFhQ.cjs +2 -0
  60. package/dist/labels-DiFDhFhQ.cjs.map +1 -0
  61. package/dist/primevue-components.css +2 -1
  62. package/dist/routeTabs-BnVpnSeJ.cjs +2 -0
  63. package/dist/routeTabs-BnVpnSeJ.cjs.map +1 -0
  64. package/dist/routeTabs-D6m8PuP6.js +10 -0
  65. package/dist/routeTabs-D6m8PuP6.js.map +1 -0
  66. package/dist/types.cjs +1 -2
  67. package/dist/types.d.ts +1 -1
  68. package/dist/types.js +3 -11
  69. package/dist/useFormKeyboardNav-Brgrjxu-.js +550 -0
  70. package/dist/useFormKeyboardNav-Brgrjxu-.js.map +1 -0
  71. package/dist/useFormKeyboardNav-HoSmQwuv.cjs +3 -0
  72. package/dist/useFormKeyboardNav-HoSmQwuv.cjs.map +1 -0
  73. package/package.json +19 -18
  74. package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-ByBa9LKO.cjs +0 -28
  75. package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-ByBa9LKO.cjs.map +0 -1
  76. package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-rd2SGufX.js +0 -6873
  77. package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-rd2SGufX.js.map +0 -1
  78. package/dist/components.cjs.map +0 -1
  79. package/dist/components.js.map +0 -1
  80. package/dist/composables.cjs.map +0 -1
  81. package/dist/composables.js.map +0 -1
  82. package/dist/labels-B28P8JNB.js +0 -19
  83. package/dist/labels-B28P8JNB.js.map +0 -1
  84. package/dist/labels-pNskxXcl.cjs +0 -2
  85. package/dist/labels-pNskxXcl.cjs.map +0 -1
  86. package/dist/plugin-CIBvOgwG.js +0 -14
  87. package/dist/plugin-CIBvOgwG.js.map +0 -1
  88. package/dist/plugin-D2IZHyBm.cjs +0 -2
  89. package/dist/plugin-D2IZHyBm.cjs.map +0 -1
  90. package/dist/types.cjs.map +0 -1
  91. package/dist/types.js.map +0 -1
  92. package/dist/useFormKeyboardNav-BgBAe0C7.cjs +0 -3
  93. package/dist/useFormKeyboardNav-BgBAe0C7.cjs.map +0 -1
  94. package/dist/useFormKeyboardNav-BrKZrHq9.js +0 -463
  95. package/dist/useFormKeyboardNav-BrKZrHq9.js.map +0 -1
  96. package/dist/useRouteTabs-CSo1j_ji.js +0 -762
  97. package/dist/useRouteTabs-CSo1j_ji.js.map +0 -1
  98. package/dist/useRouteTabs-VGx93R83.cjs +0 -2
  99. package/dist/useRouteTabs-VGx93R83.cjs.map +0 -1
package/dist/index.js CHANGED
@@ -1,247 +1,168 @@
1
- import { W as _, b as y, a as w } from "./plugin-CIBvOgwG.js";
2
- import { c as O, u as B } from "./plugin-CIBvOgwG.js";
3
- import { f as b, d as C, c as S, a as P, y as A, I as T, J as v } from "./WKanbanBoard.vue_vue_type_script_setup_true_lang-rd2SGufX.js";
4
- import { _ as N, W as V, b as q, e as j, g as U, h as G, i as J, j as Q, k as X, l as Z, m as ee, n as ae, o as te, p as se, q as re, r as ne, s as oe, t as ie, u as ce, v as ue, w as de, x as le, z as me, A as fe, B as pe, C as ge, D as We, E as _e, F as ye, G as we, H as be, K as Ce, L as Se, M as Pe, N as Ae, O as Te, P as ve, Q as De, R as Fe, S as xe, T as Ee } from "./WKanbanBoard.vue_vue_type_script_setup_true_lang-rd2SGufX.js";
5
- import { u as Re, a as $e, b as ze, c as Le } from "./useRouteTabs-CSo1j_ji.js";
6
- import { e as Ye, u as Ie, a as Ke, b as ke, c as Oe, f as Be } from "./useFormKeyboardNav-BrKZrHq9.js";
7
- import { D as Ne } from "./labels-B28P8JNB.js";
8
- function D(e, a, t) {
9
- const s = e;
10
- return Array.isArray(s.results) ? {
11
- data: s.results,
12
- page: s.page ?? a,
13
- page_size: s.page_size ?? t,
14
- rows: s.count ?? 0,
15
- extras: s.extras ?? {}
16
- } : Array.isArray(s.data) ? {
17
- data: s.data,
18
- page: s.page ?? a,
19
- page_size: s.page_size ?? t,
20
- rows: s.rows ?? 0,
21
- extras: s.extras ?? {}
22
- } : {
23
- data: Array.isArray(e) ? e : [],
24
- page: a,
25
- page_size: t,
26
- rows: Array.isArray(e) ? e.length : 0,
27
- extras: {}
28
- };
1
+ import { a as e, i as t, n, o as r, r as i, s as a } from "./useFormKeyboardNav-Brgrjxu-.js";
2
+ import { a as o, i as s, n as c, r as l, t as u } from "./routeTabs-D6m8PuP6.js";
3
+ import { A as d, B as ee, C as te, D as f, E as p, F as m, G as h, H as ne, I as re, J as g, K as ie, L as _, M as ae, N as oe, O as v, P as y, R as b, S as x, T as S, U as C, V as w, W as T, _ as E, a as D, b as O, c as k, d as A, f as j, g as M, h as N, i as P, j as F, k as I, l as L, m as R, n as z, o as B, p as V, q as se, r as H, s as U, t as W, u as G, v as K, w as ce, x as le, y as ue, z as q } from "./components-CYjLRDxm.js";
4
+ import { t as de } from "./labels-CXBhCk2N.js";
5
+ import { a as fe, i as pe, n as me, t as he } from "./composables-B-LVf35N.js";
6
+ import "./types.js";
7
+ //#region src/data-providers/axiosDataProvider.ts
8
+ function ge(e, t, n) {
9
+ let r = e;
10
+ return Array.isArray(r.results) ? {
11
+ data: r.results,
12
+ page: r.page ?? t,
13
+ page_size: r.page_size ?? n,
14
+ rows: r.count ?? 0,
15
+ extras: r.extras ?? {}
16
+ } : Array.isArray(r.data) ? {
17
+ data: r.data,
18
+ page: r.page ?? t,
19
+ page_size: r.page_size ?? n,
20
+ rows: r.rows ?? 0,
21
+ extras: r.extras ?? {}
22
+ } : {
23
+ data: Array.isArray(e) ? e : [],
24
+ page: t,
25
+ page_size: n,
26
+ rows: Array.isArray(e) ? e.length : 0,
27
+ extras: {}
28
+ };
29
29
  }
30
- function F(e) {
31
- return {
32
- async list(a, t = {}) {
33
- const s = await e.get(a, { params: t });
34
- return D(
35
- s.data,
36
- Number(t.page ?? 1),
37
- Number(t.page_size ?? 20)
38
- );
39
- },
40
- async get(a, t, s) {
41
- return { data: (await e.get(`${a}${t}/`, s)).data };
42
- },
43
- async create(a, t, s) {
44
- return { data: (await e.post(a, t, s)).data };
45
- },
46
- async update(a, t, s, r) {
47
- return { data: (await e.patch(`${a}${t}/`, s, r)).data };
48
- },
49
- async delete(a, t) {
50
- await e.delete(`${a}${t}/`);
51
- }
52
- };
30
+ function J(e) {
31
+ return {
32
+ async list(t, n = {}) {
33
+ return ge((await e.get(t, { params: n })).data, Number(n.page ?? 1), Number(n.page_size ?? 20));
34
+ },
35
+ async get(t, n, r) {
36
+ return { data: (await e.get(`${t}${n}/`, r)).data };
37
+ },
38
+ async create(t, n, r) {
39
+ return { data: (await e.post(t, n, r)).data };
40
+ },
41
+ async update(t, n, r, i) {
42
+ return { data: (await e.patch(`${t}${n}/`, r, i)).data };
43
+ },
44
+ async delete(t, n) {
45
+ await e.delete(`${t}${n}/`);
46
+ }
47
+ };
53
48
  }
54
- const Y = {
55
- install(e, a) {
56
- if (!(a != null && a.axios) && !(a != null && a.dataProvider))
57
- throw new Error(
58
- '[wPrimeVueComponents] Informe "axios" ou "dataProvider" ao registrar o WPrimeVuePlugin.'
59
- );
60
- const t = a.dataProvider ?? F(a.axios), s = {
61
- axios: a.axios,
62
- dataProvider: t,
63
- defaultPageSize: a.defaultPageSize ?? 20,
64
- dateFormat: a.dateFormat ?? "DD/MM/YYYY",
65
- dateTimeFormat: a.dateTimeFormat ?? "DD/MM/YYYY HH:mm",
66
- locale: a.locale ?? "pt-BR",
67
- currency: a.currency ?? "BRL"
68
- };
69
- a.axios && e.provide(_, a.axios), e.provide(y, t), e.provide(w, s), a.registerComponents !== !1 && (e.component("WCrudView", b), e.component("WCrudFormDialog", C), e.component("WCrudColumnRenderer", S), e.component("WAutoCompleteFK", P), e.component("WMoneyInput", A), e.component("WTransferList", T), e.component("WTreeSelect", v));
70
- }
71
- };
72
- function x(e) {
73
- return e.split("?")[0].replace(/^\/+|\/+$/g, "").replace(/^api\/v\d+\//, "");
49
+ //#endregion
50
+ //#region src/plugin.ts
51
+ var _e = { install(e, t) {
52
+ if (!t?.axios && !t?.dataProvider) throw Error("[wPrimeVueComponents] Informe \"axios\" ou \"dataProvider\" ao registrar o WPrimeVuePlugin.");
53
+ let n = t.dataProvider ?? J(t.axios), r = {
54
+ axios: t.axios,
55
+ dataProvider: n,
56
+ defaultPageSize: t.defaultPageSize ?? 20,
57
+ dateFormat: t.dateFormat ?? "DD/MM/YYYY",
58
+ dateTimeFormat: t.dateTimeFormat ?? "DD/MM/YYYY HH:mm",
59
+ locale: t.locale ?? "pt-BR",
60
+ currency: t.currency ?? "BRL"
61
+ };
62
+ t.axios && e.provide(l, t.axios), e.provide(o, n), e.provide(s, r), t.registerComponents !== !1 && (e.component("WCrudView", y), e.component("WCrudFormDialog", _), e.component("WCrudColumnRenderer", g), e.component("WAutoCompleteFK", C), e.component("WMoneyInput", w), e.component("WTransferList", q), e.component("WTreeSelect", I));
63
+ } };
64
+ //#endregion
65
+ //#region src/data-providers/supabaseDataProvider.ts
66
+ function Y(e) {
67
+ return e.split("?")[0].replace(/^\/+|\/+$/g, "").replace(/^api\/v\d+\//, "");
74
68
  }
75
- function E(e) {
76
- return typeof e == "string" ? { table: e } : e;
69
+ function ve(e) {
70
+ return typeof e == "string" ? { table: e } : e;
77
71
  }
78
- function W(e, a = 400) {
79
- return {
80
- response: {
81
- status: a,
82
- data: { detail: e }
83
- },
84
- message: e
85
- };
72
+ function X(e, t = 400) {
73
+ return {
74
+ response: {
75
+ status: t,
76
+ data: { detail: e }
77
+ },
78
+ message: e
79
+ };
86
80
  }
87
- function g(e) {
88
- if (e instanceof FormData)
89
- throw W(
90
- "SupabaseDataProvider nao envia FormData diretamente. Faça upload do arquivo no Storage e envie a URL/caminho no payload."
91
- );
92
- return e;
81
+ function Z(e) {
82
+ if (e instanceof FormData) throw X("SupabaseDataProvider nao envia FormData diretamente. Faça upload do arquivo no Storage e envie a URL/caminho no payload.");
83
+ return e;
93
84
  }
94
- function m(e) {
95
- throw {
96
- response: {
97
- data: {
98
- detail: (e == null ? void 0 : e.message) ?? "Erro ao consultar Supabase",
99
- code: e == null ? void 0 : e.code,
100
- details: e == null ? void 0 : e.details,
101
- hint: e == null ? void 0 : e.hint
102
- }
103
- },
104
- message: (e == null ? void 0 : e.message) ?? "Erro ao consultar Supabase"
105
- };
85
+ function Q(e) {
86
+ throw {
87
+ response: { data: {
88
+ detail: e?.message ?? "Erro ao consultar Supabase",
89
+ code: e?.code,
90
+ details: e?.details,
91
+ hint: e?.hint
92
+ } },
93
+ message: e?.message ?? "Erro ao consultar Supabase"
94
+ };
106
95
  }
107
- function f(e, a) {
108
- var r, n;
109
- const t = x(e), s = (r = a.resources) == null ? void 0 : r[t];
110
- if (s)
111
- return E(s);
112
- if ((n = a.allowedTables) != null && n.includes(t))
113
- return { table: t };
114
- throw W(`Recurso Supabase nao registrado para o endpoint "${e}".`, 404);
96
+ function $(e, t) {
97
+ let n = Y(e), r = t.resources?.[n];
98
+ if (r) return ve(r);
99
+ if (t.allowedTables?.includes(n)) return { table: n };
100
+ throw X(`Recurso Supabase nao registrado para o endpoint "${e}".`, 404);
115
101
  }
116
- function h(e, a, t) {
117
- const s = /* @__PURE__ */ new Set(["page", "page_size", "search", "ordering"]), r = { ...t.defaultFilters, ...a };
118
- for (const [n, o] of Object.entries(r))
119
- s.has(n) || o === null || o === void 0 || o === "" || (e = e.eq(n, o));
120
- return e;
102
+ function ye(e, t, n) {
103
+ let r = /* @__PURE__ */ new Set([
104
+ "page",
105
+ "page_size",
106
+ "search",
107
+ "ordering"
108
+ ]), i = {
109
+ ...n.defaultFilters,
110
+ ...t
111
+ };
112
+ for (let [t, n] of Object.entries(i)) r.has(t) || n == null || n === "" || (e = e.eq(t, n));
113
+ return e;
121
114
  }
122
- function R(e, a, t) {
123
- if (typeof a != "string" || !a.trim() || !(t != null && t.length))
124
- return e;
125
- const s = a.trim().replace(/,/g, "\\,"), r = t.map((n) => `${n}.ilike.%${s}%`).join(",");
126
- return e.or(r);
115
+ function be(e, t, n) {
116
+ if (typeof t != "string" || !t.trim() || !n?.length) return e;
117
+ let r = t.trim().replace(/,/g, "\\,"), i = n.map((e) => `${e}.ilike.%${r}%`).join(",");
118
+ return e.or(i);
127
119
  }
128
- function $(e, a) {
129
- const t = typeof e == "string" && e ? e : a;
130
- return t ? {
131
- field: t.startsWith("-") ? t.slice(1) : t,
132
- ascending: !t.startsWith("-")
133
- } : null;
120
+ function xe(e, t) {
121
+ let n = typeof e == "string" && e ? e : t;
122
+ return n ? {
123
+ field: n.startsWith("-") ? n.slice(1) : n,
124
+ ascending: !n.startsWith("-")
125
+ } : null;
134
126
  }
135
- function z(e, a) {
136
- return e ? a.mapListItem ? e.map((t) => {
137
- var s;
138
- return (s = a.mapListItem) == null ? void 0 : s.call(a, t);
139
- }) : e : [];
127
+ function Se(e, t) {
128
+ return e ? t.mapListItem ? e.map((e) => t.mapListItem?.(e)) : e : [];
140
129
  }
141
- function I(e) {
142
- const a = e.defaultSelect ?? "*";
143
- return {
144
- async list(t, s = {}) {
145
- var p;
146
- const r = f(t, e), n = Math.max(Number(s.page ?? 1), 1), o = Math.max(Number(s.page_size ?? 20), 1), i = (n - 1) * o, u = i + o - 1;
147
- let c = e.client.from(r.table).select(r.select ?? a, { count: "exact" });
148
- c = h(c, s, r), c = R(c, s.search, r.searchFields);
149
- const d = $(s.ordering, r.defaultOrdering);
150
- d && (c = c.order(d.field, { ascending: d.ascending }));
151
- const l = await c.range(i, u);
152
- return l.error && m(l.error), {
153
- data: z(l.data, r),
154
- page: n,
155
- page_size: o,
156
- rows: l.count ?? ((p = l.data) == null ? void 0 : p.length) ?? 0,
157
- extras: {}
158
- };
159
- },
160
- async get(t, s, r) {
161
- const n = f(t, e), o = n.pk ?? "id", i = await e.client.from(n.table).select(n.select ?? a).eq(o, s).single();
162
- return i.error && m(i.error), { data: i.data };
163
- },
164
- async create(t, s, r) {
165
- const n = f(t, e), o = g(s), i = n.mapPayload ? n.mapPayload(o, "create") : o, u = await e.client.from(n.table).insert(i).select(n.select ?? a).single();
166
- return u.error && m(u.error), { data: u.data };
167
- },
168
- async update(t, s, r, n) {
169
- const o = f(t, e), i = o.pk ?? "id", u = g(r), c = o.mapPayload ? o.mapPayload(u, "update") : u, d = await e.client.from(o.table).update(c).eq(i, s).select(o.select ?? a).single();
170
- return d.error && m(d.error), { data: d.data };
171
- },
172
- async delete(t, s) {
173
- const r = f(t, e), n = r.pk ?? "id", o = r.softDelete === !0 ? { is_active: !1 } : typeof r.softDelete == "object" ? r.softDelete : null, i = o ? await e.client.from(r.table).update(o).eq(n, s) : await e.client.from(r.table).delete().eq(n, s);
174
- i.error && m(i.error);
175
- }
176
- };
130
+ function Ce(e) {
131
+ let t = e.defaultSelect ?? "*";
132
+ return {
133
+ async list(n, r = {}) {
134
+ let i = $(n, e), a = Math.max(Number(r.page ?? 1), 1), o = Math.max(Number(r.page_size ?? 20), 1), s = (a - 1) * o, c = s + o - 1, l = e.client.from(i.table).select(i.select ?? t, { count: "exact" });
135
+ l = ye(l, r, i), l = be(l, r.search, i.searchFields);
136
+ let u = xe(r.ordering, i.defaultOrdering);
137
+ u && (l = l.order(u.field, { ascending: u.ascending }));
138
+ let d = await l.range(s, c);
139
+ return d.error && Q(d.error), {
140
+ data: Se(d.data, i),
141
+ page: a,
142
+ page_size: o,
143
+ rows: d.count ?? d.data?.length ?? 0,
144
+ extras: {}
145
+ };
146
+ },
147
+ async get(n, r, i) {
148
+ let a = $(n, e), o = a.pk ?? "id", s = await e.client.from(a.table).select(a.select ?? t).eq(o, r).single();
149
+ return s.error && Q(s.error), { data: s.data };
150
+ },
151
+ async create(n, r, i) {
152
+ let a = $(n, e), o = Z(r), s = a.mapPayload ? a.mapPayload(o, "create") : o, c = await e.client.from(a.table).insert(s).select(a.select ?? t).single();
153
+ return c.error && Q(c.error), { data: c.data };
154
+ },
155
+ async update(n, r, i, a) {
156
+ let o = $(n, e), s = o.pk ?? "id", c = Z(i), l = o.mapPayload ? o.mapPayload(c, "update") : c, u = await e.client.from(o.table).update(l).eq(s, r).select(o.select ?? t).single();
157
+ return u.error && Q(u.error), { data: u.data };
158
+ },
159
+ async delete(t, n) {
160
+ let r = $(t, e), i = r.pk ?? "id", a = r.softDelete === !0 ? { is_active: !1 } : typeof r.softDelete == "object" ? r.softDelete : null, o = a ? await e.client.from(r.table).update(a).eq(i, n) : await e.client.from(r.table).delete().eq(i, n);
161
+ o.error && Q(o.error);
162
+ }
163
+ };
177
164
  }
178
- export {
179
- Ne as DEFAULT_CRUD_LABELS,
180
- N as WActionBar,
181
- P as WAutoCompleteFK,
182
- V as WChart,
183
- q as WCheckList,
184
- S as WCrudColumnRenderer,
185
- C as WCrudFormDialog,
186
- j as WCrudSubview,
187
- b as WCrudView,
188
- U as WDatePicker,
189
- G as WDateRange,
190
- J as WDetailHeader,
191
- Q as WDialog,
192
- X as WEditableTable,
193
- Z as WEmptyState,
194
- ee as WFileUpload,
195
- ae as WFormRenderer,
196
- te as WFormSection,
197
- se as WImageCropper,
198
- re as WInfoCard,
199
- ne as WKanbanBoard,
200
- oe as WKpiCard,
201
- ie as WKpiGrid,
202
- ce as WMapSelect,
203
- ue as WMarkdownEditor,
204
- de as WMarkdownToc,
205
- le as WMarkdownView,
206
- A as WMoneyInput,
207
- me as WPageHeader,
208
- Y as WPrimeVuePlugin,
209
- fe as WProgressFlow,
210
- pe as WSectionHeader,
211
- ge as WStatusTag,
212
- We as WStepFlow,
213
- _e as WStepSection,
214
- ye as WTabBar,
215
- we as WTabNav,
216
- be as WTabViewport,
217
- T as WTransferList,
218
- v as WTreeSelect,
219
- _ as W_AXIOS_KEY,
220
- w as W_CONFIG_KEY,
221
- y as W_DATA_PROVIDER_KEY,
222
- Ce as W_STEP_FLOW_KEY,
223
- O as W_TAB_HOST_KEY,
224
- Se as buildChartTheme,
225
- Pe as buildPrintTheme,
226
- F as createAxiosDataProvider,
227
- I as createSupabaseDataProvider,
228
- Ae as donutOption,
229
- Te as downloadCsv,
230
- Ye as extractApiError,
231
- ve as mapApiFieldToColumnDef,
232
- De as mapApiFieldToFieldDef,
233
- Fe as mapApiFieldsToColumnDefs,
234
- xe as mapApiFieldsToFieldDefs,
235
- Ee as toCsv,
236
- Re as useApi,
237
- Ie as useApiError,
238
- Ke as useAppConfirm,
239
- ke as useAppToast,
240
- $e as useCrudManager,
241
- Oe as useDateInput,
242
- Be as useFormatters,
243
- ze as useRouteTabs,
244
- Le as useSubviewCrud,
245
- B as useTabHost
246
- };
247
- //# sourceMappingURL=index.js.map
165
+ //#endregion
166
+ export { de as DEFAULT_CRUD_LABELS, N as WActionBar, C as WAutoCompleteFK, S as WChart, G as WCheckList, g as WCrudColumnRenderer, _ as WCrudFormDialog, ae as WCrudSubview, y as WCrudView, ne as WDatePicker, F as WDateRange, le as WDetailHeader, D as WDialog, oe as WEditableTable, x as WEmptyState, d as WFileUpload, b as WFormRenderer, M as WFormSection, ee as WImageCropper, O as WInfoCard, W as WKanbanBoard, ue as WKpiCard, K as WKpiGrid, L as WMapSelect, U as WMarkdownEditor, B as WMarkdownToc, k as WMarkdownView, w as WMoneyInput, te as WPageHeader, _e as WPrimeVuePlugin, R as WProgressFlow, E as WSectionHeader, ce as WStatusTag, j as WStepFlow, A as WStepSection, P as WTabBar, H as WTabNav, z as WTabViewport, q as WTransferList, I as WTreeSelect, l as W_AXIOS_KEY, s as W_CONFIG_KEY, o as W_DATA_PROVIDER_KEY, V as W_STEP_FLOW_KEY, u as W_TAB_HOST_KEY, p as buildChartTheme, f as buildPrintTheme, J as createAxiosDataProvider, Ce as createSupabaseDataProvider, v as donutOption, m as downloadCsv, i as extractApiError, T as mapApiFieldToColumnDef, h as mapApiFieldToFieldDef, ie as mapApiFieldsToColumnDefs, se as mapApiFieldsToFieldDefs, re as toCsv, me as useApi, t as useApiError, e as useAppConfirm, r as useAppToast, fe as useCrudManager, n as useDateInput, a as useFormatters, he as useRouteTabs, pe as useSubviewCrud, c as useTabHost };
167
+
168
+ //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/data-providers/axiosDataProvider.ts","../src/plugin.ts","../src/data-providers/supabaseDataProvider.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport type {\n DataProvider,\n DataProviderListParams,\n DataProviderListResponse,\n DataProviderRequestConfig,\n DataProviderResponse,\n} from '@/types/dataProvider'\n\nfunction normalizeListResponse<T>(\n responseData: unknown,\n fallbackPage: number,\n fallbackPageSize: number,\n): DataProviderListResponse<T> {\n const data = responseData as Record<string, unknown>\n\n if (Array.isArray(data.results)) {\n return {\n data: data.results as T[],\n page: (data.page as number) ?? fallbackPage,\n page_size: (data.page_size as number) ?? fallbackPageSize,\n rows: (data.count as number) ?? 0,\n extras: (data.extras as Record<string, unknown>) ?? {},\n }\n }\n\n if (Array.isArray(data.data)) {\n return {\n data: data.data as T[],\n page: (data.page as number) ?? fallbackPage,\n page_size: (data.page_size as number) ?? fallbackPageSize,\n rows: (data.rows as number) ?? 0,\n extras: (data.extras as Record<string, unknown>) ?? {},\n }\n }\n\n return {\n data: Array.isArray(responseData) ? (responseData as T[]) : [],\n page: fallbackPage,\n page_size: fallbackPageSize,\n rows: Array.isArray(responseData) ? responseData.length : 0,\n extras: {},\n }\n}\n\nexport function createAxiosDataProvider(axios: AxiosInstance): DataProvider {\n return {\n async list<T = Record<string, unknown>>(\n endpoint: string,\n params: DataProviderListParams = {},\n ): Promise<DataProviderListResponse<T>> {\n const response = await axios.get(endpoint, { params })\n return normalizeListResponse<T>(\n response.data,\n Number(params.page ?? 1),\n Number(params.page_size ?? 20),\n )\n },\n\n async get<T = Record<string, unknown>>(\n endpoint: string,\n id: string | number,\n config?: DataProviderRequestConfig,\n ): Promise<DataProviderResponse<T>> {\n const response = await axios.get<T>(`${endpoint}${id}/`, config)\n return { data: response.data }\n },\n\n async create<T = Record<string, unknown>>(\n endpoint: string,\n payload: Record<string, unknown> | FormData,\n config?: DataProviderRequestConfig,\n ): Promise<DataProviderResponse<T>> {\n const response = await axios.post<T>(endpoint, payload, config)\n return { data: response.data }\n },\n\n async update<T = Record<string, unknown>>(\n endpoint: string,\n id: string | number,\n payload: Record<string, unknown> | FormData,\n config?: DataProviderRequestConfig,\n ): Promise<DataProviderResponse<T>> {\n const response = await axios.patch<T>(`${endpoint}${id}/`, payload, config)\n return { data: response.data }\n },\n\n async delete(endpoint: string, id: string | number): Promise<void> {\n await axios.delete(`${endpoint}${id}/`)\n },\n }\n}\n","import type { App, Plugin } from 'vue'\nimport type { WPluginOptions, WPluginConfig } from './types/plugin'\nimport { W_AXIOS_KEY, W_CONFIG_KEY, W_DATA_PROVIDER_KEY } from './types/plugin'\nimport {\n WCrudView,\n WCrudFormDialog,\n WCrudColumnRenderer,\n WAutoCompleteFK,\n WMoneyInput,\n WTransferList,\n WTreeSelect,\n} from './components'\nimport { createAxiosDataProvider } from './data-providers/axiosDataProvider'\n\nexport const WPrimeVuePlugin: Plugin = {\n install(app: App, options: WPluginOptions) {\n if (!options?.axios && !options?.dataProvider) {\n throw new Error(\n '[wPrimeVueComponents] Informe \"axios\" ou \"dataProvider\" ao registrar o WPrimeVuePlugin.',\n )\n }\n\n const dataProvider = options.dataProvider ?? createAxiosDataProvider(options.axios!)\n\n const config: WPluginConfig = {\n axios: options.axios,\n dataProvider,\n defaultPageSize: options.defaultPageSize ?? 20,\n dateFormat: options.dateFormat ?? 'DD/MM/YYYY',\n dateTimeFormat: options.dateTimeFormat ?? 'DD/MM/YYYY HH:mm',\n locale: options.locale ?? 'pt-BR',\n currency: options.currency ?? 'BRL',\n }\n\n if (options.axios) {\n app.provide(W_AXIOS_KEY, options.axios)\n }\n app.provide(W_DATA_PROVIDER_KEY, dataProvider)\n app.provide(W_CONFIG_KEY, config)\n\n if (options.registerComponents !== false) {\n app.component('WCrudView', WCrudView)\n app.component('WCrudFormDialog', WCrudFormDialog)\n app.component('WCrudColumnRenderer', WCrudColumnRenderer)\n app.component('WAutoCompleteFK', WAutoCompleteFK)\n app.component('WMoneyInput', WMoneyInput)\n app.component('WTransferList', WTransferList)\n app.component('WTreeSelect', WTreeSelect)\n }\n },\n}\n","import type {\n DataProvider,\n DataProviderListParams,\n DataProviderListResponse,\n DataProviderRequestConfig,\n DataProviderResponse,\n} from '@/types/dataProvider'\n\ntype SupabaseResult<T> = {\n data: T | null\n error: {\n message: string\n code?: string\n details?: string\n hint?: string\n } | null\n count?: number | null\n}\n\ntype SupabaseFilterBuilder<T> = PromiseLike<SupabaseResult<T>> & {\n select(\n columns?: string,\n options?: { count?: 'exact' | 'planned' | 'estimated' },\n ): SupabaseFilterBuilder<T>\n eq(column: string, value: unknown): SupabaseFilterBuilder<T>\n ilike(column: string, pattern: string): SupabaseFilterBuilder<T>\n or(filters: string): SupabaseFilterBuilder<T>\n order(column: string, options?: { ascending?: boolean }): SupabaseFilterBuilder<T>\n range(from: number, to: number): SupabaseFilterBuilder<T>\n single(): Promise<SupabaseResult<T>>\n}\n\ntype SupabaseTable = {\n select<T = unknown>(\n columns?: string,\n options?: { count?: 'exact' | 'planned' | 'estimated' },\n ): SupabaseFilterBuilder<T>\n insert<T = unknown>(payload: unknown): SupabaseFilterBuilder<T>\n update<T = unknown>(payload: unknown): SupabaseFilterBuilder<T>\n delete<T = unknown>(): SupabaseFilterBuilder<T>\n}\n\nexport interface SupabaseDataProviderClient {\n from(table: string): SupabaseTable\n}\n\nexport interface SupabaseResourceConfig {\n table: string\n pk?: string\n select?: string\n searchFields?: string[]\n defaultOrdering?: string\n defaultFilters?: Record<string, unknown>\n softDelete?: boolean | Record<string, unknown>\n mapListItem?: (item: Record<string, unknown>) => Record<string, unknown>\n mapPayload?: (\n payload: Record<string, unknown>,\n operation: 'create' | 'update',\n ) => Record<string, unknown>\n}\n\nexport interface CreateSupabaseDataProviderOptions {\n client: SupabaseDataProviderClient\n resources?: Record<string, SupabaseResourceConfig | string>\n defaultSelect?: string\n allowedTables?: string[]\n}\n\nfunction normalizeEndpoint(endpoint: string): string {\n return endpoint\n .split('?')[0]\n .replace(/^\\/+|\\/+$/g, '')\n .replace(/^api\\/v\\d+\\//, '')\n}\n\nfunction toResourceConfig(resource: SupabaseResourceConfig | string): SupabaseResourceConfig {\n return typeof resource === 'string' ? { table: resource } : resource\n}\n\nfunction createProviderError(message: string, status = 400) {\n return {\n response: {\n status,\n data: { detail: message },\n },\n message,\n }\n}\n\nfunction assertPlainPayload(payload: Record<string, unknown> | FormData): Record<string, unknown> {\n if (payload instanceof FormData) {\n throw createProviderError(\n 'SupabaseDataProvider nao envia FormData diretamente. Faça upload do arquivo no Storage e envie a URL/caminho no payload.',\n )\n }\n\n return payload\n}\n\nfunction normalizeSupabaseError(error: SupabaseResult<unknown>['error']): never {\n throw {\n response: {\n data: {\n detail: error?.message ?? 'Erro ao consultar Supabase',\n code: error?.code,\n details: error?.details,\n hint: error?.hint,\n },\n },\n message: error?.message ?? 'Erro ao consultar Supabase',\n }\n}\n\nfunction resolveResource(\n endpoint: string,\n options: CreateSupabaseDataProviderOptions,\n): SupabaseResourceConfig {\n const resourceName = normalizeEndpoint(endpoint)\n const configuredResource = options.resources?.[resourceName]\n\n if (configuredResource) {\n return toResourceConfig(configuredResource)\n }\n\n if (options.allowedTables?.includes(resourceName)) {\n return { table: resourceName }\n }\n\n throw createProviderError(`Recurso Supabase nao registrado para o endpoint \"${endpoint}\".`, 404)\n}\n\nfunction applyFilters<T>(\n query: SupabaseFilterBuilder<T>,\n params: DataProviderListParams,\n resource: SupabaseResourceConfig,\n): SupabaseFilterBuilder<T> {\n const reservedKeys = new Set(['page', 'page_size', 'search', 'ordering'])\n const filters = { ...resource.defaultFilters, ...params }\n\n for (const [key, value] of Object.entries(filters)) {\n if (reservedKeys.has(key) || value === null || value === undefined || value === '') {\n continue\n }\n query = query.eq(key, value)\n }\n\n return query\n}\n\nfunction applySearch<T>(\n query: SupabaseFilterBuilder<T>,\n search: unknown,\n searchFields?: string[],\n): SupabaseFilterBuilder<T> {\n if (typeof search !== 'string' || !search.trim() || !searchFields?.length) {\n return query\n }\n\n const escapedSearch = search.trim().replace(/,/g, '\\\\,')\n const expression = searchFields.map((field) => `${field}.ilike.%${escapedSearch}%`).join(',')\n\n return query.or(expression)\n}\n\nfunction parseOrdering(ordering: unknown, fallback?: string) {\n const value = typeof ordering === 'string' && ordering ? ordering : fallback\n if (!value) return null\n\n return {\n field: value.startsWith('-') ? value.slice(1) : value,\n ascending: !value.startsWith('-'),\n }\n}\n\nfunction mapList<T>(data: T[] | null, resource: SupabaseResourceConfig): T[] {\n if (!data) return []\n if (!resource.mapListItem) return data\n\n return data.map((item) => resource.mapListItem?.(item as Record<string, unknown>)) as T[]\n}\n\nexport function createSupabaseDataProvider(\n options: CreateSupabaseDataProviderOptions,\n): DataProvider {\n const defaultSelect = options.defaultSelect ?? '*'\n\n return {\n async list<T = Record<string, unknown>>(\n endpoint: string,\n params: DataProviderListParams = {},\n ): Promise<DataProviderListResponse<T>> {\n const resource = resolveResource(endpoint, options)\n const page = Math.max(Number(params.page ?? 1), 1)\n const pageSize = Math.max(Number(params.page_size ?? 20), 1)\n const from = (page - 1) * pageSize\n const to = from + pageSize - 1\n\n let query = options.client\n .from(resource.table)\n .select<T[]>(resource.select ?? defaultSelect, { count: 'exact' })\n\n query = applyFilters(query, params, resource)\n query = applySearch(query, params.search, resource.searchFields)\n\n const ordering = parseOrdering(params.ordering, resource.defaultOrdering)\n if (ordering) {\n query = query.order(ordering.field, { ascending: ordering.ascending })\n }\n\n const result = await query.range(from, to)\n if (result.error) normalizeSupabaseError(result.error)\n\n return {\n data: mapList(result.data, resource),\n page,\n page_size: pageSize,\n rows: result.count ?? result.data?.length ?? 0,\n extras: {},\n }\n },\n\n async get<T = Record<string, unknown>>(\n endpoint: string,\n id: string | number,\n _config?: DataProviderRequestConfig,\n ): Promise<DataProviderResponse<T>> {\n const resource = resolveResource(endpoint, options)\n const pk = resource.pk ?? 'id'\n const result = await options.client\n .from(resource.table)\n .select<T>(resource.select ?? defaultSelect)\n .eq(pk, id)\n .single()\n\n if (result.error) normalizeSupabaseError(result.error)\n return { data: result.data as T }\n },\n\n async create<T = Record<string, unknown>>(\n endpoint: string,\n payload: Record<string, unknown> | FormData,\n _config?: DataProviderRequestConfig,\n ): Promise<DataProviderResponse<T>> {\n const resource = resolveResource(endpoint, options)\n const plainPayload = assertPlainPayload(payload)\n const mappedPayload = resource.mapPayload\n ? resource.mapPayload(plainPayload, 'create')\n : plainPayload\n const result = await options.client\n .from(resource.table)\n .insert<T>(mappedPayload)\n .select(resource.select ?? defaultSelect)\n .single()\n\n if (result.error) normalizeSupabaseError(result.error)\n return { data: result.data as T }\n },\n\n async update<T = Record<string, unknown>>(\n endpoint: string,\n id: string | number,\n payload: Record<string, unknown> | FormData,\n _config?: DataProviderRequestConfig,\n ): Promise<DataProviderResponse<T>> {\n const resource = resolveResource(endpoint, options)\n const pk = resource.pk ?? 'id'\n const plainPayload = assertPlainPayload(payload)\n const mappedPayload = resource.mapPayload\n ? resource.mapPayload(plainPayload, 'update')\n : plainPayload\n const result = await options.client\n .from(resource.table)\n .update<T>(mappedPayload)\n .eq(pk, id)\n .select(resource.select ?? defaultSelect)\n .single()\n\n if (result.error) normalizeSupabaseError(result.error)\n return { data: result.data as T }\n },\n\n async delete(endpoint: string, id: string | number): Promise<void> {\n const resource = resolveResource(endpoint, options)\n const pk = resource.pk ?? 'id'\n const softDeletePayload =\n resource.softDelete === true\n ? { is_active: false }\n : typeof resource.softDelete === 'object'\n ? resource.softDelete\n : null\n\n const result = softDeletePayload\n ? await options.client.from(resource.table).update(softDeletePayload).eq(pk, id)\n : await options.client.from(resource.table).delete().eq(pk, id)\n\n if (result.error) normalizeSupabaseError(result.error)\n },\n }\n}\n"],"names":["normalizeListResponse","responseData","fallbackPage","fallbackPageSize","data","createAxiosDataProvider","axios","endpoint","params","response","id","config","payload","WPrimeVuePlugin","app","options","dataProvider","W_AXIOS_KEY","W_DATA_PROVIDER_KEY","W_CONFIG_KEY","WCrudView","WCrudFormDialog","WCrudColumnRenderer","WAutoCompleteFK","WMoneyInput","WTransferList","WTreeSelect","normalizeEndpoint","toResourceConfig","resource","createProviderError","message","status","assertPlainPayload","normalizeSupabaseError","error","resolveResource","resourceName","configuredResource","_a","_b","applyFilters","query","reservedKeys","filters","key","value","applySearch","search","searchFields","escapedSearch","expression","field","parseOrdering","ordering","fallback","mapList","item","createSupabaseDataProvider","defaultSelect","page","pageSize","from","to","result","_config","pk","plainPayload","mappedPayload","softDeletePayload"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/data-providers/axiosDataProvider.ts","../src/plugin.ts","../src/data-providers/supabaseDataProvider.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport type {\n DataProvider,\n DataProviderListParams,\n DataProviderListResponse,\n DataProviderRequestConfig,\n DataProviderResponse,\n} from '@/types/dataProvider'\n\nfunction normalizeListResponse<T>(\n responseData: unknown,\n fallbackPage: number,\n fallbackPageSize: number,\n): DataProviderListResponse<T> {\n const data = responseData as Record<string, unknown>\n\n if (Array.isArray(data.results)) {\n return {\n data: data.results as T[],\n page: (data.page as number) ?? fallbackPage,\n page_size: (data.page_size as number) ?? fallbackPageSize,\n rows: (data.count as number) ?? 0,\n extras: (data.extras as Record<string, unknown>) ?? {},\n }\n }\n\n if (Array.isArray(data.data)) {\n return {\n data: data.data as T[],\n page: (data.page as number) ?? fallbackPage,\n page_size: (data.page_size as number) ?? fallbackPageSize,\n rows: (data.rows as number) ?? 0,\n extras: (data.extras as Record<string, unknown>) ?? {},\n }\n }\n\n return {\n data: Array.isArray(responseData) ? (responseData as T[]) : [],\n page: fallbackPage,\n page_size: fallbackPageSize,\n rows: Array.isArray(responseData) ? responseData.length : 0,\n extras: {},\n }\n}\n\nexport function createAxiosDataProvider(axios: AxiosInstance): DataProvider {\n return {\n async list<T = Record<string, unknown>>(\n endpoint: string,\n params: DataProviderListParams = {},\n ): Promise<DataProviderListResponse<T>> {\n const response = await axios.get(endpoint, { params })\n return normalizeListResponse<T>(\n response.data,\n Number(params.page ?? 1),\n Number(params.page_size ?? 20),\n )\n },\n\n async get<T = Record<string, unknown>>(\n endpoint: string,\n id: string | number,\n config?: DataProviderRequestConfig,\n ): Promise<DataProviderResponse<T>> {\n const response = await axios.get<T>(`${endpoint}${id}/`, config)\n return { data: response.data }\n },\n\n async create<T = Record<string, unknown>>(\n endpoint: string,\n payload: Record<string, unknown> | FormData,\n config?: DataProviderRequestConfig,\n ): Promise<DataProviderResponse<T>> {\n const response = await axios.post<T>(endpoint, payload, config)\n return { data: response.data }\n },\n\n async update<T = Record<string, unknown>>(\n endpoint: string,\n id: string | number,\n payload: Record<string, unknown> | FormData,\n config?: DataProviderRequestConfig,\n ): Promise<DataProviderResponse<T>> {\n const response = await axios.patch<T>(`${endpoint}${id}/`, payload, config)\n return { data: response.data }\n },\n\n async delete(endpoint: string, id: string | number): Promise<void> {\n await axios.delete(`${endpoint}${id}/`)\n },\n }\n}\n","import type { App, Plugin } from 'vue'\nimport type { WPluginOptions, WPluginConfig } from './types/plugin'\nimport { W_AXIOS_KEY, W_CONFIG_KEY, W_DATA_PROVIDER_KEY } from './types/plugin'\nimport {\n WCrudView,\n WCrudFormDialog,\n WCrudColumnRenderer,\n WAutoCompleteFK,\n WMoneyInput,\n WTransferList,\n WTreeSelect,\n} from './components'\nimport { createAxiosDataProvider } from './data-providers/axiosDataProvider'\n\nexport const WPrimeVuePlugin: Plugin = {\n install(app: App, options: WPluginOptions) {\n if (!options?.axios && !options?.dataProvider) {\n throw new Error(\n '[wPrimeVueComponents] Informe \"axios\" ou \"dataProvider\" ao registrar o WPrimeVuePlugin.',\n )\n }\n\n const dataProvider = options.dataProvider ?? createAxiosDataProvider(options.axios!)\n\n const config: WPluginConfig = {\n axios: options.axios,\n dataProvider,\n defaultPageSize: options.defaultPageSize ?? 20,\n dateFormat: options.dateFormat ?? 'DD/MM/YYYY',\n dateTimeFormat: options.dateTimeFormat ?? 'DD/MM/YYYY HH:mm',\n locale: options.locale ?? 'pt-BR',\n currency: options.currency ?? 'BRL',\n }\n\n if (options.axios) {\n app.provide(W_AXIOS_KEY, options.axios)\n }\n app.provide(W_DATA_PROVIDER_KEY, dataProvider)\n app.provide(W_CONFIG_KEY, config)\n\n if (options.registerComponents !== false) {\n app.component('WCrudView', WCrudView)\n app.component('WCrudFormDialog', WCrudFormDialog)\n app.component('WCrudColumnRenderer', WCrudColumnRenderer)\n app.component('WAutoCompleteFK', WAutoCompleteFK)\n app.component('WMoneyInput', WMoneyInput)\n app.component('WTransferList', WTransferList)\n app.component('WTreeSelect', WTreeSelect)\n }\n },\n}\n","import type {\n DataProvider,\n DataProviderListParams,\n DataProviderListResponse,\n DataProviderRequestConfig,\n DataProviderResponse,\n} from '@/types/dataProvider'\n\ntype SupabaseResult<T> = {\n data: T | null\n error: {\n message: string\n code?: string\n details?: string\n hint?: string\n } | null\n count?: number | null\n}\n\ntype SupabaseFilterBuilder<T> = PromiseLike<SupabaseResult<T>> & {\n select(\n columns?: string,\n options?: { count?: 'exact' | 'planned' | 'estimated' },\n ): SupabaseFilterBuilder<T>\n eq(column: string, value: unknown): SupabaseFilterBuilder<T>\n ilike(column: string, pattern: string): SupabaseFilterBuilder<T>\n or(filters: string): SupabaseFilterBuilder<T>\n order(column: string, options?: { ascending?: boolean }): SupabaseFilterBuilder<T>\n range(from: number, to: number): SupabaseFilterBuilder<T>\n single(): Promise<SupabaseResult<T>>\n}\n\ntype SupabaseTable = {\n select<T = unknown>(\n columns?: string,\n options?: { count?: 'exact' | 'planned' | 'estimated' },\n ): SupabaseFilterBuilder<T>\n insert<T = unknown>(payload: unknown): SupabaseFilterBuilder<T>\n update<T = unknown>(payload: unknown): SupabaseFilterBuilder<T>\n delete<T = unknown>(): SupabaseFilterBuilder<T>\n}\n\nexport interface SupabaseDataProviderClient {\n from(table: string): SupabaseTable\n}\n\nexport interface SupabaseResourceConfig {\n table: string\n pk?: string\n select?: string\n searchFields?: string[]\n defaultOrdering?: string\n defaultFilters?: Record<string, unknown>\n softDelete?: boolean | Record<string, unknown>\n mapListItem?: (item: Record<string, unknown>) => Record<string, unknown>\n mapPayload?: (\n payload: Record<string, unknown>,\n operation: 'create' | 'update',\n ) => Record<string, unknown>\n}\n\nexport interface CreateSupabaseDataProviderOptions {\n client: SupabaseDataProviderClient\n resources?: Record<string, SupabaseResourceConfig | string>\n defaultSelect?: string\n allowedTables?: string[]\n}\n\nfunction normalizeEndpoint(endpoint: string): string {\n return endpoint\n .split('?')[0]\n .replace(/^\\/+|\\/+$/g, '')\n .replace(/^api\\/v\\d+\\//, '')\n}\n\nfunction toResourceConfig(resource: SupabaseResourceConfig | string): SupabaseResourceConfig {\n return typeof resource === 'string' ? { table: resource } : resource\n}\n\nfunction createProviderError(message: string, status = 400) {\n return {\n response: {\n status,\n data: { detail: message },\n },\n message,\n }\n}\n\nfunction assertPlainPayload(payload: Record<string, unknown> | FormData): Record<string, unknown> {\n if (payload instanceof FormData) {\n throw createProviderError(\n 'SupabaseDataProvider nao envia FormData diretamente. Faça upload do arquivo no Storage e envie a URL/caminho no payload.',\n )\n }\n\n return payload\n}\n\nfunction normalizeSupabaseError(error: SupabaseResult<unknown>['error']): never {\n throw {\n response: {\n data: {\n detail: error?.message ?? 'Erro ao consultar Supabase',\n code: error?.code,\n details: error?.details,\n hint: error?.hint,\n },\n },\n message: error?.message ?? 'Erro ao consultar Supabase',\n }\n}\n\nfunction resolveResource(\n endpoint: string,\n options: CreateSupabaseDataProviderOptions,\n): SupabaseResourceConfig {\n const resourceName = normalizeEndpoint(endpoint)\n const configuredResource = options.resources?.[resourceName]\n\n if (configuredResource) {\n return toResourceConfig(configuredResource)\n }\n\n if (options.allowedTables?.includes(resourceName)) {\n return { table: resourceName }\n }\n\n throw createProviderError(`Recurso Supabase nao registrado para o endpoint \"${endpoint}\".`, 404)\n}\n\nfunction applyFilters<T>(\n query: SupabaseFilterBuilder<T>,\n params: DataProviderListParams,\n resource: SupabaseResourceConfig,\n): SupabaseFilterBuilder<T> {\n const reservedKeys = new Set(['page', 'page_size', 'search', 'ordering'])\n const filters = { ...resource.defaultFilters, ...params }\n\n for (const [key, value] of Object.entries(filters)) {\n if (reservedKeys.has(key) || value === null || value === undefined || value === '') {\n continue\n }\n query = query.eq(key, value)\n }\n\n return query\n}\n\nfunction applySearch<T>(\n query: SupabaseFilterBuilder<T>,\n search: unknown,\n searchFields?: string[],\n): SupabaseFilterBuilder<T> {\n if (typeof search !== 'string' || !search.trim() || !searchFields?.length) {\n return query\n }\n\n const escapedSearch = search.trim().replace(/,/g, '\\\\,')\n const expression = searchFields.map((field) => `${field}.ilike.%${escapedSearch}%`).join(',')\n\n return query.or(expression)\n}\n\nfunction parseOrdering(ordering: unknown, fallback?: string) {\n const value = typeof ordering === 'string' && ordering ? ordering : fallback\n if (!value) return null\n\n return {\n field: value.startsWith('-') ? value.slice(1) : value,\n ascending: !value.startsWith('-'),\n }\n}\n\nfunction mapList<T>(data: T[] | null, resource: SupabaseResourceConfig): T[] {\n if (!data) return []\n if (!resource.mapListItem) return data\n\n return data.map((item) => resource.mapListItem?.(item as Record<string, unknown>)) as T[]\n}\n\nexport function createSupabaseDataProvider(\n options: CreateSupabaseDataProviderOptions,\n): DataProvider {\n const defaultSelect = options.defaultSelect ?? '*'\n\n return {\n async list<T = Record<string, unknown>>(\n endpoint: string,\n params: DataProviderListParams = {},\n ): Promise<DataProviderListResponse<T>> {\n const resource = resolveResource(endpoint, options)\n const page = Math.max(Number(params.page ?? 1), 1)\n const pageSize = Math.max(Number(params.page_size ?? 20), 1)\n const from = (page - 1) * pageSize\n const to = from + pageSize - 1\n\n let query = options.client\n .from(resource.table)\n .select<T[]>(resource.select ?? defaultSelect, { count: 'exact' })\n\n query = applyFilters(query, params, resource)\n query = applySearch(query, params.search, resource.searchFields)\n\n const ordering = parseOrdering(params.ordering, resource.defaultOrdering)\n if (ordering) {\n query = query.order(ordering.field, { ascending: ordering.ascending })\n }\n\n const result = await query.range(from, to)\n if (result.error) normalizeSupabaseError(result.error)\n\n return {\n data: mapList(result.data, resource),\n page,\n page_size: pageSize,\n rows: result.count ?? result.data?.length ?? 0,\n extras: {},\n }\n },\n\n async get<T = Record<string, unknown>>(\n endpoint: string,\n id: string | number,\n _config?: DataProviderRequestConfig,\n ): Promise<DataProviderResponse<T>> {\n const resource = resolveResource(endpoint, options)\n const pk = resource.pk ?? 'id'\n const result = await options.client\n .from(resource.table)\n .select<T>(resource.select ?? defaultSelect)\n .eq(pk, id)\n .single()\n\n if (result.error) normalizeSupabaseError(result.error)\n return { data: result.data as T }\n },\n\n async create<T = Record<string, unknown>>(\n endpoint: string,\n payload: Record<string, unknown> | FormData,\n _config?: DataProviderRequestConfig,\n ): Promise<DataProviderResponse<T>> {\n const resource = resolveResource(endpoint, options)\n const plainPayload = assertPlainPayload(payload)\n const mappedPayload = resource.mapPayload\n ? resource.mapPayload(plainPayload, 'create')\n : plainPayload\n const result = await options.client\n .from(resource.table)\n .insert<T>(mappedPayload)\n .select(resource.select ?? defaultSelect)\n .single()\n\n if (result.error) normalizeSupabaseError(result.error)\n return { data: result.data as T }\n },\n\n async update<T = Record<string, unknown>>(\n endpoint: string,\n id: string | number,\n payload: Record<string, unknown> | FormData,\n _config?: DataProviderRequestConfig,\n ): Promise<DataProviderResponse<T>> {\n const resource = resolveResource(endpoint, options)\n const pk = resource.pk ?? 'id'\n const plainPayload = assertPlainPayload(payload)\n const mappedPayload = resource.mapPayload\n ? resource.mapPayload(plainPayload, 'update')\n : plainPayload\n const result = await options.client\n .from(resource.table)\n .update<T>(mappedPayload)\n .eq(pk, id)\n .select(resource.select ?? defaultSelect)\n .single()\n\n if (result.error) normalizeSupabaseError(result.error)\n return { data: result.data as T }\n },\n\n async delete(endpoint: string, id: string | number): Promise<void> {\n const resource = resolveResource(endpoint, options)\n const pk = resource.pk ?? 'id'\n const softDeletePayload =\n resource.softDelete === true\n ? { is_active: false }\n : typeof resource.softDelete === 'object'\n ? resource.softDelete\n : null\n\n const result = softDeletePayload\n ? await options.client.from(resource.table).update(softDeletePayload).eq(pk, id)\n : await options.client.from(resource.table).delete().eq(pk, id)\n\n if (result.error) normalizeSupabaseError(result.error)\n },\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ //#region src/types/labels.ts
2
+ var e = {
3
+ createTitle: "Novo Registro",
4
+ editTitle: "Editar Registro",
5
+ createButton: "Novo",
6
+ saveButton: "Salvar",
7
+ updateButton: "Atualizar",
8
+ cancelButton: "Cancelar",
9
+ deleteConfirmTitle: "Confirmar Exclusão",
10
+ deleteConfirmMessage: "Deseja realmente excluir este registro?",
11
+ searchPlaceholder: "Buscar...",
12
+ emptyMessage: "Nenhum registro encontrado",
13
+ successCreate: "Registro criado com sucesso",
14
+ successUpdate: "Registro atualizado com sucesso",
15
+ successDelete: "Registro excluído com sucesso"
16
+ };
17
+ //#endregion
18
+ export { e as t };
19
+
20
+ //# sourceMappingURL=labels-CXBhCk2N.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels-CXBhCk2N.js","names":[],"sources":["../src/types/labels.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// Labels\n// ---------------------------------------------------------------------------\n\nexport interface CrudLabels {\n createTitle: string\n editTitle: string\n viewTitle?: string\n createButton: string\n saveButton: string\n updateButton: string\n cancelButton: string\n deleteConfirmTitle: string\n deleteConfirmMessage: string\n searchPlaceholder: string\n emptyMessage: string\n successCreate: string\n successUpdate: string\n successDelete: string\n}\n\nexport const DEFAULT_CRUD_LABELS: CrudLabels = {\n createTitle: 'Novo Registro',\n editTitle: 'Editar Registro',\n createButton: 'Novo',\n saveButton: 'Salvar',\n updateButton: 'Atualizar',\n cancelButton: 'Cancelar',\n deleteConfirmTitle: 'Confirmar Exclusão',\n deleteConfirmMessage: 'Deseja realmente excluir este registro?',\n searchPlaceholder: 'Buscar...',\n emptyMessage: 'Nenhum registro encontrado',\n successCreate: 'Registro criado com sucesso',\n successUpdate: 'Registro atualizado com sucesso',\n successDelete: 'Registro excluído com sucesso',\n}\n"],"mappings":";AAqBA,IAAa,IAAkC;CAC7C,aAAa;CACb,WAAW;CACX,cAAc;CACd,YAAY;CACZ,cAAc;CACd,cAAc;CACd,oBAAoB;CACpB,sBAAsB;CACtB,mBAAmB;CACnB,cAAc;CACd,eAAe;CACf,eAAe;CACf,eAAe;AACjB"}
@@ -0,0 +1,2 @@
1
+ var e={createTitle:`Novo Registro`,editTitle:`Editar Registro`,createButton:`Novo`,saveButton:`Salvar`,updateButton:`Atualizar`,cancelButton:`Cancelar`,deleteConfirmTitle:`Confirmar Exclusão`,deleteConfirmMessage:`Deseja realmente excluir este registro?`,searchPlaceholder:`Buscar...`,emptyMessage:`Nenhum registro encontrado`,successCreate:`Registro criado com sucesso`,successUpdate:`Registro atualizado com sucesso`,successDelete:`Registro excluído com sucesso`};Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return e}});
2
+ //# sourceMappingURL=labels-DiFDhFhQ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels-DiFDhFhQ.cjs","names":[],"sources":["../src/types/labels.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// Labels\n// ---------------------------------------------------------------------------\n\nexport interface CrudLabels {\n createTitle: string\n editTitle: string\n viewTitle?: string\n createButton: string\n saveButton: string\n updateButton: string\n cancelButton: string\n deleteConfirmTitle: string\n deleteConfirmMessage: string\n searchPlaceholder: string\n emptyMessage: string\n successCreate: string\n successUpdate: string\n successDelete: string\n}\n\nexport const DEFAULT_CRUD_LABELS: CrudLabels = {\n createTitle: 'Novo Registro',\n editTitle: 'Editar Registro',\n createButton: 'Novo',\n saveButton: 'Salvar',\n updateButton: 'Atualizar',\n cancelButton: 'Cancelar',\n deleteConfirmTitle: 'Confirmar Exclusão',\n deleteConfirmMessage: 'Deseja realmente excluir este registro?',\n searchPlaceholder: 'Buscar...',\n emptyMessage: 'Nenhum registro encontrado',\n successCreate: 'Registro criado com sucesso',\n successUpdate: 'Registro atualizado com sucesso',\n successDelete: 'Registro excluído com sucesso',\n}\n"],"mappings":"AAqBA,IAAa,EAAkC,CAC7C,YAAa,gBACb,UAAW,kBACX,aAAc,OACd,WAAY,SACZ,aAAc,YACd,aAAc,WACd,mBAAoB,qBACpB,qBAAsB,0CACtB,kBAAmB,YACnB,aAAc,6BACd,cAAe,8BACf,cAAe,kCACf,cAAe,+BACjB"}