ideaz-element
Version:
<p align="center"> <a href="" target="_blank" rel="noopener noreferrer"> <img src="./docs/public/logo.svg" alt="Ideaz Element" width="180" style="width: 180px;" /> </a> </p>
1 lines • 3.28 kB
Source Map (JSON)
{"version":3,"file":"useOptions.mjs","sources":["../../../../../../packages/element/select/src/hooks/useOptions.ts"],"sourcesContent":["import { get, set } from 'lodash-unified'\nimport { findDifferentItems } from '@ideaz/utils'\nimport type { Ref } from 'vue'\nimport type { SelectProps } from '../props'\nimport type { OptionsItem } from '../../../types'\n\nexport function useOptions(props: SelectProps, vModelVal: Ref<string[]>) {\n const { t } = useLocale()\n\n const options = computed(() => {\n const { alias, all, options, multiple } = props\n const allOption: OptionsItem = {} as OptionsItem\n set(allOption, alias?.label || 'label', t('select.all'))\n set(allOption, alias?.value || 'value', 'all')\n if (all && multiple)\n return [allOption].concat(options)\n\n return options\n })\n\n const handleSelectInput = (val: any) => {\n const { all, multiple, alias } = props\n const values = options.value.map(item => get(item, alias?.value || 'value', ''))\n if (all && multiple) {\n const modelValue = props.modelValue as string[]\n const type = val.length > modelValue.length ? 'add' : 'minus'\n const selectValue = findDifferentItems(val, modelValue)[0]\n if (selectValue === 'all' && type === 'add') {\n vModelVal.value = values\n return\n }\n if (selectValue === 'all' && type === 'minus') {\n vModelVal.value = []\n return\n }\n if (val.length === values.length - 1 && !modelValue.includes('all')) {\n vModelVal.value = values\n return\n }\n if (selectValue !== 'all' && modelValue.includes('all') && type === 'minus') {\n const index = val.findIndex((item: string) => item === 'all')\n if (index > -1)\n vModelVal.value = val.splice(index, 1)\n }\n }\n vModelVal.value = val\n }\n\n return { options, handleSelectInput }\n}\n"],"names":["useOptions","props","vModelVal","t","useLocale","options","computed","alias","all","options2","multiple","allOption","set","val","values","item","get","modelValue","type","selectValue","findDifferentItems","index"],"mappings":";;;;;;;AAMgB,SAAAA,EAAAC,GAAAC,GAAA;AACd,QAAA,EAAA,GAAAC,EAAA,IAAAC,EAAA,GAEAC,IAAAC,EAAA,MAAA;AACE,UAAA,EAAA,OAAAC,GAAA,KAAAC,GAAA,SAAAC,GAAA,UAAAC,EAAA,IAAAT,GACAU,IAAA,CAAA;AAGA,WAFAC,EAAAD,IAAAJ,KAAA,gBAAAA,EAAA,UAAA,SAAAJ,EAAA,YAAA,CAAA,GACAS,EAAAD,IAAAJ,KAAA,gBAAAA,EAAA,UAAA,SAAA,KAAA,GACAC,KAAAE,IACE,CAAAC,CAAA,EAAA,OAAAF,CAAA,IAEFA;AAAA,EAAO,CAAA;AA+BT,SAAA,EAAA,SAAAJ,GAAA,mBA5BA,CAAAQ,MAAA;AACE,UAAA,EAAA,KAAAL,GAAA,UAAAE,GAAA,OAAAH,EAAA,IAAAN,GACAa,IAAAT,EAAA,MAAA,IAAA,CAAAU,MAAAC,EAAAD,IAAAR,KAAA,gBAAAA,EAAA,UAAA,SAAA,EAAA,CAAA;AACA,QAAAC,KAAAE,GAAA;AACE,YAAAO,IAAAhB,EAAA,YACAiB,IAAAL,EAAA,SAAAI,EAAA,SAAA,QAAA,SACAE,IAAAC,EAAAP,GAAAI,CAAA,EAAA,CAAA;AACA,UAAAE,MAAA,SAAAD,MAAA,OAAA;AACE,QAAAhB,EAAA,QAAAY;AACA;AAAA,MAAA;AAEF,UAAAK,MAAA,SAAAD,MAAA,SAAA;AACE,QAAAhB,EAAA,QAAA,CAAA;AACA;AAAA,MAAA;AAEF,UAAAW,EAAA,WAAAC,EAAA,SAAA,KAAA,CAAAG,EAAA,SAAA,KAAA,GAAA;AACE,QAAAf,EAAA,QAAAY;AACA;AAAA,MAAA;AAEF,UAAAK,MAAA,SAAAF,EAAA,SAAA,KAAA,KAAAC,MAAA,SAAA;AACE,cAAAG,IAAAR,EAAA,UAAA,CAAAE,MAAAA,MAAA,KAAA;AACA,QAAAM,IAAA,OACEnB,EAAA,QAAAW,EAAA,OAAAQ,GAAA,CAAA;AAAA,MAAqC;AAAA,IACzC;AAEF,IAAAnB,EAAA,QAAAW;AAAA,EAAkB,EAGpB;AACF;"}