{"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;;;;"}