@wgalleti/primevue-components 0.14.0 → 0.16.0

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 (57) hide show
  1. package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-Bmqt_P_5.js +6508 -0
  2. package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-Bmqt_P_5.js.map +1 -0
  3. package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-DFRhQIiG.cjs +28 -0
  4. package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-DFRhQIiG.cjs.map +1 -0
  5. package/dist/components/crud/WCrudView.vue.d.ts +27 -2
  6. package/dist/components/index.d.ts +2 -0
  7. package/dist/components/ui/WMapSelect.vue.d.ts +26 -1
  8. package/dist/components/ui/WTabNav.vue.d.ts +56 -0
  9. package/dist/components/ui/WTabPane.d.ts +53 -0
  10. package/dist/components/ui/WTabViewport.vue.d.ts +14 -0
  11. package/dist/components.cjs +1 -1
  12. package/dist/components.js +22 -20
  13. package/dist/composables/index.d.ts +1 -0
  14. package/dist/composables/useRouteTabs.d.ts +2 -0
  15. package/dist/composables.cjs +1 -1
  16. package/dist/composables.cjs.map +1 -1
  17. package/dist/composables.js +11 -10
  18. package/dist/index.cjs +1 -1
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.ts +4 -4
  21. package/dist/index.js +113 -107
  22. package/dist/index.js.map +1 -1
  23. package/dist/labels-B28P8JNB.js +19 -0
  24. package/dist/labels-B28P8JNB.js.map +1 -0
  25. package/dist/labels-pNskxXcl.cjs +2 -0
  26. package/dist/labels-pNskxXcl.cjs.map +1 -0
  27. package/dist/{plugin-BKa0eSEM.js → plugin-BaBF7c-e.js} +3 -3
  28. package/dist/{plugin-BKa0eSEM.js.map → plugin-BaBF7c-e.js.map} +1 -1
  29. package/dist/primevue-components.css +1 -1
  30. package/dist/routeTabs--y12evp8.cjs +2 -0
  31. package/dist/routeTabs--y12evp8.cjs.map +1 -0
  32. package/dist/routeTabs-NnjycX9L.js +10 -0
  33. package/dist/routeTabs-NnjycX9L.js.map +1 -0
  34. package/dist/types/index.d.ts +3 -1
  35. package/dist/types/manager.d.ts +11 -3
  36. package/dist/types/mapSelect.d.ts +11 -0
  37. package/dist/types/routeTabs.d.ts +116 -0
  38. package/dist/types.cjs +1 -1
  39. package/dist/types.cjs.map +1 -1
  40. package/dist/types.js +9 -20
  41. package/dist/types.js.map +1 -1
  42. package/dist/{useFormKeyboardNav-D4Irq5RE.js → useFormKeyboardNav-CLCEo_O5.js} +2 -2
  43. package/dist/{useFormKeyboardNav-D4Irq5RE.js.map → useFormKeyboardNav-CLCEo_O5.js.map} +1 -1
  44. package/dist/useRouteTabs-63cZtRr3.js +739 -0
  45. package/dist/useRouteTabs-63cZtRr3.js.map +1 -0
  46. package/dist/useRouteTabs-Ds2QpP3I.cjs +2 -0
  47. package/dist/useRouteTabs-Ds2QpP3I.cjs.map +1 -0
  48. package/package.json +1 -1
  49. package/skill/references/components.md +28 -0
  50. package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-D30LZLT8.js +0 -6224
  51. package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-D30LZLT8.js.map +0 -1
  52. package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-x3RaoczK.cjs +0 -36
  53. package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-x3RaoczK.cjs.map +0 -1
  54. package/dist/useApi-BQJ_C2Yt.js +0 -519
  55. package/dist/useApi-BQJ_C2Yt.js.map +0 -1
  56. package/dist/useApi-DpkKD_bN.cjs +0 -2
  57. package/dist/useApi-DpkKD_bN.cjs.map +0 -1
