UNPKG

tav-ui

Version:
1 lines 2.58 kB
{"version":3,"file":"useFormItem2.mjs","sources":["../../../../../../packages/hooks/component/useFormItem.ts"],"sourcesContent":["import {\n computed,\n getCurrentInstance,\n nextTick,\n reactive,\n readonly,\n toRaw,\n unref,\n watchEffect,\n} from 'vue'\nimport { isEqual } from 'lodash-es'\nimport type { DeepReadonly, Ref, UnwrapRef, WritableComputedRef } from 'vue'\n\ntype Recordable<T = any> = Record<string, T>\n\nexport function useRuleFormItem<T extends Recordable, K extends keyof T, V = UnwrapRef<T[K]>>(\n props: T,\n key?: K,\n changeEvent?,\n emitData?: Ref<any[]>\n): [WritableComputedRef<V>, (val: V) => void, DeepReadonly<V>]\n\nexport function useRuleFormItem<T extends Recordable>(\n props: T,\n key: keyof T = 'value',\n changeEvent = 'change',\n emitData?: Ref<any[]>\n) {\n const instance = getCurrentInstance()\n const emit = instance?.emit\n\n const innerState = reactive({\n value: props[key],\n })\n\n const defaultState = readonly(innerState)\n\n const setState = (val: UnwrapRef<T[keyof T]>): void => {\n innerState.value = val as T[keyof T]\n }\n\n watchEffect(() => {\n innerState.value = props[key]\n })\n\n const state: any = computed({\n get() {\n return innerState.value\n },\n set(value) {\n if (isEqual(value, defaultState.value)) return\n\n innerState.value = value as T[keyof T]\n nextTick(() => {\n emit?.(changeEvent, value, ...(toRaw(unref(emitData)) || []))\n })\n },\n })\n\n return [state, setState, defaultState]\n}\n"],"names":[],"mappings":";;;AAWO,SAAS,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,EAAE,WAAW,GAAG,QAAQ,EAAE,QAAQ,EAAE;AACxF,EAAE,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;AACxC,EAAE,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,CAAC;AAC9B,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC;AAC9B,IAAI,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;AACrB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC5C,EAAE,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK;AAC5B,IAAI,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;AAC3B,GAAG,CAAC;AACJ,EAAE,WAAW,CAAC,MAAM;AACpB,IAAI,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAClC,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC;AACzB,IAAI,GAAG,GAAG;AACV,MAAM,OAAO,UAAU,CAAC,KAAK,CAAC;AAC9B,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,EAAE;AACf,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;AAC5C,QAAQ,OAAO;AACf,MAAM,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;AAC/B,MAAM,QAAQ,CAAC,MAAM;AACrB,QAAQ,IAAI,GAAG,WAAW,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACpE,OAAO,CAAC,CAAC;AACT,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AACzC;;;;"}