UNPKG

vuestic-ui

Version:
1 lines 2.11 kB
{"version":3,"file":"formContext.mjs","sources":["../../../../../src/composables/useForm/formContext.ts"],"sourcesContent":["import { Ref, UnwrapRef, computed, ref } from 'vue'\nimport { FormFiled } from './types'\n\nexport type FormParentOptions = {\n hideLoading: boolean\n hideErrors: boolean\n hideErrorMessages: boolean\n immediate: boolean\n name?: string\n}\n\nexport type FormContext = {\n immediate: Ref<boolean>,\n fields: Ref<FormFiled<string>[]>,\n forceHideErrors: Ref<boolean>,\n forceHideErrorMessages: Ref<boolean>,\n forceHideLoading: Ref<boolean>,\n forceDirty: Ref<boolean>,\n registerField: (uid: string, field: FormFiled<string>) => void,\n unregisterField: (uid: string) => void,\n}\n\nexport const createFormContext = <Names extends string>(options: FormParentOptions) => {\n const fields = ref(new Map<string, FormFiled<Names>>())\n\n return {\n // Vue unwrap ref automatically, but types are not for some reason\n immediate: computed(() => options.immediate),\n fields: computed(() => [...fields.value.values()]),\n forceHideErrors: computed(() => options.hideErrors),\n forceHideErrorMessages: computed(() => options.hideErrorMessages),\n forceHideLoading: computed(() => options.hideLoading),\n forceDirty: ref(false),\n registerField: (uid: string, field: FormFiled<Names>) => {\n // Vue will unwrap ref automatically, but types are not for some reason\n fields.value.set(uid, field as unknown as UnwrapRef<FormFiled<Names>>)\n },\n unregisterField: (uid: string) => {\n fields.value.delete(uid)\n },\n }\n}\n"],"names":[],"mappings":";AAsBa,MAAA,oBAAoB,CAAuB,YAA+B;AACrF,QAAM,SAAS,IAAQ,oBAAA,IAA+B,CAAA;AAE/C,SAAA;AAAA;AAAA,IAEL,WAAW,SAAS,MAAM,QAAQ,SAAS;AAAA,IAC3C,QAAQ,SAAS,MAAM,CAAC,GAAG,OAAO,MAAM,OAAO,CAAC,CAAC;AAAA,IACjD,iBAAiB,SAAS,MAAM,QAAQ,UAAU;AAAA,IAClD,wBAAwB,SAAS,MAAM,QAAQ,iBAAiB;AAAA,IAChE,kBAAkB,SAAS,MAAM,QAAQ,WAAW;AAAA,IACpD,YAAY,IAAI,KAAK;AAAA,IACrB,eAAe,CAAC,KAAa,UAA4B;AAEhD,aAAA,MAAM,IAAI,KAAK,KAA+C;AAAA,IACvE;AAAA,IACA,iBAAiB,CAAC,QAAgB;AACzB,aAAA,MAAM,OAAO,GAAG;AAAA,IACzB;AAAA,EAAA;AAEJ;"}