UNPKG

tdesign-mobile-vue

Version:
1 lines 10.9 kB
{"version":3,"file":"checkbox-group.mjs","sources":["../../src/checkbox/checkbox-group.tsx"],"sourcesContent":["import { provide, computed, defineComponent, toRefs } from 'vue';\nimport { get as lodashGet } from 'lodash-es';\nimport config from '../config';\nimport props from './checkbox-group-props';\nimport { KeysType } from '../common';\nimport Checkbox from './checkbox';\nimport { CheckboxGroupValue, TdCheckboxGroupProps, TdCheckboxProps } from './type';\nimport useVModel from '../hooks/useVModel';\nimport { getOptions, setCheckAllStatus } from './hooks';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\n\nconst { prefix } = config;\n\nexport interface Child {\n value: string | number;\n}\n\nexport default defineComponent({\n name: `${prefix}-checkbox-group`,\n components: {\n Checkbox,\n },\n props,\n emits: ['update:value', 'update:modelValue', 'change'],\n setup(props: any, context) {\n const checkboxGroupClass = usePrefixClass('checkbox-group');\n const renderTNodeJSX = useTNodeJSX();\n const { isArray } = Array;\n\n const { value, modelValue } = toRefs(props);\n const [innerValue, setInnerValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const keys = computed((): KeysType => props.keys);\n\n const optionList = getOptions(props, context.slots);\n const checkedSet = computed(() => {\n if (isArray(innerValue.value)) {\n return new Set(innerValue.value);\n }\n return new Set();\n });\n const checkAllStatus = setCheckAllStatus(optionList, innerValue, checkedSet);\n const maxExceeded = computed(() => {\n return props.max !== undefined && innerValue.value.length === props.max;\n });\n\n const onCheckedChange = (p: { checked: boolean; checkAll: boolean; e: Event; option: TdCheckboxProps }) => {\n const { checked, checkAll, e } = p;\n if (checkAll) {\n onCheckAllChange(checked, { e });\n } else {\n handleCheckboxChange(p);\n }\n };\n\n const handleCheckboxChange = (data: { checked: boolean; e: Event; option: TdCheckboxProps }) => {\n const currentValue = data.option.value;\n if (isArray(innerValue.value)) {\n if (currentValue === undefined) {\n return;\n }\n const val = [...innerValue.value];\n if (data.checked) {\n val.push(currentValue);\n } else {\n const i = val.indexOf(currentValue);\n val.splice(i, 1);\n }\n setInnerValue(val, {\n e: data.e,\n current: data.option.value,\n type: data.checked ? 'check' : 'uncheck',\n });\n } else {\n console.warn(`TDesign CheckboxGroup Warn: \\`value\\` must be an array, instead of ${typeof innerValue.value}`);\n }\n };\n const getAllCheckboxValue = (): CheckboxGroupValue => {\n const val = new Set<NonNullable<TdCheckboxProps['value']>>();\n for (let i = 0, len = optionList.value.length; i < len; i++) {\n const item = optionList.value[i];\n if (item.checkAll) continue;\n if (item.value === undefined) continue;\n val.add(item.value);\n if (maxExceeded.value) break;\n }\n return [...val];\n };\n const onCheckAllChange = (checked: boolean, context: { e: Event; source?: 't-checkbox' }) => {\n const value = checked ? getAllCheckboxValue() : [];\n setInnerValue(value, {\n e: context.e,\n type: checked ? 'check' : 'uncheck',\n current: undefined,\n });\n };\n\n provide('checkboxGroup', {\n ...toRefs(props),\n innerValue,\n checkAllStatus,\n checkedSet,\n maxExceeded,\n onCheckedChange,\n });\n return () => {\n const checkboxNode = () => {\n return (\n <span>\n {optionList.value.map((item, idx) => (\n <Checkbox\n {...item}\n key={`${lodashGet(item, keys.value?.value ?? 'value', '')}${idx}`}\n label={lodashGet(item, keys.value?.label ?? 'label', item.text || '')}\n value={lodashGet(item, keys.value?.value ?? 'value')}\n disabled={lodashGet(item, keys.value?.disabled ?? 'disabled')}\n />\n ))}\n </span>\n );\n };\n return (\n <div class={`${checkboxGroupClass.value}`}>\n {!(props.options && props.options.length) ? renderTNodeJSX('default') : checkboxNode()}\n </div>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","components","Checkbox","props","emits","setup","context","checkboxGroupClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","isArray","Array","_toRefs","toRefs","value","modelValue","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","innerValue","setInnerValue","keys","computed","optionList","getOptions","slots","checkedSet","Set","checkAllStatus","setCheckAllStatus","maxExceeded","max","length","onCheckedChange","p","checked","checkAll","e","onCheckAllChange","handleCheckboxChange","data","currentValue","option","val","_toConsumableArray","push","i","indexOf","splice","current","type","console","warn","concat","_typeof","getAllCheckboxValue","len","item","add","provide","_objectSpread","checkboxNode","_createVNode","map","idx","_keys$value$value","_keys$value","_keys$value$label","_keys$value2","_keys$value$value2","_keys$value3","_keys$value$disabled","_keys$value4","_mergeProps","lodashGet","label","text","disabled","options"],"mappings":"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"}