@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.
- package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-Bmqt_P_5.js +6508 -0
- package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-Bmqt_P_5.js.map +1 -0
- package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-DFRhQIiG.cjs +28 -0
- package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-DFRhQIiG.cjs.map +1 -0
- package/dist/components/crud/WCrudView.vue.d.ts +27 -2
- package/dist/components/index.d.ts +2 -0
- package/dist/components/ui/WMapSelect.vue.d.ts +26 -1
- package/dist/components/ui/WTabNav.vue.d.ts +56 -0
- package/dist/components/ui/WTabPane.d.ts +53 -0
- package/dist/components/ui/WTabViewport.vue.d.ts +14 -0
- package/dist/components.cjs +1 -1
- package/dist/components.js +22 -20
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/useRouteTabs.d.ts +2 -0
- package/dist/composables.cjs +1 -1
- package/dist/composables.cjs.map +1 -1
- package/dist/composables.js +11 -10
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +113 -107
- package/dist/index.js.map +1 -1
- package/dist/labels-B28P8JNB.js +19 -0
- package/dist/labels-B28P8JNB.js.map +1 -0
- package/dist/labels-pNskxXcl.cjs +2 -0
- package/dist/labels-pNskxXcl.cjs.map +1 -0
- package/dist/{plugin-BKa0eSEM.js → plugin-BaBF7c-e.js} +3 -3
- package/dist/{plugin-BKa0eSEM.js.map → plugin-BaBF7c-e.js.map} +1 -1
- package/dist/primevue-components.css +1 -1
- package/dist/routeTabs--y12evp8.cjs +2 -0
- package/dist/routeTabs--y12evp8.cjs.map +1 -0
- package/dist/routeTabs-NnjycX9L.js +10 -0
- package/dist/routeTabs-NnjycX9L.js.map +1 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/manager.d.ts +11 -3
- package/dist/types/mapSelect.d.ts +11 -0
- package/dist/types/routeTabs.d.ts +116 -0
- package/dist/types.cjs +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.js +9 -20
- package/dist/types.js.map +1 -1
- package/dist/{useFormKeyboardNav-D4Irq5RE.js → useFormKeyboardNav-CLCEo_O5.js} +2 -2
- package/dist/{useFormKeyboardNav-D4Irq5RE.js.map → useFormKeyboardNav-CLCEo_O5.js.map} +1 -1
- package/dist/useRouteTabs-63cZtRr3.js +739 -0
- package/dist/useRouteTabs-63cZtRr3.js.map +1 -0
- package/dist/useRouteTabs-Ds2QpP3I.cjs +2 -0
- package/dist/useRouteTabs-Ds2QpP3I.cjs.map +1 -0
- package/package.json +1 -1
- package/skill/references/components.md +28 -0
- package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-D30LZLT8.js +0 -6224
- package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-D30LZLT8.js.map +0 -1
- package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-x3RaoczK.cjs +0 -36
- package/dist/WKanbanBoard.vue_vue_type_script_setup_true_lang-x3RaoczK.cjs.map +0 -1
- package/dist/useApi-BQJ_C2Yt.js +0 -519
- package/dist/useApi-BQJ_C2Yt.js.map +0 -1
- package/dist/useApi-DpkKD_bN.cjs +0 -2
- package/dist/useApi-DpkKD_bN.cjs.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { f as
|
|
3
|
-
import { _ as
|
|
4
|
-
import { u as
|
|
5
|
-
import { e as
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
|
30
|
+
function T(e) {
|
|
30
31
|
return {
|
|
31
32
|
async list(a, t = {}) {
|
|
32
|
-
const
|
|
33
|
-
return
|
|
34
|
-
|
|
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,
|
|
40
|
-
return { data: (await e.get(`${a}${t}/`,
|
|
40
|
+
async get(a, t, s) {
|
|
41
|
+
return { data: (await e.get(`${a}${t}/`, s)).data };
|
|
41
42
|
},
|
|
42
|
-
async create(a, t,
|
|
43
|
-
return { data: (await e.post(a, t,
|
|
43
|
+
async create(a, t, s) {
|
|
44
|
+
return { data: (await e.post(a, t, s)).data };
|
|
44
45
|
},
|
|
45
|
-
async update(a, t,
|
|
46
|
-
return { data: (await e.patch(`${a}${t}/`,
|
|
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
|
|
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 ??
|
|
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(
|
|
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
|
|
72
|
+
function x(e) {
|
|
72
73
|
return e.split("?")[0].replace(/^\/+|\/+$/g, "").replace(/^api\/v\d+\//, "");
|
|
73
74
|
}
|
|
74
|
-
function
|
|
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
|
|
108
|
-
const t =
|
|
109
|
-
if (
|
|
110
|
-
return
|
|
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
|
|
117
|
-
for (const [n, o] of Object.entries(
|
|
118
|
-
|
|
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
|
|
122
|
+
function R(e, a, t) {
|
|
122
123
|
if (typeof a != "string" || !a.trim() || !(t != null && t.length))
|
|
123
124
|
return e;
|
|
124
|
-
const
|
|
125
|
-
return e.or(
|
|
125
|
+
const s = a.trim().replace(/,/g, "\\,"), r = t.map((n) => `${n}.ilike.%${s}%`).join(",");
|
|
126
|
+
return e.or(r);
|
|
126
127
|
}
|
|
127
|
-
function
|
|
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
|
|
137
|
-
return (
|
|
137
|
+
var s;
|
|
138
|
+
return (s = a.mapListItem) == null ? void 0 : s.call(a, t);
|
|
138
139
|
}) : e : [];
|
|
139
140
|
}
|
|
140
|
-
function
|
|
141
|
+
function I(e) {
|
|
141
142
|
const a = e.defaultSelect ?? "*";
|
|
142
143
|
return {
|
|
143
|
-
async list(t,
|
|
144
|
+
async list(t, s = {}) {
|
|
144
145
|
var p;
|
|
145
|
-
const
|
|
146
|
-
let c = e.client.from(
|
|
147
|
-
c = h(c,
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
const
|
|
151
|
-
return
|
|
152
|
-
data: z(
|
|
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:
|
|
156
|
+
rows: l.count ?? ((p = l.data) == null ? void 0 : p.length) ?? 0,
|
|
156
157
|
extras: {}
|
|
157
158
|
};
|
|
158
159
|
},
|
|
159
|
-
async get(t,
|
|
160
|
-
const n = m(t, e), o = n.pk ?? "id", i = await e.client.from(n.table).select(n.select ?? a).eq(o,
|
|
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,
|
|
164
|
-
const n = m(t, e), o = g(
|
|
165
|
-
return
|
|
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,
|
|
168
|
-
const o = m(t, e), i = o.pk ?? "id",
|
|
169
|
-
return
|
|
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,
|
|
172
|
-
const
|
|
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
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
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
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
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
|
-
|
|
200
|
-
|
|
200
|
+
se as WMapSelect,
|
|
201
|
+
re as WMarkdownEditor,
|
|
201
202
|
ne as WMarkdownToc,
|
|
202
203
|
oe as WMarkdownView,
|
|
203
|
-
|
|
204
|
+
v as WMoneyInput,
|
|
204
205
|
ie as WPageHeader,
|
|
205
|
-
|
|
206
|
+
Y as WPrimeVuePlugin,
|
|
206
207
|
ce as WProgressFlow,
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
208
|
+
ue as WSectionHeader,
|
|
209
|
+
de as WStatusTag,
|
|
210
|
+
le as WStepFlow,
|
|
210
211
|
fe as WStepSection,
|
|
211
212
|
me as WTabBar,
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
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
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
ye as
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
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":";;;;;;;AASA,SAASA,EACPC,GACAC,GACAC,GAC6B;AAC7B,QAAMC,IAAOH;AAEb,SAAI,MAAM,QAAQG,EAAK,OAAO,IACrB;AAAA,IACL,MAAMA,EAAK;AAAA,IACX,MAAOA,EAAK,QAAmBF;AAAA,IAC/B,WAAYE,EAAK,aAAwBD;AAAA,IACzC,MAAOC,EAAK,SAAoB;AAAA,IAChC,QAASA,EAAK,UAAsC,CAAA;AAAA,EAAC,IAIrD,MAAM,QAAQA,EAAK,IAAI,IAClB;AAAA,IACL,MAAMA,EAAK;AAAA,IACX,MAAOA,EAAK,QAAmBF;AAAA,IAC/B,WAAYE,EAAK,aAAwBD;AAAA,IACzC,MAAOC,EAAK,QAAmB;AAAA,IAC/B,QAASA,EAAK,UAAsC,CAAA;AAAA,EAAC,IAIlD;AAAA,IACL,MAAM,MAAM,QAAQH,CAAY,IAAKA,IAAuB,CAAA;AAAA,IAC5D,MAAMC;AAAA,IACN,WAAWC;AAAA,IACX,MAAM,MAAM,QAAQF,CAAY,IAAIA,EAAa,SAAS;AAAA,IAC1D,QAAQ,CAAA;AAAA,EAAC;AAEb;AAEO,SAASI,EAAwBC,GAAoC;AAC1E,SAAO;AAAA,IACL,MAAM,KACJC,GACAC,IAAiC,IACK;AACtC,YAAMC,IAAW,MAAMH,EAAM,IAAIC,GAAU,EAAE,QAAAC,GAAQ;AACrD,aAAOR;AAAA,QACLS,EAAS;AAAA,QACT,OAAOD,EAAO,QAAQ,CAAC;AAAA,QACvB,OAAOA,EAAO,aAAa,EAAE;AAAA,MAAA;AAAA,IAEjC;AAAA,IAEA,MAAM,IACJD,GACAG,GACAC,GACkC;AAElC,aAAO,EAAE,OADQ,MAAML,EAAM,IAAO,GAAGC,CAAQ,GAAGG,CAAE,KAAKC,CAAM,GACvC,KAAA;AAAA,IAC1B;AAAA,IAEA,MAAM,OACJJ,GACAK,GACAD,GACkC;AAElC,aAAO,EAAE,OADQ,MAAML,EAAM,KAAQC,GAAUK,GAASD,CAAM,GACtC,KAAA;AAAA,IAC1B;AAAA,IAEA,MAAM,OACJJ,GACAG,GACAE,GACAD,GACkC;AAElC,aAAO,EAAE,OADQ,MAAML,EAAM,MAAS,GAAGC,CAAQ,GAAGG,CAAE,KAAKE,GAASD,CAAM,GAClD,KAAA;AAAA,IAC1B;AAAA,IAEA,MAAM,OAAOJ,GAAkBG,GAAoC;AACjE,YAAMJ,EAAM,OAAO,GAAGC,CAAQ,GAAGG,CAAE,GAAG;AAAA,IACxC;AAAA,EAAA;AAEJ;AC7EO,MAAMG,IAA0B;AAAA,EACrC,QAAQC,GAAUC,GAAyB;AACzC,QAAI,EAACA,KAAA,QAAAA,EAAS,UAAS,EAACA,KAAA,QAAAA,EAAS;AAC/B,YAAM,IAAI;AAAA,QACR;AAAA,MAAA;AAIJ,UAAMC,IAAeD,EAAQ,gBAAgBV,EAAwBU,EAAQ,KAAM,GAE7EJ,IAAwB;AAAA,MAC5B,OAAOI,EAAQ;AAAA,MACf,cAAAC;AAAA,MACA,iBAAiBD,EAAQ,mBAAmB;AAAA,MAC5C,YAAYA,EAAQ,cAAc;AAAA,MAClC,gBAAgBA,EAAQ,kBAAkB;AAAA,MAC1C,QAAQA,EAAQ,UAAU;AAAA,MAC1B,UAAUA,EAAQ,YAAY;AAAA,IAAA;AAGhC,IAAIA,EAAQ,SACVD,EAAI,QAAQG,GAAaF,EAAQ,KAAK,GAExCD,EAAI,QAAQI,GAAqBF,CAAY,GAC7CF,EAAI,QAAQK,GAAcR,CAAM,GAE5BI,EAAQ,uBAAuB,OACjCD,EAAI,UAAU,aAAaM,CAAS,GACpCN,EAAI,UAAU,mBAAmBO,CAAe,GAChDP,EAAI,UAAU,uBAAuBQ,CAAmB,GACxDR,EAAI,UAAU,mBAAmBS,CAAe,GAChDT,EAAI,UAAU,eAAeU,CAAW,GACxCV,EAAI,UAAU,iBAAiBW,CAAa,GAC5CX,EAAI,UAAU,eAAeY,CAAW;AAAA,EAE5C;AACF;ACkBA,SAASC,EAAkBpB,GAA0B;AACnD,SAAOA,EACJ,MAAM,GAAG,EAAE,CAAC,EACZ,QAAQ,cAAc,EAAE,EACxB,QAAQ,gBAAgB,EAAE;AAC/B;AAEA,SAASqB,EAAiBC,GAAmE;AAC3F,SAAO,OAAOA,KAAa,WAAW,EAAE,OAAOA,MAAaA;AAC9D;AAEA,SAASC,EAAoBC,GAAiBC,IAAS,KAAK;AAC1D,SAAO;AAAA,IACL,UAAU;AAAA,MACR,QAAAA;AAAA,MACA,MAAM,EAAE,QAAQD,EAAA;AAAA,IAAQ;AAAA,IAE1B,SAAAA;AAAA,EAAA;AAEJ;AAEA,SAASE,EAAmBrB,GAAsE;AAChG,MAAIA,aAAmB;AACrB,UAAMkB;AAAA,MACJ;AAAA,IAAA;AAIJ,SAAOlB;AACT;AAEA,SAASsB,EAAuBC,GAAgD;AAC9E,QAAM;AAAA,IACJ,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,SAAQA,KAAA,gBAAAA,EAAO,YAAW;AAAA,QAC1B,MAAMA,KAAA,gBAAAA,EAAO;AAAA,QACb,SAASA,KAAA,gBAAAA,EAAO;AAAA,QAChB,MAAMA,KAAA,gBAAAA,EAAO;AAAA,MAAA;AAAA,IACf;AAAA,IAEF,UAASA,KAAA,gBAAAA,EAAO,YAAW;AAAA,EAAA;AAE/B;AAEA,SAASC,EACP7B,GACAQ,GACwB;;AACxB,QAAMsB,IAAeV,EAAkBpB,CAAQ,GACzC+B,KAAqBC,IAAAxB,EAAQ,cAAR,gBAAAwB,EAAoBF;AAE/C,MAAIC;AACF,WAAOV,EAAiBU,CAAkB;AAG5C,OAAIE,IAAAzB,EAAQ,kBAAR,QAAAyB,EAAuB,SAASH;AAClC,WAAO,EAAE,OAAOA,EAAA;AAGlB,QAAMP,EAAoB,oDAAoDvB,CAAQ,MAAM,GAAG;AACjG;AAEA,SAASkC,EACPC,GACAlC,GACAqB,GAC0B;AAC1B,QAAMc,wBAAmB,IAAI,CAAC,QAAQ,aAAa,UAAU,UAAU,CAAC,GAClEC,IAAU,EAAE,GAAGf,EAAS,gBAAgB,GAAGrB,EAAA;AAEjD,aAAW,CAACqC,GAAKC,CAAK,KAAK,OAAO,QAAQF,CAAO;AAC/C,IAAID,EAAa,IAAIE,CAAG,KAAKC,MAAU,QAAQA,MAAU,UAAaA,MAAU,OAGhFJ,IAAQA,EAAM,GAAGG,GAAKC,CAAK;AAG7B,SAAOJ;AACT;AAEA,SAASK,EACPL,GACAM,GACAC,GAC0B;AAC1B,MAAI,OAAOD,KAAW,YAAY,CAACA,EAAO,UAAU,EAACC,KAAA,QAAAA,EAAc;AACjE,WAAOP;AAGT,QAAMQ,IAAgBF,EAAO,KAAA,EAAO,QAAQ,MAAM,KAAK,GACjDG,IAAaF,EAAa,IAAI,CAACG,MAAU,GAAGA,CAAK,WAAWF,CAAa,GAAG,EAAE,KAAK,GAAG;AAE5F,SAAOR,EAAM,GAAGS,CAAU;AAC5B;AAEA,SAASE,EAAcC,GAAmBC,GAAmB;AAC3D,QAAMT,IAAQ,OAAOQ,KAAa,YAAYA,IAAWA,IAAWC;AACpE,SAAKT,IAEE;AAAA,IACL,OAAOA,EAAM,WAAW,GAAG,IAAIA,EAAM,MAAM,CAAC,IAAIA;AAAA,IAChD,WAAW,CAACA,EAAM,WAAW,GAAG;AAAA,EAAA,IAJf;AAMrB;AAEA,SAASU,EAAWpD,GAAkByB,GAAuC;AAC3E,SAAKzB,IACAyB,EAAS,cAEPzB,EAAK,IAAI,CAACqD;;AAAS,YAAAlB,IAAAV,EAAS,gBAAT,gBAAAU,EAAA,KAAAV,GAAuB4B;AAAA,GAAgC,IAF/CrD,IADhB,CAAA;AAIpB;AAEO,SAASsD,EACd3C,GACc;AACd,QAAM4C,IAAgB5C,EAAQ,iBAAiB;AAE/C,SAAO;AAAA,IACL,MAAM,KACJR,GACAC,IAAiC,IACK;;AACtC,YAAMqB,IAAWO,EAAgB7B,GAAUQ,CAAO,GAC5C6C,IAAO,KAAK,IAAI,OAAOpD,EAAO,QAAQ,CAAC,GAAG,CAAC,GAC3CqD,IAAW,KAAK,IAAI,OAAOrD,EAAO,aAAa,EAAE,GAAG,CAAC,GACrDsD,KAAQF,IAAO,KAAKC,GACpBE,IAAKD,IAAOD,IAAW;AAE7B,UAAInB,IAAQ3B,EAAQ,OACjB,KAAKc,EAAS,KAAK,EACnB,OAAYA,EAAS,UAAU8B,GAAe,EAAE,OAAO,SAAS;AAEnE,MAAAjB,IAAQD,EAAaC,GAAOlC,GAAQqB,CAAQ,GAC5Ca,IAAQK,EAAYL,GAAOlC,EAAO,QAAQqB,EAAS,YAAY;AAE/D,YAAMyB,IAAWD,EAAc7C,EAAO,UAAUqB,EAAS,eAAe;AACxE,MAAIyB,MACFZ,IAAQA,EAAM,MAAMY,EAAS,OAAO,EAAE,WAAWA,EAAS,WAAW;AAGvE,YAAMU,IAAS,MAAMtB,EAAM,MAAMoB,GAAMC,CAAE;AACzC,aAAIC,EAAO,SAAO9B,EAAuB8B,EAAO,KAAK,GAE9C;AAAA,QACL,MAAMR,EAAQQ,EAAO,MAAMnC,CAAQ;AAAA,QACnC,MAAA+B;AAAA,QACA,WAAWC;AAAA,QACX,MAAMG,EAAO,WAASzB,IAAAyB,EAAO,SAAP,gBAAAzB,EAAa,WAAU;AAAA,QAC7C,QAAQ,CAAA;AAAA,MAAC;AAAA,IAEb;AAAA,IAEA,MAAM,IACJhC,GACAG,GACAuD,GACkC;AAClC,YAAMpC,IAAWO,EAAgB7B,GAAUQ,CAAO,GAC5CmD,IAAKrC,EAAS,MAAM,MACpBmC,IAAS,MAAMjD,EAAQ,OAC1B,KAAKc,EAAS,KAAK,EACnB,OAAUA,EAAS,UAAU8B,CAAa,EAC1C,GAAGO,GAAIxD,CAAE,EACT,OAAA;AAEH,aAAIsD,EAAO,SAAO9B,EAAuB8B,EAAO,KAAK,GAC9C,EAAE,MAAMA,EAAO,KAAA;AAAA,IACxB;AAAA,IAEA,MAAM,OACJzD,GACAK,GACAqD,GACkC;AAClC,YAAMpC,IAAWO,EAAgB7B,GAAUQ,CAAO,GAC5CoD,IAAelC,EAAmBrB,CAAO,GACzCwD,IAAgBvC,EAAS,aAC3BA,EAAS,WAAWsC,GAAc,QAAQ,IAC1CA,GACEH,IAAS,MAAMjD,EAAQ,OAC1B,KAAKc,EAAS,KAAK,EACnB,OAAUuC,CAAa,EACvB,OAAOvC,EAAS,UAAU8B,CAAa,EACvC,OAAA;AAEH,aAAIK,EAAO,SAAO9B,EAAuB8B,EAAO,KAAK,GAC9C,EAAE,MAAMA,EAAO,KAAA;AAAA,IACxB;AAAA,IAEA,MAAM,OACJzD,GACAG,GACAE,GACAqD,GACkC;AAClC,YAAMpC,IAAWO,EAAgB7B,GAAUQ,CAAO,GAC5CmD,IAAKrC,EAAS,MAAM,MACpBsC,IAAelC,EAAmBrB,CAAO,GACzCwD,IAAgBvC,EAAS,aAC3BA,EAAS,WAAWsC,GAAc,QAAQ,IAC1CA,GACEH,IAAS,MAAMjD,EAAQ,OAC1B,KAAKc,EAAS,KAAK,EACnB,OAAUuC,CAAa,EACvB,GAAGF,GAAIxD,CAAE,EACT,OAAOmB,EAAS,UAAU8B,CAAa,EACvC,OAAA;AAEH,aAAIK,EAAO,SAAO9B,EAAuB8B,EAAO,KAAK,GAC9C,EAAE,MAAMA,EAAO,KAAA;AAAA,IACxB;AAAA,IAEA,MAAM,OAAOzD,GAAkBG,GAAoC;AACjE,YAAMmB,IAAWO,EAAgB7B,GAAUQ,CAAO,GAC5CmD,IAAKrC,EAAS,MAAM,MACpBwC,IACJxC,EAAS,eAAe,KACpB,EAAE,WAAW,OACb,OAAOA,EAAS,cAAe,WAC7BA,EAAS,aACT,MAEFmC,IAASK,IACX,MAAMtD,EAAQ,OAAO,KAAKc,EAAS,KAAK,EAAE,OAAOwC,CAAiB,EAAE,GAAGH,GAAIxD,CAAE,IAC7E,MAAMK,EAAQ,OAAO,KAAKc,EAAS,KAAK,EAAE,OAAA,EAAS,GAAGqC,GAAIxD,CAAE;AAEhE,MAAIsD,EAAO,SAAO9B,EAAuB8B,EAAO,KAAK;AAAA,IACvD;AAAA,EAAA;AAEJ;"}
|
|
@@ -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-
|
|
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;"}
|