vxe-pc-ui 4.20.5 → 4.20.7
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 +5157 -5088
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/button/src/button.js +1 -0
- package/es/cascader/src/cascader.js +1 -0
- package/es/color-picker/src/color-picker.js +1 -0
- package/es/date-picker/src/date-picker.js +1 -0
- package/es/date-range-picker/src/date-range-picker.js +1 -0
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +1 -0
- package/es/pulldown/src/pulldown.js +1 -0
- package/es/scrollbar/src/scrollbar.js +20 -3
- package/es/scrollbar/style.css +11 -0
- package/es/scrollbar/style.min.css +1 -1
- package/es/select/src/select.js +1 -0
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table-select/src/table-select.js +1 -0
- package/es/tabs/src/tabs.js +5 -3
- package/es/tooltip/src/tooltip.js +47 -9
- package/es/tooltip/style.css +2 -1
- package/es/tooltip/style.min.css +1 -1
- package/es/tree-select/src/tree-select.js +1 -0
- package/es/ui/index.js +1 -1
- package/es/ui/src/dom.js +11 -8
- package/es/ui/src/log.js +1 -1
- package/es/vxe-scrollbar/style.css +11 -0
- package/es/vxe-scrollbar/style.min.css +1 -1
- package/es/vxe-tooltip/style.css +2 -1
- package/es/vxe-tooltip/style.min.css +1 -1
- package/lib/button/src/button.js +1 -0
- package/lib/button/src/button.min.js +1 -1
- package/lib/cascader/src/cascader.js +1 -0
- package/lib/cascader/src/cascader.min.js +1 -1
- package/lib/color-picker/src/color-picker.js +1 -0
- package/lib/color-picker/src/color-picker.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +1 -0
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/date-range-picker/src/date-range-picker.js +1 -0
- 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/icon-picker/src/icon-picker.js +1 -0
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/index.umd.js +4640 -4346
- package/lib/index.umd.min.js +1 -1
- package/lib/pulldown/src/pulldown.js +1 -0
- package/lib/pulldown/src/pulldown.min.js +1 -1
- package/lib/scrollbar/src/scrollbar.js +22 -3
- package/lib/scrollbar/src/scrollbar.min.js +1 -1
- package/lib/scrollbar/style/style.css +11 -0
- package/lib/scrollbar/style/style.min.css +1 -1
- package/lib/select/src/select.js +1 -0
- package/lib/select/src/select.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table-select/src/table-select.js +1 -0
- package/lib/table-select/src/table-select.min.js +1 -1
- package/lib/tabs/src/tabs.js +45 -33
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/tooltip/src/tooltip.js +81 -29
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/tooltip/style/style.css +2 -1
- package/lib/tooltip/style/style.min.css +1 -1
- package/lib/tree-select/src/tree-select.js +1 -0
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/dom.js +11 -7
- package/lib/ui/src/dom.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-scrollbar/style/style.css +11 -0
- package/lib/vxe-scrollbar/style/style.min.css +1 -1
- package/lib/vxe-tooltip/style/style.css +2 -1
- package/lib/vxe-tooltip/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/button/src/button.ts +2 -1
- package/packages/cascader/src/cascader.ts +1 -0
- package/packages/color-picker/src/color-picker.ts +1 -0
- package/packages/date-picker/src/date-picker.ts +1 -0
- package/packages/date-range-picker/src/date-range-picker.ts +1 -0
- package/packages/icon-picker/src/icon-picker.ts +1 -0
- package/packages/pulldown/src/pulldown.ts +1 -0
- package/packages/scrollbar/src/scrollbar.ts +20 -2
- package/packages/select/src/select.ts +1 -0
- package/packages/table-select/src/table-select.ts +1 -0
- package/packages/tabs/src/tabs.ts +6 -3
- package/packages/tooltip/src/tooltip.ts +49 -10
- package/packages/tree-select/src/tree-select.ts +1 -0
- package/packages/ui/src/dom.ts +12 -8
- package/styles/components/scrollbar.scss +15 -1
- package/styles/components/tooltip.scss +2 -1
- package/types/components/button.d.ts +4 -0
- package/types/components/cascader.d.ts +4 -0
- package/types/components/scrollbar.d.ts +19 -1
- package/types/components/table.d.ts +1 -0
- package/types/components/tooltip.d.ts +21 -0
- /package/es/icon/{iconfont.1792048659766.ttf → iconfont.1792080138286.ttf} +0 -0
- /package/es/icon/{iconfont.1792048659766.woff → iconfont.1792080138286.woff} +0 -0
- /package/es/icon/{iconfont.1792048659766.woff2 → iconfont.1792080138286.woff2} +0 -0
- /package/es/{iconfont.1792048659766.ttf → iconfont.1792080138286.ttf} +0 -0
- /package/es/{iconfont.1792048659766.woff → iconfont.1792080138286.woff} +0 -0
- /package/es/{iconfont.1792048659766.woff2 → iconfont.1792080138286.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1792048659766.ttf → iconfont.1792080138286.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1792048659766.woff → iconfont.1792080138286.woff} +0 -0
- /package/lib/icon/style/{iconfont.1792048659766.woff2 → iconfont.1792080138286.woff2} +0 -0
- /package/lib/{iconfont.1792048659766.ttf → iconfont.1792080138286.ttf} +0 -0
- /package/lib/{iconfont.1792048659766.woff → iconfont.1792080138286.woff} +0 -0
- /package/lib/{iconfont.1792048659766.woff2 → iconfont.1792080138286.woff2} +0 -0
|
@@ -148,6 +148,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
148
148
|
const ppObj = (0, _dom.updatePanelPlacement)(targetElem, panelElem, {
|
|
149
149
|
placement: popupOpts.placement || placement,
|
|
150
150
|
defaultPlacement: popupOpts.defaultPlacement,
|
|
151
|
+
appendTo: popupOpts.appendTo,
|
|
151
152
|
teleportTo: btnTransfer
|
|
152
153
|
});
|
|
153
154
|
const panelStyle = Object.assign(ppObj.style, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxePulldown",props:{modelValue:Boolean,disabled:Boolean,placement:String,trigger:{type:String,default:()=>(0,_ui.getConfig)().pulldown.trigger},zIndex:Number,size:{type:String,default:()=>(0,_ui.getConfig)().pulldown.size||(0,_ui.getConfig)().size},options:Array,className:{type:[String,Function],default:()=>(0,_ui.getConfig)().pulldown.className},popupClassName:[String,Function],showPopupShadow:Boolean,popupConfig:Object,destroyOnClose:{type:Boolean,default:()=>(0,_ui.getConfig)().pulldown.destroyOnClose},transfer:{type:Boolean,default:null}},emits:["update:modelValue","click","option-click","show-panel","hide-panel","visible-change"],setup(b,e){let{slots:x,emit:n}=e,i=(0,_vue.inject)("$xeModal",null),t=(0,_vue.inject)("$xeDrawer",null),a=(0,_vue.inject)("$xeTable",null),u=(0,_vue.inject)("$xeForm",null);var l=_xeUtils.default.uniqueId();let w=(0,_ui.useSize)(b).computeSize,h=(0,_vue.reactive)({initialized:!1,panelIndex:0,panelStyle:{},panelPlacement:null,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),o={hpTimeout:void 0},P=(0,_vue.ref)(),
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxePulldown",props:{modelValue:Boolean,disabled:Boolean,placement:String,trigger:{type:String,default:()=>(0,_ui.getConfig)().pulldown.trigger},zIndex:Number,size:{type:String,default:()=>(0,_ui.getConfig)().pulldown.size||(0,_ui.getConfig)().size},options:Array,className:{type:[String,Function],default:()=>(0,_ui.getConfig)().pulldown.className},popupClassName:[String,Function],showPopupShadow:Boolean,popupConfig:Object,destroyOnClose:{type:Boolean,default:()=>(0,_ui.getConfig)().pulldown.destroyOnClose},transfer:{type:Boolean,default:null}},emits:["update:modelValue","click","option-click","show-panel","hide-panel","visible-change"],setup(b,e){let{slots:x,emit:n}=e,i=(0,_vue.inject)("$xeModal",null),t=(0,_vue.inject)("$xeDrawer",null),a=(0,_vue.inject)("$xeTable",null),u=(0,_vue.inject)("$xeForm",null);var l=_xeUtils.default.uniqueId();let w=(0,_ui.useSize)(b).computeSize,h=(0,_vue.reactive)({initialized:!1,panelIndex:0,panelStyle:{},panelPlacement:null,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),o={hpTimeout:void 0},P=(0,_vue.ref)(),T=(0,_vue.ref)(),y=(0,_vue.ref)(),C=(0,_vue.computed)(()=>{var e=b.transfer,l=z.value;if(_xeUtils.default.isBoolean(l.transfer))return l.transfer;if(null===e){l=(0,_ui.getConfig)().pulldown.transfer;if(_xeUtils.default.isBoolean(l))return l;if(a||i||t||u)return!0}return e}),z=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().pulldown.popupConfig,b.popupConfig)),s={refElem:P},E={xID:l,props:b,context:e,reactData:h,internalData:o,getRefMaps:()=>s};let r=()=>{var e=z.value.zIndex||b.zIndex;e?h.panelIndex=_xeUtils.default.toNumber(e):h.panelIndex<(0,_utils.getLastZIndex)()&&(h.panelIndex=(0,_utils.nextZIndex)())};let d=()=>{let i=b.placement,n=h.panelIndex,t=T.value,a=y.value,u=C.value,o=z.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(t,a,{placement:o.placement||i,defaultPlacement:o.defaultPlacement,appendTo:o.appendTo,teleportTo:u}),l=Object.assign(e.style,{zIndex:n});h.panelStyle=l,h.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},p=()=>(h.initialized||(h.initialized=!0),new Promise(e=>{b.disabled?(0,_vue.nextTick)(()=>{e()}):(o.hpTimeout&&clearTimeout(o.hpTimeout),h.isActivated=!0,h.isAniVisible=!0,setTimeout(()=>{h.visiblePanel=!0,n("update:modelValue",!0),d(),setTimeout(()=>{e(d())},40)},10),r(),g("visible-change",{visible:!0},null))})),v=()=>(h.visiblePanel=!1,g("visible-change",{visible:!1},null),n("update:modelValue",!1),new Promise(e=>{h.isAniVisible?o.hpTimeout=setTimeout(()=>{(h.isAniVisible=!1,_vue.nextTick)(()=>{e()})},350):(0,_vue.nextTick)(()=>{e()})}));let V=(e,l)=>{l.disabled||(h.visiblePanel&&(v(),g("hide-panel",{},e)),g("option-click",{option:l},e))},A=e=>{var l=b.trigger,i=z.value;"click"===(l||i.trigger)&&(h.visiblePanel?(v(),g("hide-panel",{},e)):(p(),g("show-panel",{},e))),g("click",{$pulldown:E},e)},c=e=>{var{trigger:l,disabled:i}=b,n=h.visiblePanel,t=z.value,l=l||t.trigger,t=P.value,a=y.value;i||(h.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,a).flag,n&&!h.isActivated&&"manual"!==l&&(v(),g("hide-panel",{},e)))},_=e=>{var l=b.trigger,{visiblePanel:i,isActivated:n}=h,t=z.value,l=l||t.trigger;i&&"manual"!==l&&(v(),g("hide-panel",{},e)),n&&(h.isActivated=!1)},m=()=>{var e=h.visiblePanel;e&&d()},f=()=>{var e=h.visiblePanel;e&&d()},g=(e,l,i)=>{n(e,(0,_ui.createEvent)(i,{$pulldown:E},l))};l={dispatchEvent:g,isPanelVisible:()=>h.visiblePanel,togglePanel:()=>(h.visiblePanel?v:p)(),showPanel:p,hidePanel:v},Object.assign(E,l);return(0,_vue.watch)(()=>b.modelValue,e=>{h.isActivated=!!e,(e?p:v)()}),(0,_vue.nextTick)(()=>{b.modelValue&&p(),_ui.globalEvents.on(E,"mousedown",c),_ui.globalEvents.on(E,"blur",_),_ui.globalEvents.on(E,"resize",m),_ui.globalEvents.on(E,"scroll",f)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(E,"mousedown"),_ui.globalEvents.off(E,"blur"),_ui.globalEvents.off(E,"resize"),_ui.globalEvents.off(E,"scroll")}),E.renderVN=()=>{var{className:e,options:l,showPopupShadow:i,destroyOnClose:n,disabled:t}=b,{initialized:a,isActivated:u,isAniVisible:o,visiblePanel:s,panelStyle:r,panelPlacement:d}=h,p=C.value,v=w.value,c=z.value,_=x.default,m=x.header,f=x.footer,g=x.dropdown,c=c.className||b.popupClassName;return(0,_vue.h)("div",{ref:P,class:["vxe-pulldown",e?_xeUtils.default.isFunction(e)?e({$pulldown:E}):e:"",{["size--"+v]:v,"is--visible":s,"is--disabled":t,"is--active":u}]},[(0,_vue.h)("div",{ref:T,class:"vxe-pulldown--content",onClick:A},_?_({options:l,$pulldown:E}):[]),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!p||!a},[(0,_vue.h)("div",{ref:y,class:["vxe-table--ignore-clear vxe-pulldown--panel",c?_xeUtils.default.isFunction(c)?c({$pulldown:E}):c:"",{["size--"+v]:v,"is--transfer":p,"ani--leave":o,"ani--enter":s}],placement:d,style:r},[(0,_vue.h)("div",{class:["vxe-pulldown--panel-wrapper",{"is--shadow":i}]},a&&(!n||s||o)?[m?(0,_vue.h)("div",{class:"vxe-pulldown--panel-header"},m({options:l,$pulldown:E})):(0,_ui.renderEmptyElement)(E),(0,_vue.h)("div",{class:"vxe-pulldown--panel-body"},g?g({options:l,$pulldown:E}):[(e=>{let i=x.option;return(0,_vue.h)("div",{class:"vxe-pulldown--panel-list"},e?e.map(l=>(0,_vue.h)("div",{class:"vxe-pulldown--panel-item",onClick(e){V(e,l)}},i?i({$pulldown:E,option:l}):""+(l.label||""))):[])})(l)]),f?(0,_vue.h)("div",{class:"vxe-pulldown--panel-footer"},f({options:l,$pulldown:E})):(0,_ui.renderEmptyElement)(E)]:[])])])])},E},render(){return this.renderVN()}});
|
|
@@ -49,6 +49,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
49
49
|
props: {
|
|
50
50
|
id: [String, Number],
|
|
51
51
|
viewId: [String, Number],
|
|
52
|
+
theme: {
|
|
53
|
+
type: String,
|
|
54
|
+
default: () => getConfig().scrollbar.theme
|
|
55
|
+
},
|
|
52
56
|
width: [String, Number],
|
|
53
57
|
height: [String, Number],
|
|
54
58
|
minWidth: [String, Number],
|
|
@@ -82,6 +86,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
82
86
|
type: Object,
|
|
83
87
|
default: () => getConfig().scrollbar.viewAttrs
|
|
84
88
|
},
|
|
89
|
+
viewStyle: {
|
|
90
|
+
type: Object,
|
|
91
|
+
default: () => getConfig().scrollbar.viewStyle
|
|
92
|
+
},
|
|
85
93
|
viewClassName: {
|
|
86
94
|
type: String,
|
|
87
95
|
default: () => getConfig().scrollbar.viewClassName
|
|
@@ -187,6 +195,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
187
195
|
const computeWrapperClss = (0, _vue.computed)(() => {
|
|
188
196
|
const {
|
|
189
197
|
native,
|
|
198
|
+
theme,
|
|
190
199
|
className,
|
|
191
200
|
padding
|
|
192
201
|
} = props;
|
|
@@ -200,7 +209,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
200
209
|
const yVisible = computeYVisible.value;
|
|
201
210
|
const xAutoHide = computeXAutoHide.value;
|
|
202
211
|
const yAutoHide = computeYAutoHide.value;
|
|
203
|
-
return domUtils.buildClass(['vxe-scrollbar', `ov-x--${xVisible === false ? 'hidden' : 'visible'}`, `ov-y--${yVisible === false ? 'hidden' : 'visible'}`, `sx-pos--${xToTop ? 'top' : 'bottom'}`, `sy-pos--${yToLeft ? 'left' : 'right'}`, native ? 'is--native' : 'is--virtual', className], {
|
|
212
|
+
return domUtils.buildClass(['vxe-scrollbar', theme ? `theme--${theme}` : '', `ov-x--${xVisible === false ? 'hidden' : 'visible'}`, `ov-y--${yVisible === false ? 'hidden' : 'visible'}`, `sx-pos--${xToTop ? 'top' : 'bottom'}`, `sy-pos--${yToLeft ? 'left' : 'right'}`, native ? 'is--native' : 'is--virtual', className], {
|
|
204
213
|
'is--padding': padding,
|
|
205
214
|
'ov-x--auto-hide': xAutoHide,
|
|
206
215
|
'ov-y--auto-hide': yAutoHide,
|
|
@@ -254,6 +263,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
254
263
|
};
|
|
255
264
|
const scrollbarMethods = {
|
|
256
265
|
dispatchEvent,
|
|
266
|
+
getViewElem() {
|
|
267
|
+
const viewEl = refViewElem.value;
|
|
268
|
+
return viewEl || null;
|
|
269
|
+
},
|
|
270
|
+
getViewInnerElem() {
|
|
271
|
+
const viewInnerEl = refViewInnerElem.value;
|
|
272
|
+
return viewInnerEl || null;
|
|
273
|
+
},
|
|
257
274
|
scrollTo(left, top) {
|
|
258
275
|
const viewEl = refViewElem.value;
|
|
259
276
|
if (viewEl) {
|
|
@@ -579,7 +596,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
579
596
|
native,
|
|
580
597
|
loading,
|
|
581
598
|
viewId,
|
|
582
|
-
viewAttrs
|
|
599
|
+
viewAttrs,
|
|
600
|
+
viewStyle
|
|
583
601
|
} = props;
|
|
584
602
|
const wrapperStyle = computeWrapperStyle.value;
|
|
585
603
|
const wrapperClss = computeWrapperClss.value;
|
|
@@ -597,7 +615,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
597
615
|
ref: refViewElem,
|
|
598
616
|
class: viewClss,
|
|
599
617
|
onScroll: scrollEvent,
|
|
600
|
-
id: viewId || null
|
|
618
|
+
id: viewId || null,
|
|
619
|
+
style: viewStyle
|
|
601
620
|
}, viewAttrs), [(0, _vue.h)('div', {
|
|
602
621
|
key: 'vi',
|
|
603
622
|
ref: refViewInnerElem,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_loading=_interopRequireDefault(require("../../loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,createEvent,domUtils,scrollbarUtils,globalResize,globalEvents,renderEmptyElement}=_ui.VxeUI,{getThumbOffsetSize,getThumbSize,getScrollFromClick,getScrollFromDrag}=scrollbarUtils;function createReactData(){return{yThumbHeight:0,xThumbWidth:0}}function createInternalData(){return{thumbDragOffset:0,yThumbTop:0,xThumbLeft:0,lastScrollTop:0,lastScrollLeft:0}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeScrollbar",props:{id:[String,Number],viewId:[String,Number],width:[String,Number],height:[String,Number],minWidth:[String,Number],minHeight:[String,Number],maxWidth:[String,Number],maxHeight:[String,Number],loading:Boolean,native:{type:Boolean,default:()=>getConfig().scrollbar.native},padding:{type:Boolean,default:()=>getConfig().scrollbar.padding},autoHide:{type:Boolean,default:()=>getConfig().scrollbar.autoHide},visible:{type:Boolean,default:()=>getConfig().scrollbar.visible},xConfig:Object,yConfig:Object,className:{type:String,default:()=>getConfig().scrollbar.className},viewAttrs:{type:Object,default:()=>getConfig().scrollbar.viewAttrs},viewClassName:{type:String,default:()=>getConfig().scrollbar.viewClassName},viewInnerClassName:{type:String,default:()=>getConfig().scrollbar.viewInnerClassName},autoResize:{type:Boolean,default:()=>getConfig().scrollbar.autoResize},syncResize:[Boolean,String,Number]},emits:["scroll","scroll-boundary"],setup(h,e){let{emit:i,slots:g}=e;var t=_xeUtils.default.uniqueId();let d=(0,_vue.ref)(),m=(0,_vue.ref)(),f=(0,_vue.ref)(),b=(0,_vue.ref)(),p=(0,_vue.ref)(),_=(0,_vue.ref)(),T=(0,_vue.ref)(),x=(0,_vue.reactive)(createReactData()),C=createInternalData(),y=(0,_vue.computed)(()=>{var{width:e,height:t,minWidth:l,minHeight:i,maxWidth:r,maxHeight:a}=h,o=c.value,u=s.value,n={};return e&&(n.width=(0,_dom.toCssUnit)(e)),t&&(n.height=(0,_dom.toCssUnit)(t)),l&&(n.minWidth=(0,_dom.toCssUnit)(l)),i&&(n.minHeight=(0,_dom.toCssUnit)(i)),r&&(n.maxWidth=(0,_dom.toCssUnit)(r)),a&&(n.maxHeight=(0,_dom.toCssUnit)(a)),(o||u)&&(n["--vxe-ui-scrollbar-y-width"]=(0,_dom.toCssUnit)(o||u),n["--vxe-ui-scrollbar-x-height"]=(0,_dom.toCssUnit)(u||o)),n}),s=(0,_vue.computed)(()=>R.value.height),c=(0,_vue.computed)(()=>U.value.width),H=(0,_vue.computed)(()=>{var e=h.visible,t=R.value;return(0,_utils.getDefaultConfig)(t.visible,e)}),w=(0,_vue.computed)(()=>{var e=h.visible,t=U.value;return(0,_utils.getDefaultConfig)(t.visible,e)}),v=(0,_vue.computed)(()=>{var e=h.autoHide,t=R.value;return(0,_utils.getDefaultConfig)(t.autoHide,e)}),S=(0,_vue.computed)(()=>{var e=h.autoHide,t=U.value;return(0,_utils.getDefaultConfig)(t.autoHide,e)}),W=(0,_vue.computed)(()=>{var{native:e,className:t,padding:l}=h,{yThumbHeight:i,xThumbWidth:r}=x,a=z.value,o=L.value,u=H.value,n=w.value,s=v.value,c=S.value;return domUtils.buildClass(["vxe-scrollbar","ov-x--"+(!1===u?"hidden":"visible"),"ov-y--"+(!1===n?"hidden":"visible"),"sx-pos--"+(a?"top":"bottom"),"sy-pos--"+(o?"left":"right"),e?"is--native":"is--virtual",t],{"is--padding":l,"ov-x--auto-hide":s,"ov-y--auto-hide":c,"overflow-y":i,"overflow-x":r})}),D=(0,_vue.computed)(()=>{var e=h.viewClassName;return domUtils.buildClass(["vxe-scrollbar--view",e])}),N=(0,_vue.computed)(()=>{var e=h.viewInnerClassName;return domUtils.buildClass(["vxe-scrollbar--view-inner",e])}),R=(0,_vue.computed)(()=>Object.assign({},getConfig().scrollbar.xConfig,h.xConfig)),U=(0,_vue.computed)(()=>Object.assign({},getConfig().scrollbar.yConfig,h.yConfig)),z=(0,_vue.computed)(()=>"top"===R.value.position),L=(0,_vue.computed)(()=>"left"===U.value.position),l={refElem:d},r={},O={xID:t,props:h,context:e,reactData:x,internalData:C,getRefMaps:()=>l,getComputeMaps:()=>r},E=(e,t,l)=>{i(e,createEvent(l,{$scrollbar:O},t))};t={dispatchEvent:E,scrollTo(e,t){var l=m.value;l&&(_xeUtils.default.isNumber(e)?l.scrollTo(e,t||0):l.scrollTo(e))},scrollIntoView(){var e=m.value;e&&e.scrollIntoView()},setScrollTop(e){var t=m.value;t&&(t.scrollTop=e)},setScrollLeft(e){var t=m.value;t&&(t.scrollLeft=e)},getScrollTop(){var e=m.value;return e?e.scrollTop:0},getScrollLeft(){var e=m.value;return e?e.scrollLeft:0},clearScroll(){var e=m.value;e&&(e.scrollTop=0,e.scrollLeft=0)},recalculate(){return a(),I(),(0,_vue.nextTick)()}};let a=()=>{var e,t,l=m.value;l&&l.clientHeight&&(t=(t=b.value)?getThumbSize(l.clientWidth,l.scrollWidth,t.clientWidth):0,(e=_.value)&&(e.style.width=t+"px"),x.xThumbWidth=t,t=(e=p.value)?getThumbSize(l.clientHeight,l.scrollHeight,e.clientHeight):0,(l=T.value)&&(l.style.height=t+"px"),x.yThumbHeight=t)},I=()=>{var e,t,l,i,r=m.value;r&&r.clientHeight&&({xThumbWidth:t,yThumbHeight:e}=x,i=b.value,l=_.value,i=i&&t?getThumbOffsetSize(r.scrollLeft,r.clientWidth,r.scrollWidth,i.clientWidth,t):0,C.xThumbLeft=i,l&&t&&(l.style.width=t+"px",l.style.transform=`translateX(${i}px)`),t=p.value,l=T.value,i=t&&e?getThumbOffsetSize(r.scrollTop,r.clientHeight,r.scrollHeight,t.clientHeight,e):0,C.yThumbTop=i,l)&&e&&(l.style.height=e+"px",l.style.transform=`translateY(${i}px)`)},P=e=>{var{xThumbWidth:t,yThumbHeight:l}=x,{lastScrollTop:i,lastScrollLeft:r}=C,a=R.value,o=U.value,{scrollTop:u,scrollLeft:n,clientWidth:s,clientHeight:c,scrollHeight:v,scrollWidth:h}=e.currentTarget;let g="",d=!1,m=!1,f=!1,b=!1;i!==u&&(o=_xeUtils.default.toNumber(o.threshold)||1,i<u?(g="bottom",0<l&&v-o<=u+c&&(m=!0)):(g="top",0<l&&u<=o&&(d=!0))),r!==n&&(i=_xeUtils.default.toNumber(a.threshold)||1,r<n?(g="right",0<t&&h-i<=n+s&&(b=!0)):(g="left",0<t&&n<=i&&(f=!0))),I(),C.lastScrollTop=u,C.lastScrollLeft=n,(m||d||b||f)&&E("scroll-boundary",{direction:g,isTop:d,isBottom:m,isLeft:f,isRight:b,scrollTop:u,scrollLeft:n,clientWidth:s,clientHeight:c,scrollHeight:v,scrollWidth:h},e),E("scroll",{direction:g,isTop:0<l&&u<=0,isBottom:0<l&&v<=u+c,isLeft:0<t&&n<=0,isRight:0<t&&h<=n+s,scrollTop:u,scrollLeft:n,clientWidth:s,clientHeight:c,scrollHeight:v,scrollWidth:h},e)},k=e=>{var t,l,i,r=e.currentTarget;r===e.target&&(t=m.value)&&(l=x.xThumbWidth,i=r.getBoundingClientRect(),t.scrollTo({left:getScrollFromClick(e.clientX-i.left,t.clientWidth,t.scrollWidth,r.clientWidth,l),behavior:"auto"}))},q=e=>{var t,l,i,r=e.currentTarget;r===e.target&&(t=m.value)&&(l=x.yThumbHeight,i=r.getBoundingClientRect(),t.scrollTo({top:getScrollFromClick(e.clientY-i.top,t.clientHeight,t.scrollHeight,r.clientHeight,l),behavior:"auto"}))},j=e=>{var t,l,i=e.currentTarget,r=(C.isThumbDrag=!0,i.setPointerCapture(e.pointerId),m.value);r&&(t=x.xThumbWidth,l=(i=i.parentElement).getBoundingClientRect(),e=e.clientX-l.left,l=getThumbOffsetSize(r.scrollLeft,r.clientWidth,r.scrollWidth,i.clientWidth,t),C.thumbDragOffset=e-l)},V=t=>{let e=t.currentTarget;if(e.hasPointerCapture(t.pointerId)){var{isThumbDrag:l,thumbDragOffset:i}=C;if(l){l=m.value;if(l){var r=x.xThumbWidth;let e=t.currentTarget;var a=e.parentElement,o=a.getBoundingClientRect();l.scrollLeft=getScrollFromDrag(t.clientX-o.left,i,l.clientWidth,l.scrollWidth,a.clientWidth,r)}}}},B=e=>{e.currentTarget.releasePointerCapture(e.pointerId),C.isThumbDrag=!1},F=e=>{var t,l,i=e.currentTarget,r=(C.isThumbDrag=!0,i.setPointerCapture(e.pointerId),m.value);r&&(t=x.yThumbHeight,l=(i=i.parentElement).getBoundingClientRect(),e=e.clientY-l.top,l=getThumbOffsetSize(r.scrollTop,r.clientHeight,r.scrollHeight,i.clientHeight,t),C.thumbDragOffset=e-l)},M=t=>{let e=t.currentTarget;if(e.hasPointerCapture(t.pointerId)){var{isThumbDrag:l,thumbDragOffset:i}=C;if(l){l=m.value;if(l){var r=x.yThumbHeight;let e=t.currentTarget;var a=e.parentElement,o=a.getBoundingClientRect();l.scrollTop=getScrollFromDrag(t.clientY-o.top,i,l.clientHeight,l.scrollHeight,a.clientHeight,r)}}}};Object.assign(O,t,{});let o=(0,_vue.ref)(0);return(0,_vue.watch)(()=>h.height,()=>{o.value++}),(0,_vue.watch)(()=>h.width,()=>{o.value++}),(0,_vue.watch)(()=>h.minHeight,()=>{o.value++}),(0,_vue.watch)(()=>h.minWidth,()=>{o.value++}),(0,_vue.watch)(()=>h.maxHeight,()=>{o.value++}),(0,_vue.watch)(()=>h.maxWidth,()=>{o.value++}),(0,_vue.watch)(()=>h.native,()=>{o.value++}),(0,_vue.watch)(()=>h.syncResize,()=>{o.value++}),(0,_vue.watch)(c,()=>{o.value++}),(0,_vue.watch)(s,()=>{o.value++}),(0,_vue.watch)(H,()=>{(0,_vue.nextTick)(()=>{o.value++})}),(0,_vue.watch)(w,()=>{(0,_vue.nextTick)(()=>{o.value++})}),(0,_vue.watch)(o,()=>{O.recalculate().then(()=>{O.recalculate()})}),(0,_vue.onMounted)(()=>{var e=h.autoResize,t=m.value,l=f.value;e&&(e=globalResize.create(()=>{h.autoResize&&o.value++}),t&&e.observe(t),l&&e.observe(l),C.resizeObserver=e),o.value++,globalEvents.on(O,"resize",()=>{o.value++})}),(0,_vue.onBeforeUnmount)(()=>{var e=C.resizeObserver;e&&e.disconnect(),globalEvents.off(O,"resize")}),O.renderVN=()=>{var{id:e,native:t,loading:l,viewId:i,viewAttrs:r}=h,a=y.value,o=W.value,u=D.value,n=N.value,s=H.value,c=w.value,v=g.default;return(0,_vue.h)("div",{ref:d,id:e||null,class:o,style:a},[(0,_vue.h)("div",Object.assign({ref:m,class:u,onScroll:P,id:i||null},r),[(0,_vue.h)("div",{key:"vi",ref:f,class:n},v?v({}):[])]),t||!1===s?renderEmptyElement(O):(0,_vue.h)("div",{ref:b,class:"vxe-scrollbar--track-x",onClick:k},[(0,_vue.h)("div",{ref:_,class:"vxe-scrollbar--thumb-x",onPointerdown:j,onPointermove:V,onPointerup:B,onPointercancel:B,onLostpointercapture:B})]),t||!1===c?renderEmptyElement(O):(0,_vue.h)("div",{ref:p,class:"vxe-scrollbar--track-y",onClick:q},[(0,_vue.h)("div",{ref:T,class:"vxe-scrollbar--thumb-y",onPointerdown:F,onPointermove:M,onPointerup:B,onPointercancel:B,onLostpointercapture:B})]),(0,_vue.h)(_loading.default,{class:"vxe-scrollbar--loading",modelValue:l})])},O},render(){return this.renderVN()}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_loading=_interopRequireDefault(require("../../loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,createEvent,domUtils,scrollbarUtils,globalResize,globalEvents,renderEmptyElement}=_ui.VxeUI,{getThumbOffsetSize,getThumbSize,getScrollFromClick,getScrollFromDrag}=scrollbarUtils;function createReactData(){return{yThumbHeight:0,xThumbWidth:0}}function createInternalData(){return{thumbDragOffset:0,yThumbTop:0,xThumbLeft:0,lastScrollTop:0,lastScrollLeft:0}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeScrollbar",props:{id:[String,Number],viewId:[String,Number],theme:{type:String,default:()=>getConfig().scrollbar.theme},width:[String,Number],height:[String,Number],minWidth:[String,Number],minHeight:[String,Number],maxWidth:[String,Number],maxHeight:[String,Number],loading:Boolean,native:{type:Boolean,default:()=>getConfig().scrollbar.native},padding:{type:Boolean,default:()=>getConfig().scrollbar.padding},autoHide:{type:Boolean,default:()=>getConfig().scrollbar.autoHide},visible:{type:Boolean,default:()=>getConfig().scrollbar.visible},xConfig:Object,yConfig:Object,className:{type:String,default:()=>getConfig().scrollbar.className},viewAttrs:{type:Object,default:()=>getConfig().scrollbar.viewAttrs},viewStyle:{type:Object,default:()=>getConfig().scrollbar.viewStyle},viewClassName:{type:String,default:()=>getConfig().scrollbar.viewClassName},viewInnerClassName:{type:String,default:()=>getConfig().scrollbar.viewInnerClassName},autoResize:{type:Boolean,default:()=>getConfig().scrollbar.autoResize},syncResize:[Boolean,String,Number]},emits:["scroll","scroll-boundary"],setup(g,e){let{emit:i,slots:d}=e;var t=_xeUtils.default.uniqueId();let m=(0,_vue.ref)(),f=(0,_vue.ref)(),b=(0,_vue.ref)(),p=(0,_vue.ref)(),_=(0,_vue.ref)(),T=(0,_vue.ref)(),x=(0,_vue.ref)(),C=(0,_vue.reactive)(createReactData()),y=createInternalData(),w=(0,_vue.computed)(()=>{var{width:e,height:t,minWidth:l,minHeight:i,maxWidth:r,maxHeight:a}=g,o=c.value,u=s.value,n={};return e&&(n.width=(0,_dom.toCssUnit)(e)),t&&(n.height=(0,_dom.toCssUnit)(t)),l&&(n.minWidth=(0,_dom.toCssUnit)(l)),i&&(n.minHeight=(0,_dom.toCssUnit)(i)),r&&(n.maxWidth=(0,_dom.toCssUnit)(r)),a&&(n.maxHeight=(0,_dom.toCssUnit)(a)),(o||u)&&(n["--vxe-ui-scrollbar-y-width"]=(0,_dom.toCssUnit)(o||u),n["--vxe-ui-scrollbar-x-height"]=(0,_dom.toCssUnit)(u||o)),n}),s=(0,_vue.computed)(()=>O.value.height),c=(0,_vue.computed)(()=>U.value.width),H=(0,_vue.computed)(()=>{var e=g.visible,t=O.value;return(0,_utils.getDefaultConfig)(t.visible,e)}),S=(0,_vue.computed)(()=>{var e=g.visible,t=U.value;return(0,_utils.getDefaultConfig)(t.visible,e)}),h=(0,_vue.computed)(()=>{var e=g.autoHide,t=O.value;return(0,_utils.getDefaultConfig)(t.autoHide,e)}),W=(0,_vue.computed)(()=>{var e=g.autoHide,t=U.value;return(0,_utils.getDefaultConfig)(t.autoHide,e)}),D=(0,_vue.computed)(()=>{var{native:e,theme:t,className:l,padding:i}=g,{yThumbHeight:r,xThumbWidth:a}=C,o=z.value,u=L.value,n=H.value,s=S.value,c=h.value,v=W.value;return domUtils.buildClass(["vxe-scrollbar",t?"theme--"+t:"","ov-x--"+(!1===n?"hidden":"visible"),"ov-y--"+(!1===s?"hidden":"visible"),"sx-pos--"+(o?"top":"bottom"),"sy-pos--"+(u?"left":"right"),e?"is--native":"is--virtual",l],{"is--padding":i,"ov-x--auto-hide":c,"ov-y--auto-hide":v,"overflow-y":r,"overflow-x":a})}),N=(0,_vue.computed)(()=>{var e=g.viewClassName;return domUtils.buildClass(["vxe-scrollbar--view",e])}),R=(0,_vue.computed)(()=>{var e=g.viewInnerClassName;return domUtils.buildClass(["vxe-scrollbar--view-inner",e])}),O=(0,_vue.computed)(()=>Object.assign({},getConfig().scrollbar.xConfig,g.xConfig)),U=(0,_vue.computed)(()=>Object.assign({},getConfig().scrollbar.yConfig,g.yConfig)),z=(0,_vue.computed)(()=>"top"===O.value.position),L=(0,_vue.computed)(()=>"left"===U.value.position),l={refElem:m},r={},E={xID:t,props:g,context:e,reactData:C,internalData:y,getRefMaps:()=>l,getComputeMaps:()=>r},I=(e,t,l)=>{i(e,createEvent(l,{$scrollbar:E},t))};t={dispatchEvent:I,getViewElem(){return f.value||null},getViewInnerElem(){return b.value||null},scrollTo(e,t){var l=f.value;l&&(_xeUtils.default.isNumber(e)?l.scrollTo(e,t||0):l.scrollTo(e))},scrollIntoView(){var e=f.value;e&&e.scrollIntoView()},setScrollTop(e){var t=f.value;t&&(t.scrollTop=e)},setScrollLeft(e){var t=f.value;t&&(t.scrollLeft=e)},getScrollTop(){var e=f.value;return e?e.scrollTop:0},getScrollLeft(){var e=f.value;return e?e.scrollLeft:0},clearScroll(){var e=f.value;e&&(e.scrollTop=0,e.scrollLeft=0)},recalculate(){return a(),B(),(0,_vue.nextTick)()}};let a=()=>{var e,t,l=f.value;l&&l.clientHeight&&(t=(t=p.value)?getThumbSize(l.clientWidth,l.scrollWidth,t.clientWidth):0,(e=T.value)&&(e.style.width=t+"px"),C.xThumbWidth=t,t=(e=_.value)?getThumbSize(l.clientHeight,l.scrollHeight,e.clientHeight):0,(l=x.value)&&(l.style.height=t+"px"),C.yThumbHeight=t)},B=()=>{var e,t,l,i,r=f.value;r&&r.clientHeight&&({xThumbWidth:t,yThumbHeight:e}=C,i=p.value,l=T.value,i=i&&t?getThumbOffsetSize(r.scrollLeft,r.clientWidth,r.scrollWidth,i.clientWidth,t):0,y.xThumbLeft=i,l&&t&&(l.style.width=t+"px",l.style.transform=`translateX(${i}px)`),t=_.value,l=x.value,i=t&&e?getThumbOffsetSize(r.scrollTop,r.clientHeight,r.scrollHeight,t.clientHeight,e):0,y.yThumbTop=i,l)&&e&&(l.style.height=e+"px",l.style.transform=`translateY(${i}px)`)},k=e=>{var{xThumbWidth:t,yThumbHeight:l}=C,{lastScrollTop:i,lastScrollLeft:r}=y,a=O.value,o=U.value,{scrollTop:u,scrollLeft:n,clientWidth:s,clientHeight:c,scrollHeight:v,scrollWidth:h}=e.currentTarget;let g="",d=!1,m=!1,f=!1,b=!1;i!==u&&(o=_xeUtils.default.toNumber(o.threshold)||1,i<u?(g="bottom",0<l&&v-o<=u+c&&(m=!0)):(g="top",0<l&&u<=o&&(d=!0))),r!==n&&(i=_xeUtils.default.toNumber(a.threshold)||1,r<n?(g="right",0<t&&h-i<=n+s&&(b=!0)):(g="left",0<t&&n<=i&&(f=!0))),B(),y.lastScrollTop=u,y.lastScrollLeft=n,(m||d||b||f)&&I("scroll-boundary",{direction:g,isTop:d,isBottom:m,isLeft:f,isRight:b,scrollTop:u,scrollLeft:n,clientWidth:s,clientHeight:c,scrollHeight:v,scrollWidth:h},e),I("scroll",{direction:g,isTop:0<l&&u<=0,isBottom:0<l&&v<=u+c,isLeft:0<t&&n<=0,isRight:0<t&&h<=n+s,scrollTop:u,scrollLeft:n,clientWidth:s,clientHeight:c,scrollHeight:v,scrollWidth:h},e)},q=e=>{var t,l,i,r=e.currentTarget;r===e.target&&(t=f.value)&&(l=C.xThumbWidth,i=r.getBoundingClientRect(),t.scrollTo({left:getScrollFromClick(e.clientX-i.left,t.clientWidth,t.scrollWidth,r.clientWidth,l),behavior:"auto"}))},V=e=>{var t,l,i,r=e.currentTarget;r===e.target&&(t=f.value)&&(l=C.yThumbHeight,i=r.getBoundingClientRect(),t.scrollTo({top:getScrollFromClick(e.clientY-i.top,t.clientHeight,t.scrollHeight,r.clientHeight,l),behavior:"auto"}))},j=e=>{var t,l,i=e.currentTarget,r=(y.isThumbDrag=!0,i.setPointerCapture(e.pointerId),f.value);r&&(t=C.xThumbWidth,l=(i=i.parentElement).getBoundingClientRect(),e=e.clientX-l.left,l=getThumbOffsetSize(r.scrollLeft,r.clientWidth,r.scrollWidth,i.clientWidth,t),y.thumbDragOffset=e-l)},F=t=>{let e=t.currentTarget;if(e.hasPointerCapture(t.pointerId)){var{isThumbDrag:l,thumbDragOffset:i}=y;if(l){l=f.value;if(l){var r=C.xThumbWidth;let e=t.currentTarget;var a=e.parentElement,o=a.getBoundingClientRect();l.scrollLeft=getScrollFromDrag(t.clientX-o.left,i,l.clientWidth,l.scrollWidth,a.clientWidth,r)}}}},P=e=>{e.currentTarget.releasePointerCapture(e.pointerId),y.isThumbDrag=!1},M=e=>{var t,l,i=e.currentTarget,r=(y.isThumbDrag=!0,i.setPointerCapture(e.pointerId),f.value);r&&(t=C.yThumbHeight,l=(i=i.parentElement).getBoundingClientRect(),e=e.clientY-l.top,l=getThumbOffsetSize(r.scrollTop,r.clientHeight,r.scrollHeight,i.clientHeight,t),y.thumbDragOffset=e-l)},X=t=>{let e=t.currentTarget;if(e.hasPointerCapture(t.pointerId)){var{isThumbDrag:l,thumbDragOffset:i}=y;if(l){l=f.value;if(l){var r=C.yThumbHeight;let e=t.currentTarget;var a=e.parentElement,o=a.getBoundingClientRect();l.scrollTop=getScrollFromDrag(t.clientY-o.top,i,l.clientHeight,l.scrollHeight,a.clientHeight,r)}}}};Object.assign(E,t,{});let o=(0,_vue.ref)(0);return(0,_vue.watch)(()=>g.height,()=>{o.value++}),(0,_vue.watch)(()=>g.width,()=>{o.value++}),(0,_vue.watch)(()=>g.minHeight,()=>{o.value++}),(0,_vue.watch)(()=>g.minWidth,()=>{o.value++}),(0,_vue.watch)(()=>g.maxHeight,()=>{o.value++}),(0,_vue.watch)(()=>g.maxWidth,()=>{o.value++}),(0,_vue.watch)(()=>g.native,()=>{o.value++}),(0,_vue.watch)(()=>g.syncResize,()=>{o.value++}),(0,_vue.watch)(c,()=>{o.value++}),(0,_vue.watch)(s,()=>{o.value++}),(0,_vue.watch)(H,()=>{(0,_vue.nextTick)(()=>{o.value++})}),(0,_vue.watch)(S,()=>{(0,_vue.nextTick)(()=>{o.value++})}),(0,_vue.watch)(o,()=>{E.recalculate().then(()=>{E.recalculate()})}),(0,_vue.onMounted)(()=>{var e=g.autoResize,t=f.value,l=b.value;e&&(e=globalResize.create(()=>{g.autoResize&&o.value++}),t&&e.observe(t),l&&e.observe(l),y.resizeObserver=e),o.value++,globalEvents.on(E,"resize",()=>{o.value++})}),(0,_vue.onBeforeUnmount)(()=>{var e=y.resizeObserver;e&&e.disconnect(),globalEvents.off(E,"resize")}),E.renderVN=()=>{var{id:e,native:t,loading:l,viewId:i,viewAttrs:r,viewStyle:a}=g,o=w.value,u=D.value,n=N.value,s=R.value,c=H.value,v=S.value,h=d.default;return(0,_vue.h)("div",{ref:m,id:e||null,class:u,style:o},[(0,_vue.h)("div",Object.assign({ref:f,class:n,onScroll:k,id:i||null,style:a},r),[(0,_vue.h)("div",{key:"vi",ref:b,class:s},h?h({}):[])]),t||!1===c?renderEmptyElement(E):(0,_vue.h)("div",{ref:p,class:"vxe-scrollbar--track-x",onClick:q},[(0,_vue.h)("div",{ref:T,class:"vxe-scrollbar--thumb-x",onPointerdown:j,onPointermove:F,onPointerup:P,onPointercancel:P,onLostpointercapture:P})]),t||!1===v?renderEmptyElement(E):(0,_vue.h)("div",{ref:_,class:"vxe-scrollbar--track-y",onClick:V},[(0,_vue.h)("div",{ref:x,class:"vxe-scrollbar--thumb-y",onPointerdown:M,onPointermove:X,onPointerup:P,onPointercancel:P,onLostpointercapture:P})]),(0,_vue.h)(_loading.default,{class:"vxe-scrollbar--loading",modelValue:l})])},E},render(){return this.renderVN()}});
|
|
@@ -141,4 +141,15 @@
|
|
|
141
141
|
.vxe-scrollbar--thumb-x:active,
|
|
142
142
|
.vxe-scrollbar--thumb-y:active {
|
|
143
143
|
background-color: var(--vxe-ui-scrollbar-thumb-active-background-color);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.vxe-scrollbar.theme--light {
|
|
147
|
+
--vxe-ui-scrollbar-thumb-background-color: rgba(0,0,0,0.4);
|
|
148
|
+
--vxe-ui-scrollbar-thumb-hover-background-color: rgba(0,0,0,0.5);
|
|
149
|
+
--vxe-ui-scrollbar-thumb-active-background-color: rgba(0,0,0,0.6);
|
|
150
|
+
}
|
|
151
|
+
.vxe-scrollbar.theme--dark {
|
|
152
|
+
--vxe-ui-scrollbar-thumb-background-color: rgba(255,255,255,0.4);
|
|
153
|
+
--vxe-ui-scrollbar-thumb-hover-background-color: rgba(255,255,255,0.5);
|
|
154
|
+
--vxe-ui-scrollbar-thumb-active-background-color: rgba(255,255,255,0.6);
|
|
144
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vxe-scrollbar{position:relative}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view{scrollbar-width:none;-ms-overflow-style:none}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view::-webkit-scrollbar{display:none}.vxe-scrollbar.is--virtual.ov-x--auto-hide:hover>.vxe-scrollbar--track-x{opacity:1}.vxe-scrollbar.is--virtual.ov-x--auto-hide>.vxe-scrollbar--track-x{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--virtual.ov-y--auto-hide:hover>.vxe-scrollbar--track-y{opacity:1}.vxe-scrollbar.is--virtual.ov-y--auto-hide>.vxe-scrollbar--track-y{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar{width:var(--vxe-ui-scrollbar-y-width);height:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb{border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}.vxe-scrollbar.ov-x--hidden>.vxe-scrollbar--view{overflow-x:hidden}.vxe-scrollbar.ov-y--hidden>.vxe-scrollbar--view{overflow-y:hidden}.vxe-scrollbar--view{height:100%;width:100%;overflow-x:auto;overflow-y:auto}.vxe-scrollbar--track-x,.vxe-scrollbar--track-y{display:none;position:absolute;background-color:var(--vxe-ui-scrollbar-track-background-color);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-scrollbar.overflow-x>.vxe-scrollbar--track-x{display:block}.vxe-scrollbar.overflow-y>.vxe-scrollbar--track-y{display:block}.vxe-scrollbar--track-x{width:100%;left:0;height:var(--vxe-ui-scrollbar-x-height);padding:var(--vxe-ui-scrollbar-track-padding) 0}.vxe-scrollbar--track-y{height:100%;top:0;width:var(--vxe-ui-scrollbar-y-width);padding:0 var(--vxe-ui-scrollbar-track-padding)}.vxe-scrollbar.sx-pos--top>.vxe-scrollbar--track-x{top:0}.vxe-scrollbar.sx-pos--bottom>.vxe-scrollbar--track-x{bottom:0}.vxe-scrollbar.sy-pos--left>.vxe-scrollbar--track-y{left:0}.vxe-scrollbar.sy-pos--right>.vxe-scrollbar--track-y{right:0}.vxe-scrollbar.overflow-x.overflow-y>.vxe-scrollbar--track-x{width:calc(100% - var(--vxe-ui-scrollbar-x-height))}.vxe-scrollbar.overflow-x.overflow-y>.vxe-scrollbar--track-y{height:calc(100% - var(--vxe-ui-scrollbar-y-width))}.vxe-scrollbar.overflow-x.overflow-y.sx-pos--top.sy-pos--left>.vxe-scrollbar--track-y,.vxe-scrollbar.overflow-x.overflow-y.sx-pos--top.sy-pos--right>.vxe-scrollbar--track-y{top:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.overflow-x.overflow-y.sy-pos--left.sx-pos--bottom>.vxe-scrollbar--track-x,.vxe-scrollbar.overflow-x.overflow-y.sy-pos--left.sx-pos--top>.vxe-scrollbar--track-x{left:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar.is--padding.overflow-x.sx-pos--top{padding-top:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--padding.overflow-x.sx-pos--bottom{padding-bottom:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--padding.overflow-y.sy-pos--left{padding-left:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar.is--padding.overflow-y.sy-pos--right{padding-right:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar--thumb-y{width:100%}.vxe-scrollbar--thumb-x{height:100%}.vxe-scrollbar--thumb-x,.vxe-scrollbar--thumb-y{border-radius:var(--vxe-ui-scrollbar-thumb-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar--thumb-x:hover,.vxe-scrollbar--thumb-y:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar--thumb-x:active,.vxe-scrollbar--thumb-y:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}
|
|
1
|
+
.vxe-scrollbar{position:relative}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view{scrollbar-width:none;-ms-overflow-style:none}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view::-webkit-scrollbar{display:none}.vxe-scrollbar.is--virtual.ov-x--auto-hide:hover>.vxe-scrollbar--track-x{opacity:1}.vxe-scrollbar.is--virtual.ov-x--auto-hide>.vxe-scrollbar--track-x{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--virtual.ov-y--auto-hide:hover>.vxe-scrollbar--track-y{opacity:1}.vxe-scrollbar.is--virtual.ov-y--auto-hide>.vxe-scrollbar--track-y{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar{width:var(--vxe-ui-scrollbar-y-width);height:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb{border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}.vxe-scrollbar.ov-x--hidden>.vxe-scrollbar--view{overflow-x:hidden}.vxe-scrollbar.ov-y--hidden>.vxe-scrollbar--view{overflow-y:hidden}.vxe-scrollbar--view{height:100%;width:100%;overflow-x:auto;overflow-y:auto}.vxe-scrollbar--track-x,.vxe-scrollbar--track-y{display:none;position:absolute;background-color:var(--vxe-ui-scrollbar-track-background-color);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-scrollbar.overflow-x>.vxe-scrollbar--track-x{display:block}.vxe-scrollbar.overflow-y>.vxe-scrollbar--track-y{display:block}.vxe-scrollbar--track-x{width:100%;left:0;height:var(--vxe-ui-scrollbar-x-height);padding:var(--vxe-ui-scrollbar-track-padding) 0}.vxe-scrollbar--track-y{height:100%;top:0;width:var(--vxe-ui-scrollbar-y-width);padding:0 var(--vxe-ui-scrollbar-track-padding)}.vxe-scrollbar.sx-pos--top>.vxe-scrollbar--track-x{top:0}.vxe-scrollbar.sx-pos--bottom>.vxe-scrollbar--track-x{bottom:0}.vxe-scrollbar.sy-pos--left>.vxe-scrollbar--track-y{left:0}.vxe-scrollbar.sy-pos--right>.vxe-scrollbar--track-y{right:0}.vxe-scrollbar.overflow-x.overflow-y>.vxe-scrollbar--track-x{width:calc(100% - var(--vxe-ui-scrollbar-x-height))}.vxe-scrollbar.overflow-x.overflow-y>.vxe-scrollbar--track-y{height:calc(100% - var(--vxe-ui-scrollbar-y-width))}.vxe-scrollbar.overflow-x.overflow-y.sx-pos--top.sy-pos--left>.vxe-scrollbar--track-y,.vxe-scrollbar.overflow-x.overflow-y.sx-pos--top.sy-pos--right>.vxe-scrollbar--track-y{top:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.overflow-x.overflow-y.sy-pos--left.sx-pos--bottom>.vxe-scrollbar--track-x,.vxe-scrollbar.overflow-x.overflow-y.sy-pos--left.sx-pos--top>.vxe-scrollbar--track-x{left:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar.is--padding.overflow-x.sx-pos--top{padding-top:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--padding.overflow-x.sx-pos--bottom{padding-bottom:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--padding.overflow-y.sy-pos--left{padding-left:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar.is--padding.overflow-y.sy-pos--right{padding-right:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar--thumb-y{width:100%}.vxe-scrollbar--thumb-x{height:100%}.vxe-scrollbar--thumb-x,.vxe-scrollbar--thumb-y{border-radius:var(--vxe-ui-scrollbar-thumb-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar--thumb-x:hover,.vxe-scrollbar--thumb-y:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar--thumb-x:active,.vxe-scrollbar--thumb-y:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}.vxe-scrollbar.theme--light{--vxe-ui-scrollbar-thumb-background-color:rgba(0,0,0,0.4);--vxe-ui-scrollbar-thumb-hover-background-color:rgba(0,0,0,0.5);--vxe-ui-scrollbar-thumb-active-background-color:rgba(0,0,0,0.6)}.vxe-scrollbar.theme--dark{--vxe-ui-scrollbar-thumb-background-color:rgba(255,255,255,0.4);--vxe-ui-scrollbar-thumb-hover-background-color:rgba(255,255,255,0.5);--vxe-ui-scrollbar-thumb-active-background-color:rgba(255,255,255,0.6)}
|
package/lib/select/src/select.js
CHANGED
|
@@ -616,6 +616,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
616
616
|
const ppObj = (0, _dom.updatePanelPlacement)(targetElem, panelElem, {
|
|
617
617
|
placement: popupOpts.placement || placement,
|
|
618
618
|
defaultPlacement: popupOpts.defaultPlacement,
|
|
619
|
+
appendTo: popupOpts.appendTo,
|
|
619
620
|
teleportTo: btnTransfer
|
|
620
621
|
});
|
|
621
622
|
const panelStyle = Object.assign(ppObj.style, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log"),_input=_interopRequireDefault(require("../../input")),_button=_interopRequireDefault(require("../../button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let errLog=(0,_log.createComponentLog)("select").errLog;function isOptionVisible(e){return!1!==e.visible}function getOptUniqueId(){return _xeUtils.default.uniqueId("opt_")}function createReactData(){return{initialized:!1,scrollYLoad:!1,bodyHeight:0,topSpaceHeight:0,optList:[],staticOptions:[],reactFlag:0,currentOption:null,searchValue:"",searchLoading:!1,panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1}}function createInternalData(){return{synchData:[],fullData:[],afterVisibleList:[],optAddMaps:{},optGroupKeyMaps:{},optFullValMaps:{},remoteValMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},lastScrollTime:0,hpTimeout:void 0}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeSelect",props:{modelValue:[String,Number,Boolean,Array],defaultConfig:Object,emptyValue:{type:[String,Number,Boolean,Array],default:()=>(0,_ui.getConfig)().select.emptyValue},clearable:{type:Boolean,default:()=>(0,_ui.getConfig)().select.clearable},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,allowCreate:{type:Boolean,default:()=>(0,_ui.getConfig)().select.allowCreate},placement:String,lazyOptions:Array,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],popupClassName:[String,Function],width:[String,Number],max:{type:[String,Number],default:null},showRadio:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showRadio},radioConfig:Object,showCheckbox:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showCheckedButton},checkboxConfig:Object,zIndex:Number,size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},filterable:Boolean,filterMethod:Function,filterConfig:Object,remote:Boolean,remoteConfig:Object,emptyText:String,checkedClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().select.checkedClosable},clearClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().select.clearClosable},showCloseButton:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showCloseButton},showTotalButton:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showTotalButton},showCheckedButton:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showCheckedButton},showClearButton:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showClearButton},transfer:{type:Boolean,default:null},popupConfig:Object,virtualYConfig:Object,scrollY:Object,remoteMethod:Function,optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean},emits:["update:modelValue","change","default-change","all-change","clear","blur","focus","click","scroll","visible-change"],setup(k,e){let{slots:w,emit:a}=e,n=(0,_vue.inject)("$xeModal",null),C=(0,_vue.inject)("$xeDrawer",null),E=(0,_vue.inject)("$xeTable",null),y=(0,_vue.inject)("$xeCard",null),i=(0,_vue.inject)("$xeForm",null),T=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();let P=(0,_vue.ref)(),B=(0,_vue.ref)(),R=(0,_vue.ref)(),D=(0,_vue.ref)(),A=(0,_vue.ref)(),$=(0,_vue.ref)(),G=(0,_ui.useSize)(k).computeSize,M=(0,_vue.reactive)(createReactData()),U=createInternalData(),O={refElem:P},N={xID:t,props:k,context:e,reactData:M,internalData:U,getRefMaps:()=>O},X=(0,_vue.computed)(()=>{var e=k.readonly;return null===e?!!i&&i.props.readonly:e}),j=(0,_vue.computed)(()=>{var e=k.disabled;return null===e?!!i&&i.props.disabled:e}),W=(0,_vue.computed)(()=>{var e=k.transfer,t=H.value;if(_xeUtils.default.isBoolean(t.transfer))return t.transfer;if(null===e){t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(E||n||C||y||i)return!0}return e}),Z=(0,_vue.computed)(()=>{var e=k.placeholder;return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),I=(0,_vue.computed)(()=>Object.assign({},k.defaultConfig)),S=(0,_vue.computed)(()=>Object.assign({},k.optionProps)),V=(0,_vue.computed)(()=>Object.assign({},k.optionGroupProps)),v=(0,_vue.computed)(()=>S.value.label||"label"),F=(0,_vue.computed)(()=>S.value.value||"value"),J=(0,_vue.computed)(()=>V.value.label||"label"),L=(0,_vue.computed)(()=>V.value.options||"options"),Q=(0,_vue.computed)(()=>{var e=z.value;return de(e)}),H=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.popupConfig,k.popupConfig)),ee=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.virtualYConfig||(0,_ui.getConfig)().select.scrollY,k.virtualYConfig||k.scrollY)),r=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.remoteConfig,k.remoteConfig)),te=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.filterConfig,k.filterConfig)),le=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,k.optionConfig)),ae=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.radioConfig,k.radioConfig)),ie=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.checkboxConfig,k.checkboxConfig)),oe=(0,_vue.computed)(()=>_xeUtils.default.toNumber(k.multiCharOverflow)),ne=(0,_vue.computed)(()=>{var e=k.width,t={};return e&&(t.width=(0,_dom.toCssUnit)(e)),t}),ue=(0,_vue.computed)(()=>{var{height:e,width:t}=H.value,l={};return t&&(l.width=(0,_dom.toCssUnit)(t)),e&&(l.height=(0,_dom.toCssUnit)(e),l.maxHeight=(0,_dom.toCssUnit)(e)),l}),z=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t}=k;let l=[];return _xeUtils.default.isArray(e)?l=e:t?(0,_utils.eqEmptyValue)(e)||(l=-1<(""+e).indexOf(",")?(""+e).split(","):[e]):l=null==e?[]:[e],l}),re=(0,_vue.computed)(()=>{var e=k.remote,t=M.reactFlag,l=z.value;return(e&&t?l.map(e=>pe(e)):l.map(e=>fe(e))).join(", ")}),se=(0,_vue.computed)(()=>{var{remote:e,multiple:t}=k,l=M.reactFlag,a=oe.value,i=z.value;return e&&l?i.map(e=>pe(e)).join(", "):(e=i.map(e=>fe(e)),t&&0<a&&e.length>a?e.slice(0,a)+"...":e.join(", "))}),K=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=w[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],s=(e,t,l)=>{a(e,(0,_ui.createEvent)(l,{$select:N},t))},ce=e=>{a("update:modelValue",e)},ve=e=>{ce(e),s("default-change",{value:e},null)},c=()=>le.value.keyField||k.optionId||"_X_OPTION_KEY",Y=e=>{e=e[c()];return e?encodeURIComponent(e):""},de=e=>{var{multiple:t,max:l}=k;return!(!t||!l)&&e.length>=_xeUtils.default.toNumber(l)},pe=t=>{var e=k.lazyOptions,{remoteValMaps:l,optFullValMaps:a}=U;let i=F.value;var o=v.value,l=l[t]||a[t],a=l?l.item:null;if(a)return _xeUtils.default.toValueString(a[o]);if(e){l=e.find(e=>e[i]===t);if(l)return l[o]}return t},fe=t=>{var e=k.lazyOptions,l=U.optFullValMaps;let a=F.value;var i=v.value,l=M.reactFlag?l[t]:null;if(l)return l.item[i];if(e){l=e.find(e=>e[a]===t);if(l)return l[i]}return t},d=()=>{let{remote:e,modelValue:t,filterable:l}=k,a=M.searchValue,{fullData:i,optFullValMaps:o}=U,n=v.value,u=F.value;let r=te.value.filterMethod||k.filterMethod,s=(""+(a||"")).toLowerCase(),c=[];return(c=e?i.filter(isOptionVisible):l&&r?i.filter(e=>isOptionVisible(e)&&r({$select:N,group:null,option:e,searchValue:a,value:t})):l?i.filter(e=>isOptionVisible(e)&&(!s||-1<(""+(e[n]||e[u])).toLowerCase().indexOf(s))):i.filter(isOptionVisible)).forEach((e,t)=>{e=o[e[u]];e&&(e._index=t)}),U.afterVisibleList=c,(0,_vue.nextTick)()},ge=e=>{e&&(M.currentOption=e)},_e=()=>{var e=H.value.zIndex||k.zIndex;e?M.panelIndex=_xeUtils.default.toNumber(e):M.panelIndex<(0,_utils.getLastZIndex)()&&(M.panelIndex=(0,_utils.nextZIndex)())},p=()=>{let l=k.placement,a=M.panelIndex,i=P.value,o=A.value,n=W.value,u=H.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(i,o,{placement:u.placement||l,defaultPlacement:u.defaultPlacement,teleportTo:n}),t=Object.assign(e.style,{zIndex:a});M.panelStyle=t,M.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},he=()=>{(0,_vue.nextTick)(()=>{var{isAniVisible:e,visiblePanel:t}=M,l=U.optFullValMaps,a=z.value;a.length&&e&&t&&(e=M.reactFlag?l[""+a[0]]:null)&&(M.currentOption=e.item,ze(e.item))})},f=()=>{var{loading:e,filterable:t,remote:l}=k,{fullData:a,hpTimeout:i}=U,o=j.value,n=r.value;let u=z.value;e||o||(i&&(clearTimeout(i),U.hpTimeout=void 0),M.initialized||(M.initialized=!0),M.isActivated=!0,M.isAniVisible=!0,t&&(l&&n.enabled&&(n.autoLoad&&!a.length||a.length&&n.clearOnClose)?Ae:(d(),m))(),setTimeout(()=>{M.visiblePanel=!0,Ve(),x().then(()=>{(u&&u.length?he:b)()}),p()},10),setTimeout(()=>{x().then(()=>b())},100),_e(),p(),s("visible-change",{visible:!0},null))},g=e=>{var{filterable:t,remote:l}=k,a=te.value,i=r.value;l?i.clearOnClose&&(M.searchValue=""):t&&!a.clearOnClose||(M.searchValue=""),M.searchLoading=!1,M.visiblePanel=!1,U.hpTimeout=setTimeout(()=>{M.isAniVisible=!1},350),s("visible-change",{visible:!1},e||null)},u=(e,t,l)=>{ce(t),t!==k.modelValue&&(s("change",{value:t,option:l},e),i)&&T&&i.triggerItemEvent(e,T.itemConfig.field,t)},_=(e,t)=>{U.remoteValMaps={},u(e,t,null),s("clear",{value:t},e)},me=e=>{var t=k.emptyValue,e=e.$event;_(e,t),g(e)},be=e=>{var e=e.$event,{multiple:t,max:l,checkedClosable:a}=k,i=M.optList,o=F.value;if(t){var n=z.value.slice(0);for(let e=0;e<i.length;e++){let t=i[e][o];if(de(n)){_ui.VxeUI&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.select.overSizeErr",[l]),status:"warning"});break}n.some(e=>e===t)||n.push(t)}u(e,n,i[0]),a&&g(e),s("all-change",{value:n},e)}},xe=e=>{var{emptyValue:t,clearClosable:l}=k,e=e.$event;_(e,t),l&&g(e)},Ce=e=>{e=e.$event;g(e)},q=(t,l)=>{var e=k.multiple,a=U.remoteValMaps;let i=l[F.value];var o=a[i];if(M.visiblePanel){if(o?o.item=l:a[i]={key:Y(l),item:l,_index:-1},e){let e=[];o=z.value,a=_xeUtils.default.findIndexOf(o,e=>e===i);e=-1===a?o.concat([i]):o.filter(e=>e!==i),u(t,e,l)}else u(t,i,l),g(t);M.reactFlag++}},Ee=e=>{var t,l=M.visiblePanel,a=j.value,i=H.value.trigger;a||(a=P.value,t=A.value,M.isActivated=(0,_dom.getEventTargetNode)(e,a).flag||(0,_dom.getEventTargetNode)(e,t).flag,l&&!M.isActivated&&"manual"!==i&&g(e))},h=e=>{var t=e.disabled,e=Y(e);return!t&&!$e(e)},ye=(e,t)=>{var l=k.allowCreate,a=M.optList,{optFullValMaps:i,optAddMaps:o,afterVisibleList:n}=U,u=F.value;let r=n,s=0;if(l&&a.length&&(n=a[0],o[l=Y(n)])&&(s=1,r=[o[l]].concat(r)),!e)if(t)for(let e=0;e<r.length;e++){var c=r[e];if(h(c))return c}else for(let e=r.length-1;0<=e;e--){var v=r[e];if(h(v))return v}let d=0;a=e?i[e[u]]:null;if(-1<(d=a?a._index+s:d))if(t)for(let e=d+1;e<=r.length-1;e++){var p=r[e];if(h(p))return p}else if(0<d)for(let e=d-1;0<=e;e--){var f=r[e];if(h(f))return f}return null},Te=t=>{var{emptyValue:e,clearable:l}=k,{visiblePanel:a,currentOption:i}=M,o=j.value,n=H.value.trigger;if(!o){var o=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.TAB),u=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ENTER),r=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ESCAPE),s=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),c=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),v=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.DELETE);if(o&&(M.isActivated=!1),a){if(r||o)"manual"!==n&&g(t);else if(u)i&&(t.preventDefault(),t.stopPropagation(),q(t,i));else if(s||c){t.preventDefault();let e=ye(i,c);(e=e||ye(null,c))&&(ge(e),ze(e,c))}}else(s||c||u)&&M.isActivated&&(t.preventDefault(),f());M.isActivated&&v&&l&&_(t,e)}},Oe=e=>{var{visiblePanel:t,isActivated:l}=M,a=H.value.trigger;t&&"manual"!==a&&g(e),l&&(M.isActivated=!1),(t||l)&&(a=B.value)&&a.blur()},Ie=()=>{var e=M.visiblePanel;e&&p()},Se=()=>{var e=M.visiblePanel;e&&p()},Ve=()=>{k.filterable&&(0,_vue.nextTick)(()=>{var e=R.value;e&&e.focus()})},Le=e=>{var t=j.value,l=H.value.trigger;t||M.visiblePanel||l&&"default"!==l||(M.triggerFocusPanel=!0,f(),setTimeout(()=>{M.triggerFocusPanel=!1},500)),s("focus",{},e)},ke=e=>{var t=H.value.trigger;t&&"default"!==t||Ue(e),s("click",{triggerButton:!1,visible:M.visiblePanel},e)},we=e=>{M.isActivated=!1,s("blur",{},e)},Pe=e=>{var t=H.value.trigger;t&&"default"!==t&&"icon"!==t||Ue(e),s("click",{triggerButton:!0,visible:M.visiblePanel},e)},Be=e=>{M.searchValue=e},De=()=>{M.isActivated=!0},Ae=()=>{var{modelValue:e,remote:t}=k,l=M.searchValue,a=r.value,i=a.queryMethod||k.remoteMethod;t&&i&&a.enabled?(M.searchLoading=!0,Promise.resolve(i({$select:N,searchValue:l,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{M.searchLoading=!1,d(),m()})):(d(),m())},Me=_xeUtils.default.debounce(Ae,350,{trailing:!0}),Ue=e=>{e=e.$event;e.preventDefault(),M.triggerFocusPanel?M.triggerFocusPanel=!1:M.visiblePanel?g(e):f()},Ne=(e,t)=>!!t.disabled||!(!Q.value||e),je=()=>{var e=M.scrollYLoad,{scrollYStore:t,afterVisibleList:l}=U;M.bodyHeight=e?l.length*t.rowHeight:0,M.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},Fe=()=>{var{filterable:e,allowCreate:t}=k;let{scrollYLoad:l,searchValue:a}=M;var{optAddMaps:i,scrollYStore:o,afterVisibleList:n}=U;let u=v.value;var r=F.value,o=l?n.slice(o.startIndex,o.endIndex):n.slice(0);return e&&t&&a&&(o.some(e=>e[u]===a)||(n=i[a]||(0,_vue.reactive)({[c()]:a,[u]:a,[r]:a}),i[a]=n,o.unshift(n))),M.optList=o,(0,_vue.nextTick)()},m=()=>{Fe(),je()},He=()=>(0,_vue.nextTick)().then(()=>{var e=M.scrollYLoad,t=U.scrollYStore,l=$.value,a=ee.value;let i=0,o;(o=l?o||l.children[0]:o)&&(i=o.offsetHeight),i=Math.max(20,i),t.rowHeight=i,(e?(l=D.value,e=Math.max(8,l?Math.ceil(l.clientHeight/i):0),l=Math.max(0,Math.min(2,_xeUtils.default.toNumber(a.oSize))),t.offsetSize=l,t.visibleSize=e,t.endIndex=Math.max(t.startIndex,e+l,t.endIndex),m):je)()}),ze=(e,t)=>{var l,a,{optFullValMaps:i,scrollYStore:o}=U,i=i[e[F.value]];i&&(e=i.key,-1<(i=i._index))&&(l=D.value,a=A.value)&&(a=a.querySelector(`[optid='${e}']`),l)&&(a?(e=l.offsetHeight,t?Math.ceil(a.offsetTop+a.offsetHeight-l.scrollTop)>=e?l.scrollTop=a.offsetTop+a.offsetHeight-e:(a.offsetTop+1<l.scrollTop||a.offsetTop+1>l.scrollTop+l.clientHeight)&&(l.scrollTop=a.offsetTop-1):a.offsetTop+1<l.scrollTop||a.offsetTop+1>l.scrollTop+l.clientHeight?l.scrollTop=a.offsetTop-1:a.offsetTop+a.offsetHeight-l.scrollTop>e&&(l.scrollTop=a.offsetTop+a.offsetHeight-e)):l.scrollTop=t?i*o.rowHeight-l.clientHeight+o.rowHeight:i*o.rowHeight)},Ke=(e,t)=>{var l=D.value;return l&&(_xeUtils.default.isNumber(e)&&(l.scrollLeft=e),_xeUtils.default.isNumber(t))&&(l.scrollTop=t),M.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},b=()=>{let{lastScrollLeft:e,lastScrollTop:t}=U;return o().then(()=>{if(e||t)return U.lastScrollLeft=0,U.lastScrollTop=0,Ke(e,t)})},x=()=>{var e=P.value;return e&&e.clientWidth&&e.clientHeight?He():Promise.resolve()},Ye=e=>{var t=U.scrollYStore,{startIndex:l,endIndex:a,visibleSize:i,offsetSize:o,rowHeight:n}=t,e=e.target.scrollTop,e=Math.floor(e/n),n=Math.max(0,e-1-o),o=e+i+o;!(e<=l||a-i-1<=e)||l===n&&a===o||(t.startIndex=n,t.endIndex=o,m())},qe=()=>{var e=U.lastScrollTime;return!!(e&&Date.now()<e+250)},Re=e=>{var t=e.target,l=t.scrollTop,t=t.scrollLeft,a=t!==U.lastScrollLeft,i=l!==U.lastScrollTop;U.lastScrollTop=l,U.lastScrollLeft=t,M.scrollYLoad&&Ye(e),U.lastScrollTime=Date.now(),s("scroll",{scrollLeft:t,scrollTop:l,isX:a,isY:i},e)},l=t=>{(e=>{let t=L.value,l=F.value,a=c(),i={},o={},n=[],u=e=>{n.push(e);let t=Y(e);t||(t=getOptUniqueId(),e[a]=t),o[e[l]]={key:t,item:e,_index:-1}};e.forEach(e=>{u(e),e[t]&&(i[e[a]]=e)[t].forEach(u)}),U.fullData=n,U.optGroupKeyMaps=i,U.optFullValMaps=o,M.reactFlag++,d()})(t||[]);var e=k.multiple,{isLoaded:l,fullData:a,scrollYStore:i}=U,o=I.value,n=ee.value;let u=F.value;if(Object.assign(i,{startIndex:0,endIndex:1,visibleSize:0}),U.synchData=t||[],M.scrollYLoad=!!n.enabled&&-1<n.gt&&(0===n.gt||n.gt<=a.length),Fe(),!l){i=o.selectMode;if(0<t.length&&_xeUtils.default.eqNull(k.modelValue)){if("all"===i)e?(0,_vue.nextTick)(()=>{ve(t.map(e=>e[u]))}):errLog("vxe.error.notConflictProp",["default-config.selectMode=all","multiple=true"]);else if("first"===i||"last"===i){let e=_xeUtils.default[i](t);e&&(0,_vue.nextTick)(()=>{_xeUtils.default.eqNull(k.modelValue)&&ve(e[u])})}U.isLoaded=!0}}return He().then(()=>{b()})},o=()=>{var e=D.value;return e&&(e.scrollTop=0,e.scrollLeft=0),U.lastScrollTop=0,(U.lastScrollLeft=0,_vue.nextTick)()},$e=e=>{var t=U.optGroupKeyMaps;return!!t[e]};t={dispatchEvent:s,loadData:l,reloadData(e){return U.isLoaded=!1,o(),l(e)},isPanelVisible(){return M.visiblePanel},togglePanel(){return(M.visiblePanel?g:f)(),(0,_vue.nextTick)()},hidePanel(){return M.visiblePanel&&g(),(0,_vue.nextTick)()},showPanel(){return M.visiblePanel||f(),(0,_vue.nextTick)()},refreshOption(){return d(),m(),(0,_vue.nextTick)()},focus(){var e=B.value;return e&&e.blur(),M.isActivated=!0,(0,_vue.nextTick)()},blur(){var e=B.value;return e&&e.blur(),(M.isActivated=!1,_vue.nextTick)()},recalculate:x,clearScroll:o};Object.assign(N,t);let Ge=(t,l,e,a)=>{var{showIcon:i,trigger:o}=ae.value;return l||!1===i?(0,_ui.renderEmptyElement)(N):(i={},o&&"default"!==o||(i.onClick=e=>{a||l||q(e,t)}),(0,_vue.h)("div",Object.assign({key:2,class:["vxe-select-option--radio",{"is--checked":e,"is--disabled":a}]},i),[(0,_vue.h)("span",{class:["vxe-radio--icon",e?(0,_ui.getIcon)().RADIO_CHECKED:a?(0,_ui.getIcon)().RADIO_DISABLED_UNCHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})]))},Xe=(t,l,e,a)=>{var{showIcon:i,trigger:o}=ie.value;return l||!1===i?(0,_ui.renderEmptyElement)(N):(i={},o&&"default"!==o||(i.onClick=e=>{a||l||q(e,t)}),(0,_vue.h)("div",Object.assign({key:3,class:["vxe-select-option--checkbox",{"is--checked":e,"is--disabled":a}]},i),[(0,_vue.h)("span",{class:["vxe-checkbox--icon",e?(0,_ui.getIcon)().CHECKBOX_CHECKED:a?(0,_ui.getIcon)().CHECKBOX_DISABLED_UNCHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})]))},We=e=>{let{allowCreate:g,optionKey:_,multiple:t,showRadio:l,showCheckbox:a}=k,h=M.currentOption,m=U.optAddMaps;var i=le.value;let b=v.value,x=F.value,C=J.value,E=z.value,y=ae.value,T=ie.value,{useKey:O,height:I}=i,S=w.option,V=a&&t,L=l&&!t;return e.map((t,e)=>{var{slots:l,className:a}=t,i=Y(t),o=t[x];let n=$e(i);var u=!(!g||!m[i]),r=!u&&-1<E.indexOf(o),s=u||!n||isOptionVisible(t);let c=!u&&Ne(r,t);var l=(l?l.default:null)||S,v={option:t,group:n?t:null,$select:N};let d="";var p=[];V?p.push(Xe(t,n,r,c)):L&&p.push(Ge(t,n,r,c));let f=[];f=l?K(l,v):[d=(0,_utils.getFuncText)(t[n?C:b]||o)],p.push((0,_vue.h)("div",{key:1,class:"vxe-select-option--label"},f));l={onMousedown:e=>{0===e.button&&e.stopPropagation()},onMouseenter:()=>{c||n||qe()||ge(t)}};return(V?"option"!==T.trigger:L&&"option"!==y.trigger)||(l.onClick=e=>{c||n||q(e,t)}),s?(0,_vue.h)("div",Object.assign({key:O||_?i:e,class:["vxe-select-option",a?_xeUtils.default.isFunction(a)?a(v):a:"",{"vxe-select-optgroup":n,"is--disabled":c,"is--selected":r,"is--add":u,"is--hover":h&&Y(h)===i}],optid:i,title:d||null,style:I?{height:(0,_dom.toCssUnit)(I)}:void 0},l),g?[(0,_vue.h)("div",{key:1,class:"vxe-select-option--add-label"},p),u?(0,_vue.h)("div",{key:2,class:"vxe-select-option--add-icon"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().SELECT_ADD_OPTION})]):(0,_ui.renderEmptyElement)(N)]:p):(0,_ui.renderEmptyElement)(N)})};return(0,_vue.watch)(()=>M.staticOptions,e=>{l(e)}),(0,_vue.watch)(()=>k.options,e=>{l(e||[])}),(0,_vue.watch)(()=>k.optionGroups,e=>{l(e||[])}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=k;t?l(t):e&&l(e)}),_ui.globalEvents.on(N,"mousedown",Ee),_ui.globalEvents.on(N,"keydown",Te),_ui.globalEvents.on(N,"blur",Oe),_ui.globalEvents.on(N,"resize",Ie),_ui.globalEvents.on(N,"scroll",Se)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(N,"mousedown"),_ui.globalEvents.off(N,"keydown"),_ui.globalEvents.off(N,"blur"),_ui.globalEvents.off(N,"resize"),_ui.globalEvents.off(N,"scroll"),_xeUtils.default.assign(M,createReactData()),_xeUtils.default.assign(U,createInternalData())}),(0,_vue.provide)("$xeSelect",N),N.renderVN=()=>{var{className:e,multiple:t,loading:l,filterable:a,showTotalButton:i,showCheckedButton:o,showClearButton:n,showCloseButton:u}=k,{initialized:r,isActivated:s,isAniVisible:c,optList:v,visiblePanel:d,bodyHeight:p,topSpaceHeight:f}=M,g=G.value,_=j.value,h=se.value,m=re.value,b=W.value,x=X.value,C=Z.value,E=w.default;if(x)return(0,_vue.h)("div",{ref:P,class:["vxe-select--readonly",e]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)("span",{class:"vxe-select-label",title:m},h)]);var x=ne.value,y=z.value,T=ue.value,O=H.value,I=w.header,S=w.footer;let V=w.prefix;var L=O.appendTo,O=O.className||k.popupClassName;return(0,_vue.h)("div",{ref:P,class:["vxe-select",e?_xeUtils.default.isFunction(e)?e({$select:N}):e:"",{["size--"+g]:g,"is--visible":d,"is--disabled":_,"is--filter":a,"is--loading":l,"is--active":s}],style:x},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)(_input.default,{ref:B,clearable:k.clearable,placeholder:C,editable:!1,disabled:_,type:"text",prefixIcon:k.prefixIcon,suffixIcon:l?(0,_ui.getIcon)().SELECT_LOADED:d?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,autoFocus:!1,title:m,modelValue:h,onClear:me,onClick:ke,onFocus:Le,onBlur:we,onSuffixClick:Pe},V?{prefix:()=>V({})}:{}),(0,_vue.h)(_vue.Teleport,{to:(0,_dom.getPopupContainer)(L),disabled:!b||!r},[(0,_vue.h)("div",{ref:A,class:["vxe-table--ignore-clear vxe-select--panel",O?_xeUtils.default.isFunction(O)?O({$select:N}):O:"",{["size--"+g]:g,"is--transfer":b,"ani--leave":!l&&c,"ani--enter":!l&&d}],placement:M.panelPlacement,style:M.panelStyle},r&&(d||c)?[(0,_vue.h)("div",{class:"vxe-select--panel-wrapper",style:T},[a?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:R,class:"vxe-select-search--input",modelValue:M.searchValue,type:"text",clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":Be,onFocus:De,onChange:Me,onSearch:Me})]):(0,_ui.renderEmptyElement)(N),o&&t||n||I?(0,_vue.h)("div",{class:"vxe-select--panel-header"},I?K(I,{}):[(0,_vue.h)("div",{class:"vxe-select--header-button"},[(0,_vue.h)("div",{class:"vxe-select--header-btns"},[o&&t?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.allChecked"),mode:"text",onClick:be}):(0,_ui.renderEmptyElement)(N),n?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.clear"),mode:"text",onClick:xe}):(0,_ui.renderEmptyElement)(N)])])]):(0,_ui.renderEmptyElement)(N),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:D,class:"vxe-select-option--wrapper",onScroll:Re},[(0,_vue.h)("div",{class:"vxe-select--y-space",style:{height:p?p+"px":""}}),(0,_vue.h)("div",{ref:$,class:"vxe-select--body",style:{marginTop:f+"px"}},(()=>{var{optList:e,searchLoading:t}=M;return t?[(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"))])]:e.length?We(e):[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},k.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())])]),S||i||u&&t?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},S?K(S,{}):[(0,_vue.h)("div",{class:"vxe-select--footer-button"},[i?(0,_vue.h)("div",{class:"vxe-select--total-btns"},(0,_ui.getI18n)("vxe.select.total",[y.length,v.length])):(0,_ui.renderEmptyElement)(N),u&&t?(0,_vue.h)("div",{class:"vxe-select--oper-btns"},[(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.close"),mode:"text",onClick:Ce})]):(0,_ui.renderEmptyElement)(N)])]):(0,_ui.renderEmptyElement)(N)])]:[])])])},N},render(){return this.renderVN()}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log"),_input=_interopRequireDefault(require("../../input")),_button=_interopRequireDefault(require("../../button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let errLog=(0,_log.createComponentLog)("select").errLog;function isOptionVisible(e){return!1!==e.visible}function getOptUniqueId(){return _xeUtils.default.uniqueId("opt_")}function createReactData(){return{initialized:!1,scrollYLoad:!1,bodyHeight:0,topSpaceHeight:0,optList:[],staticOptions:[],reactFlag:0,currentOption:null,searchValue:"",searchLoading:!1,panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1}}function createInternalData(){return{synchData:[],fullData:[],afterVisibleList:[],optAddMaps:{},optGroupKeyMaps:{},optFullValMaps:{},remoteValMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},lastScrollTime:0,hpTimeout:void 0}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeSelect",props:{modelValue:[String,Number,Boolean,Array],defaultConfig:Object,emptyValue:{type:[String,Number,Boolean,Array],default:()=>(0,_ui.getConfig)().select.emptyValue},clearable:{type:Boolean,default:()=>(0,_ui.getConfig)().select.clearable},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,allowCreate:{type:Boolean,default:()=>(0,_ui.getConfig)().select.allowCreate},placement:String,lazyOptions:Array,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],popupClassName:[String,Function],width:[String,Number],max:{type:[String,Number],default:null},showRadio:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showRadio},radioConfig:Object,showCheckbox:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showCheckedButton},checkboxConfig:Object,zIndex:Number,size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},filterable:Boolean,filterMethod:Function,filterConfig:Object,remote:Boolean,remoteConfig:Object,emptyText:String,checkedClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().select.checkedClosable},clearClosable:{type:Boolean,default:()=>(0,_ui.getConfig)().select.clearClosable},showCloseButton:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showCloseButton},showTotalButton:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showTotalButton},showCheckedButton:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showCheckedButton},showClearButton:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showClearButton},transfer:{type:Boolean,default:null},popupConfig:Object,virtualYConfig:Object,scrollY:Object,remoteMethod:Function,optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean},emits:["update:modelValue","change","default-change","all-change","clear","blur","focus","click","scroll","visible-change"],setup(k,e){let{slots:w,emit:a}=e,n=(0,_vue.inject)("$xeModal",null),C=(0,_vue.inject)("$xeDrawer",null),E=(0,_vue.inject)("$xeTable",null),y=(0,_vue.inject)("$xeCard",null),i=(0,_vue.inject)("$xeForm",null),T=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();let P=(0,_vue.ref)(),B=(0,_vue.ref)(),R=(0,_vue.ref)(),D=(0,_vue.ref)(),A=(0,_vue.ref)(),$=(0,_vue.ref)(),G=(0,_ui.useSize)(k).computeSize,M=(0,_vue.reactive)(createReactData()),U=createInternalData(),O={refElem:P},N={xID:t,props:k,context:e,reactData:M,internalData:U,getRefMaps:()=>O},X=(0,_vue.computed)(()=>{var e=k.readonly;return null===e?!!i&&i.props.readonly:e}),j=(0,_vue.computed)(()=>{var e=k.disabled;return null===e?!!i&&i.props.disabled:e}),W=(0,_vue.computed)(()=>{var e=k.transfer,t=H.value;if(_xeUtils.default.isBoolean(t.transfer))return t.transfer;if(null===e){t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(E||n||C||y||i)return!0}return e}),Z=(0,_vue.computed)(()=>{var e=k.placeholder;return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),I=(0,_vue.computed)(()=>Object.assign({},k.defaultConfig)),S=(0,_vue.computed)(()=>Object.assign({},k.optionProps)),V=(0,_vue.computed)(()=>Object.assign({},k.optionGroupProps)),v=(0,_vue.computed)(()=>S.value.label||"label"),F=(0,_vue.computed)(()=>S.value.value||"value"),J=(0,_vue.computed)(()=>V.value.label||"label"),L=(0,_vue.computed)(()=>V.value.options||"options"),Q=(0,_vue.computed)(()=>{var e=z.value;return de(e)}),H=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.popupConfig,k.popupConfig)),ee=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.virtualYConfig||(0,_ui.getConfig)().select.scrollY,k.virtualYConfig||k.scrollY)),r=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.remoteConfig,k.remoteConfig)),te=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.filterConfig,k.filterConfig)),le=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,k.optionConfig)),ae=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.radioConfig,k.radioConfig)),ie=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.checkboxConfig,k.checkboxConfig)),oe=(0,_vue.computed)(()=>_xeUtils.default.toNumber(k.multiCharOverflow)),ne=(0,_vue.computed)(()=>{var e=k.width,t={};return e&&(t.width=(0,_dom.toCssUnit)(e)),t}),ue=(0,_vue.computed)(()=>{var{height:e,width:t}=H.value,l={};return t&&(l.width=(0,_dom.toCssUnit)(t)),e&&(l.height=(0,_dom.toCssUnit)(e),l.maxHeight=(0,_dom.toCssUnit)(e)),l}),z=(0,_vue.computed)(()=>{var{modelValue:e,multiple:t}=k;let l=[];return _xeUtils.default.isArray(e)?l=e:t?(0,_utils.eqEmptyValue)(e)||(l=-1<(""+e).indexOf(",")?(""+e).split(","):[e]):l=null==e?[]:[e],l}),re=(0,_vue.computed)(()=>{var e=k.remote,t=M.reactFlag,l=z.value;return(e&&t?l.map(e=>pe(e)):l.map(e=>fe(e))).join(", ")}),se=(0,_vue.computed)(()=>{var{remote:e,multiple:t}=k,l=M.reactFlag,a=oe.value,i=z.value;return e&&l?i.map(e=>pe(e)).join(", "):(e=i.map(e=>fe(e)),t&&0<a&&e.length>a?e.slice(0,a)+"...":e.join(", "))}),K=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=w[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],s=(e,t,l)=>{a(e,(0,_ui.createEvent)(l,{$select:N},t))},ce=e=>{a("update:modelValue",e)},ve=e=>{ce(e),s("default-change",{value:e},null)},c=()=>le.value.keyField||k.optionId||"_X_OPTION_KEY",Y=e=>{e=e[c()];return e?encodeURIComponent(e):""},de=e=>{var{multiple:t,max:l}=k;return!(!t||!l)&&e.length>=_xeUtils.default.toNumber(l)},pe=t=>{var e=k.lazyOptions,{remoteValMaps:l,optFullValMaps:a}=U;let i=F.value;var o=v.value,l=l[t]||a[t],a=l?l.item:null;if(a)return _xeUtils.default.toValueString(a[o]);if(e){l=e.find(e=>e[i]===t);if(l)return l[o]}return t},fe=t=>{var e=k.lazyOptions,l=U.optFullValMaps;let a=F.value;var i=v.value,l=M.reactFlag?l[t]:null;if(l)return l.item[i];if(e){l=e.find(e=>e[a]===t);if(l)return l[i]}return t},d=()=>{let{remote:e,modelValue:t,filterable:l}=k,a=M.searchValue,{fullData:i,optFullValMaps:o}=U,n=v.value,u=F.value;let r=te.value.filterMethod||k.filterMethod,s=(""+(a||"")).toLowerCase(),c=[];return(c=e?i.filter(isOptionVisible):l&&r?i.filter(e=>isOptionVisible(e)&&r({$select:N,group:null,option:e,searchValue:a,value:t})):l?i.filter(e=>isOptionVisible(e)&&(!s||-1<(""+(e[n]||e[u])).toLowerCase().indexOf(s))):i.filter(isOptionVisible)).forEach((e,t)=>{e=o[e[u]];e&&(e._index=t)}),U.afterVisibleList=c,(0,_vue.nextTick)()},ge=e=>{e&&(M.currentOption=e)},_e=()=>{var e=H.value.zIndex||k.zIndex;e?M.panelIndex=_xeUtils.default.toNumber(e):M.panelIndex<(0,_utils.getLastZIndex)()&&(M.panelIndex=(0,_utils.nextZIndex)())},p=()=>{let l=k.placement,a=M.panelIndex,i=P.value,o=A.value,n=W.value,u=H.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(i,o,{placement:u.placement||l,defaultPlacement:u.defaultPlacement,appendTo:u.appendTo,teleportTo:n}),t=Object.assign(e.style,{zIndex:a});M.panelStyle=t,M.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},he=()=>{(0,_vue.nextTick)(()=>{var{isAniVisible:e,visiblePanel:t}=M,l=U.optFullValMaps,a=z.value;a.length&&e&&t&&(e=M.reactFlag?l[""+a[0]]:null)&&(M.currentOption=e.item,ze(e.item))})},f=()=>{var{loading:e,filterable:t,remote:l}=k,{fullData:a,hpTimeout:i}=U,o=j.value,n=r.value;let u=z.value;e||o||(i&&(clearTimeout(i),U.hpTimeout=void 0),M.initialized||(M.initialized=!0),M.isActivated=!0,M.isAniVisible=!0,t&&(l&&n.enabled&&(n.autoLoad&&!a.length||a.length&&n.clearOnClose)?Ae:(d(),m))(),setTimeout(()=>{M.visiblePanel=!0,Ve(),x().then(()=>{(u&&u.length?he:b)()}),p()},10),setTimeout(()=>{x().then(()=>b())},100),_e(),p(),s("visible-change",{visible:!0},null))},g=e=>{var{filterable:t,remote:l}=k,a=te.value,i=r.value;l?i.clearOnClose&&(M.searchValue=""):t&&!a.clearOnClose||(M.searchValue=""),M.searchLoading=!1,M.visiblePanel=!1,U.hpTimeout=setTimeout(()=>{M.isAniVisible=!1},350),s("visible-change",{visible:!1},e||null)},u=(e,t,l)=>{ce(t),t!==k.modelValue&&(s("change",{value:t,option:l},e),i)&&T&&i.triggerItemEvent(e,T.itemConfig.field,t)},_=(e,t)=>{U.remoteValMaps={},u(e,t,null),s("clear",{value:t},e)},me=e=>{var t=k.emptyValue,e=e.$event;_(e,t),g(e)},be=e=>{var e=e.$event,{multiple:t,max:l,checkedClosable:a}=k,i=M.optList,o=F.value;if(t){var n=z.value.slice(0);for(let e=0;e<i.length;e++){let t=i[e][o];if(de(n)){_ui.VxeUI&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.select.overSizeErr",[l]),status:"warning"});break}n.some(e=>e===t)||n.push(t)}u(e,n,i[0]),a&&g(e),s("all-change",{value:n},e)}},xe=e=>{var{emptyValue:t,clearClosable:l}=k,e=e.$event;_(e,t),l&&g(e)},Ce=e=>{e=e.$event;g(e)},q=(t,l)=>{var e=k.multiple,a=U.remoteValMaps;let i=l[F.value];var o=a[i];if(M.visiblePanel){if(o?o.item=l:a[i]={key:Y(l),item:l,_index:-1},e){let e=[];o=z.value,a=_xeUtils.default.findIndexOf(o,e=>e===i);e=-1===a?o.concat([i]):o.filter(e=>e!==i),u(t,e,l)}else u(t,i,l),g(t);M.reactFlag++}},Ee=e=>{var t,l=M.visiblePanel,a=j.value,i=H.value.trigger;a||(a=P.value,t=A.value,M.isActivated=(0,_dom.getEventTargetNode)(e,a).flag||(0,_dom.getEventTargetNode)(e,t).flag,l&&!M.isActivated&&"manual"!==i&&g(e))},h=e=>{var t=e.disabled,e=Y(e);return!t&&!$e(e)},ye=(e,t)=>{var l=k.allowCreate,a=M.optList,{optFullValMaps:i,optAddMaps:o,afterVisibleList:n}=U,u=F.value;let r=n,s=0;if(l&&a.length&&(n=a[0],o[l=Y(n)])&&(s=1,r=[o[l]].concat(r)),!e)if(t)for(let e=0;e<r.length;e++){var c=r[e];if(h(c))return c}else for(let e=r.length-1;0<=e;e--){var v=r[e];if(h(v))return v}let d=0;a=e?i[e[u]]:null;if(-1<(d=a?a._index+s:d))if(t)for(let e=d+1;e<=r.length-1;e++){var p=r[e];if(h(p))return p}else if(0<d)for(let e=d-1;0<=e;e--){var f=r[e];if(h(f))return f}return null},Te=t=>{var{emptyValue:e,clearable:l}=k,{visiblePanel:a,currentOption:i}=M,o=j.value,n=H.value.trigger;if(!o){var o=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.TAB),u=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ENTER),r=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ESCAPE),s=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),c=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),v=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.DELETE);if(o&&(M.isActivated=!1),a){if(r||o)"manual"!==n&&g(t);else if(u)i&&(t.preventDefault(),t.stopPropagation(),q(t,i));else if(s||c){t.preventDefault();let e=ye(i,c);(e=e||ye(null,c))&&(ge(e),ze(e,c))}}else(s||c||u)&&M.isActivated&&(t.preventDefault(),f());M.isActivated&&v&&l&&_(t,e)}},Oe=e=>{var{visiblePanel:t,isActivated:l}=M,a=H.value.trigger;t&&"manual"!==a&&g(e),l&&(M.isActivated=!1),(t||l)&&(a=B.value)&&a.blur()},Ie=()=>{var e=M.visiblePanel;e&&p()},Se=()=>{var e=M.visiblePanel;e&&p()},Ve=()=>{k.filterable&&(0,_vue.nextTick)(()=>{var e=R.value;e&&e.focus()})},Le=e=>{var t=j.value,l=H.value.trigger;t||M.visiblePanel||l&&"default"!==l||(M.triggerFocusPanel=!0,f(),setTimeout(()=>{M.triggerFocusPanel=!1},500)),s("focus",{},e)},ke=e=>{var t=H.value.trigger;t&&"default"!==t||Ue(e),s("click",{triggerButton:!1,visible:M.visiblePanel},e)},we=e=>{M.isActivated=!1,s("blur",{},e)},Pe=e=>{var t=H.value.trigger;t&&"default"!==t&&"icon"!==t||Ue(e),s("click",{triggerButton:!0,visible:M.visiblePanel},e)},Be=e=>{M.searchValue=e},De=()=>{M.isActivated=!0},Ae=()=>{var{modelValue:e,remote:t}=k,l=M.searchValue,a=r.value,i=a.queryMethod||k.remoteMethod;t&&i&&a.enabled?(M.searchLoading=!0,Promise.resolve(i({$select:N,searchValue:l,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{M.searchLoading=!1,d(),m()})):(d(),m())},Me=_xeUtils.default.debounce(Ae,350,{trailing:!0}),Ue=e=>{e=e.$event;e.preventDefault(),M.triggerFocusPanel?M.triggerFocusPanel=!1:M.visiblePanel?g(e):f()},Ne=(e,t)=>!!t.disabled||!(!Q.value||e),je=()=>{var e=M.scrollYLoad,{scrollYStore:t,afterVisibleList:l}=U;M.bodyHeight=e?l.length*t.rowHeight:0,M.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},Fe=()=>{var{filterable:e,allowCreate:t}=k;let{scrollYLoad:l,searchValue:a}=M;var{optAddMaps:i,scrollYStore:o,afterVisibleList:n}=U;let u=v.value;var r=F.value,o=l?n.slice(o.startIndex,o.endIndex):n.slice(0);return e&&t&&a&&(o.some(e=>e[u]===a)||(n=i[a]||(0,_vue.reactive)({[c()]:a,[u]:a,[r]:a}),i[a]=n,o.unshift(n))),M.optList=o,(0,_vue.nextTick)()},m=()=>{Fe(),je()},He=()=>(0,_vue.nextTick)().then(()=>{var e=M.scrollYLoad,t=U.scrollYStore,l=$.value,a=ee.value;let i=0,o;(o=l?o||l.children[0]:o)&&(i=o.offsetHeight),i=Math.max(20,i),t.rowHeight=i,(e?(l=D.value,e=Math.max(8,l?Math.ceil(l.clientHeight/i):0),l=Math.max(0,Math.min(2,_xeUtils.default.toNumber(a.oSize))),t.offsetSize=l,t.visibleSize=e,t.endIndex=Math.max(t.startIndex,e+l,t.endIndex),m):je)()}),ze=(e,t)=>{var l,a,{optFullValMaps:i,scrollYStore:o}=U,i=i[e[F.value]];i&&(e=i.key,-1<(i=i._index))&&(l=D.value,a=A.value)&&(a=a.querySelector(`[optid='${e}']`),l)&&(a?(e=l.offsetHeight,t?Math.ceil(a.offsetTop+a.offsetHeight-l.scrollTop)>=e?l.scrollTop=a.offsetTop+a.offsetHeight-e:(a.offsetTop+1<l.scrollTop||a.offsetTop+1>l.scrollTop+l.clientHeight)&&(l.scrollTop=a.offsetTop-1):a.offsetTop+1<l.scrollTop||a.offsetTop+1>l.scrollTop+l.clientHeight?l.scrollTop=a.offsetTop-1:a.offsetTop+a.offsetHeight-l.scrollTop>e&&(l.scrollTop=a.offsetTop+a.offsetHeight-e)):l.scrollTop=t?i*o.rowHeight-l.clientHeight+o.rowHeight:i*o.rowHeight)},Ke=(e,t)=>{var l=D.value;return l&&(_xeUtils.default.isNumber(e)&&(l.scrollLeft=e),_xeUtils.default.isNumber(t))&&(l.scrollTop=t),M.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},b=()=>{let{lastScrollLeft:e,lastScrollTop:t}=U;return o().then(()=>{if(e||t)return U.lastScrollLeft=0,U.lastScrollTop=0,Ke(e,t)})},x=()=>{var e=P.value;return e&&e.clientWidth&&e.clientHeight?He():Promise.resolve()},Ye=e=>{var t=U.scrollYStore,{startIndex:l,endIndex:a,visibleSize:i,offsetSize:o,rowHeight:n}=t,e=e.target.scrollTop,e=Math.floor(e/n),n=Math.max(0,e-1-o),o=e+i+o;!(e<=l||a-i-1<=e)||l===n&&a===o||(t.startIndex=n,t.endIndex=o,m())},qe=()=>{var e=U.lastScrollTime;return!!(e&&Date.now()<e+250)},Re=e=>{var t=e.target,l=t.scrollTop,t=t.scrollLeft,a=t!==U.lastScrollLeft,i=l!==U.lastScrollTop;U.lastScrollTop=l,U.lastScrollLeft=t,M.scrollYLoad&&Ye(e),U.lastScrollTime=Date.now(),s("scroll",{scrollLeft:t,scrollTop:l,isX:a,isY:i},e)},l=t=>{(e=>{let t=L.value,l=F.value,a=c(),i={},o={},n=[],u=e=>{n.push(e);let t=Y(e);t||(t=getOptUniqueId(),e[a]=t),o[e[l]]={key:t,item:e,_index:-1}};e.forEach(e=>{u(e),e[t]&&(i[e[a]]=e)[t].forEach(u)}),U.fullData=n,U.optGroupKeyMaps=i,U.optFullValMaps=o,M.reactFlag++,d()})(t||[]);var e=k.multiple,{isLoaded:l,fullData:a,scrollYStore:i}=U,o=I.value,n=ee.value;let u=F.value;if(Object.assign(i,{startIndex:0,endIndex:1,visibleSize:0}),U.synchData=t||[],M.scrollYLoad=!!n.enabled&&-1<n.gt&&(0===n.gt||n.gt<=a.length),Fe(),!l){i=o.selectMode;if(0<t.length&&_xeUtils.default.eqNull(k.modelValue)){if("all"===i)e?(0,_vue.nextTick)(()=>{ve(t.map(e=>e[u]))}):errLog("vxe.error.notConflictProp",["default-config.selectMode=all","multiple=true"]);else if("first"===i||"last"===i){let e=_xeUtils.default[i](t);e&&(0,_vue.nextTick)(()=>{_xeUtils.default.eqNull(k.modelValue)&&ve(e[u])})}U.isLoaded=!0}}return He().then(()=>{b()})},o=()=>{var e=D.value;return e&&(e.scrollTop=0,e.scrollLeft=0),U.lastScrollTop=0,(U.lastScrollLeft=0,_vue.nextTick)()},$e=e=>{var t=U.optGroupKeyMaps;return!!t[e]};t={dispatchEvent:s,loadData:l,reloadData(e){return U.isLoaded=!1,o(),l(e)},isPanelVisible(){return M.visiblePanel},togglePanel(){return(M.visiblePanel?g:f)(),(0,_vue.nextTick)()},hidePanel(){return M.visiblePanel&&g(),(0,_vue.nextTick)()},showPanel(){return M.visiblePanel||f(),(0,_vue.nextTick)()},refreshOption(){return d(),m(),(0,_vue.nextTick)()},focus(){var e=B.value;return e&&e.blur(),M.isActivated=!0,(0,_vue.nextTick)()},blur(){var e=B.value;return e&&e.blur(),(M.isActivated=!1,_vue.nextTick)()},recalculate:x,clearScroll:o};Object.assign(N,t);let Ge=(t,l,e,a)=>{var{showIcon:i,trigger:o}=ae.value;return l||!1===i?(0,_ui.renderEmptyElement)(N):(i={},o&&"default"!==o||(i.onClick=e=>{a||l||q(e,t)}),(0,_vue.h)("div",Object.assign({key:2,class:["vxe-select-option--radio",{"is--checked":e,"is--disabled":a}]},i),[(0,_vue.h)("span",{class:["vxe-radio--icon",e?(0,_ui.getIcon)().RADIO_CHECKED:a?(0,_ui.getIcon)().RADIO_DISABLED_UNCHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]})]))},Xe=(t,l,e,a)=>{var{showIcon:i,trigger:o}=ie.value;return l||!1===i?(0,_ui.renderEmptyElement)(N):(i={},o&&"default"!==o||(i.onClick=e=>{a||l||q(e,t)}),(0,_vue.h)("div",Object.assign({key:3,class:["vxe-select-option--checkbox",{"is--checked":e,"is--disabled":a}]},i),[(0,_vue.h)("span",{class:["vxe-checkbox--icon",e?(0,_ui.getIcon)().CHECKBOX_CHECKED:a?(0,_ui.getIcon)().CHECKBOX_DISABLED_UNCHECKED:(0,_ui.getIcon)().CHECKBOX_UNCHECKED]})]))},We=e=>{let{allowCreate:g,optionKey:_,multiple:t,showRadio:l,showCheckbox:a}=k,h=M.currentOption,m=U.optAddMaps;var i=le.value;let b=v.value,x=F.value,C=J.value,E=z.value,y=ae.value,T=ie.value,{useKey:O,height:I}=i,S=w.option,V=a&&t,L=l&&!t;return e.map((t,e)=>{var{slots:l,className:a}=t,i=Y(t),o=t[x];let n=$e(i);var u=!(!g||!m[i]),r=!u&&-1<E.indexOf(o),s=u||!n||isOptionVisible(t);let c=!u&&Ne(r,t);var l=(l?l.default:null)||S,v={option:t,group:n?t:null,$select:N};let d="";var p=[];V?p.push(Xe(t,n,r,c)):L&&p.push(Ge(t,n,r,c));let f=[];f=l?K(l,v):[d=(0,_utils.getFuncText)(t[n?C:b]||o)],p.push((0,_vue.h)("div",{key:1,class:"vxe-select-option--label"},f));l={onMousedown:e=>{0===e.button&&e.stopPropagation()},onMouseenter:()=>{c||n||qe()||ge(t)}};return(V?"option"!==T.trigger:L&&"option"!==y.trigger)||(l.onClick=e=>{c||n||q(e,t)}),s?(0,_vue.h)("div",Object.assign({key:O||_?i:e,class:["vxe-select-option",a?_xeUtils.default.isFunction(a)?a(v):a:"",{"vxe-select-optgroup":n,"is--disabled":c,"is--selected":r,"is--add":u,"is--hover":h&&Y(h)===i}],optid:i,title:d||null,style:I?{height:(0,_dom.toCssUnit)(I)}:void 0},l),g?[(0,_vue.h)("div",{key:1,class:"vxe-select-option--add-label"},p),u?(0,_vue.h)("div",{key:2,class:"vxe-select-option--add-icon"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().SELECT_ADD_OPTION})]):(0,_ui.renderEmptyElement)(N)]:p):(0,_ui.renderEmptyElement)(N)})};return(0,_vue.watch)(()=>M.staticOptions,e=>{l(e)}),(0,_vue.watch)(()=>k.options,e=>{l(e||[])}),(0,_vue.watch)(()=>k.optionGroups,e=>{l(e||[])}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=k;t?l(t):e&&l(e)}),_ui.globalEvents.on(N,"mousedown",Ee),_ui.globalEvents.on(N,"keydown",Te),_ui.globalEvents.on(N,"blur",Oe),_ui.globalEvents.on(N,"resize",Ie),_ui.globalEvents.on(N,"scroll",Se)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(N,"mousedown"),_ui.globalEvents.off(N,"keydown"),_ui.globalEvents.off(N,"blur"),_ui.globalEvents.off(N,"resize"),_ui.globalEvents.off(N,"scroll"),_xeUtils.default.assign(M,createReactData()),_xeUtils.default.assign(U,createInternalData())}),(0,_vue.provide)("$xeSelect",N),N.renderVN=()=>{var{className:e,multiple:t,loading:l,filterable:a,showTotalButton:i,showCheckedButton:o,showClearButton:n,showCloseButton:u}=k,{initialized:r,isActivated:s,isAniVisible:c,optList:v,visiblePanel:d,bodyHeight:p,topSpaceHeight:f}=M,g=G.value,_=j.value,h=se.value,m=re.value,b=W.value,x=X.value,C=Z.value,E=w.default;if(x)return(0,_vue.h)("div",{ref:P,class:["vxe-select--readonly",e]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)("span",{class:"vxe-select-label",title:m},h)]);var x=ne.value,y=z.value,T=ue.value,O=H.value,I=w.header,S=w.footer;let V=w.prefix;var L=O.appendTo,O=O.className||k.popupClassName;return(0,_vue.h)("div",{ref:P,class:["vxe-select",e?_xeUtils.default.isFunction(e)?e({$select:N}):e:"",{["size--"+g]:g,"is--visible":d,"is--disabled":_,"is--filter":a,"is--loading":l,"is--active":s}],style:x},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)(_input.default,{ref:B,clearable:k.clearable,placeholder:C,editable:!1,disabled:_,type:"text",prefixIcon:k.prefixIcon,suffixIcon:l?(0,_ui.getIcon)().SELECT_LOADED:d?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,autoFocus:!1,title:m,modelValue:h,onClear:me,onClick:ke,onFocus:Le,onBlur:we,onSuffixClick:Pe},V?{prefix:()=>V({})}:{}),(0,_vue.h)(_vue.Teleport,{to:(0,_dom.getPopupContainer)(L),disabled:!b||!r},[(0,_vue.h)("div",{ref:A,class:["vxe-table--ignore-clear vxe-select--panel",O?_xeUtils.default.isFunction(O)?O({$select:N}):O:"",{["size--"+g]:g,"is--transfer":b,"ani--leave":!l&&c,"ani--enter":!l&&d}],placement:M.panelPlacement,style:M.panelStyle},r&&(d||c)?[(0,_vue.h)("div",{class:"vxe-select--panel-wrapper",style:T},[a?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:R,class:"vxe-select-search--input",modelValue:M.searchValue,type:"text",clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":Be,onFocus:De,onChange:Me,onSearch:Me})]):(0,_ui.renderEmptyElement)(N),o&&t||n||I?(0,_vue.h)("div",{class:"vxe-select--panel-header"},I?K(I,{}):[(0,_vue.h)("div",{class:"vxe-select--header-button"},[(0,_vue.h)("div",{class:"vxe-select--header-btns"},[o&&t?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.allChecked"),mode:"text",onClick:be}):(0,_ui.renderEmptyElement)(N),n?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.clear"),mode:"text",onClick:xe}):(0,_ui.renderEmptyElement)(N)])])]):(0,_ui.renderEmptyElement)(N),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:D,class:"vxe-select-option--wrapper",onScroll:Re},[(0,_vue.h)("div",{class:"vxe-select--y-space",style:{height:p?p+"px":""}}),(0,_vue.h)("div",{ref:$,class:"vxe-select--body",style:{marginTop:f+"px"}},(()=>{var{optList:e,searchLoading:t}=M;return t?[(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"))])]:e.length?We(e):[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},k.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())])]),S||i||u&&t?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},S?K(S,{}):[(0,_vue.h)("div",{class:"vxe-select--footer-button"},[i?(0,_vue.h)("div",{class:"vxe-select--total-btns"},(0,_ui.getI18n)("vxe.select.total",[y.length,v.length])):(0,_ui.renderEmptyElement)(N),u&&t?(0,_vue.h)("div",{class:"vxe-select--oper-btns"},[(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.close"),mode:"text",onClick:Ce})]):(0,_ui.renderEmptyElement)(N)])]):(0,_ui.renderEmptyElement)(N)])]:[])])])},N},render(){return this.renderVN()}});
|