package/dist/index.js CHANGED
@@ -1,23 +1,24 @@
1
- import { b as y, W as _, a as w } from "./plugin-BKa0eSEM.js";
2
- import { f as C, d as S, c as b, a as A, w as P, E as v, F } from "./WKanbanBoard.vue_vue_type_script_setup_true_lang-D30LZLT8.js";
3
- import { _ as B, b as O, e as V, g as H, h as N, i as q, j, k as U, l as G, m as J, n as X, W as Q, o as Z, p as ee, q as ae, r as te, s as re, t as se, u as ne, v as oe, x as ie, y as ce, z as de, A as le, B as ue, C as fe, D as me, G as pe, H as ge, I as We, J as ye, K as _e, L as we, M as Ce } from "./WKanbanBoard.vue_vue_type_script_setup_true_lang-D30LZLT8.js";
4
- import { u as be, a as Ae, b as Pe } from "./useApi-BQJ_C2Yt.js";
5
- import { e as Fe, u as De, a as xe, b as Ee, c as Te, f as he } from "./useFormKeyboardNav-D4Irq5RE.js";
6
- import { DEFAULT_CRUD_LABELS as Re } from "./types.js";
7
- function D(e, a, t) {
8
- const r = e;
9
- return Array.isArray(r.results) ? {
10
- data: r.results,
11
- page: r.page ?? a,
12
- page_size: r.page_size ?? t,
13
- rows: r.count ?? 0,
14
- extras: r.extras ?? {}
15
- } : Array.isArray(r.data) ? {
16
- data: r.data,
17
- page: r.page ?? a,
18
- page_size: r.page_size ?? t,
19
- rows: r.rows ?? 0,
20
- extras: r.extras ?? {}
1
+ import { W as _, b as y, a as w } from "./plugin-BaBF7c-e.js";
2
+ import { f as b, d as S, c as A, a as C, w as v, G as P, H as D } from "./WKanbanBoard.vue_vue_type_script_setup_true_lang-Bmqt_P_5.js";
3
+ import { _ as O, b as B, e as H, g as N, h as V, i as q, j, k as U, l as G, m as J, n as X, W as Q, o as Z, p as ee, q as ae, r as te, s as se, t as re, u as ne, v as oe, x as ie, y as ce, z as ue, A as de, B as le, C as fe, D as me, E as pe, F as ge, I as We, J as _e, K as ye, L as we, M as be, N as Se, O as Ae } from "./WKanbanBoard.vue_vue_type_script_setup_true_lang-Bmqt_P_5.js";
4
+ import { u as ve, a as Pe, b as De, c as Fe } from "./useRouteTabs-63cZtRr3.js";
5
+ import { e as xe, u as Ee, a as he, b as Re, c as $e, f as ze } from "./useFormKeyboardNav-CLCEo_O5.js";
6
+ import { D as Me } from "./labels-B28P8JNB.js";
7
+ import { W as Ie, u as Ke } from "./routeTabs-NnjycX9L.js";
8
+ function F(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 ?? {}
21
22
  } : {
22
23
  data: Array.isArray(e) ? e : [],
23
24
  page: a,
@@ -26,37 +27,37 @@ function D(e, a, t) {
26
27
  extras: {}
27
28
  };
28
29
  }
29
- function x(e) {
30
+ function T(e) {
30
31
  return {
31
32
  async list(a, t = {}) {
32
- const r = await e.get(a, { params: t });
33
- return D(
34
- r.data,
33
+ const s = await e.get(a, { params: t });
34
+ return F(
35
+ s.data,
35
36
  Number(t.page ?? 1),
36
37
  Number(t.page_size ?? 20)
37
38
  );
38
39
  },
39
- async get(a, t, r) {
40
- return { data: (await e.get(`${a}${t}/`, r)).data };
40
+ async get(a, t, s) {
41
+ return { data: (await e.get(`${a}${t}/`, s)).data };
41
42
  },
42
- async create(a, t, r) {
43
- return { data: (await e.post(a, t, r)).data };
43
+ async create(a, t, s) {
44
+ return { data: (await e.post(a, t, s)).data };
44
45
  },
45
- async update(a, t, r, s) {
46
- return { data: (await e.patch(`${a}${t}/`, r, s)).data };
46
+ async update(a, t, s, r) {
47
+ return { data: (await e.patch(`${a}${t}/`, s, r)).data };
47
48
  },
48
49
  async delete(a, t) {
49
50
  await e.delete(`${a}${t}/`);
50
51
  }
51
52
  };
52
53
  }
53
- const I = {
54
+ const Y = {
54
55
  install(e, a) {
55
56
  if (!(a != null && a.axios) && !(a != null && a.dataProvider))
56
57
  throw new Error(
57
58
  '[wPrimeVueComponents] Informe "axios" ou "dataProvider" ao registrar o WPrimeVuePlugin.'
58
59
  );
59
- const t = a.dataProvider ?? x(a.axios), r = {
60
+ const t = a.dataProvider ?? T(a.axios), s = {
60
61
  axios: a.axios,
61
62
  dataProvider: t,
62
63
  defaultPageSize: a.defaultPageSize ?? 20,
@@ -65,13 +66,13 @@ const I = {
65
66
  locale: a.locale ?? "pt-BR",
66
67
  currency: a.currency ?? "BRL"
67
68
  };
68
- a.axios && e.provide(y, a.axios), e.provide(_, t), e.provide(w, r), a.registerComponents !== !1 && (e.component("WCrudView", C), e.component("WCrudFormDialog", S), e.component("WCrudColumnRenderer", b), e.component("WAutoCompleteFK", A), e.component("WMoneyInput", P), e.component("WTransferList", v), e.component("WTreeSelect", F));
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", S), e.component("WCrudColumnRenderer", A), e.component("WAutoCompleteFK", C), e.component("WMoneyInput", v), e.component("WTransferList", P), e.component("WTreeSelect", D));
69
70
  }
70
71
  };
71
- function E(e) {
72
+ function x(e) {
72
73
  return e.split("?")[0].replace(/^\/+|\/+$/g, "").replace(/^api\/v\d+\//, "");
73
74
  }
74
- function T(e) {
75
+ function E(e) {
75
76
  return typeof e == "string" ? { table: e } : e;
76
77
  }
77
78
  function W(e, a = 400) {
@@ -104,27 +105,27 @@ function f(e) {
104
105
  };
105
106
  }
106
107
  function m(e, a) {
107
- var s, n;
108
- const t = E(e), r = (s = a.resources) == null ? void 0 : s[t];
109
- if (r)
110
- return T(r);
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);
111
112
  if ((n = a.allowedTables) != null && n.includes(t))
112
113
  return { table: t };
113
114
  throw W(`Recurso Supabase nao registrado para o endpoint "${e}".`, 404);
114
115
  }
115
116
  function h(e, a, t) {
116
- const r = /* @__PURE__ */ new Set(["page", "page_size", "search", "ordering"]), s = { ...t.defaultFilters, ...a };
117
- for (const [n, o] of Object.entries(s))
118
- r.has(n) || o === null || o === void 0 || o === "" || (e = e.eq(n, o));
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));
119
120
  return e;
120
121
  }
121
- function $(e, a, t) {
122
+ function R(e, a, t) {
122
123
  if (typeof a != "string" || !a.trim() || !(t != null && t.length))
123
124
  return e;
124
- const r = a.trim().replace(/,/g, "\\,"), s = t.map((n) => `${n}.ilike.%${r}%`).join(",");
125
- return e.or(s);
125
+ const s = a.trim().replace(/,/g, "\\,"), r = t.map((n) => `${n}.ilike.%${s}%`).join(",");
126
+ return e.or(r);
126
127
  }
127
- function R(e, a) {
128
+ function $(e, a) {
128
129
  const t = typeof e == "string" && e ? e : a;
129
130
  return t ? {
130
131
  field: t.startsWith("-") ? t.slice(1) : t,
@@ -133,58 +134,58 @@ function R(e, a) {
133
134
  }
134
135
  function z(e, a) {
135
136
  return e ? a.mapListItem ? e.map((t) => {
136
- var r;
137
- return (r = a.mapListItem) == null ? void 0 : r.call(a, t);
137
+ var s;
138
+ return (s = a.mapListItem) == null ? void 0 : s.call(a, t);
138
139
  }) : e : [];
139
140
  }
140
- function Y(e) {
141
+ function I(e) {
141
142
  const a = e.defaultSelect ?? "*";
142
143
  return {
143
- async list(t, r = {}) {
144
+ async list(t, s = {}) {
144
145
  var p;
145
- const s = m(t, e), n = Math.max(Number(r.page ?? 1), 1), o = Math.max(Number(r.page_size ?? 20), 1), i = (n - 1) * o, d = i + o - 1;
146
- let c = e.client.from(s.table).select(s.select ?? a, { count: "exact" });
147
- c = h(c, r, s), c = $(c, r.search, s.searchFields);
148
- const l = R(r.ordering, s.defaultOrdering);
149
- l && (c = c.order(l.field, { ascending: l.ascending }));
150
- const u = await c.range(i, d);
151
- return u.error && f(u.error), {
152
- data: z(u.data, s),
146
+ const r = m(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 && f(l.error), {
153
+ data: z(l.data, r),
153
154
  page: n,
154
155
  page_size: o,
155
- rows: u.count ?? ((p = u.data) == null ? void 0 : p.length) ?? 0,
156
+ rows: l.count ?? ((p = l.data) == null ? void 0 : p.length) ?? 0,
156
157
  extras: {}
157
158
  };
158
159
  },
159
- async get(t, r, s) {
160
- const n = m(t, e), o = n.pk ?? "id", i = await e.client.from(n.table).select(n.select ?? a).eq(o, r).single();
160
+ async get(t, s, r) {
161
+ const n = m(t, e), o = n.pk ?? "id", i = await e.client.from(n.table).select(n.select ?? a).eq(o, s).single();
161
162
  return i.error && f(i.error), { data: i.data };
162
163
  },
163
- async create(t, r, s) {
164
- const n = m(t, e), o = g(r), i = n.mapPayload ? n.mapPayload(o, "create") : o, d = await e.client.from(n.table).insert(i).select(n.select ?? a).single();
165
- return d.error && f(d.error), { data: d.data };
164
+ async create(t, s, r) {
165
+ const n = m(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 && f(u.error), { data: u.data };
166
167
  },
167
- async update(t, r, s, n) {
168
- const o = m(t, e), i = o.pk ?? "id", d = g(s), c = o.mapPayload ? o.mapPayload(d, "update") : d, l = await e.client.from(o.table).update(c).eq(i, r).select(o.select ?? a).single();
169
- return l.error && f(l.error), { data: l.data };
168
+ async update(t, s, r, n) {
169
+ const o = m(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 && f(d.error), { data: d.data };
170
171
  },
171
- async delete(t, r) {
172
- const s = m(t, e), n = s.pk ?? "id", o = s.softDelete === !0 ? { is_active: !1 } : typeof s.softDelete == "object" ? s.softDelete : null, i = o ? await e.client.from(s.table).update(o).eq(n, r) : await e.client.from(s.table).delete().eq(n, r);
172
+ async delete(t, s) {
173
+ const r = m(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);
173
174
  i.error && f(i.error);
174
175
  }
175
176
  };
176
177
  }
177
178
  export {
178
- Re as DEFAULT_CRUD_LABELS,
179
- B as WActionBar,
180
- A as WAutoCompleteFK,
181
- O as WCheckList,
182
- b as WCrudColumnRenderer,
179
+ Me as DEFAULT_CRUD_LABELS,
180
+ O as WActionBar,
181
+ C as WAutoCompleteFK,
182
+ B as WCheckList,
183
+ A as WCrudColumnRenderer,
183
184
  S as WCrudFormDialog,
184
- V as WCrudSubview,
185
- C as WCrudView,
186
- H as WDatePicker,
187
- N as WDateRange,
185
+ H as WCrudSubview,
186
+ b as WCrudView,
187
+ N as WDatePicker,
188
+ V as WDateRange,
188
189
  q as WDetailHeader,
189
190
  j as WEditableTable,
190
191
  U as WEmptyState,
@@ -196,41 +197,46 @@ export {
196
197
  ee as WKanbanBoard,
197
198
  ae as WKpiCard,
198
199
  te as WKpiGrid,
199
- re as WMapSelect,
200
- se as WMarkdownEditor,
200
+ se as WMapSelect,
201
+ re as WMarkdownEditor,
201
202
  ne as WMarkdownToc,
202
203
  oe as WMarkdownView,
203
- P as WMoneyInput,
204
+ v as WMoneyInput,
204
205
  ie as WPageHeader,
205
- I as WPrimeVuePlugin,
206
+ Y as WPrimeVuePlugin,
206
207
  ce as WProgressFlow,
207
- de as WSectionHeader,
208
- le as WStatusTag,
209
- ue as WStepFlow,
208
+ ue as WSectionHeader,
209
+ de as WStatusTag,
210
+ le as WStepFlow,
210
211
  fe as WStepSection,
211
212
  me as WTabBar,
212
- v as WTransferList,
213
- F as WTreeSelect,
214
- y as W_AXIOS_KEY,
213
+ pe as WTabNav,
214
+ ge as WTabViewport,
215
+ P as WTransferList,
216
+ D as WTreeSelect,
217
+ _ as W_AXIOS_KEY,
215
218
  w as W_CONFIG_KEY,
216
- _ as W_DATA_PROVIDER_KEY,
217
- pe as W_STEP_FLOW_KEY,
218
- x as createAxiosDataProvider,
219
- Y as createSupabaseDataProvider,
220
- ge as downloadCsv,
221
- Fe as extractApiError,
222
- We as mapApiFieldToColumnDef,
223
- ye as mapApiFieldToFieldDef,
224
- _e as mapApiFieldsToColumnDefs,
225
- we as mapApiFieldsToFieldDefs,
226
- Ce as toCsv,
227
- be as useApi,
228
- De as useApiError,
229
- xe as useAppConfirm,
230
- Ee as useAppToast,
231
- Ae as useCrudManager,
232
- Te as useDateInput,
233
- he as useFormatters,
234
- Pe as useSubviewCrud
219
+ y as W_DATA_PROVIDER_KEY,
220
+ We as W_STEP_FLOW_KEY,
221
+ Ie as W_TAB_HOST_KEY,
222
+ T as createAxiosDataProvider,
223
+ I as createSupabaseDataProvider,
224
+ _e as downloadCsv,
225
+ xe as extractApiError,
226
+ ye as mapApiFieldToColumnDef,
227
+ we as mapApiFieldToFieldDef,
228
+ be as mapApiFieldsToColumnDefs,
229
+ Se as mapApiFieldsToFieldDefs,
230
+ Ae as toCsv,
231
+ ve as useApi,
232
+ Ee as useApiError,
233
+ he as useAppConfirm,
234
+ Re as useAppToast,
235
+ Pe as useCrudManager,
236
+ $e as useDateInput,
237
+ ze as useFormatters,
238
+ De as useRouteTabs,
239
+ Fe as useSubviewCrud,
240
+ Ke as useTabHost
235
241
  };
236
242
  //# 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","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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"}
@@ -0,0 +1,19 @@
1
+ const e = {
2
+ createTitle: "Novo Registro",
3
+ editTitle: "Editar Registro",
4
+ createButton: "Novo",
5
+ saveButton: "Salvar",
6
+ updateButton: "Atualizar",
7
+ cancelButton: "Cancelar",
8
+ deleteConfirmTitle: "Confirmar Exclusão",
9
+ deleteConfirmMessage: "Deseja realmente excluir este registro?",
10
+ searchPlaceholder: "Buscar...",
11
+ emptyMessage: "Nenhum registro encontrado",
12
+ successCreate: "Registro criado com sucesso",
13
+ successUpdate: "Registro atualizado com sucesso",
14
+ successDelete: "Registro excluído com sucesso"
15
+ };
16
+ export {
17
+ e as D
18
+ };
19
+ //# sourceMappingURL=labels-B28P8JNB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels-B28P8JNB.js","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"],"names":["DEFAULT_CRUD_LABELS"],"mappings":"AAqBO,MAAMA,IAAkC;AAAA,EAC7C,aAAa;AAAA,EACb,WAAW;AAAA,EACX,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AACjB;"}
@@ -0,0 +1,2 @@
1
+ "use strict";const 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"};exports.DEFAULT_CRUD_LABELS=e;
2
+ //# sourceMappingURL=labels-pNskxXcl.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels-pNskxXcl.cjs","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"],"names":["DEFAULT_CRUD_LABELS"],"mappings":"aAqBO,MAAMA,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"}
@@ -1,7 +1,7 @@
1
1
  const o = Symbol("w-axios"), a = Symbol("w-data-provider"), s = Symbol("w-config");
2
2
  export {
3
- a as W,
3
+ o as W,
4
4
  s as a,
5
- o as b
5
+ a as b
6
6
  };
7
- //# sourceMappingURL=plugin-BKa0eSEM.js.map
7
+ //# sourceMappingURL=plugin-BaBF7c-e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-BKa0eSEM.js","sources":["../src/types/plugin.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport type { DataProvider } from './dataProvider'\n\nexport interface WPluginOptions {\n axios?: AxiosInstance\n dataProvider?: DataProvider\n defaultPageSize?: number\n dateFormat?: string\n dateTimeFormat?: string\n locale?: string\n currency?: string\n registerComponents?: boolean\n}\n\nexport interface WPluginConfig {\n axios?: AxiosInstance\n dataProvider: DataProvider\n defaultPageSize: number\n dateFormat: string\n dateTimeFormat: string\n locale: string\n currency: string\n}\n\nexport const W_AXIOS_KEY = Symbol('w-axios')\nexport const W_DATA_PROVIDER_KEY = Symbol('w-data-provider')\nexport const W_CONFIG_KEY = Symbol('w-config')\n"],"names":["W_AXIOS_KEY","W_DATA_PROVIDER_KEY","W_CONFIG_KEY"],"mappings":"AAwBO,MAAMA,IAAc,OAAO,SAAS,GAC9BC,IAAsB,OAAO,iBAAiB,GAC9CC,IAAe,OAAO,UAAU;"}
1
+ {"version":3,"file":"plugin-BaBF7c-e.js","sources":["../src/types/plugin.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios'\nimport type { DataProvider } from './dataProvider'\n\nexport interface WPluginOptions {\n axios?: AxiosInstance\n dataProvider?: DataProvider\n defaultPageSize?: number\n dateFormat?: string\n dateTimeFormat?: string\n locale?: string\n currency?: string\n registerComponents?: boolean\n}\n\nexport interface WPluginConfig {\n axios?: AxiosInstance\n dataProvider: DataProvider\n defaultPageSize: number\n dateFormat: string\n dateTimeFormat: string\n locale: string\n currency: string\n}\n\nexport const W_AXIOS_KEY = Symbol('w-axios')\nexport const W_DATA_PROVIDER_KEY = Symbol('w-data-provider')\nexport const W_CONFIG_KEY = Symbol('w-config')\n"],"names":["W_AXIOS_KEY","W_DATA_PROVIDER_KEY","W_CONFIG_KEY"],"mappings":"AAwBO,MAAMA,IAAc,OAAO,SAAS,GAC9BC,IAAsB,OAAO,iBAAiB,GAC9CC,IAAe,OAAO,UAAU;"}