vxe-pc-ui 4.16.6 → 4.16.8
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 +236 -132
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/cascader/src/cascader.js +66 -26
- package/es/cascader/style.css +9 -9
- package/es/cascader/style.min.css +1 -1
- package/es/date-range-picker/src/date-range-picker.js +25 -9
- package/es/icon/style.css +1 -1
- package/es/menu/src/menu.js +65 -17
- package/es/menu/style.css +15 -8
- package/es/menu/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/ui/index.js +3 -3
- package/es/ui/src/log.js +1 -1
- package/es/vxe-cascader/style.css +9 -9
- package/es/vxe-cascader/style.min.css +1 -1
- package/es/vxe-menu/style.css +15 -8
- package/es/vxe-menu/style.min.css +1 -1
- package/lib/cascader/src/cascader.js +73 -27
- package/lib/cascader/src/cascader.min.js +1 -1
- package/lib/cascader/style/style.css +9 -9
- package/lib/cascader/style/style.min.css +1 -1
- package/lib/date-range-picker/src/date-range-picker.js +27 -9
- package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +171 -53
- package/lib/index.umd.min.js +1 -1
- package/lib/menu/src/menu.js +66 -13
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/menu/style/style.css +15 -8
- package/lib/menu/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/ui/index.js +3 -3
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-cascader/style/style.css +9 -9
- package/lib/vxe-cascader/style/style.min.css +1 -1
- package/lib/vxe-menu/style/style.css +15 -8
- package/lib/vxe-menu/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/cascader/src/cascader.ts +66 -25
- package/packages/date-range-picker/src/date-range-picker.ts +23 -9
- package/packages/menu/src/menu.ts +71 -17
- package/packages/ui/index.ts +2 -2
- package/styles/components/cascader.scss +9 -9
- package/styles/components/menu.scss +9 -5
- package/types/components/cascader.d.ts +1 -0
- package/types/components/menu.d.ts +6 -0
- /package/es/icon/{iconfont.1783838735018.ttf → iconfont.1783923662673.ttf} +0 -0
- /package/es/icon/{iconfont.1783838735018.woff → iconfont.1783923662673.woff} +0 -0
- /package/es/icon/{iconfont.1783838735018.woff2 → iconfont.1783923662673.woff2} +0 -0
- /package/es/{iconfont.1783838735018.ttf → iconfont.1783923662673.ttf} +0 -0
- /package/es/{iconfont.1783838735018.woff → iconfont.1783923662673.woff} +0 -0
- /package/es/{iconfont.1783838735018.woff2 → iconfont.1783923662673.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1783838735018.ttf → iconfont.1783923662673.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1783838735018.woff → iconfont.1783923662673.woff} +0 -0
- /package/lib/icon/style/{iconfont.1783838735018.woff2 → iconfont.1783923662673.woff2} +0 -0
- /package/lib/{iconfont.1783838735018.ttf → iconfont.1783923662673.ttf} +0 -0
- /package/lib/{iconfont.1783838735018.woff → iconfont.1783923662673.woff} +0 -0
- /package/lib/{iconfont.1783838735018.woff2 → iconfont.1783923662673.woff2} +0 -0
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.16.
|
|
4
|
+
export const version = "4.16.8";
|
|
5
5
|
VxeUI.uiVersion = version;
|
|
6
6
|
VxeUI.dynamicApp = dynamicApp;
|
|
7
7
|
export function config(options) {
|
|
@@ -497,8 +497,8 @@ setIcon({
|
|
|
497
497
|
BUTTON_LOADING: iconPrefix + 'spinner roll',
|
|
498
498
|
BUTTON_TOOLTIP_ICON: iconPrefix + 'question-circle-fill',
|
|
499
499
|
// menu
|
|
500
|
-
MENU_ITEM_EXPAND_OPEN: iconPrefix + 'arrow-
|
|
501
|
-
MENU_ITEM_EXPAND_CLOSE: iconPrefix + 'arrow-
|
|
500
|
+
MENU_ITEM_EXPAND_OPEN: iconPrefix + 'arrow-right rotate90',
|
|
501
|
+
MENU_ITEM_EXPAND_CLOSE: iconPrefix + 'arrow-right',
|
|
502
502
|
// select
|
|
503
503
|
SELECT_LOADED: iconPrefix + 'spinner roll',
|
|
504
504
|
SELECT_OPEN: iconPrefix + 'caret-down rotate180',
|
package/es/ui/src/log.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VxeUI } from '@vxe-ui/core';
|
|
2
2
|
const { log } = VxeUI;
|
|
3
|
-
const uiVersion = `ui v${"4.16.
|
|
3
|
+
const uiVersion = `ui v${"4.16.8"}`;
|
|
4
4
|
export function createComponentLog(name) {
|
|
5
5
|
const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
|
|
6
6
|
const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
.vxe-cascader,
|
|
2
2
|
.vxe-cascader--panel {
|
|
3
3
|
--vxe-ui-cascader-current-font-size: var(--vxe-ui-font-size-default);
|
|
4
|
-
--vxe-ui-cascader-current-
|
|
4
|
+
--vxe-ui-cascader-current-padding: var(--vxe-ui-layout-padding-default);
|
|
5
5
|
}
|
|
6
6
|
.vxe-cascader.size--medium,
|
|
7
7
|
.vxe-cascader--panel.size--medium {
|
|
8
8
|
--vxe-ui-cascader-current-font-size: var(--vxe-ui-font-size-medium);
|
|
9
|
-
--vxe-ui-cascader-current-
|
|
9
|
+
--vxe-ui-cascader-current-padding: var(--vxe-ui-layout-padding-medium);
|
|
10
10
|
}
|
|
11
11
|
.vxe-cascader.size--small,
|
|
12
12
|
.vxe-cascader--panel.size--small {
|
|
13
13
|
--vxe-ui-cascader-current-font-size: var(--vxe-ui-font-size-small);
|
|
14
|
-
--vxe-ui-cascader-current-
|
|
14
|
+
--vxe-ui-cascader-current-padding: var(--vxe-ui-layout-padding-small);
|
|
15
15
|
}
|
|
16
16
|
.vxe-cascader.size--mini,
|
|
17
17
|
.vxe-cascader--panel.size--mini {
|
|
18
18
|
--vxe-ui-cascader-current-font-size: var(--vxe-ui-font-size-mini);
|
|
19
|
-
--vxe-ui-cascader-current-
|
|
19
|
+
--vxe-ui-cascader-current-padding: var(--vxe-ui-layout-padding-mini);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
.vxe-cascader {
|
|
@@ -108,8 +108,8 @@
|
|
|
108
108
|
|
|
109
109
|
.vxe-cascader--panel-search {
|
|
110
110
|
display: block;
|
|
111
|
-
padding: var(--vxe-ui-cascader-current-
|
|
112
|
-
width:
|
|
111
|
+
padding: var(--vxe-ui-cascader-current-padding);
|
|
112
|
+
width: 100%;
|
|
113
113
|
}
|
|
114
114
|
.vxe-cascader--panel-search .vxe-cascader-search--input {
|
|
115
115
|
width: 100%;
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
.vxe-cascader--total-btns {
|
|
128
|
-
padding-left: var(--vxe-ui-cascader-current-
|
|
128
|
+
padding-left: var(--vxe-ui-cascader-current-padding);
|
|
129
129
|
flex-grow: 1;
|
|
130
130
|
}
|
|
131
131
|
|
|
@@ -272,7 +272,7 @@
|
|
|
272
272
|
.vxe-cascader-chunk--item-wrapper {
|
|
273
273
|
flex-shrink: 0;
|
|
274
274
|
border-left: 1px solid var(--vxe-ui-base-popup-border-color);
|
|
275
|
-
padding: var(--vxe-ui-cascader-current-
|
|
275
|
+
padding: var(--vxe-ui-cascader-current-padding) 0;
|
|
276
276
|
}
|
|
277
277
|
.vxe-cascader-chunk--item-wrapper:first-child {
|
|
278
278
|
border-left: 0;
|
|
@@ -295,7 +295,7 @@
|
|
|
295
295
|
flex-direction: row;
|
|
296
296
|
height: var(--vxe-ui-cascader-node-height);
|
|
297
297
|
line-height: var(--vxe-ui-cascader-node-height);
|
|
298
|
-
padding: 0 calc(var(--vxe-ui-cascader-current-
|
|
298
|
+
padding: 0 calc(var(--vxe-ui-cascader-current-padding) + 18px) 0 var(--vxe-ui-cascader-current-padding);
|
|
299
299
|
cursor: pointer;
|
|
300
300
|
}
|
|
301
301
|
.vxe-cascader-chunk--node-item:hover {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vxe-cascader,.vxe-cascader--panel{--vxe-ui-cascader-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-cascader-current-
|
|
1
|
+
.vxe-cascader,.vxe-cascader--panel{--vxe-ui-cascader-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-cascader-current-padding:var(--vxe-ui-layout-padding-default)}.vxe-cascader--panel.size--medium,.vxe-cascader.size--medium{--vxe-ui-cascader-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-cascader-current-padding:var(--vxe-ui-layout-padding-medium)}.vxe-cascader--panel.size--small,.vxe-cascader.size--small{--vxe-ui-cascader-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-cascader-current-padding:var(--vxe-ui-layout-padding-small)}.vxe-cascader--panel.size--mini,.vxe-cascader.size--mini{--vxe-ui-cascader-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-cascader-current-padding:var(--vxe-ui-layout-padding-mini)}.vxe-cascader{position:relative;display:inline-block;width:180px;font-size:var(--vxe-ui-cascader-current-font-size);color:var(--vxe-ui-font-color);text-align:left;--vxe-ui-cascader-chunk-size:1}.vxe-cascader>.vxe-input .vxe-input--inner{cursor:pointer}.vxe-cascader.is--filterable .vxe-cascader-chunk--wrapper{padding-top:0}.vxe-cascader.is--filterable .vxe-cascader--panel-header{border-top:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-cascader.is--disabled>.vxe-input .vxe-input--inner{cursor:no-drop}.vxe-cascader.is--loading>.vxe-input .vxe-input--inner{cursor:progress}.vxe-cascader>.vxe-input{width:100%}.vxe-cascader>.vxe-input .vxe-input--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-cascader.is--active:not(.is--filter)>.vxe-input{border-color:var(--vxe-ui-font-primary-color)}.vxe-cascader--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-cascader--panel{font-size:var(--vxe-ui-cascader-current-font-size);pointer-events:none;display:none;position:absolute;left:0;padding:4px 0;color:var(--vxe-ui-font-color);text-align:left}.vxe-cascader--panel:not(.is--transfer){min-width:var(--vxe-ui-cascader-node-width)}.vxe-cascader--panel.is--transfer{position:fixed}.vxe-cascader--panel.ani--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden}.vxe-cascader--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-cascader--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-cascader--panel.ani--enter>div::after{display:none}.vxe-cascader--panel>div::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-cascader--panel-search{display:block;padding:var(--vxe-ui-cascader-current-padding);width:100%}.vxe-cascader--panel-search .vxe-cascader-search--input{width:100%}.vxe-cascader--footer-button,.vxe-cascader--header-button{display:flex;flex-direction:row;white-space:nowrap;align-items:center;min-height:2em}.vxe-cascader--total-btns{padding-left:var(--vxe-ui-cascader-current-padding);flex-grow:1}.vxe-cascader--oper-btns,.vxe-cascader--total-btns{display:flex;flex-direction:row;align-items:center}.vxe-cascader--oper-btns{flex-shrink:0}.vxe-cascader--expand-btns,.vxe-cascader--footer-button,.vxe-cascader--selected-btns{display:flex;flex-direction:row;flex-grow:1}.vxe-cascader--selected-btns+.vxe-cascader--expand-btns{padding-left:2.2em}.vxe-cascader--panel-wrapper{display:flex;flex-direction:column;position:relative;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);box-shadow:var(--vxe-ui-base-popup-box-shadow);background-color:var(--vxe-ui-layout-background-color);pointer-events:auto}.vxe-cascader--panel-header{border-bottom:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-cascader--panel-footer{border-top:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-cascader--panel-footer,.vxe-cascader--panel-header{padding:4px 0}.vxe-cascader--checkbox-option{padding-right:.4em}.vxe-cascader--checkbox-option{cursor:pointer}.vxe-cascader--checkbox-option .vxe-checkbox--icon{font-size:1.22em}.vxe-cascader--checkbox-option .vxe-checkbox--icon{color:var(--vxe-ui-input-border-color);vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-cascader--checkbox-option.is--checked,.vxe-cascader--checkbox-option.is--indeterminate{color:var(--vxe-ui-font-primary-color)}.vxe-cascader--checkbox-option.is--checked .vxe-checkbox--icon,.vxe-cascader--checkbox-option.is--indeterminate .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-cascader--checkbox-option:not(.is--disabled):hover .vxe-checkbox--icon{color:var(--vxe-ui-font-primary-color)}.vxe-cascader--checkbox-option.is--hidden{cursor:default}.vxe-cascader--checkbox-option.is--readonly{cursor:auto}.vxe-cascader--checkbox-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-cascader--checkbox-option.is--disabled .vxe-checkbox--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-cascader--checkbox-option .vxe-checkbox--label{padding-left:.4em;vertical-align:middle}.vxe-cascader--radio-option{padding-right:.4em}.vxe-cascader--radio-option{cursor:pointer}.vxe-cascader--radio-option .vxe-radio--icon{font-size:1.26em}.vxe-cascader--radio-option .vxe-radio--icon{color:var(--vxe-ui-input-border-color);border-radius:50%;vertical-align:middle;font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-cascader--radio-option.is--checked{color:var(--vxe-ui-font-primary-color)}.vxe-cascader--radio-option.is--checked .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-cascader--radio-option:not(.is--disabled):hover .vxe-radio--icon{color:var(--vxe-ui-font-primary-color)}.vxe-cascader--radio-option.is--readonly{cursor:auto}.vxe-cascader--radio-option.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:not-allowed}.vxe-cascader--radio-option.is--disabled .vxe-radio--icon{color:var(--vxe-ui-input-disabled-color)}.vxe-cascader--radio-option .vxe-radio--label{padding-left:.4em;vertical-align:middle}.vxe-cascader-chunk--wrapper{position:relative;display:flex;flex-direction:row;outline:0}.vxe-cascader-chunk--item-wrapper{flex-shrink:0;border-left:1px solid var(--vxe-ui-base-popup-border-color);padding:var(--vxe-ui-cascader-current-padding) 0}.vxe-cascader-chunk--item-wrapper:first-child{border-left:0}.vxe-cascader-chunk--item-wrapper .vxe-list .vxe-list--virtual-wrapper{height:var(--vxe-ui-cascader-chunk-height);width:var(--vxe-ui-cascader-node-width);overflow-x:hidden;overflow-y:hidden}.vxe-cascader-chunk--item-wrapper .vxe-list .vxe-list--virtual-wrapper:hover{overflow-y:auto}.vxe-cascader-chunk--item-wrapper .vxe-list .vxe-list--body{width:var(--vxe-ui-cascader-node-width)}.vxe-cascader-chunk--node-item{display:flex;flex-direction:row;height:var(--vxe-ui-cascader-node-height);line-height:var(--vxe-ui-cascader-node-height);padding:0 calc(var(--vxe-ui-cascader-current-padding) + 18px) 0 var(--vxe-ui-cascader-current-padding);cursor:pointer}.vxe-cascader-chunk--node-item:hover{background-color:var(--vxe-ui-cascader-node-hover-background-color)}.vxe-cascader-chunk--node-item.is--current,.vxe-cascader-chunk--node-item.is--expand{font-weight:700}.vxe-cascader-chunk--node-item.is--current{background-color:var(--vxe-ui-cascader-node-current-background-color)}.vxe-cascader-chunk--node-item.is-checkbox--indeterminate{color:var(--vxe-ui-cascader-node-checkbox-indeterminate-color)}.vxe-cascader-chunk--node-item.is-checkbox--checked,.vxe-cascader-chunk--node-item.is-radio--checked{color:var(--vxe-ui-cascader-node-checkbox-checked-color)}.vxe-cascader-chunk--node-item-inner{display:flex;flex-direction:row;overflow:hidden;flex-grow:1}.vxe-cascader-chunk--node-item-title{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-cascader-chunk--node-item-switcher{-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;width:1em;position:relative}.vxe-cascader-chunk--node-item-switcher .vxe-cascader--node-item-icon>i{display:inline-block;transition:transform .2s ease-in-out}
|
package/es/vxe-menu/style.css
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
.vxe-menu
|
|
1
|
+
.vxe-menu,
|
|
2
|
+
.vxe-menu--collapse-wrapper {
|
|
2
3
|
--vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-default);
|
|
3
4
|
--vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-default);
|
|
4
5
|
}
|
|
5
|
-
.vxe-menu.size--medium
|
|
6
|
+
.vxe-menu.size--medium,
|
|
7
|
+
.vxe-menu--collapse-wrapper.size--medium {
|
|
6
8
|
--vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-medium);
|
|
7
9
|
--vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-medium);
|
|
8
10
|
}
|
|
9
|
-
.vxe-menu.size--small
|
|
11
|
+
.vxe-menu.size--small,
|
|
12
|
+
.vxe-menu--collapse-wrapper.size--small {
|
|
10
13
|
--vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-small);
|
|
11
14
|
--vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-small);
|
|
12
15
|
}
|
|
13
|
-
.vxe-menu.size--mini
|
|
16
|
+
.vxe-menu.size--mini,
|
|
17
|
+
.vxe-menu--collapse-wrapper.size--mini {
|
|
14
18
|
--vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-mini);
|
|
15
19
|
--vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-mini);
|
|
16
20
|
}
|
|
@@ -27,7 +31,8 @@
|
|
|
27
31
|
min-height: 4em;
|
|
28
32
|
}
|
|
29
33
|
|
|
30
|
-
.vxe-menu
|
|
34
|
+
.vxe-menu,
|
|
35
|
+
.vxe-menu--collapse-wrapper {
|
|
31
36
|
font-size: var(--vxe-ui-menu-current-font-size);
|
|
32
37
|
color: var(--vxe-ui-font-color);
|
|
33
38
|
font-family: var(--vxe-ui-font-family);
|
|
@@ -124,9 +129,11 @@
|
|
|
124
129
|
}
|
|
125
130
|
|
|
126
131
|
.vxe-menu--item-group {
|
|
127
|
-
|
|
132
|
+
height: 0;
|
|
128
133
|
overflow: hidden;
|
|
129
|
-
|
|
134
|
+
}
|
|
135
|
+
.vxe-menu--item-group[data-effect] {
|
|
136
|
+
transition: height 0.3s ease-in-out;
|
|
130
137
|
}
|
|
131
138
|
|
|
132
139
|
.vxe-menu--item-wrapper.is--active > .vxe-menu--item-link {
|
|
@@ -137,5 +144,5 @@
|
|
|
137
144
|
background-color: var(--vxe-ui-base-active-background-color);
|
|
138
145
|
}
|
|
139
146
|
.vxe-menu--item-wrapper.is--expand > .vxe-menu--item-group {
|
|
140
|
-
|
|
147
|
+
height: auto;
|
|
141
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vxe-menu{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-default)}.vxe-menu.size--medium{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-medium)}.vxe-menu.size--small{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-small)}.vxe-menu.size--mini{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-mini)}.vxe-menu{position:relative}.vxe-menu.is--collapsed .vxe-menu--item-custom-title,.vxe-menu.is--collapsed .vxe-menu--item-link-collapse,.vxe-menu.is--collapsed .vxe-menu--item-link-title{display:none}.vxe-menu.is--loading{min-height:4em}.vxe-menu{font-size:var(--vxe-ui-menu-current-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper{display:none;position:absolute;overflow:auto;background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper.is--collapsed{display:block;transition:all .25s ease-in-out}.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-custom-title,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-collapse,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-title{display:none}.vxe-menu--collapse-wrapper.is--enter{box-shadow:var(--vxe-ui-menu-collapse-wrapper-box-shadow)}.vxe-menu--item-link{display:flex;flex-direction:row;align-items:center;height:var(--vxe-ui-menu-current-item-height);color:var(--vxe-ui-font-color);text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-menu--item-link:hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-menu--item-custom-title,.vxe-menu--item-link,.vxe-menu--item-link-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-menu--item-link-icon{flex-shrink:0;width:var(--vxe-ui-menu-icon-width);text-align:center}.vxe-menu--item-custom-title,.vxe-menu--item-link-title{flex-grow:1;padding-left:.2em}.vxe-menu--item-link-collapse{flex-shrink:0;padding:.5em}.vxe-menu--item-link-collapse i{display:inline-block;font-size:.8em;transition:transform .25s ease-in-out}.vxe-menu--item-wrapper.vxe-menu--item-level1>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double)}.vxe-menu--item-wrapper.vxe-menu--item-level1>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 1)}.vxe-menu--item-wrapper.vxe-menu--item-level2>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 2)}.vxe-menu--item-wrapper.vxe-menu--item-level3>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 3)}.vxe-menu--item-wrapper.vxe-menu--item-level4>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 4)}.vxe-menu--item-wrapper.vxe-menu--item-level5>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 5)}.vxe-menu--item-wrapper.vxe-menu--item-level6>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 6)}.vxe-menu--item-wrapper.vxe-menu--item-level7>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 7)}.vxe-menu--item-group{
|
|
1
|
+
.vxe-menu,.vxe-menu--collapse-wrapper{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-default)}.vxe-menu--collapse-wrapper.size--medium,.vxe-menu.size--medium{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-medium)}.vxe-menu--collapse-wrapper.size--small,.vxe-menu.size--small{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-small)}.vxe-menu--collapse-wrapper.size--mini,.vxe-menu.size--mini{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-mini)}.vxe-menu{position:relative}.vxe-menu.is--collapsed .vxe-menu--item-custom-title,.vxe-menu.is--collapsed .vxe-menu--item-link-collapse,.vxe-menu.is--collapsed .vxe-menu--item-link-title{display:none}.vxe-menu.is--loading{min-height:4em}.vxe-menu,.vxe-menu--collapse-wrapper{font-size:var(--vxe-ui-menu-current-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper{display:none;position:absolute;overflow:auto;background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper.is--collapsed{display:block;transition:all .25s ease-in-out}.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-custom-title,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-collapse,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-title{display:none}.vxe-menu--collapse-wrapper.is--enter{box-shadow:var(--vxe-ui-menu-collapse-wrapper-box-shadow)}.vxe-menu--item-link{display:flex;flex-direction:row;align-items:center;height:var(--vxe-ui-menu-current-item-height);color:var(--vxe-ui-font-color);text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-menu--item-link:hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-menu--item-custom-title,.vxe-menu--item-link,.vxe-menu--item-link-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-menu--item-link-icon{flex-shrink:0;width:var(--vxe-ui-menu-icon-width);text-align:center}.vxe-menu--item-custom-title,.vxe-menu--item-link-title{flex-grow:1;padding-left:.2em}.vxe-menu--item-link-collapse{flex-shrink:0;padding:.5em}.vxe-menu--item-link-collapse i{display:inline-block;font-size:.8em;transition:transform .25s ease-in-out}.vxe-menu--item-wrapper.vxe-menu--item-level1>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double)}.vxe-menu--item-wrapper.vxe-menu--item-level1>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 1)}.vxe-menu--item-wrapper.vxe-menu--item-level2>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 2)}.vxe-menu--item-wrapper.vxe-menu--item-level3>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 3)}.vxe-menu--item-wrapper.vxe-menu--item-level4>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 4)}.vxe-menu--item-wrapper.vxe-menu--item-level5>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 5)}.vxe-menu--item-wrapper.vxe-menu--item-level6>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 6)}.vxe-menu--item-wrapper.vxe-menu--item-level7>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 7)}.vxe-menu--item-group{height:0;overflow:hidden}.vxe-menu--item-group[data-effect]{transition:height .3s ease-in-out}.vxe-menu--item-wrapper.is--active>.vxe-menu--item-link{font-weight:700}.vxe-menu--item-wrapper.is--exact-active>.vxe-menu--item-link{color:var(--vxe-ui-font-primary-color);background-color:var(--vxe-ui-base-active-background-color)}.vxe-menu--item-wrapper.is--expand>.vxe-menu--item-group{height:auto}
|
|
@@ -61,6 +61,7 @@ function createInternalData() {
|
|
|
61
61
|
selectCheckboxMaps: {},
|
|
62
62
|
treeExpandedMaps: {},
|
|
63
63
|
treeExpandLazyLoadedMaps: {}
|
|
64
|
+
// isUpdateMode: false
|
|
64
65
|
};
|
|
65
66
|
}
|
|
66
67
|
var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
@@ -339,6 +340,20 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
339
340
|
const nodeKey = node[valueField];
|
|
340
341
|
return (0, _util.enNodeValue)(nodeKey);
|
|
341
342
|
};
|
|
343
|
+
const isPathInTree = (treeData, pathIds) => {
|
|
344
|
+
if (!pathIds || !pathIds.length) {
|
|
345
|
+
return false;
|
|
346
|
+
}
|
|
347
|
+
let currentNodes = treeData;
|
|
348
|
+
for (const nodeid of pathIds) {
|
|
349
|
+
const found = currentNodes.find(node => getNodeId(node) === nodeid);
|
|
350
|
+
if (!found) {
|
|
351
|
+
return false;
|
|
352
|
+
}
|
|
353
|
+
currentNodes = found.children || [];
|
|
354
|
+
}
|
|
355
|
+
return true;
|
|
356
|
+
};
|
|
342
357
|
const isCheckedByCheckboxNodeId = nodeid => {
|
|
343
358
|
const {
|
|
344
359
|
updateCheckboxFlag
|
|
@@ -578,7 +593,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
578
593
|
if (transform) {
|
|
579
594
|
treeList = _xeUtils.default.searchTree(treeFullData, handleSearch, {
|
|
580
595
|
original: true,
|
|
581
|
-
isEvery:
|
|
596
|
+
isEvery: false,
|
|
582
597
|
children: childrenField,
|
|
583
598
|
mapChildren: mapChildrenField
|
|
584
599
|
});
|
|
@@ -596,7 +611,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
596
611
|
if (transform) {
|
|
597
612
|
treeList = _xeUtils.default.searchTree(treeFullData, () => true, {
|
|
598
613
|
original: true,
|
|
599
|
-
isEvery:
|
|
614
|
+
isEvery: false,
|
|
600
615
|
children: childrenField,
|
|
601
616
|
mapChildren: mapChildrenField
|
|
602
617
|
});
|
|
@@ -700,20 +715,31 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
700
715
|
}
|
|
701
716
|
const triggerSearchEvent = _xeUtils.default.debounce(() => {
|
|
702
717
|
handleData(true);
|
|
703
|
-
|
|
704
|
-
const filterOpts = computeFilterOpts.value;
|
|
718
|
+
updateCheckboxStatus();
|
|
705
719
|
const {
|
|
706
|
-
|
|
707
|
-
} =
|
|
720
|
+
currentItems
|
|
721
|
+
} = reactData;
|
|
708
722
|
const {
|
|
709
723
|
afterTreeList
|
|
710
724
|
} = internalData;
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
725
|
+
const filterOpts = computeFilterOpts.value;
|
|
726
|
+
const {
|
|
727
|
+
autoExpandMode
|
|
728
|
+
} = filterOpts;
|
|
729
|
+
// 如果当前不在列表情况下,触发默认行为
|
|
730
|
+
if (!isPathInTree(afterTreeList, currentItems)) {
|
|
731
|
+
// 默认展开
|
|
732
|
+
if (autoExpandMode === 'first' || autoExpandMode === 'last') {
|
|
733
|
+
const stItems = handleHasChildNodeIds(afterTreeList, autoExpandMode);
|
|
734
|
+
const expandedMaps = {};
|
|
735
|
+
stItems.forEach(nodeid => {
|
|
736
|
+
expandedMaps[nodeid] = true;
|
|
737
|
+
});
|
|
738
|
+
internalData.treeExpandedMaps = expandedMaps;
|
|
739
|
+
reactData.currentItems = stItems;
|
|
740
|
+
} else {
|
|
741
|
+
handleCurrentItems();
|
|
742
|
+
}
|
|
717
743
|
}
|
|
718
744
|
updateCurrentChunk();
|
|
719
745
|
}, 350, {
|
|
@@ -891,6 +917,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
891
917
|
};
|
|
892
918
|
const setCurrentNode = node => {
|
|
893
919
|
reactData.currentNode = node;
|
|
920
|
+
updateCurrentChunk();
|
|
894
921
|
return (0, _vue.nextTick)();
|
|
895
922
|
};
|
|
896
923
|
const setAllCheckboxNode = checked => {
|
|
@@ -939,6 +966,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
939
966
|
};
|
|
940
967
|
const changeEvent = (evnt, selectValue, node) => {
|
|
941
968
|
const value = _xeUtils.default.isArray(selectValue) ? selectValue.map(_util.deNodeValue) : (0, _util.deNodeValue)(selectValue);
|
|
969
|
+
internalData.isUpdateMode = true;
|
|
942
970
|
emitModel(value);
|
|
943
971
|
if (value !== props.modelValue) {
|
|
944
972
|
dispatchEvent('change', {
|
|
@@ -1085,9 +1113,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1085
1113
|
checked: isChecked
|
|
1086
1114
|
}, evnt);
|
|
1087
1115
|
};
|
|
1088
|
-
const changeRadioEvent = (evnt, node) => {
|
|
1116
|
+
const changeRadioEvent = (evnt, node, chunks, chunkIndex) => {
|
|
1089
1117
|
evnt.preventDefault();
|
|
1090
1118
|
evnt.stopPropagation();
|
|
1119
|
+
const {
|
|
1120
|
+
currentItems
|
|
1121
|
+
} = reactData;
|
|
1091
1122
|
const {
|
|
1092
1123
|
nodeMaps
|
|
1093
1124
|
} = internalData;
|
|
@@ -1117,6 +1148,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1117
1148
|
const value = nodeid;
|
|
1118
1149
|
reactData.selectRadioKey = value;
|
|
1119
1150
|
changeEvent(evnt, value, node);
|
|
1151
|
+
if (!currentItems.includes(nodeid)) {
|
|
1152
|
+
changeCurrentEvent(evnt, node);
|
|
1153
|
+
toggleExpandEvent(evnt, node, chunks, chunkIndex);
|
|
1154
|
+
}
|
|
1120
1155
|
hideOptionPanel(evnt);
|
|
1121
1156
|
};
|
|
1122
1157
|
const handleAsyncTreeExpandChilds = node => {
|
|
@@ -1288,7 +1323,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1288
1323
|
handleBaseTreeExpand([node], expanded);
|
|
1289
1324
|
}
|
|
1290
1325
|
setCurrentNode(node);
|
|
1291
|
-
updateCurrentChunk();
|
|
1292
1326
|
dispatchEvent('node-expand', {
|
|
1293
1327
|
node,
|
|
1294
1328
|
expanded
|
|
@@ -1402,9 +1436,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1402
1436
|
reactData.updateCheckboxFlag++;
|
|
1403
1437
|
}
|
|
1404
1438
|
};
|
|
1405
|
-
const changeCheckboxEvent = (evnt, node) => {
|
|
1439
|
+
const changeCheckboxEvent = (evnt, node, chunks, chunkIndex) => {
|
|
1406
1440
|
evnt.preventDefault();
|
|
1407
1441
|
evnt.stopPropagation();
|
|
1442
|
+
// const { filterable } = props
|
|
1443
|
+
const {
|
|
1444
|
+
currentItems
|
|
1445
|
+
} = reactData;
|
|
1408
1446
|
const {
|
|
1409
1447
|
selectCheckboxMaps,
|
|
1410
1448
|
nodeMaps
|
|
@@ -1441,11 +1479,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1441
1479
|
selectCheckboxMaps[nodeid] = node;
|
|
1442
1480
|
}
|
|
1443
1481
|
if (!checkStrictly) {
|
|
1444
|
-
_xeUtils.default.eachTree(
|
|
1482
|
+
_xeUtils.default.eachTree(childList, childNode => {
|
|
1445
1483
|
const childNodeid = getNodeId(childNode);
|
|
1446
1484
|
if (isChecked) {
|
|
1447
1485
|
if (!selectCheckboxMaps[childNodeid]) {
|
|
1448
|
-
selectCheckboxMaps[childNodeid] =
|
|
1486
|
+
selectCheckboxMaps[childNodeid] = childNode;
|
|
1449
1487
|
}
|
|
1450
1488
|
} else {
|
|
1451
1489
|
if (selectCheckboxMaps[childNodeid]) {
|
|
@@ -1456,11 +1494,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1456
1494
|
children: transform ? mapChildrenField : childrenField
|
|
1457
1495
|
});
|
|
1458
1496
|
}
|
|
1497
|
+
selectCheckboxMaps[nodeid] = node;
|
|
1459
1498
|
reactData.updateCheckboxFlag++;
|
|
1460
1499
|
updateCheckboxStatus();
|
|
1461
1500
|
const nodeids = _xeUtils.default.keys(selectCheckboxMaps);
|
|
1462
1501
|
const value = nodeids;
|
|
1463
1502
|
changeEvent(evnt, value, node);
|
|
1503
|
+
if (!currentItems.includes(nodeid)) {
|
|
1504
|
+
changeCurrentEvent(evnt, node);
|
|
1505
|
+
toggleExpandEvent(evnt, node, chunks, chunkIndex);
|
|
1506
|
+
}
|
|
1464
1507
|
};
|
|
1465
1508
|
const handleNodeClickEvent = (evnt, node, chunks, chunkIndex) => {
|
|
1466
1509
|
const {
|
|
@@ -1491,12 +1534,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1491
1534
|
if (multiple) {
|
|
1492
1535
|
if (checkboxOpts.trigger === 'node' || !showCheckbox && (!childList || !childList.length)) {
|
|
1493
1536
|
triggerCheckbox = true;
|
|
1494
|
-
changeCheckboxEvent(evnt, node);
|
|
1537
|
+
changeCheckboxEvent(evnt, node, chunks, chunkIndex);
|
|
1495
1538
|
}
|
|
1496
1539
|
} else {
|
|
1497
1540
|
if (radioOpts.trigger === 'node' || !showRadio && (!childList || !childList.length)) {
|
|
1498
1541
|
triggerRadio = true;
|
|
1499
|
-
changeRadioEvent(evnt, node);
|
|
1542
|
+
changeRadioEvent(evnt, node, chunks, chunkIndex);
|
|
1500
1543
|
}
|
|
1501
1544
|
}
|
|
1502
1545
|
dispatchEvent('node-click', {
|
|
@@ -1642,7 +1685,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1642
1685
|
}
|
|
1643
1686
|
return true;
|
|
1644
1687
|
};
|
|
1645
|
-
const renderRadio = (node, isExistChild, nLevel, isChecked) => {
|
|
1688
|
+
const renderRadio = (node, isExistChild, nLevel, isChecked, chunks, chunkIndex) => {
|
|
1646
1689
|
const {
|
|
1647
1690
|
showRadio
|
|
1648
1691
|
} = props;
|
|
@@ -1669,7 +1712,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1669
1712
|
}],
|
|
1670
1713
|
onClick: evnt => {
|
|
1671
1714
|
if (!isDisabled) {
|
|
1672
|
-
changeRadioEvent(evnt, node);
|
|
1715
|
+
changeRadioEvent(evnt, node, chunks, chunkIndex);
|
|
1673
1716
|
}
|
|
1674
1717
|
}
|
|
1675
1718
|
}, [(0, _vue.h)('span', {
|
|
@@ -1678,7 +1721,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1678
1721
|
}
|
|
1679
1722
|
return (0, _ui.renderEmptyElement)($xeCascader);
|
|
1680
1723
|
};
|
|
1681
|
-
const renderCheckbox = (node, isExistChild, nLevel, isChecked, isIndeterminate) => {
|
|
1724
|
+
const renderCheckbox = (node, isExistChild, nLevel, isChecked, isIndeterminate, chunks, chunkIndex) => {
|
|
1682
1725
|
const {
|
|
1683
1726
|
showCheckbox
|
|
1684
1727
|
} = props;
|
|
@@ -1706,7 +1749,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1706
1749
|
}],
|
|
1707
1750
|
onClick: evnt => {
|
|
1708
1751
|
if (!isDisabled) {
|
|
1709
|
-
changeCheckboxEvent(evnt, node);
|
|
1752
|
+
changeCheckboxEvent(evnt, node, chunks, chunkIndex);
|
|
1710
1753
|
}
|
|
1711
1754
|
}
|
|
1712
1755
|
}, [(0, _vue.h)('span', {
|
|
@@ -1792,7 +1835,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1792
1835
|
onClick(evnt) {
|
|
1793
1836
|
handleNodeClickEvent(evnt, node, chunks, chunkIndex);
|
|
1794
1837
|
}
|
|
1795
|
-
}, [multiple ? renderCheckbox(node, isExistChild, nLevel, isCheckboxChecked, isIndeterminate) : renderRadio(node, isExistChild, nLevel, isRadioChecked), (0, _vue.h)('div', {
|
|
1838
|
+
}, [multiple ? renderCheckbox(node, isExistChild, nLevel, isCheckboxChecked, isIndeterminate, chunks, chunkIndex) : renderRadio(node, isExistChild, nLevel, isRadioChecked, chunks, chunkIndex), (0, _vue.h)('div', {
|
|
1796
1839
|
class: 'vxe-cascader-chunk--node-item-inner'
|
|
1797
1840
|
}, [(0, _vue.h)('div', {
|
|
1798
1841
|
class: 'vxe-cascader-chunk--node-item-title'
|
|
@@ -1963,9 +2006,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1963
2006
|
})]) : (0, _ui.renderEmptyElement)($xeCascader)])]) : (0, _ui.renderEmptyElement)($xeCascader)])] : [])])]);
|
|
1964
2007
|
};
|
|
1965
2008
|
(0, _vue.watch)(() => props.modelValue, () => {
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
2009
|
+
if (!internalData.isUpdateMode) {
|
|
2010
|
+
updateModelChecked();
|
|
2011
|
+
handleCurrentItems();
|
|
2012
|
+
updateCurrentChunk();
|
|
2013
|
+
}
|
|
2014
|
+
internalData.isUpdateMode = false;
|
|
1969
2015
|
});
|
|
1970
2016
|
(0, _vue.watch)(() => props.options, () => {
|
|
1971
2017
|
cacheNodeMap();
|
|
@@ -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"),_xeUtils=_interopRequireDefault(require("xe-utils")),_list=_interopRequireDefault(require("../../list")),_input=_interopRequireDefault(require("../../input")),_button=_interopRequireDefault(require("../../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}),N=(0,_vue.computed)(()=>{var e=V.disabled;return null===e?!!r&&r.props.disabled:e}),K=(0,_vue.computed)(()=>{var e=w.value.transfer;return _xeUtils.default.isBoolean(e)?e:!!(E||C||k||r)}),D=(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)),w=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.popupConfig,V.popupConfig)),M=(0,_vue.computed)(()=>V.optionProps||{}),O=(0,_vue.computed)(()=>M.value.label||"label"),p=(0,_vue.computed)(()=>M.value.value||"value"),H=(0,_vue.computed)(()=>D.value.keyField||"id"),X=(0,_vue.computed)(()=>D.value.parentField||"parentId"),A=(0,_vue.computed)(()=>D.value.childrenField||"children"),B=(0,_vue.computed)(()=>D.value.mapChildrenField||"mapChildren"),Y=(0,_vue.computed)(()=>D.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=O.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}=w.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=D.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=O.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=O.value;var a=A.value,t=B.value,l=D.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=O.value;var r=A.value,i=B.value,n=D.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=D.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=D.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=D.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=D.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=U.currentNode,a=P.afterTreeList,t=Z.value,l=A.value,r=B.value,i=D.value.transform;let n=[],u={},o=e?z(e):(0,_util.enNodeValue)(_xeUtils.default.last(t));o&&(e=_xeUtils.default.findTree(a,e=>o===z(e),{children:i?r:l}))&&(t=e.nodes,t.forEach(e=>{e=z(e);u[e]=!0,n.push(e)})),U.currentItems=n,P.treeExpandedMaps=u},se=()=>{var e=w.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=w.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=N.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=D.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;N.value||a&&(a=T.value,(0,_dom.getEventTargetNode)(e,a).flag?d():c(e))},me=e=>{var a,t,l=U.visiblePanel;N.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=D.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=D.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}=D.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=D.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=D.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=D.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)}},Ne=(e,a,t,l)=>{var{multiple:r,showCheckbox:i,showRadio:n}=V,u=D.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)},we=e=>{N.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}))},De=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=D.value;let s=O.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}),Oe=(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(),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(U,createReactData()),_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=N.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=w.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:we,onBlur:Fe,onSuffixClick:De},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-cascader--panel-header"},k?k({}):[(0,_vue.h)("div",{class:"vxe-cascader--header-button"},[n&&t||u?(0,_vue.h)("div",{class:"vxe-cascader--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=D.value;var{lazy:_,transform:g,iconLoaded:x,iconOpen:m,iconClose:b}=f,C=A.value,k=B.value,E=O.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),N=!1,w=!1;_&&(N=!!h[e],T=a[y],w=!!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){Ne(e,a,l,r)}},[i?Ae(a,k,E,I,L):Oe(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&&(!_||w?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:N?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()}});
|
|
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")),_input=_interopRequireDefault(require("../../input")),_button=_interopRequireDefault(require("../../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,d=(0,_vue.inject)("$xeModal",null),c=(0,_vue.inject)("$xeDrawer",null),k=(0,_vue.inject)("$xeTable",null),r=(0,_vue.inject)("$xeForm",null),i=(0,_vue.inject)("xeFormItemInfo",null);var a=_xeUtils.default.uniqueId();let w=(0,_ui.useSize)(V).computeSize,I=(0,_vue.ref)(),$=(0,_vue.ref)(),j=(0,_vue.ref)(),q=(0,_vue.ref)(),L=(0,_vue.ref)(),U=(0,_vue.reactive)(createReactData()),P=createInternalData(),y={refElem:I},K=(0,_vue.computed)(()=>{var e=V.readonly;return null===e?!!r&&r.props.readonly:e}),T=(0,_vue.computed)(()=>{var e=V.disabled;return null===e?!!r&&r.props.disabled:e}),H=(0,_vue.computed)(()=>{var e=N.value.transfer;return _xeUtils.default.isBoolean(e)?e:!!(k||d||c||r)}),D=(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||{}),O=(0,_vue.computed)(()=>M.value.label||"label"),p=(0,_vue.computed)(()=>M.value.value||"value"),X=(0,_vue.computed)(()=>D.value.keyField||"id"),Y=(0,_vue.computed)(()=>D.value.parentField||"parentId"),A=(0,_vue.computed)(()=>D.value.childrenField||"children"),B=(0,_vue.computed)(()=>D.value.mapChildrenField||"mapChildren"),W=(0,_vue.computed)(()=>D.value.hasChildField||"hasChild"),Z=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.remoteConfig,V.remoteConfig)),G=(0,_vue.computed)(()=>{var e=V.modelValue;return _xeUtils.default.eqNull(e)?[]:_xeUtils.default.isArray(e)?e:[e]}),J=(0,_vue.computed)(()=>{let t=V.showFullLabel,{fullOptFlag:l,lazyOptFlag:r}=U,{fullNodeMaps:i,lazyNodeMaps:n}=P,u=O.value;return G.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(", ")}),Q=(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}),ee=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().cascader.filterConfig,V.filterConfig)),ae={},R={xID:a,props:V,context:e,reactData:U,internalData:P,getRefMaps:()=>y,getComputeMaps:()=>ae},x=(e,a,t)=>{l(e,(0,_ui.createEvent)(t,{$cascader:R},a))},te=e=>{l("update:modelValue",e)};a={dispatchEvent:x};let z=e=>e?(e=e[p.value],(0,_util.enNodeValue)(e)):"";let le=(e,t)=>{let l=P.selectCheckboxMaps;var a=B.value,r=A.value,i=g.value.checkStrictly,n=D.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++,C()},re=(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)}),le(a,t)}return(0,_vue.nextTick)()},ie=()=>{var e,a=V.modelValue,t=P.nodeMaps;let l={};V.multiple?a&&a.length&&(e=a,P.selectCheckboxMaps={},re(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},ne=()=>{let o=V.separator;var e=P.treeFullData;let s=p.value,d=O.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++},ue=()=>{let o=V.separator,{afterTreeList:e,nodeMaps:s}=P,d=O.value;var a=A.value,t=B.value,l=D.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})},oe=()=>{var a=U.searchValue,{treeFullData:t,lastFilterValue:e}=P;let l=O.value;var r=A.value,i=B.value,n=D.value.transform;let{beforeFilterMethod:u,filterMethod:o,afterFilterMethod:s}=ee.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:!1,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:!1,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,ue()},v=()=>{let{afterTreeList:e,treeExpandedMaps:o}=P;var a=B.value,t=D.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&&(oe(),a=v());e=a.slice(0);U.treeList=e};let se=_xeUtils.default.debounce(()=>{h(!0),C();var e=U.currentItems,t=P.afterTreeList,l=ee.value.autoExpandMode;if(!((e,t)=>{if(!t||!t.length)return!1;let l=e;for(let a of t){var r=l.find(e=>z(e)===a);if(!r)return!1;l=r.children||[]}return!0})(t,e))if("first"===l||"last"===l){e=((e,a)=>{var t=A.value,l=B.value,r=D.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})(t,l);let a={};e.forEach(e=>{a[e]=!0}),P.treeExpandedMaps=a,U.currentItems=e}else o();u()},350,{trailing:!0}),de=e=>{var a=D.value,t=X.value,l=Y.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,ne(),h(!0),ie(),o(),u(),(0,_vue.nextTick)()},u=()=>{var l=U.currentItems,r=P.afterTreeList,i=A.value,n=B.value,u=D.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},o=()=>{var e=U.currentNode,a=P.afterTreeList,t=G.value,l=A.value,r=B.value,i=D.value.transform;let n=[],u={},o=e?z(e):(0,_util.enNodeValue)(_xeUtils.default.last(t));o&&(e=_xeUtils.default.findTree(a,e=>o===z(e),{children:i?r:l}))&&(t=e.nodes,t.forEach(e=>{e=z(e);u[e]=!0,n.push(e)})),U.currentItems=n,P.treeExpandedMaps=u},ce=()=>{var e=N.value.zIndex;e?U.panelIndex=e:U.panelIndex<(0,_utils.getLastZIndex)()&&(U.panelIndex=(0,_utils.nextZIndex)())},s=()=>{let t=U.panelIndex,l=I.value,r=L.value,i=H.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=T.value,n=Z.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,ye()},10),ce(),s(),x("visible-change",{visible:!0},e||null))},f=e=>{U.visiblePanel=!1,P.hpTimeout=setTimeout(()=>{U.isAniVisible=!1},350),x("visible-change",{visible:!1},e||null)},ve=e=>(U.currentNode=e,u(),(0,_vue.nextTick)()),pe=e=>{let t={};var a=A.value,l=B.value,r=D.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++,C(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:i,checkNodes:n}))},he=()=>(P.indeterminateRowMaps={},P.selectCheckboxMaps={},U.updateCheckboxFlag++,U.selectRadioKey=null,C(),(0,_vue.nextTick)().then(()=>({checkNodeKeys:[],checkNodes:[]}))),m=(e,a,t)=>{a=_xeUtils.default.isArray(a)?a.map(_util.deNodeValue):(0,_util.deNodeValue)(a);P.isUpdateMode=!0,te(a),a!==V.modelValue&&(x("change",{value:a,node:t,option:t},e),r)&&i&&r.triggerItemEvent(e,i.itemConfig.field,a)},fe=(e,a)=>{m(e,a,null),x("clear",{value:a},e)},_e=(e,a)=>{fe(a,null),f(a)},ge=e=>{let t=e.$event,{multiple:a,checkedClosable:l}=V;a&&pe(!0).then(({checkNodeKeys:e,checkNodes:a})=>{m(t,e,a[0]),x("all-change",{value:e},t),l&&f(t)})},xe=e=>{let a=e.$event,{multiple:t,checkedClosable:l}=V;e=t?[]:null;he().then(()=>{l&&f(a)}),m(a,e,null),x("clear",{value:e},a)},me=e=>{e=e.$event;f(e)},be=e=>{var a=U.visiblePanel;T.value||a&&(a=L.value,(0,_dom.getEventTargetNode)(e,a).flag?s():f(e))},Ce=e=>{var a,t,l=U.visiblePanel;T.value||(a=I.value,t=L.value,U.isActivated=(0,_dom.getEventTargetNode)(e,a).flag||(0,_dom.getEventTargetNode)(e,t).flag,l&&!U.isActivated&&f(e))},Ee=e=>{var{visiblePanel:a,isActivated:t}=U;a&&f(e),t&&(U.isActivated=!1),(a||t)&&(e=$.value)&&e.blur()},ke=()=>{var e=U.visiblePanel;e&&s()},ye=()=>{V.filterable&&(0,_vue.nextTick)(()=>{var e=j.value;e&&e.focus()})},b=(e,a)=>{e.preventDefault();U.currentNode=a,x("current-change",{node:a,checked:!0},e)},Me=(e,a,t,l)=>{e.preventDefault(),e.stopPropagation();var r=U.currentItems,i=P.nodeMaps,n=_.value,u=A.value,o=D.value.transform,s=B.value,{checkMode:n,checkMethod:d}=n,c=z(a),o=a[o?s:u],s=o&&0<o.length,u=(i[c]||{}).level;(d?d({$cascader:R,node:a}):E(n,s,u))&&(o=c,U.selectRadioKey=o,m(e,o,a),r.includes(c)||(b(e,a),S(e,a,t,l)),f(e))},Ie=i=>{var e=g.value;let t=D.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)&&le(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()})},Le=(e,a)=>{let{treeExpandLazyLoadedMaps:l,treeExpandedMaps:r}=P,i=P.nodeMaps,n=A.value,u=W.value;let{lazy:o,toggleMethod:t}=D.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(Ie(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)},S=(e,a,t,l)=>{var r=U.currentItems,i=P.treeExpandLazyLoadedMaps,n=D.value.lazy,r=r.slice(0,l),l=z(a);e.stopPropagation(),r.push(l),U.currentItems=r,n&&i[l]||Le([a],!0),ve(a),x("node-expand",{node:a,expanded:!0},e)},C=()=>{let{selectCheckboxMaps:o,indeterminateRowMaps:s,afterTreeList:e}=P,i=A.value,n=B.value;let{checkStrictly:a,checkMethod:d}=g.value,u=D.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,a,l,r)=>{e.preventDefault(),e.stopPropagation();var i=U.currentItems;let{selectCheckboxMaps:n,nodeMaps:t}=P;var u=A.value,o=B.value,{checkStrictly:s,checkMode:d,checkMethod:c}=g.value,v=D.value.transform,p=z(a),h=a[v?o:u],f=h&&0<h.length,_=(t[p]||{}).level,c=c?!c({$cascader:R,node:a}):!E(d,f,_);if(!c){let t=!1;n[p]?delete n[p]:(t=!0,n[p]=a),s||_xeUtils.default.eachTree(h,e=>{var a=z(e);t?n[a]||(n[a]=e):n[a]&&delete n[a]},{children:v?o:u}),n[p]=a,U.updateCheckboxFlag++,C();d=_xeUtils.default.keys(n);m(e,d,a),i.includes(p)||(b(e,a),S(e,a,l,r))}},Ne=(e,a,t,l)=>{var{multiple:r,showCheckbox:i,showRadio:n}=V,u=D.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;b(e,a),"icon"!==v&&(f=!0,S(e,a,t,l)),r?"node"!==s.trigger&&(i||u&&u.length)||(h=!0,Te(e,a,t,l)):"node"!==o.trigger&&(n||u&&u.length)||(p=!0,Me(e,a,t,l)),x("node-click",{node:a,triggerCurrent:!0,triggerRadio:p,triggerCheckbox:h,triggerExpand:f},e)},we=e=>{T.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,se(new Event("filter"))},Pe=()=>{var{modelValue:e,remote:a}=V,t=U.searchValue,l=Z.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}))},De=e=>{e=e.$event;e.preventDefault(),U.triggerFocusPanel?U.triggerFocusPanel=!1:(U.visiblePanel?f:t)(e)},E=(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=D.value;let s=O.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),ue(),e))}}),(e,a,t)=>{if(e){if("first"===e)return!t;if("last"===e)return!a}return!0}),Oe=(t,e,l,r,i,n)=>{var a=V.showRadio,{checkMode:u,checkMethod:o,visibleMode:s,visibleMethod:d}=_.value,d=d?d({$cascader:R,node:t}):E(s,e,l);if(a&&d){let a=o?!o({$cascader:R,node:t}):!E(u,e,l);return(0,_vue.h)("div",{class:["vxe-tree--radio-option",{"is--checked":r,"is--disabled":a}],onClick:e=>{a||Me(e,t,i,n)}},[(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,n,u)=>{var a=V.showCheckbox,{checkMode:o,checkMethod:s,visibleMode:d,visibleMethod:c}=g.value,c=c?c({$cascader:R,node:t}):E(d,e,l);if(a&&c){let a=s?!s({$cascader:R,node:t}):!E(o,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,n,u)}},[(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,()=>{P.isUpdateMode||(ie(),o(),u()),P.isUpdateMode=!1}),(0,_vue.watch)(()=>V.options,()=>{ne()});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,()=>{de(V.options||[])}),de(V.options||[]),(0,_vue.onMounted)(()=>{_ui.globalEvents.on(R,"mousewheel",be),_ui.globalEvents.on(R,"mousedown",Ce),_ui.globalEvents.on(R,"blur",Ee),_ui.globalEvents.on(R,"resize",ke)}),(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,createReactData()),_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 _=w.value,g=T.value,x=J.value,m=H.value,b=K.value,C=Q.value,E=F.header,k=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:$,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:_e,onClick:Ve,onFocus:we,onBlur:Fe,onSuffixClick:De},y?{prefix:()=>y({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!m||!s},[(0,_vue.h)("div",{ref:L,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:j,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||E?(0,_vue.h)("div",{class:"vxe-cascader--panel-header"},E?E({}):[(0,_vue.h)("div",{class:"vxe-cascader--header-button"},[n&&t||u?(0,_vue.h)("div",{class:"vxe-cascader--selected-btns"},[n&&t?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.allChecked"),mode:"text",onClick:ge}):(0,_ui.renderEmptyElement)(R),u?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.treeSelect.clearChecked"),mode:"text",onClick:xe}):(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:q,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=D.value;var{lazy:_,transform:g,iconLoaded:x,iconOpen:m,iconClose:b}=f,C=A.value,E=B.value,k=O.value,y=W.value,g=a[g?E:C],E=g&&0<g.length,C=F.icon,g=F.title,s=s&&p[e],p=d[e]||{},d=a[k],k=p.level;let M=!1,I=(i||(M=e===u),!1),L=!1,T=(i&&(I=!(!o||!c[e]),L=!(!o||!v[e])),!1),N=!1,w=!1;_&&(N=!!h[e],T=a[y],w=!!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){Ne(e,a,l,r)}},[i?Ae(a,E,k,I,L,l,r):Oe(a,E,k,M,l,r),(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&&(!_||w?E: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&&S(e,a,l,r)}},C?(0,_ui.getSlotVNs)(C(u)):[(0,_vue.h)("i",{class:N?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))}})]))])]),k||i||o?(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?(0,_vue.h)("div",{class:"vxe-cascader--oper-btns"},[(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.close"),mode:"text",onClick:me})]):(0,_ui.renderEmptyElement)(R)])]):(0,_ui.renderEmptyElement)(R)])]:[])])]))},R},render(){return this.renderVN()}});
|