You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
5.0 KiB
1 lines
5.0 KiB
{"ast":null,"code":"import { ref, watch, provide, computed } from 'vue';\nimport { collapseContextKey } from './constants.mjs';\nimport { castArray } from 'lodash-unified';\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nconst useCollapse = (props, emit) => {\n const activeNames = ref(castArray(props.modelValue));\n const setActiveNames = _activeNames => {\n activeNames.value = _activeNames;\n const value = props.accordion ? activeNames.value[0] : activeNames.value;\n emit(UPDATE_MODEL_EVENT, value);\n emit(CHANGE_EVENT, value);\n };\n const handleItemClick = name => {\n if (props.accordion) {\n setActiveNames([activeNames.value[0] === name ? \"\" : name]);\n } else {\n const _activeNames = [...activeNames.value];\n const index = _activeNames.indexOf(name);\n if (index > -1) {\n _activeNames.splice(index, 1);\n } else {\n _activeNames.push(name);\n }\n setActiveNames(_activeNames);\n }\n };\n watch(() => props.modelValue, () => activeNames.value = castArray(props.modelValue), {\n deep: true\n });\n provide(collapseContextKey, {\n activeNames,\n handleItemClick\n });\n return {\n activeNames,\n setActiveNames\n };\n};\nconst useCollapseDOM = () => {\n const ns = useNamespace(\"collapse\");\n const rootKls = computed(() => ns.b());\n return {\n rootKls\n };\n};\nexport { useCollapse, useCollapseDOM };","map":{"version":3,"names":["useCollapse","props","emit","activeNames","ref","castArray","modelValue","setActiveNames","_activeNames","value","accordion","UPDATE_MODEL_EVENT","CHANGE_EVENT","handleItemClick","name","index","indexOf","splice","push","watch","deep","provide","collapseContextKey","useCollapseDOM","ns","useNamespace","rootKls","computed","b"],"sources":["../../../../../../packages/components/collapse/src/use-collapse.ts"],"sourcesContent":["import { computed, provide, ref, watch } from 'vue'\nimport { ensureArray } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { collapseContextKey } from './constants'\n\nimport type { SetupContext } from 'vue'\nimport type {\n CollapseActiveName,\n CollapseEmits,\n CollapseProps,\n} from './collapse'\n\nexport const useCollapse = (\n props: CollapseProps,\n emit: SetupContext<CollapseEmits>['emit']\n) => {\n const activeNames = ref(ensureArray(props.modelValue))\n\n const setActiveNames = (_activeNames: CollapseActiveName[]) => {\n activeNames.value = _activeNames\n const value = props.accordion ? activeNames.value[0] : activeNames.value\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value)\n }\n\n const handleItemClick = (name: CollapseActiveName) => {\n if (props.accordion) {\n setActiveNames([activeNames.value[0] === name ? '' : name])\n } else {\n const _activeNames = [...activeNames.value]\n const index = _activeNames.indexOf(name)\n\n if (index > -1) {\n _activeNames.splice(index, 1)\n } else {\n _activeNames.push(name)\n }\n setActiveNames(_activeNames)\n }\n }\n\n watch(\n () => props.modelValue,\n () => (activeNames.value = ensureArray(props.modelValue)),\n { deep: true }\n )\n\n provide(collapseContextKey, {\n activeNames,\n handleItemClick,\n })\n return {\n activeNames,\n setActiveNames,\n }\n}\n\nexport const useCollapseDOM = () => {\n const ns = useNamespace('collapse')\n\n const rootKls = computed(() => ns.b())\n return {\n rootKls,\n }\n}\n"],"mappings":";;;;;AAKY,MAACA,WAAW,GAAGA,CAACC,KAAK,EAAEC,IAAI,KAAK;EAC1C,MAAMC,WAAW,GAAGC,GAAG,CAACC,SAAW,CAACJ,KAAK,CAACK,UAAU,CAAC,CAAC;EACtD,MAAMC,cAAc,GAAIC,YAAY,IAAK;IACvCL,WAAW,CAACM,KAAK,GAAGD,YAAY;IAChC,MAAMC,KAAK,GAAGR,KAAK,CAACS,SAAS,GAAGP,WAAW,CAACM,KAAK,CAAC,CAAC,CAAC,GAAGN,WAAW,CAACM,KAAK;IACxEP,IAAI,CAACS,kBAAkB,EAAEF,KAAK,CAAC;IAC/BP,IAAI,CAACU,YAAY,EAAEH,KAAK,CAAC;EAC7B,CAAG;EACD,MAAMI,eAAe,GAAIC,IAAI,IAAK;IAChC,IAAIb,KAAK,CAACS,SAAS,EAAE;MACnBH,cAAc,CAAC,CAACJ,WAAW,CAACM,KAAK,CAAC,CAAC,CAAC,KAAKK,IAAI,GAAG,EAAE,GAAGA,IAAI,CAAC,CAAC;IACjE,CAAK,MAAM;MACL,MAAMN,YAAY,GAAG,CAAC,GAAGL,WAAW,CAACM,KAAK,CAAC;MAC3C,MAAMM,KAAK,GAAGP,YAAY,CAACQ,OAAO,CAACF,IAAI,CAAC;MACxC,IAAIC,KAAK,GAAG,CAAC,CAAC,EAAE;QACdP,YAAY,CAACS,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;MACrC,CAAO,MAAM;QACLP,YAAY,CAACU,IAAI,CAACJ,IAAI,CAAC;MAC/B;MACMP,cAAc,CAACC,YAAY,CAAC;IAClC;EACA,CAAG;EACDW,KAAK,CAAC,MAAMlB,KAAK,CAACK,UAAU,EAAE,MAAMH,WAAW,CAACM,KAAK,GAAGJ,SAAW,CAACJ,KAAK,CAACK,UAAU,CAAC,EAAE;IAAEc,IAAI,EAAE;EAAI,CAAE,CAAC;EACtGC,OAAO,CAACC,kBAAkB,EAAE;IAC1BnB,WAAW;IACXU;EACJ,CAAG,CAAC;EACF,OAAO;IACLV,WAAW;IACXI;EACJ,CAAG;AACH;AACY,MAACgB,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAMC,EAAE,GAAGC,YAAY,CAAC,UAAU,CAAC;EACnC,MAAMC,OAAO,GAAGC,QAAQ,CAAC,MAAMH,EAAE,CAACI,CAAC,EAAE,CAAC;EACtC,OAAO;IACLF;EACJ,CAAG;AACH","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|