{"version":3,"file":"node2.mjs","sources":["../../../../../../packages/components/cascader-panel/src/node.vue"],"sourcesContent":["<template>\n  <li\n    :id=\"`${menuId}-${node.uid}`\"\n    role=\"menuitem\"\n    :aria-haspopup=\"!isLeaf\"\n    :aria-owns=\"isLeaf ? null : menuId\"\n    :aria-expanded=\"inExpandingPath\"\n    :tabindex=\"expandable ? -1 : undefined\"\n    :class=\"[\n      ns.b(),\n      ns.is('selectable', checkStrictly),\n      ns.is('active', node.checked),\n      ns.is('disabled', !expandable),\n      inExpandingPath && 'in-active-path',\n      inCheckedPath && 'in-checked-path',\n    ]\"\n    @mouseenter=\"handleHoverExpand\"\n    @focus=\"handleHoverExpand\"\n    @click=\"handleClick\"\n  >\n    <!-- prefix -->\n    <el-checkbox\n      v-if=\"multiple\"\n      :model-value=\"node.checked\"\n      :indeterminate=\"node.indeterminate\"\n      :disabled=\"isDisabled\"\n      @click.stop\n      @update:model-value=\"handleSelectCheck\"\n    />\n    <el-radio\n      v-else-if=\"checkStrictly\"\n      :model-value=\"checkedNodeId\"\n      :label=\"node.uid\"\n      :disabled=\"isDisabled\"\n      @update:model-value=\"handleSelectCheck\"\n      @click.stop\n    >\n      <!--\n        Add an empty element to avoid render label,\n        do not use empty fragment here for https://github.com/vuejs/vue-next/pull/2485\n      -->\n      <span />\n    </el-radio>\n    <el-icon v-else-if=\"isLeaf && node.checked\" :class=\"ns.e('prefix')\">\n      <check />\n    </el-icon>\n\n    <!-- content -->\n    <node-content />\n\n    <!-- postfix -->\n    <template v-if=\"!isLeaf\">\n      <el-icon v-if=\"node.loading\" :class=\"[ns.is('loading'), ns.e('postfix')]\">\n        <loading />\n      </el-icon>\n      <el-icon v-else :class=\"['arrow-right', ns.e('postfix')]\">\n        <arrow-right />\n      </el-icon>\n    </template>\n  </li>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject } from 'vue'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport ElRadio from '@element-plus/components/radio'\nimport ElIcon from '@element-plus/components/icon'\nimport { useNamespace } from '@element-plus/hooks'\nimport { ArrowRight, Check, Loading } from '@element-plus/icons-vue'\nimport NodeContent from './node-content'\nimport { CASCADER_PANEL_INJECTION_KEY } from './types'\nimport type { default as CascaderNode } from './node'\n\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n  name: 'ElCascaderNode',\n\n  components: {\n    ElCheckbox,\n    ElRadio,\n    NodeContent,\n    ElIcon,\n    Check,\n    Loading,\n    ArrowRight,\n  },\n\n  props: {\n    node: {\n      type: Object as PropType<CascaderNode>,\n      required: true,\n    },\n    menuId: String,\n  },\n\n  emits: ['expand'],\n\n  setup(props, { emit }) {\n    const panel = inject(CASCADER_PANEL_INJECTION_KEY)!\n\n    const ns = useNamespace('cascader-node')\n    const isHoverMenu = computed(() => panel.isHoverMenu)\n    const multiple = computed(() => panel.config.multiple)\n    const checkStrictly = computed(() => panel.config.checkStrictly)\n    const checkedNodeId = computed(() => panel.checkedNodes[0]?.uid)\n    const isDisabled = computed(() => props.node.isDisabled)\n    const isLeaf = computed(() => props.node.isLeaf)\n    const expandable = computed(\n      () => (checkStrictly.value && !isLeaf.value) || !isDisabled.value\n    )\n    const inExpandingPath = computed(() => isInPath(panel.expandingNode!))\n    // only useful in check-strictly mode\n    const inCheckedPath = computed(\n      () => checkStrictly.value && panel.checkedNodes.some(isInPath)\n    )\n\n    const isInPath = (node: CascaderNode) => {\n      const { level, uid } = props.node\n      return node?.pathNodes[level - 1]?.uid === uid\n    }\n\n    const doExpand = () => {\n      if (inExpandingPath.value) return\n      panel.expandNode(props.node)\n    }\n\n    const doCheck = (checked: boolean) => {\n      const { node } = props\n      if (checked === node.checked) return\n      panel.handleCheckChange(node, checked)\n    }\n\n    const doLoad = () => {\n      panel.lazyLoad(props.node, () => {\n        if (!isLeaf.value) doExpand()\n      })\n    }\n\n    const handleHoverExpand = (e: Event) => {\n      if (!isHoverMenu.value) return\n      handleExpand()\n      !isLeaf.value && emit('expand', e)\n    }\n\n    const handleExpand = () => {\n      const { node } = props\n      // do not exclude leaf node because the menus expanded might have to reset\n      if (!expandable.value || node.loading) return\n      node.loaded ? doExpand() : doLoad()\n    }\n\n    const handleClick = () => {\n      if (isHoverMenu.value && !isLeaf.value) return\n\n      if (\n        isLeaf.value &&\n        !isDisabled.value &&\n        !checkStrictly.value &&\n        !multiple.value\n      ) {\n        handleCheck(true)\n      } else {\n        handleExpand()\n      }\n    }\n\n    const handleSelectCheck = (checked: boolean) => {\n      if (checkStrictly.value) {\n        doCheck(checked)\n        if (props.node.loaded) {\n          doExpand()\n        }\n      } else {\n        handleCheck(checked)\n      }\n    }\n\n    const handleCheck = (checked: boolean) => {\n      if (!props.node.loaded) {\n        doLoad()\n      } else {\n        doCheck(checked)\n        !checkStrictly.value && doExpand()\n      }\n    }\n\n    return {\n      panel,\n      isHoverMenu,\n      multiple,\n      checkStrictly,\n      checkedNodeId,\n      isDisabled,\n      isLeaf,\n      expandable,\n      inExpandingPath,\n      inCheckedPath,\n      ns,\n      handleHoverExpand,\n      handleExpand,\n      handleClick,\n      handleCheck,\n      handleSelectCheck,\n    }\n  },\n})\n</script>\n"],"names":["_resolveComponent","_openBlock","_normalizeClass","_createCommentVNode","_createBlock","_withModifiers","_withCtx","_createVNode","_createElementBlock","_Fragment"],"mappings":"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"}