vxe-pc-ui 4.1.20 → 4.1.21
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/README.md +82 -1
- package/es/anchor/src/anchor-link.js +1 -1
- package/es/anchor/src/anchor.js +1 -1
- package/es/breadcrumb/src/breadcrumb.js +1 -1
- package/es/button/src/button-group.js +4 -1
- package/es/calendar/src/calendar.js +64 -32
- package/es/carousel/src/carousel-item.js +13 -3
- package/es/carousel/src/carousel.js +16 -8
- package/es/checkbox/src/checkbox.js +30 -14
- package/es/checkbox/src/group.js +17 -8
- package/es/collapse-pane/index.js +1 -1
- package/es/countdown/src/countdown.js +1 -1
- package/es/date-picker/src/date-picker.js +12 -12
- package/es/drawer/src/drawer.js +1 -1
- package/es/form/render/index.js +1 -2
- package/es/form/src/form-config-item.js +4 -3
- package/es/form/src/form-gather.js +5 -3
- package/es/form/src/form-item.js +15 -10
- package/es/form/src/form.js +11 -8
- package/es/form/src/render.js +2 -1
- package/es/form/src/util.js +2 -1
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +22 -10
- package/es/image/src/group.js +4 -1
- package/es/image/src/preview.js +1 -1
- package/es/input/src/input.js +129 -65
- package/es/layout-aside/src/layout-aside.js +1 -1
- package/es/list/src/list.js +7 -5
- package/es/list-design/src/list-design.js +1 -1
- package/es/list-design/src/list-view.js +1 -1
- package/es/loading/src/loading.js +1 -1
- package/es/menu/src/menu.js +1 -1
- package/es/number-input/src/number-input.js +6 -6
- package/es/pager/src/pager.js +85 -45
- package/es/password-input/src/password-input.js +2 -2
- package/es/print/src/page-break.js +11 -2
- package/es/print/src/print.js +6 -4
- package/es/radio/src/group.js +5 -2
- package/es/row/src/row.js +1 -1
- package/es/select/src/optgroup.js +11 -8
- package/es/select/src/option.js +9 -7
- package/es/select/src/select.js +32 -29
- package/es/select/src/util.js +2 -2
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tabs/src/tab-pane.js +13 -3
- package/es/tabs/src/tabs.js +57 -47
- package/es/textarea/src/textarea.js +4 -4
- package/es/tooltip/src/tooltip.js +1 -1
- package/es/tree/src/tree.js +6 -3
- package/es/tree-select/src/tree-select.js +16 -9
- package/es/ui/index.js +1 -7
- package/es/ui/src/log.js +1 -1
- package/es/upload/src/upload.js +5 -5
- package/lib/anchor/src/anchor-link.js +1 -1
- package/lib/anchor/src/anchor-link.min.js +1 -1
- package/lib/anchor/src/anchor.js +1 -1
- package/lib/anchor/src/anchor.min.js +1 -1
- package/lib/breadcrumb/src/breadcrumb.js +1 -1
- package/lib/breadcrumb/src/breadcrumb.min.js +1 -1
- package/lib/button/src/button-group.js +4 -1
- package/lib/button/src/button-group.min.js +1 -1
- package/lib/calendar/src/calendar.js +42 -24
- package/lib/calendar/src/calendar.min.js +1 -1
- package/lib/carousel/src/carousel-item.js +16 -3
- package/lib/carousel/src/carousel-item.min.js +1 -1
- package/lib/carousel/src/carousel.js +18 -8
- package/lib/carousel/src/carousel.min.js +1 -1
- package/lib/checkbox/src/checkbox.js +16 -12
- package/lib/checkbox/src/checkbox.min.js +1 -1
- package/lib/checkbox/src/group.js +10 -7
- package/lib/checkbox/src/group.min.js +1 -1
- package/lib/collapse-pane/index.js +1 -1
- package/lib/collapse-pane/index.min.js +1 -1
- package/lib/countdown/src/countdown.js +1 -1
- package/lib/countdown/src/countdown.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +12 -12
- package/lib/drawer/src/drawer.js +1 -1
- package/lib/drawer/src/drawer.min.js +1 -1
- package/lib/form/render/index.js +1 -4
- package/lib/form/render/index.min.js +1 -1
- package/lib/form/src/form-config-item.js +4 -5
- package/lib/form/src/form-config-item.min.js +1 -1
- package/lib/form/src/form-gather.js +11 -9
- package/lib/form/src/form-gather.min.js +1 -1
- package/lib/form/src/form-item.js +11 -12
- package/lib/form/src/form-item.min.js +1 -1
- package/lib/form/src/form.js +7 -7
- package/lib/form/src/form.min.js +1 -1
- package/lib/form/src/render.js +2 -1
- package/lib/form/src/util.js +2 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/icon-picker/src/icon-picker.js +20 -11
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/image/src/group.js +4 -1
- package/lib/image/src/group.min.js +1 -1
- package/lib/image/src/preview.js +1 -1
- package/lib/image/src/preview.min.js +1 -1
- package/lib/index.umd.js +522 -377
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +77 -50
- package/lib/input/src/input.min.js +1 -1
- package/lib/layout-aside/src/layout-aside.js +1 -1
- package/lib/layout-aside/src/layout-aside.min.js +1 -1
- package/lib/list/src/list.js +9 -5
- package/lib/list/src/list.min.js +1 -1
- package/lib/list-design/src/list-design.js +1 -1
- package/lib/list-design/src/list-design.min.js +1 -1
- package/lib/list-design/src/list-view.js +1 -1
- package/lib/list-design/src/list-view.min.js +1 -1
- package/lib/loading/src/loading.js +1 -1
- package/lib/loading/src/loading.min.js +1 -1
- package/lib/menu/src/menu.js +1 -1
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/number-input/src/number-input.js +6 -6
- package/lib/pager/src/pager.js +40 -39
- package/lib/pager/src/pager.min.js +1 -1
- package/lib/password-input/src/password-input.js +2 -2
- package/lib/print/src/page-break.js +14 -2
- package/lib/print/src/page-break.min.js +1 -1
- package/lib/print/src/print.js +8 -6
- package/lib/print/src/print.min.js +1 -1
- package/lib/radio/src/group.js +5 -2
- package/lib/radio/src/group.min.js +1 -1
- package/lib/row/src/row.js +1 -1
- package/lib/row/src/row.min.js +1 -1
- package/lib/select/src/optgroup.js +12 -9
- package/lib/select/src/optgroup.min.js +1 -1
- package/lib/select/src/option.js +9 -7
- package/lib/select/src/option.min.js +1 -1
- package/lib/select/src/select.js +33 -32
- package/lib/select/src/select.min.js +1 -1
- package/lib/select/src/util.js +2 -2
- package/lib/select/src/util.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tabs/src/tab-pane.js +16 -3
- package/lib/tabs/src/tab-pane.min.js +1 -1
- package/lib/tabs/src/tabs.js +62 -50
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/textarea/src/textarea.js +4 -4
- package/lib/tooltip/src/tooltip.js +1 -1
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/tree/src/tree.js +2 -2
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/tree-select/src/tree-select.js +11 -7
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +3 -10
- 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/upload/src/upload.js +5 -5
- package/lib/upload/src/upload.min.js +1 -1
- package/package.json +2 -2
- package/packages/anchor/src/anchor-link.ts +2 -2
- package/packages/anchor/src/anchor.ts +2 -2
- package/packages/breadcrumb/src/breadcrumb.ts +2 -2
- package/packages/button/src/button-group.ts +4 -1
- package/packages/calendar/src/calendar.ts +67 -35
- package/packages/carousel/src/carousel-item.ts +19 -4
- package/packages/carousel/src/carousel.ts +19 -11
- package/packages/checkbox/src/checkbox.ts +34 -15
- package/packages/checkbox/src/group.ts +22 -10
- package/packages/collapse-pane/index.ts +1 -1
- package/packages/countdown/src/countdown.ts +2 -2
- package/packages/date-picker/src/date-picker.ts +12 -12
- package/packages/drawer/src/drawer.ts +2 -2
- package/packages/form/render/index.ts +1 -3
- package/packages/form/src/form-config-item.ts +4 -3
- package/packages/form/src/form-gather.ts +5 -3
- package/packages/form/src/form-item.ts +15 -10
- package/packages/form/src/form.ts +12 -10
- package/packages/form/src/render.ts +2 -1
- package/packages/form/src/util.ts +2 -1
- package/packages/icon-picker/src/icon-picker.ts +26 -13
- package/packages/image/src/group.ts +4 -1
- package/packages/image/src/preview.ts +2 -2
- package/packages/input/src/input.ts +133 -71
- package/packages/layout-aside/src/layout-aside.ts +2 -2
- package/packages/list/src/list.ts +12 -11
- package/packages/list-design/src/list-design.ts +2 -2
- package/packages/list-design/src/list-view.ts +2 -2
- package/packages/loading/src/loading.ts +2 -2
- package/packages/menu/src/menu.ts +2 -2
- package/packages/number-input/src/number-input.ts +6 -6
- package/packages/pager/src/pager.ts +91 -50
- package/packages/password-input/src/password-input.ts +2 -2
- package/packages/print/src/page-break.ts +18 -4
- package/packages/print/src/print.ts +10 -5
- package/packages/radio/src/group.ts +6 -3
- package/packages/row/src/row.ts +2 -2
- package/packages/select/src/optgroup.ts +16 -13
- package/packages/select/src/option.ts +10 -8
- package/packages/select/src/select.ts +42 -36
- package/packages/select/src/util.ts +3 -3
- package/packages/tabs/src/tab-pane.ts +20 -5
- package/packages/tabs/src/tabs.ts +59 -49
- package/packages/textarea/src/textarea.ts +4 -4
- package/packages/tooltip/src/tooltip.ts +2 -2
- package/packages/tree/src/tree.ts +7 -4
- package/packages/tree-select/src/tree-select.ts +20 -12
- package/packages/ui/index.ts +0 -7
- package/packages/upload/src/upload.ts +6 -6
- package/types/components/calendar.d.ts +6 -0
- package/types/components/carousel.d.ts +5 -0
- package/types/components/form.d.ts +4 -2
- package/types/components/icon-picker.d.ts +4 -0
- package/types/components/input.d.ts +9 -1
- package/types/components/list.d.ts +1 -0
- package/types/components/optgroup.d.ts +10 -4
- package/types/components/tabs.d.ts +4 -0
- package/types/components/toolbar.d.ts +5 -0
- package/types/components/tree-select.d.ts +4 -0
- package/types/ui/index.d.ts +0 -22
- /package/es/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
- /package/es/icon/style/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/es/icon/style/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
- /package/es/icon/style/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/es/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/es/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
- /package/es/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/lib/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
- /package/lib/{collapse-pane → collapse}/src/collapse-pane.min.js +0 -0
- /package/lib/icon/style/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
- /package/lib/icon/style/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/lib/{iconfont.1725680652286.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/lib/{iconfont.1725680652286.woff → iconfont.1725941866604.woff} +0 -0
- /package/lib/{iconfont.1725680652286.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/packages/{collapse-pane → collapse}/src/collapse-pane.ts +0 -0
package/lib/row/src/row.js
CHANGED
|
@@ -100,8 +100,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
100
100
|
onClick: clickEvent
|
|
101
101
|
}, defaultSlot ? defaultSlot({}) : []);
|
|
102
102
|
};
|
|
103
|
-
$xeRow.renderVN = renderVN;
|
|
104
103
|
(0, _vue.provide)('$xeRow', $xeRow);
|
|
104
|
+
$xeRow.renderVN = renderVN;
|
|
105
105
|
return $xeRow;
|
|
106
106
|
},
|
|
107
107
|
render() {
|
package/lib/row/src/row.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeRow",props:{gutter:[Number,String,Array],wrap:{type:Boolean,default:()=>(0,_ui.getConfig)().row.wrap},vertical:Boolean,size:{type:String,default:()=>(0,_ui.getConfig)().row.size||(0,_ui.getConfig)().size}},emits:["click"],setup(a,e){const{slots:u,emit:i}=e;var t=_xeUtils.default.uniqueId();(0,_ui.useSize)(a);const o=(0,_vue.ref)();var r=(0,_vue.reactive)({});const s={refElem:o},n=(0,_vue.computed)(()=>{var{gutter:r,vertical:i}=a,u={};if(r){let[e,t]=_xeUtils.default.isArray(r)?r:[r];i&&(t=e,e=""),e&&(r=_xeUtils.default.isNumber(e)?(0,_dom.toCssUnit)(-e/2):`calc(${(0,_dom.toCssUnit)(e)} / 2 * -1)`,u.marginLeft=r,u.marginRight=r),t&&(i=_xeUtils.default.isNumber(t)?(0,_dom.toCssUnit)(-t/2):`calc(${(0,_dom.toCssUnit)(t)} / 2 * -1)`,u.marginTop=i,u.marginBottom=i)}return u}),l={},d={xID:t,props:a,context:e,reactData:r,getRefMaps:()=>s,getComputeMaps:()=>l},_=e=>{c("click",{},e)},c=(e,t,r)=>{i(e,(0,_ui.createEvent)(r,{$row:d},t))};t={dispatchEvent:c};Object.assign(d,t,{});return
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeRow",props:{gutter:[Number,String,Array],wrap:{type:Boolean,default:()=>(0,_ui.getConfig)().row.wrap},vertical:Boolean,size:{type:String,default:()=>(0,_ui.getConfig)().row.size||(0,_ui.getConfig)().size}},emits:["click"],setup(a,e){const{slots:u,emit:i}=e;var t=_xeUtils.default.uniqueId();(0,_ui.useSize)(a);const o=(0,_vue.ref)();var r=(0,_vue.reactive)({});const s={refElem:o},n=(0,_vue.computed)(()=>{var{gutter:r,vertical:i}=a,u={};if(r){let[e,t]=_xeUtils.default.isArray(r)?r:[r];i&&(t=e,e=""),e&&(r=_xeUtils.default.isNumber(e)?(0,_dom.toCssUnit)(-e/2):`calc(${(0,_dom.toCssUnit)(e)} / 2 * -1)`,u.marginLeft=r,u.marginRight=r),t&&(i=_xeUtils.default.isNumber(t)?(0,_dom.toCssUnit)(-t/2):`calc(${(0,_dom.toCssUnit)(t)} / 2 * -1)`,u.marginTop=i,u.marginBottom=i)}return u}),l={},d={xID:t,props:a,context:e,reactData:r,getRefMaps:()=>s,getComputeMaps:()=>l},_=e=>{c("click",{},e)},c=(e,t,r)=>{i(e,(0,_ui.createEvent)(r,{$row:d},t))};t={dispatchEvent:c};Object.assign(d,t,{});return(0,_vue.provide)("$xeRow",d),d.renderVN=()=>{var{vertical:e,wrap:t}=a,r=n.value,i=u.default;return(0,_vue.h)("div",{ref:o,class:["vxe-row",{"is--vertical":e,"is--wrap":t}],style:r,onClick:_},i?i({}):[])},d},render(){return this.renderVN()}});
|
|
@@ -20,28 +20,31 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
20
20
|
className: [String, Function],
|
|
21
21
|
disabled: Boolean
|
|
22
22
|
},
|
|
23
|
+
emits: [],
|
|
23
24
|
setup(props, {
|
|
24
25
|
slots
|
|
25
26
|
}) {
|
|
26
27
|
const elem = (0, _vue.ref)();
|
|
27
28
|
const $xeSelect = (0, _vue.inject)('$xeSelect', {});
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
|
|
29
|
+
const optionConfig = (0, _util.createOption)($xeSelect, props);
|
|
30
|
+
const $xeOptgroup = {
|
|
31
|
+
optionConfig
|
|
31
32
|
};
|
|
32
|
-
|
|
33
|
-
(0, _vue.provide)('$xeOptgroup',
|
|
34
|
-
(0, _util.watchOption)(props,
|
|
33
|
+
optionConfig.options = [];
|
|
34
|
+
(0, _vue.provide)('$xeOptgroup', $xeOptgroup);
|
|
35
|
+
(0, _util.watchOption)(props, optionConfig);
|
|
35
36
|
(0, _vue.onMounted)(() => {
|
|
36
|
-
|
|
37
|
+
const el = elem.value;
|
|
38
|
+
(0, _util.assembleOption)($xeSelect, el, optionConfig);
|
|
37
39
|
});
|
|
38
40
|
(0, _vue.onUnmounted)(() => {
|
|
39
|
-
(0, _util.destroyOption)($xeSelect,
|
|
41
|
+
(0, _util.destroyOption)($xeSelect, optionConfig);
|
|
40
42
|
});
|
|
41
43
|
return () => {
|
|
44
|
+
const defaultSlot = slots.default;
|
|
42
45
|
return (0, _vue.h)('div', {
|
|
43
46
|
ref: elem
|
|
44
|
-
},
|
|
47
|
+
}, defaultSlot ? defaultSlot({}) : []);
|
|
45
48
|
};
|
|
46
49
|
}
|
|
47
50
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_util=require("./util"),_default=exports.default=(0,_vue.defineComponent)({name:"VxeOptgroup",props:{label:{type:[String,Number,Boolean],default:""},visible:{type:Boolean,default:null},className:[String,Function],disabled:Boolean},setup(e,{slots:t}){const u=(0,_vue.ref)(),o=(0,_vue.inject)("$xeSelect",{}),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_util=require("./util"),_default=exports.default=(0,_vue.defineComponent)({name:"VxeOptgroup",props:{label:{type:[String,Number,Boolean],default:""},visible:{type:Boolean,default:null},className:[String,Function],disabled:Boolean},emits:[],setup(e,{slots:t}){const u=(0,_vue.ref)(),o=(0,_vue.inject)("$xeSelect",{}),i=(0,_util.createOption)(o,e);var n={optionConfig:i};return i.options=[],(0,_vue.provide)("$xeOptgroup",n),(0,_util.watchOption)(e,i),(0,_vue.onMounted)(()=>{var e=u.value;(0,_util.assembleOption)(o,e,i)}),(0,_vue.onUnmounted)(()=>{(0,_util.destroyOption)(o,i)}),()=>{var e=t.default;return(0,_vue.h)("div",{ref:u},e?e({}):[])}}});
|
package/lib/select/src/option.js
CHANGED
|
@@ -9,7 +9,7 @@ var _util = require("./util");
|
|
|
9
9
|
var _default = exports.default = (0, _vue.defineComponent)({
|
|
10
10
|
name: 'VxeOption',
|
|
11
11
|
props: {
|
|
12
|
-
value:
|
|
12
|
+
value: [String, Number, Boolean],
|
|
13
13
|
label: {
|
|
14
14
|
type: [String, Number, Boolean],
|
|
15
15
|
default: ''
|
|
@@ -21,20 +21,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
21
21
|
className: [String, Function],
|
|
22
22
|
disabled: Boolean
|
|
23
23
|
},
|
|
24
|
+
emits: [],
|
|
24
25
|
setup(props, {
|
|
25
26
|
slots
|
|
26
27
|
}) {
|
|
27
28
|
const elem = (0, _vue.ref)();
|
|
28
29
|
const $xeSelect = (0, _vue.inject)('$xeSelect', {});
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
(0, _util.watchOption)(props,
|
|
30
|
+
const $xeOptgroup = (0, _vue.inject)('$xeOptgroup', null);
|
|
31
|
+
const optionConfig = (0, _util.createOption)($xeSelect, props);
|
|
32
|
+
optionConfig.slots = slots;
|
|
33
|
+
(0, _util.watchOption)(props, optionConfig);
|
|
33
34
|
(0, _vue.onMounted)(() => {
|
|
34
|
-
|
|
35
|
+
const el = elem.value;
|
|
36
|
+
(0, _util.assembleOption)($xeSelect, el, optionConfig, $xeOptgroup);
|
|
35
37
|
});
|
|
36
38
|
(0, _vue.onUnmounted)(() => {
|
|
37
|
-
(0, _util.destroyOption)($xeSelect,
|
|
39
|
+
(0, _util.destroyOption)($xeSelect, optionConfig);
|
|
38
40
|
});
|
|
39
41
|
return () => {
|
|
40
42
|
return (0, _vue.h)('div', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_util=require("./util"),_default=exports.default=(0,_vue.defineComponent)({name:"VxeOption",props:{value:
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_util=require("./util"),_default=exports.default=(0,_vue.defineComponent)({name:"VxeOption",props:{value:[String,Number,Boolean],label:{type:[String,Number,Boolean],default:""},visible:{type:Boolean,default:null},className:[String,Function],disabled:Boolean},emits:[],setup(e,{slots:t}){const u=(0,_vue.ref)(),l=(0,_vue.inject)("$xeSelect",{}),o=(0,_vue.inject)("$xeOptgroup",null),n=(0,_util.createOption)(l,e);return n.slots=t,(0,_util.watchOption)(e,n),(0,_vue.onMounted)(()=>{var e=u.value;(0,_util.assembleOption)(l,e,n,o)}),(0,_vue.onUnmounted)(()=>{(0,_util.destroyOption)(l,n)}),()=>(0,_vue.h)("div",{ref:u})}});
|
package/lib/select/src/select.js
CHANGED
|
@@ -180,10 +180,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
180
180
|
return (0, _ui.getI18n)('vxe.base.pleaseSelect');
|
|
181
181
|
});
|
|
182
182
|
const computePropsOpts = (0, _vue.computed)(() => {
|
|
183
|
-
return props.optionProps
|
|
183
|
+
return Object.assign({}, props.optionProps);
|
|
184
184
|
});
|
|
185
185
|
const computeGroupPropsOpts = (0, _vue.computed)(() => {
|
|
186
|
-
return props.optionGroupProps
|
|
186
|
+
return Object.assign({}, props.optionGroupProps);
|
|
187
187
|
});
|
|
188
188
|
const computeLabelField = (0, _vue.computed)(() => {
|
|
189
189
|
const propsOpts = computePropsOpts.value;
|
|
@@ -221,6 +221,31 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
221
221
|
const computeMultiMaxCharNum = (0, _vue.computed)(() => {
|
|
222
222
|
return _xeUtils.default.toNumber(props.multiCharOverflow);
|
|
223
223
|
});
|
|
224
|
+
const computeSelectLabel = (0, _vue.computed)(() => {
|
|
225
|
+
const {
|
|
226
|
+
modelValue,
|
|
227
|
+
multiple,
|
|
228
|
+
remote
|
|
229
|
+
} = props;
|
|
230
|
+
const multiMaxCharNum = computeMultiMaxCharNum.value;
|
|
231
|
+
if (modelValue && multiple) {
|
|
232
|
+
const vals = _xeUtils.default.isArray(modelValue) ? modelValue : [modelValue];
|
|
233
|
+
if (remote) {
|
|
234
|
+
return vals.map(val => getRemoteSelectLabel(val)).join(', ');
|
|
235
|
+
}
|
|
236
|
+
return vals.map(val => {
|
|
237
|
+
const label = getSelectLabel(val);
|
|
238
|
+
if (multiMaxCharNum > 0 && label.length > multiMaxCharNum) {
|
|
239
|
+
return `${label.substring(0, multiMaxCharNum)}...`;
|
|
240
|
+
}
|
|
241
|
+
return label;
|
|
242
|
+
}).join(', ');
|
|
243
|
+
}
|
|
244
|
+
if (remote) {
|
|
245
|
+
return getRemoteSelectLabel(modelValue);
|
|
246
|
+
}
|
|
247
|
+
return getSelectLabel(modelValue);
|
|
248
|
+
});
|
|
224
249
|
const callSlot = (slotFunc, params) => {
|
|
225
250
|
if (slotFunc) {
|
|
226
251
|
if (_xeUtils.default.isString(slotFunc)) {
|
|
@@ -290,31 +315,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
290
315
|
const item = findOption(value);
|
|
291
316
|
return _xeUtils.default.toValueString(item ? item[labelField] : value);
|
|
292
317
|
};
|
|
293
|
-
const computeSelectLabel = (0, _vue.computed)(() => {
|
|
294
|
-
const {
|
|
295
|
-
modelValue,
|
|
296
|
-
multiple,
|
|
297
|
-
remote
|
|
298
|
-
} = props;
|
|
299
|
-
const multiMaxCharNum = computeMultiMaxCharNum.value;
|
|
300
|
-
if (modelValue && multiple) {
|
|
301
|
-
const vals = _xeUtils.default.isArray(modelValue) ? modelValue : [modelValue];
|
|
302
|
-
if (remote) {
|
|
303
|
-
return vals.map(val => getRemoteSelectLabel(val)).join(', ');
|
|
304
|
-
}
|
|
305
|
-
return vals.map(val => {
|
|
306
|
-
const label = getSelectLabel(val);
|
|
307
|
-
if (multiMaxCharNum > 0 && label.length > multiMaxCharNum) {
|
|
308
|
-
return `${label.substring(0, multiMaxCharNum)}...`;
|
|
309
|
-
}
|
|
310
|
-
return label;
|
|
311
|
-
}).join(', ');
|
|
312
|
-
}
|
|
313
|
-
if (remote) {
|
|
314
|
-
return getRemoteSelectLabel(modelValue);
|
|
315
|
-
}
|
|
316
|
-
return getSelectLabel(modelValue);
|
|
317
|
-
});
|
|
318
318
|
const getOptkey = () => {
|
|
319
319
|
const optionOpts = computeOptionOpts.value;
|
|
320
320
|
return optionOpts.keyField || props.optionId || '_X_OPTION_KEY';
|
|
@@ -551,8 +551,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
551
551
|
}, 350);
|
|
552
552
|
};
|
|
553
553
|
const changeEvent = (evnt, selectValue) => {
|
|
554
|
+
emit('update:modelValue', selectValue);
|
|
554
555
|
if (selectValue !== props.modelValue) {
|
|
555
|
-
emit('update:modelValue', selectValue);
|
|
556
556
|
selectMethods.dispatchEvent('change', {
|
|
557
557
|
value: selectValue
|
|
558
558
|
}, evnt);
|
|
@@ -817,7 +817,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
817
817
|
const focusSearchEvent = () => {
|
|
818
818
|
reactData.isActivated = true;
|
|
819
819
|
};
|
|
820
|
-
const
|
|
820
|
+
const handleSearchEvent = () => {
|
|
821
821
|
const {
|
|
822
822
|
remote,
|
|
823
823
|
remoteMethod
|
|
@@ -836,7 +836,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
836
836
|
} else {
|
|
837
837
|
refreshOption();
|
|
838
838
|
}
|
|
839
|
-
}
|
|
839
|
+
};
|
|
840
|
+
const triggerSearchEvent = _xeUtils.default.debounce(handleSearchEvent, 350, {
|
|
840
841
|
trailing: true
|
|
841
842
|
});
|
|
842
843
|
const togglePanelEvent = params => {
|
|
@@ -1073,7 +1074,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1073
1074
|
ref: 'hideOption'
|
|
1074
1075
|
}, defaultSlot ? defaultSlot({}) : []), (0, _vue.h)('span', {
|
|
1075
1076
|
class: 'vxe-select-label'
|
|
1076
|
-
}, selectLabel)]);
|
|
1077
|
+
}, [selectLabel])]);
|
|
1077
1078
|
}
|
|
1078
1079
|
return (0, _vue.h)('div', {
|
|
1079
1080
|
ref: refElem,
|
|
@@ -1148,7 +1149,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1148
1149
|
class: 'vxe-select--panel-footer'
|
|
1149
1150
|
}, footerSlot({})) : (0, _vue.createCommentVNode)()])] : [])])]);
|
|
1150
1151
|
};
|
|
1151
|
-
$xeSelect.renderVN = renderVN;
|
|
1152
1152
|
(0, _vue.watch)(() => reactData.staticOptions, value => {
|
|
1153
1153
|
if (value.some(item => item.options && item.options.length)) {
|
|
1154
1154
|
reactData.fullOptionList = [];
|
|
@@ -1194,6 +1194,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1194
1194
|
_ui.globalEvents.off($xeSelect, 'blur');
|
|
1195
1195
|
});
|
|
1196
1196
|
(0, _vue.provide)('$xeSelect', $xeSelect);
|
|
1197
|
+
$xeSelect.renderVN = renderVN;
|
|
1197
1198
|
return $xeSelect;
|
|
1198
1199
|
},
|
|
1199
1200
|
render() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_input=_interopRequireDefault(require("../../input/src/input")),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function isOptionVisible(e){return!1!==e.visible}function getOptUniqueId(){return _xeUtils.default.uniqueId("opt_")}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeSelect",props:{modelValue:[String,Number,Boolean,Array],clearable:Boolean,placeholder:String,readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},multiple:Boolean,multiCharOverflow:{type:[Number,String],default:()=>(0,_ui.getConfig)().select.multiCharOverflow},prefixIcon:String,placement:String,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],popupClassName:[String,Function],max:{type:[String,Number],default:null},size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},filterable:Boolean,filterMethod:Function,remote:Boolean,remoteMethod:Function,emptyText:String,transfer:{type:Boolean,default:null},optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean},emits:["update:modelValue","change","clear","blur","focus","click"],setup(m,e){const{slots:x,emit:i}=e,w=(0,_vue.inject)("$xeModal",null),F=(0,_vue.inject)("$xeDrawer",null),B=(0,_vue.inject)("$xeTable",null),l=(0,_vue.inject)("$xeForm",null),o=(0,_vue.inject)("xeFormItemInfo",null);var K=_xeUtils.default.uniqueId();const D=(0,_ui.useSize)(m)["computeSize"],E=(0,_vue.reactive)({initialized:!1,staticOptions:[],fullGroupList:[],fullOptionList:[],visibleGroupList:[],visibleOptionList:[],remoteValueList:[],panelIndex:0,panelStyle:{},panelPlacement:null,currentOption:null,currentValue:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1,searchValue:"",searchLoading:!1}),u={hpTimeout:void 0},h=(0,_vue.ref)(),b=(0,_vue.ref)(),O=(0,_vue.ref)(),L=(0,_vue.ref)(),V=(0,_vue.ref)(),q={refElem:h},T={xID:K,props:m,context:e,reactData:E,internalData:u,getRefMaps:()=>q};let n={};const j=(0,_vue.computed)(()=>{var e=m["readonly"];return null===e?!!l&&l.props.readonly:e}),y=(0,_vue.computed)(()=>{var e=m["disabled"];return null===e?!!l&&l.props.disabled:e}),A=(0,_vue.computed)(()=>{var e=m["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(B||w||F||l)return!0}return e}),z=(0,_vue.computed)(()=>{var e=m["placeholder"];return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),t=(0,_vue.computed)(()=>m.optionProps||{}),a=(0,_vue.computed)(()=>m.optionGroupProps||{}),r=(0,_vue.computed)(()=>{return t.value.label||"label"}),S=(0,_vue.computed)(()=>{return t.value.value||"value"}),c=(0,_vue.computed)(()=>{return a.value.label||"label"}),P=(0,_vue.computed)(()=>{return a.value.options||"options"}),R=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t,max:l}=m;return!(!t||!l)&&(_xeUtils.default.isArray(e)?e.length:_xeUtils.default.eqNull(e)?0:1)>=_xeUtils.default.toNumber(l)}),C=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,m.optionConfig)),I=(0,_vue.computed)(()=>E.fullGroupList.some(e=>e.options&&e.options.length)),$=(0,_vue.computed)(()=>_xeUtils.default.toNumber(m.multiCharOverflow)),N=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=x[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],s=t=>{var{fullOptionList:e,fullGroupList:l}=E,i=I.value;const o=S.value;if(i)for(let e=0;e<l.length;e++){var u=l[e];if(u.options)for(let e=0;e<u.options.length;e++){var n=u.options[e];if(t===n[o])return n}}return e.find(e=>t===e[o])},v=t=>{var e=E["remoteValueList"],l=r.value,e=e.find(e=>t===e.key),e=e?e.result:null;return _xeUtils.default.toValueString(e?e[l]:t)},p=e=>{var t=r.value,l=s(e);return _xeUtils.default.toValueString(l?l[t]:e)},M=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t,remote:l}=m;const i=$.value;return e&&t?(t=_xeUtils.default.isArray(e)?e:[e],(l?t.map(e=>v(e)):t.map(e=>{e=p(e);return 0<i&&e.length>i?e.substring(0,i)+"...":e})).join(", ")):(l?v:p)(e)}),H=()=>{return C.value.keyField||m.optionId||"_X_OPTION_KEY"},U=e=>{e=e[H()];return e?encodeURIComponent(e):""},d=()=>{const{filterable:e,filterMethod:t}=m;var{fullOptionList:l,fullGroupList:i,searchValue:o}=E,u=I.value;const n=c.value,a=r.value,s=(""+(o||"")).toLowerCase();return u?e&&t?E.visibleGroupList=i.filter(e=>isOptionVisible(e)&&t({group:e,option:null,searchValue:s})):E.visibleGroupList=e?i.filter(e=>isOptionVisible(e)&&(!s||-1<(""+e[n]).toLowerCase().indexOf(s))):i.filter(isOptionVisible):e&&t?E.visibleOptionList=l.filter(e=>isOptionVisible(e)&&t({group:null,option:e,searchValue:s})):E.visibleOptionList=e?l.filter(e=>isOptionVisible(e)&&(!s||-1<(""+e[a]).toLowerCase().indexOf(s))):l.filter(isOptionVisible),(0,_vue.nextTick)()},f=()=>{var{fullOptionList:e,fullGroupList:t}=E;const l=P.value,i=H(),o=e=>{U(e)||(e[i]=getOptUniqueId())};t.length?t.forEach(e=>{o(e),e[l]&&e[l].forEach(o)}):e.length&&e.forEach(o),d()},G=e=>{var t=S.value;e&&(E.currentOption=e,E.currentValue=e[t])},Y=(i,o)=>(0,_vue.nextTick)().then(()=>{var e,t,l;i&&(e=L.value,t=V.value.querySelector(`[optid='${U(i)}']`),e)&&t&&(l=e.offsetHeight,o?t.offsetTop+t.offsetHeight-e.scrollTop>l&&(e.scrollTop=t.offsetTop+t.offsetHeight-l):(t.offsetTop+5<e.scrollTop||t.offsetTop+5>e.scrollTop+e.clientHeight)&&(e.scrollTop=t.offsetTop-5))}),W=()=>(0,_vue.nextTick)().then(()=>{var i=m["placement"],o=E["panelIndex"],u=h.value,n=V.value,e=A.value;if(n&&u){var a=u.offsetHeight,s=u.offsetWidth,r=n.offsetHeight,n=n.offsetWidth,o={zIndex:o},{boundingTop:u,boundingLeft:v,visibleHeight:p,visibleWidth:c}=(0,_dom.getAbsolutePos)(u);let l="bottom";if(e){let e=v,t=u+a;"top"===i?(l="top",t=u-r):i||(t+r+5>p&&(l="top",t=u-r),t<5&&(l="bottom",t=u+a)),e+n+5>c&&(e-=e+n+5-c),e<5&&(e=5),Object.assign(o,{left:e+"px",top:t+"px",minWidth:s+"px"})}else"top"===i?(l="top",o.bottom=a+"px"):i||p<u+a+r&&5<u-a-r&&(l="top",o.bottom=a+"px");return E.panelStyle=o,E.panelPlacement=l,(0,_vue.nextTick)()}}),_=()=>{var{loading:e,filterable:t}=m,l=u["hpTimeout"],i=y.value;e||i||(l&&(clearTimeout(l),u.hpTimeout=void 0),E.initialized||(E.initialized=!0),E.isActivated=!0,E.isAniVisible=!0,t&&d(),setTimeout(()=>{var e=m["modelValue"],e=s(_xeUtils.default.isArray(e)?e[0]:e);E.visiblePanel=!0,e&&(G(e),Y(e)),m.filterable&&(0,_vue.nextTick)(()=>{var e=O.value;e&&e.focus()})},10),E.panelIndex<(0,_utils.getLastZIndex)()&&(E.panelIndex=(0,_utils.nextZIndex)()),W())},g=()=>{E.searchValue="",E.searchLoading=!1,E.visiblePanel=!1,u.hpTimeout=window.setTimeout(()=>{E.isAniVisible=!1},350)},k=(e,t)=>{t!==m.modelValue&&(i("update:modelValue",t),n.dispatchEvent("change",{value:t},e),l)&&o&&l.triggerItemEvent(e,o.itemConfig.field,t)},Z=(e,t)=>{E.remoteValueList=[],k(e,t),n.dispatchEvent("clear",{value:t},e)},X=(e,t)=>{Z(t,null),g()},J=(t,l,i)=>{var{modelValue:o,multiple:u}=m,n=E["remoteValueList"];if(u){let e=[];u=_xeUtils.default.eqNull(o)?[]:_xeUtils.default.isArray(o)?o:[o],o=_xeUtils.default.findIndexOf(u,e=>e===l),o=(e=-1===o?u.concat([l]):u.filter(e=>e!==l),n.find(e=>e.key===l));o?o.result=i:n.push({key:l,result:i}),k(t,e)}else E.remoteValueList=[{key:l,result:i}],k(t,l),g()},Q=e=>{var t=E["visiblePanel"];y.value||t&&(t=V.value,((0,_dom.getEventTargetNode)(e,t).flag?W:g)())},ee=e=>{var t,l,i=E["visiblePanel"];y.value||(t=h.value,l=V.value,E.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,i&&!E.isActivated&&g())},te=l=>{var e=m["clearable"],{visiblePanel:t,currentValue:i,currentOption:o}=E;if(!y.value){var u=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.TAB),n=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ENTER),a=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ESCAPE),s=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),r=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),v=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.DELETE),p=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.SPACEBAR);if(u&&(E.isActivated=!1),t)if(a||u)g();else if(n)l.preventDefault(),l.stopPropagation(),J(l,i,o);else if(s||r){l.preventDefault();let{firstOption:e,offsetOption:t}=((t,l)=>{var{visibleOptionList:i,visibleGroupList:o}=E,e=I.value,u=S.value,n=P.value;let a,s,r,v;if(e)for(let e=0;e<o.length;e++){var p=o[e],c=p[n],d=p.disabled;if(c)for(let e=0;e<c.length;e++){var f=c[e],_=isOptionVisible(f),g=d||f.disabled;if(a||g||(a=f),v&&_&&!g&&(r=f,!l))return{offsetOption:r};if(t===f[u]){if(v=f,l)return{offsetOption:s}}else _&&!g&&(s=f)}}else for(let e=0;e<i.length;e++){var h=i[e],b=h.disabled;if(a||b||(a=h),v&&!b&&(r=h,!l))return{offsetOption:r};if(t===h[u]){if(v=h,l)return{offsetOption:s}}else b||(s=h)}return{firstOption:a}})(i,s);t||(t=>{var{visibleOptionList:e,visibleGroupList:l}=E,i=I.value;const o=S.value;if(i)for(let e=0;e<l.length;e++){var u=l[e];if(u.options)for(let e=0;e<u.options.length;e++){var n=u.options[e];if(t===n[o])return n}}return e.find(e=>t===e[o])})(i)||(t=e),G(t),Y(t,r)}else p&&l.preventDefault();else(s||r||n||p)&&E.isActivated&&(l.preventDefault(),_());E.isActivated&&v&&e&&Z(l,null)}},le=()=>{g()},ie=e=>{y.value||E.visiblePanel||(E.triggerFocusPanel=!0,_(),setTimeout(()=>{E.triggerFocusPanel=!1},150)),n.dispatchEvent("focus",{},e)},oe=e=>{re(e),n.dispatchEvent("click",{},e)},ue=e=>{E.isActivated=!1,n.dispatchEvent("blur",{},e)},ne=e=>{E.searchValue=e},ae=()=>{E.isActivated=!0},se=_xeUtils.default.debounce(function(){var{remote:e,remoteMethod:t}=m,l=E["searchValue"];e&&t?(E.searchLoading=!0,Promise.resolve(t({searchValue:l})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{E.searchLoading=!1,d()})):d()},350,{trailing:!0}),re=e=>{e=e.$event;e.preventDefault(),E.triggerFocusPanel?E.triggerFocusPanel=!1:(E.visiblePanel?g:_)()},ve=(e,v)=>{const{optionKey:p,modelValue:c}=m,d=E["currentValue"];var t=C.value;const f=r.value,_=S.value,g=I.value,h=t["useKey"],b=x.option;return e.map((t,e)=>{var{slots:l,className:i}=t;const o=t[_];var u=_xeUtils.default.isArray(c)?-1<c.indexOf(o):c===o,n=!g||isOptionVisible(t);r=u,s=v;const a=!!t.disabled||!(!s||!s.disabled)||!(!R.value||r);var s=U(t),r=l?l.default:null,l={option:t,group:null,$select:T};return n?(0,_vue.h)("div",{key:h||p?s:e,class:["vxe-select-option",i?_xeUtils.default.isFunction(i)?i(l):i:"",{"is--disabled":a,"is--selected":u,"is--hover":d===o}],optid:s,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick:e=>{a||J(e,o,t)},onMouseenter:()=>{a||G(t)}},b?N(b,l):r?N(r,l):(0,_utils.getFuncText)(t[f])):(0,_vue.createCommentVNode)()})},pe=()=>{const a=m["optionKey"];var e=E["visibleGroupList"],t=C.value;const s=c.value,r=P.value,v=t["useKey"],p=x.option;return e.map((e,t)=>{var{slots:l,className:i}=e,o=U(e),u=e.disabled,l=l?l.default:null,n={option:e,group:e,$select:T};return(0,_vue.h)("div",{key:v||a?o:t,class:["vxe-optgroup",i?_xeUtils.default.isFunction(i)?i(n):i:"",{"is--disabled":u}],optid:o},[(0,_vue.h)("div",{class:"vxe-optgroup--title"},p?N(p,n):l?N(l,n):(0,_utils.getFuncText)(e[s])),(0,_vue.h)("div",{class:"vxe-optgroup--wrapper"},ve(e[r]||[],e))])})};n={dispatchEvent(e,t,l){i(e,(0,_ui.createEvent)(l,{$select:T},t))},isPanelVisible(){return E.visiblePanel},togglePanel(){return(E.visiblePanel?g:_)(),(0,_vue.nextTick)()},hidePanel(){return E.visiblePanel&&g(),(0,_vue.nextTick)()},showPanel(){return E.visiblePanel||_(),(0,_vue.nextTick)()},refreshOption:d,focus(){var e=b.value;return E.isActivated=!0,e.blur(),(0,_vue.nextTick)()},blur(){return b.value.blur(),(E.isActivated=!1,_vue.nextTick)()}},Object.assign(T,n);return T.renderVN=()=>{var{className:e,popupClassName:t,loading:l,filterable:i}=m,{initialized:o,isActivated:u,visiblePanel:n}=E,a=D.value,s=y.value,r=M.value,v=A.value,p=j.value,c=z.value,d=x.default,f=x.header,_=x.footer;const g=x.prefix;return p?(0,_vue.h)("div",{ref:h,class:["vxe-select--readonly",e]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},d?d({}):[]),(0,_vue.h)("span",{class:"vxe-select-label"},r)]):(0,_vue.h)("div",{ref:h,class:["vxe-select",e?_xeUtils.default.isFunction(e)?e({$select:T}):e:"",{["size--"+a]:a,"is--visible":n,"is--disabled":s,"is--filter":i,"is--loading":l,"is--active":u}]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},d?d({}):[]),(0,_vue.h)(_input.default,{ref:b,clearable:m.clearable,placeholder:c,readonly:!0,disabled:s,type:"text",prefixIcon:m.prefixIcon,suffixIcon:l?(0,_ui.getIcon)().SELECT_LOADED:n?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,modelValue:r,onClear:X,onClick:oe,onFocus:ie,onBlur:ue,onSuffixClick:re},g?{prefix:()=>g({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!v||!o},[(0,_vue.h)("div",{ref:V,class:["vxe-table--ignore-clear vxe-select--panel",t?_xeUtils.default.isFunction(t)?t({$select:T}):t:"",{["size--"+a]:a,"is--transfer":v,"ani--leave":!l&&E.isAniVisible,"ani--enter":!l&&n}],placement:E.panelPlacement,style:E.panelStyle},o?[i?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:O,class:"vxe-select-search--input",modelValue:E.searchValue,clearable:!0,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":ne,onFocus:ae,onChange:se,onSearch:se})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-select--panel-wrapper"},[f?(0,_vue.h)("div",{class:"vxe-select--panel-header"},f({})):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:L,class:"vxe-select-option--wrapper"},(()=>{var{visibleGroupList:e,visibleOptionList:t,searchLoading:l}=E,i=I.value;if(l)return[(0,_vue.h)("div",{class:"vxe-select--search-loading"},[(0,_vue.h)("i",{class:["vxe-select--search-icon",(0,_ui.getIcon)().SELECT_LOADED]}),(0,_vue.h)("span",{class:"vxe-select--search-text"},(0,_ui.getI18n)("vxe.select.loadingText"))])];if(i){if(e.length)return pe()}else if(t.length)return ve(t);return[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},m.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())]),_?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},_({})):(0,_vue.createCommentVNode)()])]:[])])])},(0,_vue.watch)(()=>E.staticOptions,e=>{e.some(e=>e.options&&e.options.length)?(E.fullOptionList=[],E.fullGroupList=e):(E.fullGroupList=[],E.fullOptionList=e||[]),f()}),(0,_vue.watch)(()=>m.options,e=>{E.fullGroupList=[],E.fullOptionList=e||[],f()}),(0,_vue.watch)(()=>m.optionGroups,e=>{E.fullOptionList=[],E.fullGroupList=e||[],f()}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=m;t?E.fullGroupList=t:e&&(E.fullOptionList=e),f()}),_ui.globalEvents.on(T,"mousewheel",Q),_ui.globalEvents.on(T,"mousedown",ee),_ui.globalEvents.on(T,"keydown",te),_ui.globalEvents.on(T,"blur",le)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(T,"mousewheel"),_ui.globalEvents.off(T,"mousedown"),_ui.globalEvents.off(T,"keydown"),_ui.globalEvents.off(T,"blur")}),(0,_vue.provide)("$xeSelect",T),T},render(){return this.renderVN()}});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_input=_interopRequireDefault(require("../../input/src/input")),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function isOptionVisible(e){return!1!==e.visible}function getOptUniqueId(){return _xeUtils.default.uniqueId("opt_")}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeSelect",props:{modelValue:[String,Number,Boolean,Array],clearable:Boolean,placeholder:String,readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},multiple:Boolean,multiCharOverflow:{type:[Number,String],default:()=>(0,_ui.getConfig)().select.multiCharOverflow},prefixIcon:String,placement:String,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],popupClassName:[String,Function],max:{type:[String,Number],default:null},size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},filterable:Boolean,filterMethod:Function,remote:Boolean,remoteMethod:Function,emptyText:String,transfer:{type:Boolean,default:null},optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean},emits:["update:modelValue","change","clear","blur","focus","click"],setup(m,e){const{slots:x,emit:i}=e,w=(0,_vue.inject)("$xeModal",null),F=(0,_vue.inject)("$xeDrawer",null),B=(0,_vue.inject)("$xeTable",null),l=(0,_vue.inject)("$xeForm",null),o=(0,_vue.inject)("xeFormItemInfo",null);var K=_xeUtils.default.uniqueId();const D=(0,_ui.useSize)(m)["computeSize"],E=(0,_vue.reactive)({initialized:!1,staticOptions:[],fullGroupList:[],fullOptionList:[],visibleGroupList:[],visibleOptionList:[],remoteValueList:[],panelIndex:0,panelStyle:{},panelPlacement:null,currentOption:null,currentValue:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1,searchValue:"",searchLoading:!1}),u={hpTimeout:void 0},h=(0,_vue.ref)(),b=(0,_vue.ref)(),O=(0,_vue.ref)(),L=(0,_vue.ref)(),V=(0,_vue.ref)(),q={refElem:h},T={xID:K,props:m,context:e,reactData:E,internalData:u,getRefMaps:()=>q};let n={};const j=(0,_vue.computed)(()=>{var e=m["readonly"];return null===e?!!l&&l.props.readonly:e}),y=(0,_vue.computed)(()=>{var e=m["disabled"];return null===e?!!l&&l.props.disabled:e}),A=(0,_vue.computed)(()=>{var e=m["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(B||w||F||l)return!0}return e}),z=(0,_vue.computed)(()=>{var e=m["placeholder"];return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),t=(0,_vue.computed)(()=>Object.assign({},m.optionProps)),s=(0,_vue.computed)(()=>Object.assign({},m.optionGroupProps)),r=(0,_vue.computed)(()=>{return t.value.label||"label"}),S=(0,_vue.computed)(()=>{return t.value.value||"value"}),c=(0,_vue.computed)(()=>{return s.value.label||"label"}),P=(0,_vue.computed)(()=>{return s.value.options||"options"}),R=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t,max:l}=m;return!(!t||!l)&&(_xeUtils.default.isArray(e)?e.length:_xeUtils.default.eqNull(e)?0:1)>=_xeUtils.default.toNumber(l)}),C=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,m.optionConfig)),I=(0,_vue.computed)(()=>E.fullGroupList.some(e=>e.options&&e.options.length)),$=(0,_vue.computed)(()=>_xeUtils.default.toNumber(m.multiCharOverflow)),M=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t,remote:l}=m;const i=$.value;return e&&t?(t=_xeUtils.default.isArray(e)?e:[e],(l?t.map(e=>v(e)):t.map(e=>{e=p(e);return 0<i&&e.length>i?e.substring(0,i)+"...":e})).join(", ")):(l?v:p)(e)}),N=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=x[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],a=t=>{var{fullOptionList:e,fullGroupList:l}=E,i=I.value;const o=S.value;if(i)for(let e=0;e<l.length;e++){var u=l[e];if(u.options)for(let e=0;e<u.options.length;e++){var n=u.options[e];if(t===n[o])return n}}return e.find(e=>t===e[o])},v=t=>{var e=E["remoteValueList"],l=r.value,e=e.find(e=>t===e.key),e=e?e.result:null;return _xeUtils.default.toValueString(e?e[l]:t)},p=e=>{var t=r.value,l=a(e);return _xeUtils.default.toValueString(l?l[t]:e)},H=()=>{return C.value.keyField||m.optionId||"_X_OPTION_KEY"},U=e=>{e=e[H()];return e?encodeURIComponent(e):""},d=()=>{const{filterable:e,filterMethod:t}=m;var{fullOptionList:l,fullGroupList:i,searchValue:o}=E,u=I.value;const n=c.value,s=r.value,a=(""+(o||"")).toLowerCase();return u?e&&t?E.visibleGroupList=i.filter(e=>isOptionVisible(e)&&t({group:e,option:null,searchValue:a})):E.visibleGroupList=e?i.filter(e=>isOptionVisible(e)&&(!a||-1<(""+e[n]).toLowerCase().indexOf(a))):i.filter(isOptionVisible):e&&t?E.visibleOptionList=l.filter(e=>isOptionVisible(e)&&t({group:null,option:e,searchValue:a})):E.visibleOptionList=e?l.filter(e=>isOptionVisible(e)&&(!a||-1<(""+e[s]).toLowerCase().indexOf(a))):l.filter(isOptionVisible),(0,_vue.nextTick)()},f=()=>{var{fullOptionList:e,fullGroupList:t}=E;const l=P.value,i=H(),o=e=>{U(e)||(e[i]=getOptUniqueId())};t.length?t.forEach(e=>{o(e),e[l]&&e[l].forEach(o)}):e.length&&e.forEach(o),d()},G=e=>{var t=S.value;e&&(E.currentOption=e,E.currentValue=e[t])},Y=(i,o)=>(0,_vue.nextTick)().then(()=>{var e,t,l;i&&(e=L.value,t=V.value.querySelector(`[optid='${U(i)}']`),e)&&t&&(l=e.offsetHeight,o?t.offsetTop+t.offsetHeight-e.scrollTop>l&&(e.scrollTop=t.offsetTop+t.offsetHeight-l):(t.offsetTop+5<e.scrollTop||t.offsetTop+5>e.scrollTop+e.clientHeight)&&(e.scrollTop=t.offsetTop-5))}),W=()=>(0,_vue.nextTick)().then(()=>{var i=m["placement"],o=E["panelIndex"],u=h.value,n=V.value,e=A.value;if(n&&u){var s=u.offsetHeight,a=u.offsetWidth,r=n.offsetHeight,n=n.offsetWidth,o={zIndex:o},{boundingTop:u,boundingLeft:v,visibleHeight:p,visibleWidth:c}=(0,_dom.getAbsolutePos)(u);let l="bottom";if(e){let e=v,t=u+s;"top"===i?(l="top",t=u-r):i||(t+r+5>p&&(l="top",t=u-r),t<5&&(l="bottom",t=u+s)),e+n+5>c&&(e-=e+n+5-c),e<5&&(e=5),Object.assign(o,{left:e+"px",top:t+"px",minWidth:a+"px"})}else"top"===i?(l="top",o.bottom=s+"px"):i||p<u+s+r&&5<u-s-r&&(l="top",o.bottom=s+"px");return E.panelStyle=o,E.panelPlacement=l,(0,_vue.nextTick)()}}),_=()=>{var{loading:e,filterable:t}=m,l=u["hpTimeout"],i=y.value;e||i||(l&&(clearTimeout(l),u.hpTimeout=void 0),E.initialized||(E.initialized=!0),E.isActivated=!0,E.isAniVisible=!0,t&&d(),setTimeout(()=>{var e=m["modelValue"],e=a(_xeUtils.default.isArray(e)?e[0]:e);E.visiblePanel=!0,e&&(G(e),Y(e)),m.filterable&&(0,_vue.nextTick)(()=>{var e=O.value;e&&e.focus()})},10),E.panelIndex<(0,_utils.getLastZIndex)()&&(E.panelIndex=(0,_utils.nextZIndex)()),W())},g=()=>{E.searchValue="",E.searchLoading=!1,E.visiblePanel=!1,u.hpTimeout=window.setTimeout(()=>{E.isAniVisible=!1},350)},k=(e,t)=>{i("update:modelValue",t),t!==m.modelValue&&(n.dispatchEvent("change",{value:t},e),l)&&o&&l.triggerItemEvent(e,o.itemConfig.field,t)},Z=(e,t)=>{E.remoteValueList=[],k(e,t),n.dispatchEvent("clear",{value:t},e)},X=(e,t)=>{Z(t,null),g()},J=(t,l,i)=>{var{modelValue:o,multiple:u}=m,n=E["remoteValueList"];if(u){let e=[];u=_xeUtils.default.eqNull(o)?[]:_xeUtils.default.isArray(o)?o:[o],o=_xeUtils.default.findIndexOf(u,e=>e===l),o=(e=-1===o?u.concat([l]):u.filter(e=>e!==l),n.find(e=>e.key===l));o?o.result=i:n.push({key:l,result:i}),k(t,e)}else E.remoteValueList=[{key:l,result:i}],k(t,l),g()},Q=e=>{var t=E["visiblePanel"];y.value||t&&(t=V.value,((0,_dom.getEventTargetNode)(e,t).flag?W:g)())},ee=e=>{var t,l,i=E["visiblePanel"];y.value||(t=h.value,l=V.value,E.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,i&&!E.isActivated&&g())},te=l=>{var e=m["clearable"],{visiblePanel:t,currentValue:i,currentOption:o}=E;if(!y.value){var u=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.TAB),n=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ENTER),s=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ESCAPE),a=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),r=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),v=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.DELETE),p=_ui.globalEvents.hasKey(l,_ui.GLOBAL_EVENT_KEYS.SPACEBAR);if(u&&(E.isActivated=!1),t)if(s||u)g();else if(n)l.preventDefault(),l.stopPropagation(),J(l,i,o);else if(a||r){l.preventDefault();let{firstOption:e,offsetOption:t}=((t,l)=>{var{visibleOptionList:i,visibleGroupList:o}=E,e=I.value,u=S.value,n=P.value;let s,a,r,v;if(e)for(let e=0;e<o.length;e++){var p=o[e],c=p[n],d=p.disabled;if(c)for(let e=0;e<c.length;e++){var f=c[e],_=isOptionVisible(f),g=d||f.disabled;if(s||g||(s=f),v&&_&&!g&&(r=f,!l))return{offsetOption:r};if(t===f[u]){if(v=f,l)return{offsetOption:a}}else _&&!g&&(a=f)}}else for(let e=0;e<i.length;e++){var h=i[e],b=h.disabled;if(s||b||(s=h),v&&!b&&(r=h,!l))return{offsetOption:r};if(t===h[u]){if(v=h,l)return{offsetOption:a}}else b||(a=h)}return{firstOption:s}})(i,a);t||(t=>{var{visibleOptionList:e,visibleGroupList:l}=E,i=I.value;const o=S.value;if(i)for(let e=0;e<l.length;e++){var u=l[e];if(u.options)for(let e=0;e<u.options.length;e++){var n=u.options[e];if(t===n[o])return n}}return e.find(e=>t===e[o])})(i)||(t=e),G(t),Y(t,r)}else p&&l.preventDefault();else(a||r||n||p)&&E.isActivated&&(l.preventDefault(),_());E.isActivated&&v&&e&&Z(l,null)}},le=()=>{g()},ie=e=>{y.value||E.visiblePanel||(E.triggerFocusPanel=!0,_(),setTimeout(()=>{E.triggerFocusPanel=!1},150)),n.dispatchEvent("focus",{},e)},oe=e=>{re(e),n.dispatchEvent("click",{},e)},ue=e=>{E.isActivated=!1,n.dispatchEvent("blur",{},e)},ne=e=>{E.searchValue=e},se=()=>{E.isActivated=!0};const ae=_xeUtils.default.debounce(()=>{var{remote:e,remoteMethod:t}=m,l=E["searchValue"];e&&t?(E.searchLoading=!0,Promise.resolve(t({searchValue:l})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{E.searchLoading=!1,d()})):d()},350,{trailing:!0}),re=e=>{e=e.$event;e.preventDefault(),E.triggerFocusPanel?E.triggerFocusPanel=!1:(E.visiblePanel?g:_)()},ve=(e,v)=>{const{optionKey:p,modelValue:c}=m,d=E["currentValue"];var t=C.value;const f=r.value,_=S.value,g=I.value,h=t["useKey"],b=x.option;return e.map((t,e)=>{var{slots:l,className:i}=t;const o=t[_];var u=_xeUtils.default.isArray(c)?-1<c.indexOf(o):c===o,n=!g||isOptionVisible(t);r=u,a=v;const s=!!t.disabled||!(!a||!a.disabled)||!(!R.value||r);var a=U(t),r=l?l.default:null,l={option:t,group:null,$select:T};return n?(0,_vue.h)("div",{key:h||p?a:e,class:["vxe-select-option",i?_xeUtils.default.isFunction(i)?i(l):i:"",{"is--disabled":s,"is--selected":u,"is--hover":d===o}],optid:a,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick:e=>{s||J(e,o,t)},onMouseenter:()=>{s||G(t)}},b?N(b,l):r?N(r,l):(0,_utils.getFuncText)(t[f])):(0,_vue.createCommentVNode)()})},pe=()=>{const s=m["optionKey"];var e=E["visibleGroupList"],t=C.value;const a=c.value,r=P.value,v=t["useKey"],p=x.option;return e.map((e,t)=>{var{slots:l,className:i}=e,o=U(e),u=e.disabled,l=l?l.default:null,n={option:e,group:e,$select:T};return(0,_vue.h)("div",{key:v||s?o:t,class:["vxe-optgroup",i?_xeUtils.default.isFunction(i)?i(n):i:"",{"is--disabled":u}],optid:o},[(0,_vue.h)("div",{class:"vxe-optgroup--title"},p?N(p,n):l?N(l,n):(0,_utils.getFuncText)(e[a])),(0,_vue.h)("div",{class:"vxe-optgroup--wrapper"},ve(e[r]||[],e))])})};n={dispatchEvent(e,t,l){i(e,(0,_ui.createEvent)(l,{$select:T},t))},isPanelVisible(){return E.visiblePanel},togglePanel(){return(E.visiblePanel?g:_)(),(0,_vue.nextTick)()},hidePanel(){return E.visiblePanel&&g(),(0,_vue.nextTick)()},showPanel(){return E.visiblePanel||_(),(0,_vue.nextTick)()},refreshOption:d,focus(){var e=b.value;return E.isActivated=!0,e.blur(),(0,_vue.nextTick)()},blur(){return b.value.blur(),(E.isActivated=!1,_vue.nextTick)()}},Object.assign(T,n);return(0,_vue.watch)(()=>E.staticOptions,e=>{e.some(e=>e.options&&e.options.length)?(E.fullOptionList=[],E.fullGroupList=e):(E.fullGroupList=[],E.fullOptionList=e||[]),f()}),(0,_vue.watch)(()=>m.options,e=>{E.fullGroupList=[],E.fullOptionList=e||[],f()}),(0,_vue.watch)(()=>m.optionGroups,e=>{E.fullOptionList=[],E.fullGroupList=e||[],f()}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=m;t?E.fullGroupList=t:e&&(E.fullOptionList=e),f()}),_ui.globalEvents.on(T,"mousewheel",Q),_ui.globalEvents.on(T,"mousedown",ee),_ui.globalEvents.on(T,"keydown",te),_ui.globalEvents.on(T,"blur",le)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(T,"mousewheel"),_ui.globalEvents.off(T,"mousedown"),_ui.globalEvents.off(T,"keydown"),_ui.globalEvents.off(T,"blur")}),(0,_vue.provide)("$xeSelect",T),T.renderVN=()=>{var{className:e,popupClassName:t,loading:l,filterable:i}=m,{initialized:o,isActivated:u,visiblePanel:n}=E,s=D.value,a=y.value,r=M.value,v=A.value,p=j.value,c=z.value,d=x.default,f=x.header,_=x.footer;const g=x.prefix;return p?(0,_vue.h)("div",{ref:h,class:["vxe-select--readonly",e]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},d?d({}):[]),(0,_vue.h)("span",{class:"vxe-select-label"},[r])]):(0,_vue.h)("div",{ref:h,class:["vxe-select",e?_xeUtils.default.isFunction(e)?e({$select:T}):e:"",{["size--"+s]:s,"is--visible":n,"is--disabled":a,"is--filter":i,"is--loading":l,"is--active":u}]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},d?d({}):[]),(0,_vue.h)(_input.default,{ref:b,clearable:m.clearable,placeholder:c,readonly:!0,disabled:a,type:"text",prefixIcon:m.prefixIcon,suffixIcon:l?(0,_ui.getIcon)().SELECT_LOADED:n?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,modelValue:r,onClear:X,onClick:oe,onFocus:ie,onBlur:ue,onSuffixClick:re},g?{prefix:()=>g({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!v||!o},[(0,_vue.h)("div",{ref:V,class:["vxe-table--ignore-clear vxe-select--panel",t?_xeUtils.default.isFunction(t)?t({$select:T}):t:"",{["size--"+s]:s,"is--transfer":v,"ani--leave":!l&&E.isAniVisible,"ani--enter":!l&&n}],placement:E.panelPlacement,style:E.panelStyle},o?[i?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:O,class:"vxe-select-search--input",modelValue:E.searchValue,clearable:!0,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":ne,onFocus:se,onChange:ae,onSearch:ae})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-select--panel-wrapper"},[f?(0,_vue.h)("div",{class:"vxe-select--panel-header"},f({})):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:L,class:"vxe-select-option--wrapper"},(()=>{var{visibleGroupList:e,visibleOptionList:t,searchLoading:l}=E,i=I.value;if(l)return[(0,_vue.h)("div",{class:"vxe-select--search-loading"},[(0,_vue.h)("i",{class:["vxe-select--search-icon",(0,_ui.getIcon)().SELECT_LOADED]}),(0,_vue.h)("span",{class:"vxe-select--search-text"},(0,_ui.getI18n)("vxe.select.loadingText"))])];if(i){if(e.length)return pe()}else if(t.length)return ve(t);return[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},m.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())]),_?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},_({})):(0,_vue.createCommentVNode)()])]:[])])])},T},render(){return this.renderVN()}});
|
package/lib/select/src/util.js
CHANGED
|
@@ -25,7 +25,7 @@ function watchOption(props, option) {
|
|
|
25
25
|
});
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
|
-
function assembleOption($xeSelect, el, option,
|
|
28
|
+
function assembleOption($xeSelect, el, option, $xeOptgroup) {
|
|
29
29
|
const {
|
|
30
30
|
reactData
|
|
31
31
|
} = $xeSelect;
|
|
@@ -33,7 +33,7 @@ function assembleOption($xeSelect, el, option, optGroup) {
|
|
|
33
33
|
staticOptions
|
|
34
34
|
} = reactData;
|
|
35
35
|
const parentElem = el.parentNode;
|
|
36
|
-
const parentOption =
|
|
36
|
+
const parentOption = $xeOptgroup ? $xeOptgroup.optionConfig : null;
|
|
37
37
|
const parentCols = parentOption ? parentOption.options : staticOptions;
|
|
38
38
|
if (parentElem && parentCols) {
|
|
39
39
|
parentCols.splice(_xeUtils.default.arrayIndexOf(parentElem.children, el), 0, option);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleOption=assembleOption,exports.createOption=createOption,exports.destroyOption=destroyOption,exports.isOption=isOption,exports.watchOption=watchOption;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_optionInfo=require("./option-info");function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function isOption(t){return t instanceof _optionInfo.OptionInfo}function createOption(t,e){return isOption(e)?e:new _optionInfo.OptionInfo(t,e)}function watchOption(t,i){Object.keys(t).forEach(e=>{(0,_vue.watch)(()=>t[e],t=>{i.update(e,t)})})}function assembleOption(t,e,i,o){var t=t["reactData"],n=t["staticOptions"],s=e.parentNode,o=o?o.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleOption=assembleOption,exports.createOption=createOption,exports.destroyOption=destroyOption,exports.isOption=isOption,exports.watchOption=watchOption;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_optionInfo=require("./option-info");function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function isOption(t){return t instanceof _optionInfo.OptionInfo}function createOption(t,e){return isOption(e)?e:new _optionInfo.OptionInfo(t,e)}function watchOption(t,i){Object.keys(t).forEach(e=>{(0,_vue.watch)(()=>t[e],t=>{i.update(e,t)})})}function assembleOption(t,e,i,o){var t=t["reactData"],n=t["staticOptions"],s=e.parentNode,o=o?o.optionConfig:null,o=o?o.options:n;s&&o&&(o.splice(_xeUtils.default.arrayIndexOf(s.children,e),0,i),t.staticOptions=n.slice(0))}function destroyOption(t,e){var t=t["reactData"],i=t["staticOptions"],o=_xeUtils.default.findTree(i,t=>t.id===e.id,{children:"options"});o&&o.items.splice(o.index,1),t.staticOptions=i.slice(0)}
|