vxe-pc-ui 4.15.3 → 4.15.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.esm.js +105 -59
- package/es/cascader/src/cascader.js +72 -30
- package/es/tree-select/src/tree-select.js +14 -18
- package/es/ui/index.js +4 -1
- package/es/ui/src/log.js +10 -6
- package/lib/cascader/src/cascader.js +80 -33
- package/lib/cascader/src/cascader.min.js +1 -1
- package/lib/index.umd.js +102 -46
- package/lib/index.umd.min.js +1 -1
- package/lib/tree-select/src/tree-select.js +7 -7
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +4 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +11 -5
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +1 -1
- package/packages/cascader/src/cascader.ts +71 -31
- package/packages/tree-select/src/tree-select.ts +14 -18
- package/packages/ui/index.ts +3 -0
- package/packages/ui/src/log.ts +11 -6
- package/types/components/cascader.d.ts +4 -0
- /package/es/icon/{iconfont.1781852740683.ttf → iconfont.1781876596706.ttf} +0 -0
- /package/es/icon/{iconfont.1781852740683.woff → iconfont.1781876596706.woff} +0 -0
- /package/es/icon/{iconfont.1781852740683.woff2 → iconfont.1781876596706.woff2} +0 -0
- /package/es/{iconfont.1781852740683.ttf → iconfont.1781876596706.ttf} +0 -0
- /package/es/{iconfont.1781852740683.woff → iconfont.1781876596706.woff} +0 -0
- /package/es/{iconfont.1781852740683.woff2 → iconfont.1781876596706.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1781852740683.ttf → iconfont.1781876596706.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1781852740683.woff → iconfont.1781876596706.woff} +0 -0
- /package/lib/icon/style/{iconfont.1781852740683.woff2 → iconfont.1781876596706.woff2} +0 -0
- /package/lib/{iconfont.1781852740683.ttf → iconfont.1781876596706.ttf} +0 -0
- /package/lib/{iconfont.1781852740683.woff → iconfont.1781876596706.woff} +0 -0
- /package/lib/{iconfont.1781852740683.woff2 → iconfont.1781876596706.woff2} +0 -0
|
@@ -820,7 +820,7 @@ export default defineVxeComponent({
|
|
|
820
820
|
h('div', {
|
|
821
821
|
class: 'vxe-tree-select--header-button'
|
|
822
822
|
}, [
|
|
823
|
-
showCheckedButton && showClearButton
|
|
823
|
+
(showCheckedButton && multiple) || showClearButton
|
|
824
824
|
? h('div', {
|
|
825
825
|
class: 'vxe-tree-select--selected-btns'
|
|
826
826
|
}, [
|
|
@@ -840,24 +840,20 @@ export default defineVxeComponent({
|
|
|
840
840
|
: renderEmptyElement($xeTreeSelect)
|
|
841
841
|
])
|
|
842
842
|
: renderEmptyElement($xeTreeSelect),
|
|
843
|
-
showExpandButton
|
|
843
|
+
showExpandButton
|
|
844
844
|
? h('div', {
|
|
845
845
|
class: 'vxe-tree-select--expand-btns'
|
|
846
846
|
}, [
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
:
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
mode: 'text',
|
|
858
|
-
onClick: clearExpandPanelEvent
|
|
859
|
-
})
|
|
860
|
-
: renderEmptyElement($xeTreeSelect)
|
|
847
|
+
h(VxeButtonComponent, {
|
|
848
|
+
content: getI18n('vxe.treeSelect.allExpand'),
|
|
849
|
+
mode: 'text',
|
|
850
|
+
onClick: allExpandPanelEvent
|
|
851
|
+
}),
|
|
852
|
+
h(VxeButtonComponent, {
|
|
853
|
+
content: getI18n('vxe.treeSelect.clearExpand'),
|
|
854
|
+
mode: 'text',
|
|
855
|
+
onClick: clearExpandPanelEvent
|
|
856
|
+
})
|
|
861
857
|
])
|
|
862
858
|
: renderEmptyElement($xeTreeSelect)
|
|
863
859
|
])
|
|
@@ -920,7 +916,7 @@ export default defineVxeComponent({
|
|
|
920
916
|
}, treeScopedSlots)
|
|
921
917
|
])
|
|
922
918
|
]),
|
|
923
|
-
footerSlot || showTotalButton ||
|
|
919
|
+
footerSlot || showTotalButton || showCloseButton
|
|
924
920
|
? h('div', {
|
|
925
921
|
class: 'vxe-tree-select--panel-footer'
|
|
926
922
|
}, footerSlot
|
|
@@ -934,7 +930,7 @@ export default defineVxeComponent({
|
|
|
934
930
|
class: 'vxe-tree-select--total-btns'
|
|
935
931
|
}, getI18n('vxe.treeSelect.total', [selectVals.length]))
|
|
936
932
|
: renderEmptyElement($xeTreeSelect),
|
|
937
|
-
showCloseButton
|
|
933
|
+
showCloseButton
|
|
938
934
|
? h('div', {
|
|
939
935
|
class: 'vxe-tree-select--oper-btns'
|
|
940
936
|
}, [
|
package/es/ui/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VxeUI, setConfig, setIcon } from '@vxe-ui/core';
|
|
2
2
|
import { dynamicApp } from '../dynamics';
|
|
3
3
|
import { warnLog } from './src/log';
|
|
4
|
-
export const version = "4.15.
|
|
4
|
+
export const version = "4.15.4";
|
|
5
5
|
VxeUI.uiVersion = version;
|
|
6
6
|
VxeUI.dynamicApp = dynamicApp;
|
|
7
7
|
export function config(options) {
|
|
@@ -64,6 +64,9 @@ setConfig({
|
|
|
64
64
|
showFullLabel: true,
|
|
65
65
|
treeConfig: {
|
|
66
66
|
showIcon: true
|
|
67
|
+
},
|
|
68
|
+
filterConfig: {
|
|
69
|
+
autoExpandMode: 'first'
|
|
67
70
|
}
|
|
68
71
|
},
|
|
69
72
|
checkbox: {},
|
package/es/ui/src/log.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const
|
|
1
|
+
import { VxeUI } from '@vxe-ui/core';
|
|
2
|
+
const { log } = VxeUI;
|
|
3
|
+
const uiVersion = `ui v${"4.15.4"}`;
|
|
3
4
|
export function createComponentLog(name) {
|
|
5
|
+
const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
|
|
6
|
+
const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
|
|
7
|
+
const designVersion = VxeUI.designVersion ? `design v${VxeUI.designVersion}` : '';
|
|
4
8
|
return {
|
|
5
|
-
warnLog: log.create('warn',
|
|
6
|
-
errLog: log.create('error',
|
|
9
|
+
warnLog: log.create('warn', uiVersion + tableVersion + ganttVersion + designVersion + '] [' + name),
|
|
10
|
+
errLog: log.create('error', uiVersion + tableVersion + ganttVersion + designVersion + '] [' + name)
|
|
7
11
|
};
|
|
8
12
|
}
|
|
9
|
-
export const warnLog = log.create('warn',
|
|
10
|
-
export const errLog = log.create('error',
|
|
13
|
+
export const warnLog = log.create('warn', uiVersion);
|
|
14
|
+
export const errLog = log.create('error', uiVersion);
|
|
@@ -10,15 +10,11 @@ var _ui = require("../../ui");
|
|
|
10
10
|
var _dom = require("../../ui/src/dom");
|
|
11
11
|
var _utils = require("../../ui/src/utils");
|
|
12
12
|
var _util = require("./util");
|
|
13
|
-
var _log = require("../../ui/src/log");
|
|
14
13
|
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
15
14
|
var _list = _interopRequireDefault(require("../../list/src/list"));
|
|
16
15
|
var _input = _interopRequireDefault(require("../../input/src/input"));
|
|
17
16
|
var _button = _interopRequireDefault(require("../../button/src/button"));
|
|
18
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
-
const {
|
|
20
|
-
errLog
|
|
21
|
-
} = (0, _log.createComponentLog)('cascader');
|
|
22
18
|
/**
|
|
23
19
|
* 生成节点的唯一主键
|
|
24
20
|
*/
|
|
@@ -659,9 +655,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
659
655
|
return internalData.afterVisibleList;
|
|
660
656
|
};
|
|
661
657
|
const handleData = force => {
|
|
662
|
-
const {
|
|
663
|
-
nodeMaps
|
|
664
|
-
} = internalData;
|
|
665
658
|
let fullList = internalData.afterVisibleList;
|
|
666
659
|
if (force) {
|
|
667
660
|
// 更新数据,处理筛选和排序
|
|
@@ -670,16 +663,60 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
670
663
|
fullList = handleTreeToList();
|
|
671
664
|
}
|
|
672
665
|
const treeList = fullList.slice(0);
|
|
673
|
-
treeList.forEach((item, $index) => {
|
|
674
|
-
const nodeid = getNodeId(item);
|
|
675
|
-
const itemRest = nodeMaps[nodeid];
|
|
676
|
-
if (itemRest) {
|
|
677
|
-
itemRest.$index = $index;
|
|
678
|
-
}
|
|
679
|
-
});
|
|
680
666
|
reactData.treeList = treeList;
|
|
681
667
|
};
|
|
682
|
-
|
|
668
|
+
/**
|
|
669
|
+
* 获取第一个拥有子节点的节点
|
|
670
|
+
*/
|
|
671
|
+
function handleHasChildNodeIds(treeList, type) {
|
|
672
|
+
const childrenField = computeChildrenField.value;
|
|
673
|
+
const mapChildrenField = computeMapChildrenField.value;
|
|
674
|
+
const treeOpts = computeTreeOpts.value;
|
|
675
|
+
const {
|
|
676
|
+
transform
|
|
677
|
+
} = treeOpts;
|
|
678
|
+
const childField = transform ? mapChildrenField : childrenField;
|
|
679
|
+
const nodeIds = [];
|
|
680
|
+
let currList = treeList;
|
|
681
|
+
while (currList.length) {
|
|
682
|
+
let targetNode = null;
|
|
683
|
+
for (const item of currList) {
|
|
684
|
+
const kids = item[childField];
|
|
685
|
+
if (_xeUtils.default.isArray(kids) && kids.length > 0) {
|
|
686
|
+
targetNode = item;
|
|
687
|
+
break;
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
if (targetNode) {
|
|
691
|
+
nodeIds.push(getNodeId(targetNode));
|
|
692
|
+
currList = targetNode[childField];
|
|
693
|
+
} else {
|
|
694
|
+
const endNode = _xeUtils.default[type](currList);
|
|
695
|
+
nodeIds.push(getNodeId(endNode));
|
|
696
|
+
break;
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
return nodeIds;
|
|
700
|
+
}
|
|
701
|
+
const triggerSearchEvent = _xeUtils.default.debounce(() => {
|
|
702
|
+
handleData(true);
|
|
703
|
+
updateModelChecked();
|
|
704
|
+
const filterOpts = computeFilterOpts.value;
|
|
705
|
+
const {
|
|
706
|
+
autoExpandMode
|
|
707
|
+
} = filterOpts;
|
|
708
|
+
const {
|
|
709
|
+
afterTreeList
|
|
710
|
+
} = internalData;
|
|
711
|
+
// 默认展开第
|
|
712
|
+
if (autoExpandMode === 'first' || autoExpandMode === 'last') {
|
|
713
|
+
const stItems = handleHasChildNodeIds(afterTreeList, autoExpandMode);
|
|
714
|
+
reactData.currentItems = stItems;
|
|
715
|
+
} else {
|
|
716
|
+
handleCurrentItems();
|
|
717
|
+
}
|
|
718
|
+
updateCurrentChunk();
|
|
719
|
+
}, 350, {
|
|
683
720
|
trailing: true
|
|
684
721
|
});
|
|
685
722
|
const loadData = list => {
|
|
@@ -714,18 +751,23 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
714
751
|
currentItems
|
|
715
752
|
} = reactData;
|
|
716
753
|
const {
|
|
717
|
-
|
|
754
|
+
afterTreeList
|
|
718
755
|
} = internalData;
|
|
719
756
|
const childrenField = computeChildrenField.value;
|
|
720
|
-
const
|
|
757
|
+
const mapChildrenField = computeMapChildrenField.value;
|
|
758
|
+
const treeOpts = computeTreeOpts.value;
|
|
759
|
+
const {
|
|
760
|
+
transform
|
|
761
|
+
} = treeOpts;
|
|
762
|
+
const currentCunkList = [afterTreeList];
|
|
721
763
|
if (currentItems.length) {
|
|
722
764
|
let chunkIndex = 0;
|
|
723
765
|
let stNodeid = currentItems[chunkIndex];
|
|
724
|
-
let optList =
|
|
766
|
+
let optList = afterTreeList;
|
|
725
767
|
while (stNodeid && optList && optList.length) {
|
|
726
768
|
stNodeid = currentItems[chunkIndex++];
|
|
727
769
|
const currOption = optList.find(item => stNodeid === getNodeId(item));
|
|
728
|
-
optList = currOption ? currOption[childrenField] : [];
|
|
770
|
+
optList = currOption ? currOption[transform ? mapChildrenField : childrenField] : [];
|
|
729
771
|
if (!optList || !optList.length) {
|
|
730
772
|
break;
|
|
731
773
|
}
|
|
@@ -736,7 +778,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
736
778
|
};
|
|
737
779
|
const handleCurrentItems = () => {
|
|
738
780
|
const {
|
|
739
|
-
|
|
781
|
+
afterTreeList
|
|
740
782
|
} = internalData;
|
|
741
783
|
const selectVals = computeSelectVals.value;
|
|
742
784
|
const childrenField = computeChildrenField.value;
|
|
@@ -749,7 +791,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
749
791
|
const expandedMaps = {};
|
|
750
792
|
if (selectVals.length) {
|
|
751
793
|
const lastVal = (0, _util.enNodeValue)(_xeUtils.default.last(selectVals));
|
|
752
|
-
const stRest = _xeUtils.default.findTree(
|
|
794
|
+
const stRest = _xeUtils.default.findTree(afterTreeList, item => lastVal === getNodeId(item), {
|
|
753
795
|
children: transform ? mapChildrenField : childrenField
|
|
754
796
|
});
|
|
755
797
|
if (stRest) {
|
|
@@ -879,10 +921,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
879
921
|
};
|
|
880
922
|
});
|
|
881
923
|
};
|
|
882
|
-
const
|
|
924
|
+
const clearSelectedNode = () => {
|
|
883
925
|
internalData.indeterminateRowMaps = {};
|
|
884
926
|
internalData.selectCheckboxMaps = {};
|
|
885
927
|
reactData.updateCheckboxFlag++;
|
|
928
|
+
reactData.selectRadioKey = null;
|
|
886
929
|
updateCheckboxStatus();
|
|
887
930
|
return (0, _vue.nextTick)().then(() => {
|
|
888
931
|
return {
|
|
@@ -948,7 +991,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
948
991
|
checkedClosable
|
|
949
992
|
} = props;
|
|
950
993
|
const value = multiple ? [] : null;
|
|
951
|
-
|
|
994
|
+
clearSelectedNode().then(() => {
|
|
952
995
|
if (checkedClosable) {
|
|
953
996
|
hideOptionPanel($event);
|
|
954
997
|
}
|
|
@@ -1047,12 +1090,17 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1047
1090
|
} = internalData;
|
|
1048
1091
|
const radioOpts = computeRadioOpts.value;
|
|
1049
1092
|
const childrenField = computeChildrenField.value;
|
|
1093
|
+
const treeOpts = computeTreeOpts.value;
|
|
1094
|
+
const {
|
|
1095
|
+
transform
|
|
1096
|
+
} = treeOpts;
|
|
1097
|
+
const mapChildrenField = computeMapChildrenField.value;
|
|
1050
1098
|
const {
|
|
1051
1099
|
checkMode,
|
|
1052
1100
|
checkMethod
|
|
1053
1101
|
} = radioOpts;
|
|
1054
1102
|
const nodeid = getNodeId(node);
|
|
1055
|
-
const childList = node[childrenField];
|
|
1103
|
+
const childList = node[transform ? mapChildrenField : childrenField];
|
|
1056
1104
|
const isExistChild = childList && childList.length > 0;
|
|
1057
1105
|
const nodeItem = nodeMaps[nodeid] || {};
|
|
1058
1106
|
const nLevel = nodeItem.level;
|
|
@@ -1265,7 +1313,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1265
1313
|
const childRowList = [];
|
|
1266
1314
|
_xeUtils.default.eachTree(afterTreeList, node => {
|
|
1267
1315
|
const nodeid = getNodeId(node);
|
|
1268
|
-
const childList = node[childrenField];
|
|
1316
|
+
const childList = node[transform ? mapChildrenField : childrenField];
|
|
1269
1317
|
if (childList && childList.length && !childRowMaps[nodeid]) {
|
|
1270
1318
|
childRowMaps[nodeid] = 1;
|
|
1271
1319
|
childRowList.unshift([node, nodeid, childList]);
|
|
@@ -1371,7 +1419,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1371
1419
|
transform
|
|
1372
1420
|
} = treeOpts;
|
|
1373
1421
|
const nodeid = getNodeId(node);
|
|
1374
|
-
const childList = node[childrenField];
|
|
1422
|
+
const childList = node[transform ? mapChildrenField : childrenField];
|
|
1375
1423
|
const isExistChild = childList && childList.length > 0;
|
|
1376
1424
|
const nodeItem = nodeMaps[nodeid] || {};
|
|
1377
1425
|
const nLevel = nodeItem.level;
|
|
@@ -1684,14 +1732,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1684
1732
|
const treeOpts = computeTreeOpts.value;
|
|
1685
1733
|
const {
|
|
1686
1734
|
lazy,
|
|
1735
|
+
transform,
|
|
1687
1736
|
iconLoaded,
|
|
1688
1737
|
iconOpen,
|
|
1689
1738
|
iconClose
|
|
1690
1739
|
} = treeOpts;
|
|
1691
1740
|
const childrenField = computeChildrenField.value;
|
|
1741
|
+
const mapChildrenField = computeMapChildrenField.value;
|
|
1692
1742
|
const labelField = computeLabelField.value;
|
|
1693
1743
|
const hasChildField = computeHasChildField.value;
|
|
1694
|
-
const childList = node[childrenField];
|
|
1744
|
+
const childList = node[transform ? mapChildrenField : childrenField];
|
|
1695
1745
|
const isExistChild = childList && childList.length > 0;
|
|
1696
1746
|
const iconSlot = slots.icon;
|
|
1697
1747
|
const titleSlot = slots.title;
|
|
@@ -1862,7 +1912,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1862
1912
|
class: 'vxe-tree-select--panel-header'
|
|
1863
1913
|
}, headerSlot ? headerSlot({}) : [(0, _vue.h)('div', {
|
|
1864
1914
|
class: 'vxe-tree-select--header-button'
|
|
1865
|
-
}, [showCheckedButton && showClearButton ? (0, _vue.h)('div', {
|
|
1915
|
+
}, [showCheckedButton && multiple || showClearButton ? (0, _vue.h)('div', {
|
|
1866
1916
|
class: 'vxe-tree-select--selected-btns'
|
|
1867
1917
|
}, [showCheckedButton && multiple ? (0, _vue.h)(_button.default, {
|
|
1868
1918
|
content: (0, _ui.getI18n)('vxe.treeSelect.allChecked'),
|
|
@@ -1895,13 +1945,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1895
1945
|
});
|
|
1896
1946
|
}
|
|
1897
1947
|
})]);
|
|
1898
|
-
})])]), footerSlot || showTotalButton || showCloseButton
|
|
1948
|
+
})])]), footerSlot || showTotalButton || showCloseButton ? (0, _vue.h)('div', {
|
|
1899
1949
|
class: 'vxe-cascader--panel-footer'
|
|
1900
1950
|
}, footerSlot ? footerSlot({}) : [(0, _vue.h)('div', {
|
|
1901
1951
|
class: 'vxe-cascader--footer-button'
|
|
1902
1952
|
}, [showTotalButton ? (0, _vue.h)('div', {
|
|
1903
1953
|
class: 'vxe-cascader--total-btns'
|
|
1904
|
-
}, (0, _ui.getI18n)('vxe.treeSelect.total', [selectVals.length])) : (0, _ui.renderEmptyElement)($xeCascader), showCloseButton
|
|
1954
|
+
}, (0, _ui.getI18n)('vxe.treeSelect.total', [selectVals.length])) : (0, _ui.renderEmptyElement)($xeCascader), showCloseButton ? (0, _vue.h)('div', {
|
|
1905
1955
|
class: 'vxe-cascader--oper-btns'
|
|
1906
1956
|
}, [(0, _vue.h)(_button.default, {
|
|
1907
1957
|
content: (0, _ui.getI18n)('vxe.select.close'),
|
|
@@ -1931,9 +1981,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1931
1981
|
});
|
|
1932
1982
|
loadData(props.options || []);
|
|
1933
1983
|
(0, _vue.onMounted)(() => {
|
|
1934
|
-
if (props.filterable) {
|
|
1935
|
-
errLog('vxe.error.notProp', ['filterable']);
|
|
1936
|
-
}
|
|
1937
1984
|
_ui.globalEvents.on($xeCascader, 'mousewheel', handleGlobalMousewheelEvent);
|
|
1938
1985
|
_ui.globalEvents.on($xeCascader, 'mousedown', handleGlobalMousedownEvent);
|
|
1939
1986
|
_ui.globalEvents.on($xeCascader, 'blur', handleGlobalBlurEvent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_util=require("./util"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils")),_list=_interopRequireDefault(require("../../list/src/list")),_input=_interopRequireDefault(require("../../input/src/input")),_button=_interopRequireDefault(require("../../button/src/button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let errLog=(0,_log.createComponentLog)("cascader").errLog;function getNodeUniqueId(){return _xeUtils.default.uniqueId("node_")}function createReactData(){return{initialized:!1,searchValue:"",searchLoading:!1,currentCunkList:[],currentItems:[],currentNode:null,panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1,selectRadioKey:null,treeList:[],updateExpandedFlag:1,updateCheckboxFlag:1,fullOptFlag:1,lazyOptFlag:1}}function createInternalData(){return{listVirtualYOpts:{enabled:!0,gt:20},afterTreeList:[],treeFullData:[],afterVisibleList:[],nodeMaps:{},fullNodeMaps:{},lazyNodeMaps:{},indeterminateRowMaps:{},selectCheckboxMaps:{},treeExpandedMaps:{},treeExpandLazyLoadedMaps:{}}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeCascader",props:{modelValue:[String,Number,Array],clearable:Boolean,placeholder:{type:String,default:()=>_xeUtils.default.eqNull((0,_ui.getConfig)().cascader.placeholder)?(0,_ui.getI18n)("vxe.base.pleaseSelect"):(0,_ui.getConfig)().cascader.placeholder},readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},filterable:Boolean,filterConfig:Object,showFullLabel:{type:Boolean,default:(0,_ui.getConfig)().cascader.showFullLabel},separator:{type:String,default:(0,_ui.getConfig)().cascader.separator},multiple:Boolean,className:[String,Function],prefixIcon:String,lazyOptions:Array,options:Array,optionProps:Object,size:{type:String,default:()=>(0,_ui.getConfig)().cascader.size||(0,_ui.getConfig)().size},treeConfig:Object,showRadio:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showRadio},radioConfig:Object,showCheckbox:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showCheckbox},checkboxConfig:Object,remote:Boolean,remoteConfig:Function,popupConfig:Object,checkedClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.checkedClosable},clearClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.clearClosable},showCloseButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showCloseButton},showTotalButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showTotalButton},showCheckedButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showCheckedButton},showClearButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showClearButton}},emits:["update:modelValue","change","all-change","clear","blur","focus","click","node-click","node-expand","current-change","radio-change","checkbox-change","load-success","load-error","visible-change"],setup(F,e){let{emit:l,slots:V}=e,d=(0,_vue.inject)("$xeModal",null),c=(0,_vue.inject)("$xeDrawer",null),E=(0,_vue.inject)("$xeTable",null),r=(0,_vue.inject)("$xeForm",null),i=(0,_vue.inject)("xeFormItemInfo",null);var a=_xeUtils.default.uniqueId();let $=(0,_ui.useSize)(F).computeSize,L=(0,_vue.ref)(),I=(0,_vue.ref)(),T=(0,_vue.ref)(),j=(0,_vue.ref)(),w=(0,_vue.ref)(),P=(0,_vue.reactive)(createReactData()),U=createInternalData(),k={refElem:L},q=(0,_vue.computed)(()=>{var e=F.readonly;return null===e?!!r&&r.props.readonly:e}),N=(0,_vue.computed)(()=>{var e=F.disabled;return null===e?!!r&&r.props.disabled:e}),D=(0,_vue.computed)(()=>{var e=B.value.transfer;return _xeUtils.default.isBoolean(e)?e:!!(E||d||c||r)}),O=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.treeConfig,F.treeConfig)),_=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.radioConfig,F.radioConfig)),g=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.checkboxConfig,F.checkboxConfig)),B=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.popupConfig,F.popupConfig)),y=(0,_vue.computed)(()=>F.optionProps||{}),A=(0,_vue.computed)(()=>y.value.label||"label"),p=(0,_vue.computed)(()=>y.value.value||"value"),M=(0,_vue.computed)(()=>O.value.keyField||"id"),K=(0,_vue.computed)(()=>O.value.parentField||"parentId"),z=(0,_vue.computed)(()=>O.value.childrenField||"children"),x=(0,_vue.computed)(()=>O.value.mapChildrenField||"mapChildren"),H=(0,_vue.computed)(()=>O.value.hasChildField||"hasChild"),X=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.remoteConfig,F.remoteConfig)),Y=(0,_vue.computed)(()=>{var e=F.modelValue;return _xeUtils.default.eqNull(e)?[]:_xeUtils.default.isArray(e)?e:[e]}),W=(0,_vue.computed)(()=>{let t=F.showFullLabel,{fullOptFlag:l,lazyOptFlag:r}=P,{fullNodeMaps:i,lazyNodeMaps:n}=U,u=A.value;return Y.value.map(e=>{var a=i[e];if(l&&a)return t?a.fullLabel:a.item[u];if(r){a=n[e];if(a)return t?a.fullLabel:a.item[u]}return e}).join(", ")}),Z=(0,_vue.computed)(()=>{var{currentCunkList:e,panelStyle:a}=P,{height:t,nodeWidth:l,nodeHeight:r}=B.value,a=Object.assign(Object.assign({},a),{"--vxe-ui-cascader-chunk-size":e.length});return t&&(a["--vxe-ui-cascader-chunk-height"]=(0,_dom.toCssUnit)(t)),l&&(a["--vxe-ui-cascader-node-width"]=(0,_dom.toCssUnit)(l)),r&&(a["--vxe-ui-cascader-node-height"]=(0,_dom.toCssUnit)(r)),a}),G=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.filterConfig,F.filterConfig)),J={},R={xID:a,props:F,context:e,reactData:P,internalData:U,getRefMaps:()=>k,getComputeMaps:()=>J},m=(e,a,t)=>{l(e,(0,_ui.createEvent)(t,{$cascader:R},a))},Q=e=>{l("update:modelValue",e)};a={dispatchEvent:m};let S=e=>e?(e=e[p.value],(0,_util.enNodeValue)(e)):"";let ee=(e,t)=>{let l=U.selectCheckboxMaps;var a=x.value,r=z.value,i=g.value.checkStrictly,n=O.value.transform,u=e=>{var a=S(e);t?l[a]||(l[a]=e):l[a]&&delete l[a]};i?e.forEach(u):_xeUtils.default.eachTree(e,u,{children:n?a:r}),P.updateCheckboxFlag++,b()},ae=(e,t)=>{let l=U.nodeMaps;if(e){_xeUtils.default.isArray(e)||(e=[e]);let a=[];e.forEach(e=>{e=(0,_util.enNodeValue)(e),e=l[e];e&&a.push(e.item)}),ee(a,t)}return(0,_vue.nextTick)()},te=()=>{var e,a=F.modelValue,t=U.nodeMaps;let l={};F.multiple?a&&a.length&&(e=a,U.selectCheckboxMaps={},ae(e,!0)):a&&(t=t[e=(0,_util.enNodeValue)(_xeUtils.default.isArray(a)?a[0]:a)])&&(t.nodes.forEach(e=>{l[S(e)]=!0}),P.selectRadioKey=e),U.treeExpandedMaps=l},le=()=>{let o=F.separator;var e=U.treeFullData;let s=p.value,d=A.value;var a=z.value;let c={},v={};_xeUtils.default.eachTree(e,(e,a,t,l,r,i)=>{let n=S(e);n||(n=getNodeUniqueId(),e[s]=n);var u=e[s],e={item:e,index:a,$index:-1,_index:-1,items:t,parent:r,nodes:i,level:i.length-1,treeIndex:a,lineCount:0,treeLoaded:!1,fullLabel:i.map(e=>e[d]).join(o||" / ")};c[n]=e,v[u]=e},{children:a}),U.nodeMaps=c,U.fullNodeMaps=v,P.fullOptFlag++},re=()=>{let o=F.separator,{afterTreeList:e,nodeMaps:s}=U,d=A.value;var a=z.value,t=x.value,l=O.value.transform;let c=0;_xeUtils.default.eachTree(e,(e,a,t,l,r,i)=>{var n=S(e),u=s[n];u?(u.items=t,u.treeIndex=a,u._index=c):(u={item:e,index:a,$index:-1,_index:c,items:t,parent:r,nodes:i,level:i.length-1,treeIndex:a,lineCount:0,treeLoaded:!1,fullLabel:i.map(e=>e[d]).join(o||" / ")},s[n]=u),c++},{children:l?t:a})},ie=()=>{var a=P.searchValue,{treeFullData:t,lastFilterValue:e}=U;let l=A.value;var r=z.value,i=x.value,n=O.value.transform;let{beforeFilterMethod:u,filterMethod:o,afterFilterMethod:s}=G.value,d=t,c=d,v="";if(a){v=""+a;a=o?e=>o({$cascader:R,node:e,filterValue:v}):e=>-1<String(e[l]).toLowerCase().indexOf(v.toLowerCase());let e={$cascader:R,filterValue:v};u&&u(e),d=n?c=_xeUtils.default.searchTree(t,a,{original:!0,isEvery:!0,children:r,mapChildren:i}):t.filter(a),U.lastFilterValue=v,(0,_vue.nextTick)(()=>{s&&s(e)})}else{if(n&&(c=_xeUtils.default.searchTree(t,()=>!0,{original:!0,isEvery:!0,children:r,mapChildren:i}),d=c,e)){let e={$cascader:R,filterValue:v};u&&u(e),(0,_vue.nextTick)(()=>{s&&s(e)})}U.lastFilterValue=""}U.afterVisibleList=d,U.afterTreeList=c,re()},v=()=>{let{afterTreeList:e,treeExpandedMaps:o}=U;var a=x.value,t=O.value.transform;let s={};if(t){let u=[];return _xeUtils.default.eachTree(e,(e,a,t,l,r)=>{var i=S(e),n=S(r);(!r||s[n]&&o[n])&&(s[i]=1,u.push(e))},{children:a}),U.afterVisibleList=u}return U.afterVisibleList},h=e=>{let t=U.nodeMaps,a=U.afterVisibleList;e&&(ie(),a=v());e=a.slice(0);e.forEach((e,a)=>{e=S(e),e=t[e];e&&(e.$index=a)}),P.treeList=e},ne=_xeUtils.default.debounce(()=>h(!0),350,{trailing:!0}),ue=e=>{var a=O.value,t=M.value,l=K.value,r=z.value,{rootParentValue:i,rootValues:n}=a,a=a.transform,a=a?_xeUtils.default.toArrayTree(e,{key:t,parentKey:l,mapChildren:r,rootParentValue:i,rootValues:n}):e?e.slice(0):[];return U.treeFullData=a,le(),h(!0),te(),oe(),u(),(0,_vue.nextTick)()},u=()=>{var l=P.currentItems,r=U.treeFullData,i=z.value,n=[r];if(l.length){let e=0,a=l[e],t=r;for(;a&&t&&t.length;){a=l[e++];var u=t.find(e=>a===S(e));if(!(t=u?u[i]:[])||!t.length)break;n.push(t)}}P.currentCunkList=n},oe=()=>{var e=U.treeFullData,t=Y.value,l=z.value,r=x.value,i=O.value.transform;let n=[],u={};if(t.length){let a=(0,_util.enNodeValue)(_xeUtils.default.last(t));t=_xeUtils.default.findTree(e,e=>a===S(e),{children:i?r:l});t&&(e=t.nodes,e.forEach(e=>{e=S(e);u[e]=!0,n.push(e)}))}U.treeExpandedMaps=u,P.currentItems=n},se=()=>{var e=B.value.zIndex;e?P.panelIndex=e:P.panelIndex<(0,_utils.getLastZIndex)()&&(P.panelIndex=(0,_utils.nextZIndex)())},o=()=>{let t=P.panelIndex,l=L.value,r=w.value,i=D.value,n=B.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(l,r,{placement:n.placement,defaultPlacement:n.defaultPlacement,teleportTo:i,isMinWidth:!1}),a=Object.assign(e.style,{zIndex:t});P.panelStyle=a,P.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},t=e=>{var{loading:a,remote:t,filterable:l}=F,r=U.treeFullData,i=N.value,n=X.value;a||i||(clearTimeout(U.hpTimeout),P.initialized||(P.initialized=!0),P.isActivated=!0,P.isAniVisible=!0,l&&t&&n.enabled&&n.autoLoad&&!r.length&&Ue(),setTimeout(()=>{P.visiblePanel=!0,Ee()},10),se(),o(),m("visible-change",{visible:!0},e||null))},s=e=>{P.visiblePanel=!1,U.hpTimeout=setTimeout(()=>{P.isAniVisible=!1},350),m("visible-change",{visible:!1},e||null)},de=e=>(P.currentNode=e,(0,_vue.nextTick)()),ce=e=>{let t={};var a=z.value,l=x.value,r=O.value.transform;let i=[],n=[];return e&&_xeUtils.default.eachTree(U.afterTreeList,e=>{var a=S(e);i.push(a),n.push(e),t[a]=!0},{children:r?l:a}),U.indeterminateRowMaps={},U.selectCheckboxMaps=t,P.updateCheckboxFlag++,b(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:i,checkNodes:n}))},ve=()=>(U.indeterminateRowMaps={},U.selectCheckboxMaps={},P.updateCheckboxFlag++,b(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:[],checkNodes:[]}))),f=(e,a,t)=>{a=_xeUtils.default.isArray(a)?a.map(_util.deNodeValue):(0,_util.deNodeValue)(a);Q(a),a!==F.modelValue&&(m("change",{value:a,node:t,option:t},e),r)&&i&&r.triggerItemEvent(e,i.itemConfig.field,a)},pe=(e,a)=>{f(e,a,null),m("clear",{value:a},e)},he=(e,a)=>{pe(a,null),s(a)},fe=e=>{let t=e.$event,{multiple:a,checkedClosable:l}=F;a&&ce(!0).then(({checkNodeKeys:e,checkNodes:a})=>{f(t,e,a[0]),m("all-change",{value:e},t),l&&s(t)})},_e=e=>{let a=e.$event,{multiple:t,checkedClosable:l}=F;e=t?[]:null;ve().then(()=>{l&&s(a)}),f(a,e,null),m("clear",{value:e},a)},ge=e=>{e=e.$event;s(e)},xe=e=>{var a=P.visiblePanel;N.value||a&&(a=w.value,(0,_dom.getEventTargetNode)(e,a).flag?o():s(e))},me=e=>{var a,t,l=P.visiblePanel;N.value||(a=L.value,t=w.value,P.isActivated=(0,_dom.getEventTargetNode)(e,a).flag||(0,_dom.getEventTargetNode)(e,t).flag,l&&!P.isActivated&&s(e))},be=e=>{var{visiblePanel:a,isActivated:t}=P;a&&s(e),t&&(P.isActivated=!1),(a||t)&&(e=I.value)&&e.blur()},Ce=()=>{var e=P.visiblePanel;e&&o()},Ee=()=>{F.filterable&&(0,_vue.nextTick)(()=>{var e=T.value;e&&e.focus()})},ke=(e,a)=>{e.preventDefault();P.currentNode=a,m("current-change",{node:a,checked:!0},e)},ye=(e,a)=>{e.preventDefault(),e.stopPropagation();var t=U.nodeMaps,l=_.value,r=z.value,{checkMode:l,checkMethod:i}=l,n=S(a),r=a[r],r=r&&0<r.length,t=(t[n]||{}).level;(i?i({$cascader:R,node:a}):C(l,r,t))&&(i=n,P.selectRadioKey=i,f(e,i,a),s(e))},Me=i=>{var e=g.value;let t=O.value.loadMethod,n=e.checkStrictly;return new Promise(e=>{if(t){var a=U.nodeMaps;let l=S(i),r=a[l];U.treeExpandLazyLoadedMaps[l]=!0,Promise.resolve(t({$cascader:R,node:i})).then(t=>{var e=U.treeExpandLazyLoadedMaps;if(r.treeLoaded=!0,e[l]&&(e[l]=!1),t=_xeUtils.default.isArray(t)?t:[])return R.loadChildrenNode(i,t).then(e=>{var a=U.treeExpandedMaps;return e.length&&!a[l]&&(a[l]=!0),P.updateExpandedFlag++,!n&&R.isCheckedByCheckboxNodeId(l)&&ee(e,!0),m("load-success",{node:i,data:t},new Event("load-success")),(0,_vue.nextTick)()});m("load-success",{node:i,data:t},new Event("load-success"))}).catch(e=>{var a=U.treeExpandLazyLoadedMaps;r.treeLoaded=!1,a[l]&&(a[l]=!1),m("load-error",{node:i,data:e},new Event("load-error"))}).finally(()=>{v(),h()})}else e()})},Le=(e,a)=>{let{treeExpandLazyLoadedMaps:l,treeExpandedMaps:r}=U,i=U.nodeMaps,n=z.value,u=H.value;let{lazy:o,toggleMethod:t}=O.value,s=[];var e=(e=t?e.filter(e=>t({$cascader:R,expanded:a,node:e})):e).length?[e[e.length-1]]:[],d=S(e[0]),d=i[d];d&&d.items.forEach(e=>{e=S(e);r[e]&&delete r[e]});let c=[];return a?e.forEach(e=>{var a,t=S(e);r[t]||(a=i[t],o&&e[u]&&!a.treeLoaded&&!l[t]?s.push(Me(e)):e[n]&&e[n].length&&(r[t]=!0,c.push(e)))}):e.forEach(e=>{var a=S(e);r[a]&&(delete r[a],c.push(e))}),P.updateExpandedFlag++,v(),h(),Promise.all(s)},Ie=(e,a,t,l)=>{var r=P.currentItems,i=U.treeExpandLazyLoadedMaps,n=O.value.lazy,r=r.slice(0,l),l=S(a);e.stopPropagation(),r.push(l),P.currentItems=r,n&&i[l]||Le([a],!0),de(a),u(),m("node-expand",{node:a,expanded:!0},e)},b=()=>{let{selectCheckboxMaps:o,indeterminateRowMaps:s,afterTreeList:e}=U,i=z.value;var a=x.value;let{checkStrictly:t,checkMethod:d}=g.value;var n=O.value.transform;if(!t){let l={},r=[];_xeUtils.default.eachTree(e,e=>{var a=S(e),t=e[i];t&&t.length&&!l[a]&&(l[a]=1,r.unshift([e,a,t]))},{children:n?a:i}),r.forEach(e=>{var a=e[0],t=e[1],e=e[2];let l=0,r=0,i=0;var n=e.length;e.forEach(d?e=>{var a=S(e),t=o[a];d({$cascader:R,node:e})?(t?l++:s[a]&&r++,i++):t?l++:s[a]&&r++}:e=>{e=S(e);o[e]?l++:s[e]&&r++,i++});let u=!1;e=!(u=0<n?0<i?(0<l||0<r)&&l>=i:0<l&&l>=i||!!o[t]:o[t])&&(0<l||0<r);u?(o[t]=a,s[t]&&delete s[t]):(o[t]&&delete o[t],e?s[t]=a:s[t]&&delete s[t])}),P.updateCheckboxFlag++}},Te=(e,t)=>{e.preventDefault(),e.stopPropagation();let{selectCheckboxMaps:l,nodeMaps:a}=U;var r=z.value,i=x.value,{checkStrictly:n,checkMode:u,checkMethod:o}=g.value,s=O.value.transform,d=S(t),c=t[r],c=c&&0<c.length,v=(a[d]||{}).level,o=o?!o({$cascader:R,node:t}):!C(u,c,v);if(!o){let a=!1;l[d]?delete l[d]:(a=!0,l[d]=t),n||_xeUtils.default.eachTree(_xeUtils.default.get(t,s?i:r),e=>{e=S(e);a?l[e]||(l[e]=!0):l[e]&&delete l[e]},{children:s?i:r}),P.updateCheckboxFlag++,b();u=_xeUtils.default.keys(l);f(e,u,t)}},we=(e,a,t,l)=>{var{multiple:r,showCheckbox:i,showRadio:n}=F,u=O.value,o=_.value,s=g.value,d=z.value,c=x.value,{transform:u,trigger:v}=u,u=a[u?c:d];let p=!1,h=!1,f=!1;ke(e,a),"icon"!==v&&(f=!0,Ie(e,a,t,l)),r?"node"!==s.trigger&&(i||u&&u.length)||(h=!0,Te(e,a)):"node"!==o.trigger&&(n||u&&u.length)||(p=!0,ye(e,a)),m("node-click",{node:a,triggerCurrent:!0,triggerRadio:p,triggerCheckbox:h,triggerExpand:f},e)},Ne=e=>{N.value||P.visiblePanel||(P.triggerFocusPanel=!0,t(e),setTimeout(()=>{P.triggerFocusPanel=!1},150)),m("focus",{},e)},Fe=e=>{e.preventDefault(),P.triggerFocusPanel?P.triggerFocusPanel=!1:P.visiblePanel||t(e),m("click",{},e)},Ve=e=>{P.isActivated=!1,m("blur",{},e)},Pe=e=>{P.searchValue=e,ne(new Event("filter"))},Ue=()=>{var{modelValue:e,remote:a}=F,t=P.searchValue,l=X.value,r=l.queryMethod;a&&r&&l.enabled&&(P.searchLoading=!0,Promise.resolve(r({$cascader:R,searchValue:t,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{P.searchLoading=!1}))},De=e=>{e=e.$event;e.preventDefault(),P.triggerFocusPanel?P.triggerFocusPanel=!1:(P.visiblePanel?s:t)(e)},C=(Object.assign(R,a,{isCheckedByCheckboxNodeId:e=>{var a=P.updateCheckboxFlag,t=U.selectCheckboxMaps;return!(!a||!t[e])},loadChildrenNode(a,e){let u=F.separator,o=U.nodeMaps;var t=O.value;let s=A.value,{lazy:l,transform:r}=t;if(!l)return Promise.resolve([]);let i=z.value,n=x.value,d=o[S(a)],c=d?d.level:0,v=d?d.nodes:[];return(e=>{let t=p.value;return Promise.resolve(e.map(e=>{var a,e=Object.assign({},e);return S(e)||(a=getNodeUniqueId(),_xeUtils.default.set(e,t,a)),e}))})(e).then(e=>(_xeUtils.default.eachTree(e,(e,a,t,l,r,i)=>{var n=S(e);o[n]={item:e,index:-1,$index:-1,_index:-1,items:t,parent:r||d.item,nodes:v.concat(i),level:c+i.length,treeIndex:-1,lineCount:0,treeLoaded:!1,fullLabel:i.map(e=>e[s]).join(u||" / ")}},{children:i}),a[i]=e,r&&(a[n]=e),re(),e))}}),(e,a,t)=>{if(e){if("first"===e)return!t;if("last"===e)return!a}return!0}),Oe=(t,e,l,r)=>{var a=F.showRadio,{checkMode:i,checkMethod:n,visibleMode:u,visibleMethod:o}=_.value,o=o?o({$cascader:R,node:t}):C(u,e,l);if(a&&o){let a=n?!n({$cascader:R,node:t}):!C(i,e,l);return(0,_vue.h)("div",{class:["vxe-tree--radio-option",{"is--checked":r,"is--disabled":a}],onClick:e=>{a||ye(e,t)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",r?(0,_ui.getIcon)().RADIO_CHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(R)},Be=(t,e,l,r,i)=>{var a=F.showCheckbox,{checkMode:n,checkMethod:u,visibleMode:o,visibleMethod:s}=g.value,s=s?s({$cascader:R,node:t}):C(o,e,l);if(a&&s){let a=u?!u({$cascader:R,node:t}):!C(n,e,l);return(0,_vue.h)("div",{class:["vxe-cascader--checkbox-option",{"is--checked":r,"is--indeterminate":i,"is--disabled":a}],onClick:e=>{a||Te(e,t)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",i?(0,_ui.getIcon)().CHECKBOX_INDETERMINATE:r?(0,_ui.getIcon)().CHECKBOX_CHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(R)};(0,_vue.watch)(()=>F.modelValue,()=>{P.visiblePanel||(te(),oe(),u())}),(0,_vue.watch)(()=>F.options,()=>{le()});let n=(0,_vue.ref)(0);return(0,_vue.watch)(()=>F.options?F.options.length:0,()=>{n.value++}),(0,_vue.watch)(()=>F.options,()=>{n.value++}),(0,_vue.watch)(n,()=>{ue(F.options||[])}),ue(F.options||[]),(0,_vue.onMounted)(()=>{F.filterable&&errLog("vxe.error.notProp",["filterable"]),_ui.globalEvents.on(R,"mousewheel",xe),_ui.globalEvents.on(R,"mousedown",me),_ui.globalEvents.on(R,"blur",be),_ui.globalEvents.on(R,"resize",Ce)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(R,"mousewheel"),_ui.globalEvents.off(R,"mousedown"),_ui.globalEvents.off(R,"blur"),_ui.globalEvents.off(R,"resize"),_xeUtils.default.assign(U,createInternalData())}),(0,_vue.provide)("$xeCascader",R),R.renderVN=()=>{var{className:e,modelValue:a,multiple:t,loading:l,filterable:r,showTotalButton:i,showCheckedButton:n,showClearButton:u,showCloseButton:o}=F,{initialized:s,isActivated:d,isAniVisible:c,visiblePanel:v,searchValue:p,currentCunkList:h}=P;let f=U.listVirtualYOpts;var _=$.value,g=N.value,x=W.value,m=D.value,b=q.value,C=Z.value,E=V.header,k=V.footer;let y=V.prefix;var M=B.value.className;return b?(0,_vue.h)("div",{ref:L,class:["vxe-cascader--readonly",e]},[(0,_vue.h)("span",{class:"vxe-cascader-label"},x)]):(b=_xeUtils.default.eqNull(a)?[]:_xeUtils.default.isArray(a)?a:[a],(0,_vue.h)("div",{ref:L,class:["vxe-cascader",e?_xeUtils.default.isFunction(e)?e({$cascader:R}):e:"",{["size--"+_]:_,"is--filterable":r,"is--visible":v,"is--disabled":g,"is--loading":l,"is--active":d}]},[(0,_vue.h)(_input.default,{ref:I,clearable:F.clearable,placeholder:l?(0,_ui.getI18n)("vxe.select.loadingText"):F.placeholder,editable:!1,disabled:g,type:"text",prefixIcon:F.prefixIcon,suffixIcon:l?(0,_ui.getIcon)().TREE_SELECT_LOADED:v?(0,_ui.getIcon)().TREE_SELECT_OPEN:(0,_ui.getIcon)().TREE_SELECT_CLOSE,modelValue:l?"":x,title:x,onClear:he,onClick:Fe,onFocus:Ne,onBlur:Ve,onSuffixClick:De},y?{prefix:()=>y({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!m||!s},[(0,_vue.h)("div",{ref:w,class:["vxe-table--ignore-clear vxe-cascader--panel",M?_xeUtils.default.isFunction(M)?M({$cascader:R}):M:"",{["size--"+_]:_,"is--transfer":m,"ani--leave":!l&&c,"ani--enter":!l&&v}],placement:P.panelPlacement,style:C},s?[(0,_vue.h)("div",{class:"vxe-cascader--panel-wrapper"},[r?(0,_vue.h)("div",{class:"vxe-cascader--panel-search"},[(0,_vue.h)(_input.default,{ref:T,class:"vxe-cascader-search--input",modelValue:p,clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.cascader.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":Pe})]):(0,_ui.renderEmptyElement)(R),n&&t||u||E?(0,_vue.h)("div",{class:"vxe-tree-select--panel-header"},E?E({}):[(0,_vue.h)("div",{class:"vxe-tree-select--header-button"},[n&&u?(0,_vue.h)("div",{class:"vxe-tree-select--selected-btns"},[n&&t?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.allChecked"),mode:"text",onClick:fe}):(0,_ui.renderEmptyElement)(R),u?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.clearChecked"),mode:"text",onClick:_e}):(0,_ui.renderEmptyElement)(R)]):(0,_ui.renderEmptyElement)(R)])]):(0,_ui.renderEmptyElement)(R),(0,_vue.h)("div",{class:"vxe-cascader--panel-body"},[(0,_vue.h)("div",{ref:j,class:"vxe-cascader-chunk--wrapper"},[h.map((t,l)=>(0,_vue.h)("div",{key:l,class:"vxe-cascader-chunk--item-wrapper"},[(0,_vue.h)(_list.default,{data:t,virtualYConfig:f},{default(e){e=e.items;return e.map((e,a)=>((a,e,t,l,r)=>{var i=F.multiple,{currentNode:n,selectRadioKey:u,updateCheckboxFlag:o,updateExpandedFlag:s}=P,{nodeMaps:d,selectCheckboxMaps:c,indeterminateRowMaps:v,treeExpandedMaps:p,treeExpandLazyLoadedMaps:h}=U;let f=O.value;var{lazy:_,iconLoaded:g,iconOpen:x,iconClose:m}=f,b=z.value,C=A.value,E=H.value,b=a[b],b=b&&0<b.length,k=V.icon,y=V.title,s=s&&p[e],p=d[e]||{},d=a[C],C=p.level;let M=!1,L=(i||(M=e===u),!1),I=!1,T=(i&&(L=!(!o||!c[e]),I=!(!o||!v[e])),!1),w=!1,N=!1;_&&(w=!!h[e],T=a[E],N=!!p.treeLoaded);u={node:a};return(0,_vue.h)("div",{key:r+"_"+t,class:["vxe-cascader-chunk--node-item",{"is--current":n&&(n===a||S(n)===e),"is-radio--checked":M,"is-checkbox--checked":L,"is-checkbox--indeterminate":I,"is--expand":s}],title:d,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick(e){we(e,a,l,r)}},[i?Be(a,b,C,L,I):Oe(a,b,C,M),(0,_vue.h)("div",{class:"vxe-cascader-chunk--node-item-inner"},[(0,_vue.h)("div",{class:"vxe-cascader-chunk--node-item-title"},y?(0,_ui.getSlotVNs)(y(u)):d)]),f.showIcon&&(!_||N?b:T)?(0,_vue.h)("div",{class:"vxe-cascader-chunk--node-item-switcher"},[[(0,_vue.h)("div",{class:"vxe-cascader--node-item-icon",onClick(e){"icon"===f.trigger&&Ie(e,a,l,r)}},k?(0,_ui.getSlotVNs)(k(u)):[(0,_vue.h)("i",{class:w?g||(0,_ui.getIcon)().CASCADER_NODE_LOADED:s?x||(0,_ui.getIcon)().CASCADER_NODE_OPEN:m||(0,_ui.getIcon)().CASCADER_NODE_CLOSE})])]]):(0,_ui.renderEmptyElement)(R)])})(e,S(e),a,t,l))}})]))])]),k||i||o&&t?(0,_vue.h)("div",{class:"vxe-cascader--panel-footer"},k?k({}):[(0,_vue.h)("div",{class:"vxe-cascader--footer-button"},[i?(0,_vue.h)("div",{class:"vxe-cascader--total-btns"},(0,_ui.getI18n)("vxe.treeSelect.total",[b.length])):(0,_ui.renderEmptyElement)(R),o&&t?(0,_vue.h)("div",{class:"vxe-cascader--oper-btns"},[(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.close"),mode:"text",onClick:ge})]):(0,_ui.renderEmptyElement)(R)])]):(0,_ui.renderEmptyElement)(R)])]:[])])]))},R},render(){return this.renderVN()}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_list=_interopRequireDefault(require("../../list/src/list")),_input=_interopRequireDefault(require("../../input/src/input")),_button=_interopRequireDefault(require("../../button/src/button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getNodeUniqueId(){return _xeUtils.default.uniqueId("node_")}function createReactData(){return{initialized:!1,searchValue:"",searchLoading:!1,currentCunkList:[],currentItems:[],currentNode:null,panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1,selectRadioKey:null,treeList:[],updateExpandedFlag:1,updateCheckboxFlag:1,fullOptFlag:1,lazyOptFlag:1}}function createInternalData(){return{listVirtualYOpts:{enabled:!0,gt:20},afterTreeList:[],treeFullData:[],afterVisibleList:[],nodeMaps:{},fullNodeMaps:{},lazyNodeMaps:{},indeterminateRowMaps:{},selectCheckboxMaps:{},treeExpandedMaps:{},treeExpandLazyLoadedMaps:{}}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeCascader",props:{modelValue:[String,Number,Array],clearable:Boolean,placeholder:{type:String,default:()=>_xeUtils.default.eqNull((0,_ui.getConfig)().cascader.placeholder)?(0,_ui.getI18n)("vxe.base.pleaseSelect"):(0,_ui.getConfig)().cascader.placeholder},readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},filterable:Boolean,filterConfig:Object,showFullLabel:{type:Boolean,default:(0,_ui.getConfig)().cascader.showFullLabel},separator:{type:String,default:(0,_ui.getConfig)().cascader.separator},multiple:Boolean,className:[String,Function],prefixIcon:String,lazyOptions:Array,options:Array,optionProps:Object,size:{type:String,default:()=>(0,_ui.getConfig)().cascader.size||(0,_ui.getConfig)().size},treeConfig:Object,showRadio:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showRadio},radioConfig:Object,showCheckbox:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showCheckbox},checkboxConfig:Object,remote:Boolean,remoteConfig:Function,popupConfig:Object,checkedClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.checkedClosable},clearClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.clearClosable},showCloseButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showCloseButton},showTotalButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showTotalButton},showCheckedButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showCheckedButton},showClearButton:{type:Boolean,default:()=>(0,_ui.getConfig)().cascader.showClearButton}},emits:["update:modelValue","change","all-change","clear","blur","focus","click","node-click","node-expand","current-change","radio-change","checkbox-change","load-success","load-error","visible-change"],setup(V,e){let{emit:l,slots:F}=e,C=(0,_vue.inject)("$xeModal",null),k=(0,_vue.inject)("$xeDrawer",null),E=(0,_vue.inject)("$xeTable",null),r=(0,_vue.inject)("$xeForm",null),i=(0,_vue.inject)("xeFormItemInfo",null);var a=_xeUtils.default.uniqueId();let S=(0,_ui.useSize)(V).computeSize,I=(0,_vue.ref)(),L=(0,_vue.ref)(),$=(0,_vue.ref)(),j=(0,_vue.ref)(),T=(0,_vue.ref)(),U=(0,_vue.reactive)(createReactData()),P=createInternalData(),y={refElem:I},q=(0,_vue.computed)(()=>{var e=V.readonly;return null===e?!!r&&r.props.readonly:e}),w=(0,_vue.computed)(()=>{var e=V.disabled;return null===e?!!r&&r.props.disabled:e}),K=(0,_vue.computed)(()=>{var e=N.value.transfer;return _xeUtils.default.isBoolean(e)?e:!!(E||C||k||r)}),O=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.treeConfig,V.treeConfig)),_=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.radioConfig,V.radioConfig)),g=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.checkboxConfig,V.checkboxConfig)),N=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.popupConfig,V.popupConfig)),M=(0,_vue.computed)(()=>V.optionProps||{}),D=(0,_vue.computed)(()=>M.value.label||"label"),p=(0,_vue.computed)(()=>M.value.value||"value"),H=(0,_vue.computed)(()=>O.value.keyField||"id"),X=(0,_vue.computed)(()=>O.value.parentField||"parentId"),A=(0,_vue.computed)(()=>O.value.childrenField||"children"),B=(0,_vue.computed)(()=>O.value.mapChildrenField||"mapChildren"),Y=(0,_vue.computed)(()=>O.value.hasChildField||"hasChild"),W=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.remoteConfig,V.remoteConfig)),Z=(0,_vue.computed)(()=>{var e=V.modelValue;return _xeUtils.default.eqNull(e)?[]:_xeUtils.default.isArray(e)?e:[e]}),G=(0,_vue.computed)(()=>{let t=V.showFullLabel,{fullOptFlag:l,lazyOptFlag:r}=U,{fullNodeMaps:i,lazyNodeMaps:n}=P,u=D.value;return Z.value.map(e=>{var a=i[e];if(l&&a)return t?a.fullLabel:a.item[u];if(r){a=n[e];if(a)return t?a.fullLabel:a.item[u]}return e}).join(", ")}),J=(0,_vue.computed)(()=>{var{currentCunkList:e,panelStyle:a}=U,{height:t,nodeWidth:l,nodeHeight:r}=N.value,a=Object.assign(Object.assign({},a),{"--vxe-ui-cascader-chunk-size":e.length});return t&&(a["--vxe-ui-cascader-chunk-height"]=(0,_dom.toCssUnit)(t)),l&&(a["--vxe-ui-cascader-node-width"]=(0,_dom.toCssUnit)(l)),r&&(a["--vxe-ui-cascader-node-height"]=(0,_dom.toCssUnit)(r)),a}),Q=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.filterConfig,V.filterConfig)),ee={},R={xID:a,props:V,context:e,reactData:U,internalData:P,getRefMaps:()=>y,getComputeMaps:()=>ee},x=(e,a,t)=>{l(e,(0,_ui.createEvent)(t,{$cascader:R},a))},ae=e=>{l("update:modelValue",e)};a={dispatchEvent:x};let z=e=>e?(e=e[p.value],(0,_util.enNodeValue)(e)):"";let te=(e,t)=>{let l=P.selectCheckboxMaps;var a=B.value,r=A.value,i=g.value.checkStrictly,n=O.value.transform,u=e=>{var a=z(e);t?l[a]||(l[a]=e):l[a]&&delete l[a]};i?e.forEach(u):_xeUtils.default.eachTree(e,u,{children:n?a:r}),U.updateCheckboxFlag++,m()},le=(e,t)=>{let l=P.nodeMaps;if(e){_xeUtils.default.isArray(e)||(e=[e]);let a=[];e.forEach(e=>{e=(0,_util.enNodeValue)(e),e=l[e];e&&a.push(e.item)}),te(a,t)}return(0,_vue.nextTick)()},u=()=>{var e,a=V.modelValue,t=P.nodeMaps;let l={};V.multiple?a&&a.length&&(e=a,P.selectCheckboxMaps={},le(e,!0)):a&&(t=t[e=(0,_util.enNodeValue)(_xeUtils.default.isArray(a)?a[0]:a)])&&(t.nodes.forEach(e=>{l[z(e)]=!0}),U.selectRadioKey=e),P.treeExpandedMaps=l},re=()=>{let o=V.separator;var e=P.treeFullData;let s=p.value,d=D.value;var a=A.value;let c={},v={};_xeUtils.default.eachTree(e,(e,a,t,l,r,i)=>{let n=z(e);n||(n=getNodeUniqueId(),e[s]=n);var u=e[s],e={item:e,index:a,$index:-1,_index:-1,items:t,parent:r,nodes:i,level:i.length-1,treeIndex:a,lineCount:0,treeLoaded:!1,fullLabel:i.map(e=>e[d]).join(o||" / ")};c[n]=e,v[u]=e},{children:a}),P.nodeMaps=c,P.fullNodeMaps=v,U.fullOptFlag++},ie=()=>{let o=V.separator,{afterTreeList:e,nodeMaps:s}=P,d=D.value;var a=A.value,t=B.value,l=O.value.transform;let c=0;_xeUtils.default.eachTree(e,(e,a,t,l,r,i)=>{var n=z(e),u=s[n];u?(u.items=t,u.treeIndex=a,u._index=c):(u={item:e,index:a,$index:-1,_index:c,items:t,parent:r,nodes:i,level:i.length-1,treeIndex:a,lineCount:0,treeLoaded:!1,fullLabel:i.map(e=>e[d]).join(o||" / ")},s[n]=u),c++},{children:l?t:a})},ne=()=>{var a=U.searchValue,{treeFullData:t,lastFilterValue:e}=P;let l=D.value;var r=A.value,i=B.value,n=O.value.transform;let{beforeFilterMethod:u,filterMethod:o,afterFilterMethod:s}=Q.value,d=t,c=d,v="";if(a){v=""+a;a=o?e=>o({$cascader:R,node:e,filterValue:v}):e=>-1<String(e[l]).toLowerCase().indexOf(v.toLowerCase());let e={$cascader:R,filterValue:v};u&&u(e),d=n?c=_xeUtils.default.searchTree(t,a,{original:!0,isEvery:!0,children:r,mapChildren:i}):t.filter(a),P.lastFilterValue=v,(0,_vue.nextTick)(()=>{s&&s(e)})}else{if(n&&(c=_xeUtils.default.searchTree(t,()=>!0,{original:!0,isEvery:!0,children:r,mapChildren:i}),d=c,e)){let e={$cascader:R,filterValue:v};u&&u(e),(0,_vue.nextTick)(()=>{s&&s(e)})}P.lastFilterValue=""}P.afterVisibleList=d,P.afterTreeList=c,ie()},v=()=>{let{afterTreeList:e,treeExpandedMaps:o}=P;var a=B.value,t=O.value.transform;let s={};if(t){let u=[];return _xeUtils.default.eachTree(e,(e,a,t,l,r)=>{var i=z(e),n=z(r);(!r||s[n]&&o[n])&&(s[i]=1,u.push(e))},{children:a}),P.afterVisibleList=u}return P.afterVisibleList},h=e=>{let a=P.afterVisibleList;e&&(ne(),a=v());e=a.slice(0);U.treeList=e};let ue=_xeUtils.default.debounce(()=>{h(!0),u();var e=Q.value.autoExpandMode,a=P.afterTreeList;"first"===e||"last"===e?(a=((e,a)=>{var t=A.value,l=B.value,r=O.value.transform,i=r?l:t,n=[];let u=e;for(;u.length;){let e=null;for(var o of u){var s=o[i];if(_xeUtils.default.isArray(s)&&0<s.length){e=o;break}}if(!e){var d=_xeUtils.default[a](u);n.push(z(d));break}n.push(z(e)),u=e[i]}return n})(a,e),U.currentItems=a):s(),o()},350,{trailing:!0}),oe=e=>{var a=O.value,t=H.value,l=X.value,r=A.value,{rootParentValue:i,rootValues:n}=a,a=a.transform,a=a?_xeUtils.default.toArrayTree(e,{key:t,parentKey:l,mapChildren:r,rootParentValue:i,rootValues:n}):e?e.slice(0):[];return P.treeFullData=a,re(),h(!0),u(),s(),o(),(0,_vue.nextTick)()},o=()=>{var l=U.currentItems,r=P.afterTreeList,i=A.value,n=B.value,u=O.value.transform,o=[r];if(l.length){let e=0,a=l[e],t=r;for(;a&&t&&t.length;){a=l[e++];var s=t.find(e=>a===z(e));if(!(t=s?s[u?n:i]:[])||!t.length)break;o.push(t)}}U.currentCunkList=o},s=()=>{var e=P.afterTreeList,t=Z.value,l=A.value,r=B.value,i=O.value.transform;let n=[],u={};if(t.length){let a=(0,_util.enNodeValue)(_xeUtils.default.last(t));t=_xeUtils.default.findTree(e,e=>a===z(e),{children:i?r:l});t&&(e=t.nodes,e.forEach(e=>{e=z(e);u[e]=!0,n.push(e)}))}P.treeExpandedMaps=u,U.currentItems=n},se=()=>{var e=N.value.zIndex;e?U.panelIndex=e:U.panelIndex<(0,_utils.getLastZIndex)()&&(U.panelIndex=(0,_utils.nextZIndex)())},d=()=>{let t=U.panelIndex,l=I.value,r=T.value,i=K.value,n=N.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(l,r,{placement:n.placement,defaultPlacement:n.defaultPlacement,teleportTo:i,isMinWidth:!1}),a=Object.assign(e.style,{zIndex:t});U.panelStyle=a,U.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},t=e=>{var{loading:a,remote:t,filterable:l}=V,r=P.treeFullData,i=w.value,n=W.value;a||i||(clearTimeout(P.hpTimeout),U.initialized||(U.initialized=!0),U.isActivated=!0,U.isAniVisible=!0,l&&t&&n.enabled&&n.autoLoad&&!r.length&&Pe(),setTimeout(()=>{U.visiblePanel=!0,ke()},10),se(),d(),x("visible-change",{visible:!0},e||null))},c=e=>{U.visiblePanel=!1,P.hpTimeout=setTimeout(()=>{U.isAniVisible=!1},350),x("visible-change",{visible:!1},e||null)},de=e=>(U.currentNode=e,(0,_vue.nextTick)()),ce=e=>{let t={};var a=A.value,l=B.value,r=O.value.transform;let i=[],n=[];return e&&_xeUtils.default.eachTree(P.afterTreeList,e=>{var a=z(e);i.push(a),n.push(e),t[a]=!0},{children:r?l:a}),P.indeterminateRowMaps={},P.selectCheckboxMaps=t,U.updateCheckboxFlag++,m(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:i,checkNodes:n}))},ve=()=>(P.indeterminateRowMaps={},P.selectCheckboxMaps={},U.updateCheckboxFlag++,U.selectRadioKey=null,m(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:[],checkNodes:[]}))),f=(e,a,t)=>{a=_xeUtils.default.isArray(a)?a.map(_util.deNodeValue):(0,_util.deNodeValue)(a);ae(a),a!==V.modelValue&&(x("change",{value:a,node:t,option:t},e),r)&&i&&r.triggerItemEvent(e,i.itemConfig.field,a)},pe=(e,a)=>{f(e,a,null),x("clear",{value:a},e)},he=(e,a)=>{pe(a,null),c(a)},fe=e=>{let t=e.$event,{multiple:a,checkedClosable:l}=V;a&&ce(!0).then(({checkNodeKeys:e,checkNodes:a})=>{f(t,e,a[0]),x("all-change",{value:e},t),l&&c(t)})},_e=e=>{let a=e.$event,{multiple:t,checkedClosable:l}=V;e=t?[]:null;ve().then(()=>{l&&c(a)}),f(a,e,null),x("clear",{value:e},a)},ge=e=>{e=e.$event;c(e)},xe=e=>{var a=U.visiblePanel;w.value||a&&(a=T.value,(0,_dom.getEventTargetNode)(e,a).flag?d():c(e))},me=e=>{var a,t,l=U.visiblePanel;w.value||(a=I.value,t=T.value,U.isActivated=(0,_dom.getEventTargetNode)(e,a).flag||(0,_dom.getEventTargetNode)(e,t).flag,l&&!U.isActivated&&c(e))},be=e=>{var{visiblePanel:a,isActivated:t}=U;a&&c(e),t&&(U.isActivated=!1),(a||t)&&(e=L.value)&&e.blur()},Ce=()=>{var e=U.visiblePanel;e&&d()},ke=()=>{V.filterable&&(0,_vue.nextTick)(()=>{var e=$.value;e&&e.focus()})},Ee=(e,a)=>{e.preventDefault();U.currentNode=a,x("current-change",{node:a,checked:!0},e)},ye=(e,a)=>{e.preventDefault(),e.stopPropagation();var t=P.nodeMaps,l=_.value,r=A.value,i=O.value.transform,n=B.value,{checkMode:l,checkMethod:u}=l,o=z(a),i=a[i?n:r],n=i&&0<i.length,r=(t[o]||{}).level;(u?u({$cascader:R,node:a}):b(l,n,r))&&(i=o,U.selectRadioKey=i,f(e,i,a),c(e))},Me=i=>{var e=g.value;let t=O.value.loadMethod,n=e.checkStrictly;return new Promise(e=>{if(t){var a=P.nodeMaps;let l=z(i),r=a[l];P.treeExpandLazyLoadedMaps[l]=!0,Promise.resolve(t({$cascader:R,node:i})).then(t=>{var e=P.treeExpandLazyLoadedMaps;if(r.treeLoaded=!0,e[l]&&(e[l]=!1),t=_xeUtils.default.isArray(t)?t:[])return R.loadChildrenNode(i,t).then(e=>{var a=P.treeExpandedMaps;return e.length&&!a[l]&&(a[l]=!0),U.updateExpandedFlag++,!n&&R.isCheckedByCheckboxNodeId(l)&&te(e,!0),x("load-success",{node:i,data:t},new Event("load-success")),(0,_vue.nextTick)()});x("load-success",{node:i,data:t},new Event("load-success"))}).catch(e=>{var a=P.treeExpandLazyLoadedMaps;r.treeLoaded=!1,a[l]&&(a[l]=!1),x("load-error",{node:i,data:e},new Event("load-error"))}).finally(()=>{v(),h()})}else e()})},Ie=(e,a)=>{let{treeExpandLazyLoadedMaps:l,treeExpandedMaps:r}=P,i=P.nodeMaps,n=A.value,u=Y.value;let{lazy:o,toggleMethod:t}=O.value,s=[];var e=(e=t?e.filter(e=>t({$cascader:R,expanded:a,node:e})):e).length?[e[e.length-1]]:[],d=z(e[0]),d=i[d];d&&d.items.forEach(e=>{e=z(e);r[e]&&delete r[e]});let c=[];return a?e.forEach(e=>{var a,t=z(e);r[t]||(a=i[t],o&&e[u]&&!a.treeLoaded&&!l[t]?s.push(Me(e)):e[n]&&e[n].length&&(r[t]=!0,c.push(e)))}):e.forEach(e=>{var a=z(e);r[a]&&(delete r[a],c.push(e))}),U.updateExpandedFlag++,v(),h(),Promise.all(s)},Le=(e,a,t,l)=>{var r=U.currentItems,i=P.treeExpandLazyLoadedMaps,n=O.value.lazy,r=r.slice(0,l),l=z(a);e.stopPropagation(),r.push(l),U.currentItems=r,n&&i[l]||Ie([a],!0),de(a),o(),x("node-expand",{node:a,expanded:!0},e)},m=()=>{let{selectCheckboxMaps:o,indeterminateRowMaps:s,afterTreeList:e}=P,i=A.value,n=B.value;let{checkStrictly:a,checkMethod:d}=g.value,u=O.value.transform;if(!a){let l={},r=[];_xeUtils.default.eachTree(e,e=>{var a=z(e),t=e[u?n:i];t&&t.length&&!l[a]&&(l[a]=1,r.unshift([e,a,t]))},{children:u?n:i}),r.forEach(e=>{var a=e[0],t=e[1],e=e[2];let l=0,r=0,i=0;var n=e.length;e.forEach(d?e=>{var a=z(e),t=o[a];d({$cascader:R,node:e})?(t?l++:s[a]&&r++,i++):t?l++:s[a]&&r++}:e=>{e=z(e);o[e]?l++:s[e]&&r++,i++});let u=!1;e=!(u=0<n?0<i?(0<l||0<r)&&l>=i:0<l&&l>=i||!!o[t]:o[t])&&(0<l||0<r);u?(o[t]=a,s[t]&&delete s[t]):(o[t]&&delete o[t],e?s[t]=a:s[t]&&delete s[t])}),U.updateCheckboxFlag++}},Te=(e,t)=>{e.preventDefault(),e.stopPropagation();let{selectCheckboxMaps:l,nodeMaps:a}=P;var r=A.value,i=B.value,{checkStrictly:n,checkMode:u,checkMethod:o}=g.value,s=O.value.transform,d=z(t),c=t[s?i:r],c=c&&0<c.length,v=(a[d]||{}).level,o=o?!o({$cascader:R,node:t}):!b(u,c,v);if(!o){let a=!1;l[d]?delete l[d]:(a=!0,l[d]=t),n||_xeUtils.default.eachTree(_xeUtils.default.get(t,s?i:r),e=>{e=z(e);a?l[e]||(l[e]=!0):l[e]&&delete l[e]},{children:s?i:r}),U.updateCheckboxFlag++,m();u=_xeUtils.default.keys(l);f(e,u,t)}},we=(e,a,t,l)=>{var{multiple:r,showCheckbox:i,showRadio:n}=V,u=O.value,o=_.value,s=g.value,d=A.value,c=B.value,{transform:u,trigger:v}=u,u=a[u?c:d];let p=!1,h=!1,f=!1;Ee(e,a),"icon"!==v&&(f=!0,Le(e,a,t,l)),r?"node"!==s.trigger&&(i||u&&u.length)||(h=!0,Te(e,a)):"node"!==o.trigger&&(n||u&&u.length)||(p=!0,ye(e,a)),x("node-click",{node:a,triggerCurrent:!0,triggerRadio:p,triggerCheckbox:h,triggerExpand:f},e)},Ne=e=>{w.value||U.visiblePanel||(U.triggerFocusPanel=!0,t(e),setTimeout(()=>{U.triggerFocusPanel=!1},150)),x("focus",{},e)},Ve=e=>{e.preventDefault(),U.triggerFocusPanel?U.triggerFocusPanel=!1:U.visiblePanel||t(e),x("click",{},e)},Fe=e=>{U.isActivated=!1,x("blur",{},e)},Ue=e=>{U.searchValue=e,ue(new Event("filter"))},Pe=()=>{var{modelValue:e,remote:a}=V,t=U.searchValue,l=W.value,r=l.queryMethod;a&&r&&l.enabled&&(U.searchLoading=!0,Promise.resolve(r({$cascader:R,searchValue:t,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{U.searchLoading=!1}))},Oe=e=>{e=e.$event;e.preventDefault(),U.triggerFocusPanel?U.triggerFocusPanel=!1:(U.visiblePanel?c:t)(e)},b=(Object.assign(R,a,{isCheckedByCheckboxNodeId:e=>{var a=U.updateCheckboxFlag,t=P.selectCheckboxMaps;return!(!a||!t[e])},loadChildrenNode(a,e){let u=V.separator,o=P.nodeMaps;var t=O.value;let s=D.value,{lazy:l,transform:r}=t;if(!l)return Promise.resolve([]);let i=A.value,n=B.value,d=o[z(a)],c=d?d.level:0,v=d?d.nodes:[];return(e=>{let t=p.value;return Promise.resolve(e.map(e=>{var a,e=Object.assign({},e);return z(e)||(a=getNodeUniqueId(),_xeUtils.default.set(e,t,a)),e}))})(e).then(e=>(_xeUtils.default.eachTree(e,(e,a,t,l,r,i)=>{var n=z(e);o[n]={item:e,index:-1,$index:-1,_index:-1,items:t,parent:r||d.item,nodes:v.concat(i),level:c+i.length,treeIndex:-1,lineCount:0,treeLoaded:!1,fullLabel:i.map(e=>e[s]).join(u||" / ")}},{children:i}),a[i]=e,r&&(a[n]=e),ie(),e))}}),(e,a,t)=>{if(e){if("first"===e)return!t;if("last"===e)return!a}return!0}),De=(t,e,l,r)=>{var a=V.showRadio,{checkMode:i,checkMethod:n,visibleMode:u,visibleMethod:o}=_.value,o=o?o({$cascader:R,node:t}):b(u,e,l);if(a&&o){let a=n?!n({$cascader:R,node:t}):!b(i,e,l);return(0,_vue.h)("div",{class:["vxe-tree--radio-option",{"is--checked":r,"is--disabled":a}],onClick:e=>{a||ye(e,t)}},[(0,_vue.h)("span",{class:["vxe-radio--icon",r?(0,_ui.getIcon)().RADIO_CHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(R)},Ae=(t,e,l,r,i)=>{var a=V.showCheckbox,{checkMode:n,checkMethod:u,visibleMode:o,visibleMethod:s}=g.value,s=s?s({$cascader:R,node:t}):b(o,e,l);if(a&&s){let a=u?!u({$cascader:R,node:t}):!b(n,e,l);return(0,_vue.h)("div",{class:["vxe-cascader--checkbox-option",{"is--checked":r,"is--indeterminate":i,"is--disabled":a}],onClick:e=>{a||Te(e,t)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",i?(0,_ui.getIcon)().CHECKBOX_INDETERMINATE:r?(0,_ui.getIcon)().CHECKBOX_CHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})])}return(0,_ui.renderEmptyElement)(R)};(0,_vue.watch)(()=>V.modelValue,()=>{U.visiblePanel||(u(),s(),o())}),(0,_vue.watch)(()=>V.options,()=>{re()});let n=(0,_vue.ref)(0);return(0,_vue.watch)(()=>V.options?V.options.length:0,()=>{n.value++}),(0,_vue.watch)(()=>V.options,()=>{n.value++}),(0,_vue.watch)(n,()=>{oe(V.options||[])}),oe(V.options||[]),(0,_vue.onMounted)(()=>{_ui.globalEvents.on(R,"mousewheel",xe),_ui.globalEvents.on(R,"mousedown",me),_ui.globalEvents.on(R,"blur",be),_ui.globalEvents.on(R,"resize",Ce)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(R,"mousewheel"),_ui.globalEvents.off(R,"mousedown"),_ui.globalEvents.off(R,"blur"),_ui.globalEvents.off(R,"resize"),_xeUtils.default.assign(P,createInternalData())}),(0,_vue.provide)("$xeCascader",R),R.renderVN=()=>{var{className:e,modelValue:a,multiple:t,loading:l,filterable:r,showTotalButton:i,showCheckedButton:n,showClearButton:u,showCloseButton:o}=V,{initialized:s,isActivated:d,isAniVisible:c,visiblePanel:v,searchValue:p,currentCunkList:h}=U;let f=P.listVirtualYOpts;var _=S.value,g=w.value,x=G.value,m=K.value,b=q.value,C=J.value,k=F.header,E=F.footer;let y=F.prefix;var M=N.value.className;return b?(0,_vue.h)("div",{ref:I,class:["vxe-cascader--readonly",e]},[(0,_vue.h)("span",{class:"vxe-cascader-label"},x)]):(b=_xeUtils.default.eqNull(a)?[]:_xeUtils.default.isArray(a)?a:[a],(0,_vue.h)("div",{ref:I,class:["vxe-cascader",e?_xeUtils.default.isFunction(e)?e({$cascader:R}):e:"",{["size--"+_]:_,"is--filterable":r,"is--visible":v,"is--disabled":g,"is--loading":l,"is--active":d}]},[(0,_vue.h)(_input.default,{ref:L,clearable:V.clearable,placeholder:l?(0,_ui.getI18n)("vxe.select.loadingText"):V.placeholder,editable:!1,disabled:g,type:"text",prefixIcon:V.prefixIcon,suffixIcon:l?(0,_ui.getIcon)().TREE_SELECT_LOADED:v?(0,_ui.getIcon)().TREE_SELECT_OPEN:(0,_ui.getIcon)().TREE_SELECT_CLOSE,modelValue:l?"":x,title:x,onClear:he,onClick:Ve,onFocus:Ne,onBlur:Fe,onSuffixClick:Oe},y?{prefix:()=>y({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!m||!s},[(0,_vue.h)("div",{ref:T,class:["vxe-table--ignore-clear vxe-cascader--panel",M?_xeUtils.default.isFunction(M)?M({$cascader:R}):M:"",{["size--"+_]:_,"is--transfer":m,"ani--leave":!l&&c,"ani--enter":!l&&v}],placement:U.panelPlacement,style:C},s?[(0,_vue.h)("div",{class:"vxe-cascader--panel-wrapper"},[r?(0,_vue.h)("div",{class:"vxe-cascader--panel-search"},[(0,_vue.h)(_input.default,{ref:$,class:"vxe-cascader-search--input",modelValue:p,clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.cascader.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":Ue})]):(0,_ui.renderEmptyElement)(R),n&&t||u||k?(0,_vue.h)("div",{class:"vxe-tree-select--panel-header"},k?k({}):[(0,_vue.h)("div",{class:"vxe-tree-select--header-button"},[n&&t||u?(0,_vue.h)("div",{class:"vxe-tree-select--selected-btns"},[n&&t?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.allChecked"),mode:"text",onClick:fe}):(0,_ui.renderEmptyElement)(R),u?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.clearChecked"),mode:"text",onClick:_e}):(0,_ui.renderEmptyElement)(R)]):(0,_ui.renderEmptyElement)(R)])]):(0,_ui.renderEmptyElement)(R),(0,_vue.h)("div",{class:"vxe-cascader--panel-body"},[(0,_vue.h)("div",{ref:j,class:"vxe-cascader-chunk--wrapper"},[h.map((t,l)=>(0,_vue.h)("div",{key:l,class:"vxe-cascader-chunk--item-wrapper"},[(0,_vue.h)(_list.default,{data:t,virtualYConfig:f},{default(e){e=e.items;return e.map((e,a)=>((a,e,t,l,r)=>{var i=V.multiple,{currentNode:n,selectRadioKey:u,updateCheckboxFlag:o,updateExpandedFlag:s}=U,{nodeMaps:d,selectCheckboxMaps:c,indeterminateRowMaps:v,treeExpandedMaps:p,treeExpandLazyLoadedMaps:h}=P;let f=O.value;var{lazy:_,transform:g,iconLoaded:x,iconOpen:m,iconClose:b}=f,C=A.value,k=B.value,E=D.value,y=Y.value,g=a[g?k:C],k=g&&0<g.length,C=F.icon,g=F.title,s=s&&p[e],p=d[e]||{},d=a[E],E=p.level;let M=!1,I=(i||(M=e===u),!1),L=!1,T=(i&&(I=!(!o||!c[e]),L=!(!o||!v[e])),!1),w=!1,N=!1;_&&(w=!!h[e],T=a[y],N=!!p.treeLoaded);u={node:a};return(0,_vue.h)("div",{key:r+"_"+t,class:["vxe-cascader-chunk--node-item",{"is--current":n&&(n===a||z(n)===e),"is-radio--checked":M,"is-checkbox--checked":I,"is-checkbox--indeterminate":L,"is--expand":s}],title:d,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick(e){we(e,a,l,r)}},[i?Ae(a,k,E,I,L):De(a,k,E,M),(0,_vue.h)("div",{class:"vxe-cascader-chunk--node-item-inner"},[(0,_vue.h)("div",{class:"vxe-cascader-chunk--node-item-title"},g?(0,_ui.getSlotVNs)(g(u)):d)]),f.showIcon&&(!_||N?k:T)?(0,_vue.h)("div",{class:"vxe-cascader-chunk--node-item-switcher"},[[(0,_vue.h)("div",{class:"vxe-cascader--node-item-icon",onClick(e){"icon"===f.trigger&&Le(e,a,l,r)}},C?(0,_ui.getSlotVNs)(C(u)):[(0,_vue.h)("i",{class:w?x||(0,_ui.getIcon)().CASCADER_NODE_LOADED:s?m||(0,_ui.getIcon)().CASCADER_NODE_OPEN:b||(0,_ui.getIcon)().CASCADER_NODE_CLOSE})])]]):(0,_ui.renderEmptyElement)(R)])})(e,z(e),a,t,l))}})]))])]),E||i||o?(0,_vue.h)("div",{class:"vxe-cascader--panel-footer"},E?E({}):[(0,_vue.h)("div",{class:"vxe-cascader--footer-button"},[i?(0,_vue.h)("div",{class:"vxe-cascader--total-btns"},(0,_ui.getI18n)("vxe.treeSelect.total",[b.length])):(0,_ui.renderEmptyElement)(R),o?(0,_vue.h)("div",{class:"vxe-cascader--oper-btns"},[(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.close"),mode:"text",onClick:ge})]):(0,_ui.renderEmptyElement)(R)])]):(0,_ui.renderEmptyElement)(R)])]:[])])]))},R},render(){return this.renderVN()}});
|