tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 5.14 kB
Source Map (JSON)
{"version":3,"file":"collapse.mjs","sources":["../../src/collapse/collapse.tsx"],"sourcesContent":["import { toRefs, provide, defineComponent, computed, Ref, ComputedRef } from 'vue';\nimport props from './props';\nimport config from '../config';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\nimport useVModel from '../hooks/useVModel';\nimport { CollapseValue, TdCollapseProps } from './type';\n\nexport interface CollapseProvide {\n activeValue: Ref<CollapseValue | undefined>;\n disabled: ComputedRef<boolean>;\n expandIcon: ComputedRef<TdCollapseProps['expandIcon']>;\n onPanelChange: (name: string | number, args: any) => void;\n defaultExpandAll: boolean;\n}\n\nconst { prefix } = config;\n\nexport default defineComponent({\n name: `${prefix}-collapse`,\n props,\n setup(props, { slots }) {\n const renderTNodeJSX = useTNodeJSX();\n\n const collapseClass = usePrefixClass('collapse');\n\n const { value, modelValue } = toRefs(props);\n const [activeValue, setActiveValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const calcActiveValues = (activeValues: any[], panelValue: any, expandMutex: boolean) => {\n const hit = activeValues.indexOf(panelValue);\n\n if (hit > -1) {\n return activeValues.filter((item) => item !== panelValue);\n }\n\n return expandMutex ? [panelValue] : activeValues.concat(panelValue);\n };\n\n const onPanelChange = (value: string | number, args: any) => {\n if (Array.isArray(activeValue.value)) {\n const val = calcActiveValues(activeValue.value, value, props.expandMutex);\n\n setActiveValue(val, args);\n }\n };\n\n const disabled = computed(() => props.disabled);\n const expandIcon = computed(() => props.expandIcon);\n const rootClass = computed(() => [collapseClass.value, `${collapseClass.value}--${props.theme}`]);\n\n provide<CollapseProvide>('collapse', {\n activeValue,\n disabled,\n expandIcon,\n onPanelChange,\n defaultExpandAll: props.defaultExpandAll,\n });\n provide('renderParentTNode', renderTNodeJSX);\n\n return () => <div class={rootClass.value}>{slots.default?.()}</div>;\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","setup","slots","_ref","renderTNodeJSX","useTNodeJSX","collapseClass","usePrefixClass","_toRefs","toRefs","value","modelValue","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","activeValue","setActiveValue","calcActiveValues","activeValues","panelValue","expandMutex","hit","indexOf","filter","item","concat","onPanelChange","args","Array","isArray","val","disabled","computed","expandIcon","rootClass","theme","provide","defaultExpandAll","_slots$default","_createVNode","default","call"],"mappings":"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"}