xdesign-vue-next
Version:
XDesign Component for vue-next
1 lines • 3.65 kB
Source Map (JSON)
{"version":3,"file":"collapse.mjs","sources":["../../src/collapse/collapse.tsx"],"sourcesContent":["import { defineComponent, toRefs, provide, computed } from 'vue';\nimport props from './props';\nimport { CollapseValue, TdCollapseProps, CollapsePanelValue } from './type';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useConfig';\n\nexport default defineComponent({\n name: 'XCollapse',\n props,\n\n setup(props: TdCollapseProps) {\n const componentName = usePrefixClass('collapse');\n const borderlessClass = usePrefixClass('-border-less');\n const renderTNodeJSX = useTNodeJSX();\n const { value, expandMutex, borderless, modelValue } = toRefs(props);\n const [collapseValue, setCollapseValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n const updateCollapseValue = (value: CollapsePanelValue) => {\n let newValue: CollapseValue = [].concat(collapseValue.value || []);\n const index = newValue.indexOf(value);\n if (index >= 0) {\n newValue.splice(index, 1);\n } else if (expandMutex.value) {\n newValue = [value];\n } else {\n newValue.push(value);\n }\n setCollapseValue(newValue);\n };\n const classes = computed(() => {\n return [\n componentName.value,\n {\n [borderlessClass.value]: !!borderless.value,\n },\n ];\n });\n const getUniqId = (() => {\n let index = 0;\n return () => index++;\n })();\n provide('collapseValue', collapseValue);\n provide('updateCollapseValue', updateCollapseValue);\n provide('collapseProps', toRefs(props));\n provide('getUniqId', getUniqId);\n provide('renderParentTNode', renderTNodeJSX);\n return () => {\n const nodes = renderTNodeJSX('default');\n return <div class={classes.value}>{nodes}</div>;\n };\n },\n});\n"],"names":["name","props","collapseValue","setCollapseValue","newValue","provide","_createVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,gBAAA,eAAA,CAAA;AACEA,EAAAA,IAAAA,EAAAA,WAAAA;AACAC,EAAAA,KAAAA,EAAAA,KAAAA;;AAGQ,IAAA,IAAA,aAAA,GAAA,cAAA,CAAA,UAAA,CAAA,CAAA;AACA,IAAA,IAAA,eAAA,GAAA,cAAA,CAAA,cAAA,CAAA,CAAA;AACN,IAAA,IAAA,cAAA,GAAA,WAAA,EAAA,CAAA;AACA,IAAA,IAAA,OAAA,GAAA,MAAA,CAAA,MAAA,CAAA;;;;;AACM,IAAA,IAAA,UAAA,GAAA,SAAA,CAAA,KAAA,EAAA,UAAA,EAAA,MAAA,CAAA,YAAA,EAAA,MAAA,CAAA,QAAA,CAAA;;AAACC,MAAAA,aAAAA,GAAAA,WAAAA,CAAAA,CAAAA,CAAAA;AAAeC,MAAAA,gBAAAA,GAAAA,WAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAChB,IAAA,IAAA,mBAAA,GAAA,SAAA,mBAAA,CAAA,MAAA,EAAA;;AAEE,MAAA,IAAA,KAAA,GAAA,QAAA,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA;;AAEKC,QAAAA,QAAAA,CAAAA,MAAAA,CAAAA,KAAAA,EAAAA,CAAAA,CAAAA,CAAAA;AACX,OAAA,MAAA,IAAA,WAAA,CAAA,KAAA,EAAA;;AAEA,OAAA,MAAA;AACEA,QAAAA,QAAAA,CAAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA;AACF,OAAA;;;AAGI,IAAA,IAAA,OAAA,GAAA,QAAA,CAAA,YAAA;AACG,MAAA,OAAA,CAAA,aAAA,CAAA,KAAA,EAAA,eAAA,CAAA,EAAA,EAAA,eAAA,CAAA,KAAA,EAAA,CAAA,CAAA,UAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAMT,KAAA,CAAA,CAAA;;;;AAGS,QAAA,OAAA,KAAA,EAAA,CAAA;AAAM,OAAA,CAAA;AACf,KAAA,EAAA,CAAA;AACAC,IAAAA,OAAAA,CAAAA,eAAAA,EAAAA,aAAAA,CAAAA,CAAAA;AACAA,IAAAA,OAAAA,CAAAA,qBAAAA,EAAAA,mBAAAA,CAAAA,CAAAA;AACQA,IAAAA,OAAAA,CAAAA,eAAAA,EAAAA,MAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;AACRA,IAAAA,OAAAA,CAAAA,WAAAA,EAAAA,SAAAA,CAAAA,CAAAA;AACAA,IAAAA,OAAAA,CAAAA,mBAAAA,EAAAA,cAAAA,CAAAA,CAAAA;AACA,IAAA,OAAA,YAAA;AACQ,MAAA,IAAA,KAAA,GAAA,cAAA,CAAA,SAAA,CAAA,CAAA;AACN,MAAA,OAAAC,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,OAAA,CAAA,KAAA;AAA2B,OAAA,EAAA,CAAA,KAAA,CAAA,CAAA,CAAA;;AAE/B,GAAA;AACF,CAAA,CAAA;;;;"}