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.19 kB
Source Map (JSON)
{"version":3,"file":"useOptions.cjs","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","vue","alias","all","options2","multiple","allOption","set","val","values","item","get","modelValue","type","selectValue","array","index"],"mappings":"8jBAMgB,SAAAA,EAAAC,EAAAC,EAAA,CACd,KAAA,CAAA,EAAAC,CAAA,EAAAC,EAAA,UAAA,EAEAC,EAAAC,EAAA,SAAA,IAAA,CACE,KAAA,CAAA,MAAAC,EAAA,IAAAC,EAAA,QAAAC,EAAA,SAAAC,CAAA,EAAAT,EACAU,EAAA,CAAA,EAGA,OAFAC,EAAAD,GAAAJ,GAAA,YAAAA,EAAA,QAAA,QAAAJ,EAAA,YAAA,CAAA,EACAS,EAAAD,GAAAJ,GAAA,YAAAA,EAAA,QAAA,QAAA,KAAA,EACAC,GAAAE,EACE,CAAAC,CAAA,EAAA,OAAAF,CAAA,EAEFA,CAAO,CAAA,EA+BT,MAAA,CAAA,QAAAJ,EAAA,kBA5BAQ,GAAA,CACE,KAAA,CAAA,IAAAL,EAAA,SAAAE,EAAA,MAAAH,CAAA,EAAAN,EACAa,EAAAT,EAAA,MAAA,IAAAU,GAAAC,EAAAD,GAAAR,GAAA,YAAAA,EAAA,QAAA,QAAA,EAAA,CAAA,EACA,GAAAC,GAAAE,EAAA,CACE,MAAAO,EAAAhB,EAAA,WACAiB,EAAAL,EAAA,OAAAI,EAAA,OAAA,MAAA,QACAE,EAAAC,EAAA,mBAAAP,EAAAI,CAAA,EAAA,CAAA,EACA,GAAAE,IAAA,OAAAD,IAAA,MAAA,CACEhB,EAAA,MAAAY,EACA,MAAA,CAEF,GAAAK,IAAA,OAAAD,IAAA,QAAA,CACEhB,EAAA,MAAA,CAAA,EACA,MAAA,CAEF,GAAAW,EAAA,SAAAC,EAAA,OAAA,GAAA,CAAAG,EAAA,SAAA,KAAA,EAAA,CACEf,EAAA,MAAAY,EACA,MAAA,CAEF,GAAAK,IAAA,OAAAF,EAAA,SAAA,KAAA,GAAAC,IAAA,QAAA,CACE,MAAAG,EAAAR,EAAA,UAAAE,GAAAA,IAAA,KAAA,EACAM,EAAA,KACEnB,EAAA,MAAAW,EAAA,OAAAQ,EAAA,CAAA,EAAqC,CACzC,CAEFnB,EAAA,MAAAW,CAAkB,CAGpB,CACF"}