UNPKG

tdesign-mobile-vue

Version:
1 lines 10.5 kB
{"version":3,"file":"checkbox-group.mjs","sources":["../../src/checkbox/checkbox-group.tsx"],"sourcesContent":["import { provide, computed, defineComponent, toRefs } from 'vue';\nimport config from '../config';\nimport props from './checkbox-group-props';\nimport Checkbox from './checkbox';\nimport { CheckboxGroupValue, TdCheckboxGroupProps, TdCheckboxProps } from './type';\nimport { useDefault } from '../shared';\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 const [innerValue, setInnerValue] = useDefault<CheckboxGroupValue, TdCheckboxGroupProps>(\n props,\n context.emit,\n 'value',\n 'change',\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 onCheckedChange,\n });\n return () => {\n const checkboxNode = () => {\n return (\n <span>\n {optionList.value.map((item, idx) => (\n <checkbox\n key={idx}\n name={item.name || ''}\n label={item.label || item.text || ''}\n value={item.value}\n check-all={item.checkAll}\n block={item.block || true}\n checked={item.checked || false}\n content={item.content || ''}\n content-disabled={item.contentDisabled || false}\n icon={item.icon || 'circle'}\n indeterminate={item.indeterminate || false}\n disabled={item.disabled}\n max-content-row={item.maxContentRow || 5}\n max-label-row={item.maxLabelRow || 3}\n readonly={item.readonly || false}\n placement={item.placement || 'left'}\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","_useDefault","useDefault","emit","_useDefault2","_slicedToArray","innerValue","setInnerValue","optionList","getOptions","slots","checkedSet","computed","value","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","toRefs","checkboxNode","_createVNode","map","idx","_resolveComponent","label","text","block","content","contentDisabled","icon","indeterminate","disabled","maxContentRow","maxLabelRow","readonly","placement","options"],"mappings":"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"}