{"version":3,"file":"useTextValueMapping.mjs","sources":["../../../../../../../packages/vue-components/vc-picker/src/hooks/useTextValueMapping.ts"],"sourcesContent":["import type { ComputedRef, Ref } from 'vue';\nimport { ref, watch } from 'vue';\n\nexport default function useTextValueMapping({\n  valueTexts,\n  onTextChange,\n}: {\n  /** Must useMemo, to assume that `valueTexts` only match on the first change */\n  valueTexts: ComputedRef<string[]>;\n  onTextChange: (text: string) => void;\n}): [Ref<string>, (text: string) => void, () => void] {\n  const text = ref('');\n\n  function triggerTextChange(value: string) {\n    text.value = value;\n    onTextChange(value);\n  }\n\n  function resetText() {\n    text.value = valueTexts.value[0];\n  }\n\n  watch(\n    () => [...valueTexts.value],\n    (cur, pre = []) => {\n      if (\n        cur.join('||') !== pre.join('||')\n        && valueTexts.value.every(valText => valText !== text.value)\n      ) {\n        resetText();\n      }\n    },\n    { immediate: true },\n  );\n\n  return [text, triggerTextChange, resetText];\n}\n"],"names":[],"mappings":";;AAGA,SAAwB,mBAAoB,CAAA;AAAA,EAC1C,UAAA;AAAA,EACA,YAAA;AACF,CAIsD,EAAA;AACpD,EAAM,MAAA,IAAA,GAAO,IAAI,EAAE,CAAA,CAAA;AAEnB,EAAA,SAAS,kBAAkB,KAAe,EAAA;AACxC,IAAA,IAAA,CAAK,KAAQ,GAAA,KAAA,CAAA;AACb,IAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAAA,GACpB;AAEA,EAAA,SAAS,SAAY,GAAA;AACnB,IAAK,IAAA,CAAA,KAAA,GAAQ,UAAW,CAAA,KAAA,CAAM,CAAC,CAAA,CAAA;AAAA,GACjC;AAEA,EAAA,KAAA;AAAA,IACE,MAAM,CAAC,GAAG,UAAA,CAAW,KAAK,CAAA;AAAA,IAC1B,CAAC,GAAA,EAAK,GAAM,GAAA,EAAO,KAAA;AACjB,MAAA,IACE,GAAI,CAAA,IAAA,CAAK,IAAI,CAAA,KAAM,IAAI,IAAK,CAAA,IAAI,CAC7B,IAAA,UAAA,CAAW,MAAM,KAAM,CAAA,CAAA,OAAA,KAAW,OAAY,KAAA,IAAA,CAAK,KAAK,CAC3D,EAAA;AACA,QAAU,SAAA,EAAA,CAAA;AAAA,OACZ;AAAA,KACF;AAAA,IACA,EAAE,WAAW,IAAK,EAAA;AAAA,GACpB,CAAA;AAEA,EAAO,OAAA,CAAC,IAAM,EAAA,iBAAA,EAAmB,SAAS,CAAA,CAAA;AAC5C;;;;"}