{"version":3,"file":"BVut_-3U.js","sources":["../../../../node_modules/vuetify/lib/composables/form.mjs"],"sourcesContent":["// Composables\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed, inject, provide, ref, shallowRef, toRef, watch } from 'vue';\nimport { consoleWarn, propsFactory } from \"../util/index.mjs\"; // Types\nexport const FormKey = Symbol.for('vuetify:form');\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean,\n default: null\n },\n validateOn: {\n type: String,\n default: 'input'\n }\n}, 'form');\nexport function createForm(props) {\n const model = useProxiedModel(props, 'modelValue');\n const isDisabled = computed(() => props.disabled);\n const isReadonly = computed(() => props.readonly);\n const isValidating = shallowRef(false);\n const items = ref([]);\n const errors = ref([]);\n async function validate() {\n const results = [];\n let valid = true;\n errors.value = [];\n isValidating.value = true;\n for (const item of items.value) {\n const itemErrorMessages = await item.validate();\n if (itemErrorMessages.length > 0) {\n valid = false;\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages\n });\n }\n if (!valid && props.fastFail) break;\n }\n errors.value = results;\n isValidating.value = false;\n return {\n valid,\n errors: errors.value\n };\n }\n function reset() {\n items.value.forEach(item => item.reset());\n }\n function resetValidation() {\n items.value.forEach(item => item.resetValidation());\n }\n watch(items, () => {\n let valid = 0;\n let invalid = 0;\n const results = [];\n for (const item of items.value) {\n if (item.isValid === false) {\n invalid++;\n results.push({\n id: item.id,\n errorMessages: item.errorMessages\n });\n } else if (item.isValid === true) valid++;\n }\n errors.value = results;\n model.value = invalid > 0 ? false : valid === items.value.length ? true : null;\n }, {\n deep: true\n });\n provide(FormKey, {\n register: _ref => {\n let {\n id,\n validate,\n reset,\n resetValidation\n } = _ref;\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`);\n }\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n isValid: null,\n errorMessages: []\n });\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id;\n });\n },\n update: (id, isValid, errorMessages) => {\n const found = items.value.find(item => item.id === id);\n if (!found) return;\n found.isValid = isValid;\n found.errorMessages = errorMessages;\n },\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validateOn: toRef(props, 'validateOn')\n });\n return {\n errors,\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validate,\n reset,\n resetValidation\n };\n}\nexport function useForm() {\n return inject(FormKey, null);\n}\n//# sourceMappingURL=form.mjs.map"],"names":["FormKey","makeFormProps","propsFactory","createForm","props","model","useProxiedModel","isDisabled","computed","isReadonly","isValidating","shallowRef","items","ref","errors","validate","results","valid","item","itemErrorMessages","reset","resetValidation","watch","invalid","provide","_ref","id","isValid","errorMessages","found","toRef","useForm","inject"],"mappings":";;6aAIO,MAAMA,EAAU,OAAO,IAAI,cAAc,EACnCC,EAAgBC,EAAa,CACxC,SAAU,QACV,SAAU,QACV,SAAU,QACV,WAAY,CACV,KAAM,QACN,QAAS,IACV,EACD,WAAY,CACV,KAAM,OACN,QAAS,OACV,CACH,EAAG,MAAM,EACF,SAASC,EAAWC,EAAO,CAChC,MAAMC,EAAQC,EAAgBF,EAAO,YAAY,EAC3CG,EAAaC,EAAS,IAAMJ,EAAM,QAAQ,EAC1CK,EAAaD,EAAS,IAAMJ,EAAM,QAAQ,EAC1CM,EAAeC,EAAW,EAAK,EAC/BC,EAAQC,EAAI,CAAA,CAAE,EACdC,EAASD,EAAI,CAAA,CAAE,EACrB,eAAeE,GAAW,CACxB,MAAMC,EAAU,CAAA,EAChB,IAAIC,EAAQ,GACZH,EAAO,MAAQ,GACfJ,EAAa,MAAQ,GACrB,UAAWQ,KAAQN,EAAM,MAAO,CAC9B,MAAMO,EAAoB,MAAMD,EAAK,WAQrC,GAPIC,EAAkB,OAAS,IAC7BF,EAAQ,GACRD,EAAQ,KAAK,CACX,GAAIE,EAAK,GACT,cAAeC,CACzB,CAAS,GAEC,CAACF,GAASb,EAAM,SAAU,KAC/B,CACD,OAAAU,EAAO,MAAQE,EACfN,EAAa,MAAQ,GACd,CACL,MAAAO,EACA,OAAQH,EAAO,KACrB,CACG,CACD,SAASM,GAAQ,CACfR,EAAM,MAAM,QAAQM,GAAQA,EAAK,MAAK,CAAE,CACzC,CACD,SAASG,GAAkB,CACzBT,EAAM,MAAM,QAAQM,GAAQA,EAAK,gBAAe,CAAE,CACnD,CACD,OAAAI,EAAMV,EAAO,IAAM,CACjB,IAAIK,EAAQ,EACRM,EAAU,EACd,MAAMP,EAAU,CAAA,EAChB,UAAWE,KAAQN,EAAM,MACnBM,EAAK,UAAY,IACnBK,IACAP,EAAQ,KAAK,CACX,GAAIE,EAAK,GACT,cAAeA,EAAK,aAC9B,CAAS,GACQA,EAAK,UAAY,IAAMD,IAEpCH,EAAO,MAAQE,EACfX,EAAM,MAAQkB,EAAU,EAAI,GAAQN,IAAUL,EAAM,MAAM,OAAS,GAAO,IAC9E,EAAK,CACD,KAAM,EACV,CAAG,EACDY,EAAQxB,EAAS,CACf,SAAUyB,GAAQ,CAChB,GAAI,CACF,GAAAC,EACA,SAAAX,EACA,MAAAK,EACA,gBAAAC,CACD,EAAGI,EACAb,EAAM,MAAM,KAAKM,GAAQA,EAAK,KAAOQ,CAAE,EAG3Cd,EAAM,MAAM,KAAK,CACf,GAAAc,EACA,SAAAX,EACA,MAAAK,EACA,gBAAAC,EACA,QAAS,KACT,cAAe,CAAE,CACzB,CAAO,CACF,EACD,WAAYK,GAAM,CAChBd,EAAM,MAAQA,EAAM,MAAM,OAAOM,GACxBA,EAAK,KAAOQ,CACpB,CACF,EACD,OAAQ,CAACA,EAAIC,EAASC,IAAkB,CACtC,MAAMC,EAAQjB,EAAM,MAAM,KAAKM,GAAQA,EAAK,KAAOQ,CAAE,EAChDG,IACLA,EAAM,QAAUF,EAChBE,EAAM,cAAgBD,EACvB,EACD,WAAArB,EACA,WAAAE,EACA,aAAAC,EACA,QAASL,EACT,MAAAO,EACA,WAAYkB,EAAM1B,EAAO,YAAY,CACzC,CAAG,EACM,CACL,OAAAU,EACA,WAAAP,EACA,WAAAE,EACA,aAAAC,EACA,QAASL,EACT,MAAAO,EACA,SAAAG,EACA,MAAAK,EACA,gBAAAC,CACJ,CACA,CACO,SAASU,GAAU,CACxB,OAAOC,EAAOhC,EAAS,IAAI,CAC7B","debug_id":"906d9d5e-ad27-54d2-9fc0-47a859ad8dc1"}