@forizi-tecnologia/ui 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -5
- package/dist/chunks/components/FzConfigProvider-X6sXT-LE.js +15 -0
- package/dist/chunks/components/FzConfigProvider-X6sXT-LE.js.map +1 -0
- package/dist/chunks/components/inputs-FzEmailField-CujT-RJo.js +87 -0
- package/dist/chunks/components/inputs-FzEmailField-CujT-RJo.js.map +1 -0
- package/dist/chunks/components/{inputs-FzFullAddress-e05j6MFg.js → inputs-FzFullAddress-Dj68efww.js} +70 -69
- package/dist/chunks/components/inputs-FzFullAddress-Dj68efww.js.map +1 -0
- package/dist/chunks/components/inputs-FzMoneyField-Co9uqB9u.js +107 -0
- package/dist/chunks/components/inputs-FzMoneyField-Co9uqB9u.js.map +1 -0
- package/dist/chunks/components/{inputs-FzNumberField-BAPRZpBo.js → inputs-FzNumberField-DG-uYIEA.js} +38 -37
- package/dist/chunks/components/inputs-FzNumberField-DG-uYIEA.js.map +1 -0
- package/dist/chunks/components/inputs-FzPhoneField-B8Mk05Hd.js +273 -0
- package/dist/chunks/components/inputs-FzPhoneField-B8Mk05Hd.js.map +1 -0
- package/dist/chunks/components/inputs-FzZipCodeField-B7fHUkXJ.js +103 -0
- package/dist/chunks/components/inputs-FzZipCodeField-B7fHUkXJ.js.map +1 -0
- package/dist/chunks/components/{layout-FzLoadingOverlay-DbVh5Ncb.js → layout-FzLoadingOverlay-CWKZxowb.js} +2 -2
- package/dist/chunks/components/{layout-FzLoadingOverlay-DbVh5Ncb.js.map → layout-FzLoadingOverlay-CWKZxowb.js.map} +1 -1
- package/dist/chunks/components/{messages-FzConfirmDialog-kcpokBc2.js → messages-FzConfirmDialog-vB2NQFVy.js} +2 -2
- package/dist/chunks/components/{messages-FzConfirmDialog-kcpokBc2.js.map → messages-FzConfirmDialog-vB2NQFVy.js.map} +1 -1
- package/dist/chunks/components/{messages-FzCustomConfirmDialog-CttE2KMh.js → messages-FzCustomConfirmDialog-DF73kvKq.js} +16 -16
- package/dist/chunks/components/{messages-FzCustomConfirmDialog-CttE2KMh.js.map → messages-FzCustomConfirmDialog-DF73kvKq.js.map} +1 -1
- package/dist/chunks/components/{messages-FzFloatingNotify-BdlkCu5i.js → messages-FzFloatingNotify-CV5gLl9-.js} +2 -2
- package/dist/chunks/components/{messages-FzFloatingNotify-BdlkCu5i.js.map → messages-FzFloatingNotify-CV5gLl9-.js.map} +1 -1
- package/dist/chunks/components/{modals-FzModalBase-C4wU9yAp.js → modals-FzModalBase-DmsJR5qM.js} +2 -2
- package/dist/chunks/components/{modals-FzModalBase-C4wU9yAp.js.map → modals-FzModalBase-DmsJR5qM.js.map} +1 -1
- package/dist/chunks/composables/useFzDefaults-BAOcJYaF.js +9 -0
- package/dist/chunks/composables/useFzDefaults-BAOcJYaF.js.map +1 -0
- package/dist/chunks/index-OarSr4I3.js +33 -0
- package/dist/chunks/index-OarSr4I3.js.map +1 -0
- package/dist/components/FzConfigProvider.vue.d.ts +20 -0
- package/dist/components/FzConfigProvider.vue.d.ts.map +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +24 -22
- package/dist/components/index.js.map +1 -1
- package/dist/components/inputs/FzEmailField.vue.d.ts.map +1 -1
- package/dist/components/inputs/FzFullAddress.vue.d.ts.map +1 -1
- package/dist/components/inputs/FzMoneyField.vue.d.ts.map +1 -1
- package/dist/components/inputs/FzNumberField.vue.d.ts.map +1 -1
- package/dist/components/inputs/FzPhoneField.vue.d.ts.map +1 -1
- package/dist/components/inputs/FzZipCodeField.vue.d.ts.map +1 -1
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/index.d.ts.map +1 -1
- package/dist/composables/index.js +11 -9
- package/dist/composables/index.js.map +1 -1
- package/dist/composables/useFzDefaults.d.ts +3 -0
- package/dist/composables/useFzDefaults.d.ts.map +1 -0
- package/dist/constants/index.d.ts +4 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +80 -75
- package/dist/index.js.map +1 -1
- package/dist/types/FzDefaults.d.ts +5 -0
- package/dist/types/FzDefaults.d.ts.map +1 -0
- package/dist/ui.css +1 -1
- package/dist/utils/index.js +19 -18
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/components/inputs-FzEmailField-B07tsUyr.js +0 -86
- package/dist/chunks/components/inputs-FzEmailField-B07tsUyr.js.map +0 -1
- package/dist/chunks/components/inputs-FzFullAddress-e05j6MFg.js.map +0 -1
- package/dist/chunks/components/inputs-FzMoneyField-BxAg9Bd_.js +0 -106
- package/dist/chunks/components/inputs-FzMoneyField-BxAg9Bd_.js.map +0 -1
- package/dist/chunks/components/inputs-FzNumberField-BAPRZpBo.js.map +0 -1
- package/dist/chunks/components/inputs-FzPhoneField-DKMx53pK.js +0 -272
- package/dist/chunks/components/inputs-FzPhoneField-DKMx53pK.js.map +0 -1
- package/dist/chunks/components/inputs-FzZipCodeField-kkCMb3t9.js +0 -102
- package/dist/chunks/components/inputs-FzZipCodeField-kkCMb3t9.js.map +0 -1
- package/dist/chunks/index-Bu6SLmX_.js +0 -31
- package/dist/chunks/index-Bu6SLmX_.js.map +0 -1
package/dist/chunks/components/{inputs-FzNumberField-BAPRZpBo.js → inputs-FzNumberField-DG-uYIEA.js}
RENAMED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { u as
|
|
3
|
-
import {
|
|
4
|
-
|
|
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:
|
|
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
|
|
31
|
-
const
|
|
31
|
+
function b(e) {
|
|
32
|
+
const n = e.includes("-"), a = e.replace(/\D/g, "");
|
|
32
33
|
if (!a) return 0;
|
|
33
|
-
let
|
|
34
|
+
let o;
|
|
34
35
|
if (t.decimalPlaces === 0)
|
|
35
|
-
|
|
36
|
+
o = parseInt(a);
|
|
36
37
|
else {
|
|
37
|
-
const
|
|
38
|
-
|
|
38
|
+
const w = Math.pow(10, t.decimalPlaces);
|
|
39
|
+
o = parseInt(a) / w;
|
|
39
40
|
}
|
|
40
|
-
const d = Number(
|
|
41
|
-
return
|
|
41
|
+
const d = Number(o.toFixed(t.decimalPlaces));
|
|
42
|
+
return n && t.allowNegative ? -d : d;
|
|
42
43
|
}
|
|
43
|
-
const { formattedValue: s, moveCursorToEnd:
|
|
44
|
-
|
|
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
|
-
|
|
48
|
+
b
|
|
48
49
|
);
|
|
49
|
-
function
|
|
50
|
-
t.max !== void 0 && e > t.max || t.min !== void 0 && e < t.min || (r("update:modelValue", e), s.value = u(e),
|
|
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
|
|
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
|
|
62
|
-
return
|
|
62
|
+
const o = Number(a.toFixed(t.decimalPlaces));
|
|
63
|
+
return n ? -o : o;
|
|
63
64
|
}
|
|
64
|
-
const
|
|
65
|
+
const g = z(
|
|
65
66
|
s,
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
P,
|
|
68
|
+
V,
|
|
68
69
|
() => ({ allowNegative: t.allowNegative })
|
|
69
70
|
);
|
|
70
|
-
return (e,
|
|
71
|
-
const a =
|
|
72
|
-
return
|
|
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:
|
|
80
|
+
variant: v.value,
|
|
80
81
|
inputmode: "decimal",
|
|
81
|
-
"onUpdate:modelValue": i(
|
|
82
|
-
onFocus: i(
|
|
83
|
-
onClick: i(
|
|
84
|
-
onKeydown: i(
|
|
85
|
-
},
|
|
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
|
-
}),
|
|
104
|
+
}), L = /* @__PURE__ */ M(S, [["__scopeId", "data-v-c53749c6"]]);
|
|
104
105
|
export {
|
|
105
|
-
|
|
106
|
+
L as F
|
|
106
107
|
};
|
|
107
|
-
//# sourceMappingURL=inputs-FzNumberField-
|
|
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-
|
|
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-
|
|
58
|
+
//# sourceMappingURL=layout-FzLoadingOverlay-CWKZxowb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-FzLoadingOverlay-
|
|
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;;;;;;;;;;;"}
|