element-plus
Version:
A Component Library for Vue 3
1 lines • 2.64 kB
Source Map (JSON)
{"version":3,"file":"useProps.mjs","sources":["../../../../../../packages/components/select-v2/src/useProps.ts"],"sourcesContent":["import { ref, watch } from 'vue'\nimport { get, isEqual } from 'lodash-unified'\n\nimport type { SelectV2Props } from './token'\nimport type { Option } from './select.types'\n\nexport interface Props {\n label?: string\n value?: string\n disabled?: string\n options?: string\n}\n\nexport const defaultProps: Required<Props> = {\n label: 'label',\n value: 'value',\n disabled: 'disabled',\n options: 'options',\n}\n\nexport function useProps(props: Pick<SelectV2Props, 'props'>) {\n const aliasProps = ref({ ...defaultProps, ...props.props })\n let cache = { ...props.props }\n\n watch(\n () => props.props,\n (val) => {\n // The props is an object, and its properties may be modified without changing the reference. In this case, the watch values before and after are equal. Here, we compare using the cached previous value.\n if (!isEqual(val, cache)) {\n aliasProps.value = { ...defaultProps, ...val }\n cache = { ...val }\n }\n },\n { deep: true }\n )\n\n const getLabel = (option: Option) => get(option, aliasProps.value.label)\n const getValue = (option: Option) => get(option, aliasProps.value.value)\n const getDisabled = (option: Option) => get(option, aliasProps.value.disabled)\n const getOptions = (option: Option) => get(option, aliasProps.value.options)\n\n return {\n aliasProps,\n getLabel,\n getValue,\n getDisabled,\n getOptions,\n }\n}\n"],"names":[],"mappings":";;;AAaO,MAAM,YAAgC,GAAA;AAAA,EAC3C,KAAO,EAAA,OAAA;AAAA,EACP,KAAO,EAAA,OAAA;AAAA,EACP,QAAU,EAAA,UAAA;AAAA,EACV,OAAS,EAAA,SAAA;AACX,EAAA;AAEO,SAAS,SAAS,KAAqC,EAAA;AAC5D,EAAM,MAAA,UAAA,GAAa,IAAI,EAAE,GAAG,cAAc,GAAG,KAAA,CAAM,OAAO,CAAA,CAAA;AAC1D,EAAA,IAAI,KAAQ,GAAA,EAAE,GAAG,KAAA,CAAM,KAAM,EAAA,CAAA;AAE7B,EAAA,KAAA;AAAA,IACE,MAAM,KAAM,CAAA,KAAA;AAAA,IACZ,CAAC,GAAQ,KAAA;AAEP,MAAA,IAAI,CAAC,OAAA,CAAQ,GAAK,EAAA,KAAK,CAAG,EAAA;AACxB,QAAA,UAAA,CAAW,KAAQ,GAAA,EAAE,GAAG,YAAA,EAAc,GAAG,GAAI,EAAA,CAAA;AAC7C,QAAQ,KAAA,GAAA,EAAE,GAAG,GAAI,EAAA,CAAA;AAAA,OACnB;AAAA,KACF;AAAA,IACA,EAAE,MAAM,IAAK,EAAA;AAAA,GACf,CAAA;AAEA,EAAA,MAAM,WAAW,CAAC,MAAA,KAAmB,IAAI,MAAQ,EAAA,UAAA,CAAW,MAAM,KAAK,CAAA,CAAA;AACvE,EAAA,MAAM,WAAW,CAAC,MAAA,KAAmB,IAAI,MAAQ,EAAA,UAAA,CAAW,MAAM,KAAK,CAAA,CAAA;AACvE,EAAA,MAAM,cAAc,CAAC,MAAA,KAAmB,IAAI,MAAQ,EAAA,UAAA,CAAW,MAAM,QAAQ,CAAA,CAAA;AAC7E,EAAA,MAAM,aAAa,CAAC,MAAA,KAAmB,IAAI,MAAQ,EAAA,UAAA,CAAW,MAAM,OAAO,CAAA,CAAA;AAE3E,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,GACF,CAAA;AACF;;;;"}