@wgalleti/primevue-components 0.10.0 → 0.11.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 (33) hide show
  1. package/README.md +4 -0
  2. package/dist/WMapSelect.vue_vue_type_script_setup_true_lang-BOhO1F9v.js +4991 -0
  3. package/dist/WMapSelect.vue_vue_type_script_setup_true_lang-BOhO1F9v.js.map +1 -0
  4. package/dist/WMapSelect.vue_vue_type_script_setup_true_lang-BkZhQ_LO.cjs +12 -0
  5. package/dist/WMapSelect.vue_vue_type_script_setup_true_lang-BkZhQ_LO.cjs.map +1 -0
  6. package/dist/components/crud/WEditableTable.vue.d.ts +78 -0
  7. package/dist/components/form/WAutoCompleteFK.vue.d.ts +9 -1
  8. package/dist/components/index.d.ts +5 -0
  9. package/dist/components/ui/WCheckList.vue.d.ts +36 -0
  10. package/dist/components/ui/WInfoCard.vue.d.ts +11 -1
  11. package/dist/components/ui/WMapSelect.vue.d.ts +133 -0
  12. package/dist/components/ui/WStepFlow.vue.d.ts +51 -0
  13. package/dist/components/ui/WStepSection.vue.d.ts +49 -0
  14. package/dist/components.cjs +1 -1
  15. package/dist/components.cjs.map +1 -1
  16. package/dist/components.js +29 -125
  17. package/dist/components.js.map +1 -1
  18. package/dist/index.cjs +1 -1
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.ts +4 -2
  21. package/dist/index.js +68 -60
  22. package/dist/primevue-components.css +1 -1
  23. package/dist/types/checkList.d.ts +7 -0
  24. package/dist/types/editableTable.d.ts +39 -0
  25. package/dist/types/field.d.ts +27 -1
  26. package/dist/types/index.d.ts +3 -0
  27. package/dist/types/mapSelect.d.ts +31 -0
  28. package/dist/utils/stepFlow.d.ts +27 -0
  29. package/package.json +3 -1
  30. package/dist/WProgressFlow.vue_vue_type_script_setup_true_lang-C-167GXT.cjs +0 -12
  31. package/dist/WProgressFlow.vue_vue_type_script_setup_true_lang-C-167GXT.cjs.map +0 -1
  32. package/dist/WProgressFlow.vue_vue_type_script_setup_true_lang-D9HgZsV9.js +0 -3886
  33. package/dist/WProgressFlow.vue_vue_type_script_setup_true_lang-D9HgZsV9.js.map +0 -1
