1 line
11 KiB
Plaintext
1 line
11 KiB
Plaintext
{"version":3,"file":"node.vue2.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 ? undefined : 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 && showPrefix\"\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 && showPrefix\"\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 :node=\"node\" />\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\" setup>\nimport { computed, 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'\n\nimport type { CascaderNode } from './types'\nimport type { PropType } from 'vue'\nimport type { CheckboxValueType } from '@element-plus/components/checkbox'\n\ndefineOptions({\n name: 'ElCascaderNode',\n})\n\nconst props = defineProps({\n node: {\n type: Object as PropType<CascaderNode>,\n required: true,\n },\n menuId: String,\n})\nconst emit = defineEmits(['expand'])\n\nconst panel = inject(CASCADER_PANEL_INJECTION_KEY)!\n\nconst ns = useNamespace('cascader-node')\nconst isHoverMenu = computed(() => panel.isHoverMenu)\nconst multiple = computed(() => panel.config.multiple)\nconst checkStrictly = computed(() => panel.config.checkStrictly)\nconst showPrefix = computed(() => panel.config.showPrefix)\nconst checkedNodeId = computed(() => panel.checkedNodes[0]?.uid)\nconst isDisabled = computed(() => props.node.isDisabled)\nconst isLeaf = computed(() => props.node.isLeaf)\nconst expandable = computed(\n () => (checkStrictly.value && !isLeaf.value) || !isDisabled.value\n)\nconst inExpandingPath = computed(() => isInPath(panel.expandingNode!))\n\n// only useful in check-strictly mode\nconst inCheckedPath = computed(\n () => checkStrictly.value && panel.checkedNodes.some(isInPath)\n)\n\nconst isInPath = (node: CascaderNode) => {\n const { level, uid } = props.node\n return node?.pathNodes[level - 1]?.uid === uid\n}\n\nconst doExpand = () => {\n if (inExpandingPath.value) return\n panel.expandNode(props.node)\n}\n\nconst doCheck = (checked: boolean) => {\n const { node } = props\n if (checked === node.checked) return\n panel.handleCheckChange(node, checked)\n}\n\nconst doLoad = () => {\n panel.lazyLoad(props.node, () => {\n if (!isLeaf.value) doExpand()\n })\n}\n\nconst handleHoverExpand = (e: Event) => {\n if (!isHoverMenu.value) return\n handleExpand()\n !isLeaf.value && emit('expand', e)\n}\n\nconst 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\nconst handleClick = () => {\n if (\n isLeaf.value &&\n !isDisabled.value &&\n !checkStrictly.value &&\n !multiple.value\n ) {\n handleCheck(true)\n } else if (\n ((panel.config.checkOnClickNode &&\n (multiple.value || checkStrictly.value)) ||\n (isLeaf.value && panel.config.checkOnClickLeaf)) &&\n !isDisabled.value\n ) {\n handleSelectCheck(!props.node.checked)\n } else if (!isHoverMenu.value) {\n handleExpand()\n }\n}\n\nconst handleSelectCheck = (checked: CheckboxValueType | undefined) => {\n if (checkStrictly.value) {\n doCheck(checked as boolean)\n if (props.node.loaded) {\n doExpand()\n }\n } else {\n handleCheck(checked as boolean)\n }\n}\n\nconst handleCheck = (checked: boolean) => {\n if (!props.node.loaded) {\n doLoad()\n } else {\n doCheck(checked)\n !checkStrictly.value && doExpand()\n }\n}\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_unref","_createCommentVNode","_createBlock","_createElementVNode","_createVNode","_Fragment"],"mappings":"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"} |