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.

0 lines
33 KiB

1 month ago
  1. {"ast":null,"code":"import { defineComponent, ref, computed, provide, reactive, watch, onBeforeUpdate, onMounted, nextTick, resolveComponent, openBlock, createElementBlock, normalizeClass, Fragment, renderList, createBlock, withCtx, renderSlot } from 'vue';\nimport { isEqual, flattenDeep, cloneDeep } from 'lodash-unified';\nimport ElCascaderMenu from './menu.mjs';\nimport Store from './store.mjs';\nimport Node from './node.mjs';\nimport { CommonProps, useCascaderConfig } from './config.mjs';\nimport { sortByOriginalOrder, checkNode, getMenuIndex } from './utils.mjs';\nimport { CASCADER_PANEL_INJECTION_KEY } from './types.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { unique, castArray } from '../../../utils/arrays.mjs';\nimport { scrollIntoView } from '../../../utils/dom/scroll.mjs';\nimport { focusNode, getSibling } from '../../../utils/dom/aria.mjs';\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { isEmpty } from '../../../utils/types.mjs';\nimport { isClient } from '@vueuse/core';\nimport { EVENT_CODE } from '../../../constants/aria.mjs';\nconst _sfc_main = defineComponent({\n name: \"ElCascaderPanel\",\n components: {\n ElCascaderMenu\n },\n props: {\n ...CommonProps,\n border: {\n type: Boolean,\n default: true\n },\n renderLabel: Function\n },\n emits: [UPDATE_MODEL_EVENT, CHANGE_EVENT, \"close\", \"expand-change\"],\n setup(props, {\n emit,\n slots\n }) {\n let manualChecked = false;\n const ns = useNamespace(\"cascader\");\n const config = useCascaderConfig(props);\n let store = null;\n const initialLoaded = ref(true);\n const menuList = ref([]);\n const checkedValue = ref(null);\n const menus = ref([]);\n const expandingNode = ref(null);\n const checkedNodes = ref([]);\n const isHoverMenu = computed(() => config.value.expandTrigger === \"hover\");\n const renderLabelFn = computed(() => props.renderLabel || slots.default);\n const initStore = () => {\n const {\n options\n } = props;\n const cfg = config.value;\n manualChecked = false;\n store = new Store(options, cfg);\n menus.value = [store.getNodes()];\n if (cfg.lazy && isEmpty(props.options)) {\n initialLoaded.value = false;\n lazyLoad(void 0, list => {\n if (list) {\n store = new Store(list, cfg);\n menus.value = [store.getNodes()];\n }\n initialLoaded.value = true;\n syncCheckedValue(false, true);\n });\n } else {\n syncCheckedValue(false, true);\n }\n };\n const lazyLoad = (node, cb) => {\n const cfg = config.value;\n node = node || new Node({}, cfg, void 0, true);\n node.loading = true;\n const resolve = dataList => {\n const _node = node;\n const parent = _node.root ? null : _node;\n dataList && (store == null ? void 0 : store.appendNodes(dataList, parent));\n _node.loading = false;\n _node.loaded = true;\n _node.childrenData = _node.childrenData || [];\n cb && cb(dataList);\n };\n cfg.lazyLoad(node, resolve);\n };\n const expandNode = (node, silent) => {\n var _a;\n const {\n level\n } = node;\n const newMenus = menus.value.slice(0, level);\n let newExpandingNode;\n if (node.isLeaf) {\n newExpandingNode = node.pathNodes[level - 2];\n } else {\n newExpandingNode = node;\n newMenus.push(node.children);\n }\n if (((_a = expandingNode.value) == null ? void 0 : _a.uid) !== (newExpandingNode == null ? void 0 : newExpandingNode.uid)) {\n expandingNode.value = node;\n menus.value = newMenus;\n !silent && emit(\"expand-change\", (node == null ? void 0 : node.pathValues) || []);\n }\n };\n const handleCheckChange = (node, checked, emitClose = true) => {\n const {\n checkStrictly,\n mu