@@ -1,3886 +0,0 @@
1
- import { defineComponent as se, openBlock as n, createElementBlock as m, createBlock as S, unref as u, toDisplayString as A, inject as Et, ref as T, computed as D, onMounted as yt, nextTick as ut, watch as Ve, reactive as Ae, resolveDirective as Ft, Fragment as te, createElementVNode as f, mergeProps as Xt, createVNode as P, createSlots as Je, withCtx as H, withDirectives as ue, createCommentVNode as k, renderList as ie, normalizeStyle as ye, createTextVNode as Fe, normalizeClass as le, onBeforeUnmount as Zt, renderSlot as B, isRef as Qt, withModifiers as _t, normalizeProps as ft, guardReactiveProps as vt, useSlots as el, createStaticVNode as tl } from "vue";
2
- import Pt from "primevue/datatable";
3
- import Oe from "primevue/column";
4
- import O from "primevue/button";
5
- import de from "primevue/inputtext";
6
- import ot from "primevue/inputnumber";
7
- import pt from "primevue/select";
8
- import Mt from "primevue/popover";
9
- import ll from "primevue/checkbox";
10
- import ze from "primevue/iconfield";
11
- import We from "primevue/inputicon";
12
- import al from "primevue/paginator";
13
- import ol from "primevue/contextmenu";
14
- import nt from "primevue/dialog";
15
- import It from "primevue/tag";
16
- import { f as gt, b as nl, a as il, e as kt, c as sl, d as rl } from "./useFormKeyboardNav-D4Irq5RE.js";
17
- import ul from "primevue/textarea";
18
- import Rt from "primevue/autocomplete";
19
- import dl from "primevue/toggleswitch";
20
- import cl from "primevue/colorpicker";
21
- import ml from "primevue/password";
22
- import wt from "primevue/chip";
23
- import { W as fl } from "./plugin-BKa0eSEM.js";
24
- import At from "primevue/datepicker";
25
- import vl from "primevue/inputgroup";
26
- import $t from "primevue/inputgroupaddon";
27
- import pl from "primevue/slider";
28
- import hl from "primevue/tree";
29
- import et from "primevue/skeleton";
30
- const yl = {
31
- key: 0,
32
- class: "text-muted-color text-xs"
33
- }, gl = ["src", "alt"], bl = {
34
- key: 3,
35
- class: "text-muted-color tabular-nums text-[0.8125rem]"
36
- }, kl = {
37
- key: 4,
38
- class: "text-muted-color tabular-nums text-[0.8125rem]"
39
- }, wl = {
40
- key: 5,
41
- class: "font-semibold tabular-nums text-[0.8125rem]"
42
- }, $l = {
43
- key: 6,
44
- class: "font-semibold tabular-nums text-[0.8125rem]"
45
- }, xl = {
46
- key: 7,
47
- class: "text-[0.8125rem]"
48
- }, ht = /* @__PURE__ */ se({
49
- __name: "WCrudColumnRenderer",
50
- props: {
51
- column: {},
52
- value: {},
53
- rowData: {}
54
- },
55
- setup(e) {
56
- const { formatDate: a, formatDateTime: t, formatCurrency: o, formatNumber: i } = gt();
57
- return (d, h) => e.value == null ? (n(), m("span", yl, "—")) : e.column.type === "image" ? (n(), m("img", {
58
- key: 1,
59
- src: String(e.value),
60
- alt: e.column.header,
61
- class: "size-9 rounded-lg object-cover ring-1 ring-surface-200 dark:ring-surface-700"
62
- }, null, 8, gl)) : e.column.type === "boolean" ? (n(), S(u(It), {
63
- key: 2,
64
- value: e.column.tagValue ? e.column.tagValue(e.value, e.rowData) : e.value ? "Ativo" : "Inativo",
65
- severity: e.column.tagSeverity ? e.column.tagSeverity(e.value, e.rowData) : e.value ? "success" : "danger",
66
- class: "text-xs"
67
- }, null, 8, ["value", "severity"])) : e.column.type === "date" ? (n(), m("span", bl, A(u(a)(e.value)), 1)) : e.column.type === "datetime" ? (n(), m("span", kl, A(u(t)(e.value)), 1)) : e.column.type === "currency" ? (n(), m("span", wl, A(u(o)(e.value)), 1)) : e.column.type === "number" ? (n(), m("span", $l, A(e.column.format ? e.column.format(e.value, e.rowData) : u(i)(e.value, e.column.decimals ?? 0)), 1)) : (n(), m("span", xl, A(e.column.format ? e.column.format(e.value, e.rowData) : e.value), 1));
68
- }
69
- });
70
- var Cl = Object.defineProperty, Vl = (e, a, t) => a in e ? Cl(e, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[a] = t, Xe = (e, a, t) => Vl(e, typeof a != "symbol" ? a + "" : a, t);
71
- const xt = {
72
- "#": { pattern: /[0-9]/ },
73
- "@": { pattern: /[a-zA-Z]/ },
74
- "*": { pattern: /[a-zA-Z0-9]/ }
75
- }, Ct = (e, a, t) => e.replaceAll(a, "").replace(t, ".").replace("..", ".").replace(/[^.\d]/g, ""), Vt = (e, a, t) => {
76
- var o;
77
- return new Intl.NumberFormat(((o = t.number) == null ? void 0 : o.locale) ?? "en", {
78
- minimumFractionDigits: e,
79
- maximumFractionDigits: a,
80
- roundingMode: "trunc"
81
- });
82
- }, Sl = (e, a = !0, t) => {
83
- var o, i, d, h;
84
- const V = ((o = t.number) == null ? void 0 : o.unsigned) !== !0 && e.startsWith("-") ? "-" : "", x = ((i = t.number) == null ? void 0 : i.fraction) ?? 0;
85
- let w = Vt(0, x, t);
86
- const I = w.formatToParts(1000.12), $ = ((d = I.find((R) => R.type === "group")) == null ? void 0 : d.value) ?? " ", z = ((h = I.find((R) => R.type === "decimal")) == null ? void 0 : h.value) ?? ".", G = Ct(e, $, z);
87
- if (Number.isNaN(parseFloat(G))) return V;
88
- const Y = G.split(".");
89
- if (Y[1] != null && Y[1].length >= 1) {
90
- const R = Y[1].length <= x ? Y[1].length : x;
91
- w = Vt(R, x, t);
92
- }
93
- let X = w.format(parseFloat(G));
94
- return a ? x > 0 && G.endsWith(".") && !G.slice(0, -1).includes(".") && (X += z) : X = Ct(X, $, z), V + X;
95
- }, Bt = (e) => JSON.parse(e.replaceAll("'", '"')), Dl = (e, a = {}) => {
96
- const t = { ...a };
97
- e.dataset.maska != null && e.dataset.maska !== "" && (t.mask = El(e.dataset.maska)), e.dataset.maskaEager != null && (t.eager = tt(e.dataset.maskaEager)), e.dataset.maskaReversed != null && (t.reversed = tt(e.dataset.maskaReversed)), e.dataset.maskaTokensReplace != null && (t.tokensReplace = tt(e.dataset.maskaTokensReplace)), e.dataset.maskaTokens != null && (t.tokens = Fl(e.dataset.maskaTokens));
98
- const o = {};
99
- return e.dataset.maskaNumberLocale != null && (o.locale = e.dataset.maskaNumberLocale), e.dataset.maskaNumberFraction != null && (o.fraction = parseInt(e.dataset.maskaNumberFraction)), e.dataset.maskaNumberUnsigned != null && (o.unsigned = tt(e.dataset.maskaNumberUnsigned)), (e.dataset.maskaNumber != null || Object.values(o).length > 0) && (t.number = o), t;
100
- }, tt = (e) => e !== "" ? !!JSON.parse(e) : !0, El = (e) => e.startsWith("[") && e.endsWith("]") ? Bt(e) : e, Fl = (e) => {
101
- if (e.startsWith("{") && e.endsWith("}"))
102
- return Bt(e);
103
- const a = {};
104
- return e.split("|").forEach((t) => {
105
- const o = t.split(":");
106
- a[o[0]] = {
107
- pattern: Ut() ? new RegExp(o[1], "u") : new RegExp(o[1]),
108
- optional: o[2] === "optional",
109
- multiple: o[2] === "multiple",
110
- repeated: o[2] === "repeated"
111
- };
112
- }), a;
113
- }, Ut = () => {
114
- try {
115
- return new RegExp("\\p{L}", "u"), !0;
116
- } catch {
117
- return !1;
118
- }
119
- };
120
- class Pl {
121
- constructor(a = {}) {
122
- Xe(this, "opts", {}), Xe(this, "memo", /* @__PURE__ */ new Map());
123
- const t = { ...a };
124
- if (t.tokens != null) {
125
- t.tokens = t.tokensReplace ? { ...t.tokens } : { ...xt, ...t.tokens };
126
- for (const o of Object.values(t.tokens))
127
- typeof o.pattern == "string" && (o.pattern = Ut() ? new RegExp(o.pattern, "u") : new RegExp(o.pattern));
128
- } else
129
- t.tokens = xt;
130
- Array.isArray(t.mask) && (t.mask.length > 1 ? t.mask = [...t.mask].sort((o, i) => o.length - i.length) : t.mask = t.mask[0] ?? ""), t.mask === "" && (t.mask = null), this.opts = t;
131
- }
132
- masked(a) {
133
- return this.process(String(a), this.findMask(String(a)));
134
- }
135
- unmasked(a) {
136
- return this.process(String(a), this.findMask(String(a)), !1);
137
- }
138
- isEager() {
139
- return this.opts.eager === !0;
140
- }
141
- isReversed() {
142
- return this.opts.reversed === !0;
143
- }
144
- completed(a) {
145
- const t = this.findMask(String(a));
146
- if (this.opts.mask == null || t == null) return !1;
147
- const o = this.process(String(a), t).length;
148
- return typeof this.opts.mask == "string" ? o >= this.opts.mask.length : o >= t.length;
149
- }
150
- findMask(a) {
151
- const t = this.opts.mask;
152
- if (t == null)
153
- return null;
154
- if (typeof t == "string")
155
- return t;
156
- if (typeof t == "function")
157
- return t(a);
158
- const o = this.process(a, t.slice(-1).pop() ?? "", !1);
159
- return t.find((i) => this.process(a, i, !1).length >= o.length) ?? "";
160
- }
161
- escapeMask(a) {
162
- const t = [], o = [];
163
- return a.split("").forEach((i, d) => {
164
- i === "!" && a[d - 1] !== "!" ? o.push(d - o.length) : t.push(i);
165
- }), { mask: t.join(""), escaped: o };
166
- }
167
- process(a, t, o = !0) {
168
- if (this.opts.number != null) return Sl(a, o, this.opts);
169
- if (t == null) return a;
170
- const i = `v=${a},mr=${t},m=${o ? 1 : 0}`;
171
- if (this.memo.has(i)) return this.memo.get(i);
172
- const { mask: d, escaped: h } = this.escapeMask(t), V = [], x = this.opts.tokens != null ? this.opts.tokens : {}, w = this.isReversed() ? -1 : 1, I = this.isReversed() ? "unshift" : "push", $ = this.isReversed() ? 0 : d.length - 1, z = this.isReversed() ? () => R > -1 && L > -1 : () => R < d.length && L < a.length, G = (F) => !this.isReversed() && F <= $ || this.isReversed() && F >= $;
173
- let Y, X = -1, R = this.isReversed() ? d.length - 1 : 0, L = this.isReversed() ? a.length - 1 : 0, W = !1;
174
- for (; z(); ) {
175
- const F = d.charAt(R), j = x[F], K = (j == null ? void 0 : j.transform) != null ? j.transform(a.charAt(L)) : a.charAt(L);
176
- if (!h.includes(R) && j != null ? (K.match(j.pattern) != null ? (V[I](K), j.repeated ? (X === -1 ? X = R : R === $ && R !== X && (R = X - w), $ === X && (R -= w)) : j.multiple && (W = !0, R -= w), R += w) : j.multiple ? W && (R += w, L -= w, W = !1) : K === Y ? Y = void 0 : j.optional && (R += w, L -= w), L += w) : (o && !this.isEager() && V[I](F), K === F && !this.isEager() ? L += w : Y = F, this.isEager() || (R += w)), this.isEager())
177
- for (; G(R) && (x[d.charAt(R)] == null || h.includes(R)); ) {
178
- if (o) {
179
- if (V[I](d.charAt(R)), a.charAt(L) === d.charAt(R)) {
180
- R += w, L += w;
181
- continue;
182
- }
183
- } else d.charAt(R) === a.charAt(L) && (L += w);
184
- R += w;
185
- }
186
- }
187
- return this.memo.set(i, V.join("")), this.memo.get(i);
188
- }
189
- }
190
- class Ml {
191
- constructor(a, t = {}) {
192
- Xe(this, "items", /* @__PURE__ */ new Map()), Xe(this, "eventAbortController"), Xe(this, "onInput", (o) => {
193
- if (o instanceof CustomEvent && o.type === "input" && !o.isTrusted && !o.bubbles)
194
- return;
195
- const i = o.target, d = this.items.get(i);
196
- if (d === void 0) return;
197
- const h = "inputType" in o && o.inputType.startsWith("delete"), V = d.isEager(), x = h && V && d.unmasked(i.value) === "" ? "" : i.value;
198
- this.fixCursor(i, h, () => this.setValue(i, x));
199
- }), this.options = t, this.eventAbortController = new AbortController(), this.init(this.getInputs(a));
200
- }
201
- update(a = {}) {
202
- this.options = { ...a }, this.init(Array.from(this.items.keys()));
203
- }
204
- updateValue(a) {
205
- var t;
206
- a.value !== "" && a.value !== ((t = this.processInput(a)) == null ? void 0 : t.masked) && this.setValue(a, a.value);
207
- }
208
- destroy() {
209
- this.eventAbortController.abort(), this.items.clear();
210
- }
211
- init(a) {
212
- const t = this.getOptions(this.options);
213
- for (const o of a) {
214
- if (!this.items.has(o)) {
215
- const { signal: d } = this.eventAbortController;
216
- o.addEventListener("input", this.onInput, { capture: !0, signal: d });
217
- }
218
- const i = new Pl(Dl(o, t));
219
- this.items.set(o, i), queueMicrotask(() => this.updateValue(o)), o.selectionStart === null && i.isEager() && console.warn("Maska: input of `%s` type is not supported", o.type);
220
- }
221
- }
222
- getInputs(a) {
223
- return typeof a == "string" ? Array.from(document.querySelectorAll(a)) : "length" in a ? Array.from(a) : [a];
224
- }
225
- getOptions(a) {
226
- const { onMaska: t, preProcess: o, postProcess: i, ...d } = a;
227
- return d;
228
- }
229
- fixCursor(a, t, o) {
230
- var i, d;
231
- const h = a.selectionStart, V = a.value;
232
- if (o(), h === null || h === V.length && !t) return;
233
- const x = a.value, w = V.slice(0, h), I = x.slice(0, h), $ = (i = this.processInput(a, w)) == null ? void 0 : i.unmasked, z = (d = this.processInput(a, I)) == null ? void 0 : d.unmasked;
234
- if ($ === void 0 || z === void 0) return;
235
- let G = h;
236
- w !== I && (G += t ? x.length - V.length : $.length - z.length), a.setSelectionRange(G, G);
237
- }
238
- setValue(a, t) {
239
- const o = this.processInput(a, t);
240
- o !== void 0 && (a.value = o.masked, this.options.onMaska != null && (Array.isArray(this.options.onMaska) ? this.options.onMaska.forEach((i) => i(o)) : this.options.onMaska(o)), a.dispatchEvent(new CustomEvent("maska", { detail: o })), a.dispatchEvent(new CustomEvent("input", { detail: o.masked })));
241
- }
242
- processInput(a, t) {
243
- const o = this.items.get(a);
244
- if (o === void 0) return;
245
- let i = t ?? a.value;
246
- this.options.preProcess != null && (i = this.options.preProcess(i));
247
- let d = o.masked(i);
248
- return this.options.postProcess != null && (d = this.options.postProcess(d)), {
249
- masked: d,
250
- unmasked: o.unmasked(i),
251
- completed: o.completed(i)
252
- };
253
- }
254
- }
255
- const dt = /* @__PURE__ */ new WeakMap(), Il = (e, a) => {
256
- if (e.arg == null || e.instance == null) return;
257
- const t = "setup" in e.instance.$.type;
258
- e.arg in e.instance ? e.instance[e.arg] = a : t && console.warn("Maska: please expose `%s` using defineExpose", e.arg);
259
- }, at = (e, a) => {
260
- var t;
261
- const o = e instanceof HTMLInputElement ? e : e.querySelector("input");
262
- if (o == null || (o == null ? void 0 : o.type) === "file") return;
263
- let i = {};
264
- if (a.value != null && (i = typeof a.value == "string" ? { mask: a.value } : { ...a.value }), a.arg != null) {
265
- const d = (h) => {
266
- const V = a.modifiers.unmasked ? h.unmasked : a.modifiers.completed ? h.completed : h.masked;
267
- Il(a, V);
268
- };
269
- i.onMaska = i.onMaska == null ? d : Array.isArray(i.onMaska) ? [...i.onMaska, d] : [i.onMaska, d];
270
- }
271
- dt.has(o) ? (t = dt.get(o)) == null || t.update(i) : dt.set(o, new Ml(o, i));
272
- }, Rl = {
273
- string: "text",
274
- integer: "number",
275
- decimal: "number",
276
- float: "number",
277
- boolean: "switch",
278
- choice: "select",
279
- fk: "fk",
280
- date: "date",
281
- datetime: "datetime",
282
- email: "email",
283
- url: "text",
284
- slug: "text",
285
- text: "textarea"
286
- };
287
- function Al(e) {
288
- var o;
289
- const a = Rl[e.type] ?? "text", t = {
290
- field: e.name,
291
- label: e.label,
292
- type: a,
293
- required: e.required ?? !1
294
- };
295
- return (e.type === "decimal" || e.type === "float") && (t.minFractionDigits = 2, t.maxFractionDigits = 2), e.type === "boolean" && (t.defaultValue = !1), e.type === "choice" && ((o = e.choices) != null && o.length) && (t.options = e.choices.map((i) => ({
296
- label: i.label,
297
- value: i.value
298
- }))), e.type === "fk" && (t.endpoint = e.endpoint, e.option_label && (t.optionLabel = e.option_label), e.option_value && (t.optionValue = e.option_value)), t;
299
- }
300
- function Bl(e) {
301
- return e.filter((a) => !a.read_only && a.name !== "id").map(Al);
302
- }
303
- const Ul = {
304
- boolean: "boolean",
305
- date: "date",
306
- datetime: "datetime",
307
- decimal: "number",
308
- float: "number",
309
- integer: "number"
310
- };
311
- function Tl(e) {
312
- return {
313
- field: e.type === "fk" ? `${e.name}_nome` : e.name,
314
- header: e.label,
315
- type: Ul[e.type],
316
- sortable: !0
317
- };
318
- }
319
- function Ll(e, a = 6) {
320
- return e.filter((t) => !t.read_only && t.name !== "id").slice(0, a).map(Tl);
321
- }
322
- const Nl = {
323
- key: 2,
324
- class: "w-autocompletefk-chip-hidden"
325
- }, Ol = ["disabled"], zl = { class: "w-autocompletefk-toolbar" }, Wl = { class: "w-autocompletefk-toolbar-actions" }, jl = { class: "flex items-center justify-end gap-1" }, ql = { class: "w-autocompletefk-footer" }, Kl = /* @__PURE__ */ se({
326
- inheritAttrs: !1,
327
- __name: "WAutoCompleteFK",
328
- props: {
329
- modelValue: {},
330
- endpoint: {},
331
- endpointParams: {},
332
- drilldown: {},
333
- multiple: { type: Boolean, default: !1 },
334
- maxChips: { default: 0 },
335
- optionLabel: { default: "nome" },
336
- optionValue: { default: "id" },
337
- placeholder: { default: "Buscar..." },
338
- blockedPlaceholder: {},
339
- disabled: { type: Boolean, default: !1 },
340
- showClear: { type: Boolean, default: !0 },
341
- forceSelection: { type: Boolean, default: !0 },
342
- columns: {},
343
- minLength: { default: 0 },
344
- dialogHeader: {},
345
- canCreate: { type: Boolean, default: void 0 },
346
- canEdit: { type: Boolean, default: void 0 },
347
- canDelete: { type: Boolean, default: void 0 },
348
- crudFields: {},
349
- crudColumns: {},
350
- dialogWidth: { default: "480px" },
351
- autofocus: { type: Boolean, default: !1 }
352
- },
353
- emits: ["update:modelValue"],
354
- setup(e, { emit: a }) {
355
- const t = e, o = a, i = Et(fl);
356
- if (!i)
357
- throw new Error("[wPrimeVueComponents] dataProvider não encontrado. Registre o WPrimeVuePlugin.");
358
- const d = i, h = nl(), { confirmDelete: V } = il(), x = T(null), w = T([]), I = T([]), $ = T(!1), z = D(() => t.multiple ? w.value : x.value);
359
- function G(s) {
360
- return s && typeof s == "object" ? s[t.optionValue] : s;
361
- }
362
- function Y(s) {
363
- const b = /* @__PURE__ */ new Set(), E = [];
364
- for (const M of s) {
365
- const U = G(M);
366
- b.has(U) || (b.add(U), E.push(M));
367
- }
368
- return E;
369
- }
370
- function X() {
371
- o("update:modelValue", t.multiple ? [...w.value] : x.value);
372
- }
373
- function R(s) {
374
- const b = s == null ? void 0 : s[t.optionLabel];
375
- return b == null ? "" : String(b);
376
- }
377
- const L = D(
378
- () => t.maxChips > 0 ? Math.max(0, w.value.length - t.maxChips) : 0
379
- ), W = D(
380
- () => w.value.slice(t.maxChips).map(R).join(", ")
381
- );
382
- function F(s, b) {
383
- var E;
384
- (E = s == null ? void 0 : s.stopPropagation) == null || E.call(s), b(s);
385
- }
386
- function j() {
387
- if (!t.disabled) {
388
- if (t.multiple) {
389
- if (!w.value.length) return;
390
- w.value = [];
391
- } else {
392
- if (!x.value) return;
393
- x.value = null;
394
- }
395
- X();
396
- }
397
- }
398
- const K = D(
399
- () => t.multiple && t.maxChips > 0 ? { "--w-fk-chip-max": `max(6rem, calc((100% - 6rem) / ${t.maxChips}))` } : void 0
400
- ), Z = D(() => !t.showClear || t.disabled ? !1 : t.multiple ? w.value.length > 0 : x.value !== null);
401
- let J = null;
402
- const ce = T(null);
403
- yt(() => {
404
- t.autofocus && ut(() => {
405
- var b, E, M, U;
406
- const s = (M = (E = (b = ce.value) == null ? void 0 : b.$el) == null ? void 0 : E.querySelector) == null ? void 0 : M.call(E, "input");
407
- s && (s.setAttribute("autofocus", ""), s.focus(), (U = s.select) == null || U.call(s));
408
- });
409
- });
410
- function ke(s) {
411
- return s == null || s === "";
412
- }
413
- function Se(s) {
414
- if (s && typeof s == "object") {
415
- const b = s;
416
- return b.id ?? b.value ?? b;
417
- }
418
- return s;
419
- }
420
- const me = D(() => {
421
- const s = t.drilldown;
422
- return s ? Array.isArray(s) ? s : [s] : [];
423
- }), De = D(
424
- () => me.value.some(
425
- (s) => (s.required ?? !0) && ke(Se(s.value))
426
- )
427
- );
428
- function ve() {
429
- const s = {};
430
- for (const b of me.value) {
431
- const E = Se(b.value);
432
- ke(E) || (s[b.field] = E);
433
- }
434
- return s;
435
- }
436
- const fe = D(
437
- () => De.value && t.blockedPlaceholder ? t.blockedPlaceholder : t.placeholder
438
- ), pe = D(
439
- () => t.multiple && w.value.length ? void 0 : fe.value
440
- );
441
- async function ge(s) {
442
- try {
443
- return (await d.get(t.endpoint, s)).data;
444
- } catch {
445
- return null;
446
- }
447
- }
448
- async function we(s) {
449
- x.value = await ge(s);
450
- }
451
- async function be(s) {
452
- return (await Promise.all(
453
- s.map(async (E) => {
454
- if (E && typeof E == "object") {
455
- const U = E;
456
- if (t.optionLabel in U) return U;
457
- const Ce = U[t.optionValue];
458
- return Ce != null ? await ge(Ce) : null;
459
- }
460
- return w.value.find((U) => U[t.optionValue] === E) ?? await ge(E);
461
- })
462
- )).filter((E) => E !== null);
463
- }
464
- async function Ee(s) {
465
- if (De.value) {
466
- I.value = [];
467
- return;
468
- }
469
- $.value = !0;
470
- try {
471
- const b = {
472
- page_size: 20,
473
- ...t.endpointParams,
474
- ...ve()
475
- };
476
- s && (b.search = s);
477
- const E = await d.list(t.endpoint, b);
478
- I.value = E.data;
479
- } catch {
480
- I.value = [];
481
- } finally {
482
- $.value = !1;
483
- }
484
- }
485
- function p(s) {
486
- const b = s.query || "";
487
- if (b.length < t.minLength) {
488
- I.value = [];
489
- return;
490
- }
491
- J && clearTimeout(J), J = setTimeout(() => Ee(b), 300);
492
- }
493
- function g(s) {
494
- t.multiple || (x.value = s.value, o("update:modelValue", s.value));
495
- }
496
- function y(s) {
497
- t.multiple && (w.value = Y(
498
- Array.isArray(s) ? s : []
499
- ), X());
500
- }
501
- function l() {
502
- t.multiple || (x.value = null, X());
503
- }
504
- Ve(
505
- () => t.modelValue,
506
- async (s) => {
507
- if (t.multiple) {
508
- const b = s == null ? [] : Array.isArray(s) ? s : [s], E = b.map(G), M = w.value.map((U) => U[t.optionValue]);
509
- if (E.length === M.length && E.every((U, Ce) => U === M[Ce])) return;
510
- w.value = await be(b);
511
- return;
512
- }
513
- if (s != null) {
514
- if (typeof s == "object" && s !== null && t.optionLabel in s) {
515
- x.value = s;
516
- return;
517
- }
518
- (!x.value || x.value[t.optionValue] !== s) && await we(s);
519
- } else
520
- x.value = null;
521
- },
522
- { immediate: !0 }
523
- );
524
- const C = T(!1), ae = T([]), ee = T(!1), oe = T(""), _ = T(1), ne = T(15), $e = T(0), re = T(null), he = D(() => {
525
- const s = re.value;
526
- return s ? Array.isArray(s) ? s : [s] : [];
527
- }), Re = T(null), Pe = T(0);
528
- let Be = null;
529
- const Ue = T([]), je = D(() => {
530
- var s;
531
- return (s = t.crudFields) != null && s.length ? !0 : Ue.value.length > 0;
532
- }), it = D(() => t.canCreate ?? je.value), Ze = D(() => t.canEdit ?? je.value), Me = D(() => t.canDelete ?? je.value), qe = D(() => Ze.value || Me.value), c = D(() => {
533
- var s;
534
- return (s = t.crudFields) != null && s.length ? t.crudFields : Bl(Ue.value);
535
- }), v = D(() => {
536
- var s, b;
537
- return (s = t.crudColumns) != null && s.length ? t.crudColumns : (b = t.columns) != null && b.length ? t.columns.map((E) => ({
538
- field: E.field,
539
- header: E.header,
540
- sortable: !0
541
- })) : Ue.value.length ? Ll(Ue.value) : [{ field: t.optionLabel, header: t.optionLabel, sortable: !0 }];
542
- });
543
- async function q() {
544
- var s, b, E;
545
- if (De.value) {
546
- ae.value = [], $e.value = 0;
547
- return;
548
- }
549
- ee.value = !0;
550
- try {
551
- const M = {
552
- page: _.value,
553
- page_size: ne.value,
554
- ...t.endpointParams,
555
- ...ve()
556
- };
557
- oe.value && (M.search = oe.value), Re.value && Pe.value !== 0 && (M.ordering = Pe.value === -1 ? `-${Re.value}` : Re.value);
558
- const U = await d.list(t.endpoint, M);
559
- ae.value = U.data, $e.value = U.rows, (s = U.extras) != null && s.fields && !((b = t.columns) != null && b.length) && !((E = t.crudFields) != null && E.length) && (Ue.value = U.extras.fields);
560
- } catch {
561
- ae.value = [], $e.value = 0;
562
- } finally {
563
- ee.value = !1;
564
- }
565
- }
566
- function r(s) {
567
- s.key === "F2" && !t.disabled && (s.preventDefault(), N());
568
- }
569
- function N() {
570
- t.disabled || (oe.value = "", _.value = 1, Re.value = null, Pe.value = 0, re.value = t.multiple ? [...w.value] : null, C.value = !0, q());
571
- }
572
- function Q(s) {
573
- _.value = s.page + 1, ne.value = s.rows, q();
574
- }
575
- function xe(s) {
576
- Re.value = s.sortField ?? null, Pe.value = s.sortOrder ?? 0, _.value = 1, q();
577
- }
578
- function Ke() {
579
- if (t.multiple) {
580
- w.value = Y(he.value), X(), C.value = !1;
581
- return;
582
- }
583
- const s = he.value[0];
584
- s && (x.value = s, o("update:modelValue", s), C.value = !1);
585
- }
586
- function Qe(s) {
587
- if (t.multiple) {
588
- re.value = Y([...he.value, s.data]);
589
- return;
590
- }
591
- x.value = s.data, o("update:modelValue", s.data), C.value = !1;
592
- }
593
- const He = T(null), Ge = T(null);
594
- let Te = "";
595
- function _e() {
596
- Te = "", ut(() => {
597
- var b, E, M;
598
- const s = (b = He.value) == null ? void 0 : b.$el;
599
- (E = s == null ? void 0 : s.focus) == null || E.call(s), (M = s == null ? void 0 : s.select) == null || M.call(s);
600
- });
601
- }
602
- function Ie() {
603
- ut(() => {
604
- var b;
605
- const s = (b = Ge.value) == null ? void 0 : b.querySelector(".p-datatable-tbody > tr");
606
- s == null || s.focus();
607
- });
608
- }
609
- function Nt(s) {
610
- if (s.key !== "Enter" || s.isComposing) return;
611
- s.preventDefault();
612
- const b = oe.value.trim();
613
- if (b === "" || b === Te) {
614
- Ie();
615
- return;
616
- }
617
- Be && clearTimeout(Be), Te = b, _.value = 1, q();
618
- }
619
- function Ot(s) {
620
- s.key === "Enter" && (s.preventDefault(), s.stopPropagation(), (t.multiple || he.value.length) && Ke());
621
- }
622
- Ve(oe, () => {
623
- Be && clearTimeout(Be), Be = setTimeout(() => {
624
- _.value = 1, Te = oe.value.trim(), q();
625
- }, 300);
626
- }), Ve(
627
- () => me.value.map((s) => Se(s.value)),
628
- (s, b) => {
629
- if (C.value && (_.value = 1, q()), !b) return;
630
- const E = s.some((U, Ce) => U !== b[Ce]), M = b.some((U) => !ke(U));
631
- if (!(!E || !M)) {
632
- if (t.multiple) {
633
- if (!w.value.length) return;
634
- w.value = [], X();
635
- return;
636
- }
637
- x.value && (x.value = null, o("update:modelValue", null));
638
- }
639
- }
640
- );
641
- const Ye = T(!1), st = T(!1), Le = T(null), Ne = Ae({}), rt = D(() => Le.value !== null), zt = D(() => rt.value ? "Editar Registro" : "Novo Registro");
642
- function Wt() {
643
- const s = {};
644
- for (const b of c.value)
645
- s[b.field] = b.defaultValue !== void 0 ? typeof b.defaultValue == "function" ? b.defaultValue() : b.defaultValue : null;
646
- return s;
647
- }
648
- function jt() {
649
- const s = Wt();
650
- for (const b of Object.keys(Ne))
651
- delete Ne[b];
652
- for (const [b, E] of Object.entries(s))
653
- Ne[b] = E;
654
- }
655
- function qt() {
656
- Le.value = null, jt(), Ye.value = !0;
657
- }
658
- function Kt(s) {
659
- Le.value = s;
660
- for (const b of c.value)
661
- Ne[b.field] = s[b.field] !== void 0 ? s[b.field] : null;
662
- Ye.value = !0;
663
- }
664
- function Ht(s, b) {
665
- Ne[s] = b;
666
- }
667
- async function Gt() {
668
- st.value = !0;
669
- try {
670
- const s = { ...Ne };
671
- for (const E of c.value) {
672
- const M = s[E.field];
673
- if (E.type === "fk" && M !== null && typeof M == "object") {
674
- const U = E.optionValue || "id";
675
- s[E.field] = M[U] ?? M;
676
- }
677
- }
678
- let b;
679
- if (rt.value && Le.value) {
680
- const E = Le.value[t.optionValue];
681
- b = await d.update(t.endpoint, E, s);
682
- const M = ae.value.findIndex((U) => U[t.optionValue] === E);
683
- M !== -1 && (ae.value[M] = b.data), h.success("Registro atualizado com sucesso");
684
- } else {
685
- const E = ve();
686
- for (const [M, U] of Object.entries(E)) {
687
- const Ce = s[M];
688
- (Ce == null || Ce === "") && (s[M] = U);
689
- }
690
- b = await d.create(t.endpoint, s), ae.value.unshift(b.data), $e.value++, h.success("Registro criado com sucesso");
691
- }
692
- Ye.value = !1, Le.value = null, re.value = t.multiple ? Y([...he.value, b.data]) : b.data;
693
- } catch (s) {
694
- h.error(kt(s, "Erro ao salvar registro"));
695
- } finally {
696
- st.value = !1;
697
- }
698
- }
699
- function Yt(s) {
700
- V(async () => {
701
- var b;
702
- try {
703
- const E = s[t.optionValue];
704
- await d.delete(t.endpoint, E);
705
- const M = ae.value.findIndex((U) => U[t.optionValue] === E);
706
- M !== -1 && (ae.value.splice(M, 1), $e.value--), t.multiple ? (w.value.some((U) => U[t.optionValue] === E) && (w.value = w.value.filter((U) => U[t.optionValue] !== E), X()), re.value = he.value.filter((U) => U[t.optionValue] !== E)) : (x.value && x.value[t.optionValue] === E && (x.value = null, o("update:modelValue", null)), ((b = he.value[0]) == null ? void 0 : b[t.optionValue]) === E && (re.value = null)), h.success("Registro excluído com sucesso");
707
- } catch (E) {
708
- h.error(kt(E, "Erro ao excluir registro"));
709
- }
710
- });
711
- }
712
- return (s, b) => {
713
- const E = Ft("tooltip");
714
- return n(), m(te, null, [
715
- f("div", Xt({
716
- class: ["w-autocompletefk", { "w-autocompletefk-has-clear": Z.value }],
717
- style: K.value
718
- }, s.$attrs), [
719
- P(u(Rt), {
720
- ref_key: "acRef",
721
- ref: ce,
722
- "model-value": z.value,
723
- suggestions: I.value,
724
- multiple: e.multiple,
725
- "option-label": e.optionLabel,
726
- placeholder: pe.value,
727
- disabled: e.disabled,
728
- "force-selection": e.forceSelection,
729
- loading: $.value,
730
- "show-clear": !1,
731
- fluid: "",
732
- onComplete: p,
733
- onItemSelect: g,
734
- "onUpdate:modelValue": y,
735
- onClear: l,
736
- onKeydown: r
737
- }, Je({ _: 2 }, [
738
- e.multiple ? {
739
- name: "chip",
740
- fn: H(({ value: M, index: U, removeCallback: Ce }) => [
741
- !e.maxChips || U < e.maxChips ? ue((n(), S(u(wt), {
742
- key: 0,
743
- class: "p-autocomplete-chip w-autocompletefk-chip",
744
- label: R(M),
745
- removable: "",
746
- onClick: N,
747
- onRemove: (Jt) => F(Jt, Ce)
748
- }, null, 8, ["label", "onRemove"])), [
749
- [
750
- E,
751
- R(M),
752
- void 0,
753
- { top: !0 }
754
- ]
755
- ]) : U === e.maxChips ? ue((n(), S(u(wt), {
756
- key: 1,
757
- class: "p-autocomplete-chip w-autocompletefk-chip w-autocompletefk-chip-more",
758
- label: `+${L.value}`,
759
- onClick: N
760
- }, null, 8, ["label"])), [
761
- [
762
- E,
763
- W.value,
764
- void 0,
765
- { top: !0 }
766
- ]
767
- ]) : (n(), m("span", Nl))
768
- ]),
769
- key: "0"
770
- } : void 0
771
- ]), 1032, ["model-value", "suggestions", "multiple", "option-label", "placeholder", "disabled", "force-selection", "loading"]),
772
- Z.value ? ue((n(), m("button", {
773
- key: 0,
774
- type: "button",
775
- "data-kbd-skip": "",
776
- tabindex: "-1",
777
- class: "w-autocompletefk-clear",
778
- onClick: j
779
- }, [...b[6] || (b[6] = [
780
- f("i", { class: "pi pi-times" }, null, -1)
781
- ])])), [
782
- [
783
- E,
784
- "Limpar",
785
- void 0,
786
- { top: !0 }
787
- ]
788
- ]) : k("", !0),
789
- ue((n(), m("button", {
790
- type: "button",
791
- disabled: e.disabled,
792
- "data-kbd-skip": "",
793
- tabindex: "-1",
794
- class: "w-autocompletefk-trigger",
795
- onClick: N
796
- }, [...b[7] || (b[7] = [
797
- f("i", { class: "pi pi-search" }, null, -1)
798
- ])], 8, Ol)), [
799
- [
800
- E,
801
- "Pesquisar (F2)",
802
- void 0,
803
- { top: !0 }
804
- ]
805
- ])
806
- ], 16),
807
- P(u(nt), {
808
- visible: C.value,
809
- "onUpdate:visible": b[4] || (b[4] = (M) => C.value = M),
810
- header: e.dialogHeader || "Pesquisar",
811
- style: { width: "80vw" },
812
- modal: "",
813
- draggable: !1,
814
- class: "w-autocompletefk-dialog",
815
- onShow: _e
816
- }, {
817
- footer: H(() => [
818
- f("div", ql, [
819
- P(u(O), {
820
- label: "Cancelar",
821
- severity: "secondary",
822
- text: "",
823
- onClick: b[3] || (b[3] = (M) => C.value = !1)
824
- }),
825
- P(u(O), {
826
- label: e.multiple && he.value.length ? `Selecionar (${he.value.length})` : "Selecionar",
827
- icon: "pi pi-check",
828
- disabled: !e.multiple && !he.value.length,
829
- onClick: Ke
830
- }, null, 8, ["label", "disabled"])
831
- ])
832
- ]),
833
- default: H(() => [
834
- f("div", zl, [
835
- P(u(ze), { class: "w-autocompletefk-toolbar-search" }, {
836
- default: H(() => [
837
- P(u(We), { class: "pi pi-search" }),
838
- P(u(de), {
839
- ref_key: "modalSearchInput",
840
- ref: He,
841
- modelValue: oe.value,
842
- "onUpdate:modelValue": b[0] || (b[0] = (M) => oe.value = M),
843
- placeholder: "Pesquisar...",
844
- class: "w-full",
845
- autofocus: "",
846
- onKeydown: Nt
847
- }, null, 8, ["modelValue"])
848
- ]),
849
- _: 1
850
- }),
851
- f("div", Wl, [
852
- it.value ? (n(), S(u(O), {
853
- key: 0,
854
- label: "Novo",
855
- icon: "pi pi-plus",
856
- size: "small",
857
- onClick: qt
858
- })) : k("", !0)
859
- ])
860
- ]),
861
- f("div", {
862
- ref_key: "modalTableWrap",
863
- ref: Ge,
864
- onKeydownCapture: Ot
865
- }, [
866
- P(u(Pt), {
867
- selection: re.value,
868
- "onUpdate:selection": b[1] || (b[1] = (M) => re.value = M),
869
- "meta-key-selection": !1,
870
- value: ae.value,
871
- loading: ee.value,
872
- paginator: "",
873
- lazy: "",
874
- "striped-rows": "",
875
- "removable-sort": "",
876
- size: "small",
877
- rows: ne.value,
878
- "total-records": $e.value,
879
- "sort-field": Re.value ?? void 0,
880
- "sort-order": Pe.value,
881
- "selection-mode": e.multiple ? "multiple" : "single",
882
- "data-key": e.optionValue,
883
- onPage: Q,
884
- onSort: b[2] || (b[2] = (M) => xe({ sortField: M.sortField, sortOrder: M.sortOrder })),
885
- onRowDblclick: Qe
886
- }, {
887
- empty: H(() => [...b[8] || (b[8] = [
888
- f("div", { class: "w-autocompletefk-empty" }, "Nenhum registro encontrado", -1)
889
- ])]),
890
- default: H(() => [
891
- P(u(Oe), {
892
- "selection-mode": e.multiple ? "multiple" : "single",
893
- "header-style": "width: 3rem"
894
- }, null, 8, ["selection-mode"]),
895
- (n(!0), m(te, null, ie(v.value, (M) => (n(), S(u(Oe), {
896
- key: M.field,
897
- field: M.field,
898
- header: M.header,
899
- sortable: M.sortable ?? !0,
900
- style: ye(M.style)
901
- }, {
902
- body: H(({ data: U }) => [
903
- M.type ? (n(), S(ht, {
904
- key: 0,
905
- column: M,
906
- value: U[M.field],
907
- "row-data": U
908
- }, null, 8, ["column", "value", "row-data"])) : (n(), m(te, { key: 1 }, [
909
- Fe(A(U[M.field]), 1)
910
- ], 64))
911
- ]),
912
- _: 2
913
- }, 1032, ["field", "header", "sortable", "style"]))), 128)),
914
- qe.value ? (n(), S(u(Oe), {
915
- key: 0,
916
- header: "",
917
- style: { width: "6rem" }
918
- }, {
919
- body: H(({ data: M }) => [
920
- f("div", jl, [
921
- Ze.value ? ue((n(), S(u(O), {
922
- key: 0,
923
- icon: "pi pi-pencil",
924
- text: "",
925
- rounded: "",
926
- size: "small",
927
- onClick: (U) => Kt(M)
928
- }, null, 8, ["onClick"])), [
929
- [
930
- E,
931
- "Editar",
932
- void 0,
933
- { top: !0 }
934
- ]
935
- ]) : k("", !0),
936
- Me.value ? ue((n(), S(u(O), {
937
- key: 1,
938
- icon: "pi pi-trash",
939
- text: "",
940
- rounded: "",
941
- size: "small",
942
- severity: "danger",
943
- onClick: (U) => Yt(M)
944
- }, null, 8, ["onClick"])), [
945
- [
946
- E,
947
- "Excluir",
948
- void 0,
949
- { top: !0 }
950
- ]
951
- ]) : k("", !0)
952
- ])
953
- ]),
954
- _: 1
955
- })) : k("", !0)
956
- ]),
957
- _: 1
958
- }, 8, ["selection", "value", "loading", "rows", "total-records", "sort-field", "sort-order", "selection-mode", "data-key"])
959
- ], 544)
960
- ]),
961
- _: 1
962
- }, 8, ["visible", "header"]),
963
- je.value ? (n(), S(Tt, {
964
- key: 0,
965
- visible: Ye.value,
966
- title: zt.value,
967
- fields: c.value,
968
- "form-data": Ne,
969
- "is-editing": rt.value,
970
- saving: st.value,
971
- width: e.dialogWidth,
972
- "onUpdate:visible": b[5] || (b[5] = (M) => {
973
- Ye.value = M, M || (Le.value = null);
974
- }),
975
- "onUpdate:field": Ht,
976
- onSave: Gt
977
- }, null, 8, ["visible", "title", "fields", "form-data", "is-editing", "saving", "width"])) : k("", !0)
978
- ], 64);
979
- };
980
- }
981
- }), Hl = { class: "w-datepicker" }, Gl = { class: "w-datepicker-panel" }, Yl = { class: "w-datepicker-actions" }, St = /* @__PURE__ */ se({
982
- __name: "WDatePicker",
983
- props: {
984
- modelValue: { default: null },
985
- valueFormat: { default: "iso" },
986
- showTime: { type: Boolean, default: !1 },
987
- autonow: { type: Boolean, default: !1 },
988
- minDate: {},
989
- maxDate: {},
990
- disabled: { type: Boolean, default: !1 },
991
- showClear: { type: Boolean, default: !0 },
992
- placeholder: {},
993
- invalid: { type: Boolean, default: !1 },
994
- inputId: {}
995
- },
996
- emits: ["update:modelValue"],
997
- setup(e, { emit: a }) {
998
- const t = e, o = a, i = sl({
999
- showTime: () => t.showTime,
1000
- valueFormat: () => t.valueFormat
1001
- }), d = T(""), h = T(null), V = T(null), x = D(() => ({ mask: i.mask() })), w = D(() => i.toDate(t.minDate) ?? void 0), I = D(() => i.toDate(t.maxDate) ?? void 0);
1002
- Ve(
1003
- () => t.modelValue,
1004
- (F) => {
1005
- const j = i.toDate(F);
1006
- h.value = j, d.value = i.toDisplay(j);
1007
- },
1008
- { immediate: !0 }
1009
- );
1010
- function $(F) {
1011
- o("update:modelValue", i.toValue(F));
1012
- }
1013
- function z() {
1014
- if (d.value === "") {
1015
- $(null);
1016
- return;
1017
- }
1018
- const F = i.fromDisplay(d.value);
1019
- F && $(F);
1020
- }
1021
- function G() {
1022
- d.value = i.toDisplay(i.toDate(t.modelValue));
1023
- }
1024
- function Y(F) {
1025
- F.key === "F2" && !t.disabled && (F.preventDefault(), R());
1026
- }
1027
- function X(F) {
1028
- var K;
1029
- $(F ?? null), t.showTime || (K = V.value) == null || K.hide();
1030
- }
1031
- function R() {
1032
- $(i.today());
1033
- }
1034
- function L() {
1035
- var F;
1036
- $(null), (F = V.value) == null || F.hide();
1037
- }
1038
- function W(F) {
1039
- var j;
1040
- t.disabled || (j = V.value) == null || j.toggle(F);
1041
- }
1042
- return yt(() => {
1043
- t.autonow && t.modelValue == null && R();
1044
- }), (F, j) => (n(), m("div", Hl, [
1045
- P(u(ze), null, {
1046
- default: H(() => [
1047
- ue(P(u(de), {
1048
- id: e.inputId,
1049
- modelValue: d.value,
1050
- "onUpdate:modelValue": j[0] || (j[0] = (K) => d.value = K),
1051
- placeholder: e.placeholder ?? u(i).placeholder(),
1052
- disabled: e.disabled,
1053
- invalid: e.invalid,
1054
- fluid: "",
1055
- autocomplete: "off",
1056
- inputmode: "numeric",
1057
- onInput: z,
1058
- onBlur: G,
1059
- onKeydown: Y
1060
- }, null, 8, ["id", "modelValue", "placeholder", "disabled", "invalid"]), [
1061
- [u(at), x.value]
1062
- ]),
1063
- P(u(We), {
1064
- class: le(["pi pi-calendar w-datepicker-icon", { "w-datepicker-icon-disabled": e.disabled }]),
1065
- role: "button",
1066
- tabindex: "-1",
1067
- "aria-label": "Abrir calendário",
1068
- onClick: W
1069
- }, null, 8, ["class"])
1070
- ]),
1071
- _: 1
1072
- }),
1073
- P(u(Mt), {
1074
- ref_key: "op",
1075
- ref: V
1076
- }, {
1077
- default: H(() => [
1078
- f("div", Gl, [
1079
- P(u(At), {
1080
- "model-value": h.value ?? void 0,
1081
- inline: "",
1082
- "show-time": e.showTime,
1083
- "hour-format": "24",
1084
- "min-date": w.value,
1085
- "max-date": I.value,
1086
- "onUpdate:modelValue": X
1087
- }, null, 8, ["model-value", "show-time", "min-date", "max-date"]),
1088
- f("div", Yl, [
1089
- P(u(O), {
1090
- label: "Hoje",
1091
- text: "",
1092
- size: "small",
1093
- onClick: R
1094
- }),
1095
- e.showClear ? (n(), S(u(O), {
1096
- key: 0,
1097
- label: "Limpar",
1098
- text: "",
1099
- size: "small",
1100
- severity: "secondary",
1101
- onClick: L
1102
- })) : k("", !0)
1103
- ])
1104
- ])
1105
- ]),
1106
- _: 1
1107
- }, 512)
1108
- ]));
1109
- }
1110
- }), Jl = /* @__PURE__ */ se({
1111
- __name: "WMoneyInput",
1112
- props: {
1113
- modelValue: {},
1114
- decimals: { default: 2 },
1115
- currency: { type: Boolean, default: !1 },
1116
- prefix: {},
1117
- suffix: {},
1118
- locale: { default: "pt-BR" },
1119
- disabled: { type: Boolean, default: !1 },
1120
- placeholder: {},
1121
- invalid: { type: Boolean }
1122
- },
1123
- emits: ["update:modelValue"],
1124
- setup(e, { emit: a }) {
1125
- const t = e, o = a, i = D(() => t.prefix ?? (t.currency ? "R$" : void 0)), d = D(() => !!i.value || !!t.suffix), h = D(() => {
1126
- const x = t.modelValue;
1127
- return x == null || Number.isNaN(x) ? "" : new Intl.NumberFormat(t.locale, {
1128
- minimumFractionDigits: t.decimals,
1129
- maximumFractionDigits: t.decimals
1130
- }).format(x);
1131
- });
1132
- function V(x) {
1133
- const w = x.target.value.replace(/\D/g, "");
1134
- if (!w) {
1135
- o("update:modelValue", null);
1136
- return;
1137
- }
1138
- const I = Number(w) / Math.pow(10, t.decimals);
1139
- o("update:modelValue", I);
1140
- }
1141
- return (x, w) => d.value ? (n(), S(u(vl), {
1142
- key: 0,
1143
- class: "w-money-input"
1144
- }, {
1145
- default: H(() => [
1146
- i.value ? (n(), S(u($t), { key: 0 }, {
1147
- default: H(() => [
1148
- Fe(A(i.value), 1)
1149
- ]),
1150
- _: 1
1151
- })) : k("", !0),
1152
- P(u(de), {
1153
- "model-value": h.value,
1154
- inputmode: "numeric",
1155
- class: "w-money-input__field",
1156
- placeholder: e.placeholder,
1157
- disabled: e.disabled,
1158
- invalid: e.invalid,
1159
- onInput: V
1160
- }, null, 8, ["model-value", "placeholder", "disabled", "invalid"]),
1161
- e.suffix ? (n(), S(u($t), { key: 1 }, {
1162
- default: H(() => [
1163
- Fe(A(e.suffix), 1)
1164
- ]),
1165
- _: 1
1166
- })) : k("", !0)
1167
- ]),
1168
- _: 1
1169
- })) : (n(), S(u(de), {
1170
- key: 1,
1171
- "model-value": h.value,
1172
- inputmode: "numeric",
1173
- fluid: "",
1174
- class: "w-money-input__field",
1175
- placeholder: e.placeholder,
1176
- disabled: e.disabled,
1177
- invalid: e.invalid,
1178
- onInput: V
1179
- }, null, 8, ["model-value", "placeholder", "disabled", "invalid"]));
1180
- }
1181
- }), Xl = { class: "w-imgcropper" }, Zl = ["src"], Ql = { class: "w-imgcropper-actions" }, _l = ["accept"], ea = { class: "w-imgcropper-stage" }, ta = ["src"], la = { class: "w-imgcropper-zoom" }, lt = 300, aa = /* @__PURE__ */ se({
1182
- __name: "WImageCropper",
1183
- props: {
1184
- modelValue: { default: null },
1185
- accept: { default: "image/*" },
1186
- maxSize: { default: 5242880 },
1187
- aspectRatio: { default: 1 },
1188
- circular: { type: Boolean, default: !1 },
1189
- width: { default: 200 },
1190
- height: { default: 200 }
1191
- },
1192
- emits: ["update:modelValue", "error"],
1193
- setup(e, { emit: a }) {
1194
- const t = e, o = a, i = T(null);
1195
- Ve(
1196
- () => t.modelValue,
1197
- (g) => {
1198
- i.value && (URL.revokeObjectURL(i.value), i.value = null), g instanceof File && (i.value = URL.createObjectURL(g));
1199
- },
1200
- { immediate: !0 }
1201
- ), Zt(() => {
1202
- i.value && URL.revokeObjectURL(i.value);
1203
- });
1204
- const d = D(() => t.modelValue instanceof File ? i.value : typeof t.modelValue == "string" && t.modelValue ? t.modelValue : null), h = T(null);
1205
- function V() {
1206
- var g;
1207
- (g = h.value) == null || g.click();
1208
- }
1209
- function x(g) {
1210
- const y = (t.accept || "").trim();
1211
- return !y || y === "*" || y.includes("image/*") ? g.type.startsWith("image/") : y.split(",").map((l) => l.trim()).filter(Boolean).some((l) => l.endsWith("/*") ? g.type.startsWith(l.slice(0, -1)) : l.startsWith(".") ? g.name.toLowerCase().endsWith(l.toLowerCase()) : g.type === l);
1212
- }
1213
- let w = "image.png", I = "image/png", $ = null;
1214
- function z(g) {
1215
- var ae;
1216
- const y = g.target, l = (ae = y.files) == null ? void 0 : ae[0];
1217
- if (y.value = "", !l) return;
1218
- if (!x(l)) {
1219
- o("error", "Tipo de arquivo não suportado.");
1220
- return;
1221
- }
1222
- if (l.size > t.maxSize) {
1223
- o("error", `Imagem acima do limite de ${(t.maxSize / 1048576).toFixed(1)}MB.`);
1224
- return;
1225
- }
1226
- w = l.name, I = l.type || "image/png";
1227
- const C = new FileReader();
1228
- C.onload = () => {
1229
- const ee = new Image();
1230
- ee.onload = () => {
1231
- $ = ee, R.value = ee.naturalWidth, L.value = ee.naturalHeight, W.value = 1, X.value = ee.src, F.x = (K.value - ke.value) / 2, F.y = (Z.value - Se.value) / 2, Y.value = !0;
1232
- }, ee.onerror = () => o("error", "Não foi possível carregar a imagem."), ee.src = String(C.result);
1233
- }, C.onerror = () => o("error", "Falha ao ler o arquivo."), C.readAsDataURL(l);
1234
- }
1235
- function G() {
1236
- o("update:modelValue", null);
1237
- }
1238
- const Y = T(!1), X = T(""), R = T(0), L = T(0), W = T(1), F = Ae({ x: 0, y: 0 }), j = D(() => t.circular ? 1 : t.aspectRatio || 1), K = D(() => j.value >= 1 ? lt : Math.round(lt * j.value)), Z = D(() => j.value >= 1 ? Math.round(lt / j.value) : lt), J = D(
1239
- () => R.value && L.value ? Math.max(K.value / R.value, Z.value / L.value) : 1
1240
- ), ce = D(() => J.value * W.value), ke = D(() => R.value * ce.value), Se = D(() => L.value * ce.value);
1241
- function me() {
1242
- F.x = Math.min(0, Math.max(K.value - ke.value, F.x)), F.y = Math.min(0, Math.max(Z.value - Se.value, F.y));
1243
- }
1244
- Ve(W, me);
1245
- const De = D(() => ({
1246
- width: `${ke.value}px`,
1247
- height: `${Se.value}px`,
1248
- transform: `translate(${F.x}px, ${F.y}px)`
1249
- })), ve = T(!1);
1250
- let fe = { x: 0, y: 0, ox: 0, oy: 0 };
1251
- function pe(g) {
1252
- var y, l;
1253
- ve.value = !0, (l = (y = g.currentTarget).setPointerCapture) == null || l.call(y, g.pointerId), fe = { x: g.clientX, y: g.clientY, ox: F.x, oy: F.y };
1254
- }
1255
- function ge(g) {
1256
- ve.value && (F.x = fe.ox + (g.clientX - fe.x), F.y = fe.oy + (g.clientY - fe.y), me());
1257
- }
1258
- function we() {
1259
- ve.value = !1;
1260
- }
1261
- function be() {
1262
- return t.circular ? "image/png" : I === "image/jpeg" || I === "image/png" || I === "image/webp" ? I : "image/png";
1263
- }
1264
- function Ee(g) {
1265
- const y = g === "image/png" ? "png" : g === "image/webp" ? "webp" : "jpg";
1266
- return `${w.replace(/\.[^.]+$/, "") || "image"}.${y}`;
1267
- }
1268
- function p() {
1269
- if (!$) return;
1270
- const g = ce.value, y = -F.x / g, l = -F.y / g, C = K.value / g, ae = Z.value / g, ee = document.createElement("canvas");
1271
- ee.width = Math.max(1, Math.round(C)), ee.height = Math.max(1, Math.round(ae));
1272
- const oe = ee.getContext("2d");
1273
- if (!oe) {
1274
- o("error", "Canvas indisponível neste ambiente.");
1275
- return;
1276
- }
1277
- t.circular && (oe.beginPath(), oe.ellipse(
1278
- ee.width / 2,
1279
- ee.height / 2,
1280
- ee.width / 2,
1281
- ee.height / 2,
1282
- 0,
1283
- 0,
1284
- Math.PI * 2
1285
- ), oe.clip()), oe.drawImage($, y, l, C, ae, 0, 0, ee.width, ee.height);
1286
- const _ = be();
1287
- ee.toBlob(
1288
- (ne) => {
1289
- if (!ne) {
1290
- o("error", "Falha ao processar a imagem.");
1291
- return;
1292
- }
1293
- o("update:modelValue", new File([ne], Ee(_), { type: _ })), Y.value = !1;
1294
- },
1295
- _,
1296
- 0.92
1297
- );
1298
- }
1299
- return (g, y) => (n(), m("div", Xl, [
1300
- f("div", {
1301
- class: le(["w-imgcropper-preview", { "is-circular": e.circular, "is-empty": !d.value }]),
1302
- style: ye({ width: `${e.width}px`, height: `${e.height}px` })
1303
- }, [
1304
- d.value ? (n(), m(te, { key: 0 }, [
1305
- f("img", {
1306
- src: d.value,
1307
- alt: "",
1308
- class: "w-imgcropper-img"
1309
- }, null, 8, Zl),
1310
- f("div", Ql, [
1311
- P(u(O), {
1312
- type: "button",
1313
- icon: "pi pi-pencil",
1314
- rounded: "",
1315
- text: "",
1316
- "aria-label": "Trocar imagem",
1317
- onClick: V
1318
- }),
1319
- P(u(O), {
1320
- type: "button",
1321
- icon: "pi pi-trash",
1322
- rounded: "",
1323
- text: "",
1324
- severity: "danger",
1325
- "aria-label": "Remover imagem",
1326
- onClick: G
1327
- })
1328
- ])
1329
- ], 64)) : B(g.$slots, "placeholder", { open: V }, () => [
1330
- f("button", {
1331
- type: "button",
1332
- class: "w-imgcropper-empty",
1333
- onClick: V
1334
- }, [...y[3] || (y[3] = [
1335
- f("i", { class: "pi pi-image" }, null, -1),
1336
- f("span", null, "Selecionar imagem", -1)
1337
- ])])
1338
- ], !0, 1)
1339
- ], 6),
1340
- f("input", {
1341
- ref_key: "fileInput",
1342
- ref: h,
1343
- type: "file",
1344
- accept: e.accept,
1345
- class: "w-imgcropper-file",
1346
- onChange: z
1347
- }, null, 40, _l),
1348
- P(u(nt), {
1349
- visible: Y.value,
1350
- "onUpdate:visible": y[2] || (y[2] = (l) => Y.value = l),
1351
- modal: "",
1352
- header: "Ajustar imagem",
1353
- "dismissable-mask": !1,
1354
- style: { width: "auto" }
1355
- }, {
1356
- footer: H(() => [
1357
- P(u(O), {
1358
- type: "button",
1359
- label: "Cancelar",
1360
- text: "",
1361
- onClick: y[1] || (y[1] = (l) => Y.value = !1)
1362
- }),
1363
- P(u(O), {
1364
- type: "button",
1365
- label: "Confirmar",
1366
- onClick: p
1367
- })
1368
- ]),
1369
- default: H(() => [
1370
- f("div", ea, [
1371
- f("div", {
1372
- class: le(["w-imgcropper-viewport", { "is-circular": e.circular }]),
1373
- style: ye({ width: `${K.value}px`, height: `${Z.value}px` }),
1374
- onPointerdown: pe,
1375
- onPointermove: ge,
1376
- onPointerup: we,
1377
- onPointerleave: we
1378
- }, [
1379
- X.value ? (n(), m("img", {
1380
- key: 0,
1381
- src: X.value,
1382
- alt: "",
1383
- class: "w-imgcropper-cropimg",
1384
- style: ye(De.value),
1385
- draggable: "false"
1386
- }, null, 12, ta)) : k("", !0),
1387
- f("div", {
1388
- class: le(["w-imgcropper-stencil", { "is-circular": e.circular }])
1389
- }, null, 2)
1390
- ], 38),
1391
- f("div", la, [
1392
- y[4] || (y[4] = f("i", { class: "pi pi-search-minus" }, null, -1)),
1393
- P(u(pl), {
1394
- modelValue: W.value,
1395
- "onUpdate:modelValue": y[0] || (y[0] = (l) => W.value = l),
1396
- min: 1,
1397
- max: 4,
1398
- step: 0.01,
1399
- class: "w-imgcropper-slider"
1400
- }, null, 8, ["modelValue"]),
1401
- y[5] || (y[5] = f("i", { class: "pi pi-search-plus" }, null, -1))
1402
- ])
1403
- ])
1404
- ]),
1405
- _: 1
1406
- }, 8, ["visible"])
1407
- ]));
1408
- }
1409
- }), oa = (e, a) => {
1410
- const t = e.__vccOpts || e;
1411
- for (const [o, i] of a)
1412
- t[o] = i;
1413
- return t;
1414
- }, na = /* @__PURE__ */ oa(aa, [["__scopeId", "data-v-95684d2d"]]), ia = { class: "w-transfer__pane" }, sa = { class: "w-transfer__head" }, ra = { class: "w-transfer__count" }, ua = { class: "w-transfer__list" }, da = ["onClick"], ca = {
1415
- key: 0,
1416
- class: "w-transfer__empty"
1417
- }, ma = { class: "w-transfer__controls" }, fa = { class: "w-transfer__pane" }, va = { class: "w-transfer__head" }, pa = { class: "w-transfer__count" }, ha = { class: "w-transfer__list" }, ya = ["onClick"], ga = {
1418
- key: 0,
1419
- class: "w-transfer__empty"
1420
- }, ba = /* @__PURE__ */ se({
1421
- __name: "WTransferList",
1422
- props: {
1423
- source: {},
1424
- selected: { default: () => [] },
1425
- trackBy: { default: "id" },
1426
- optionLabel: { default: "nome" },
1427
- searchFields: {},
1428
- disabled: { type: Boolean }
1429
- },
1430
- emits: ["update:selected"],
1431
- setup(e, { emit: a }) {
1432
- const t = e, o = a, i = T(""), d = T(""), h = D(() => new Set(t.selected)), V = D(() => t.searchFields ?? [t.optionLabel]);
1433
- function x(L) {
1434
- return L[t.trackBy];
1435
- }
1436
- function w(L) {
1437
- return String(L[t.optionLabel] ?? "");
1438
- }
1439
- function I(L, W) {
1440
- if (!W) return !0;
1441
- const F = W.toLowerCase();
1442
- return V.value.some(
1443
- (j) => String(L[j] ?? "").toLowerCase().includes(F)
1444
- );
1445
- }
1446
- const $ = D(
1447
- () => t.source.filter((L) => !h.value.has(x(L)) && I(L, i.value))
1448
- ), z = D(
1449
- () => t.source.filter((L) => h.value.has(x(L)) && I(L, d.value))
1450
- );
1451
- function G(L) {
1452
- t.disabled || o("update:selected", [...t.selected, x(L)]);
1453
- }
1454
- function Y(L) {
1455
- if (t.disabled) return;
1456
- const W = x(L);
1457
- o(
1458
- "update:selected",
1459
- t.selected.filter((F) => F !== W)
1460
- );
1461
- }
1462
- function X() {
1463
- t.disabled || o("update:selected", t.source.map(x));
1464
- }
1465
- function R() {
1466
- t.disabled || o("update:selected", []);
1467
- }
1468
- return (L, W) => (n(), m("div", {
1469
- class: le(["w-transfer", { "w-transfer--disabled": e.disabled }])
1470
- }, [
1471
- f("div", ia, [
1472
- f("div", sa, [
1473
- W[2] || (W[2] = f("span", { class: "w-transfer__title" }, "Disponíveis", -1)),
1474
- f("span", ra, A($.value.length), 1)
1475
- ]),
1476
- P(u(ze), { class: "w-transfer__search" }, {
1477
- default: H(() => [
1478
- P(u(We), { class: "pi pi-search" }),
1479
- P(u(de), {
1480
- modelValue: i.value,
1481
- "onUpdate:modelValue": W[0] || (W[0] = (F) => i.value = F),
1482
- placeholder: "Buscar...",
1483
- fluid: ""
1484
- }, null, 8, ["modelValue"])
1485
- ]),
1486
- _: 1
1487
- }),
1488
- f("ul", ua, [
1489
- (n(!0), m(te, null, ie($.value, (F) => (n(), m("li", {
1490
- key: `a-${x(F)}`,
1491
- class: "w-transfer__item",
1492
- onClick: (j) => G(F)
1493
- }, [
1494
- f("span", null, A(w(F)), 1),
1495
- W[3] || (W[3] = f("i", { class: "pi pi-angle-right" }, null, -1))
1496
- ], 8, da))), 128)),
1497
- $.value.length ? k("", !0) : (n(), m("li", ca, "Nenhum item"))
1498
- ])
1499
- ]),
1500
- f("div", ma, [
1501
- P(u(O), {
1502
- type: "button",
1503
- icon: "pi pi-angle-double-right",
1504
- text: "",
1505
- rounded: "",
1506
- disabled: e.disabled || !$.value.length,
1507
- onClick: X
1508
- }, null, 8, ["disabled"]),
1509
- P(u(O), {
1510
- type: "button",
1511
- icon: "pi pi-angle-double-left",
1512
- text: "",
1513
- rounded: "",
1514
- disabled: e.disabled || !e.selected.length,
1515
- onClick: R
1516
- }, null, 8, ["disabled"])
1517
- ]),
1518
- f("div", fa, [
1519
- f("div", va, [
1520
- W[4] || (W[4] = f("span", { class: "w-transfer__title" }, "Selecionados", -1)),
1521
- f("span", pa, A(z.value.length), 1)
1522
- ]),
1523
- P(u(ze), { class: "w-transfer__search" }, {
1524
- default: H(() => [
1525
- P(u(We), { class: "pi pi-search" }),
1526
- P(u(de), {
1527
- modelValue: d.value,
1528
- "onUpdate:modelValue": W[1] || (W[1] = (F) => d.value = F),
1529
- placeholder: "Buscar...",
1530
- fluid: ""
1531
- }, null, 8, ["modelValue"])
1532
- ]),
1533
- _: 1
1534
- }),
1535
- f("ul", ha, [
1536
- (n(!0), m(te, null, ie(z.value, (F) => (n(), m("li", {
1537
- key: `s-${x(F)}`,
1538
- class: "w-transfer__item",
1539
- onClick: (j) => Y(F)
1540
- }, [
1541
- W[5] || (W[5] = f("i", { class: "pi pi-angle-left" }, null, -1)),
1542
- f("span", null, A(w(F)), 1)
1543
- ], 8, ya))), 128)),
1544
- z.value.length ? k("", !0) : (n(), m("li", ga, "Nenhum item"))
1545
- ])
1546
- ])
1547
- ], 2));
1548
- }
1549
- });
1550
- async function ka(e) {
1551
- const a = e.replace(/\D/g, "");
1552
- if (a.length !== 8) return null;
1553
- try {
1554
- const t = await fetch(`https://viacep.com.br/ws/${a}/json/`);
1555
- if (!t.ok) return null;
1556
- const o = await t.json();
1557
- return o.erro ? null : o;
1558
- } catch {
1559
- return null;
1560
- }
1561
- }
1562
- const wa = { class: "w-crud-form" }, $a = {
1563
- key: 0,
1564
- class: "w-crud-form-group-header"
1565
- }, xa = { class: "w-crud-form-group-title" }, Ca = {
1566
- key: 0,
1567
- class: "w-crud-form-group-desc"
1568
- }, Va = { class: "w-crud-form-switch-label" }, Sa = { class: "w-crud-form-label" }, Da = {
1569
- key: 0,
1570
- class: "w-crud-form-required"
1571
- }, Ea = { class: "w-crud-form-color-row" }, Fa = { class: "w-crud-form-label" }, Pa = {
1572
- key: 0,
1573
- class: "w-crud-form-error"
1574
- }, Ma = { class: "w-crud-form-label" }, Ia = {
1575
- key: 0,
1576
- class: "w-crud-form-required"
1577
- }, Ra = { class: "w-crud-form-label" }, Aa = {
1578
- key: 0,
1579
- class: "w-crud-form-required"
1580
- }, Ba = {
1581
- key: 1,
1582
- class: "pi pi-spin pi-spinner w-crud-form-cep-spinner"
1583
- }, Ua = {
1584
- key: 16,
1585
- class: "w-crud-form-cep-error"
1586
- }, Ta = {
1587
- key: 17,
1588
- class: "w-crud-form-error"
1589
- }, La = /* @__PURE__ */ se({
1590
- __name: "WFormRenderer",
1591
- props: {
1592
- fields: {},
1593
- formData: {},
1594
- isEditing: { type: Boolean },
1595
- disabled: { type: Boolean, default: !1 },
1596
- columns: { default: 2 }
1597
- },
1598
- emits: ["update:field"],
1599
- setup(e, { expose: a, emit: t }) {
1600
- const o = e, i = t, d = Ae({}), h = Ae({}), V = Ae({}), x = Ae({});
1601
- function w(p, g) {
1602
- const y = g.target.value, l = y.replace(/\D/g, "");
1603
- i("update:field", p.field, y), V[p.field] = null, x[p.field] && (clearTimeout(x[p.field]), x[p.field] = null), l.length === 8 && (x[p.field] = setTimeout(async () => {
1604
- h[p.field] = !0, V[p.field] = null;
1605
- try {
1606
- const C = await ka(l);
1607
- if (!C)
1608
- V[p.field] = "CEP não encontrado. Preencha os campos manualmente.";
1609
- else {
1610
- const ae = p.cepFields || {}, ee = Object.keys(ae);
1611
- for (const oe of ee) {
1612
- const _ = ae[oe];
1613
- if (!_) continue;
1614
- const ne = o.formData[_];
1615
- (ne == null || ne === "") && i("update:field", _, C[oe] ?? "");
1616
- }
1617
- }
1618
- } finally {
1619
- h[p.field] = !1;
1620
- }
1621
- }, 400));
1622
- }
1623
- const I = D(
1624
- () => o.fields.filter((p) => p.visible === void 0 || p.visible === !0 ? !0 : typeof p.visible == "function" ? p.visible(o.formData, o.isEditing) : p.visible)
1625
- );
1626
- function $(p) {
1627
- return o.disabled || p.readonly || p.computed || p.disabledOnEdit && o.isEditing ? !0 : typeof p.disabled == "function" ? p.disabled(o.formData, o.isEditing) : !!p.disabled;
1628
- }
1629
- function z(p) {
1630
- const g = p.endpointParams;
1631
- return typeof g == "function" ? g() : g;
1632
- }
1633
- const G = D(
1634
- () => o.fields.filter((p) => typeof p.calculate == "function")
1635
- );
1636
- Ve(
1637
- () => G.value.map((p) => p.calculate(o.formData, o.isEditing)),
1638
- (p) => {
1639
- G.value.forEach((g, y) => {
1640
- o.formData[g.field] !== p[y] && i("update:field", g.field, p[y]);
1641
- });
1642
- },
1643
- { immediate: !0 }
1644
- );
1645
- function Y(p) {
1646
- return Qt(p) ? p.value : p;
1647
- }
1648
- const X = D(() => {
1649
- const p = o.isEditing ? "edit" : "create", g = o.fields.find((l) => l.autofocus === !0 || l.autofocus === p);
1650
- if (g) return g.field;
1651
- const y = I.value.find((l) => !(l.type === "switch" || l.type === "fk" || l.type === "select" || l.type === "image" || l.disabled === !0 || l.disabledOnEdit && o.isEditing));
1652
- return (y == null ? void 0 : y.field) ?? null;
1653
- });
1654
- function R(p) {
1655
- return p.field === X.value;
1656
- }
1657
- function L(p) {
1658
- if (p)
1659
- return p.replace(/9/g, "#").replace(/a/g, "S").replace(/\*/g, "X");
1660
- }
1661
- function W(p) {
1662
- if (!p) return "";
1663
- const g = String(p).replace(/\D/g, "").slice(0, 14);
1664
- return g.length <= 11 ? g.replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d{1,2})$/, "$1-$2") : g.replace(/(\d{2})(\d)/, "$1.$2").replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d)/, "$1/$2").replace(/(\d{4})(\d{1,2})$/, "$1-$2");
1665
- }
1666
- function F(p, g) {
1667
- const y = g.target.value.replace(/\D/g, "").slice(0, 14);
1668
- i("update:field", p, y);
1669
- }
1670
- const j = Ae({});
1671
- function K(p) {
1672
- const g = o.formData[p.field];
1673
- if (g == null) return null;
1674
- const y = p.optionValue || "value";
1675
- return (Y(p.options) || []).find((C) => C[y] === g) ?? null;
1676
- }
1677
- function Z(p) {
1678
- return j[p.field] || [];
1679
- }
1680
- function J(p, g) {
1681
- const y = (g.query || "").toLowerCase(), l = Y(p.options) || [], C = p.optionLabel || "label";
1682
- j[p.field] = l.filter(
1683
- (ae) => String(ae[C] || "").toLowerCase().includes(y)
1684
- );
1685
- }
1686
- function ce(p, g) {
1687
- const y = p.optionValue || "value";
1688
- i("update:field", p.field, g.value[y]);
1689
- }
1690
- function ke(p) {
1691
- const g = o.formData[p.field];
1692
- return g ? String(g).replace("#", "") : "FFFFFF";
1693
- }
1694
- function Se(p, g) {
1695
- i("update:field", p.field, `#${g}`);
1696
- }
1697
- function me(p) {
1698
- const g = p.dependsOn;
1699
- return g ? (Array.isArray(g) ? g : [g]).map((l) => ({
1700
- field: l.param || l.field,
1701
- value: o.formData[l.field],
1702
- required: l.required
1703
- })) : void 0;
1704
- }
1705
- function De(p) {
1706
- if (typeof p.validate == "function") {
1707
- const g = p.validate(o.formData[p.field]);
1708
- d[p.field] = g || null;
1709
- }
1710
- }
1711
- function ve() {
1712
- const p = [];
1713
- for (const g of o.fields)
1714
- if (typeof g.validate == "function") {
1715
- const y = g.validate(o.formData[g.field]);
1716
- d[g.field] = y || null, y && p.push(y);
1717
- }
1718
- return p;
1719
- }
1720
- function fe() {
1721
- Object.keys(d).forEach((p) => delete d[p]);
1722
- }
1723
- function pe(p) {
1724
- return Math.max(1, Math.floor(p.columns ?? o.columns));
1725
- }
1726
- function ge(p, g) {
1727
- const y = p.colSpan;
1728
- return y == null || y === "full" ? g : y === 0.5 ? Math.max(1, Math.round(g / 2)) : Math.min(Math.max(1, Math.floor(y)), g);
1729
- }
1730
- function we(p, g) {
1731
- return { "--w-col-span": ge(p, pe(g)) };
1732
- }
1733
- function be(p, g) {
1734
- return ge(p, pe(g)) === pe(g) ? "w-crud-form-col-full" : "w-crud-form-col-half";
1735
- }
1736
- const Ee = D(() => {
1737
- var l, C, ae, ee, oe;
1738
- const p = /* @__PURE__ */ new Map(), g = [], y = /* @__PURE__ */ new Map();
1739
- for (const _ of I.value) {
1740
- const ne = ((l = _.fieldGroup) == null ? void 0 : l.id) ?? "__default__";
1741
- p.has(ne) || (p.set(ne, {
1742
- id: ne,
1743
- title: (C = _.fieldGroup) == null ? void 0 : C.title,
1744
- description: (ae = _.fieldGroup) == null ? void 0 : ae.description,
1745
- columns: (ee = _.fieldGroup) == null ? void 0 : ee.columns,
1746
- fields: []
1747
- }), g.push(ne), ((oe = _.fieldGroup) == null ? void 0 : oe.order) != null && y.set(ne, _.fieldGroup.order)), p.get(ne).fields.push(_);
1748
- }
1749
- return g.slice().sort((_, ne) => {
1750
- const $e = y.get(_), re = y.get(ne);
1751
- return $e != null && re != null ? $e - re : $e != null ? -1 : re != null ? 1 : g.indexOf(_) - g.indexOf(ne);
1752
- }).map((_) => p.get(_));
1753
- });
1754
- return a({ validateAll: ve, clearErrors: fe }), (p, g) => (n(), m("div", wa, [
1755
- (n(!0), m(te, null, ie(Ee.value, (y) => (n(), m("div", {
1756
- key: y.id,
1757
- class: "w-crud-form-group"
1758
- }, [
1759
- y.title ? (n(), m("div", $a, [
1760
- f("h3", xa, A(y.title), 1),
1761
- y.description ? (n(), m("p", Ca, A(y.description), 1)) : k("", !0)
1762
- ])) : k("", !0),
1763
- f("div", {
1764
- class: "w-crud-form-fields",
1765
- style: ye({ "--w-form-cols": pe(y) })
1766
- }, [
1767
- (n(!0), m(te, null, ie(y.fields, (l) => B(p.$slots, `field-${l.field}`, {
1768
- field: l,
1769
- formData: e.formData,
1770
- isEditing: e.isEditing,
1771
- setFormField: (C, ae) => i("update:field", C, ae)
1772
- }, () => [
1773
- l.type === "switch" ? (n(), m("div", {
1774
- key: 0,
1775
- class: "w-crud-form-switch",
1776
- style: ye(we(l, y))
1777
- }, [
1778
- P(u(dl), {
1779
- "model-value": e.formData[l.field],
1780
- disabled: $(l),
1781
- "onUpdate:modelValue": (C) => i("update:field", l.field, C)
1782
- }, null, 8, ["model-value", "disabled", "onUpdate:modelValue"]),
1783
- f("label", Va, A(l.switchLabel || l.label), 1)
1784
- ], 4)) : l.type === "color" ? (n(), m("div", {
1785
- key: 1,
1786
- class: le(be(l, y)),
1787
- style: ye(we(l, y))
1788
- }, [
1789
- f("label", Sa, [
1790
- Fe(A(l.label) + " ", 1),
1791
- l.required ? (n(), m("span", Da, "*")) : k("", !0)
1792
- ]),
1793
- f("div", Ea, [
1794
- P(u(cl), {
1795
- "model-value": ke(l),
1796
- disabled: $(l),
1797
- "onUpdate:modelValue": (C) => Se(l, C)
1798
- }, null, 8, ["model-value", "disabled", "onUpdate:modelValue"]),
1799
- P(u(de), {
1800
- "model-value": e.formData[l.field],
1801
- class: "w-28",
1802
- maxlength: "7",
1803
- placeholder: "#000000",
1804
- disabled: $(l),
1805
- "onUpdate:modelValue": (C) => i("update:field", l.field, C)
1806
- }, null, 8, ["model-value", "disabled", "onUpdate:modelValue"])
1807
- ])
1808
- ], 6)) : l.type === "image" ? (n(), m("div", {
1809
- key: 2,
1810
- class: le(be(l, y)),
1811
- style: ye(we(l, y))
1812
- }, [
1813
- f("label", Fa, A(l.label), 1),
1814
- B(p.$slots, `image-${l.field}`, {
1815
- field: l,
1816
- formData: e.formData
1817
- }, () => [
1818
- P(na, {
1819
- "model-value": e.formData[l.field],
1820
- accept: l.accept || "image/*",
1821
- "onUpdate:modelValue": (C) => i("update:field", l.field, C),
1822
- onError: (C) => {
1823
- d[l.field] = C;
1824
- }
1825
- }, null, 8, ["model-value", "accept", "onUpdate:modelValue", "onError"])
1826
- ]),
1827
- d[l.field] ? (n(), m("small", Pa, A(d[l.field]), 1)) : k("", !0)
1828
- ], 6)) : l.type === "transfer" ? (n(), m("div", {
1829
- key: 3,
1830
- class: le(be(l, y)),
1831
- style: ye(we(l, y))
1832
- }, [
1833
- f("label", Ma, [
1834
- Fe(A(l.label) + " ", 1),
1835
- l.required ? (n(), m("span", Ia, "*")) : k("", !0)
1836
- ]),
1837
- P(ba, {
1838
- source: Y(l.options) || [],
1839
- selected: e.formData[l.field] || [],
1840
- "track-by": l.optionValue || "id",
1841
- "option-label": l.optionLabel || "nome",
1842
- "search-fields": l.searchFields,
1843
- disabled: $(l),
1844
- "onUpdate:selected": (C) => i("update:field", l.field, C)
1845
- }, null, 8, ["source", "selected", "track-by", "option-label", "search-fields", "disabled", "onUpdate:selected"])
1846
- ], 6)) : (n(), m("div", {
1847
- key: 4,
1848
- class: le(be(l, y)),
1849
- style: ye(we(l, y))
1850
- }, [
1851
- f("label", Ra, [
1852
- Fe(A(l.label) + " ", 1),
1853
- l.required ? (n(), m("span", Aa, "*")) : k("", !0),
1854
- h[l.field] ? (n(), m("i", Ba)) : k("", !0)
1855
- ]),
1856
- (!l.type || l.type === "text") && l.mask ? ue((n(), S(u(de), {
1857
- key: 0,
1858
- "model-value": e.formData[l.field],
1859
- fluid: "",
1860
- autofocus: R(l) || void 0,
1861
- placeholder: l.placeholder,
1862
- disabled: $(l),
1863
- "onUpdate:modelValue": (C) => i("update:field", l.field, C)
1864
- }, null, 8, ["model-value", "autofocus", "placeholder", "disabled", "onUpdate:modelValue"])), [
1865
- [u(at), { mask: L(l.mask) }]
1866
- ]) : !l.type || l.type === "text" ? (n(), S(u(de), {
1867
- key: 1,
1868
- "model-value": e.formData[l.field],
1869
- fluid: "",
1870
- autofocus: R(l) || void 0,
1871
- placeholder: l.placeholder,
1872
- disabled: $(l),
1873
- "onUpdate:modelValue": (C) => i("update:field", l.field, C)
1874
- }, null, 8, ["model-value", "autofocus", "placeholder", "disabled", "onUpdate:modelValue"])) : l.type === "email" ? (n(), S(u(de), {
1875
- key: 2,
1876
- "model-value": e.formData[l.field],
1877
- type: "email",
1878
- fluid: "",
1879
- autofocus: R(l) || void 0,
1880
- placeholder: l.placeholder,
1881
- disabled: $(l),
1882
- "onUpdate:modelValue": (C) => i("update:field", l.field, C)
1883
- }, null, 8, ["model-value", "autofocus", "placeholder", "disabled", "onUpdate:modelValue"])) : l.type === "password" ? (n(), S(u(ml), {
1884
- key: 3,
1885
- "model-value": e.formData[l.field],
1886
- fluid: "",
1887
- "toggle-mask": "",
1888
- feedback: l.feedback !== !1,
1889
- placeholder: l.placeholder,
1890
- disabled: $(l),
1891
- "onUpdate:modelValue": (C) => i("update:field", l.field, C)
1892
- }, null, 8, ["model-value", "feedback", "placeholder", "disabled", "onUpdate:modelValue"])) : l.type === "number" ? (n(), S(u(ot), {
1893
- key: 4,
1894
- "model-value": e.formData[l.field],
1895
- fluid: "",
1896
- locale: "pt-BR",
1897
- min: l.min,
1898
- max: l.max,
1899
- "min-fraction-digits": l.minFractionDigits,
1900
- "max-fraction-digits": l.maxFractionDigits,
1901
- suffix: l.suffix,
1902
- prefix: l.prefix,
1903
- placeholder: l.placeholder,
1904
- disabled: $(l),
1905
- "onUpdate:modelValue": (C) => i("update:field", l.field, C)
1906
- }, null, 8, ["model-value", "min", "max", "min-fraction-digits", "max-fraction-digits", "suffix", "prefix", "placeholder", "disabled", "onUpdate:modelValue"])) : l.type === "currency" && l.fillFromRight ? (n(), S(Jl, {
1907
- key: 5,
1908
- "model-value": e.formData[l.field],
1909
- decimals: l.decimals ?? 2,
1910
- currency: "",
1911
- prefix: l.prefix,
1912
- suffix: l.suffix,
1913
- placeholder: l.placeholder,
1914
- disabled: $(l),
1915
- "onUpdate:modelValue": (C) => i("update:field", l.field, C)
1916
- }, null, 8, ["model-value", "decimals", "prefix", "suffix", "placeholder", "disabled", "onUpdate:modelValue"])) : l.type === "currency" ? (n(), S(u(ot), {
1917
- key: 6,
1918
- "model-value": e.formData[l.field],
1919
- fluid: "",
1920
- mode: "currency",
1921
- currency: "BRL",
1922
- locale: "pt-BR",
1923
- min: l.min,
1924
- max: l.max,
1925
- placeholder: l.placeholder,
1926
- disabled: $(l),
1927
- "onUpdate:modelValue": (C) => i("update:field", l.field, C)
1928
- }, null, 8, ["model-value", "min", "max", "placeholder", "disabled", "onUpdate:modelValue"])) : l.type === "select" ? (n(), S(u(pt), {
1929
- key: 7,
1930
- "model-value": e.formData[l.field],
1931
- fluid: "",
1932
- options: Y(l.options),
1933
- "option-label": l.optionLabel || "label",
1934
- "option-value": l.optionValue || "value",
1935
- "show-clear": l.showClear !== !1,
1936
- placeholder: l.placeholder,
1937
- disabled: $(l),
1938
- "onUpdate:modelValue": (C) => i("update:field", l.field, C)
1939
- }, null, 8, ["model-value", "options", "option-label", "option-value", "show-clear", "placeholder", "disabled", "onUpdate:modelValue"])) : l.type === "autocomplete" ? (n(), S(u(Rt), {
1940
- key: 8,
1941
- "model-value": K(l),
1942
- fluid: "",
1943
- suggestions: Z(l),
1944
- "option-label": l.optionLabel || "label",
1945
- placeholder: l.placeholder,
1946
- disabled: $(l),
1947
- onComplete: (C) => J(l, C),
1948
- onItemSelect: (C) => ce(l, C),
1949
- onClear: (C) => i("update:field", l.field, null)
1950
- }, null, 8, ["model-value", "suggestions", "option-label", "placeholder", "disabled", "onComplete", "onItemSelect", "onClear"])) : l.type === "fk" ? (n(), S(Kl, {
1951
- key: 9,
1952
- "model-value": e.formData[l.field],
1953
- autofocus: R(l) || void 0,
1954
- endpoint: l.endpoint,
1955
- "endpoint-params": z(l),
1956
- drilldown: me(l),
1957
- "blocked-placeholder": l.blockedPlaceholder,
1958
- "option-label": l.optionLabel || "nome",
1959
- placeholder: l.placeholder,
1960
- disabled: $(l),
1961
- "show-clear": l.showClear !== !1,
1962
- "dialog-header": l.label,
1963
- "crud-fields": l.crudFields,
1964
- "crud-columns": l.crudColumns,
1965
- "can-create": l.canCreate,
1966
- "can-edit": l.canEdit,
1967
- "can-delete": l.canDelete,
1968
- "onUpdate:modelValue": (C) => i("update:field", l.field, C)
1969
- }, null, 8, ["model-value", "autofocus", "endpoint", "endpoint-params", "drilldown", "blocked-placeholder", "option-label", "placeholder", "disabled", "show-clear", "dialog-header", "crud-fields", "crud-columns", "can-create", "can-edit", "can-delete", "onUpdate:modelValue"])) : l.type === "date" ? (n(), S(St, {
1970
- key: 10,
1971
- "model-value": e.formData[l.field],
1972
- "value-format": "date",
1973
- autonow: l.autonow,
1974
- "min-date": l.minDate,
1975
- "max-date": l.maxDate,
1976
- placeholder: l.placeholder,
1977
- disabled: $(l),
1978
- "onUpdate:modelValue": (C) => i("update:field", l.field, C)
1979
- }, null, 8, ["model-value", "autonow", "min-date", "max-date", "placeholder", "disabled", "onUpdate:modelValue"])) : l.type === "datetime" ? (n(), S(St, {
1980
- key: 11,
1981
- "model-value": e.formData[l.field],
1982
- "value-format": "date",
1983
- "show-time": "",
1984
- autonow: l.autonow,
1985
- "min-date": l.minDate,
1986
- "max-date": l.maxDate,
1987
- placeholder: l.placeholder,
1988
- disabled: $(l),
1989
- "onUpdate:modelValue": (C) => i("update:field", l.field, C)
1990
- }, null, 8, ["model-value", "autonow", "min-date", "max-date", "placeholder", "disabled", "onUpdate:modelValue"])) : l.type === "cpf_cnpj" ? (n(), S(u(de), {
1991
- key: 12,
1992
- "model-value": W(e.formData[l.field]),
1993
- fluid: "",
1994
- maxlength: "18",
1995
- placeholder: l.placeholder || "000.000.000-00",
1996
- disabled: $(l),
1997
- invalid: !!d[l.field],
1998
- onInput: (C) => F(l.field, C),
1999
- onBlur: (C) => De(l)
2000
- }, null, 8, ["model-value", "placeholder", "disabled", "invalid", "onInput", "onBlur"])) : l.type === "mask" ? ue((n(), S(u(de), {
2001
- key: 13,
2002
- "model-value": e.formData[l.field],
2003
- fluid: "",
2004
- placeholder: l.placeholder,
2005
- disabled: $(l),
2006
- invalid: !!d[l.field],
2007
- "onUpdate:modelValue": (C) => i("update:field", l.field, C),
2008
- onBlur: (C) => De(l)
2009
- }, null, 8, ["model-value", "placeholder", "disabled", "invalid", "onUpdate:modelValue", "onBlur"])), [
2010
- [u(at), { mask: L(l.mask) }]
2011
- ]) : l.type === "cep" ? ue((n(), S(u(de), {
2012
- key: 14,
2013
- "model-value": e.formData[l.field],
2014
- fluid: "",
2015
- placeholder: l.placeholder || "00000-000",
2016
- disabled: $(l),
2017
- invalid: !!V[l.field],
2018
- onInput: (C) => w(l, C)
2019
- }, null, 8, ["model-value", "placeholder", "disabled", "invalid", "onInput"])), [
2020
- [u(at), { mask: "#####-###" }]
2021
- ]) : l.type === "textarea" ? (n(), S(u(ul), {
2022
- key: 15,
2023
- "model-value": e.formData[l.field],
2024
- fluid: "",
2025
- autofocus: R(l) || void 0,
2026
- rows: l.rows || 3,
2027
- placeholder: l.placeholder,
2028
- disabled: $(l),
2029
- "onUpdate:modelValue": (C) => i("update:field", l.field, C)
2030
- }, null, 8, ["model-value", "autofocus", "rows", "placeholder", "disabled", "onUpdate:modelValue"])) : k("", !0),
2031
- V[l.field] ? (n(), m("small", Ua, A(V[l.field]), 1)) : d[l.field] ? (n(), m("small", Ta, A(d[l.field]), 1)) : k("", !0)
2032
- ], 6))
2033
- ], void 0, l.field)), 128))
2034
- ], 4)
2035
- ]))), 128))
2036
- ]));
2037
- }
2038
- }), Na = { class: "w-crud-form-footer" }, Tt = /* @__PURE__ */ se({
2039
- __name: "WCrudFormDialog",
2040
- props: {
2041
- visible: { type: Boolean },
2042
- title: {},
2043
- fields: {},
2044
- formData: {},
2045
- isEditing: { type: Boolean },
2046
- saving: { type: Boolean },
2047
- disabled: { type: Boolean, default: !1 },
2048
- width: { default: "480px" },
2049
- formColumns: { default: void 0 },
2050
- keyboardNav: { type: Boolean }
2051
- },
2052
- emits: ["update:visible", "update:field", "save"],
2053
- setup(e, { emit: a }) {
2054
- const t = e, o = a, i = T(null), d = T(null);
2055
- function h() {
2056
- i.value ? i.value.validateAll().length === 0 && o("save") : o("save");
2057
- }
2058
- const { focusFirst: V, handleKeydown: x } = rl(d, {
2059
- enabled: () => t.keyboardNav === !0,
2060
- onSubmit: h
2061
- });
2062
- return Ve(
2063
- () => t.visible,
2064
- (w) => {
2065
- w && i.value && i.value.clearErrors();
2066
- }
2067
- ), (w, I) => (n(), S(u(nt), {
2068
- visible: e.visible,
2069
- header: e.title,
2070
- style: ye({ width: e.width }),
2071
- modal: "",
2072
- draggable: !1,
2073
- class: "w-crud-form-dialog",
2074
- "onUpdate:visible": I[3] || (I[3] = ($) => o("update:visible", $)),
2075
- onShow: u(V)
2076
- }, {
2077
- default: H(() => [
2078
- f("form", {
2079
- ref_key: "formRef",
2080
- ref: d,
2081
- class: "w-crud-form",
2082
- onSubmit: _t(h, ["prevent"]),
2083
- onKeydown: I[2] || (I[2] = //@ts-ignore
2084
- (...$) => u(x) && u(x)(...$))
2085
- }, [
2086
- P(La, {
2087
- ref_key: "rendererRef",
2088
- ref: i,
2089
- fields: e.fields,
2090
- "form-data": e.formData,
2091
- "is-editing": e.isEditing,
2092
- disabled: e.disabled,
2093
- columns: e.formColumns,
2094
- "onUpdate:field": I[0] || (I[0] = ($, z) => o("update:field", $, z))
2095
- }, Je({ _: 2 }, [
2096
- ie(e.fields, ($) => ({
2097
- name: `field-${$.field}`,
2098
- fn: H((z) => [
2099
- B(w.$slots, `field-${$.field}`, ft(vt(z)))
2100
- ])
2101
- })),
2102
- ie(e.fields.filter(($) => $.type === "image"), ($) => ({
2103
- name: `image-${$.field}`,
2104
- fn: H((z) => [
2105
- B(w.$slots, `image-${$.field}`, ft(vt(z)))
2106
- ])
2107
- }))
2108
- ]), 1032, ["fields", "form-data", "is-editing", "disabled", "columns"]),
2109
- f("div", Na, [
2110
- B(w.$slots, "footer", {
2111
- saving: e.saving,
2112
- disabled: e.disabled
2113
- }, () => [
2114
- P(u(O), {
2115
- type: "button",
2116
- label: e.disabled ? "Fechar" : "Cancelar",
2117
- severity: "secondary",
2118
- text: "",
2119
- disabled: e.saving,
2120
- "data-kbd-skip": "",
2121
- onClick: I[1] || (I[1] = ($) => o("update:visible", !1))
2122
- }, null, 8, ["label", "disabled"]),
2123
- e.disabled ? k("", !0) : (n(), S(u(O), {
2124
- key: 0,
2125
- type: "submit",
2126
- label: e.isEditing ? "Atualizar" : "Salvar",
2127
- icon: "pi pi-check",
2128
- loading: e.saving
2129
- }, null, 8, ["label", "loading"]))
2130
- ])
2131
- ])
2132
- ], 544)
2133
- ]),
2134
- _: 3
2135
- }, 8, ["visible", "header", "style", "onShow"]));
2136
- }
2137
- });
2138
- function Oa(e, a) {
2139
- const t = a[e.field];
2140
- return e.format ? e.format(t, a) : t == null ? "" : typeof t == "boolean" ? t ? "Sim" : "Não" : String(t);
2141
- }
2142
- function Dt(e, a) {
2143
- return e.includes('"') || e.includes(a) || e.includes(`
2144
- `) || e.includes("\r") ? `"${e.replace(/"/g, '""')}"` : e;
2145
- }
2146
- function za(e, a, t = {}) {
2147
- const o = t.separator ?? ";", i = a.map((h) => Dt(h.header, o)).join(o), d = e.map((h) => a.map((V) => Dt(Oa(V, h), o)).join(o));
2148
- return "\uFEFF" + [i, ...d].join(`\r
2149
- `);
2150
- }
2151
- function Wa(e, a = "export.csv") {
2152
- const t = new Blob([e], { type: "text/csv;charset=utf-8;" }), o = URL.createObjectURL(t), i = document.createElement("a");
2153
- i.href = o, i.download = a, document.body.appendChild(i), i.click(), document.body.removeChild(i), URL.revokeObjectURL(o);
2154
- }
2155
- const ja = { class: "w-crud" }, qa = {
2156
- key: 0,
2157
- class: "w-crud-header"
2158
- }, Ka = { class: "w-crud-header-content" }, Ha = { class: "w-crud-title" }, Ga = {
2159
- key: 0,
2160
- class: "w-crud-subtitle"
2161
- }, Ya = { class: "w-crud-header-actions" }, Ja = {
2162
- key: 0,
2163
- class: "w-crud-kpis"
2164
- }, Xa = { class: "w-crud-kpi-content" }, Za = { class: "w-crud-kpi-label" }, Qa = { class: "w-crud-kpi-value" }, _a = { class: "w-crud-content-main" }, eo = {
2165
- key: 0,
2166
- class: "w-crud-filters",
2167
- style: { display: "flex", "flex-wrap": "wrap", gap: "0.5rem", "align-items": "center", "margin-bottom": "0.75rem" }
2168
- }, to = {
2169
- key: 1,
2170
- class: "w-crud-table"
2171
- }, lo = {
2172
- key: 0,
2173
- class: "w-crud-bulkbar",
2174
- style: { display: "flex", "align-items": "center", gap: "0.5rem", "margin-bottom": "0.5rem", padding: "0.5rem 0.75rem", "border-radius": "8px", background: "var(--p-primary-50, #eef2ff)", color: "var(--p-primary-700, #3730a3)" }
2175
- }, ao = { style: { "font-weight": "600", "font-size": "0.85rem", "margin-right": "auto" } }, oo = { class: "w-crud-toolbar" }, no = { class: "w-crud-toolbar-start" }, io = { class: "w-crud-toolbar-end" }, so = { style: { display: "flex", "flex-direction": "column", gap: "0.35rem", "min-width": "180px" } }, ro = ["for"], uo = {
2176
- key: 2,
2177
- class: "w-crud-view-toggle"
2178
- }, co = { class: "w-crud-actions" }, mo = {
2179
- key: 2,
2180
- class: "w-crud-cards-wrap"
2181
- }, fo = { class: "w-crud-toolbar w-crud-toolbar--standalone" }, vo = { class: "w-crud-toolbar-start" }, po = { class: "w-crud-toolbar-end" }, ho = {
2182
- key: 1,
2183
- class: "w-crud-view-toggle"
2184
- }, yo = {
2185
- key: 0,
2186
- class: "w-crud-cards-loading"
2187
- }, go = ["onClick", "onDblclick", "onContextmenu"], bo = { class: "w-crud-card-body" }, ko = {
2188
- key: 0,
2189
- class: "w-crud-card-label"
2190
- }, wo = { class: "w-crud-card-value" }, $o = {
2191
- key: 0,
2192
- class: "w-crud-card-actions"
2193
- }, xo = {
2194
- key: 0,
2195
- class: "w-crud-rail"
2196
- }, Co = {
2197
- key: 1,
2198
- class: "w-crud-rail-sep"
2199
- }, Vo = {
2200
- key: 2,
2201
- class: "w-crud-rail-sep"
2202
- }, fi = /* @__PURE__ */ se({
2203
- __name: "WCrudView",
2204
- props: {
2205
- crud: {},
2206
- title: {},
2207
- subtitle: {},
2208
- showSearch: { type: Boolean, default: !0 },
2209
- showHeader: { type: Boolean, default: !0 },
2210
- dialogWidth: { default: "480px" },
2211
- formColumns: {},
2212
- autoInit: { type: Boolean, default: !0 },
2213
- showKpi: { type: Boolean, default: !1 },
2214
- kpiIcon: { default: "pi pi-list" },
2215
- kpiLabel: { default: "Total de Registros" },
2216
- extraKpis: { default: () => [] },
2217
- expandable: { type: Boolean, default: !1 },
2218
- viewToggle: { type: Boolean, default: !0 },
2219
- defaultView: { default: "table" },
2220
- cardFields: { default: 4 },
2221
- cardBare: { type: Boolean },
2222
- actionRail: { type: Boolean, default: !0 },
2223
- contextMenu: { type: Boolean, default: !0 },
2224
- showPrint: { type: Boolean, default: !1 },
2225
- exportCsv: { type: Boolean, default: !0 },
2226
- csvFilename: { default: "export.csv" },
2227
- csvScope: { default: "all" },
2228
- csvPageSize: { default: 200 },
2229
- persistState: {}
2230
- },
2231
- emits: ["row-expand", "row-collapse", "print"],
2232
- setup(e, { emit: a }) {
2233
- const t = e, o = a, i = el(), { formatNumber: d } = gt(), h = T({});
2234
- function V() {
2235
- return t.persistState ? `wcrud:view:${t.persistState}` : null;
2236
- }
2237
- function x() {
2238
- const c = V();
2239
- if (c) {
2240
- const v = localStorage.getItem(c);
2241
- if (v === "table" || v === "cards") return v;
2242
- }
2243
- return t.defaultView;
2244
- }
2245
- const w = T(x());
2246
- function I(c) {
2247
- return w.value === c;
2248
- }
2249
- function $(c) {
2250
- w.value = c;
2251
- const v = V();
2252
- v && localStorage.setItem(v, c);
2253
- }
2254
- const z = D(
2255
- () => (t.crud.pagination.page - 1) * t.crud.pagination.pageSize
2256
- ), G = Ae({ hidden: [] }), Y = T(null);
2257
- function X() {
2258
- return t.persistState ? `wcrud:cols:${t.persistState}` : null;
2259
- }
2260
- function R() {
2261
- const c = X();
2262
- if (c)
2263
- try {
2264
- const v = JSON.parse(localStorage.getItem(c) || "{}");
2265
- Array.isArray(v.hidden) && (G.hidden = v.hidden);
2266
- } catch {
2267
- }
2268
- }
2269
- function L() {
2270
- const c = X();
2271
- c && localStorage.setItem(c, JSON.stringify({ hidden: G.hidden }));
2272
- }
2273
- function W() {
2274
- return t.persistState ? `wcrud:filters:${t.persistState}` : null;
2275
- }
2276
- function F() {
2277
- const c = W();
2278
- if (c)
2279
- try {
2280
- const v = JSON.parse(localStorage.getItem(c) || "{}");
2281
- if (v && typeof v.columnFilters == "object" && v.columnFilters)
2282
- for (const [q, r] of Object.entries(v.columnFilters))
2283
- r != null && r !== "" && (t.crud.columnFilters[q] = r);
2284
- typeof v.search == "string" && v.search && (t.crud.search.value = v.search);
2285
- } catch {
2286
- }
2287
- }
2288
- function j() {
2289
- const c = W();
2290
- c && localStorage.setItem(
2291
- c,
2292
- JSON.stringify({
2293
- columnFilters: { ...t.crud.columnFilters },
2294
- search: t.crud.search.value
2295
- })
2296
- );
2297
- }
2298
- Ve(t.crud.columnFilters, j, { deep: !0 }), Ve(t.crud.search, j);
2299
- const K = D(() => t.crud.config.columns.filter((c) => c.visible !== !1));
2300
- function Z(c, v) {
2301
- G.hidden = v ? G.hidden.filter((q) => q !== c) : [.../* @__PURE__ */ new Set([...G.hidden, c])], L();
2302
- }
2303
- const J = D(
2304
- () => t.crud.config.columns.filter((c) => c.visible !== !1 && !G.hidden.includes(c.field)).map((c) => c.type === "number" && !c.align ? { ...c, align: "right" } : c.type === "currency" && !c.align ? { ...c, align: "right" } : c)
2305
- );
2306
- function ce(c) {
2307
- if (c.align === "right") return "text-right";
2308
- if (c.align === "center") return "text-center";
2309
- }
2310
- const ke = D(() => J.value.slice(0, t.cardFields)), Se = D(() => {
2311
- const c = [];
2312
- return t.crud.config.canEdit !== !1 && c.push({ action: "edit", icon: "pi pi-pencil", tooltip: "Editar" }), t.crud.config.canCreate !== !1 && c.push({
2313
- action: "duplicate",
2314
- icon: "pi pi-copy",
2315
- tooltip: "Duplicar",
2316
- severity: "info"
2317
- }), t.crud.config.canDelete !== !1 && c.push({
2318
- action: "delete",
2319
- icon: "pi pi-trash",
2320
- tooltip: "Excluir",
2321
- severity: "danger"
2322
- }), c;
2323
- }), me = D(
2324
- () => t.crud.config.rowActions ?? Se.value
2325
- ), De = D(
2326
- () => me.value.length > 0 || !!i["row-actions"]
2327
- );
2328
- function ve(c, v) {
2329
- if (c.handler) {
2330
- c.handler(v);
2331
- return;
2332
- }
2333
- c.action === "edit" ? t.crud.openEditDialog(v) : c.action === "view" ? t.crud.openViewDialog(v) : c.action === "duplicate" ? t.crud.openDuplicateDialog(v) : c.action === "delete" && (i["delete-message"] ? (fe.value = v, pe.value = !0) : t.crud.confirmDelete(v));
2334
- }
2335
- const fe = T(null), pe = T(!1), ge = T(!1);
2336
- async function we() {
2337
- if (fe.value) {
2338
- ge.value = !0;
2339
- try {
2340
- await t.crud.performDelete(fe.value), pe.value = !1, fe.value = null;
2341
- } finally {
2342
- ge.value = !1;
2343
- }
2344
- }
2345
- }
2346
- function be(c, v) {
2347
- return c.visible ? c.visible(v) : !0;
2348
- }
2349
- function Ee(c, v) {
2350
- return c.disabled ? c.disabled(v) : !1;
2351
- }
2352
- const p = D(() => {
2353
- const c = [];
2354
- return t.showKpi && c.push({
2355
- icon: t.kpiIcon,
2356
- label: t.kpiLabel,
2357
- value: d(t.crud.pagination.rows, 0)
2358
- }), c.push(...t.extraKpis), c;
2359
- }), g = D(() => t.crud.config.canCreate !== !1), y = T(null), l = D(() => t.crud.config.selectionMode === "multiple"), C = D(() => t.crud.config.editMode === "cell"), ae = D(() => new Map(t.crud.config.form.map((c) => [c.field, c]))), ee = ["text", "email", "number", "currency"];
2360
- function oe(c) {
2361
- const v = ae.value.get(c);
2362
- return v && ee.includes(v.type || "text") ? v : void 0;
2363
- }
2364
- function _(c) {
2365
- c.newValue !== (c.value ?? c.data[c.field]) && t.crud.updateField(c.data, c.field, c.newValue);
2366
- }
2367
- const ne = D(
2368
- () => t.crud.config.columns.filter((c) => c.filter)
2369
- ), $e = [
2370
- { label: "Sim", value: !0 },
2371
- { label: "Não", value: !1 }
2372
- ];
2373
- function re(c) {
2374
- var v;
2375
- return ((v = c.filter) == null ? void 0 : v.param) || c.field;
2376
- }
2377
- const he = {};
2378
- function Re(c, v) {
2379
- const q = re(c);
2380
- he[q] && clearTimeout(he[q]), he[q] = setTimeout(() => t.crud.setColumnFilter(q, v || null), 300);
2381
- }
2382
- const Pe = T(null);
2383
- function Be(c) {
2384
- y.value = c;
2385
- }
2386
- function Ue(c) {
2387
- var v;
2388
- t.contextMenu && (y.value = c.data, (v = Pe.value) == null || v.show(c.originalEvent));
2389
- }
2390
- function je(c, v) {
2391
- var q;
2392
- t.contextMenu && (c.preventDefault(), y.value = v, (q = Pe.value) == null || q.show(c));
2393
- }
2394
- const it = D(() => {
2395
- const c = y.value;
2396
- if (!c) return [];
2397
- const v = [
2398
- {
2399
- label: "Ver detalhes",
2400
- icon: "pi pi-eye",
2401
- command: () => t.crud.openViewDialog(c)
2402
- }
2403
- ];
2404
- for (const q of me.value)
2405
- be(q, c) && v.push({
2406
- label: q.tooltip ?? q.action,
2407
- icon: q.icon,
2408
- class: q.severity === "danger" ? "w-crud-ctx-danger" : void 0,
2409
- disabled: Ee(q, c),
2410
- command: () => ve(q, c)
2411
- });
2412
- return t.showPrint && v.push({
2413
- label: "Imprimir",
2414
- icon: "pi pi-print",
2415
- command: () => o("print", c)
2416
- }), t.exportCsv && (v.push({ separator: !0 }), v.push({
2417
- label: t.csvScope === "all" ? "Exportar tudo (CSV)" : "Exportar página (CSV)",
2418
- icon: "pi pi-download",
2419
- command: () => qe()
2420
- })), v;
2421
- });
2422
- function Ze() {
2423
- y.value && o("print", y.value);
2424
- }
2425
- const Me = T(!1);
2426
- async function qe() {
2427
- if (!Me.value) {
2428
- Me.value = !0;
2429
- try {
2430
- const c = t.csvScope === "page" ? t.crud.items.value : await t.crud.fetchAll(t.csvPageSize), v = za(c, J.value);
2431
- Wa(v, t.csvFilename);
2432
- } finally {
2433
- Me.value = !1;
2434
- }
2435
- }
2436
- }
2437
- return yt(() => {
2438
- R(), F(), t.autoInit && t.crud.init();
2439
- }), (c, v) => {
2440
- const q = Ft("tooltip");
2441
- return n(), m("div", ja, [
2442
- e.showHeader ? (n(), m("div", qa, [
2443
- f("div", Ka, [
2444
- f("h1", Ha, A(e.title), 1),
2445
- e.subtitle ? (n(), m("p", Ga, A(e.subtitle), 1)) : k("", !0)
2446
- ]),
2447
- f("div", Ya, [
2448
- B(c.$slots, "header-actions"),
2449
- g.value && !e.actionRail ? (n(), S(u(O), {
2450
- key: 0,
2451
- label: "Novo",
2452
- icon: "pi pi-plus",
2453
- onClick: v[0] || (v[0] = (r) => e.crud.openCreateDialog())
2454
- })) : k("", !0)
2455
- ])
2456
- ])) : k("", !0),
2457
- B(c.$slots, "before-table", {}, () => [
2458
- p.value.length ? (n(), m("div", Ja, [
2459
- (n(!0), m(te, null, ie(p.value, (r, N) => (n(), m("div", {
2460
- key: N,
2461
- class: "w-crud-kpi"
2462
- }, [
2463
- f("div", {
2464
- class: le(["w-crud-kpi-icon", r.severity ? `w-crud-kpi-icon--${r.severity}` : ""])
2465
- }, [
2466
- f("i", {
2467
- class: le([r.icon]),
2468
- style: ye(r.color ? `color: ${r.color}` : "")
2469
- }, null, 6)
2470
- ], 2),
2471
- f("div", Xa, [
2472
- f("div", Za, A(r.label), 1),
2473
- f("div", Qa, A(r.value), 1)
2474
- ])
2475
- ]))), 128))
2476
- ])) : k("", !0)
2477
- ]),
2478
- f("div", {
2479
- class: le(["w-crud-content", { "w-crud-content--rail": e.actionRail }])
2480
- }, [
2481
- f("div", _a, [
2482
- ne.value.length ? (n(), m("div", eo, [
2483
- (n(!0), m(te, null, ie(ne.value, (r) => {
2484
- var N, Q, xe, Ke, Qe, He, Ge, Te, _e;
2485
- return n(), m(te, {
2486
- key: r.field
2487
- }, [
2488
- (((N = r.filter) == null ? void 0 : N.type) || "text") === "text" ? (n(), S(u(de), {
2489
- key: 0,
2490
- "model-value": e.crud.columnFilters[re(r)] ?? "",
2491
- placeholder: ((Q = r.filter) == null ? void 0 : Q.placeholder) || r.header,
2492
- size: "small",
2493
- onInput: (Ie) => Re(r, Ie.target.value)
2494
- }, null, 8, ["model-value", "placeholder", "onInput"])) : ((xe = r.filter) == null ? void 0 : xe.type) === "select" ? (n(), S(u(pt), {
2495
- key: 1,
2496
- "model-value": e.crud.columnFilters[re(r)],
2497
- options: (Ke = r.filter) == null ? void 0 : Ke.options,
2498
- "option-label": "label",
2499
- "option-value": "value",
2500
- placeholder: ((Qe = r.filter) == null ? void 0 : Qe.placeholder) || r.header,
2501
- "show-clear": "",
2502
- size: "small",
2503
- "onUpdate:modelValue": (Ie) => e.crud.setColumnFilter(re(r), Ie)
2504
- }, null, 8, ["model-value", "options", "placeholder", "onUpdate:modelValue"])) : ((He = r.filter) == null ? void 0 : He.type) === "boolean" ? (n(), S(u(pt), {
2505
- key: 2,
2506
- "model-value": e.crud.columnFilters[re(r)],
2507
- options: $e,
2508
- "option-label": "label",
2509
- "option-value": "value",
2510
- placeholder: ((Ge = r.filter) == null ? void 0 : Ge.placeholder) || r.header,
2511
- "show-clear": "",
2512
- size: "small",
2513
- "onUpdate:modelValue": (Ie) => e.crud.setColumnFilter(re(r), Ie)
2514
- }, null, 8, ["model-value", "placeholder", "onUpdate:modelValue"])) : ((Te = r.filter) == null ? void 0 : Te.type) === "numeric" ? (n(), S(u(ot), {
2515
- key: 3,
2516
- "model-value": e.crud.columnFilters[re(r)] ?? null,
2517
- placeholder: ((_e = r.filter) == null ? void 0 : _e.placeholder) || r.header,
2518
- size: "small",
2519
- "onUpdate:modelValue": (Ie) => e.crud.setColumnFilter(re(r), Ie)
2520
- }, null, 8, ["model-value", "placeholder", "onUpdate:modelValue"])) : k("", !0)
2521
- ], 64);
2522
- }), 128)),
2523
- Object.keys(e.crud.columnFilters).length ? (n(), S(u(O), {
2524
- key: 0,
2525
- label: "Limpar filtros",
2526
- icon: "pi pi-filter-slash",
2527
- text: "",
2528
- size: "small",
2529
- onClick: v[1] || (v[1] = (r) => e.crud.clearColumnFilters())
2530
- })) : k("", !0)
2531
- ])) : k("", !0),
2532
- w.value === "table" ? (n(), m("div", to, [
2533
- l.value && e.crud.selectedItems.value.length ? (n(), m("div", lo, [
2534
- f("span", ao, A(e.crud.selectedItems.value.length) + " selecionado(s) ", 1),
2535
- B(c.$slots, "bulk-actions", {
2536
- selected: e.crud.selectedItems.value,
2537
- crud: e.crud
2538
- }, () => [
2539
- (n(!0), m(te, null, ie(e.crud.config.bulkActions || [], (r) => (n(), S(u(O), {
2540
- key: r.action,
2541
- label: r.label,
2542
- icon: r.icon,
2543
- severity: r.severity,
2544
- size: "small",
2545
- disabled: r.disabled ? r.disabled(e.crud.selectedItems.value) : !1,
2546
- onClick: (N) => r.handler(e.crud.selectedItems.value)
2547
- }, null, 8, ["label", "icon", "severity", "disabled", "onClick"]))), 128))
2548
- ]),
2549
- ue(P(u(O), {
2550
- icon: "pi pi-times",
2551
- text: "",
2552
- rounded: "",
2553
- size: "small",
2554
- onClick: v[2] || (v[2] = (r) => e.crud.clearSelection())
2555
- }, null, 512), [
2556
- [
2557
- q,
2558
- "Limpar seleção",
2559
- void 0,
2560
- { top: !0 }
2561
- ]
2562
- ])
2563
- ])) : k("", !0),
2564
- P(u(Pt), {
2565
- "expanded-rows": h.value,
2566
- "onUpdate:expandedRows": v[7] || (v[7] = (r) => h.value = r),
2567
- value: e.crud.items.value,
2568
- loading: e.crud.loading.value,
2569
- paginator: "",
2570
- rows: e.crud.pagination.pageSize,
2571
- "total-records": e.crud.pagination.rows,
2572
- "rows-per-page-options": [10, 20, 50],
2573
- "paginator-template": "CurrentPageReport PrevPageLink NextPageLink",
2574
- "current-page-report-template": "Página {currentPage} de {totalPages}",
2575
- pt: { pcPaginator: { root: { class: "w-crud-paginator" } } },
2576
- lazy: "",
2577
- "striped-rows": "",
2578
- "removable-sort": "",
2579
- size: "small",
2580
- "sort-field": e.crud.sort.field ?? void 0,
2581
- "sort-order": e.crud.sort.order,
2582
- "data-key": e.crud.config.pk || "id",
2583
- "edit-mode": C.value ? "cell" : void 0,
2584
- selection: l.value ? e.crud.selectedItems.value : e.actionRail || e.contextMenu ? y.value : void 0,
2585
- "selection-mode": l.value ? void 0 : e.actionRail || e.contextMenu ? "single" : void 0,
2586
- "context-menu": e.contextMenu,
2587
- "context-menu-selection": e.contextMenu ? y.value : void 0,
2588
- "onUpdate:selection": v[8] || (v[8] = (r) => l.value ? e.crud.selectedItems.value = r : y.value = r),
2589
- "onUpdate:contextMenuSelection": v[9] || (v[9] = (r) => y.value = r),
2590
- onRowContextmenu: Ue,
2591
- onPage: e.crud.onPage,
2592
- onSort: v[10] || (v[10] = (r) => e.crud.onSort({ sortField: r.sortField, sortOrder: r.sortOrder })),
2593
- onRowExpand: v[11] || (v[11] = (r) => o("row-expand", r.data)),
2594
- onRowCollapse: v[12] || (v[12] = (r) => o("row-collapse", r.data)),
2595
- onCellEditComplete: _
2596
- }, Je({
2597
- header: H(() => [
2598
- f("div", oo, [
2599
- f("div", no, [
2600
- e.showSearch ? (n(), S(u(ze), { key: 0 }, {
2601
- default: H(() => [
2602
- P(u(We), { class: "pi pi-search" }),
2603
- P(u(de), {
2604
- "model-value": e.crud.search.value,
2605
- placeholder: "Buscar...",
2606
- class: "w-72",
2607
- onInput: e.crud.onSearch
2608
- }, null, 8, ["model-value", "onInput"])
2609
- ]),
2610
- _: 1
2611
- })) : k("", !0),
2612
- B(c.$slots, "toolbar-start"),
2613
- B(c.$slots, "toolbar-filters")
2614
- ]),
2615
- f("div", io, [
2616
- B(c.$slots, "toolbar-actions"),
2617
- e.persistState ? (n(), m(te, { key: 0 }, [
2618
- ue(P(u(O), {
2619
- icon: "pi pi-sliders-h",
2620
- text: "",
2621
- size: "small",
2622
- onClick: v[3] || (v[3] = (r) => {
2623
- var N;
2624
- return (N = Y.value) == null ? void 0 : N.toggle(r);
2625
- })
2626
- }, null, 512), [
2627
- [
2628
- q,
2629
- "Colunas",
2630
- void 0,
2631
- { top: !0 }
2632
- ]
2633
- ]),
2634
- P(u(Mt), {
2635
- ref_key: "chooser",
2636
- ref: Y
2637
- }, {
2638
- default: H(() => [
2639
- f("div", so, [
2640
- (n(!0), m(te, null, ie(K.value, (r) => (n(), m("div", {
2641
- key: r.field,
2642
- style: { display: "flex", "align-items": "center", gap: "0.5rem" }
2643
- }, [
2644
- P(u(ll), {
2645
- "model-value": !G.hidden.includes(r.field),
2646
- "input-id": `wcrud-col-${r.field}`,
2647
- binary: "",
2648
- "onUpdate:modelValue": (N) => Z(r.field, !!N)
2649
- }, null, 8, ["model-value", "input-id", "onUpdate:modelValue"]),
2650
- f("label", {
2651
- for: `wcrud-col-${r.field}`,
2652
- style: { "font-size": "0.85rem", cursor: "pointer" }
2653
- }, A(r.header), 9, ro)
2654
- ]))), 128))
2655
- ])
2656
- ]),
2657
- _: 1
2658
- }, 512)
2659
- ], 64)) : k("", !0),
2660
- e.exportCsv ? ue((n(), S(u(O), {
2661
- key: 1,
2662
- icon: "pi pi-download",
2663
- text: "",
2664
- size: "small",
2665
- loading: Me.value,
2666
- onClick: qe
2667
- }, null, 8, ["loading"])), [
2668
- [
2669
- q,
2670
- e.csvScope === "all" ? "Exportar tudo (CSV)" : "Exportar página (CSV)",
2671
- void 0,
2672
- { top: !0 }
2673
- ]
2674
- ]) : k("", !0),
2675
- e.viewToggle ? (n(), m("div", uo, [
2676
- P(u(O), {
2677
- icon: "pi pi-table",
2678
- size: "small",
2679
- text: !I("table"),
2680
- outlined: I("table"),
2681
- onClick: v[4] || (v[4] = (r) => $("table"))
2682
- }, null, 8, ["text", "outlined"]),
2683
- P(u(O), {
2684
- icon: "pi pi-th-large",
2685
- size: "small",
2686
- text: !I("cards"),
2687
- outlined: I("cards"),
2688
- onClick: v[5] || (v[5] = (r) => $("cards"))
2689
- }, null, 8, ["text", "outlined"])
2690
- ])) : k("", !0),
2691
- !e.showHeader && g.value && !e.actionRail ? (n(), S(u(O), {
2692
- key: 3,
2693
- label: "Novo",
2694
- icon: "pi pi-plus",
2695
- onClick: v[6] || (v[6] = (r) => e.crud.openCreateDialog())
2696
- })) : k("", !0)
2697
- ])
2698
- ])
2699
- ]),
2700
- empty: H(() => [
2701
- B(c.$slots, "empty", {}, () => [
2702
- v[22] || (v[22] = f("div", { class: "w-crud-empty" }, [
2703
- f("div", { class: "w-crud-empty-icon" }, [
2704
- f("i", { class: "pi pi-inbox" })
2705
- ]),
2706
- f("p", { class: "w-crud-empty-title" }, "Nenhum registro encontrado"),
2707
- f("p", { class: "w-crud-empty-text" }, "Tente ajustar sua busca ou crie um novo registro")
2708
- ], -1))
2709
- ])
2710
- ]),
2711
- default: H(() => [
2712
- l.value ? (n(), S(u(Oe), {
2713
- key: 0,
2714
- "selection-mode": "multiple",
2715
- style: { width: "3rem" }
2716
- })) : k("", !0),
2717
- e.expandable ? (n(), S(u(Oe), {
2718
- key: 1,
2719
- expander: "",
2720
- style: { width: "3rem" }
2721
- })) : k("", !0),
2722
- (n(!0), m(te, null, ie(J.value, (r) => (n(), S(u(Oe), {
2723
- key: r.field,
2724
- field: r.field,
2725
- header: r.header,
2726
- sortable: r.sortable,
2727
- style: ye(r.style),
2728
- "header-class": ce(r),
2729
- "body-class": ce(r)
2730
- }, Je({
2731
- body: H(({ data: N }) => [
2732
- B(c.$slots, `column-${r.field}`, {
2733
- data: N,
2734
- value: N[r.field]
2735
- }, () => [
2736
- P(ht, {
2737
- column: r,
2738
- value: N[r.field],
2739
- "row-data": N
2740
- }, null, 8, ["column", "value", "row-data"])
2741
- ])
2742
- ]),
2743
- _: 2
2744
- }, [
2745
- C.value && oe(r.field) ? {
2746
- name: "editor",
2747
- fn: H(({ data: N }) => {
2748
- var Q;
2749
- return [
2750
- ["number", "currency"].includes(((Q = oe(r.field)) == null ? void 0 : Q.type) || "") ? (n(), S(u(ot), {
2751
- key: 0,
2752
- "model-value": N[r.field] ?? null,
2753
- fluid: "",
2754
- "onUpdate:modelValue": (xe) => {
2755
- N[r.field] = xe;
2756
- }
2757
- }, null, 8, ["model-value", "onUpdate:modelValue"])) : (n(), S(u(de), {
2758
- key: 1,
2759
- "model-value": N[r.field] ?? "",
2760
- fluid: "",
2761
- "onUpdate:modelValue": (xe) => {
2762
- N[r.field] = xe;
2763
- }
2764
- }, null, 8, ["model-value", "onUpdate:modelValue"]))
2765
- ];
2766
- }),
2767
- key: "0"
2768
- } : void 0
2769
- ]), 1032, ["field", "header", "sortable", "style", "header-class", "body-class"]))), 128)),
2770
- De.value && !e.actionRail ? (n(), S(u(Oe), {
2771
- key: 2,
2772
- "header-class": "w-crud-actions-header",
2773
- style: ye({
2774
- width: `${(me.value.length + (u(i)["row-actions"] ? 1 : 0)) * 2.5 + 1}rem`
2775
- })
2776
- }, {
2777
- body: H(({ data: r }) => [
2778
- f("div", co, [
2779
- (n(!0), m(te, null, ie(me.value, (N) => (n(), m(te, {
2780
- key: N.action
2781
- }, [
2782
- be(N, r) ? ue((n(), S(u(O), {
2783
- key: 0,
2784
- icon: N.icon,
2785
- text: "",
2786
- rounded: "",
2787
- size: "small",
2788
- severity: N.severity,
2789
- disabled: Ee(N, r),
2790
- onClick: (Q) => ve(N, r)
2791
- }, null, 8, ["icon", "severity", "disabled", "onClick"])), [
2792
- [
2793
- q,
2794
- N.tooltip,
2795
- void 0,
2796
- { top: !0 }
2797
- ]
2798
- ]) : k("", !0)
2799
- ], 64))), 128)),
2800
- B(c.$slots, "row-actions", {
2801
- data: r,
2802
- crud: e.crud
2803
- })
2804
- ])
2805
- ]),
2806
- _: 3
2807
- }, 8, ["style"])) : k("", !0)
2808
- ]),
2809
- _: 2
2810
- }, [
2811
- e.expandable ? {
2812
- name: "expansion",
2813
- fn: H((r) => [
2814
- B(c.$slots, "expansion", {
2815
- data: r.data
2816
- })
2817
- ]),
2818
- key: "0"
2819
- } : void 0
2820
- ]), 1032, ["expanded-rows", "value", "loading", "rows", "total-records", "sort-field", "sort-order", "data-key", "edit-mode", "selection", "selection-mode", "context-menu", "context-menu-selection", "onPage"])
2821
- ])) : (n(), m("div", mo, [
2822
- f("div", fo, [
2823
- f("div", vo, [
2824
- e.showSearch ? (n(), S(u(ze), { key: 0 }, {
2825
- default: H(() => [
2826
- P(u(We), { class: "pi pi-search" }),
2827
- P(u(de), {
2828
- "model-value": e.crud.search.value,
2829
- placeholder: "Buscar...",
2830
- class: "w-72",
2831
- onInput: e.crud.onSearch
2832
- }, null, 8, ["model-value", "onInput"])
2833
- ]),
2834
- _: 1
2835
- })) : k("", !0),
2836
- B(c.$slots, "toolbar-start"),
2837
- B(c.$slots, "toolbar-filters")
2838
- ]),
2839
- f("div", po, [
2840
- B(c.$slots, "toolbar-actions"),
2841
- e.exportCsv ? ue((n(), S(u(O), {
2842
- key: 0,
2843
- icon: "pi pi-download",
2844
- text: "",
2845
- size: "small",
2846
- loading: Me.value,
2847
- onClick: qe
2848
- }, null, 8, ["loading"])), [
2849
- [
2850
- q,
2851
- e.csvScope === "all" ? "Exportar tudo (CSV)" : "Exportar página (CSV)",
2852
- void 0,
2853
- { top: !0 }
2854
- ]
2855
- ]) : k("", !0),
2856
- e.viewToggle ? (n(), m("div", ho, [
2857
- P(u(O), {
2858
- icon: "pi pi-table",
2859
- size: "small",
2860
- text: !I("table"),
2861
- outlined: I("table"),
2862
- onClick: v[13] || (v[13] = (r) => $("table"))
2863
- }, null, 8, ["text", "outlined"]),
2864
- P(u(O), {
2865
- icon: "pi pi-th-large",
2866
- size: "small",
2867
- text: !I("cards"),
2868
- outlined: I("cards"),
2869
- onClick: v[14] || (v[14] = (r) => $("cards"))
2870
- }, null, 8, ["text", "outlined"])
2871
- ])) : k("", !0),
2872
- !e.showHeader && g.value && !e.actionRail ? (n(), S(u(O), {
2873
- key: 2,
2874
- label: "Novo",
2875
- icon: "pi pi-plus",
2876
- onClick: v[15] || (v[15] = (r) => e.crud.openCreateDialog())
2877
- })) : k("", !0)
2878
- ])
2879
- ]),
2880
- e.crud.loading.value ? (n(), m("div", yo, [...v[23] || (v[23] = [
2881
- f("i", { class: "pi pi-spin pi-spinner" }, null, -1)
2882
- ])])) : e.crud.items.value.length ? (n(), m("div", {
2883
- key: 2,
2884
- class: le(["w-crud-cards", { "w-crud-cards--bare": e.cardBare }])
2885
- }, [
2886
- (n(!0), m(te, null, ie(e.crud.items.value, (r, N) => (n(), m("div", {
2887
- key: r[e.crud.config.pk || "id"] ?? N,
2888
- class: le(
2889
- e.cardBare ? "w-crud-card-bare" : ["w-crud-card", { "w-crud-card--selected": y.value === r }]
2890
- ),
2891
- onClick: (Q) => !e.cardBare && Be(r),
2892
- onDblclick: (Q) => !e.cardBare && e.crud.config.canEdit !== !1 && e.crud.openEditDialog(r),
2893
- onContextmenu: (Q) => !e.cardBare && je(Q, r)
2894
- }, [
2895
- B(c.$slots, "card", {
2896
- data: r,
2897
- crud: e.crud,
2898
- columns: ke.value,
2899
- index: N
2900
- }, () => [
2901
- f("div", bo, [
2902
- (n(!0), m(te, null, ie(ke.value, (Q, xe) => (n(), m("div", {
2903
- key: Q.field,
2904
- class: le(["w-crud-card-row", { "w-crud-card-row--title": xe === 0 }])
2905
- }, [
2906
- xe !== 0 ? (n(), m("span", ko, A(Q.header), 1)) : k("", !0),
2907
- f("span", wo, [
2908
- B(c.$slots, `column-${Q.field}`, {
2909
- data: r,
2910
- value: r[Q.field]
2911
- }, () => [
2912
- P(ht, {
2913
- column: Q,
2914
- value: r[Q.field],
2915
- "row-data": r
2916
- }, null, 8, ["column", "value", "row-data"])
2917
- ])
2918
- ])
2919
- ], 2))), 128))
2920
- ]),
2921
- De.value && !e.actionRail ? (n(), m("div", $o, [
2922
- (n(!0), m(te, null, ie(me.value, (Q) => (n(), m(te, {
2923
- key: Q.action
2924
- }, [
2925
- be(Q, r) ? ue((n(), S(u(O), {
2926
- key: 0,
2927
- icon: Q.icon,
2928
- text: "",
2929
- rounded: "",
2930
- size: "small",
2931
- severity: Q.severity,
2932
- disabled: Ee(Q, r),
2933
- onClick: (xe) => ve(Q, r)
2934
- }, null, 8, ["icon", "severity", "disabled", "onClick"])), [
2935
- [
2936
- q,
2937
- Q.tooltip,
2938
- void 0,
2939
- { top: !0 }
2940
- ]
2941
- ]) : k("", !0)
2942
- ], 64))), 128)),
2943
- B(c.$slots, "row-actions", {
2944
- data: r,
2945
- crud: e.crud
2946
- })
2947
- ])) : k("", !0)
2948
- ])
2949
- ], 42, go))), 128))
2950
- ], 2)) : B(c.$slots, "empty", {}, () => [
2951
- v[24] || (v[24] = tl('<div class="w-crud-empty"><div class="w-crud-empty-icon"><i class="pi pi-inbox"></i></div><p class="w-crud-empty-title">Nenhum registro encontrado</p><p class="w-crud-empty-text">Tente ajustar sua busca ou crie um novo registro</p></div>', 1))
2952
- ], void 0, 1),
2953
- e.crud.items.value.length ? (n(), S(u(al), {
2954
- key: 3,
2955
- rows: e.crud.pagination.pageSize,
2956
- "total-records": e.crud.pagination.rows,
2957
- first: z.value,
2958
- "rows-per-page-options": [10, 20, 50],
2959
- template: "CurrentPageReport PrevPageLink NextPageLink",
2960
- "current-page-report-template": "Página {currentPage} de {totalPages}",
2961
- class: "w-crud-paginator",
2962
- onPage: e.crud.onPage
2963
- }, null, 8, ["rows", "total-records", "first", "onPage"])) : k("", !0)
2964
- ]))
2965
- ]),
2966
- e.actionRail ? (n(), m("aside", xo, [
2967
- g.value ? ue((n(), S(u(O), {
2968
- key: 0,
2969
- icon: "pi pi-plus",
2970
- rounded: "",
2971
- onClick: v[16] || (v[16] = (r) => e.crud.openCreateDialog())
2972
- }, null, 512)), [
2973
- [
2974
- q,
2975
- "Novo",
2976
- void 0,
2977
- { left: !0 }
2978
- ]
2979
- ]) : k("", !0),
2980
- g.value && me.value.length ? (n(), m("div", Co)) : k("", !0),
2981
- (n(!0), m(te, null, ie(me.value, (r) => (n(), m(te, {
2982
- key: r.action
2983
- }, [
2984
- !y.value || be(r, y.value) ? ue((n(), S(u(O), {
2985
- key: 0,
2986
- icon: r.icon,
2987
- text: "",
2988
- rounded: "",
2989
- severity: r.severity,
2990
- disabled: !y.value || Ee(r, y.value),
2991
- onClick: (N) => y.value && ve(r, y.value)
2992
- }, null, 8, ["icon", "severity", "disabled", "onClick"])), [
2993
- [
2994
- q,
2995
- r.tooltip,
2996
- void 0,
2997
- { left: !0 }
2998
- ]
2999
- ]) : k("", !0)
3000
- ], 64))), 128)),
3001
- B(c.$slots, "rail-actions", {
3002
- selected: y.value,
3003
- crud: e.crud
3004
- }),
3005
- e.showPrint || e.exportCsv ? (n(), m("div", Vo)) : k("", !0),
3006
- e.showPrint ? ue((n(), S(u(O), {
3007
- key: 3,
3008
- icon: "pi pi-print",
3009
- text: "",
3010
- rounded: "",
3011
- disabled: !y.value,
3012
- onClick: Ze
3013
- }, null, 8, ["disabled"])), [
3014
- [
3015
- q,
3016
- "Imprimir",
3017
- void 0,
3018
- { left: !0 }
3019
- ]
3020
- ]) : k("", !0),
3021
- e.exportCsv ? ue((n(), S(u(O), {
3022
- key: 4,
3023
- icon: "pi pi-download",
3024
- text: "",
3025
- rounded: "",
3026
- loading: Me.value,
3027
- onClick: qe
3028
- }, null, 8, ["loading"])), [
3029
- [
3030
- q,
3031
- e.csvScope === "all" ? "Exportar tudo (CSV)" : "Exportar página (CSV)",
3032
- void 0,
3033
- { left: !0 }
3034
- ]
3035
- ]) : k("", !0)
3036
- ])) : k("", !0)
3037
- ], 2),
3038
- e.contextMenu ? (n(), S(u(ol), {
3039
- key: 1,
3040
- ref_key: "cm",
3041
- ref: Pe,
3042
- model: it.value
3043
- }, null, 8, ["model"])) : k("", !0),
3044
- B(c.$slots, "form-dialog", {
3045
- crud: e.crud,
3046
- dialogWidth: e.dialogWidth
3047
- }, () => {
3048
- var r;
3049
- return [
3050
- P(Tt, {
3051
- visible: e.crud.dialogVisible.value,
3052
- title: e.crud.dialogTitle.value,
3053
- fields: e.crud.config.form,
3054
- "form-data": e.crud.formData,
3055
- "is-editing": e.crud.isEditing.value,
3056
- saving: e.crud.saving.value,
3057
- disabled: ((r = e.crud.viewMode) == null ? void 0 : r.value) ?? !1,
3058
- width: e.dialogWidth,
3059
- "form-columns": e.formColumns ?? e.crud.config.formColumns,
3060
- "keyboard-nav": e.crud.config.keyboardNav,
3061
- "onUpdate:visible": v[17] || (v[17] = (N) => {
3062
- e.crud.dialogVisible.value = N, N || (e.crud.editingItem.value = null);
3063
- }),
3064
- "onUpdate:field": v[18] || (v[18] = (N, Q) => e.crud.setFormField(N, Q)),
3065
- onSave: v[19] || (v[19] = (N) => e.crud.save())
3066
- }, Je({ _: 2 }, [
3067
- ie(e.crud.config.form, (N) => ({
3068
- name: `field-${N.field}`,
3069
- fn: H((Q) => [
3070
- B(c.$slots, `field-${N.field}`, ft(vt(Q)))
3071
- ])
3072
- }))
3073
- ]), 1032, ["visible", "title", "fields", "form-data", "is-editing", "saving", "disabled", "width", "form-columns", "keyboard-nav"])
3074
- ];
3075
- }),
3076
- c.$slots["delete-message"] ? (n(), S(u(nt), {
3077
- key: 2,
3078
- visible: pe.value,
3079
- "onUpdate:visible": v[21] || (v[21] = (r) => pe.value = r),
3080
- header: "Confirmar Exclusão",
3081
- modal: "",
3082
- draggable: !1,
3083
- class: "w-crud-delete-dialog",
3084
- style: { width: "30rem" }
3085
- }, {
3086
- footer: H(() => [
3087
- P(u(O), {
3088
- type: "button",
3089
- label: "Cancelar",
3090
- severity: "secondary",
3091
- text: "",
3092
- disabled: ge.value,
3093
- onClick: v[20] || (v[20] = (r) => pe.value = !1)
3094
- }, null, 8, ["disabled"]),
3095
- P(u(O), {
3096
- type: "button",
3097
- label: "Excluir",
3098
- icon: "pi pi-trash",
3099
- severity: "danger",
3100
- loading: ge.value,
3101
- onClick: we
3102
- }, null, 8, ["loading"])
3103
- ]),
3104
- default: H(() => [
3105
- B(c.$slots, "delete-message", { item: fe.value })
3106
- ]),
3107
- _: 3
3108
- }, 8, ["visible"])) : k("", !0)
3109
- ]);
3110
- };
3111
- }
3112
- }), vi = /* @__PURE__ */ se({
3113
- __name: "WDateRange",
3114
- props: {
3115
- modelValue: { default: null },
3116
- placeholder: { default: "Selecione o período" },
3117
- minDate: {},
3118
- maxDate: {},
3119
- showButtonBar: { type: Boolean, default: !0 },
3120
- disabled: { type: Boolean, default: !1 }
3121
- },
3122
- emits: ["update:modelValue"],
3123
- setup(e, { emit: a }) {
3124
- const t = a;
3125
- function o(i) {
3126
- t("update:modelValue", i ?? null);
3127
- }
3128
- return (i, d) => (n(), S(u(At), {
3129
- "model-value": e.modelValue ?? void 0,
3130
- "selection-mode": "range",
3131
- placeholder: e.placeholder,
3132
- "min-date": e.minDate,
3133
- "max-date": e.maxDate,
3134
- "show-button-bar": e.showButtonBar,
3135
- disabled: e.disabled,
3136
- "date-format": "dd/mm/yy",
3137
- fluid: "",
3138
- "onUpdate:modelValue": o
3139
- }, null, 8, ["model-value", "placeholder", "min-date", "max-date", "show-button-bar", "disabled"]));
3140
- }
3141
- }), So = "g:", Do = "n:";
3142
- function ct(e) {
3143
- return String(e ?? "").normalize("NFD").replace(new RegExp("\\p{Diacritic}", "gu"), "").toLocaleLowerCase();
3144
- }
3145
- function Eo(e, { optionValue: a = "id", optionLabel: t = "nome", groupBy: o, groupLabel: i } = {}) {
3146
- const d = [], h = /* @__PURE__ */ new Map();
3147
- for (const V of e ?? []) {
3148
- const x = V[a];
3149
- if (x == null) continue;
3150
- const w = {
3151
- key: `${Do}${x}`,
3152
- label: String(V[t] ?? x),
3153
- value: x,
3154
- data: V,
3155
- leaf: !0
3156
- }, I = o ? V[o] : void 0;
3157
- if (I == null || I === "") {
3158
- d.push(w);
3159
- continue;
3160
- }
3161
- const $ = String(I);
3162
- let z = h.get($);
3163
- z || (z = {
3164
- key: `${So}${$}`,
3165
- label: i ? i($) : $,
3166
- children: [],
3167
- leaf: !1
3168
- }, h.set($, z), d.push(z)), z.children.push(w);
3169
- }
3170
- return d;
3171
- }
3172
- function bt(e) {
3173
- var a;
3174
- return (a = e.children) != null && a.length ? e.children.flatMap(bt) : e.value === void 0 ? [] : [e.value];
3175
- }
3176
- function mt(e) {
3177
- return e.flatMap(bt);
3178
- }
3179
- function Fo(e) {
3180
- const a = /* @__PURE__ */ new Map(), t = (o) => {
3181
- var i;
3182
- a.set(o.key, o), (i = o.children) == null || i.forEach(t);
3183
- };
3184
- return e.forEach(t), a;
3185
- }
3186
- function Po(e, a) {
3187
- const t = new Set(a ?? []), o = {}, i = (d) => {
3188
- var x;
3189
- if (!((x = d.children) != null && x.length)) {
3190
- const w = d.value !== void 0 && t.has(d.value);
3191
- return w && (o[d.key] = { checked: !0, partialChecked: !1 }), { checked: w, partialChecked: !1 };
3192
- }
3193
- let h = !0, V = !1;
3194
- for (const w of d.children) {
3195
- const I = i(w);
3196
- I.checked ? V = !0 : h = !1, I.partialChecked && (V = !0, h = !1);
3197
- }
3198
- return h ? o[d.key] = { checked: !0, partialChecked: !1 } : V && (o[d.key] = { checked: !1, partialChecked: !0 }), { checked: h, partialChecked: !h && V };
3199
- };
3200
- return e.forEach(i), o;
3201
- }
3202
- function Lt(e, a, t = []) {
3203
- var h;
3204
- const o = ct(a).trim();
3205
- if (!o) return [...e];
3206
- const i = (V) => ct(V.label).includes(o) ? !0 : t.some((x) => {
3207
- var w;
3208
- return ct((w = V.data) == null ? void 0 : w[x]).includes(o);
3209
- }), d = [];
3210
- for (const V of e) {
3211
- if (!((h = V.children) != null && h.length)) {
3212
- i(V) && d.push(V);
3213
- continue;
3214
- }
3215
- if (i(V)) {
3216
- d.push(V);
3217
- continue;
3218
- }
3219
- const x = Lt(V.children, a, t);
3220
- x.length && d.push({ ...V, children: x });
3221
- }
3222
- return d;
3223
- }
3224
- function Mo(e, a, t) {
3225
- const o = new Set(a);
3226
- if (!t) return (e ?? []).filter((h) => !o.has(h));
3227
- const i = [...e ?? []], d = new Set(i);
3228
- for (const h of a)
3229
- d.has(h) || (d.add(h), i.push(h));
3230
- return i;
3231
- }
3232
- const Io = {
3233
- key: 0,
3234
- class: "w-tree-select__head"
3235
- }, Ro = {
3236
- key: 0,
3237
- class: "w-tree-select__count"
3238
- }, Ao = { key: 1 }, Bo = {
3239
- key: 2,
3240
- class: "w-tree-select__actions"
3241
- }, Uo = {
3242
- key: 2,
3243
- class: "w-tree-select__empty"
3244
- }, pi = /* @__PURE__ */ se({
3245
- __name: "WTreeSelect",
3246
- props: {
3247
- modelValue: { default: () => [] },
3248
- options: { default: () => [] },
3249
- optionValue: { default: "id" },
3250
- optionLabel: { default: "nome" },
3251
- groupBy: {},
3252
- groupLabel: {},
3253
- filter: { type: Boolean, default: !1 },
3254
- filterPlaceholder: { default: "Buscar..." },
3255
- filterFields: { default: () => [] },
3256
- loading: { type: Boolean, default: !1 },
3257
- disabled: { type: Boolean, default: !1 },
3258
- emptyMessage: { default: "Nenhum item disponível" },
3259
- filterEmptyMessage: { default: "Nenhum item encontrado" },
3260
- showCount: { type: Boolean, default: !0 },
3261
- showToggleAll: { type: Boolean, default: !0 },
3262
- defaultExpanded: { type: Boolean, default: !1 },
3263
- ariaLabel: {}
3264
- },
3265
- emits: ["update:modelValue"],
3266
- setup(e, { emit: a }) {
3267
- const t = e, o = a, i = T(""), d = T({}), h = D(
3268
- () => Eo(t.options, {
3269
- optionValue: t.optionValue,
3270
- optionLabel: t.optionLabel,
3271
- groupBy: t.groupBy,
3272
- groupLabel: t.groupLabel
3273
- })
3274
- ), V = D(() => Fo(h.value)), x = D(() => t.filter && i.value.trim().length > 0), w = D(
3275
- () => x.value ? Lt(h.value, i.value, t.filterFields) : h.value
3276
- ), I = D(() => Po(h.value, t.modelValue)), $ = D(() => mt(h.value).length), z = D(() => {
3277
- const K = new Set(mt(h.value));
3278
- return t.modelValue.filter((Z) => K.has(Z)).length;
3279
- }), G = D(
3280
- () => (t.showCount || t.showToggleAll) && ($.value > 0 || t.loading)
3281
- ), Y = D(() => !t.loading && w.value.length === 0), X = D(
3282
- () => x.value ? t.filterEmptyMessage : t.emptyMessage
3283
- );
3284
- function R(K) {
3285
- var J;
3286
- const Z = { ...d.value };
3287
- for (const ce of K) (J = ce.children) != null && J.length && (Z[ce.key] = !0);
3288
- d.value = Z;
3289
- }
3290
- const L = /* @__PURE__ */ new Set();
3291
- Ve(
3292
- h,
3293
- (K) => {
3294
- if (!t.defaultExpanded) return;
3295
- const Z = K.filter((J) => {
3296
- var ce;
3297
- return ((ce = J.children) == null ? void 0 : ce.length) && !L.has(J.key);
3298
- });
3299
- Z.length && (Z.forEach((J) => L.add(J.key)), R(Z));
3300
- },
3301
- { immediate: !0 }
3302
- ), Ve(i, (K) => {
3303
- K.trim() && R(w.value);
3304
- });
3305
- function W(K, Z) {
3306
- if (t.disabled) return;
3307
- const J = V.value.get(K.key);
3308
- J && o("update:modelValue", Mo(t.modelValue, bt(J), Z));
3309
- }
3310
- function F() {
3311
- t.disabled || o("update:modelValue", mt(h.value));
3312
- }
3313
- function j() {
3314
- t.disabled || o("update:modelValue", []);
3315
- }
3316
- return (K, Z) => (n(), m("div", {
3317
- class: le(["w-tree-select", { "w-tree-select--disabled": e.disabled }])
3318
- }, [
3319
- B(K.$slots, "header", {
3320
- selectedCount: z.value,
3321
- total: $.value
3322
- }, () => [
3323
- G.value ? (n(), m("div", Io, [
3324
- e.showCount ? (n(), m("span", Ro, A(z.value) + " de " + A($.value) + " selecionados ", 1)) : (n(), m("span", Ao)),
3325
- e.showToggleAll ? (n(), m("div", Bo, [
3326
- P(u(O), {
3327
- type: "button",
3328
- label: "Marcar todos",
3329
- text: "",
3330
- "data-kbd-skip": "",
3331
- tabindex: "-1",
3332
- disabled: e.disabled || z.value === $.value || !$.value,
3333
- onClick: F
3334
- }, null, 8, ["disabled"]),
3335
- P(u(O), {
3336
- type: "button",
3337
- label: "Limpar",
3338
- text: "",
3339
- "data-kbd-skip": "",
3340
- tabindex: "-1",
3341
- disabled: e.disabled || !z.value,
3342
- onClick: j
3343
- }, null, 8, ["disabled"])
3344
- ])) : k("", !0)
3345
- ])) : k("", !0)
3346
- ]),
3347
- e.filter ? (n(), S(u(ze), {
3348
- key: 0,
3349
- class: "w-tree-select__filter"
3350
- }, {
3351
- default: H(() => [
3352
- P(u(We), { class: "pi pi-search" }),
3353
- P(u(de), {
3354
- modelValue: i.value,
3355
- "onUpdate:modelValue": Z[0] || (Z[0] = (J) => i.value = J),
3356
- placeholder: e.filterPlaceholder,
3357
- disabled: e.disabled,
3358
- "aria-label": e.filterPlaceholder,
3359
- "data-kbd-skip": "",
3360
- fluid: ""
3361
- }, null, 8, ["modelValue", "placeholder", "disabled", "aria-label"])
3362
- ]),
3363
- _: 1
3364
- })) : k("", !0),
3365
- Y.value ? (n(), m("div", Uo, [
3366
- B(K.$slots, "empty", { filtering: x.value }, () => [
3367
- Fe(A(X.value), 1)
3368
- ])
3369
- ])) : (n(), S(u(hl), {
3370
- key: 1,
3371
- value: w.value,
3372
- "selection-mode": "checkbox",
3373
- "selection-keys": I.value,
3374
- "expanded-keys": d.value,
3375
- loading: e.loading,
3376
- "aria-label": e.ariaLabel,
3377
- class: "w-tree-select__tree",
3378
- "onUpdate:expandedKeys": Z[1] || (Z[1] = (J) => d.value = J),
3379
- onNodeSelect: Z[2] || (Z[2] = (J) => W(J, !0)),
3380
- onNodeUnselect: Z[3] || (Z[3] = (J) => W(J, !1))
3381
- }, {
3382
- default: H((J) => [
3383
- B(K.$slots, "node", {
3384
- node: J.node
3385
- }, () => [
3386
- Fe(A(J.node.label), 1)
3387
- ])
3388
- ]),
3389
- _: 3
3390
- }, 8, ["value", "selection-keys", "expanded-keys", "loading", "aria-label"]))
3391
- ], 2));
3392
- }
3393
- }), To = /* @__PURE__ */ se({
3394
- __name: "WStatusTag",
3395
- props: {
3396
- value: {},
3397
- map: {}
3398
- },
3399
- setup(e) {
3400
- const a = e, t = {
3401
- ativo: { label: "Ativo", severity: "success" },
3402
- ativa: { label: "Ativa", severity: "success" },
3403
- inativo: { label: "Inativo", severity: "danger" },
3404
- inativa: { label: "Inativa", severity: "danger" },
3405
- suspensa: { label: "Suspensa", severity: "warn" },
3406
- suspenso: { label: "Suspenso", severity: "warn" },
3407
- cancelada: { label: "Cancelada", severity: "danger" },
3408
- cancelado: { label: "Cancelado", severity: "danger" },
3409
- pendente: { label: "Pendente", severity: "warn" },
3410
- confirmada: { label: "Confirmada", severity: "success" },
3411
- confirmado: { label: "Confirmado", severity: "success" },
3412
- vencida: { label: "Vencida", severity: "danger" },
3413
- vencido: { label: "Vencido", severity: "danger" },
3414
- concluido: { label: "Concluído", severity: "success" },
3415
- concluida: { label: "Concluída", severity: "success" },
3416
- em_progresso: { label: "Em Progresso", severity: "info" },
3417
- em_andamento: { label: "Em Andamento", severity: "info" },
3418
- expirado: { label: "Expirado", severity: "secondary" },
3419
- expirada: { label: "Expirada", severity: "secondary" },
3420
- aberto: { label: "Aberto", severity: "info" },
3421
- aberta: { label: "Aberta", severity: "info" },
3422
- fechado: { label: "Fechado", severity: "secondary" },
3423
- fechada: { label: "Fechada", severity: "secondary" },
3424
- pago: { label: "Pago", severity: "success" },
3425
- paga: { label: "Paga", severity: "success" },
3426
- inadimplente: { label: "Inadimplente", severity: "danger" }
3427
- }, o = D(() => (a.map ?? t)[a.value] ?? { label: a.value, severity: "secondary" });
3428
- return (i, d) => (n(), S(u(It), {
3429
- value: o.value.label,
3430
- severity: o.value.severity
3431
- }, null, 8, ["value", "severity"]));
3432
- }
3433
- }), Lo = { class: "w-page-header" }, No = { class: "w-page-header-content" }, Oo = { class: "w-page-header-title" }, zo = {
3434
- key: 0,
3435
- class: "w-page-header-subtitle"
3436
- }, Wo = { class: "w-page-header-actions" }, hi = /* @__PURE__ */ se({
3437
- __name: "WPageHeader",
3438
- props: {
3439
- title: {},
3440
- subtitle: {},
3441
- actionLabel: {},
3442
- actionIcon: {}
3443
- },
3444
- emits: ["action"],
3445
- setup(e, { emit: a }) {
3446
- const t = a;
3447
- return (o, i) => (n(), m("div", Lo, [
3448
- f("div", No, [
3449
- f("h2", Oo, A(e.title), 1),
3450
- e.subtitle ? (n(), m("p", zo, A(e.subtitle), 1)) : k("", !0)
3451
- ]),
3452
- f("div", Wo, [
3453
- B(o.$slots, "actions"),
3454
- e.actionLabel ? (n(), S(u(O), {
3455
- key: 0,
3456
- label: e.actionLabel,
3457
- icon: e.actionIcon,
3458
- onClick: i[0] || (i[0] = (d) => t("action"))
3459
- }, null, 8, ["label", "icon"])) : k("", !0)
3460
- ])
3461
- ]));
3462
- }
3463
- }), jo = { class: "w-empty-state" }, qo = { class: "w-empty-state-icon" }, Ko = { class: "w-empty-state-title" }, Ho = {
3464
- key: 0,
3465
- class: "w-empty-state-description"
3466
- }, yi = /* @__PURE__ */ se({
3467
- __name: "WEmptyState",
3468
- props: {
3469
- icon: {},
3470
- title: {},
3471
- description: {},
3472
- actionLabel: {},
3473
- actionIcon: {}
3474
- },
3475
- emits: ["action"],
3476
- setup(e, { emit: a }) {
3477
- const t = a;
3478
- return (o, i) => (n(), m("div", jo, [
3479
- f("div", qo, [
3480
- f("i", {
3481
- class: le(e.icon)
3482
- }, null, 2)
3483
- ]),
3484
- f("p", Ko, A(e.title), 1),
3485
- e.description ? (n(), m("p", Ho, A(e.description), 1)) : k("", !0),
3486
- e.actionLabel ? (n(), S(u(O), {
3487
- key: 1,
3488
- label: e.actionLabel,
3489
- icon: e.actionIcon,
3490
- size: "small",
3491
- class: "mt-3",
3492
- onClick: i[0] || (i[0] = (d) => t("action"))
3493
- }, null, 8, ["label", "icon"])) : k("", !0)
3494
- ]));
3495
- }
3496
- });
3497
- /*!
3498
- * vue-router v4.6.4
3499
- * (c) 2025 Eduardo San Martin Morote
3500
- * @license MIT
3501
- */
3502
- Symbol(process.env.NODE_ENV !== "production" ? "navigation failure" : "");
3503
- Symbol(process.env.NODE_ENV !== "production" ? "router view location matched" : "");
3504
- Symbol(process.env.NODE_ENV !== "production" ? "router view depth" : "");
3505
- const Go = Symbol(process.env.NODE_ENV !== "production" ? "router" : "");
3506
- Symbol(process.env.NODE_ENV !== "production" ? "route location" : "");
3507
- Symbol(process.env.NODE_ENV !== "production" ? "router view location" : "");
3508
- /*!
3509
- * vue-router v4.6.4
3510
- * (c) 2025 Eduardo San Martin Morote
3511
- * @license MIT
3512
- */
3513
- function Yo() {
3514
- return Et(Go);
3515
- }
3516
- const Jo = { class: "w-detail-header" }, Xo = { class: "w-detail-header-left" }, Zo = { class: "w-detail-header-content" }, Qo = { class: "w-detail-header-title" }, _o = {
3517
- key: 0,
3518
- class: "w-detail-header-subtitle"
3519
- }, en = { class: "w-detail-header-actions" }, gi = /* @__PURE__ */ se({
3520
- __name: "WDetailHeader",
3521
- props: {
3522
- title: {},
3523
- subtitle: {},
3524
- icon: {},
3525
- backRoute: {},
3526
- backTo: {},
3527
- status: {},
3528
- statusMap: {}
3529
- },
3530
- setup(e) {
3531
- const a = e, t = Yo();
3532
- function o() {
3533
- a.backTo ? t.push(typeof a.backTo == "string" ? { name: a.backTo } : a.backTo) : a.backRoute ? t.push({ name: a.backRoute }) : t.back();
3534
- }
3535
- return (i, d) => (n(), m("div", Jo, [
3536
- f("div", Xo, [
3537
- P(u(O), {
3538
- icon: "pi pi-arrow-left",
3539
- text: "",
3540
- rounded: "",
3541
- onClick: o
3542
- }),
3543
- e.icon ? (n(), m("i", {
3544
- key: 0,
3545
- class: le([e.icon, "w-detail-header-icon"])
3546
- }, null, 2)) : k("", !0),
3547
- f("div", Zo, [
3548
- f("h2", Qo, A(e.title), 1),
3549
- e.subtitle ? (n(), m("p", _o, A(e.subtitle), 1)) : k("", !0)
3550
- ]),
3551
- e.status ? (n(), S(To, {
3552
- key: 1,
3553
- value: e.status,
3554
- map: e.statusMap
3555
- }, null, 8, ["value", "map"])) : k("", !0)
3556
- ]),
3557
- f("div", en, [
3558
- B(i.$slots, "actions")
3559
- ])
3560
- ]));
3561
- }
3562
- }), tn = { class: "w-info-card" }, ln = {
3563
- key: 0,
3564
- class: "w-info-card-title"
3565
- }, an = { class: "w-info-card-grid" }, on = { class: "w-info-card-label" }, nn = { class: "w-info-card-value" }, bi = /* @__PURE__ */ se({
3566
- __name: "WInfoCard",
3567
- props: {
3568
- title: {},
3569
- fields: {}
3570
- },
3571
- setup(e) {
3572
- const { formatCurrency: a, formatDate: t, formatNumber: o } = gt();
3573
- function i(d) {
3574
- const h = d.value;
3575
- return h == null || h === "" ? "-" : d.format === "currency" ? a(Number(h)) : d.format === "date" ? t(String(h)) : d.format === "datetime" ? t(String(h), "DD/MM/YYYY HH:mm") : d.format === "number" ? o(Number(h)) : String(h);
3576
- }
3577
- return (d, h) => (n(), m("div", tn, [
3578
- e.title ? (n(), m("h3", ln, A(e.title), 1)) : k("", !0),
3579
- f("div", an, [
3580
- (n(!0), m(te, null, ie(e.fields, (V) => (n(), m("div", {
3581
- key: V.label,
3582
- class: "w-info-card-field"
3583
- }, [
3584
- f("span", on, A(V.label), 1),
3585
- f("span", nn, A(i(V)), 1)
3586
- ]))), 128))
3587
- ])
3588
- ]));
3589
- }
3590
- }), sn = {
3591
- key: 0,
3592
- class: "w-kpi-card__loading"
3593
- }, rn = { class: "w-kpi-card__loading-content" }, un = { class: "w-kpi-card__header" }, dn = {
3594
- key: 0,
3595
- class: "w-kpi-card__icon"
3596
- }, cn = {
3597
- key: 1,
3598
- class: "w-kpi-card__trend"
3599
- }, mn = { class: "w-kpi-card__content" }, fn = { class: "w-kpi-card__label" }, vn = { class: "w-kpi-card__value" }, pn = {
3600
- key: 0,
3601
- class: "w-kpi-card__hint"
3602
- }, hn = {
3603
- key: 0,
3604
- class: "w-kpi-card__footer"
3605
- }, yn = /* @__PURE__ */ se({
3606
- __name: "WKpiCard",
3607
- props: {
3608
- label: {},
3609
- value: {},
3610
- icon: {},
3611
- hint: {},
3612
- severity: {},
3613
- trend: {},
3614
- loading: { type: Boolean }
3615
- },
3616
- setup(e) {
3617
- return (a, t) => (n(), m("article", {
3618
- class: le(["w-kpi-card", e.severity ? `w-kpi-card--${e.severity}` : ""])
3619
- }, [
3620
- e.loading ? (n(), m("div", sn, [
3621
- P(u(et), {
3622
- shape: "circle",
3623
- size: "2.75rem"
3624
- }),
3625
- f("div", rn, [
3626
- P(u(et), {
3627
- width: "6rem",
3628
- height: "0.75rem"
3629
- }),
3630
- P(u(et), {
3631
- width: "7.5rem",
3632
- height: "1.5rem"
3633
- }),
3634
- P(u(et), {
3635
- width: "5rem",
3636
- height: "0.75rem"
3637
- })
3638
- ])
3639
- ])) : (n(), m(te, { key: 1 }, [
3640
- f("div", un, [
3641
- e.icon || a.$slots.icon ? (n(), m("div", dn, [
3642
- B(a.$slots, "icon", {}, () => [
3643
- e.icon ? (n(), m("i", {
3644
- key: 0,
3645
- class: le(e.icon)
3646
- }, null, 2)) : k("", !0)
3647
- ])
3648
- ])) : k("", !0),
3649
- e.trend || a.$slots.trend ? (n(), m("div", cn, [
3650
- B(a.$slots, "trend", {}, () => [
3651
- e.trend ? (n(), m("span", {
3652
- key: 0,
3653
- class: le(["w-kpi-card__trend-badge", e.trend.direction ? `w-kpi-card__trend-badge--${e.trend.direction}` : ""])
3654
- }, A(e.trend.value), 3)) : k("", !0)
3655
- ])
3656
- ])) : k("", !0)
3657
- ]),
3658
- f("div", mn, [
3659
- f("p", fn, A(e.label), 1),
3660
- f("div", vn, [
3661
- B(a.$slots, "value", {}, () => [
3662
- Fe(A(e.value), 1)
3663
- ])
3664
- ]),
3665
- e.hint || a.$slots.hint ? (n(), m("p", pn, [
3666
- B(a.$slots, "hint", {}, () => [
3667
- Fe(A(e.hint), 1)
3668
- ])
3669
- ])) : k("", !0)
3670
- ]),
3671
- a.$slots.footer ? (n(), m("footer", hn, [
3672
- B(a.$slots, "footer")
3673
- ])) : k("", !0)
3674
- ], 64))
3675
- ], 2));
3676
- }
3677
- }), ki = /* @__PURE__ */ se({
3678
- __name: "WKpiGrid",
3679
- props: {
3680
- items: { default: () => [] },
3681
- columns: { default: 4 },
3682
- dense: { type: Boolean, default: !1 }
3683
- },
3684
- setup(e) {
3685
- const a = e, t = D(() => [
3686
- a.columns === "auto" ? "w-kpi-grid--auto" : `w-kpi-grid--cols-${a.columns}`,
3687
- { "w-kpi-grid--dense": a.dense }
3688
- ]);
3689
- return (o, i) => (n(), m("div", {
3690
- class: le(["w-kpi-grid", t.value])
3691
- }, [
3692
- o.$slots.item ? (n(!0), m(te, { key: 0 }, ie(e.items, (d, h) => B(o.$slots, "item", {
3693
- key: h,
3694
- item: d,
3695
- index: h
3696
- })), 128)) : (n(!0), m(te, { key: 1 }, ie(e.items, (d, h) => (n(), S(yn, {
3697
- key: h,
3698
- label: d.label,
3699
- value: d.value,
3700
- icon: d.icon,
3701
- severity: d.severity || "primary",
3702
- hint: d.hint,
3703
- trend: d.trend,
3704
- loading: d.loading
3705
- }, null, 8, ["label", "value", "icon", "severity", "hint", "trend", "loading"]))), 128))
3706
- ], 2));
3707
- }
3708
- }), gn = { class: "w-section-header__main" }, bn = {
3709
- key: 0,
3710
- class: "w-section-header__icon"
3711
- }, kn = { class: "w-section-header__content" }, wn = { class: "w-section-header__title-row" }, $n = { class: "w-section-header__title" }, xn = {
3712
- key: 0,
3713
- class: "w-section-header__subtitle"
3714
- }, Cn = {
3715
- key: 0,
3716
- class: "w-section-header__actions"
3717
- }, wi = /* @__PURE__ */ se({
3718
- __name: "WSectionHeader",
3719
- props: {
3720
- title: {},
3721
- subtitle: {},
3722
- icon: {},
3723
- compact: { type: Boolean }
3724
- },
3725
- setup(e) {
3726
- return (a, t) => (n(), m("div", {
3727
- class: le(["w-section-header", { "w-section-header--compact": e.compact }])
3728
- }, [
3729
- f("div", gn, [
3730
- e.icon || a.$slots.icon ? (n(), m("div", bn, [
3731
- B(a.$slots, "icon", {}, () => [
3732
- e.icon ? (n(), m("i", {
3733
- key: 0,
3734
- class: le(e.icon)
3735
- }, null, 2)) : k("", !0)
3736
- ])
3737
- ])) : k("", !0),
3738
- f("div", kn, [
3739
- f("div", wn, [
3740
- f("h3", $n, A(e.title), 1),
3741
- B(a.$slots, "meta")
3742
- ]),
3743
- e.subtitle ? (n(), m("p", xn, A(e.subtitle), 1)) : k("", !0)
3744
- ])
3745
- ]),
3746
- a.$slots.actions ? (n(), m("div", Cn, [
3747
- B(a.$slots, "actions")
3748
- ])) : k("", !0)
3749
- ], 2));
3750
- }
3751
- }), Vn = {
3752
- key: 0,
3753
- class: "w-form-section__header"
3754
- }, Sn = { class: "w-form-section__content" }, Dn = { class: "w-form-section__title" }, En = {
3755
- key: 0,
3756
- class: "w-form-section__description"
3757
- }, Fn = {
3758
- key: 0,
3759
- class: "w-form-section__actions"
3760
- }, Pn = { class: "w-form-section__body" }, $i = /* @__PURE__ */ se({
3761
- __name: "WFormSection",
3762
- props: {
3763
- title: {},
3764
- description: {},
3765
- variant: {}
3766
- },
3767
- setup(e) {
3768
- return (a, t) => (n(), m("section", {
3769
- class: le(["w-form-section", e.variant ? `w-form-section--${e.variant}` : ""])
3770
- }, [
3771
- e.title || e.description || a.$slots.actions ? (n(), m("div", Vn, [
3772
- f("div", Sn, [
3773
- f("h3", Dn, A(e.title), 1),
3774
- e.description ? (n(), m("p", En, A(e.description), 1)) : k("", !0)
3775
- ]),
3776
- a.$slots.actions ? (n(), m("div", Fn, [
3777
- B(a.$slots, "actions")
3778
- ])) : k("", !0)
3779
- ])) : k("", !0),
3780
- f("div", Pn, [
3781
- B(a.$slots, "default")
3782
- ])
3783
- ], 2));
3784
- }
3785
- }), Mn = {
3786
- key: 0,
3787
- class: "w-action-bar__primary"
3788
- }, In = {
3789
- key: 1,
3790
- class: "w-action-bar__filters"
3791
- }, Rn = {
3792
- key: 2,
3793
- class: "w-action-bar__secondary"
3794
- }, xi = /* @__PURE__ */ se({
3795
- __name: "WActionBar",
3796
- props: {
3797
- align: { default: "between" },
3798
- stackOnMobile: { type: Boolean, default: !0 }
3799
- },
3800
- setup(e) {
3801
- return (a, t) => (n(), m("div", {
3802
- class: le(["w-action-bar", [`w-action-bar--${e.align}`, { "w-action-bar--stack": e.stackOnMobile }]])
3803
- }, [
3804
- a.$slots.primary || a.$slots.default ? (n(), m("div", Mn, [
3805
- B(a.$slots, "primary", {}, () => [
3806
- B(a.$slots, "default")
3807
- ])
3808
- ])) : k("", !0),
3809
- a.$slots.filters ? (n(), m("div", In, [
3810
- B(a.$slots, "filters")
3811
- ])) : k("", !0),
3812
- a.$slots.secondary ? (n(), m("div", Rn, [
3813
- B(a.$slots, "secondary")
3814
- ])) : k("", !0)
3815
- ], 2));
3816
- }
3817
- }), An = { class: "w-progress-flow__marker" }, Bn = { class: "w-progress-flow__content" }, Un = { class: "w-progress-flow__label" }, Tn = {
3818
- key: 0,
3819
- class: "w-progress-flow__description"
3820
- }, Ci = /* @__PURE__ */ se({
3821
- __name: "WProgressFlow",
3822
- props: {
3823
- steps: {},
3824
- currentStep: {},
3825
- orientation: { default: "horizontal" }
3826
- },
3827
- setup(e) {
3828
- const a = e, t = D(() => a.steps.findIndex((i) => i.key === a.currentStep));
3829
- function o(i) {
3830
- return i < t.value ? "done" : i === t.value ? "current" : "pending";
3831
- }
3832
- return (i, d) => (n(), m("div", {
3833
- class: le(["w-progress-flow", `w-progress-flow--${e.orientation}`])
3834
- }, [
3835
- (n(!0), m(te, null, ie(e.steps, (h, V) => (n(), m("div", {
3836
- key: h.key,
3837
- class: le(["w-progress-flow__step", `w-progress-flow__step--${o(V)}`])
3838
- }, [
3839
- B(i.$slots, "step", {
3840
- step: h,
3841
- index: V,
3842
- state: o(V)
3843
- }, () => [
3844
- f("div", An, [
3845
- f("span", null, A(V + 1), 1)
3846
- ]),
3847
- f("div", Bn, [
3848
- f("p", Un, A(h.label), 1),
3849
- h.description ? (n(), m("p", Tn, A(h.description), 1)) : k("", !0)
3850
- ])
3851
- ])
3852
- ], 2))), 128))
3853
- ], 2));
3854
- }
3855
- });
3856
- export {
3857
- na as W,
3858
- xi as _,
3859
- Kl as a,
3860
- ht as b,
3861
- Tt as c,
3862
- fi as d,
3863
- St as e,
3864
- vi as f,
3865
- gi as g,
3866
- yi as h,
3867
- La as i,
3868
- $i as j,
3869
- bi as k,
3870
- yn as l,
3871
- ki as m,
3872
- Jl as n,
3873
- hi as o,
3874
- Ci as p,
3875
- wi as q,
3876
- To as r,
3877
- ba as s,
3878
- pi as t,
3879
- Wa as u,
3880
- Tl as v,
3881
- Al as w,
3882
- Ll as x,
3883
- Bl as y,
3884
- za as z
3885
- };
3886
- //# sourceMappingURL=WProgressFlow.vue_vue_type_script_setup_true_lang-D9HgZsV9.js.map