测试
This commit is contained in:
7
frontend/node_modules/element-plus/es/components/cascader-panel/index.d.ts
generated
vendored
Normal file
7
frontend/node_modules/element-plus/es/components/cascader-panel/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
import CascaderPanel from './src/index.vue';
|
||||
import type { SFCWithInstall } from 'element-plus/es/utils';
|
||||
export declare const ElCascaderPanel: SFCWithInstall<typeof CascaderPanel>;
|
||||
export default ElCascaderPanel;
|
||||
export * from './src/types';
|
||||
export * from './src/config';
|
||||
export * from './src/instance';
|
||||
9
frontend/node_modules/element-plus/es/components/cascader-panel/index.mjs
generated
vendored
Normal file
9
frontend/node_modules/element-plus/es/components/cascader-panel/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
import CascaderPanel from './src/index.mjs';
|
||||
export { CASCADER_PANEL_INJECTION_KEY } from './src/types.mjs';
|
||||
export { CommonProps, DefaultProps, cascaderPanelEmits, cascaderPanelProps, useCascaderConfig } from './src/config.mjs';
|
||||
import { withInstall } from '../../utils/vue/install.mjs';
|
||||
|
||||
const ElCascaderPanel = withInstall(CascaderPanel);
|
||||
|
||||
export { ElCascaderPanel, ElCascaderPanel as default };
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/cascader-panel/index.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/cascader-panel/index.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/cascader-panel/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils'\nimport CascaderPanel from './src/index.vue'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElCascaderPanel: SFCWithInstall<typeof CascaderPanel> =\n withInstall(CascaderPanel)\n\nexport default ElCascaderPanel\nexport * from './src/types'\nexport * from './src/config'\nexport * from './src/instance'\n"],"names":[],"mappings":";;;;;AAEY,MAAC,eAAe,GAAG,WAAW,CAAC,aAAa;;;;"}
|
||||
55
frontend/node_modules/element-plus/es/components/cascader-panel/src/config.d.ts
generated
vendored
Normal file
55
frontend/node_modules/element-plus/es/components/cascader-panel/src/config.d.ts
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
import type { PropType } from 'vue';
|
||||
import type { CascaderConfig, CascaderNodePathValue, CascaderOption, CascaderProps, CascaderValue, RenderLabel } from './types';
|
||||
export declare const CommonProps: {
|
||||
readonly modelValue: {
|
||||
readonly type: PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number | Record<string, any> | CascaderNodePathValue | (import("./types").CascaderNodeValue | CascaderNodePathValue)[]) | (() => CascaderValue | null) | ((new (...args: any[]) => string | number | Record<string, any> | CascaderNodePathValue | (import("./types").CascaderNodeValue | CascaderNodePathValue)[]) | (() => CascaderValue | null))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly options: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => CascaderOption[]) | (() => CascaderOption[]) | ((new (...args: any[]) => CascaderOption[]) | (() => CascaderOption[]))[], unknown, unknown, () => CascaderOption[], boolean>;
|
||||
readonly props: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => CascaderProps) | (() => CascaderProps) | ((new (...args: any[]) => CascaderProps) | (() => CascaderProps))[], unknown, unknown, () => CascaderProps, boolean>;
|
||||
};
|
||||
export declare const DefaultProps: CascaderConfig;
|
||||
export declare const cascaderPanelProps: {
|
||||
border: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
|
||||
renderLabel: {
|
||||
readonly type: PropType<RenderLabel>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
modelValue: {
|
||||
readonly type: PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number | Record<string, any> | CascaderNodePathValue | (import("./types").CascaderNodeValue | CascaderNodePathValue)[]) | (() => CascaderValue | null) | ((new (...args: any[]) => string | number | Record<string, any> | CascaderNodePathValue | (import("./types").CascaderNodeValue | CascaderNodePathValue)[]) | (() => CascaderValue | null))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
options: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => CascaderOption[]) | (() => CascaderOption[]) | ((new (...args: any[]) => CascaderOption[]) | (() => CascaderOption[]))[], unknown, unknown, () => CascaderOption[], boolean>;
|
||||
props: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => CascaderProps) | (() => CascaderProps) | ((new (...args: any[]) => CascaderProps) | (() => CascaderProps))[], unknown, unknown, () => CascaderProps, boolean>;
|
||||
};
|
||||
export declare const cascaderPanelEmits: {
|
||||
"update:modelValue": (value: CascaderValue | undefined | null) => boolean;
|
||||
change: (value: CascaderValue | undefined | null) => boolean;
|
||||
close: () => boolean;
|
||||
'expand-change': (value: CascaderNodePathValue) => CascaderNodePathValue;
|
||||
};
|
||||
export declare const useCascaderConfig: (props: {
|
||||
props: CascaderProps;
|
||||
}) => import("vue").ComputedRef<{
|
||||
expandTrigger: import("./types").ExpandTrigger;
|
||||
multiple: boolean;
|
||||
checkStrictly: boolean;
|
||||
emitPath: boolean;
|
||||
lazy: boolean;
|
||||
lazyLoad: import("./types").LazyLoad;
|
||||
value: string;
|
||||
label: string;
|
||||
children: string;
|
||||
disabled: string | import("./types").isDisabled;
|
||||
leaf: string | import("./types").isLeaf;
|
||||
hoverThreshold: number;
|
||||
checkOnClickNode: boolean;
|
||||
checkOnClickLeaf: boolean;
|
||||
showPrefix: boolean;
|
||||
}>;
|
||||
61
frontend/node_modules/element-plus/es/components/cascader-panel/src/config.mjs
generated
vendored
Normal file
61
frontend/node_modules/element-plus/es/components/cascader-panel/src/config.mjs
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
import { computed } from 'vue';
|
||||
import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
|
||||
import { NOOP } from '@vue/shared';
|
||||
import { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';
|
||||
|
||||
const CommonProps = buildProps({
|
||||
modelValue: {
|
||||
type: definePropType([Number, String, Array, Object])
|
||||
},
|
||||
options: {
|
||||
type: definePropType(Array),
|
||||
default: () => []
|
||||
},
|
||||
props: {
|
||||
type: definePropType(Object),
|
||||
default: () => ({})
|
||||
}
|
||||
});
|
||||
const DefaultProps = {
|
||||
expandTrigger: "click",
|
||||
multiple: false,
|
||||
checkStrictly: false,
|
||||
emitPath: true,
|
||||
lazy: false,
|
||||
lazyLoad: NOOP,
|
||||
value: "value",
|
||||
label: "label",
|
||||
children: "children",
|
||||
leaf: "leaf",
|
||||
disabled: "disabled",
|
||||
hoverThreshold: 500,
|
||||
checkOnClickNode: false,
|
||||
checkOnClickLeaf: true,
|
||||
showPrefix: true
|
||||
};
|
||||
const cascaderPanelProps = buildProps({
|
||||
...CommonProps,
|
||||
border: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
renderLabel: {
|
||||
type: Function
|
||||
}
|
||||
});
|
||||
const emitChangeFn = (value) => true;
|
||||
const cascaderPanelEmits = {
|
||||
[UPDATE_MODEL_EVENT]: emitChangeFn,
|
||||
[CHANGE_EVENT]: emitChangeFn,
|
||||
close: () => true,
|
||||
"expand-change": (value) => value
|
||||
};
|
||||
const useCascaderConfig = (props) => {
|
||||
return computed(() => ({
|
||||
...DefaultProps,
|
||||
...props.props
|
||||
}));
|
||||
};
|
||||
|
||||
export { CommonProps, DefaultProps, cascaderPanelEmits, cascaderPanelProps, useCascaderConfig };
|
||||
//# sourceMappingURL=config.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/config.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/config.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
306
frontend/node_modules/element-plus/es/components/cascader-panel/src/index.mjs
generated
vendored
Normal file
306
frontend/node_modules/element-plus/es/components/cascader-panel/src/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,306 @@
|
||||
import { defineComponent, useSlots, ref, computed, provide, reactive, watch, onBeforeUpdate, onMounted, openBlock, createElementBlock, normalizeClass, unref, Fragment, renderList, createBlock, withCtx, renderSlot, nextTick } from 'vue';
|
||||
import { isEqual, flattenDeep, cloneDeep } from 'lodash-unified';
|
||||
import ElCascaderMenu from './menu.mjs';
|
||||
import Store from './store.mjs';
|
||||
import Node from './node.mjs';
|
||||
import { cascaderPanelProps, cascaderPanelEmits, useCascaderConfig } from './config.mjs';
|
||||
import { sortByOriginalOrder, checkNode, getMenuIndex } from './utils.mjs';
|
||||
import { CASCADER_PANEL_INJECTION_KEY } from './types.mjs';
|
||||
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
|
||||
import { unique, castArray } from '../../../utils/arrays.mjs';
|
||||
import { scrollIntoView } from '../../../utils/dom/scroll.mjs';
|
||||
import { focusNode, getSibling } from '../../../utils/dom/aria.mjs';
|
||||
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
||||
import { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';
|
||||
import { isEmpty } from '../../../utils/types.mjs';
|
||||
import { isClient } from '@vueuse/core';
|
||||
import { getEventCode } from '../../../utils/dom/event.mjs';
|
||||
import { EVENT_CODE } from '../../../constants/aria.mjs';
|
||||
|
||||
const __default__ = defineComponent({
|
||||
name: "ElCascaderPanel",
|
||||
inheritAttrs: false
|
||||
});
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
...__default__,
|
||||
props: cascaderPanelProps,
|
||||
emits: cascaderPanelEmits,
|
||||
setup(__props, { expose, emit }) {
|
||||
const props = __props;
|
||||
let manualChecked = false;
|
||||
const ns = useNamespace("cascader");
|
||||
const config = useCascaderConfig(props);
|
||||
const slots = useSlots();
|
||||
let store;
|
||||
const initialLoaded = ref(true);
|
||||
const initialLoadedOnce = ref(false);
|
||||
const menuList = ref([]);
|
||||
const checkedValue = ref();
|
||||
const menus = ref([]);
|
||||
const expandingNode = ref();
|
||||
const checkedNodes = ref([]);
|
||||
const isHoverMenu = computed(() => config.value.expandTrigger === "hover");
|
||||
const renderLabelFn = computed(() => props.renderLabel || slots.default);
|
||||
const initStore = () => {
|
||||
const { options } = props;
|
||||
const cfg = config.value;
|
||||
manualChecked = false;
|
||||
store = new Store(options, cfg);
|
||||
menus.value = [store.getNodes()];
|
||||
if (cfg.lazy && isEmpty(props.options)) {
|
||||
initialLoaded.value = false;
|
||||
lazyLoad(void 0, (list) => {
|
||||
if (list) {
|
||||
store = new Store(list, cfg);
|
||||
menus.value = [store.getNodes()];
|
||||
}
|
||||
initialLoaded.value = true;
|
||||
syncCheckedValue(false, true);
|
||||
});
|
||||
} else {
|
||||
syncCheckedValue(false, true);
|
||||
}
|
||||
};
|
||||
const lazyLoad = (node, cb) => {
|
||||
const cfg = config.value;
|
||||
node = node || new Node({}, cfg, void 0, true);
|
||||
node.loading = true;
|
||||
const resolve = (dataList) => {
|
||||
const _node = node;
|
||||
const parent = _node.root ? null : _node;
|
||||
_node.loading = false;
|
||||
_node.loaded = true;
|
||||
_node.childrenData = _node.childrenData || [];
|
||||
dataList && (store == null ? void 0 : store.appendNodes(dataList, parent));
|
||||
dataList && (cb == null ? void 0 : cb(dataList));
|
||||
if (node.level === 0) {
|
||||
initialLoadedOnce.value = true;
|
||||
}
|
||||
};
|
||||
const reject = () => {
|
||||
node.loading = false;
|
||||
node.loaded = false;
|
||||
if (node.level === 0) {
|
||||
initialLoaded.value = true;
|
||||
}
|
||||
};
|
||||
cfg.lazyLoad(node, resolve, reject);
|
||||
};
|
||||
const expandNode = (node, silent) => {
|
||||
var _a;
|
||||
const { level } = node;
|
||||
const newMenus = menus.value.slice(0, level);
|
||||
let newExpandingNode;
|
||||
if (node.isLeaf) {
|
||||
newExpandingNode = node.pathNodes[level - 2];
|
||||
} else {
|
||||
newExpandingNode = node;
|
||||
newMenus.push(node.children);
|
||||
}
|
||||
if (((_a = expandingNode.value) == null ? void 0 : _a.uid) !== (newExpandingNode == null ? void 0 : newExpandingNode.uid)) {
|
||||
expandingNode.value = node;
|
||||
menus.value = newMenus;
|
||||
!silent && emit("expand-change", (node == null ? void 0 : node.pathValues) || []);
|
||||
}
|
||||
};
|
||||
const handleCheckChange = (node, checked, emitClose = true) => {
|
||||
const { checkStrictly, multiple } = config.value;
|
||||
const oldNode = checkedNodes.value[0];
|
||||
manualChecked = true;
|
||||
!multiple && (oldNode == null ? void 0 : oldNode.doCheck(false));
|
||||
node.doCheck(checked);
|
||||
calculateCheckedValue();
|
||||
emitClose && !multiple && !checkStrictly && emit("close");
|
||||
!emitClose && !multiple && expandParentNode(node);
|
||||
};
|
||||
const expandParentNode = (node) => {
|
||||
if (!node)
|
||||
return;
|
||||
node = node.parent;
|
||||
expandParentNode(node);
|
||||
node && expandNode(node);
|
||||
};
|
||||
const getFlattedNodes = (leafOnly) => store == null ? void 0 : store.getFlattedNodes(leafOnly);
|
||||
const getCheckedNodes = (leafOnly) => {
|
||||
var _a;
|
||||
return (_a = getFlattedNodes(leafOnly)) == null ? void 0 : _a.filter(({ checked }) => checked !== false);
|
||||
};
|
||||
const clearCheckedNodes = () => {
|
||||
checkedNodes.value.forEach((node) => node.doCheck(false));
|
||||
calculateCheckedValue();
|
||||
menus.value = menus.value.slice(0, 1);
|
||||
expandingNode.value = void 0;
|
||||
emit("expand-change", []);
|
||||
};
|
||||
const calculateCheckedValue = () => {
|
||||
var _a;
|
||||
const { checkStrictly, multiple } = config.value;
|
||||
const oldNodes = checkedNodes.value;
|
||||
const newNodes = getCheckedNodes(!checkStrictly);
|
||||
const nodes = sortByOriginalOrder(oldNodes, newNodes);
|
||||
const values = nodes.map((node) => node.valueByOption);
|
||||
checkedNodes.value = nodes;
|
||||
checkedValue.value = multiple ? values : (_a = values[0]) != null ? _a : null;
|
||||
};
|
||||
const syncCheckedValue = (loaded = false, forced = false) => {
|
||||
const { modelValue } = props;
|
||||
const { lazy, multiple, checkStrictly } = config.value;
|
||||
const leafOnly = !checkStrictly;
|
||||
if (!initialLoaded.value || manualChecked || !forced && isEqual(modelValue, checkedValue.value))
|
||||
return;
|
||||
if (lazy && !loaded) {
|
||||
const values = unique(flattenDeep(castArray(modelValue)));
|
||||
const nodes = values.map((val) => store == null ? void 0 : store.getNodeByValue(val)).filter((node) => !!node && !node.loaded && !node.loading);
|
||||
if (nodes.length) {
|
||||
nodes.forEach((node) => {
|
||||
lazyLoad(node, () => syncCheckedValue(false, forced));
|
||||
});
|
||||
} else {
|
||||
syncCheckedValue(true, forced);
|
||||
}
|
||||
} else {
|
||||
const values = multiple ? castArray(modelValue) : [modelValue];
|
||||
const nodes = unique(values.map((val) => store == null ? void 0 : store.getNodeByValue(val, leafOnly)));
|
||||
syncMenuState(nodes, forced);
|
||||
checkedValue.value = cloneDeep(modelValue != null ? modelValue : void 0);
|
||||
}
|
||||
};
|
||||
const syncMenuState = (newCheckedNodes, reserveExpandingState = true) => {
|
||||
const { checkStrictly } = config.value;
|
||||
const oldNodes = checkedNodes.value;
|
||||
const newNodes = newCheckedNodes.filter((node) => !!node && (checkStrictly || node.isLeaf));
|
||||
const oldExpandingNode = store == null ? void 0 : store.getSameNode(expandingNode.value);
|
||||
const newExpandingNode = reserveExpandingState && oldExpandingNode || newNodes[0];
|
||||
if (newExpandingNode) {
|
||||
newExpandingNode.pathNodes.forEach((node) => expandNode(node, true));
|
||||
} else {
|
||||
expandingNode.value = void 0;
|
||||
}
|
||||
oldNodes.forEach((node) => node.doCheck(false));
|
||||
reactive(newNodes).forEach((node) => node.doCheck(true));
|
||||
checkedNodes.value = newNodes;
|
||||
nextTick(scrollToExpandingNode);
|
||||
};
|
||||
const scrollToExpandingNode = () => {
|
||||
if (!isClient)
|
||||
return;
|
||||
menuList.value.forEach((menu) => {
|
||||
const menuElement = menu == null ? void 0 : menu.$el;
|
||||
if (menuElement) {
|
||||
const container = menuElement.querySelector(`.${ns.namespace.value}-scrollbar__wrap`);
|
||||
const activeNode = menuElement.querySelector(`.${ns.b("node")}.${ns.is("active")}:last-child`) || menuElement.querySelector(`.${ns.b("node")}.in-active-path`);
|
||||
scrollIntoView(container, activeNode);
|
||||
}
|
||||
});
|
||||
};
|
||||
const handleKeyDown = (e) => {
|
||||
const target = e.target;
|
||||
const code = getEventCode(e);
|
||||
switch (code) {
|
||||
case EVENT_CODE.up:
|
||||
case EVENT_CODE.down: {
|
||||
e.preventDefault();
|
||||
const distance = code === EVENT_CODE.up ? -1 : 1;
|
||||
focusNode(getSibling(target, distance, `.${ns.b("node")}[tabindex="-1"]`));
|
||||
break;
|
||||
}
|
||||
case EVENT_CODE.left: {
|
||||
e.preventDefault();
|
||||
const preMenu = menuList.value[getMenuIndex(target) - 1];
|
||||
const expandedNode = preMenu == null ? void 0 : preMenu.$el.querySelector(`.${ns.b("node")}[aria-expanded="true"]`);
|
||||
focusNode(expandedNode);
|
||||
break;
|
||||
}
|
||||
case EVENT_CODE.right: {
|
||||
e.preventDefault();
|
||||
const nextMenu = menuList.value[getMenuIndex(target) + 1];
|
||||
const firstNode = nextMenu == null ? void 0 : nextMenu.$el.querySelector(`.${ns.b("node")}[tabindex="-1"]`);
|
||||
focusNode(firstNode);
|
||||
break;
|
||||
}
|
||||
case EVENT_CODE.enter:
|
||||
case EVENT_CODE.numpadEnter:
|
||||
checkNode(target);
|
||||
break;
|
||||
}
|
||||
};
|
||||
provide(CASCADER_PANEL_INJECTION_KEY, reactive({
|
||||
config,
|
||||
expandingNode,
|
||||
checkedNodes,
|
||||
isHoverMenu,
|
||||
initialLoaded,
|
||||
renderLabelFn,
|
||||
lazyLoad,
|
||||
expandNode,
|
||||
handleCheckChange
|
||||
}));
|
||||
watch(config, (newVal, oldVal) => {
|
||||
if (isEqual(newVal, oldVal))
|
||||
return;
|
||||
initStore();
|
||||
}, {
|
||||
immediate: true
|
||||
});
|
||||
watch(() => props.options, initStore, {
|
||||
deep: true
|
||||
});
|
||||
watch(() => props.modelValue, () => {
|
||||
manualChecked = false;
|
||||
syncCheckedValue();
|
||||
}, {
|
||||
deep: true
|
||||
});
|
||||
watch(() => checkedValue.value, (val) => {
|
||||
if (!isEqual(val, props.modelValue)) {
|
||||
emit(UPDATE_MODEL_EVENT, val);
|
||||
emit(CHANGE_EVENT, val);
|
||||
}
|
||||
});
|
||||
const loadLazyRootNodes = () => {
|
||||
if (initialLoadedOnce.value)
|
||||
return;
|
||||
initStore();
|
||||
};
|
||||
onBeforeUpdate(() => menuList.value = []);
|
||||
onMounted(() => !isEmpty(props.modelValue) && syncCheckedValue());
|
||||
expose({
|
||||
menuList,
|
||||
menus,
|
||||
checkedNodes,
|
||||
handleKeyDown,
|
||||
handleCheckChange,
|
||||
getFlattedNodes,
|
||||
getCheckedNodes,
|
||||
clearCheckedNodes,
|
||||
calculateCheckedValue,
|
||||
scrollToExpandingNode,
|
||||
loadLazyRootNodes
|
||||
});
|
||||
return (_ctx, _cache) => {
|
||||
return openBlock(), createElementBlock("div", {
|
||||
class: normalizeClass([unref(ns).b("panel"), unref(ns).is("bordered", _ctx.border)]),
|
||||
onKeydown: handleKeyDown
|
||||
}, [
|
||||
(openBlock(true), createElementBlock(Fragment, null, renderList(menus.value, (menu, index) => {
|
||||
return openBlock(), createBlock(ElCascaderMenu, {
|
||||
key: index,
|
||||
ref_for: true,
|
||||
ref: (item) => menuList.value[index] = item,
|
||||
index,
|
||||
nodes: [...menu]
|
||||
}, {
|
||||
empty: withCtx(() => [
|
||||
renderSlot(_ctx.$slots, "empty")
|
||||
]),
|
||||
_: 2
|
||||
}, 1032, ["index", "nodes"]);
|
||||
}), 128))
|
||||
], 34);
|
||||
};
|
||||
}
|
||||
});
|
||||
var CascaderPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "index.vue"]]);
|
||||
|
||||
export { CascaderPanel as default };
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/index.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/index.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
198
frontend/node_modules/element-plus/es/components/cascader-panel/src/index.vue.d.ts
generated
vendored
Normal file
198
frontend/node_modules/element-plus/es/components/cascader-panel/src/index.vue.d.ts
generated
vendored
Normal file
@@ -0,0 +1,198 @@
|
||||
import Node from './node';
|
||||
import type { CascaderNodeValue, CascaderOption, CascaderValue } from './types';
|
||||
import type { CascaderMenuInstance } from './instance';
|
||||
declare function __VLS_template(): {
|
||||
empty?(_: {}): any;
|
||||
};
|
||||
declare const __VLS_component: import("vue").DefineComponent<{
|
||||
border: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
|
||||
renderLabel: {
|
||||
readonly type: import("vue").PropType<import("./types").RenderLabel>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
modelValue: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number | Record<string, any> | import("./types").CascaderNodePathValue | (CascaderNodeValue | import("./types").CascaderNodePathValue)[]) | (() => CascaderValue | null) | ((new (...args: any[]) => string | number | Record<string, any> | import("./types").CascaderNodePathValue | (CascaderNodeValue | import("./types").CascaderNodePathValue)[]) | (() => CascaderValue | null))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
options: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => CascaderOption[]) | (() => CascaderOption[]) | ((new (...args: any[]) => CascaderOption[]) | (() => CascaderOption[]))[], unknown, unknown, () => CascaderOption[], boolean>;
|
||||
props: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("./types").CascaderProps) | (() => import("./types").CascaderProps) | ((new (...args: any[]) => import("./types").CascaderProps) | (() => import("./types").CascaderProps))[], unknown, unknown, () => import("./types").CascaderProps, boolean>;
|
||||
}, {
|
||||
menuList: import("vue").Ref<CascaderMenuInstance[]>;
|
||||
menus: import("vue").Ref<{
|
||||
readonly uid: number;
|
||||
readonly level: number;
|
||||
readonly value: CascaderNodeValue;
|
||||
readonly label: string;
|
||||
readonly pathNodes: any[];
|
||||
readonly pathValues: CascaderNodeValue[];
|
||||
readonly pathLabels: string[];
|
||||
childrenData: {
|
||||
[x: string]: unknown;
|
||||
label?: string | undefined;
|
||||
value?: CascaderNodeValue | undefined;
|
||||
children?: any[] | undefined;
|
||||
disabled?: boolean | undefined;
|
||||
leaf?: boolean | undefined;
|
||||
}[] | undefined;
|
||||
children: any[];
|
||||
text: string;
|
||||
loaded: boolean;
|
||||
checked: boolean;
|
||||
indeterminate: boolean;
|
||||
loading: boolean;
|
||||
readonly data: {
|
||||
[x: string]: unknown;
|
||||
label?: string | undefined;
|
||||
value?: CascaderNodeValue | undefined;
|
||||
children?: any[] | undefined;
|
||||
disabled?: boolean | undefined;
|
||||
leaf?: boolean | undefined;
|
||||
};
|
||||
readonly config: {
|
||||
expandTrigger: import("./types").ExpandTrigger;
|
||||
multiple: boolean;
|
||||
checkStrictly: boolean;
|
||||
emitPath: boolean;
|
||||
lazy: boolean;
|
||||
lazyLoad: import("./types").LazyLoad;
|
||||
value: string;
|
||||
label: string;
|
||||
children: string;
|
||||
disabled: string | import("./types").isDisabled;
|
||||
leaf: string | import("./types").isLeaf;
|
||||
hoverThreshold: number;
|
||||
checkOnClickNode: boolean;
|
||||
checkOnClickLeaf: boolean;
|
||||
showPrefix: boolean;
|
||||
};
|
||||
readonly parent?: any | undefined;
|
||||
readonly root: boolean;
|
||||
readonly isDisabled: boolean;
|
||||
readonly isLeaf: boolean;
|
||||
readonly valueByOption: CascaderNodeValue | CascaderNodeValue[];
|
||||
appendChild: (childData: CascaderOption) => Node;
|
||||
calcText: (allLevels: boolean, separator: string) => string;
|
||||
broadcast: (checked: boolean) => void;
|
||||
emit: () => void;
|
||||
onParentCheck: (checked: boolean) => void;
|
||||
onChildCheck: () => void;
|
||||
setCheckState: (checked: boolean) => void;
|
||||
doCheck: (checked: boolean) => void;
|
||||
}[][]>;
|
||||
checkedNodes: import("vue").Ref<{
|
||||
readonly uid: number;
|
||||
readonly level: number;
|
||||
readonly value: CascaderNodeValue;
|
||||
readonly label: string;
|
||||
readonly pathNodes: any[];
|
||||
readonly pathValues: CascaderNodeValue[];
|
||||
readonly pathLabels: string[];
|
||||
childrenData: {
|
||||
[x: string]: unknown;
|
||||
label?: string | undefined;
|
||||
value?: CascaderNodeValue | undefined;
|
||||
children?: any[] | undefined;
|
||||
disabled?: boolean | undefined;
|
||||
leaf?: boolean | undefined;
|
||||
}[] | undefined;
|
||||
children: any[];
|
||||
text: string;
|
||||
loaded: boolean;
|
||||
checked: boolean;
|
||||
indeterminate: boolean;
|
||||
loading: boolean;
|
||||
readonly data: {
|
||||
[x: string]: unknown;
|
||||
label?: string | undefined;
|
||||
value?: CascaderNodeValue | undefined;
|
||||
children?: any[] | undefined;
|
||||
disabled?: boolean | undefined;
|
||||
leaf?: boolean | undefined;
|
||||
};
|
||||
readonly config: {
|
||||
expandTrigger: import("./types").ExpandTrigger;
|
||||
multiple: boolean;
|
||||
checkStrictly: boolean;
|
||||
emitPath: boolean;
|
||||
lazy: boolean;
|
||||
lazyLoad: import("./types").LazyLoad;
|
||||
value: string;
|
||||
label: string;
|
||||
children: string;
|
||||
disabled: string | import("./types").isDisabled;
|
||||
leaf: string | import("./types").isLeaf;
|
||||
hoverThreshold: number;
|
||||
checkOnClickNode: boolean;
|
||||
checkOnClickLeaf: boolean;
|
||||
showPrefix: boolean;
|
||||
};
|
||||
readonly parent?: any | undefined;
|
||||
readonly root: boolean;
|
||||
readonly isDisabled: boolean;
|
||||
readonly isLeaf: boolean;
|
||||
readonly valueByOption: CascaderNodeValue | CascaderNodeValue[];
|
||||
appendChild: (childData: CascaderOption) => Node;
|
||||
calcText: (allLevels: boolean, separator: string) => string;
|
||||
broadcast: (checked: boolean) => void;
|
||||
emit: () => void;
|
||||
onParentCheck: (checked: boolean) => void;
|
||||
onChildCheck: () => void;
|
||||
setCheckState: (checked: boolean) => void;
|
||||
doCheck: (checked: boolean) => void;
|
||||
}[]>;
|
||||
handleKeyDown: (e: KeyboardEvent) => void;
|
||||
handleCheckChange: (node: Node, checked: boolean, emitClose?: boolean) => void;
|
||||
getFlattedNodes: (leafOnly: boolean) => Node[];
|
||||
/**
|
||||
* @description get an array of currently selected node,(leafOnly) whether only return the leaf checked nodes, default is `false`
|
||||
*/
|
||||
getCheckedNodes: (leafOnly: boolean) => Node[];
|
||||
/**
|
||||
* @description clear checked nodes
|
||||
*/
|
||||
clearCheckedNodes: () => void;
|
||||
calculateCheckedValue: () => void;
|
||||
scrollToExpandingNode: () => void;
|
||||
loadLazyRootNodes: () => void;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
||||
"update:modelValue": (value: CascaderValue | null | undefined) => void;
|
||||
change: (value: CascaderValue | null | undefined) => void;
|
||||
close: () => void;
|
||||
"expand-change": (value: import("./types").CascaderNodePathValue) => void;
|
||||
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
||||
border: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
|
||||
renderLabel: {
|
||||
readonly type: import("vue").PropType<import("./types").RenderLabel>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
modelValue: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number | Record<string, any> | import("./types").CascaderNodePathValue | (CascaderNodeValue | import("./types").CascaderNodePathValue)[]) | (() => CascaderValue | null) | ((new (...args: any[]) => string | number | Record<string, any> | import("./types").CascaderNodePathValue | (CascaderNodeValue | import("./types").CascaderNodePathValue)[]) | (() => CascaderValue | null))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
options: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => CascaderOption[]) | (() => CascaderOption[]) | ((new (...args: any[]) => CascaderOption[]) | (() => CascaderOption[]))[], unknown, unknown, () => CascaderOption[], boolean>;
|
||||
props: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("./types").CascaderProps) | (() => import("./types").CascaderProps) | ((new (...args: any[]) => import("./types").CascaderProps) | (() => import("./types").CascaderProps))[], unknown, unknown, () => import("./types").CascaderProps, boolean>;
|
||||
}>> & {
|
||||
"onUpdate:modelValue"?: ((value: CascaderValue | null | undefined) => any) | undefined;
|
||||
onChange?: ((value: CascaderValue | null | undefined) => any) | undefined;
|
||||
onClose?: (() => any) | undefined;
|
||||
"onExpand-change"?: ((value: import("./types").CascaderNodePathValue) => any) | undefined;
|
||||
}, {
|
||||
border: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
||||
props: import("./types").CascaderProps;
|
||||
options: CascaderOption[];
|
||||
}>;
|
||||
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
||||
export default _default;
|
||||
type __VLS_WithTemplateSlots<T, S> = T & {
|
||||
new (): {
|
||||
$slots: S;
|
||||
};
|
||||
};
|
||||
4
frontend/node_modules/element-plus/es/components/cascader-panel/src/instance.d.ts
generated
vendored
Normal file
4
frontend/node_modules/element-plus/es/components/cascader-panel/src/instance.d.ts
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import type CascaderPanel from './index.vue';
|
||||
import type Menu from './menu.vue';
|
||||
export type CascaderMenuInstance = InstanceType<typeof Menu> & unknown;
|
||||
export type CascaderPanelInstance = InstanceType<typeof CascaderPanel> & unknown;
|
||||
2
frontend/node_modules/element-plus/es/components/cascader-panel/src/instance.mjs
generated
vendored
Normal file
2
frontend/node_modules/element-plus/es/components/cascader-panel/src/instance.mjs
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
//# sourceMappingURL=instance.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/instance.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/instance.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"instance.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
||||
135
frontend/node_modules/element-plus/es/components/cascader-panel/src/menu.mjs
generated
vendored
Normal file
135
frontend/node_modules/element-plus/es/components/cascader-panel/src/menu.mjs
generated
vendored
Normal file
@@ -0,0 +1,135 @@
|
||||
import { defineComponent, getCurrentInstance, inject, ref, computed, openBlock, createBlock, unref, normalizeClass, withCtx, createElementBlock, Fragment, renderList, createVNode, createTextVNode, toDisplayString, renderSlot, createCommentVNode } from 'vue';
|
||||
import { ElScrollbar } from '../../scrollbar/index.mjs';
|
||||
import { Loading } from '@element-plus/icons-vue';
|
||||
import { ElIcon } from '../../icon/index.mjs';
|
||||
import ElCascaderNode from './node2.mjs';
|
||||
import { CASCADER_PANEL_INJECTION_KEY } from './types.mjs';
|
||||
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
|
||||
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
||||
import { useLocale } from '../../../hooks/use-locale/index.mjs';
|
||||
import { useId } from '../../../hooks/use-id/index.mjs';
|
||||
|
||||
const __default__ = defineComponent({
|
||||
name: "ElCascaderMenu"
|
||||
});
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
...__default__,
|
||||
props: {
|
||||
nodes: {
|
||||
type: Array,
|
||||
required: true
|
||||
},
|
||||
index: {
|
||||
type: Number,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
setup(__props) {
|
||||
const props = __props;
|
||||
const instance = getCurrentInstance();
|
||||
const ns = useNamespace("cascader-menu");
|
||||
const { t } = useLocale();
|
||||
const id = useId();
|
||||
let activeNode;
|
||||
let hoverTimer;
|
||||
const panel = inject(CASCADER_PANEL_INJECTION_KEY);
|
||||
const hoverZone = ref();
|
||||
const isEmpty = computed(() => !props.nodes.length);
|
||||
const isLoading = computed(() => !panel.initialLoaded);
|
||||
const menuId = computed(() => `${id.value}-${props.index}`);
|
||||
const handleExpand = (e) => {
|
||||
activeNode = e.target;
|
||||
};
|
||||
const handleMouseMove = (e) => {
|
||||
if (!panel.isHoverMenu || !activeNode || !hoverZone.value)
|
||||
return;
|
||||
if (activeNode.contains(e.target)) {
|
||||
clearHoverTimer();
|
||||
const el = instance.vnode.el;
|
||||
const { left } = el.getBoundingClientRect();
|
||||
const { offsetWidth, offsetHeight } = el;
|
||||
const startX = e.clientX - left;
|
||||
const top = activeNode.offsetTop;
|
||||
const bottom = top + activeNode.offsetHeight;
|
||||
hoverZone.value.innerHTML = `
|
||||
<path style="pointer-events: auto;" fill="transparent" d="M${startX} ${top} L${offsetWidth} 0 V${top} Z" />
|
||||
<path style="pointer-events: auto;" fill="transparent" d="M${startX} ${bottom} L${offsetWidth} ${offsetHeight} V${bottom} Z" />
|
||||
`;
|
||||
} else if (!hoverTimer) {
|
||||
hoverTimer = window.setTimeout(clearHoverZone, panel.config.hoverThreshold);
|
||||
}
|
||||
};
|
||||
const clearHoverTimer = () => {
|
||||
if (!hoverTimer)
|
||||
return;
|
||||
clearTimeout(hoverTimer);
|
||||
hoverTimer = void 0;
|
||||
};
|
||||
const clearHoverZone = () => {
|
||||
if (!hoverZone.value)
|
||||
return;
|
||||
hoverZone.value.innerHTML = "";
|
||||
clearHoverTimer();
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
return openBlock(), createBlock(unref(ElScrollbar), {
|
||||
key: unref(menuId),
|
||||
tag: "ul",
|
||||
role: "menu",
|
||||
class: normalizeClass(unref(ns).b()),
|
||||
"wrap-class": unref(ns).e("wrap"),
|
||||
"view-class": [unref(ns).e("list"), unref(ns).is("empty", unref(isEmpty))],
|
||||
onMousemove: handleMouseMove,
|
||||
onMouseleave: clearHoverZone
|
||||
}, {
|
||||
default: withCtx(() => {
|
||||
var _a;
|
||||
return [
|
||||
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.nodes, (node) => {
|
||||
return openBlock(), createBlock(ElCascaderNode, {
|
||||
key: node.uid,
|
||||
node,
|
||||
"menu-id": unref(menuId),
|
||||
onExpand: handleExpand
|
||||
}, null, 8, ["node", "menu-id"]);
|
||||
}), 128)),
|
||||
unref(isLoading) ? (openBlock(), createElementBlock("div", {
|
||||
key: 0,
|
||||
class: normalizeClass(unref(ns).e("empty-text"))
|
||||
}, [
|
||||
createVNode(unref(ElIcon), {
|
||||
size: "14",
|
||||
class: normalizeClass(unref(ns).is("loading"))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(unref(Loading))
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["class"]),
|
||||
createTextVNode(" " + toDisplayString(unref(t)("el.cascader.loading")), 1)
|
||||
], 2)) : unref(isEmpty) ? (openBlock(), createElementBlock("div", {
|
||||
key: 1,
|
||||
class: normalizeClass(unref(ns).e("empty-text"))
|
||||
}, [
|
||||
renderSlot(_ctx.$slots, "empty", {}, () => [
|
||||
createTextVNode(toDisplayString(unref(t)("el.cascader.noData")), 1)
|
||||
])
|
||||
], 2)) : ((_a = unref(panel)) == null ? void 0 : _a.isHoverMenu) ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
|
||||
createCommentVNode(" eslint-disable-next-line vue/html-self-closing "),
|
||||
(openBlock(), createElementBlock("svg", {
|
||||
ref_key: "hoverZone",
|
||||
ref: hoverZone,
|
||||
class: normalizeClass(unref(ns).e("hover-zone"))
|
||||
}, null, 2))
|
||||
], 2112)) : createCommentVNode("v-if", true)
|
||||
];
|
||||
}),
|
||||
_: 3
|
||||
}, 8, ["class", "wrap-class", "view-class"]);
|
||||
};
|
||||
}
|
||||
});
|
||||
var ElCascaderMenu = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "menu.vue"]]);
|
||||
|
||||
export { ElCascaderMenu as default };
|
||||
//# sourceMappingURL=menu.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/menu.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/menu.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
31
frontend/node_modules/element-plus/es/components/cascader-panel/src/menu.vue.d.ts
generated
vendored
Normal file
31
frontend/node_modules/element-plus/es/components/cascader-panel/src/menu.vue.d.ts
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
import type { CascaderNode } from './types';
|
||||
import type { PropType } from 'vue';
|
||||
declare function __VLS_template(): {
|
||||
empty?(_: {}): any;
|
||||
};
|
||||
declare const __VLS_component: import("vue").DefineComponent<{
|
||||
nodes: {
|
||||
type: PropType<CascaderNode[]>;
|
||||
required: true;
|
||||
};
|
||||
index: {
|
||||
type: NumberConstructor;
|
||||
required: true;
|
||||
};
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
||||
nodes: {
|
||||
type: PropType<CascaderNode[]>;
|
||||
required: true;
|
||||
};
|
||||
index: {
|
||||
type: NumberConstructor;
|
||||
required: true;
|
||||
};
|
||||
}>>, {}>;
|
||||
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
||||
export default _default;
|
||||
type __VLS_WithTemplateSlots<T, S> = T & {
|
||||
new (): {
|
||||
$slots: S;
|
||||
};
|
||||
};
|
||||
14
frontend/node_modules/element-plus/es/components/cascader-panel/src/node-content.d.ts
generated
vendored
Normal file
14
frontend/node_modules/element-plus/es/components/cascader-panel/src/node-content.d.ts
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
import type { PropType } from 'vue';
|
||||
import type { CascaderNode } from './types';
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
node: {
|
||||
type: PropType<CascaderNode>;
|
||||
required: true;
|
||||
};
|
||||
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
||||
node: {
|
||||
type: PropType<CascaderNode>;
|
||||
required: true;
|
||||
};
|
||||
}>>, {}>;
|
||||
export default _default;
|
||||
45
frontend/node_modules/element-plus/es/components/cascader-panel/src/node-content.mjs
generated
vendored
Normal file
45
frontend/node_modules/element-plus/es/components/cascader-panel/src/node-content.mjs
generated
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
import { defineComponent, inject, createVNode, Comment } from 'vue';
|
||||
import { CASCADER_PANEL_INJECTION_KEY } from './types.mjs';
|
||||
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
||||
import { isArray } from '@vue/shared';
|
||||
|
||||
function isVNodeEmpty(vnodes) {
|
||||
return !!(isArray(vnodes) ? vnodes.every(({
|
||||
type
|
||||
}) => type === Comment) : (vnodes == null ? void 0 : vnodes.type) === Comment);
|
||||
}
|
||||
var NodeContent = defineComponent({
|
||||
name: "NodeContent",
|
||||
props: {
|
||||
node: {
|
||||
type: Object,
|
||||
required: true
|
||||
}
|
||||
},
|
||||
setup(props) {
|
||||
const ns = useNamespace("cascader-node");
|
||||
const {
|
||||
renderLabelFn
|
||||
} = inject(CASCADER_PANEL_INJECTION_KEY);
|
||||
const {
|
||||
node
|
||||
} = props;
|
||||
const {
|
||||
data,
|
||||
label: nodeLabel
|
||||
} = node;
|
||||
const label = () => {
|
||||
const renderLabel = renderLabelFn == null ? void 0 : renderLabelFn({
|
||||
node,
|
||||
data
|
||||
});
|
||||
return isVNodeEmpty(renderLabel) ? nodeLabel : renderLabel != null ? renderLabel : nodeLabel;
|
||||
};
|
||||
return () => createVNode("span", {
|
||||
"class": ns.e("label")
|
||||
}, [label()]);
|
||||
}
|
||||
});
|
||||
|
||||
export { NodeContent as default };
|
||||
//# sourceMappingURL=node-content.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/node-content.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/node-content.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"node-content.mjs","sources":["../../../../../../packages/components/cascader-panel/src/node-content.tsx"],"sourcesContent":["import { Comment, defineComponent, inject } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { isArray } from '@element-plus/utils'\nimport { CASCADER_PANEL_INJECTION_KEY } from './types'\n\nimport type { PropType, VNode } from 'vue'\nimport type { CascaderNode } from './types'\n\nfunction isVNodeEmpty(vnodes?: VNode[] | VNode) {\n return !!(isArray(vnodes)\n ? vnodes.every(({ type }) => type === Comment)\n : vnodes?.type === Comment)\n}\n\nexport default defineComponent({\n name: 'NodeContent',\n props: {\n node: {\n type: Object as PropType<CascaderNode>,\n required: true,\n },\n },\n setup(props) {\n const ns = useNamespace('cascader-node')\n const { renderLabelFn } = inject(CASCADER_PANEL_INJECTION_KEY)!\n const { node } = props\n const { data, label: nodeLabel } = node\n\n const label = () => {\n const renderLabel = renderLabelFn?.({ node, data })\n return isVNodeEmpty(renderLabel) ? nodeLabel : (renderLabel ?? nodeLabel)\n }\n return () => <span class={ns.e('label')}>{label()}</span>\n },\n})\n"],"names":["isVNodeEmpty","vnodes","type","name","props","node","required","useNamespace","renderLabelFn","inject","label","nodeLabel","renderLabel","data"],"mappings":";;;;;;AAQA,EAASA,OAAAA,CAAAA,EAAAA,OAAAA,CAAAA,MAAaC,CAAAA,GAA0B,MAAA,CAAA,KAAA,CAAA,CAAA;IACvC,IAAA;AACaC,GAAAA,KAAAA,IAAAA,KAAAA,OAAAA,CAAAA,GAAAA,CAAAA,MAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAAA,CAAAA,IAAAA,MAAAA,OAAAA,CAAAA,CAAAA;;AAErB,kBAAA,eAAA,CAAA;;AAED,EAAA,KAAA,EAAA;AACEC,IAAAA,IAAM,EADuB;AAE7BC,MAAAA,IAAO,EAAA,MAAA;AACLC,MAAAA,QAAM,EAAA,IAAA;AACJH,KAAAA;AACAI,GAAAA;AAFI,EAAA,KAAA,CAAA,KAAA,EAAA;IAHqB,MAAA,EAAA,GAAA,YAAA,CAAA,eAAA,CAAA,CAAA;;MAQxB,aAAQ;AACX,KAAA,GAAA,MAAQ,CAAGC,4BAAY,CAAvB,CAAA;IACA,MAAM;AAAEC,MAAAA,IAAAA;KAAkBC,GAAAA,KAAAA,CAAM;IAChC,MAAM;AAAEJ,MAAAA,IAAAA;AAAF,MAAA,KAAN,EAAA,SAAA;KACM,GAAA,IAAA,CAAA;UAAA,KAAA,GAAA,MAAA;AAAQK,MAAAA,MAAOC,WAAAA,GAAAA,aAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAAA,CAAAA;AAAf,QAA6BN,IAAnC;;OAEMK,CAAAA,CAAAA;MACJ,OAAME,YAAcJ,CAAAA,WAAAA,CAAAA,GAAgB,SAAA,GAAA,WAAA,IAAA,IAAA,GAAA,WAAA,GAAA,SAAA,CAAA;;AAAQK,IAAAA,OAAAA,MAAAA,WAAAA,CAAAA,MAAAA,EAAAA;AAAR,MAAA,OAApC,EAAA,EAAA,CAAA,CAAA,CAAA,OAAA,CAAA;OACOb,CAAAA,KAAAA,EAAAA,CAAAA,CAAAA,CAAAA;;;;;;"}
|
||||
50
frontend/node_modules/element-plus/es/components/cascader-panel/src/node.d.ts
generated
vendored
Normal file
50
frontend/node_modules/element-plus/es/components/cascader-panel/src/node.d.ts
generated
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
import type { CascaderConfig, CascaderNodePathValue, CascaderNodeValue, CascaderOption } from './types';
|
||||
type ChildrenData = CascaderOption[] | undefined;
|
||||
declare class Node {
|
||||
readonly data: CascaderOption;
|
||||
readonly config: CascaderConfig;
|
||||
readonly parent?: Node | undefined;
|
||||
readonly root: boolean;
|
||||
readonly uid: number;
|
||||
readonly level: number;
|
||||
readonly value: CascaderNodeValue;
|
||||
readonly label: string;
|
||||
readonly pathNodes: Node[];
|
||||
readonly pathValues: CascaderNodePathValue;
|
||||
readonly pathLabels: string[];
|
||||
childrenData: ChildrenData;
|
||||
children: Node[];
|
||||
text: string;
|
||||
loaded: boolean;
|
||||
/**
|
||||
* Is it checked
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
checked: boolean;
|
||||
/**
|
||||
* Used to indicate the intermediate state of unchecked and fully checked child nodes
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
indeterminate: boolean;
|
||||
/**
|
||||
* Loading Status
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
loading: boolean;
|
||||
constructor(data: CascaderOption, config: CascaderConfig, parent?: Node | undefined, root?: boolean);
|
||||
get isDisabled(): boolean;
|
||||
get isLeaf(): boolean;
|
||||
get valueByOption(): CascaderNodeValue | CascaderNodePathValue;
|
||||
appendChild(childData: CascaderOption): Node;
|
||||
calcText(allLevels: boolean, separator: string): string;
|
||||
broadcast(checked: boolean): void;
|
||||
emit(): void;
|
||||
onParentCheck(checked: boolean): void;
|
||||
onChildCheck(): void;
|
||||
setCheckState(checked: boolean): void;
|
||||
doCheck(checked: boolean): void;
|
||||
}
|
||||
export default Node;
|
||||
121
frontend/node_modules/element-plus/es/components/cascader-panel/src/node.mjs
generated
vendored
Normal file
121
frontend/node_modules/element-plus/es/components/cascader-panel/src/node.mjs
generated
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
import { isEmpty, isUndefined } from '../../../utils/types.mjs';
|
||||
import { isFunction, isArray } from '@vue/shared';
|
||||
|
||||
let uid = 0;
|
||||
const calculatePathNodes = (node) => {
|
||||
const nodes = [node];
|
||||
let { parent } = node;
|
||||
while (parent) {
|
||||
nodes.unshift(parent);
|
||||
parent = parent.parent;
|
||||
}
|
||||
return nodes;
|
||||
};
|
||||
class Node {
|
||||
constructor(data, config, parent, root = false) {
|
||||
this.data = data;
|
||||
this.config = config;
|
||||
this.parent = parent;
|
||||
this.root = root;
|
||||
this.uid = uid++;
|
||||
this.checked = false;
|
||||
this.indeterminate = false;
|
||||
this.loading = false;
|
||||
const { value: valueKey, label: labelKey, children: childrenKey } = config;
|
||||
const childrenData = data[childrenKey];
|
||||
const pathNodes = calculatePathNodes(this);
|
||||
this.level = root ? 0 : parent ? parent.level + 1 : 1;
|
||||
this.value = data[valueKey];
|
||||
this.label = data[labelKey];
|
||||
this.pathNodes = pathNodes;
|
||||
this.pathValues = pathNodes.map((node) => node.value);
|
||||
this.pathLabels = pathNodes.map((node) => node.label);
|
||||
this.childrenData = childrenData;
|
||||
this.children = (childrenData || []).map((child) => new Node(child, config, this));
|
||||
this.loaded = !config.lazy || this.isLeaf || !isEmpty(childrenData);
|
||||
this.text = "";
|
||||
}
|
||||
get isDisabled() {
|
||||
const { data, parent, config } = this;
|
||||
const { disabled, checkStrictly } = config;
|
||||
const isDisabled = isFunction(disabled) ? disabled(data, this) : !!data[disabled];
|
||||
return isDisabled || !checkStrictly && !!(parent == null ? void 0 : parent.isDisabled);
|
||||
}
|
||||
get isLeaf() {
|
||||
const { data, config, childrenData, loaded } = this;
|
||||
const { lazy, leaf } = config;
|
||||
const isLeaf = isFunction(leaf) ? leaf(data, this) : data[leaf];
|
||||
return isUndefined(isLeaf) ? lazy && !loaded ? false : !(isArray(childrenData) && childrenData.length) : !!isLeaf;
|
||||
}
|
||||
get valueByOption() {
|
||||
return this.config.emitPath ? this.pathValues : this.value;
|
||||
}
|
||||
appendChild(childData) {
|
||||
const { childrenData, children } = this;
|
||||
const node = new Node(childData, this.config, this);
|
||||
if (isArray(childrenData)) {
|
||||
childrenData.push(childData);
|
||||
} else {
|
||||
this.childrenData = [childData];
|
||||
}
|
||||
children.push(node);
|
||||
return node;
|
||||
}
|
||||
calcText(allLevels, separator) {
|
||||
const text = allLevels ? this.pathLabels.join(separator) : this.label;
|
||||
this.text = text;
|
||||
return text;
|
||||
}
|
||||
broadcast(checked) {
|
||||
this.children.forEach((child) => {
|
||||
var _a;
|
||||
if (child) {
|
||||
child.broadcast(checked);
|
||||
(_a = child.onParentCheck) == null ? void 0 : _a.call(child, checked);
|
||||
}
|
||||
});
|
||||
}
|
||||
emit() {
|
||||
var _a;
|
||||
const { parent } = this;
|
||||
if (parent) {
|
||||
(_a = parent.onChildCheck) == null ? void 0 : _a.call(parent);
|
||||
parent.emit();
|
||||
}
|
||||
}
|
||||
onParentCheck(checked) {
|
||||
if (!this.isDisabled) {
|
||||
this.setCheckState(checked);
|
||||
}
|
||||
}
|
||||
onChildCheck() {
|
||||
const { children } = this;
|
||||
const validChildren = children.filter((child) => !child.isDisabled);
|
||||
const checked = validChildren.length ? validChildren.every((child) => child.checked) : false;
|
||||
this.setCheckState(checked);
|
||||
}
|
||||
setCheckState(checked) {
|
||||
const totalNum = this.children.length;
|
||||
const checkedNum = this.children.reduce((c, p) => {
|
||||
const num = p.checked ? 1 : p.indeterminate ? 0.5 : 0;
|
||||
return c + num;
|
||||
}, 0);
|
||||
this.checked = this.loaded && this.children.filter((child) => !child.isDisabled).every((child) => child.loaded && child.checked) && checked;
|
||||
this.indeterminate = this.loaded && checkedNum !== totalNum && checkedNum > 0;
|
||||
}
|
||||
doCheck(checked) {
|
||||
if (this.checked === checked)
|
||||
return;
|
||||
const { checkStrictly, multiple } = this.config;
|
||||
if (checkStrictly || !multiple) {
|
||||
this.checked = checked;
|
||||
} else {
|
||||
this.broadcast(checked);
|
||||
this.setCheckState(checked);
|
||||
this.emit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export { Node as default };
|
||||
//# sourceMappingURL=node.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/node.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/node.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
20
frontend/node_modules/element-plus/es/components/cascader-panel/src/node.vue.d.ts
generated
vendored
Normal file
20
frontend/node_modules/element-plus/es/components/cascader-panel/src/node.vue.d.ts
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
import type { CascaderNode } from './types';
|
||||
import type { PropType } from 'vue';
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
node: {
|
||||
type: PropType<CascaderNode>;
|
||||
required: true;
|
||||
};
|
||||
menuId: StringConstructor;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
||||
expand: (...args: any[]) => void;
|
||||
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
||||
node: {
|
||||
type: PropType<CascaderNode>;
|
||||
required: true;
|
||||
};
|
||||
menuId: StringConstructor;
|
||||
}>> & {
|
||||
onExpand?: ((...args: any[]) => any) | undefined;
|
||||
}, {}>;
|
||||
export default _default;
|
||||
183
frontend/node_modules/element-plus/es/components/cascader-panel/src/node2.mjs
generated
vendored
Normal file
183
frontend/node_modules/element-plus/es/components/cascader-panel/src/node2.mjs
generated
vendored
Normal file
@@ -0,0 +1,183 @@
|
||||
import { defineComponent, inject, computed, openBlock, createElementBlock, unref, normalizeClass, createCommentVNode, createBlock, withModifiers, withCtx, createElementVNode, createVNode, Fragment } from 'vue';
|
||||
import { ElCheckbox } from '../../checkbox/index.mjs';
|
||||
import { ElRadio } from '../../radio/index.mjs';
|
||||
import { ElIcon } from '../../icon/index.mjs';
|
||||
import { Check, Loading, ArrowRight } from '@element-plus/icons-vue';
|
||||
import NodeContent from './node-content.mjs';
|
||||
import { CASCADER_PANEL_INJECTION_KEY } from './types.mjs';
|
||||
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
|
||||
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
||||
|
||||
const __default__ = defineComponent({
|
||||
name: "ElCascaderNode"
|
||||
});
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
...__default__,
|
||||
props: {
|
||||
node: {
|
||||
type: Object,
|
||||
required: true
|
||||
},
|
||||
menuId: String
|
||||
},
|
||||
emits: ["expand"],
|
||||
setup(__props, { emit }) {
|
||||
const props = __props;
|
||||
const panel = inject(CASCADER_PANEL_INJECTION_KEY);
|
||||
const ns = useNamespace("cascader-node");
|
||||
const isHoverMenu = computed(() => panel.isHoverMenu);
|
||||
const multiple = computed(() => panel.config.multiple);
|
||||
const checkStrictly = computed(() => panel.config.checkStrictly);
|
||||
const showPrefix = computed(() => panel.config.showPrefix);
|
||||
const checkedNodeId = computed(() => {
|
||||
var _a;
|
||||
return (_a = panel.checkedNodes[0]) == null ? void 0 : _a.uid;
|
||||
});
|
||||
const isDisabled = computed(() => props.node.isDisabled);
|
||||
const isLeaf = computed(() => props.node.isLeaf);
|
||||
const expandable = computed(() => checkStrictly.value && !isLeaf.value || !isDisabled.value);
|
||||
const inExpandingPath = computed(() => isInPath(panel.expandingNode));
|
||||
const inCheckedPath = computed(() => checkStrictly.value && panel.checkedNodes.some(isInPath));
|
||||
const isInPath = (node) => {
|
||||
var _a;
|
||||
const { level, uid } = props.node;
|
||||
return ((_a = node == null ? void 0 : node.pathNodes[level - 1]) == null ? void 0 : _a.uid) === uid;
|
||||
};
|
||||
const doExpand = () => {
|
||||
if (inExpandingPath.value)
|
||||
return;
|
||||
panel.expandNode(props.node);
|
||||
};
|
||||
const doCheck = (checked) => {
|
||||
const { node } = props;
|
||||
if (checked === node.checked)
|
||||
return;
|
||||
panel.handleCheckChange(node, checked);
|
||||
};
|
||||
const doLoad = () => {
|
||||
panel.lazyLoad(props.node, () => {
|
||||
if (!isLeaf.value)
|
||||
doExpand();
|
||||
});
|
||||
};
|
||||
const handleHoverExpand = (e) => {
|
||||
if (!isHoverMenu.value)
|
||||
return;
|
||||
handleExpand();
|
||||
!isLeaf.value && emit("expand", e);
|
||||
};
|
||||
const handleExpand = () => {
|
||||
const { node } = props;
|
||||
if (!expandable.value || node.loading)
|
||||
return;
|
||||
node.loaded ? doExpand() : doLoad();
|
||||
};
|
||||
const handleClick = () => {
|
||||
if (isLeaf.value && !isDisabled.value && !checkStrictly.value && !multiple.value) {
|
||||
handleCheck(true);
|
||||
} else if ((panel.config.checkOnClickNode && (multiple.value || checkStrictly.value) || isLeaf.value && panel.config.checkOnClickLeaf) && !isDisabled.value) {
|
||||
handleSelectCheck(!props.node.checked);
|
||||
} else if (!isHoverMenu.value) {
|
||||
handleExpand();
|
||||
}
|
||||
};
|
||||
const handleSelectCheck = (checked) => {
|
||||
if (checkStrictly.value) {
|
||||
doCheck(checked);
|
||||
if (props.node.loaded) {
|
||||
doExpand();
|
||||
}
|
||||
} else {
|
||||
handleCheck(checked);
|
||||
}
|
||||
};
|
||||
const handleCheck = (checked) => {
|
||||
if (!props.node.loaded) {
|
||||
doLoad();
|
||||
} else {
|
||||
doCheck(checked);
|
||||
!checkStrictly.value && doExpand();
|
||||
}
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
return openBlock(), createElementBlock("li", {
|
||||
id: `${__props.menuId}-${__props.node.uid}`,
|
||||
role: "menuitem",
|
||||
"aria-haspopup": !unref(isLeaf),
|
||||
"aria-owns": unref(isLeaf) ? void 0 : __props.menuId,
|
||||
"aria-expanded": unref(inExpandingPath),
|
||||
tabindex: unref(expandable) ? -1 : void 0,
|
||||
class: normalizeClass([
|
||||
unref(ns).b(),
|
||||
unref(ns).is("selectable", unref(checkStrictly)),
|
||||
unref(ns).is("active", __props.node.checked),
|
||||
unref(ns).is("disabled", !unref(expandable)),
|
||||
unref(inExpandingPath) && "in-active-path",
|
||||
unref(inCheckedPath) && "in-checked-path"
|
||||
]),
|
||||
onMouseenter: handleHoverExpand,
|
||||
onFocus: handleHoverExpand,
|
||||
onClick: handleClick
|
||||
}, [
|
||||
createCommentVNode(" prefix "),
|
||||
unref(multiple) && unref(showPrefix) ? (openBlock(), createBlock(unref(ElCheckbox), {
|
||||
key: 0,
|
||||
"model-value": __props.node.checked,
|
||||
indeterminate: __props.node.indeterminate,
|
||||
disabled: unref(isDisabled),
|
||||
onClick: withModifiers(() => {
|
||||
}, ["stop"]),
|
||||
"onUpdate:modelValue": handleSelectCheck
|
||||
}, null, 8, ["model-value", "indeterminate", "disabled", "onClick"])) : unref(checkStrictly) && unref(showPrefix) ? (openBlock(), createBlock(unref(ElRadio), {
|
||||
key: 1,
|
||||
"model-value": unref(checkedNodeId),
|
||||
label: __props.node.uid,
|
||||
disabled: unref(isDisabled),
|
||||
"onUpdate:modelValue": handleSelectCheck,
|
||||
onClick: withModifiers(() => {
|
||||
}, ["stop"])
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createCommentVNode("\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 "),
|
||||
createElementVNode("span")
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["model-value", "label", "disabled", "onClick"])) : unref(isLeaf) && __props.node.checked ? (openBlock(), createBlock(unref(ElIcon), {
|
||||
key: 2,
|
||||
class: normalizeClass(unref(ns).e("prefix"))
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(unref(Check))
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["class"])) : createCommentVNode("v-if", true),
|
||||
createCommentVNode(" content "),
|
||||
createVNode(unref(NodeContent), { node: __props.node }, null, 8, ["node"]),
|
||||
createCommentVNode(" postfix "),
|
||||
!unref(isLeaf) ? (openBlock(), createElementBlock(Fragment, { key: 3 }, [
|
||||
__props.node.loading ? (openBlock(), createBlock(unref(ElIcon), {
|
||||
key: 0,
|
||||
class: normalizeClass([unref(ns).is("loading"), unref(ns).e("postfix")])
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(unref(Loading))
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["class"])) : (openBlock(), createBlock(unref(ElIcon), {
|
||||
key: 1,
|
||||
class: normalizeClass(["arrow-right", unref(ns).e("postfix")])
|
||||
}, {
|
||||
default: withCtx(() => [
|
||||
createVNode(unref(ArrowRight))
|
||||
]),
|
||||
_: 1
|
||||
}, 8, ["class"]))
|
||||
], 64)) : createCommentVNode("v-if", true)
|
||||
], 42, ["id", "aria-haspopup", "aria-owns", "aria-expanded", "tabindex"]);
|
||||
};
|
||||
}
|
||||
});
|
||||
var ElCascaderNode = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "node.vue"]]);
|
||||
|
||||
export { ElCascaderNode as default };
|
||||
//# sourceMappingURL=node2.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/node2.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/node2.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
17
frontend/node_modules/element-plus/es/components/cascader-panel/src/store.d.ts
generated
vendored
Normal file
17
frontend/node_modules/element-plus/es/components/cascader-panel/src/store.d.ts
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
import Node from './node';
|
||||
import type { Nullable } from 'element-plus/es/utils';
|
||||
import type { CascaderConfig, CascaderNodePathValue, CascaderNodeValue, CascaderOption } from './types';
|
||||
export default class Store {
|
||||
readonly config: CascaderConfig;
|
||||
readonly nodes: Node[];
|
||||
readonly allNodes: Node[];
|
||||
readonly leafNodes: Node[];
|
||||
constructor(data: CascaderOption[], config: CascaderConfig);
|
||||
getNodes(): Node[];
|
||||
getFlattedNodes(leafOnly: boolean): Node[];
|
||||
appendNode(nodeData: CascaderOption, parentNode?: Node): void;
|
||||
appendNodes(nodeDataList: CascaderOption[], parentNode: Node): void;
|
||||
appendAllNodesAndLeafNodes(node: Node): void;
|
||||
getNodeByValue(value: CascaderNodeValue | CascaderNodePathValue, leafOnly?: boolean): Nullable<Node>;
|
||||
getSameNode(node: Node): Nullable<Node>;
|
||||
}
|
||||
67
frontend/node_modules/element-plus/es/components/cascader-panel/src/store.mjs
generated
vendored
Normal file
67
frontend/node_modules/element-plus/es/components/cascader-panel/src/store.mjs
generated
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
import { isEqual } from 'lodash-unified';
|
||||
import Node from './node.mjs';
|
||||
import { isPropAbsent } from '../../../utils/types.mjs';
|
||||
|
||||
const flatNodes = (nodes, leafOnly) => {
|
||||
return nodes.reduce((res, node) => {
|
||||
if (node.isLeaf) {
|
||||
res.push(node);
|
||||
} else {
|
||||
!leafOnly && res.push(node);
|
||||
res = res.concat(flatNodes(node.children, leafOnly));
|
||||
}
|
||||
return res;
|
||||
}, []);
|
||||
};
|
||||
class Store {
|
||||
constructor(data, config) {
|
||||
this.config = config;
|
||||
const nodes = (data || []).map((nodeData) => new Node(nodeData, this.config));
|
||||
this.nodes = nodes;
|
||||
this.allNodes = flatNodes(nodes, false);
|
||||
this.leafNodes = flatNodes(nodes, true);
|
||||
}
|
||||
getNodes() {
|
||||
return this.nodes;
|
||||
}
|
||||
getFlattedNodes(leafOnly) {
|
||||
return leafOnly ? this.leafNodes : this.allNodes;
|
||||
}
|
||||
appendNode(nodeData, parentNode) {
|
||||
const node = parentNode ? parentNode.appendChild(nodeData) : new Node(nodeData, this.config);
|
||||
if (!parentNode)
|
||||
this.nodes.push(node);
|
||||
this.appendAllNodesAndLeafNodes(node);
|
||||
}
|
||||
appendNodes(nodeDataList, parentNode) {
|
||||
if (nodeDataList.length > 0) {
|
||||
nodeDataList.forEach((nodeData) => this.appendNode(nodeData, parentNode));
|
||||
} else {
|
||||
parentNode && parentNode.isLeaf && this.leafNodes.push(parentNode);
|
||||
}
|
||||
}
|
||||
appendAllNodesAndLeafNodes(node) {
|
||||
this.allNodes.push(node);
|
||||
node.isLeaf && this.leafNodes.push(node);
|
||||
if (node.children) {
|
||||
node.children.forEach((subNode) => {
|
||||
this.appendAllNodesAndLeafNodes(subNode);
|
||||
});
|
||||
}
|
||||
}
|
||||
getNodeByValue(value, leafOnly = false) {
|
||||
if (isPropAbsent(value))
|
||||
return null;
|
||||
const node = this.getFlattedNodes(leafOnly).find((node2) => isEqual(node2.value, value) || isEqual(node2.pathValues, value));
|
||||
return node || null;
|
||||
}
|
||||
getSameNode(node) {
|
||||
if (!node)
|
||||
return null;
|
||||
const node_ = this.getFlattedNodes(false).find(({ value, level }) => isEqual(node.value, value) && node.level === level);
|
||||
return node_ || null;
|
||||
}
|
||||
}
|
||||
|
||||
export { Store as default };
|
||||
//# sourceMappingURL=store.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/store.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/store.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
61
frontend/node_modules/element-plus/es/components/cascader-panel/src/types.d.ts
generated
vendored
Normal file
61
frontend/node_modules/element-plus/es/components/cascader-panel/src/types.d.ts
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
import type { InjectionKey, VNode } from 'vue';
|
||||
import type { Nullable } from 'element-plus/es/utils';
|
||||
import type { default as CascaderNode } from './node';
|
||||
export type { CascaderNode, Nullable };
|
||||
export type CascaderNodeValue = string | number | Record<string, any>;
|
||||
export type CascaderNodePathValue = CascaderNodeValue[];
|
||||
export type CascaderValue = CascaderNodeValue | CascaderNodePathValue | (CascaderNodeValue | CascaderNodePathValue)[];
|
||||
export type CascaderConfig = Required<CascaderProps>;
|
||||
export type ExpandTrigger = 'click' | 'hover';
|
||||
export type isDisabled = (data: CascaderOption, node: CascaderNode) => boolean;
|
||||
export type isLeaf = (data: CascaderOption, node: CascaderNode) => boolean;
|
||||
export type Resolve = (dataList?: CascaderOption[]) => void;
|
||||
export type LazyLoad = (node: CascaderNode, resolve: Resolve, reject: () => void) => void;
|
||||
export interface RenderLabelProps {
|
||||
node: CascaderNode;
|
||||
data: CascaderOption;
|
||||
}
|
||||
export type RenderLabel = (props: RenderLabelProps) => VNode | VNode[];
|
||||
export interface CascaderOption extends Record<string, unknown> {
|
||||
label?: string;
|
||||
value?: CascaderNodeValue;
|
||||
children?: CascaderOption[];
|
||||
disabled?: boolean;
|
||||
leaf?: boolean;
|
||||
}
|
||||
export interface CascaderProps {
|
||||
expandTrigger?: ExpandTrigger;
|
||||
multiple?: boolean;
|
||||
checkStrictly?: boolean;
|
||||
emitPath?: boolean;
|
||||
lazy?: boolean;
|
||||
lazyLoad?: LazyLoad;
|
||||
value?: string;
|
||||
label?: string;
|
||||
children?: string;
|
||||
disabled?: string | isDisabled;
|
||||
leaf?: string | isLeaf;
|
||||
hoverThreshold?: number;
|
||||
checkOnClickNode?: boolean;
|
||||
checkOnClickLeaf?: boolean;
|
||||
showPrefix?: boolean;
|
||||
}
|
||||
export interface Tag {
|
||||
node?: CascaderNode;
|
||||
key: number;
|
||||
text: string;
|
||||
hitState?: boolean;
|
||||
closable: boolean;
|
||||
}
|
||||
export interface ElCascaderPanelContext {
|
||||
config: CascaderConfig;
|
||||
expandingNode: CascaderNode | undefined;
|
||||
checkedNodes: CascaderNode[];
|
||||
isHoverMenu: boolean;
|
||||
initialLoaded: boolean;
|
||||
renderLabelFn: RenderLabel;
|
||||
lazyLoad: (node?: CascaderNode, cb?: (dataList: CascaderOption[]) => void) => void;
|
||||
expandNode: (node: CascaderNode, silent?: boolean) => void;
|
||||
handleCheckChange: (node: CascaderNode, checked: boolean, emitClose?: boolean) => void;
|
||||
}
|
||||
export declare const CASCADER_PANEL_INJECTION_KEY: InjectionKey<ElCascaderPanelContext>;
|
||||
4
frontend/node_modules/element-plus/es/components/cascader-panel/src/types.mjs
generated
vendored
Normal file
4
frontend/node_modules/element-plus/es/components/cascader-panel/src/types.mjs
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
const CASCADER_PANEL_INJECTION_KEY = Symbol();
|
||||
|
||||
export { CASCADER_PANEL_INJECTION_KEY };
|
||||
//# sourceMappingURL=types.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/types.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/types.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"types.mjs","sources":["../../../../../../packages/components/cascader-panel/src/types.ts"],"sourcesContent":["import type { InjectionKey, VNode } from 'vue'\nimport type { Nullable } from '@element-plus/utils'\nimport type { default as CascaderNode } from './node'\n\nexport type { CascaderNode, Nullable }\nexport type CascaderNodeValue = string | number | Record<string, any>\nexport type CascaderNodePathValue = CascaderNodeValue[]\nexport type CascaderValue =\n | CascaderNodeValue\n | CascaderNodePathValue\n | (CascaderNodeValue | CascaderNodePathValue)[]\nexport type CascaderConfig = Required<CascaderProps>\nexport type ExpandTrigger = 'click' | 'hover'\nexport type isDisabled = (data: CascaderOption, node: CascaderNode) => boolean\nexport type isLeaf = (data: CascaderOption, node: CascaderNode) => boolean\nexport type Resolve = (dataList?: CascaderOption[]) => void\nexport type LazyLoad = (\n node: CascaderNode,\n resolve: Resolve,\n reject: () => void\n) => void\nexport interface RenderLabelProps {\n node: CascaderNode\n data: CascaderOption\n}\nexport type RenderLabel = (props: RenderLabelProps) => VNode | VNode[]\nexport interface CascaderOption extends Record<string, unknown> {\n label?: string\n value?: CascaderNodeValue\n children?: CascaderOption[]\n disabled?: boolean\n leaf?: boolean\n}\n\nexport interface CascaderProps {\n expandTrigger?: ExpandTrigger\n multiple?: boolean\n checkStrictly?: boolean\n emitPath?: boolean\n lazy?: boolean\n lazyLoad?: LazyLoad\n value?: string\n label?: string\n children?: string\n disabled?: string | isDisabled\n leaf?: string | isLeaf\n hoverThreshold?: number\n checkOnClickNode?: boolean\n checkOnClickLeaf?: boolean\n showPrefix?: boolean\n}\n\nexport interface Tag {\n node?: CascaderNode\n key: number\n text: string\n hitState?: boolean\n closable: boolean\n}\n\nexport interface ElCascaderPanelContext {\n config: CascaderConfig\n expandingNode: CascaderNode | undefined\n checkedNodes: CascaderNode[]\n isHoverMenu: boolean\n initialLoaded: boolean\n renderLabelFn: RenderLabel\n lazyLoad: (\n node?: CascaderNode,\n cb?: (dataList: CascaderOption[]) => void\n ) => void\n expandNode: (node: CascaderNode, silent?: boolean) => void\n handleCheckChange: (\n node: CascaderNode,\n checked: boolean,\n emitClose?: boolean\n ) => void\n}\n\nexport const CASCADER_PANEL_INJECTION_KEY: InjectionKey<ElCascaderPanelContext> =\n Symbol()\n"],"names":[],"mappings":"AAAY,MAAC,4BAA4B,GAAG,MAAM;;;;"}
|
||||
4
frontend/node_modules/element-plus/es/components/cascader-panel/src/utils.d.ts
generated
vendored
Normal file
4
frontend/node_modules/element-plus/es/components/cascader-panel/src/utils.d.ts
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import type { CascaderNode } from './types';
|
||||
export declare const getMenuIndex: (el: HTMLElement) => number;
|
||||
export declare const checkNode: (el: HTMLElement) => void;
|
||||
export declare const sortByOriginalOrder: (oldNodes: CascaderNode[], newNodes: CascaderNode[]) => CascaderNode[];
|
||||
36
frontend/node_modules/element-plus/es/components/cascader-panel/src/utils.mjs
generated
vendored
Normal file
36
frontend/node_modules/element-plus/es/components/cascader-panel/src/utils.mjs
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
import { isLeaf } from '../../../utils/dom/aria.mjs';
|
||||
|
||||
const getMenuIndex = (el) => {
|
||||
if (!el)
|
||||
return 0;
|
||||
const pieces = el.id.split("-");
|
||||
return Number(pieces[pieces.length - 2]);
|
||||
};
|
||||
const checkNode = (el) => {
|
||||
if (!el)
|
||||
return;
|
||||
const input = el.querySelector("input");
|
||||
if (input) {
|
||||
input.click();
|
||||
} else if (isLeaf(el)) {
|
||||
el.click();
|
||||
}
|
||||
};
|
||||
const sortByOriginalOrder = (oldNodes, newNodes) => {
|
||||
const newNodesCopy = newNodes.slice(0);
|
||||
const newIds = newNodesCopy.map((node) => node.uid);
|
||||
const res = oldNodes.reduce((acc, item) => {
|
||||
const index = newIds.indexOf(item.uid);
|
||||
if (index > -1) {
|
||||
acc.push(item);
|
||||
newNodesCopy.splice(index, 1);
|
||||
newIds.splice(index, 1);
|
||||
}
|
||||
return acc;
|
||||
}, []);
|
||||
res.push(...newNodesCopy);
|
||||
return res;
|
||||
};
|
||||
|
||||
export { checkNode, getMenuIndex, sortByOriginalOrder };
|
||||
//# sourceMappingURL=utils.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/utils.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/cascader-panel/src/utils.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"utils.mjs","sources":["../../../../../../packages/components/cascader-panel/src/utils.ts"],"sourcesContent":["import { isLeaf } from '@element-plus/utils'\n\nimport type { CascaderNode } from './types'\n\nexport const getMenuIndex = (el: HTMLElement) => {\n if (!el) return 0\n const pieces = el.id.split('-')\n return Number(pieces[pieces.length - 2])\n}\n\nexport const checkNode = (el: HTMLElement) => {\n if (!el) return\n\n const input = el.querySelector('input')\n if (input) {\n input.click()\n } else if (isLeaf(el)) {\n el.click()\n }\n}\n\nexport const sortByOriginalOrder = (\n oldNodes: CascaderNode[],\n newNodes: CascaderNode[]\n) => {\n const newNodesCopy = newNodes.slice(0)\n const newIds = newNodesCopy.map((node) => node.uid)\n const res = oldNodes.reduce((acc, item) => {\n const index = newIds.indexOf(item.uid)\n if (index > -1) {\n acc.push(item)\n newNodesCopy.splice(index, 1)\n newIds.splice(index, 1)\n }\n return acc\n }, [] as CascaderNode[])\n\n res.push(...newNodesCopy)\n\n return res\n}\n"],"names":[],"mappings":";;AACY,MAAC,YAAY,GAAG,CAAC,EAAE,KAAK;AACpC,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,OAAO,CAAC,CAAC;AACb,EAAE,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClC,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3C,EAAE;AACU,MAAC,SAAS,GAAG,CAAC,EAAE,KAAK;AACjC,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,OAAO;AACX,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC1C,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;AAClB,GAAG,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE;AACzB,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;AACf,GAAG;AACH,EAAE;AACU,MAAC,mBAAmB,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK;AAC3D,EAAE,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,EAAE,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;AACtD,EAAE,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK;AAC7C,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACpB,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACpC,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,EAAE,EAAE,CAAC,CAAC;AACT,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;AAC5B,EAAE,OAAO,GAAG,CAAC;AACb;;;;"}
|
||||
5
frontend/node_modules/element-plus/es/components/cascader-panel/style/css.d.ts
generated
vendored
Normal file
5
frontend/node_modules/element-plus/es/components/cascader-panel/style/css.d.ts
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
import 'element-plus/es/components/base/style/css';
|
||||
import 'element-plus/theme-chalk/el-cascader-panel.css';
|
||||
import 'element-plus/es/components/checkbox/style/css';
|
||||
import 'element-plus/es/components/radio/style/css';
|
||||
import 'element-plus/es/components/scrollbar/style/css';
|
||||
6
frontend/node_modules/element-plus/es/components/cascader-panel/style/css.mjs
generated
vendored
Normal file
6
frontend/node_modules/element-plus/es/components/cascader-panel/style/css.mjs
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
import '../../base/style/css.mjs';
|
||||
import 'element-plus/theme-chalk/el-cascader-panel.css';
|
||||
import '../../checkbox/style/css.mjs';
|
||||
import '../../radio/style/css.mjs';
|
||||
import '../../scrollbar/style/css.mjs';
|
||||
//# sourceMappingURL=css.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/cascader-panel/style/css.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/cascader-panel/style/css.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
||||
5
frontend/node_modules/element-plus/es/components/cascader-panel/style/index.d.ts
generated
vendored
Normal file
5
frontend/node_modules/element-plus/es/components/cascader-panel/style/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
import 'element-plus/es/components/base/style';
|
||||
import 'element-plus/theme-chalk/src/cascader-panel.scss';
|
||||
import 'element-plus/es/components/checkbox/style';
|
||||
import 'element-plus/es/components/radio/style';
|
||||
import 'element-plus/es/components/scrollbar/style';
|
||||
6
frontend/node_modules/element-plus/es/components/cascader-panel/style/index.mjs
generated
vendored
Normal file
6
frontend/node_modules/element-plus/es/components/cascader-panel/style/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
import '../../base/style/index.mjs';
|
||||
import 'element-plus/theme-chalk/src/cascader-panel.scss';
|
||||
import '../../checkbox/style/index.mjs';
|
||||
import '../../radio/style/index.mjs';
|
||||
import '../../scrollbar/style/index.mjs';
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/cascader-panel/style/index.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/cascader-panel/style/index.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
||||
Reference in New Issue
Block a user