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 • 6.79 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../../../../../packages/element/check-card/src/index.tsx"],"sourcesContent":["import { provide } from 'vue'\nimport { useNamespace } from '@ideaz/hooks'\nimport { get } from 'lodash-unified'\nimport { isValid } from '@ideaz/utils'\nimport ZCheckCardItem from './CheckCardItem'\nimport { checkCardGroupProps } from './props'\nimport type { CheckCardItemProps, CheckCardValueType } from './props'\n\nexport default defineComponent({\n name: 'ZCheckCard',\n components: { ZCheckCardItem },\n props: checkCardGroupProps,\n emits: ['change', 'update:modelValue'],\n setup(props, { slots, expose, emit }) {\n const ns = useNamespace('check-card')\n const size = useFormSize()\n\n const stateValue = computed({\n get() {\n return props.modelValue || props.value\n },\n set(val) {\n emit('update:modelValue', val)\n emit('change', val)\n },\n })\n\n const getOptions = () => {\n return (props.options as CheckCardItemProps[])?.map(\n (option) => {\n if (typeof option === 'string') {\n return {\n title: option,\n value: option,\n }\n }\n return option\n },\n )\n }\n\n const toggleOption = (option: CheckCardItemProps) => {\n if (!props.multiple) {\n let changeValue\n\n changeValue = stateValue.value\n\n if (changeValue === option.value)\n changeValue = undefined\n\n else\n changeValue = option.value\n\n stateValue.value = changeValue\n }\n\n if (props.multiple) {\n let changeValue = []\n const stateValues = stateValue.value as CheckCardValueType[]\n const hasOption = stateValues.includes(option.value!)\n changeValue = [...(stateValues || [])]\n if (!hasOption)\n changeValue.push(option.value!)\n\n if (hasOption) {\n changeValue = changeValue.filter(\n itemValue => itemValue !== option.value,\n )\n }\n const newOptions = getOptions()\n const newValue = changeValue\n // ?.filter((val) => registerValueMap.current.has(val))\n ?.sort((a, b) => {\n const indexA = newOptions.findIndex((opt: { title: string, value: any } | CheckCardItemProps) => opt.value === a || get(opt, props.alias?.value || 'value', '') === a)\n const indexB = newOptions.findIndex((opt: { title: string, value: any } | CheckCardItemProps) => opt.value === b || get(opt, props.alias?.value || 'value', '') === b)\n return indexA - indexB\n })\n\n stateValue.value = newValue\n }\n }\n\n const children = () => {\n const { loading, multiple, options } = props\n if (loading) {\n // eslint-disable-next-line unicorn/no-new-array\n return new Array(options?.length || slots.default?.()?.length || 1)\n .fill(0)\n .map((_, index) => <ZCheckCardItem key={index} loading />)\n }\n\n if (options && options.length > 0) {\n const optionValue = stateValue.value\n return (getOptions() as CheckCardItemProps[]).map((option) => {\n const value = get(option, props.alias?.value || 'value', '')\n return (\n <ZCheckCardItem\n key={value.toString()}\n {...option}\n disabled={get(option, props.alias?.disabled || 'disabled', false)}\n size={option.size || size.value}\n value={value}\n bordered={isValid(option.bordered) ? option.bordered : props.bordered}\n checked={\n multiple\n ? (optionValue as CheckCardValueType[])?.includes(value)\n : (optionValue as CheckCardValueType) === value\n }\n title={get(option, props.alias?.title || 'title', '')}\n />\n )\n })\n }\n\n return slots.default?.()\n }\n\n provide(\n 'check-card-group',\n computed(() => {\n return {\n toggleOption,\n bordered: props.bordered,\n value: stateValue.value,\n disabled: props.disabled,\n size: size.value,\n loading: props.loading,\n multiple: props.multiple,\n }\n }),\n )\n\n expose({\n toggleOption,\n })\n\n return () => {\n return <div class={ns.b('group')}>{children()}</div>\n }\n },\n})\n"],"names":["CheckCard","vue","name","components","ZCheckCardItem","props","emits","emit","ns","useNamespace","size","useFormSize","get","_a","option","title","value","changeValue","stateValues","stateValue","hasOption","newOptions","getOptions","newValue","a","b","indexA","opt","indexB","options","loading","_b","slots","_","index","CheckCardItem","optionValue","is","_c","provide","expose","toggleOption"],"mappings":"+hBAQAA,EAAAC,EAAA,gBAAA,CACEC,KAAAA,aACAC,WAAAA,CAAcC,eAAAA,GACdC,MAAAA,EAAAA,oBACAC,MAAAA,CAAAA,SAAAA,mBAAAA,4BAC8BC,KAAAA,CAAK,EAAA,CACjC,MAAAC,EAAAC,EAAA,aAAA,YAAA,EACAC,EAAAC,EAAA,YAAA,gBAGEC,KAAAA,CACE,OAAAP,EAAA,YAAAA,EAAA,cAGAE,EAAAA,oBAAAA,CAAAA,EACAA,EAAAA,SAAAA,CAAAA,CACF,CACF,CAAA,eAGE,OAAAM,EAAAR,EAAA,UAAA,YAAAQ,EAAA,IAAAC,GAEI,OAAAA,GAAA,UAEIC,MAAAA,EACAC,MAAAA,GAGJF,UAMJ,GAAA,CAAAT,EAAA,SAAA,CACE,IAAAY,YAIAA,IAAAH,EAAA,MAAAG,EAAA,OAAAA,EAAAH,EAAA,eAOF,yBAIE,MAAAI,EAAAC,EAAA,4BAEAF,EAAAA,CAAAA,GAAAA,GAAAA,CAAAA,CAAAA,qBAIAG,IACEH,EAAAA,EAAAA,OAAAA,GAAAA,IAAAA,EAAAA,KAAAA,GAIF,MAAAI,EAAAC,EAAA,EACAC,EAAAN,GAAA,YAAAA,EACE,KAAA,CAAAO,EAAAC,IAAA,CAEE,MAAAC,EAAAL,EAAA,UAAAM,GAAA,OAAA,OAAAA,EAAA,QAAAH,GAAAZ,EAAAe,IAAAd,EAAAR,EAAA,QAAA,YAAAQ,EAAA,QAAA,QAAA,EAAA,IAAAW,EAAA,EACAI,EAAAP,EAAA,UAAAM,GAAA,OAAA,OAAAA,EAAA,QAAAF,GAAAb,EAAAe,IAAAd,EAAAR,EAAA,QAAA,YAAAQ,EAAA,QAAA,QAAA,EAAA,IAAAY,EAAA,YAEF,YAGJ,+CAI2BI,QAAAA,CAAQ,EAAAxB,EACnC,GAAAyB,EAEE,OAAA,IAAA,OAAAD,GAAA,YAAAA,EAAA,WAAAE,GAAAlB,EAAAmB,EAAA,UAAA,YAAAnB,EAAA,KAAAmB,KAAA,YAAAD,EAAA,SAAA,CAAA,EAAA,KAAA,CAAA,EAAA,IAAA,CAAAE,EAAAC,IAAAjC,EAAA,YAAAkC,EAAA,CAEgB,IAAAD,EAA+B,QAAA,EAAA,EAAA,IAAA,CAAA,EAGjD,GAAAL,GAAAA,EAAA,OAAA,EAAA,CACE,MAAAO,EAAAjB,EAAA,MACA,OAAAG,EAAA,EAAA,IAAAR,GAAA,WACE,MAAAE,EAAAJ,EAAAE,IAAAD,EAAAR,EAAA,QAAA,YAAAQ,EAAA,QAAA,QAAA,EAAA,EACA,OAAAZ,EAAA,YAAAkC,EAAAlC,EAAA,WAAA,iBAEyB,EAAAa,EAAA,CACX,SAAAF,EAAAE,IAAAiB,EAAA1B,EAAA,QAAA,YAAA0B,EAAA,WAAA,WAAA,EAAA,EACuD,KAAAjB,EAAA,MAAAJ,EAAA,MAClC,MAAAM,EACnB,SAAAqB,EAAA,QAAAvB,EAAA,QAAA,EAAAA,EAAA,SAAAT,EAAA,sDAKqC,MAAAO,EAAAE,IAAAwB,EAAAjC,EAAA,QAAA,YAAAiC,EAAA,QAAA,QAAA,EAAA,CAEI,CAAA,EAAA,IAAA,CAG3D,CAAA,CACF,CAEA,OAAAA,EAAAN,EAAA,UAAA,YAAAM,EAAA,KAAAN,IAGFO,OAAAA,EAAAA,QAAAA,mBAAAA,EAAAA,SAAAA,+HAYE,CAAA,EAGFC,EAAAA,CACEC,aAAAA,CACF,CAAA,EAEA,IACExC,EAAA,YAAA,MAAA,CAAA,MAAAO,EAAA,EAAA,OAAA,SAEJ,CACF,CAAA"}