zhangyong
2023-08-22 1353e87cb21a4032d585d7404bae9042f2ebcf08
1
{"version":3,"file":"use-collapse.mjs","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"],"names":["ensureArray"],"mappings":";;;;;;;;;AAKY,MAAC,WAAW,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK;AAC5C,EAAE,MAAM,WAAW,GAAG,GAAG,CAACA,SAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;AACzD,EAAE,MAAM,cAAc,GAAG,CAAC,YAAY,KAAK;AAC3C,IAAI,WAAW,CAAC,KAAK,GAAG,YAAY,CAAC;AACrC,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;AAC7E,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAC9B,GAAG,CAAC;AACJ,EAAE,MAAM,eAAe,GAAG,CAAC,IAAI,KAAK;AACpC,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE;AACzB,MAAM,cAAc,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAClE,KAAK,MAAM;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AAClD,MAAM,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACtB,QAAQ,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtC,OAAO,MAAM;AACb,QAAQ,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,OAAO;AACP,MAAM,cAAc,CAAC,YAAY,CAAC,CAAC;AACnC,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,MAAM,WAAW,CAAC,KAAK,GAAGA,SAAW,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACzG,EAAE,OAAO,CAAC,kBAAkB,EAAE;AAC9B,IAAI,WAAW;AACf,IAAI,eAAe;AACnB,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,WAAW;AACf,IAAI,cAAc;AAClB,GAAG,CAAC;AACJ,EAAE;AACU,MAAC,cAAc,GAAG,MAAM;AACpC,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AACtC,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACzC,EAAE,OAAO;AACT,IAAI,OAAO;AACX,GAAG,CAAC;AACJ;;;;"}