@forizi-tecnologia/ui 0.0.3 → 0.0.5

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 (71) hide show
  1. package/README.md +46 -5
  2. package/dist/chunks/components/FzConfigProvider-X6sXT-LE.js +15 -0
  3. package/dist/chunks/components/FzConfigProvider-X6sXT-LE.js.map +1 -0
  4. package/dist/chunks/components/inputs-FzEmailField-CujT-RJo.js +87 -0
  5. package/dist/chunks/components/inputs-FzEmailField-CujT-RJo.js.map +1 -0
  6. package/dist/chunks/components/{inputs-FzFullAddress-e05j6MFg.js → inputs-FzFullAddress-Dj68efww.js} +70 -69
  7. package/dist/chunks/components/inputs-FzFullAddress-Dj68efww.js.map +1 -0
  8. package/dist/chunks/components/inputs-FzMoneyField-Co9uqB9u.js +107 -0
  9. package/dist/chunks/components/inputs-FzMoneyField-Co9uqB9u.js.map +1 -0
  10. package/dist/chunks/components/{inputs-FzNumberField-BAPRZpBo.js → inputs-FzNumberField-DG-uYIEA.js} +38 -37
  11. package/dist/chunks/components/inputs-FzNumberField-DG-uYIEA.js.map +1 -0
  12. package/dist/chunks/components/inputs-FzPhoneField-B8Mk05Hd.js +273 -0
  13. package/dist/chunks/components/inputs-FzPhoneField-B8Mk05Hd.js.map +1 -0
  14. package/dist/chunks/components/inputs-FzZipCodeField-B7fHUkXJ.js +103 -0
  15. package/dist/chunks/components/inputs-FzZipCodeField-B7fHUkXJ.js.map +1 -0
  16. package/dist/chunks/components/{layout-FzLoadingOverlay-DbVh5Ncb.js → layout-FzLoadingOverlay-CWKZxowb.js} +2 -2
  17. package/dist/chunks/components/{layout-FzLoadingOverlay-DbVh5Ncb.js.map → layout-FzLoadingOverlay-CWKZxowb.js.map} +1 -1
  18. package/dist/chunks/components/{messages-FzConfirmDialog-kcpokBc2.js → messages-FzConfirmDialog-CkESdVvg.js} +2 -2
  19. package/dist/chunks/components/{messages-FzConfirmDialog-kcpokBc2.js.map → messages-FzConfirmDialog-CkESdVvg.js.map} +1 -1
  20. package/dist/chunks/components/{messages-FzCustomConfirmDialog-CttE2KMh.js → messages-FzCustomConfirmDialog-DiuYkXxY.js} +2 -2
  21. package/dist/chunks/components/{messages-FzCustomConfirmDialog-CttE2KMh.js.map → messages-FzCustomConfirmDialog-DiuYkXxY.js.map} +1 -1
  22. package/dist/chunks/components/{messages-FzFloatingNotify-BdlkCu5i.js → messages-FzFloatingNotify-CV5gLl9-.js} +2 -2
  23. package/dist/chunks/components/{messages-FzFloatingNotify-BdlkCu5i.js.map → messages-FzFloatingNotify-CV5gLl9-.js.map} +1 -1
  24. package/dist/chunks/components/{modals-FzModalBase-C4wU9yAp.js → modals-FzModalBase-DmsJR5qM.js} +2 -2
  25. package/dist/chunks/components/{modals-FzModalBase-C4wU9yAp.js.map → modals-FzModalBase-DmsJR5qM.js.map} +1 -1
  26. package/dist/chunks/composables/useFzDefaults-BAOcJYaF.js +9 -0
  27. package/dist/chunks/composables/useFzDefaults-BAOcJYaF.js.map +1 -0
  28. package/dist/chunks/index-BEN9ppaq.js +33 -0
  29. package/dist/chunks/index-BEN9ppaq.js.map +1 -0
  30. package/dist/components/FzConfigProvider.vue.d.ts +20 -0
  31. package/dist/components/FzConfigProvider.vue.d.ts.map +1 -0
  32. package/dist/components/index.d.ts +1 -0
  33. package/dist/components/index.d.ts.map +1 -1
  34. package/dist/components/index.js +24 -22
  35. package/dist/components/index.js.map +1 -1
  36. package/dist/components/inputs/FzEmailField.vue.d.ts.map +1 -1
  37. package/dist/components/inputs/FzFullAddress.vue.d.ts.map +1 -1
  38. package/dist/components/inputs/FzMoneyField.vue.d.ts.map +1 -1
  39. package/dist/components/inputs/FzNumberField.vue.d.ts.map +1 -1
  40. package/dist/components/inputs/FzPhoneField.vue.d.ts.map +1 -1
  41. package/dist/components/inputs/FzZipCodeField.vue.d.ts.map +1 -1
  42. package/dist/composables/index.d.ts +1 -0
  43. package/dist/composables/index.d.ts.map +1 -1
  44. package/dist/composables/index.js +11 -9
  45. package/dist/composables/index.js.map +1 -1
  46. package/dist/composables/useFzDefaults.d.ts +3 -0
  47. package/dist/composables/useFzDefaults.d.ts.map +1 -0
  48. package/dist/constants/index.d.ts +4 -0
  49. package/dist/constants/index.d.ts.map +1 -0
  50. package/dist/index.d.ts +2 -0
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +80 -75
  53. package/dist/index.js.map +1 -1
  54. package/dist/types/FzDefaults.d.ts +5 -0
  55. package/dist/types/FzDefaults.d.ts.map +1 -0
  56. package/dist/ui.css +1 -1
  57. package/dist/utils/index.js +19 -18
  58. package/dist/utils/index.js.map +1 -1
  59. package/package.json +1 -1
  60. package/dist/chunks/components/inputs-FzEmailField-B07tsUyr.js +0 -86
  61. package/dist/chunks/components/inputs-FzEmailField-B07tsUyr.js.map +0 -1
  62. package/dist/chunks/components/inputs-FzFullAddress-e05j6MFg.js.map +0 -1
  63. package/dist/chunks/components/inputs-FzMoneyField-BxAg9Bd_.js +0 -106
  64. package/dist/chunks/components/inputs-FzMoneyField-BxAg9Bd_.js.map +0 -1
  65. package/dist/chunks/components/inputs-FzNumberField-BAPRZpBo.js.map +0 -1
  66. package/dist/chunks/components/inputs-FzPhoneField-DKMx53pK.js +0 -272
  67. package/dist/chunks/components/inputs-FzPhoneField-DKMx53pK.js.map +0 -1
  68. package/dist/chunks/components/inputs-FzZipCodeField-kkCMb3t9.js +0 -102
  69. package/dist/chunks/components/inputs-FzZipCodeField-kkCMb3t9.js.map +0 -1
  70. package/dist/chunks/index-Bu6SLmX_.js +0 -31
  71. package/dist/chunks/index-Bu6SLmX_.js.map +0 -1
