{"version":3,"file":"select.mjs","sources":["../../../../../../../packages/components/tree-select/src/select.ts"],"sourcesContent":["// @ts-nocheck\nimport { computed, nextTick, toRefs, watch } from 'vue'\nimport { pick } from 'lodash-unified'\nimport ElSelect from '@hd-front-end/components/select'\nimport { useNamespace } from '@hd-front-end/hooks'\nimport { UPDATE_MODEL_EVENT } from '@hd-front-end/constants'\n\nimport type { Ref } from 'vue'\nimport type { SelectInstance } from '@hd-front-end/components/select'\nimport type { TreeInstance } from '@hd-front-end/components/tree'\n\nexport const useSelect = (\n  props,\n  { attrs, emit },\n  {\n    select,\n    tree,\n    key,\n  }: {\n    select: Ref<SelectInstance | undefined>\n    tree: Ref<TreeInstance | undefined>\n    key: Ref<string>\n  }\n) => {\n  const ns = useNamespace('tree-select')\n\n  // update tree data when use filterMethod/remoteMethod\n  watch(\n    () => props.data,\n    () => {\n      if (props.filterable) {\n        nextTick(() => {\n          // let tree node expand only, same with tree filter\n          tree.value?.filter(select.value?.states.inputValue)\n        })\n      }\n    },\n    { flush: 'post' }\n  )\n\n  const result = {\n    ...pick(toRefs(props), Object.keys(ElSelect.props)),\n    ...attrs,\n    class: computed(() => attrs.class),\n    style: computed(() => attrs.style),\n    // attrs is not reactive, when v-model binding source changes,\n    // this listener is still old, see the bug(or test 'v-model source change'):\n    // https://github.com/element-plus/element-plus/issues/14204\n    'onUpdate:modelValue': (value) => emit(UPDATE_MODEL_EVENT, value),\n    valueKey: key,\n    popperClass: computed(() => {\n      const classes = [ns.e('popper')]\n      if (props.popperClass) classes.push(props.popperClass)\n      return classes.join(' ')\n    }),\n    filterMethod: (keyword = '') => {\n      if (props.filterMethod) {\n        props.filterMethod(keyword)\n      } else if (props.remoteMethod) {\n        props.remoteMethod(keyword)\n      } else {\n        // let tree node expand only, same with tree filter\n        tree.value?.filter(keyword)\n      }\n    },\n  }\n\n  return result\n}\n"],"names":[],"mappings":";;;;;;AAWO,MAAM,YAAY,CACvB,KAAA,EACA,EAAE,KAAA,EAAO,MACT,EAAA;AAAA,EACE,MAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAA;AACF,CAKG,KAAA;AACH,EAAM,MAAA,EAAA,GAAK,aAAa,aAAa,CAAA,CAAA;AAGrC,EAAA,KAAA;AAAA,IACE,MAAM,KAAM,CAAA,IAAA;AAAA,IACZ,MAAM;AACJ,MAAA,IAAI,MAAM,UAAY,EAAA;AACpB,QAAA,QAAA,CAAS,MAAM;AA/BvB,UAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAiCU,UAAA,CAAA,EAAA,GAAA,IAAA,CAAK,UAAL,IAAY,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,CAAA,CAAO,EAAO,GAAA,MAAA,CAAA,KAAA,KAAP,mBAAc,MAAO,CAAA,UAAA,CAAA,CAAA;AAAA,SACzC,CAAA,CAAA;AAAA,OACH;AAAA,KACF;AAAA,IACA,EAAE,OAAO,MAAO,EAAA;AAAA,GAClB,CAAA;AAEA,EAAA,MAAM,MAAS,GAAA;AAAA,IACb,GAAG,KAAK,MAAO,CAAA,KAAK,GAAG,MAAO,CAAA,IAAA,CAAK,QAAS,CAAA,KAAK,CAAC,CAAA;AAAA,IAClD,GAAG,KAAA;AAAA,IACH,KAAO,EAAA,QAAA,CAAS,MAAM,KAAA,CAAM,KAAK,CAAA;AAAA,IACjC,KAAO,EAAA,QAAA,CAAS,MAAM,KAAA,CAAM,KAAK,CAAA;AAAA,IAIjC,qBAAuB,EAAA,CAAC,KAAU,KAAA,IAAA,CAAK,oBAAoB,KAAK,CAAA;AAAA,IAChE,QAAU,EAAA,GAAA;AAAA,IACV,WAAA,EAAa,SAAS,MAAM;AAC1B,MAAA,MAAM,OAAU,GAAA,CAAC,EAAG,CAAA,CAAA,CAAE,QAAQ,CAAC,CAAA,CAAA;AAC/B,MAAA,IAAI,KAAM,CAAA,WAAA;AAAa,QAAQ,OAAA,CAAA,IAAA,CAAK,MAAM,WAAW,CAAA,CAAA;AACrD,MAAO,OAAA,OAAA,CAAQ,KAAK,GAAG,CAAA,CAAA;AAAA,KACxB,CAAA;AAAA,IACD,YAAA,EAAc,CAAC,OAAA,GAAU,EAAO,KAAA;AAvDpC,MAAA,IAAA,EAAA,CAAA;AAwDM,MAAA,IAAI,MAAM,YAAc,EAAA;AACtB,QAAA,KAAA,CAAM,aAAa,OAAO,CAAA,CAAA;AAAA,OAC5B,MAAA,IAAW,MAAM,YAAc,EAAA;AAC7B,QAAA,KAAA,CAAM,aAAa,OAAO,CAAA,CAAA;AAAA,OACrB,MAAA;AAEL,QAAK,CAAA,EAAA,GAAA,IAAA,CAAA,KAAA,KAAL,mBAAY,MAAO,CAAA,OAAA,CAAA,CAAA;AAAA,OACrB;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}