@@ -1,7 +1,8 @@
1
- import { defineComponent as w, toRef as x, resolveComponent as I, createBlock as V, openBlock as k, unref as i, createSlots as C, withCtx as c, renderSlot as m } from "vue";
2
- import { u as B, c as D } from "../composables/useNumericInput-DGw52-Ds.js";
3
- import { _ as K } from "./inputs-FzMoneyField-BxAg9Bd_.js";
4
- const $ = /* @__PURE__ */ w({
1
+ import { defineComponent as x, computed as I, toRef as k, resolveComponent as C, createBlock as B, openBlock as D, unref as i, createSlots as K, withCtx as c, renderSlot as m } from "vue";
2
+ import { u as $, c as z } from "../composables/useNumericInput-DGw52-Ds.js";
3
+ import { u as H } from "../composables/useFzDefaults-BAOcJYaF.js";
4
+ import { _ as M } from "./inputs-FzMoneyField-Co9uqB9u.js";
5
+ const S = /* @__PURE__ */ x({
5
6
  __name: "FzNumberField",
6
7
  props: {
7
8
  modelValue: { default: 0 },
@@ -13,13 +14,13 @@ const $ = /* @__PURE__ */ w({
13
14
  decimalPlaces: { default: 0 },
14
15
  locale: { default: "pt-BR" },
15
16
  allowNegative: { type: Boolean, default: !0 },
16
- variant: { default: "underlined" },
17
+ variant: { default: void 0 },
17
18
  max: { default: 999e6 },
18
19
  min: { default: void 0 }
19
20
  },
20
21
  emits: ["update:modelValue"],
21
22
  setup(l, { emit: p }) {
22
- const t = l, r = p;
23
+ const t = l, r = p, f = H(), v = I(() => t.variant ?? f.variant ?? "underlined");
23
24
  function u(e) {
24
25
  const a = Math.abs(e).toLocaleString(t.locale, {
25
26
  minimumFractionDigits: t.decimalPlaces,
@@ -27,29 +28,29 @@ const $ = /* @__PURE__ */ w({
27
28
  });
28
29
  return e < 0 ? "-" + a : a;
29
30
  }
30
- function f(e) {
31
- const o = e.includes("-"), a = e.replace(/\D/g, "");
31
+ function b(e) {
32
+ const n = e.includes("-"), a = e.replace(/\D/g, "");
32
33
  if (!a) return 0;
33
- let n;
34
+ let o;
34
35
  if (t.decimalPlaces === 0)
35
- n = parseInt(a);
36
+ o = parseInt(a);
36
37
  else {
37
- const g = Math.pow(10, t.decimalPlaces);
38
- n = parseInt(a) / g;
38
+ const w = Math.pow(10, t.decimalPlaces);
39
+ o = parseInt(a) / w;
39
40
  }
40
- const d = Number(n.toFixed(t.decimalPlaces));
41
- return o && t.allowNegative ? -d : d;
41
+ const d = Number(o.toFixed(t.decimalPlaces));
42
+ return n && t.allowNegative ? -d : d;
42
43
  }
43
- const { formattedValue: s, moveCursorToEnd: v, handleInput: b, handleFocus: h, handleClick: F } = B(
44
- x(t, "modelValue"),
44
+ const { formattedValue: s, moveCursorToEnd: h, handleInput: F, handleFocus: N, handleClick: y } = $(
45
+ k(t, "modelValue"),
45
46
  (e) => r("update:modelValue", e),
46
47
  u,
47
- f
48
+ b
48
49
  );
49
- function N(e) {
50
- t.max !== void 0 && e > t.max || t.min !== void 0 && e < t.min || (r("update:modelValue", e), s.value = u(e), v());
50
+ function P(e) {
51
+ t.max !== void 0 && e > t.max || t.min !== void 0 && e < t.min || (r("update:modelValue", e), s.value = u(e), h());
51
52
  }
52
- function y(e, o) {
53
+ function V(e, n) {
53
54
  if (!e) return 0;
54
55
  let a;
55
56
  if (t.decimalPlaces === 0)
@@ -58,31 +59,31 @@ const $ = /* @__PURE__ */ w({
58
59
  const d = Math.pow(10, t.decimalPlaces);
59
60
  a = parseInt(e) / d;
60
61
  }
61
- const n = Number(a.toFixed(t.decimalPlaces));
62
- return o ? -n : n;
62
+ const o = Number(a.toFixed(t.decimalPlaces));
63
+ return n ? -o : o;
63
64
  }
64
- const P = D(
65
+ const g = z(
65
66
  s,
66
- N,
67
- y,
67
+ P,
68
+ V,
68
69
  () => ({ allowNegative: t.allowNegative })
69
70
  );
70
- return (e, o) => {
71
- const a = I("v-text-field");
72
- return k(), V(a, {
71
+ return (e, n) => {
72
+ const a = C("v-text-field");
73
+ return D(), B(a, {
73
74
  "model-value": i(s),
74
75
  label: l.label,
75
76
  rules: l.rules,
76
77
  disabled: l.disabled,
77
78
  hint: l.hint,
78
79
  "persistent-hint": l.persistentHint,
79
- variant: l.variant,
80
+ variant: v.value,
80
81
  inputmode: "decimal",
81
- "onUpdate:modelValue": i(b),
82
- onFocus: i(h),
83
- onClick: i(F),
84
- onKeydown: i(P)
85
- }, C({ _: 2 }, [
82
+ "onUpdate:modelValue": i(F),
83
+ onFocus: i(N),
84
+ onClick: i(y),
85
+ onKeydown: i(g)
86
+ }, K({ _: 2 }, [
86
87
  e.$slots.prepend ? {
87
88
  name: "prepend",
88
89
  fn: c(() => [
@@ -100,8 +101,8 @@ const $ = /* @__PURE__ */ w({
100
101
  ]), 1032, ["model-value", "label", "rules", "disabled", "hint", "persistent-hint", "variant", "onUpdate:modelValue", "onFocus", "onClick", "onKeydown"]);
101
102
  };
102
103
  }
103
- }), z = /* @__PURE__ */ K($, [["__scopeId", "data-v-1b1e7d4e"]]);
104
+ }), L = /* @__PURE__ */ M(S, [["__scopeId", "data-v-c53749c6"]]);
104
105
  export {
105
- z as F
106
+ L as F
106
107
  };
107
- //# sourceMappingURL=inputs-FzNumberField-BAPRZpBo.js.map
108
+ //# sourceMappingURL=inputs-FzNumberField-DG-uYIEA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputs-FzNumberField-DG-uYIEA.js","sources":["../../../src/components/inputs/FzNumberField.vue"],"sourcesContent":["<template>\n <v-text-field\n :model-value=\"formattedValue\"\n :label=\"label\"\n :rules=\"rules\"\n :disabled=\"disabled\"\n :hint=\"hint\"\n :persistent-hint=\"persistentHint\"\n :variant=\"resolvedVariant\"\n inputmode=\"decimal\"\n @update:model-value=\"handleInput\"\n @focus=\"handleFocus\"\n @click=\"handleClick\"\n @keydown=\"handleKeydown\"\n >\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\" />\n </template>\n <template v-if=\"$slots.append\" #append>\n <slot name=\"append\" />\n </template>\n </v-text-field>\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef, computed } from 'vue';\nimport { useNumericInput, createNumericKeydownHandler } from '@/composables/useNumericInput';\nimport { useFzDefaults } from '@/composables/useFzDefaults';\nimport type { TextFieldVariant } from '@/utils/types';\n\ntype ValidationRule = (value: string) => boolean | string;\n\ninterface Props {\n modelValue?: number | null\n label?: string\n rules?: ValidationRule[]\n disabled?: boolean\n hint?: string\n persistentHint?: boolean\n decimalPlaces?: number\n locale?: string\n allowNegative?: boolean\n variant?: TextFieldVariant\n max?: number\n min?: number\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n modelValue: 0,\n label: '',\n rules: () => [],\n disabled: false,\n hint: '',\n persistentHint: false,\n decimalPlaces: 0,\n locale: 'pt-BR',\n allowNegative: true,\n variant: undefined,\n max: 999000000,\n min: undefined,\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: number]\n}>();\n\nconst defaults = useFzDefaults();\n\nconst resolvedVariant = computed(() => props.variant ?? defaults.variant ?? 'underlined');\n\nfunction formatNumber(value: number): string {\n const absValue = Math.abs(value);\n\n const formatted = absValue.toLocaleString(props.locale, {\n minimumFractionDigits: props.decimalPlaces,\n maximumFractionDigits: props.decimalPlaces,\n });\n\n return value < 0 ? '-' + formatted : formatted;\n}\n\nfunction parseNumberInput(input: string): number {\n const isNegative = input.includes('-');\n const numbers = input.replace(/\\D/g, '');\n\n if (!numbers) return 0;\n\n let value: number;\n\n if (props.decimalPlaces === 0) {\n value = parseInt(numbers);\n } else {\n const divisor = Math.pow(10, props.decimalPlaces);\n value = parseInt(numbers) / divisor;\n }\n\n const rounded = Number(value.toFixed(props.decimalPlaces));\n\n return isNegative && props.allowNegative ? -rounded : rounded;\n}\n\nconst { formattedValue, moveCursorToEnd, handleInput, handleFocus, handleClick } = useNumericInput(\n toRef(props, 'modelValue'),\n (val: number) => emit('update:modelValue', val),\n formatNumber,\n parseNumberInput,\n);\n\nfunction updateValue(newValue: number) {\n if (props.max !== undefined && newValue > props.max) return;\n\n if (props.min !== undefined && newValue < props.min) return;\n\n emit('update:modelValue', newValue);\n formattedValue.value = formatNumber(newValue);\n moveCursorToEnd();\n}\n\nfunction computeFromDigits(digits: string, isNegative: boolean): number {\n if (!digits) return 0;\n\n let value: number;\n\n if (props.decimalPlaces === 0) {\n value = parseInt(digits);\n } else {\n const divisor = Math.pow(10, props.decimalPlaces);\n value = parseInt(digits) / divisor;\n }\n\n const result = Number(value.toFixed(props.decimalPlaces));\n\n return isNegative ? -result : result;\n}\n\nconst handleKeydown = createNumericKeydownHandler(\n formattedValue,\n updateValue,\n computeFromDigits,\n () => ({ allowNegative: props.allowNegative }),\n);\n</script>\n\n<style scoped>\n:deep(input) {\n text-align: right;\n}\n\n:deep(input[type='number']::-webkit-inner-spin-button),\n:deep(input[type='number']::-webkit-outer-spin-button) {\n -webkit-appearance: none;\n margin: 0;\n}\n\n:deep(input[type='number']) {\n -moz-appearance: textfield;\n appearance: textfield;\n}\n</style>\n"],"names":["props","__props","emit","__emit","defaults","useFzDefaults","resolvedVariant","computed","formatNumber","value","formatted","parseNumberInput","input","isNegative","numbers","divisor","rounded","formattedValue","moveCursorToEnd","handleInput","handleFocus","handleClick","useNumericInput","toRef","val","updateValue","newValue","computeFromDigits","digits","result","handleKeydown","createNumericKeydownHandler","_createBlock","_component_v_text_field","_unref","$slots","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA+CA,UAAMA,IAAQC,GAeRC,IAAOC,GAIPC,IAAWC,EAAA,GAEXC,IAAkBC,EAAS,MAAMP,EAAM,WAAWI,EAAS,WAAW,YAAY;AAExF,aAASI,EAAaC,GAAuB;AAG3C,YAAMC,IAFW,KAAK,IAAID,CAAK,EAEJ,eAAeT,EAAM,QAAQ;AAAA,QACtD,uBAAuBA,EAAM;AAAA,QAC7B,uBAAuBA,EAAM;AAAA,MAAA,CAC9B;AAED,aAAOS,IAAQ,IAAI,MAAMC,IAAYA;AAAA,IACvC;AAEA,aAASC,EAAiBC,GAAuB;AAC/C,YAAMC,IAAaD,EAAM,SAAS,GAAG,GAC/BE,IAAUF,EAAM,QAAQ,OAAO,EAAE;AAEvC,UAAI,CAACE,EAAS,QAAO;AAErB,UAAIL;AAEJ,UAAIT,EAAM,kBAAkB;AAC1B,QAAAS,IAAQ,SAASK,CAAO;AAAA,WACnB;AACL,cAAMC,IAAU,KAAK,IAAI,IAAIf,EAAM,aAAa;AAChD,QAAAS,IAAQ,SAASK,CAAO,IAAIC;AAAA,MAC9B;AAEA,YAAMC,IAAU,OAAOP,EAAM,QAAQT,EAAM,aAAa,CAAC;AAEzD,aAAOa,KAAcb,EAAM,gBAAgB,CAACgB,IAAUA;AAAA,IACxD;AAEA,UAAM,EAAE,gBAAAC,GAAgB,iBAAAC,GAAiB,aAAAC,GAAa,aAAAC,GAAa,aAAAC,MAAgBC;AAAA,MACjFC,EAAMvB,GAAO,YAAY;AAAA,MACzB,CAACwB,MAAgBtB,EAAK,qBAAqBsB,CAAG;AAAA,MAC9ChB;AAAA,MACAG;AAAA,IAAA;AAGF,aAASc,EAAYC,GAAkB;AACrC,MAAI1B,EAAM,QAAQ,UAAa0B,IAAW1B,EAAM,OAE5CA,EAAM,QAAQ,UAAa0B,IAAW1B,EAAM,QAEhDE,EAAK,qBAAqBwB,CAAQ,GAClCT,EAAe,QAAQT,EAAakB,CAAQ,GAC5CR,EAAA;AAAA,IACF;AAEA,aAASS,EAAkBC,GAAgBf,GAA6B;AACtE,UAAI,CAACe,EAAQ,QAAO;AAEpB,UAAInB;AAEJ,UAAIT,EAAM,kBAAkB;AAC1B,QAAAS,IAAQ,SAASmB,CAAM;AAAA,WAClB;AACL,cAAMb,IAAU,KAAK,IAAI,IAAIf,EAAM,aAAa;AAChD,QAAAS,IAAQ,SAASmB,CAAM,IAAIb;AAAA,MAC7B;AAEA,YAAMc,IAAS,OAAOpB,EAAM,QAAQT,EAAM,aAAa,CAAC;AAExD,aAAOa,IAAa,CAACgB,IAASA;AAAA,IAChC;AAEA,UAAMC,IAAgBC;AAAA,MACpBd;AAAA,MACAQ;AAAA,MACAE;AAAA,MACA,OAAO,EAAE,eAAe3B,EAAM,cAAA;AAAA,IAAc;;;kBA1I5CgC,EAoBeC,GAAA;AAAA,QAnBZ,eAAaC,EAAAjB,CAAA;AAAA,QACb,OAAOhB,EAAA;AAAA,QACP,OAAOA,EAAA;AAAA,QACP,UAAUA,EAAA;AAAA,QACV,MAAMA,EAAA;AAAA,QACN,mBAAiBA,EAAA;AAAA,QACb,SAASK,EAAA;AAAA,QACd,WAAU;AAAA,QACT,uBAAoB4B,EAAAf,CAAA;AAAA,QACpB,SAAOe,EAAAd,CAAA;AAAA,QACP,SAAOc,EAAAb,CAAA;AAAA,QACP,WAASa,EAAAJ,CAAA;AAAA,MAAA;QAEMK,EAAAA,OAAO;gBAAU;AAAA,gBAC/B,MAAuB;AAAA,YAAvBC,EAAuBC,EAAA,QAAA,WAAA,CAAA,GAAA,QAAA,EAAA;AAAA,UAAA;;;QAETF,EAAAA,OAAO;gBAAS;AAAA,gBAC9B,MAAsB;AAAA,YAAtBC,EAAsBC,EAAA,QAAA,UAAA,CAAA,GAAA,QAAA,EAAA;AAAA,UAAA;;;;;;;"}
@@ -0,0 +1,273 @@
1
+ import { defineComponent as P, computed as w, resolveComponent as N, withDirectives as O, createBlock as W, openBlock as $, createSlots as j, withCtx as M, createVNode as D, createTextVNode as L, toDisplayString as z, renderSlot as C, unref as q } from "vue";
2
+ import { Mask as B } from "maska";
3
+ import { u as H } from "../composables/useFzDefaults-BAOcJYaF.js";
4
+ var J = Object.defineProperty, U = (a, e, t) => e in a ? J(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[e] = t, y = (a, e, t) => U(a, typeof e != "symbol" ? e + "" : e, t);
5
+ const V = {
6
+ "#": { pattern: /[0-9]/ },
7
+ "@": { pattern: /[a-zA-Z]/ },
8
+ "*": { pattern: /[a-zA-Z0-9]/ }
9
+ }, x = (a, e, t) => a.replaceAll(e, "").replace(t, ".").replace("..", ".").replace(/[^.\d]/g, ""), I = (a, e, t) => {
10
+ var s;
11
+ return new Intl.NumberFormat(((s = t.number) == null ? void 0 : s.locale) ?? "en", {
12
+ minimumFractionDigits: a,
13
+ maximumFractionDigits: e,
14
+ roundingMode: "trunc"
15
+ });
16
+ }, Z = (a, e = !0, t) => {
17
+ var s, n, r, l;
18
+ const u = ((s = t.number) == null ? void 0 : s.unsigned) !== !0 && a.startsWith("-") ? "-" : "", d = ((n = t.number) == null ? void 0 : n.fraction) ?? 0;
19
+ let o = I(0, d, t);
20
+ const p = o.formatToParts(1000.12), h = ((r = p.find((i) => i.type === "group")) == null ? void 0 : r.value) ?? " ", k = ((l = p.find((i) => i.type === "decimal")) == null ? void 0 : l.value) ?? ".", c = x(a, h, k);
21
+ if (Number.isNaN(parseFloat(c))) return u;
22
+ const v = c.split(".");
23
+ if (v[1] != null && v[1].length >= 1) {
24
+ const i = v[1].length <= d ? v[1].length : d;
25
+ o = I(i, d, t);
26
+ }
27
+ let f = o.format(parseFloat(c));
28
+ return e ? d > 0 && c.endsWith(".") && !c.slice(0, -1).includes(".") && (f += k) : f = x(f, h, k), u + f;
29
+ }, T = (a) => JSON.parse(a.replaceAll("'", '"')), _ = (a, e = {}) => {
30
+ const t = { ...e };
31
+ a.dataset.maska != null && a.dataset.maska !== "" && (t.mask = G(a.dataset.maska)), a.dataset.maskaEager != null && (t.eager = E(a.dataset.maskaEager)), a.dataset.maskaReversed != null && (t.reversed = E(a.dataset.maskaReversed)), a.dataset.maskaTokensReplace != null && (t.tokensReplace = E(a.dataset.maskaTokensReplace)), a.dataset.maskaTokens != null && (t.tokens = K(a.dataset.maskaTokens));
32
+ const s = {};
33
+ return a.dataset.maskaNumberLocale != null && (s.locale = a.dataset.maskaNumberLocale), a.dataset.maskaNumberFraction != null && (s.fraction = parseInt(a.dataset.maskaNumberFraction)), a.dataset.maskaNumberUnsigned != null && (s.unsigned = E(a.dataset.maskaNumberUnsigned)), (a.dataset.maskaNumber != null || Object.values(s).length > 0) && (t.number = s), t;
34
+ }, E = (a) => a !== "" ? !!JSON.parse(a) : !0, G = (a) => a.startsWith("[") && a.endsWith("]") ? T(a) : a, K = (a) => {
35
+ if (a.startsWith("{") && a.endsWith("}"))
36
+ return T(a);
37
+ const e = {};
38
+ return a.split("|").forEach((t) => {
39
+ const s = t.split(":");
40
+ e[s[0]] = {
41
+ pattern: F() ? new RegExp(s[1], "u") : new RegExp(s[1]),
42
+ optional: s[2] === "optional",
43
+ multiple: s[2] === "multiple",
44
+ repeated: s[2] === "repeated"
45
+ };
46
+ }), e;
47
+ }, F = () => {
48
+ try {
49
+ return new RegExp("\\p{L}", "u"), !0;
50
+ } catch {
51
+ return !1;
52
+ }
53
+ };
54
+ class Q {
55
+ constructor(e = {}) {
56
+ y(this, "opts", {}), y(this, "memo", /* @__PURE__ */ new Map());
57
+ const t = { ...e };
58
+ if (t.tokens != null) {
59
+ t.tokens = t.tokensReplace ? { ...t.tokens } : { ...V, ...t.tokens };
60
+ for (const s of Object.values(t.tokens))
61
+ typeof s.pattern == "string" && (s.pattern = F() ? new RegExp(s.pattern, "u") : new RegExp(s.pattern));
62
+ } else
63
+ t.tokens = V;
64
+ Array.isArray(t.mask) && (t.mask.length > 1 ? t.mask = [...t.mask].sort((s, n) => s.length - n.length) : t.mask = t.mask[0] ?? ""), t.mask === "" && (t.mask = null), this.opts = t;
65
+ }
66
+ masked(e) {
67
+ return this.process(String(e), this.findMask(String(e)));
68
+ }
69
+ unmasked(e) {
70
+ return this.process(String(e), this.findMask(String(e)), !1);
71
+ }
72
+ isEager() {
73
+ return this.opts.eager === !0;
74
+ }
75
+ isReversed() {
76
+ return this.opts.reversed === !0;
77
+ }
78
+ completed(e) {
79
+ const t = this.findMask(String(e));
80
+ if (this.opts.mask == null || t == null) return !1;
81
+ const s = this.process(String(e), t).length;
82
+ return typeof this.opts.mask == "string" ? s >= this.opts.mask.length : s >= t.length;
83
+ }
84
+ findMask(e) {
85
+ const t = this.opts.mask;
86
+ if (t == null)
87
+ return null;
88
+ if (typeof t == "string")
89
+ return t;
90
+ if (typeof t == "function")
91
+ return t(e);
92
+ const s = this.process(e, t.slice(-1).pop() ?? "", !1);
93
+ return t.find((n) => this.process(e, n, !1).length >= s.length) ?? "";
94
+ }
95
+ escapeMask(e) {
96
+ const t = [], s = [];
97
+ return e.split("").forEach((n, r) => {
98
+ n === "!" && e[r - 1] !== "!" ? s.push(r - s.length) : t.push(n);
99
+ }), { mask: t.join(""), escaped: s };
100
+ }
101
+ process(e, t, s = !0) {
102
+ if (this.opts.number != null) return Z(e, s, this.opts);
103
+ if (t == null) return e;
104
+ const n = `v=${e},mr=${t},m=${s ? 1 : 0}`;
105
+ if (this.memo.has(n)) return this.memo.get(n);
106
+ const { mask: r, escaped: l } = this.escapeMask(t), u = [], d = this.opts.tokens != null ? this.opts.tokens : {}, o = this.isReversed() ? -1 : 1, p = this.isReversed() ? "unshift" : "push", h = this.isReversed() ? 0 : r.length - 1, k = this.isReversed() ? () => i > -1 && m > -1 : () => i < r.length && m < e.length, c = (b) => !this.isReversed() && b <= h || this.isReversed() && b >= h;
107
+ let v, f = -1, i = this.isReversed() ? r.length - 1 : 0, m = this.isReversed() ? e.length - 1 : 0, R = !1;
108
+ for (; k(); ) {
109
+ const b = r.charAt(i), g = d[b], A = g?.transform != null ? g.transform(e.charAt(m)) : e.charAt(m);
110
+ if (!l.includes(i) && g != null ? (A.match(g.pattern) != null ? (u[p](A), g.repeated ? (f === -1 ? f = i : i === h && i !== f && (i = f - o), h === f && (i -= o)) : g.multiple && (R = !0, i -= o), i += o) : g.multiple ? R && (i += o, m -= o, R = !1) : A === v ? v = void 0 : g.optional && (i += o, m -= o), m += o) : (s && !this.isEager() && u[p](b), A === b && !this.isEager() ? m += o : v = b, this.isEager() || (i += o)), this.isEager())
111
+ for (; c(i) && (d[r.charAt(i)] == null || l.includes(i)); ) {
112
+ if (s) {
113
+ if (u[p](r.charAt(i)), e.charAt(m) === r.charAt(i)) {
114
+ i += o, m += o;
115
+ continue;
116
+ }
117
+ } else r.charAt(i) === e.charAt(m) && (m += o);
118
+ i += o;
119
+ }
120
+ }
121
+ return this.memo.set(n, u.join("")), this.memo.get(n);
122
+ }
123
+ }
124
+ class X {
125
+ constructor(e, t = {}) {
126
+ y(this, "items", /* @__PURE__ */ new Map()), y(this, "eventAbortController"), y(this, "onInput", (s) => {
127
+ if (s instanceof CustomEvent && s.type === "input" && !s.isTrusted && !s.bubbles)
128
+ return;
129
+ const n = s.target, r = this.items.get(n);
130
+ if (r === void 0) return;
131
+ const l = "inputType" in s && s.inputType.startsWith("delete"), u = r.isEager(), d = l && u && r.unmasked(n.value) === "" ? "" : n.value;
132
+ this.fixCursor(n, l, () => this.setValue(n, d));
133
+ }), this.options = t, this.eventAbortController = new AbortController(), this.init(this.getInputs(e));
134
+ }
135
+ update(e = {}) {
136
+ this.options = { ...e }, this.init(Array.from(this.items.keys()));
137
+ }
138
+ updateValue(e) {
139
+ var t;
140
+ e.value !== "" && e.value !== ((t = this.processInput(e)) == null ? void 0 : t.masked) && this.setValue(e, e.value);
141
+ }
142
+ destroy() {
143
+ this.eventAbortController.abort(), this.items.clear();
144
+ }
145
+ init(e) {
146
+ const t = this.getOptions(this.options);
147
+ for (const s of e) {
148
+ if (!this.items.has(s)) {
149
+ const { signal: r } = this.eventAbortController;
150
+ s.addEventListener("input", this.onInput, { capture: !0, signal: r });
151
+ }
152
+ const n = new Q(_(s, t));
153
+ this.items.set(s, n), queueMicrotask(() => this.updateValue(s)), s.selectionStart === null && n.isEager() && console.warn("Maska: input of `%s` type is not supported", s.type);
154
+ }
155
+ }
156
+ getInputs(e) {
157
+ return typeof e == "string" ? Array.from(document.querySelectorAll(e)) : "length" in e ? Array.from(e) : [e];
158
+ }
159
+ getOptions(e) {
160
+ const { onMaska: t, preProcess: s, postProcess: n, ...r } = e;
161
+ return r;
162
+ }
163
+ fixCursor(e, t, s) {
164
+ var n, r;
165
+ const l = e.selectionStart, u = e.value;
166
+ if (s(), l === null || l === u.length && !t) return;
167
+ const d = e.value, o = u.slice(0, l), p = d.slice(0, l), h = (n = this.processInput(e, o)) == null ? void 0 : n.unmasked, k = (r = this.processInput(e, p)) == null ? void 0 : r.unmasked;
168
+ if (h === void 0 || k === void 0) return;
169
+ let c = l;
170
+ o !== p && (c += t ? d.length - u.length : h.length - k.length), e.setSelectionRange(c, c);
171
+ }
172
+ setValue(e, t) {
173
+ const s = this.processInput(e, t);
174
+ s !== void 0 && (e.value = s.masked, this.options.onMaska != null && (Array.isArray(this.options.onMaska) ? this.options.onMaska.forEach((n) => n(s)) : this.options.onMaska(s)), e.dispatchEvent(new CustomEvent("maska", { detail: s })), e.dispatchEvent(new CustomEvent("input", { detail: s.masked })));
175
+ }
176
+ processInput(e, t) {
177
+ const s = this.items.get(e);
178
+ if (s === void 0) return;
179
+ let n = t ?? e.value;
180
+ this.options.preProcess != null && (n = this.options.preProcess(n));
181
+ let r = s.masked(n);
182
+ return this.options.postProcess != null && (r = this.options.postProcess(r)), {
183
+ masked: r,
184
+ unmasked: s.unmasked(n),
185
+ completed: s.completed(n)
186
+ };
187
+ }
188
+ }
189
+ const S = /* @__PURE__ */ new WeakMap(), Y = (a, e) => {
190
+ if (a.arg == null || a.instance == null) return;
191
+ const t = "setup" in a.instance.$.type;
192
+ a.arg in a.instance ? a.instance[a.arg] = e : t && console.warn("Maska: please expose `%s` using defineExpose", a.arg);
193
+ }, ee = (a, e) => {
194
+ var t;
195
+ const s = a instanceof HTMLInputElement ? a : a.querySelector("input");
196
+ if (s == null || s?.type === "file") return;
197
+ let n = {};
198
+ if (e.value != null && (n = typeof e.value == "string" ? { mask: e.value } : { ...e.value }), e.arg != null) {
199
+ const r = (l) => {
200
+ const u = e.modifiers.unmasked ? l.unmasked : e.modifiers.completed ? l.completed : l.masked;
201
+ Y(e, u);
202
+ };
203
+ n.onMaska = n.onMaska == null ? r : Array.isArray(n.onMaska) ? [...n.onMaska, r] : [n.onMaska, r];
204
+ }
205
+ S.has(s) ? (t = S.get(s)) == null || t.update(n) : S.set(s, new X(s, n));
206
+ }, ne = /* @__PURE__ */ P({
207
+ __name: "FzPhoneField",
208
+ props: {
209
+ modelValue: { default: "" },
210
+ label: { default: "Telefone" },
211
+ rules: { default: () => [] },
212
+ disabled: { type: Boolean },
213
+ hint: { default: "" },
214
+ icon: { default: "mdi-phone-outline" },
215
+ variant: { default: void 0 }
216
+ },
217
+ emits: ["update:modelValue"],
218
+ setup(a, { emit: e }) {
219
+ const t = a, s = e, n = new B({ mask: ["(##) ####-####", "(##) #####-####"], eager: !0 }), r = w(() => n.masked(t.modelValue ?? "")), l = H(), u = w(() => !!t.hint), d = w(() => t.variant ?? l.variant ?? "underlined"), o = {
220
+ mask: ["(##) ####-####", "(##) #####-####"],
221
+ eager: !0,
222
+ onMaska: (p) => {
223
+ s("update:modelValue", p.unmasked);
224
+ }
225
+ };
226
+ return (p, h) => {
227
+ const k = N("v-icon"), c = N("v-text-field");
228
+ return O(($(), W(c, {
229
+ "model-value": r.value,
230
+ label: a.label,
231
+ rules: a.rules,
232
+ disabled: a.disabled,
233
+ hint: a.hint,
234
+ "persistent-hint": u.value,
235
+ variant: d.value,
236
+ inputmode: "tel",
237
+ autocomplete: "tel"
238
+ }, j({
239
+ "prepend-inner": M(() => [
240
+ D(k, null, {
241
+ default: M(() => [
242
+ L(z(a.icon), 1)
243
+ ]),
244
+ _: 1
245
+ })
246
+ ]),
247
+ _: 2
248
+ }, [
249
+ p.$slots.prepend ? {
250
+ name: "prepend",
251
+ fn: M(() => [
252
+ C(p.$slots, "prepend")
253
+ ]),
254
+ key: "0"
255
+ } : void 0,
256
+ p.$slots.append ? {
257
+ name: "append",
258
+ fn: M(() => [
259
+ C(p.$slots, "append")
260
+ ]),
261
+ key: "1"
262
+ } : void 0
263
+ ]), 1032, ["model-value", "label", "rules", "disabled", "hint", "persistent-hint", "variant"])), [
264
+ [q(ee), o]
265
+ ]);
266
+ };
267
+ }
268
+ });
269
+ export {
270
+ ne as _,
271
+ ee as k
272
+ };
273
+ //# sourceMappingURL=inputs-FzPhoneField-B8Mk05Hd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputs-FzPhoneField-B8Mk05Hd.js","sources":["../../../node_modules/.pnpm/maska@3.2.0/node_modules/maska/dist/maska.mjs","../../../node_modules/.pnpm/maska@3.2.0/node_modules/maska/dist/vue.mjs","../../../src/components/inputs/FzPhoneField.vue"],"sourcesContent":["var S = Object.defineProperty;\nvar x = (n, t, e) => t in n ? S(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;\nvar A = (n, t, e) => x(n, typeof t != \"symbol\" ? t + \"\" : t, e);\nconst R = {\n \"#\": { pattern: /[0-9]/ },\n \"@\": { pattern: /[a-zA-Z]/ },\n \"*\": { pattern: /[a-zA-Z0-9]/ }\n}, N = (n, t, e) => n.replaceAll(t, \"\").replace(e, \".\").replace(\"..\", \".\").replace(/[^.\\d]/g, \"\"), w = (n, t, e) => {\n var s;\n return new Intl.NumberFormat(((s = e.number) == null ? void 0 : s.locale) ?? \"en\", {\n minimumFractionDigits: n,\n maximumFractionDigits: t,\n roundingMode: \"trunc\"\n });\n}, P = (n, t = !0, e) => {\n var k, g, b, d;\n const s = ((k = e.number) == null ? void 0 : k.unsigned) !== !0 && n.startsWith(\"-\") ? \"-\" : \"\", r = ((g = e.number) == null ? void 0 : g.fraction) ?? 0;\n let a = w(0, r, e);\n const u = a.formatToParts(1000.12), p = ((b = u.find((o) => o.type === \"group\")) == null ? void 0 : b.value) ?? \" \", f = ((d = u.find((o) => o.type === \"decimal\")) == null ? void 0 : d.value) ?? \".\", i = N(n, p, f);\n if (Number.isNaN(parseFloat(i))) return s;\n const h = i.split(\".\");\n if (h[1] != null && h[1].length >= 1) {\n const o = h[1].length <= r ? h[1].length : r;\n a = w(o, r, e);\n }\n let l = a.format(parseFloat(i));\n return t ? r > 0 && i.endsWith(\".\") && !i.slice(0, -1).includes(\".\") && (l += f) : l = N(l, p, f), s + l;\n}, C = (n) => JSON.parse(n.replaceAll(\"'\", '\"')), F = (n, t = {}) => {\n const e = { ...t };\n n.dataset.maska != null && n.dataset.maska !== \"\" && (e.mask = T(n.dataset.maska)), n.dataset.maskaEager != null && (e.eager = E(n.dataset.maskaEager)), n.dataset.maskaReversed != null && (e.reversed = E(n.dataset.maskaReversed)), n.dataset.maskaTokensReplace != null && (e.tokensReplace = E(n.dataset.maskaTokensReplace)), n.dataset.maskaTokens != null && (e.tokens = W(n.dataset.maskaTokens));\n const s = {};\n return n.dataset.maskaNumberLocale != null && (s.locale = n.dataset.maskaNumberLocale), n.dataset.maskaNumberFraction != null && (s.fraction = parseInt(n.dataset.maskaNumberFraction)), n.dataset.maskaNumberUnsigned != null && (s.unsigned = E(n.dataset.maskaNumberUnsigned)), (n.dataset.maskaNumber != null || Object.values(s).length > 0) && (e.number = s), e;\n}, E = (n) => n !== \"\" ? !!JSON.parse(n) : !0, T = (n) => n.startsWith(\"[\") && n.endsWith(\"]\") ? C(n) : n, W = (n) => {\n if (n.startsWith(\"{\") && n.endsWith(\"}\"))\n return C(n);\n const t = {};\n return n.split(\"|\").forEach((e) => {\n const s = e.split(\":\");\n t[s[0]] = {\n pattern: I() ? new RegExp(s[1], \"u\") : new RegExp(s[1]),\n optional: s[2] === \"optional\",\n multiple: s[2] === \"multiple\",\n repeated: s[2] === \"repeated\"\n };\n }), t;\n}, I = () => {\n try {\n return new RegExp(\"\\\\p{L}\", \"u\"), !0;\n } catch {\n return !1;\n }\n};\nclass O {\n constructor(t = {}) {\n A(this, \"opts\", {});\n A(this, \"memo\", /* @__PURE__ */ new Map());\n const e = { ...t };\n if (e.tokens != null) {\n e.tokens = e.tokensReplace ? { ...e.tokens } : { ...R, ...e.tokens };\n for (const s of Object.values(e.tokens))\n typeof s.pattern == \"string\" && (s.pattern = I() ? new RegExp(s.pattern, \"u\") : new RegExp(s.pattern));\n } else\n e.tokens = R;\n Array.isArray(e.mask) && (e.mask.length > 1 ? e.mask = [...e.mask].sort((s, r) => s.length - r.length) : e.mask = e.mask[0] ?? \"\"), e.mask === \"\" && (e.mask = null), this.opts = e;\n }\n masked(t) {\n return this.process(String(t), this.findMask(String(t)));\n }\n unmasked(t) {\n return this.process(String(t), this.findMask(String(t)), !1);\n }\n isEager() {\n return this.opts.eager === !0;\n }\n isReversed() {\n return this.opts.reversed === !0;\n }\n completed(t) {\n const e = this.findMask(String(t));\n if (this.opts.mask == null || e == null) return !1;\n const s = this.process(String(t), e).length;\n return typeof this.opts.mask == \"string\" ? s >= this.opts.mask.length : s >= e.length;\n }\n findMask(t) {\n const e = this.opts.mask;\n if (e == null)\n return null;\n if (typeof e == \"string\")\n return e;\n if (typeof e == \"function\")\n return e(t);\n const s = this.process(t, e.slice(-1).pop() ?? \"\", !1);\n return e.find((r) => this.process(t, r, !1).length >= s.length) ?? \"\";\n }\n escapeMask(t) {\n const e = [], s = [];\n return t.split(\"\").forEach((r, a) => {\n r === \"!\" && t[a - 1] !== \"!\" ? s.push(a - s.length) : e.push(r);\n }), { mask: e.join(\"\"), escaped: s };\n }\n process(t, e, s = !0) {\n if (this.opts.number != null) return P(t, s, this.opts);\n if (e == null) return t;\n const r = `v=${t},mr=${e},m=${s ? 1 : 0}`;\n if (this.memo.has(r)) return this.memo.get(r);\n const { mask: a, escaped: u } = this.escapeMask(e), p = [], f = this.opts.tokens != null ? this.opts.tokens : {}, i = this.isReversed() ? -1 : 1, h = this.isReversed() ? \"unshift\" : \"push\", l = this.isReversed() ? 0 : a.length - 1, k = this.isReversed() ? () => o > -1 && c > -1 : () => o < a.length && c < t.length, g = (v) => !this.isReversed() && v <= l || this.isReversed() && v >= l;\n let b, d = -1, o = this.isReversed() ? a.length - 1 : 0, c = this.isReversed() ? t.length - 1 : 0, M = !1;\n for (; k(); ) {\n const v = a.charAt(o), m = f[v], y = (m == null ? void 0 : m.transform) != null ? m.transform(t.charAt(c)) : t.charAt(c);\n if (!u.includes(o) && m != null ? (y.match(m.pattern) != null ? (p[h](y), m.repeated ? (d === -1 ? d = o : o === l && o !== d && (o = d - i), l === d && (o -= i)) : m.multiple && (M = !0, o -= i), o += i) : m.multiple ? M && (o += i, c -= i, M = !1) : y === b ? b = void 0 : m.optional && (o += i, c -= i), c += i) : (s && !this.isEager() && p[h](v), y === v && !this.isEager() ? c += i : b = v, this.isEager() || (o += i)), this.isEager())\n for (; g(o) && (f[a.charAt(o)] == null || u.includes(o)); ) {\n if (s) {\n if (p[h](a.charAt(o)), t.charAt(c) === a.charAt(o)) {\n o += i, c += i;\n continue;\n }\n } else a.charAt(o) === t.charAt(c) && (c += i);\n o += i;\n }\n }\n return this.memo.set(r, p.join(\"\")), this.memo.get(r);\n }\n}\nclass V {\n constructor(t, e = {}) {\n A(this, \"items\", /* @__PURE__ */ new Map());\n A(this, \"eventAbortController\");\n A(this, \"onInput\", (t) => {\n if (t instanceof CustomEvent && t.type === \"input\" && !t.isTrusted && !t.bubbles)\n return;\n const e = t.target, s = this.items.get(e);\n if (s === void 0) return;\n const r = \"inputType\" in t && t.inputType.startsWith(\"delete\"), a = s.isEager(), u = r && a && s.unmasked(e.value) === \"\" ? \"\" : e.value;\n this.fixCursor(e, r, () => this.setValue(e, u));\n });\n this.options = e, this.eventAbortController = new AbortController(), this.init(this.getInputs(t));\n }\n update(t = {}) {\n this.options = { ...t }, this.init(Array.from(this.items.keys()));\n }\n updateValue(t) {\n var e;\n t.value !== \"\" && t.value !== ((e = this.processInput(t)) == null ? void 0 : e.masked) && this.setValue(t, t.value);\n }\n destroy() {\n this.eventAbortController.abort(), this.items.clear();\n }\n init(t) {\n const e = this.getOptions(this.options);\n for (const s of t) {\n if (!this.items.has(s)) {\n const { signal: a } = this.eventAbortController;\n s.addEventListener(\"input\", this.onInput, { capture: !0, signal: a });\n }\n const r = new O(F(s, e));\n this.items.set(s, r), queueMicrotask(() => this.updateValue(s)), s.selectionStart === null && r.isEager() && console.warn(\"Maska: input of `%s` type is not supported\", s.type);\n }\n }\n getInputs(t) {\n return typeof t == \"string\" ? Array.from(document.querySelectorAll(t)) : \"length\" in t ? Array.from(t) : [t];\n }\n getOptions(t) {\n const { onMaska: e, preProcess: s, postProcess: r, ...a } = t;\n return a;\n }\n fixCursor(t, e, s) {\n var k, g;\n const r = t.selectionStart, a = t.value;\n if (s(), r === null || r === a.length && !e) return;\n const u = t.value, p = a.slice(0, r), f = u.slice(0, r), i = (k = this.processInput(t, p)) == null ? void 0 : k.unmasked, h = (g = this.processInput(t, f)) == null ? void 0 : g.unmasked;\n if (i === void 0 || h === void 0) return;\n let l = r;\n p !== f && (l += e ? u.length - a.length : i.length - h.length), t.setSelectionRange(l, l);\n }\n setValue(t, e) {\n const s = this.processInput(t, e);\n s !== void 0 && (t.value = s.masked, this.options.onMaska != null && (Array.isArray(this.options.onMaska) ? this.options.onMaska.forEach((r) => r(s)) : this.options.onMaska(s)), t.dispatchEvent(new CustomEvent(\"maska\", { detail: s })), t.dispatchEvent(new CustomEvent(\"input\", { detail: s.masked })));\n }\n processInput(t, e) {\n const s = this.items.get(t);\n if (s === void 0) return;\n let r = e ?? t.value;\n this.options.preProcess != null && (r = this.options.preProcess(r));\n let a = s.masked(r);\n return this.options.postProcess != null && (a = this.options.postProcess(a)), {\n masked: a,\n unmasked: s.unmasked(r),\n completed: s.completed(r)\n };\n }\n}\nexport {\n O as Mask,\n V as MaskInput,\n R as tokens\n};\n","import { MaskInput as n } from \"./maska.mjs\";\nconst l = /* @__PURE__ */ new WeakMap(), c = (e, s) => {\n if (e.arg == null || e.instance == null) return;\n const a = \"setup\" in e.instance.$.type;\n e.arg in e.instance ? e.instance[e.arg] = s : a && console.warn(\"Maska: please expose `%s` using defineExpose\", e.arg);\n}, k = (e, s) => {\n var u;\n const a = e instanceof HTMLInputElement ? e : e.querySelector(\"input\");\n if (a == null || (a == null ? void 0 : a.type) === \"file\") return;\n let t = {};\n if (s.value != null && (t = typeof s.value == \"string\" ? { mask: s.value } : { ...s.value }), s.arg != null) {\n const o = (r) => {\n const p = s.modifiers.unmasked ? r.unmasked : s.modifiers.completed ? r.completed : r.masked;\n c(s, p);\n };\n t.onMaska = t.onMaska == null ? o : Array.isArray(t.onMaska) ? [...t.onMaska, o] : [t.onMaska, o];\n }\n l.has(a) ? (u = l.get(a)) == null || u.update(t) : l.set(a, new n(a, t));\n};\nexport {\n k as vMaska\n};\n","<template>\n <v-text-field\n v-maska=\"maskOptions\"\n :model-value=\"displayValue\"\n :label=\"label\"\n :rules=\"rules\"\n :disabled=\"disabled\"\n :hint=\"hint\"\n :persistent-hint=\"hasHint\"\n :variant=\"resolvedVariant\"\n inputmode=\"tel\"\n autocomplete=\"tel\"\n >\n <template #prepend-inner>\n <v-icon>{{ icon }}</v-icon>\n </template>\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\" />\n </template>\n <template v-if=\"$slots.append\" #append>\n <slot name=\"append\" />\n </template>\n </v-text-field>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { vMaska } from 'maska/vue';\nimport { Mask } from 'maska';\nimport { useFzDefaults } from '@/composables/useFzDefaults';\nimport type { TextFieldVariant } from '@/utils/types';\n\ntype ValidationRule = (value: string) => boolean | string;\n\ntype MaskaDetail = { masked: string; unmasked: string; completed: boolean };\n\ninterface Props {\n modelValue?: string\n label?: string\n rules?: ValidationRule[]\n disabled?: boolean\n hint?: string\n icon?: string\n variant?: TextFieldVariant\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n modelValue: '',\n label: 'Telefone',\n rules: () => [],\n hint: '',\n icon: 'mdi-phone-outline',\n variant: undefined,\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n}>();\n\nconst mask = new Mask({ mask: ['(##) ####-####', '(##) #####-####'], eager: true });\n\nconst displayValue = computed(() => mask.masked(props.modelValue ?? ''));\n\nconst defaults = useFzDefaults();\n\nconst hasHint = computed(() => !!props.hint);\n\nconst resolvedVariant = computed(() => props.variant ?? defaults.variant ?? 'underlined');\n\nconst maskOptions = {\n mask: ['(##) ####-####', '(##) #####-####'],\n eager: true,\n onMaska: (detail: MaskaDetail) => {\n emit('update:modelValue', detail.unmasked);\n },\n};\n</script>\n"],"names":["S","x","n","t","e","A","R","N","w","P","k","g","b","d","s","r","a","u","p","o","f","i","h","l","C","F","T","W","I","O","c","v","M","m","y","V","props","__props","emit","__emit","mask","Mask","displayValue","computed","defaults","useFzDefaults","hasHint","resolvedVariant","maskOptions","detail","_createBlock","_component_v_text_field","_createVNode","_component_v_icon","$slots","_renderSlot","_ctx"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -0,0 +1,103 @@
1
+ import { defineComponent as C, ref as V, computed as u, onBeforeUnmount as w, resolveComponent as p, withDirectives as $, createBlock as B, openBlock as F, createSlots as S, withCtx as l, createVNode as j, createTextVNode as x, renderSlot as m, unref as A } from "vue";
2
+ import { k as D } from "./inputs-FzPhoneField-B8Mk05Hd.js";
3
+ import { Mask as M } from "maska";
4
+ import { u as N } from "../composables/useFzDefaults-BAOcJYaF.js";
5
+ const P = /* @__PURE__ */ C({
6
+ __name: "FzZipCodeField",
7
+ props: {
8
+ modelValue: { default: "" },
9
+ label: { default: "CEP" },
10
+ rules: { default: () => [] },
11
+ disabled: { type: Boolean, default: !1 },
12
+ hint: { default: "" },
13
+ variant: { default: void 0 }
14
+ },
15
+ emits: ["update:modelValue", "zip-code-found", "zip-code-not-found"],
16
+ setup(o, { emit: c }) {
17
+ const r = o, n = c, s = V(!1);
18
+ let t = null;
19
+ const f = new M({ mask: "#####-###", eager: !0 }), v = u(() => f.masked(r.modelValue ?? "")), h = N(), b = u(() => !!r.hint), k = u(() => r.variant ?? h.variant ?? "underlined");
20
+ function g(e) {
21
+ return {
22
+ zipCode: e.cep ?? "",
23
+ street: e.logradouro ?? "",
24
+ complement: e.complemento ?? "",
25
+ neighborhood: e.bairro ?? "",
26
+ city: e.localidade ?? "",
27
+ state: e.uf ?? "",
28
+ error: e.erro
29
+ };
30
+ }
31
+ async function y(e) {
32
+ t?.abort(), t = new AbortController(), s.value = !0;
33
+ try {
34
+ const d = await (await fetch(`https://viacep.com.br/ws/${e}/json/`, {
35
+ signal: t.signal
36
+ })).json(), a = g(d);
37
+ if (a.error) {
38
+ n("zip-code-not-found");
39
+ return;
40
+ }
41
+ n("zip-code-found", a);
42
+ } catch {
43
+ n("zip-code-not-found");
44
+ } finally {
45
+ s.value = !1;
46
+ }
47
+ }
48
+ const z = {
49
+ mask: "#####-###",
50
+ eager: !0,
51
+ onMaska: (e) => {
52
+ n("update:modelValue", e.unmasked), e.completed && y(e.unmasked);
53
+ }
54
+ };
55
+ return w(() => {
56
+ t?.abort();
57
+ }), (e, i) => {
58
+ const d = p("v-icon"), a = p("v-text-field");
59
+ return $((F(), B(a, {
60
+ "model-value": v.value,
61
+ label: o.label,
62
+ rules: o.rules,
63
+ disabled: o.disabled,
64
+ hint: o.hint,
65
+ "persistent-hint": b.value,
66
+ variant: k.value,
67
+ loading: s.value,
68
+ inputmode: "numeric"
69
+ }, S({
70
+ "prepend-inner": l(() => [
71
+ j(d, null, {
72
+ default: l(() => [...i[0] || (i[0] = [
73
+ x("mdi-map-marker-outline", -1)
74
+ ])]),
75
+ _: 1
76
+ })
77
+ ]),
78
+ _: 2
79
+ }, [
80
+ e.$slots.prepend ? {
81
+ name: "prepend",
82
+ fn: l(() => [
83
+ m(e.$slots, "prepend")
84
+ ]),
85
+ key: "0"
86
+ } : void 0,
87
+ e.$slots.append ? {
88
+ name: "append",
89
+ fn: l(() => [
90
+ m(e.$slots, "append")
91
+ ]),
92
+ key: "1"
93
+ } : void 0
94
+ ]), 1032, ["model-value", "label", "rules", "disabled", "hint", "persistent-hint", "variant", "loading"])), [
95
+ [A(D), z]
96
+ ]);
97
+ };
98
+ }
99
+ });
100
+ export {
101
+ P as _
102
+ };
103
+ //# sourceMappingURL=inputs-FzZipCodeField-B7fHUkXJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputs-FzZipCodeField-B7fHUkXJ.js","sources":["../../../src/components/inputs/FzZipCodeField.vue"],"sourcesContent":["<template>\n <v-text-field\n v-maska=\"maskOptions\"\n :model-value=\"displayValue\"\n :label=\"label\"\n :rules=\"rules\"\n :disabled=\"disabled\"\n :hint=\"hint\"\n :persistent-hint=\"hasHint\"\n :variant=\"resolvedVariant\"\n :loading=\"isSearching\"\n inputmode=\"numeric\"\n >\n <template #prepend-inner>\n <v-icon>mdi-map-marker-outline</v-icon>\n </template>\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\" />\n </template>\n <template v-if=\"$slots.append\" #append>\n <slot name=\"append\" />\n </template>\n </v-text-field>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onBeforeUnmount } from 'vue';\nimport { vMaska } from 'maska/vue';\nimport { Mask } from 'maska';\nimport { useFzDefaults } from '@/composables/useFzDefaults';\nimport type { TextFieldVariant } from '@/utils/types';\n\ntype ValidationRule = (value: string) => boolean | string;\n\nexport interface ZipCodeResponse {\n zipCode: string;\n street: string;\n complement: string;\n neighborhood: string;\n city: string;\n state: string;\n error?: boolean;\n}\n\ninterface ViaCepApiResponse {\n cep: string;\n logradouro: string;\n complemento: string;\n bairro: string;\n localidade: string;\n uf: string;\n erro?: boolean;\n}\n\ninterface Props {\n modelValue?: string\n label?: string\n rules?: ValidationRule[]\n disabled?: boolean\n hint?: string\n variant?: TextFieldVariant\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n modelValue: '',\n label: 'CEP',\n rules: () => [],\n disabled: false,\n hint: '',\n variant: undefined,\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n 'zip-code-found': [address: ZipCodeResponse]\n 'zip-code-not-found': []\n}>();\n\nconst isSearching = ref(false);\nlet abortController: AbortController | null = null;\n\nconst mask = new Mask({ mask: '#####-###', eager: true });\n\nconst displayValue = computed(() => mask.masked(props.modelValue ?? ''));\n\nconst defaults = useFzDefaults();\n\nconst hasHint = computed(() => !!props.hint);\n\nconst resolvedVariant = computed(() => props.variant ?? defaults.variant ?? 'underlined');\n\n\n\nfunction mapResponse(data: ViaCepApiResponse): ZipCodeResponse {\n return {\n zipCode: data.cep ?? '',\n street: data.logradouro ?? '',\n complement: data.complemento ?? '',\n neighborhood: data.bairro ?? '',\n city: data.localidade ?? '',\n state: data.uf ?? '',\n error: data.erro,\n };\n}\n\nasync function fetchAddress(zipCode: string) {\n abortController?.abort();\n abortController = new AbortController();\n\n isSearching.value = true;\n\n try {\n const res = await fetch(`https://viacep.com.br/ws/${zipCode}/json/`, {\n signal: abortController.signal,\n });\n\n const data = await res.json();\n const mapped = mapResponse(data);\n\n if (mapped.error) {\n emit('zip-code-not-found');\n\n return;\n }\n\n emit('zip-code-found', mapped);\n } catch {\n emit('zip-code-not-found');\n } finally {\n isSearching.value = false;\n }\n}\n\nconst maskOptions = {\n mask: '#####-###',\n eager: true,\n onMaska: (detail: { masked: string; unmasked: string; completed: boolean }) => {\n emit('update:modelValue', detail.unmasked);\n\n if (detail.completed) fetchAddress(detail.unmasked);\n },\n};\n\nonBeforeUnmount(() => {\n abortController?.abort();\n});\n</script>\n"],"names":["props","__props","emit","__emit","isSearching","ref","abortController","mask","Mask","displayValue","computed","defaults","useFzDefaults","hasHint","resolvedVariant","mapResponse","data","fetchAddress","zipCode","mapped","maskOptions","detail","onBeforeUnmount","_createBlock","_component_v_text_field","_createVNode","_component_v_icon","_cache","$slots","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;;;;;;AA+DA,UAAMA,IAAQC,GASRC,IAAOC,GAMPC,IAAcC,EAAI,EAAK;AAC7B,QAAIC,IAA0C;AAE9C,UAAMC,IAAO,IAAIC,EAAK,EAAE,MAAM,aAAa,OAAO,IAAM,GAElDC,IAAeC,EAAS,MAAMH,EAAK,OAAOP,EAAM,cAAc,EAAE,CAAC,GAEjEW,IAAWC,EAAA,GAEXC,IAAUH,EAAS,MAAM,CAAC,CAACV,EAAM,IAAI,GAErCc,IAAkBJ,EAAS,MAAMV,EAAM,WAAWW,EAAS,WAAW,YAAY;AAIxF,aAASI,EAAYC,GAA0C;AAC7D,aAAO;AAAA,QACL,SAASA,EAAK,OAAO;AAAA,QACrB,QAAQA,EAAK,cAAc;AAAA,QAC3B,YAAYA,EAAK,eAAe;AAAA,QAChC,cAAcA,EAAK,UAAU;AAAA,QAC7B,MAAMA,EAAK,cAAc;AAAA,QACzB,OAAOA,EAAK,MAAM;AAAA,QAClB,OAAOA,EAAK;AAAA,MAAA;AAAA,IAEhB;AAEA,mBAAeC,EAAaC,GAAiB;AAC3C,MAAAZ,GAAiB,MAAA,GACjBA,IAAkB,IAAI,gBAAA,GAEtBF,EAAY,QAAQ;AAEpB,UAAI;AAKF,cAAMY,IAAO,OAJD,MAAM,MAAM,4BAA4BE,CAAO,UAAU;AAAA,UACnE,QAAQZ,EAAgB;AAAA,QAAA,CACzB,GAEsB,KAAA,GACjBa,IAASJ,EAAYC,CAAI;AAE/B,YAAIG,EAAO,OAAO;AAChB,UAAAjB,EAAK,oBAAoB;AAEzB;AAAA,QACF;AAEA,QAAAA,EAAK,kBAAkBiB,CAAM;AAAA,MAC/B,QAAQ;AACN,QAAAjB,EAAK,oBAAoB;AAAA,MAC3B,UAAA;AACE,QAAAE,EAAY,QAAQ;AAAA,MACtB;AAAA,IACF;AAEA,UAAMgB,IAAc;AAAA,MAClB,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS,CAACC,MAAqE;AAC7E,QAAAnB,EAAK,qBAAqBmB,EAAO,QAAQ,GAErCA,EAAO,aAAWJ,EAAaI,EAAO,QAAQ;AAAA,MACpD;AAAA,IAAA;AAGF,WAAAC,EAAgB,MAAM;AACpB,MAAAhB,GAAiB,MAAA;AAAA,IACnB,CAAC;;qBAhJCiB,EAqBeC,GAAA;AAAA,QAnBZ,eAAaf,EAAA;AAAA,QACb,OAAOR,EAAA;AAAA,QACP,OAAOA,EAAA;AAAA,QACP,UAAUA,EAAA;AAAA,QACV,MAAMA,EAAA;AAAA,QACN,mBAAiBY,EAAA;AAAA,QACb,SAASC,EAAA;AAAA,QACb,SAASV,EAAA;AAAA,QACV,WAAU;AAAA,MAAA;QAEC,mBACT,MAAuC;AAAA,UAAvCqB,EAAuCC,GAAA,MAAA;AAAA,uBAA/B,MAAsB,CAAA,GAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,gBAAtB,0BAAsB,EAAA;AAAA,YAAA;;;;;;QAEhBC,EAAAA,OAAO;gBAAU;AAAA,gBAC/B,MAAuB;AAAA,YAAvBC,EAAuBC,EAAA,QAAA,SAAA;AAAA,UAAA;;;QAETF,EAAAA,OAAO;gBAAS;AAAA,gBAC9B,MAAsB;AAAA,YAAtBC,EAAsBC,EAAA,QAAA,QAAA;AAAA,UAAA;;;;eAlBfV,CAAW;AAAA,MAAA;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as u, ref as f, watch as _, onBeforeUnmount as g, resolveComponent as p, createBlock as v, openBlock as a, Transition as l, withCtx as i, createElementBlock as s, createCommentVNode as c, createVNode as d, createElementVNode as y, toDisplayString as h } from "vue";
2
- import { _ as x } from "./inputs-FzMoneyField-BxAg9Bd_.js";
2
+ import { _ as x } from "./inputs-FzMoneyField-Co9uqB9u.js";
3
3
  const w = {
4
4
  key: 0,
5
5
  class: "loading-overlay d-flex align-center justify-center"
@@ -55,4 +55,4 @@ const w = {
55
55
  export {
56
56
  F
57
57
  };
58
- //# sourceMappingURL=layout-FzLoadingOverlay-DbVh5Ncb.js.map
58
+ //# sourceMappingURL=layout-FzLoadingOverlay-CWKZxowb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout-FzLoadingOverlay-DbVh5Ncb.js","sources":["../../../src/components/layout/FzLoadingOverlay.vue"],"sourcesContent":["<template>\n <Transition name=\"fade\">\n <div v-if=\"isLoading\" class=\"loading-overlay d-flex align-center justify-center\">\n <Transition name=\"fade-delayed\">\n <div v-if=\"showContent\" class=\"d-flex flex-column align-center\">\n <v-progress-circular indeterminate color=\"primary\" :size=\"30\" :width=\"5\" />\n <div class=\"text-white text-body-1 font-weight-medium mt-3\">\n {{ message }}\n </div>\n </div>\n </Transition>\n </div>\n </Transition>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, onBeforeUnmount } from 'vue';\n\ninterface Props {\n isLoading?: boolean\n message?: string\n delay?: number\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n isLoading: false,\n message: 'Carregando...',\n delay: 300,\n});\n\nconst showContent = ref(false);\nlet contentTimeoutId: ReturnType<typeof setTimeout> | null = null;\n\nwatch(() => props.isLoading, (val) => {\n if (val) {\n contentTimeoutId = setTimeout(() => {\n showContent.value = true;\n }, props.delay);\n\n return;\n }\n\n if (contentTimeoutId) {\n clearTimeout(contentTimeoutId);\n contentTimeoutId = null;\n }\n\n showContent.value = false;\n});\n\nonBeforeUnmount(() => {\n if (contentTimeoutId) clearTimeout(contentTimeoutId);\n});\n</script>\n\n<style scoped>\n.loading-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.7);\n z-index: 9998;\n}\n\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.2s ease;\n}\n\n.fade-enter-from,\n.fade-leave-to {\n opacity: 0;\n}\n\n.fade-delayed-enter-active {\n transition: opacity 0.3s ease 0.1s;\n}\n\n.fade-delayed-leave-active {\n transition: opacity 0.2s ease;\n}\n\n.fade-delayed-enter-from,\n.fade-delayed-leave-to {\n opacity: 0;\n}\n</style>\n"],"names":["props","__props","showContent","ref","contentTimeoutId","watch","val","onBeforeUnmount","_createBlock","_Transition","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_hoisted_2","_component_v_progress_circular","_createElementVNode","_hoisted_3","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;AAwBA,UAAMA,IAAQC,GAMRC,IAAcC,EAAI,EAAK;AAC7B,QAAIC,IAAyD;AAE7D,WAAAC,EAAM,MAAML,EAAM,WAAW,CAACM,MAAQ;AACpC,UAAIA,GAAK;AACP,QAAAF,IAAmB,WAAW,MAAM;AAClC,UAAAF,EAAY,QAAQ;AAAA,QACtB,GAAGF,EAAM,KAAK;AAEd;AAAA,MACF;AAEA,MAAII,MACF,aAAaA,CAAgB,GAC7BA,IAAmB,OAGrBF,EAAY,QAAQ;AAAA,IACtB,CAAC,GAEDK,EAAgB,MAAM;AACpB,MAAIH,kBAA+BA,CAAgB;AAAA,IACrD,CAAC;;kBAnDCI,EAWaC,GAAA,EAXD,MAAK,UAAM;AAAA,mBACrB,MASM;AAAA,UATKR,EAAA,aAAXS,EAAA,GAAAC,EASM,OATNC,GASM;AAAA,YARJC,EAOaJ,GAAA,EAPD,MAAK,kBAAc;AAAA,yBAC7B,MAKM;AAAA,gBALKP,EAAA,SAAXQ,EAAA,GAAAC,EAKM,OALNG,GAKM;AAAA,kBAJJD,EAA2EE,GAAA;AAAA,oBAAtD,eAAA;AAAA,oBAAc,OAAM;AAAA,oBAAW,MAAM;AAAA,oBAAK,OAAO;AAAA,kBAAA;kBACtEC,EAEM,OAFNC,GAEMC,EADDjB,EAAA,OAAO,GAAA,CAAA;AAAA,gBAAA;;;;;;;;;;;"}
1
+ {"version":3,"file":"layout-FzLoadingOverlay-CWKZxowb.js","sources":["../../../src/components/layout/FzLoadingOverlay.vue"],"sourcesContent":["<template>\n <Transition name=\"fade\">\n <div v-if=\"isLoading\" class=\"loading-overlay d-flex align-center justify-center\">\n <Transition name=\"fade-delayed\">\n <div v-if=\"showContent\" class=\"d-flex flex-column align-center\">\n <v-progress-circular indeterminate color=\"primary\" :size=\"30\" :width=\"5\" />\n <div class=\"text-white text-body-1 font-weight-medium mt-3\">\n {{ message }}\n </div>\n </div>\n </Transition>\n </div>\n </Transition>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, onBeforeUnmount } from 'vue';\n\ninterface Props {\n isLoading?: boolean\n message?: string\n delay?: number\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n isLoading: false,\n message: 'Carregando...',\n delay: 300,\n});\n\nconst showContent = ref(false);\nlet contentTimeoutId: ReturnType<typeof setTimeout> | null = null;\n\nwatch(() => props.isLoading, (val) => {\n if (val) {\n contentTimeoutId = setTimeout(() => {\n showContent.value = true;\n }, props.delay);\n\n return;\n }\n\n if (contentTimeoutId) {\n clearTimeout(contentTimeoutId);\n contentTimeoutId = null;\n }\n\n showContent.value = false;\n});\n\nonBeforeUnmount(() => {\n if (contentTimeoutId) clearTimeout(contentTimeoutId);\n});\n</script>\n\n<style scoped>\n.loading-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.7);\n z-index: 9998;\n}\n\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.2s ease;\n}\n\n.fade-enter-from,\n.fade-leave-to {\n opacity: 0;\n}\n\n.fade-delayed-enter-active {\n transition: opacity 0.3s ease 0.1s;\n}\n\n.fade-delayed-leave-active {\n transition: opacity 0.2s ease;\n}\n\n.fade-delayed-enter-from,\n.fade-delayed-leave-to {\n opacity: 0;\n}\n</style>\n"],"names":["props","__props","showContent","ref","contentTimeoutId","watch","val","onBeforeUnmount","_createBlock","_Transition","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_hoisted_2","_component_v_progress_circular","_createElementVNode","_hoisted_3","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;AAwBA,UAAMA,IAAQC,GAMRC,IAAcC,EAAI,EAAK;AAC7B,QAAIC,IAAyD;AAE7D,WAAAC,EAAM,MAAML,EAAM,WAAW,CAACM,MAAQ;AACpC,UAAIA,GAAK;AACP,QAAAF,IAAmB,WAAW,MAAM;AAClC,UAAAF,EAAY,QAAQ;AAAA,QACtB,GAAGF,EAAM,KAAK;AAEd;AAAA,MACF;AAEA,MAAII,MACF,aAAaA,CAAgB,GAC7BA,IAAmB,OAGrBF,EAAY,QAAQ;AAAA,IACtB,CAAC,GAEDK,EAAgB,MAAM;AACpB,MAAIH,kBAA+BA,CAAgB;AAAA,IACrD,CAAC;;kBAnDCI,EAWaC,GAAA,EAXD,MAAK,UAAM;AAAA,mBACrB,MASM;AAAA,UATKR,EAAA,aAAXS,EAAA,GAAAC,EASM,OATNC,GASM;AAAA,YARJC,EAOaJ,GAAA,EAPD,MAAK,kBAAc;AAAA,yBAC7B,MAKM;AAAA,gBALKP,EAAA,SAAXQ,EAAA,GAAAC,EAKM,OALNG,GAKM;AAAA,kBAJJD,EAA2EE,GAAA;AAAA,oBAAtD,eAAA;AAAA,oBAAc,OAAM;AAAA,oBAAW,MAAM;AAAA,oBAAK,OAAO;AAAA,kBAAA;kBACtEC,EAEM,OAFNC,GAEMC,EADDjB,EAAA,OAAO,GAAA,CAAA;AAAA,gBAAA;;;;;;;;;;;"}