vxe-pc-ui 4.7.17 → 4.7.19
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/es/color-picker/src/color-picker.js +15 -3
- package/es/date-panel/style.css +1 -1
- package/es/date-panel/style.min.css +1 -1
- package/es/date-picker/src/date-picker.js +9 -5
- package/es/date-range-picker/src/date-range-picker.js +10 -1
- package/es/form/src/itemInfo.js +11 -3
- package/es/form/src/render.js +20 -11
- package/es/form/style.css +12 -11
- package/es/form/style.min.css +1 -1
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +13 -1
- package/es/input/src/input.js +10 -4
- package/es/language/ar-EG.js +1 -0
- package/es/language/de-DE.js +1 -0
- package/es/language/en-US.js +1 -0
- package/es/language/es-ES.js +1 -0
- package/es/language/fr-FR.js +1 -0
- package/es/language/hu-HU.js +1 -0
- package/es/language/hy-AM.js +1 -0
- package/es/language/id-ID.js +1 -0
- package/es/language/it-IT.js +1 -0
- package/es/language/ja-JP.js +1 -0
- package/es/language/ko-KR.js +1 -0
- package/es/language/ms-MY.js +1 -0
- package/es/language/nb-NO.js +1 -0
- package/es/language/pt-BR.js +1 -0
- package/es/language/ru-RU.js +1 -0
- package/es/language/th-TH.js +1 -0
- package/es/language/ug-CN.js +1 -0
- package/es/language/uk-UA.js +1 -0
- package/es/language/uz-UZ.js +1 -0
- package/es/language/vi-VN.js +1 -0
- package/es/language/zh-CHT.js +1 -0
- package/es/language/zh-CN.js +1 -0
- package/es/list/src/list.js +6 -2
- package/es/number-input/src/number-input.js +2 -2
- package/es/pulldown/src/pulldown.js +14 -11
- package/es/select/src/select.js +15 -3
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table-select/src/table-select.js +13 -1
- package/es/tree/src/tree.js +6 -2
- package/es/tree-select/src/tree-select.js +13 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-date-panel/style.css +1 -1
- package/es/vxe-date-panel/style.min.css +1 -1
- package/es/vxe-form/style.css +12 -11
- package/es/vxe-form/style.min.css +1 -1
- package/lib/color-picker/src/color-picker.js +18 -3
- package/lib/color-picker/src/color-picker.min.js +1 -1
- package/lib/date-panel/style/style.css +1 -1
- package/lib/date-panel/style/style.min.css +1 -1
- package/lib/date-picker/src/date-picker.js +9 -4
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/date-range-picker/src/date-range-picker.js +11 -1
- package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
- package/lib/form/src/itemInfo.js +12 -2
- package/lib/form/src/itemInfo.min.js +1 -1
- package/lib/form/src/render.js +24 -8
- package/lib/form/src/render.min.js +1 -1
- package/lib/form/style/style.css +12 -11
- package/lib/form/style/style.min.css +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 +16 -1
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/index.umd.js +181 -45
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +11 -4
- package/lib/input/src/input.min.js +1 -1
- package/lib/language/ar-EG.js +1 -0
- package/lib/language/ar-EG.min.js +1 -1
- package/lib/language/ar-EG.umd.js +1 -0
- package/lib/language/de-DE.js +1 -0
- package/lib/language/de-DE.min.js +1 -1
- package/lib/language/de-DE.umd.js +1 -0
- package/lib/language/en-US.js +1 -0
- package/lib/language/en-US.min.js +1 -1
- package/lib/language/en-US.umd.js +1 -0
- package/lib/language/es-ES.js +1 -0
- package/lib/language/es-ES.min.js +1 -1
- package/lib/language/es-ES.umd.js +1 -0
- package/lib/language/fr-FR.js +1 -0
- package/lib/language/fr-FR.min.js +1 -1
- package/lib/language/fr-FR.umd.js +1 -0
- package/lib/language/hu-HU.js +1 -0
- package/lib/language/hu-HU.min.js +1 -1
- package/lib/language/hu-HU.umd.js +1 -0
- package/lib/language/hy-AM.js +1 -0
- package/lib/language/hy-AM.min.js +1 -1
- package/lib/language/hy-AM.umd.js +1 -0
- package/lib/language/id-ID.js +1 -0
- package/lib/language/id-ID.min.js +1 -1
- package/lib/language/id-ID.umd.js +1 -0
- package/lib/language/it-IT.js +1 -0
- package/lib/language/it-IT.min.js +1 -1
- package/lib/language/it-IT.umd.js +1 -0
- package/lib/language/ja-JP.js +1 -0
- package/lib/language/ja-JP.min.js +1 -1
- package/lib/language/ja-JP.umd.js +1 -0
- package/lib/language/ko-KR.js +1 -0
- package/lib/language/ko-KR.min.js +1 -1
- package/lib/language/ko-KR.umd.js +1 -0
- package/lib/language/ms-MY.js +1 -0
- package/lib/language/ms-MY.min.js +1 -1
- package/lib/language/ms-MY.umd.js +1 -0
- package/lib/language/nb-NO.js +1 -0
- package/lib/language/nb-NO.min.js +1 -1
- package/lib/language/nb-NO.umd.js +1 -0
- package/lib/language/pt-BR.js +1 -0
- package/lib/language/pt-BR.min.js +1 -1
- package/lib/language/pt-BR.umd.js +1 -0
- package/lib/language/ru-RU.js +1 -0
- package/lib/language/ru-RU.min.js +1 -1
- package/lib/language/ru-RU.umd.js +1 -0
- package/lib/language/th-TH.js +1 -0
- package/lib/language/th-TH.min.js +1 -1
- package/lib/language/th-TH.umd.js +1 -0
- package/lib/language/ug-CN.js +1 -0
- package/lib/language/ug-CN.min.js +1 -1
- package/lib/language/ug-CN.umd.js +1 -0
- package/lib/language/uk-UA.js +1 -0
- package/lib/language/uk-UA.min.js +1 -1
- package/lib/language/uk-UA.umd.js +1 -0
- package/lib/language/uz-UZ.js +1 -0
- package/lib/language/uz-UZ.min.js +1 -1
- package/lib/language/uz-UZ.umd.js +1 -0
- package/lib/language/vi-VN.js +1 -0
- package/lib/language/vi-VN.min.js +1 -1
- package/lib/language/vi-VN.umd.js +1 -0
- package/lib/language/zh-CHT.js +1 -0
- package/lib/language/zh-CHT.min.js +1 -1
- package/lib/language/zh-CHT.umd.js +1 -0
- package/lib/language/zh-CN.js +1 -0
- package/lib/language/zh-CN.min.js +1 -1
- package/lib/language/zh-CN.umd.js +1 -0
- package/lib/list/src/list.js +6 -2
- package/lib/list/src/list.min.js +1 -1
- package/lib/number-input/src/number-input.js +2 -2
- package/lib/number-input/src/number-input.min.js +1 -1
- package/lib/pulldown/src/pulldown.js +17 -11
- package/lib/pulldown/src/pulldown.min.js +1 -1
- package/lib/select/src/select.js +18 -3
- 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 +16 -1
- package/lib/table-select/src/table-select.min.js +1 -1
- package/lib/tree/src/tree.js +6 -2
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/tree-select/src/tree-select.js +16 -1
- 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/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-date-panel/style/style.css +1 -1
- package/lib/vxe-date-panel/style/style.min.css +1 -1
- package/lib/vxe-form/style/style.css +12 -11
- package/lib/vxe-form/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/color-picker/src/color-picker.ts +15 -3
- package/packages/date-picker/src/date-picker.ts +9 -4
- package/packages/date-range-picker/src/date-range-picker.ts +10 -1
- package/packages/form/src/itemInfo.ts +12 -3
- package/packages/form/src/render.ts +25 -10
- package/packages/icon-picker/src/icon-picker.ts +13 -1
- package/packages/input/src/input.ts +15 -8
- package/packages/language/ar-EG.ts +1 -0
- package/packages/language/de-DE.ts +1 -0
- package/packages/language/en-US.ts +1 -0
- package/packages/language/es-ES.ts +1 -0
- package/packages/language/fr-FR.ts +1 -0
- package/packages/language/hu-HU.ts +1 -0
- package/packages/language/hy-AM.ts +1 -0
- package/packages/language/id-ID.ts +1 -0
- package/packages/language/it-IT.ts +1 -0
- package/packages/language/ja-JP.ts +1 -0
- package/packages/language/ko-KR.ts +1 -0
- package/packages/language/ms-MY.ts +1 -0
- package/packages/language/nb-NO.ts +1 -0
- package/packages/language/pt-BR.ts +1 -0
- package/packages/language/ru-RU.ts +1 -0
- package/packages/language/th-TH.ts +1 -0
- package/packages/language/ug-CN.ts +1 -0
- package/packages/language/uk-UA.ts +1 -0
- package/packages/language/uz-UZ.ts +1 -0
- package/packages/language/vi-VN.ts +1 -0
- package/packages/language/zh-CHT.ts +1 -0
- package/packages/language/zh-CN.ts +1 -0
- package/packages/list/src/list.ts +7 -3
- package/packages/number-input/src/number-input.ts +6 -6
- package/packages/pulldown/src/pulldown.ts +14 -11
- package/packages/select/src/select.ts +15 -3
- package/packages/table-select/src/table-select.ts +13 -1
- package/packages/tree/src/tree.ts +7 -3
- package/packages/tree-select/src/tree-select.ts +13 -1
- package/styles/components/date-panel.scss +12 -0
- package/styles/components/form.scss +12 -11
- package/types/components/form-design.d.ts +11 -0
- package/types/components/form-item.d.ts +17 -3
- package/types/components/input.d.ts +5 -5
- package/types/components/list.d.ts +4 -3
- package/types/components/number-input.d.ts +5 -5
- package/types/components/table.d.ts +4 -3
- package/types/components/textarea.d.ts +6 -6
- package/types/components/tree.d.ts +6 -3
- /package/es/icon/{iconfont.1753002678278.ttf → iconfont.1753160925338.ttf} +0 -0
- /package/es/icon/{iconfont.1753002678278.woff → iconfont.1753160925338.woff} +0 -0
- /package/es/icon/{iconfont.1753002678278.woff2 → iconfont.1753160925338.woff2} +0 -0
- /package/es/{iconfont.1753002678278.ttf → iconfont.1753160925338.ttf} +0 -0
- /package/es/{iconfont.1753002678278.woff → iconfont.1753160925338.woff} +0 -0
- /package/es/{iconfont.1753002678278.woff2 → iconfont.1753160925338.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1753002678278.ttf → iconfont.1753160925338.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1753002678278.woff → iconfont.1753160925338.woff} +0 -0
- /package/lib/icon/style/{iconfont.1753002678278.woff2 → iconfont.1753160925338.woff2} +0 -0
- /package/lib/{iconfont.1753002678278.ttf → iconfont.1753160925338.ttf} +0 -0
- /package/lib/{iconfont.1753002678278.woff → iconfont.1753160925338.woff} +0 -0
- /package/lib/{iconfont.1753002678278.woff2 → iconfont.1753160925338.woff2} +0 -0
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
groupTag: '分组列头应该使用 "{0}" 而不是 "{1}",这可能会出现错误',
|
|
37
37
|
scrollErrProp: '启用虚拟滚动后不支持该参数 "{0}"',
|
|
38
38
|
errConflicts: '参数 "{0}" 与 "{1}" 有冲突',
|
|
39
|
+
modelConflicts: '绑定的字段值 "{0}" 与 "{1}" 存在冲突,将会出现错误',
|
|
39
40
|
notSupportProp: '当启用参数 "{0}" 时不支持 "{1}",应该为 "{2}",否则将会出现错误',
|
|
40
41
|
notConflictProp: '当使用 "{0}" 时,应该设置 "{1}",否则可能会存在功能冲突',
|
|
41
42
|
unableInsert: '无法插入到指定位置,请检查参数是否正确',
|
package/lib/list/src/list.js
CHANGED
|
@@ -205,11 +205,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
205
205
|
};
|
|
206
206
|
/**
|
|
207
207
|
* 如果有滚动条,则滚动到对应的位置
|
|
208
|
-
* @param {Number} scrollLeft 左距离
|
|
209
|
-
* @param {Number} scrollTop 上距离
|
|
210
208
|
*/
|
|
211
209
|
const scrollTo = (scrollLeft, scrollTop) => {
|
|
212
210
|
const scrollBodyElem = refVirtualWrapper.value;
|
|
211
|
+
if (scrollLeft) {
|
|
212
|
+
if (!_xeUtils.default.isNumber(scrollLeft)) {
|
|
213
|
+
scrollTop = scrollLeft.top;
|
|
214
|
+
scrollLeft = scrollLeft.left;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
213
217
|
if (_xeUtils.default.isNumber(scrollLeft)) {
|
|
214
218
|
scrollBodyElem.scrollLeft = scrollLeft;
|
|
215
219
|
}
|
package/lib/list/src/list.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";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"),_loading=_interopRequireDefault(require("../../loading/src/loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeList",props:{data:Array,height:[Number,String],maxHeight:[Number,String],loading:Boolean,className:[String,Function],size:{type:String,default:()=>(0,_ui.getConfig)().list.size||(0,_ui.getConfig)().size},autoResize:{type:Boolean,default:()=>(0,_ui.getConfig)().list.autoResize},syncResize:[Boolean,String,Number],virtualYConfig:Object,scrollY:Object},emits:["scroll"],setup(u,e){const{slots:n,emit:r}=e;var t=_xeUtils.default.uniqueId();const o=_xeUtils.default.browse(),c=(0,_ui.useSize)(u)["computeSize"],d=(0,_vue.reactive)({scrollYLoad:!1,bodyHeight:0,customHeight:0,customMaxHeight:0,parentHeight:0,topSpaceHeight:0,items:[]}),s={resizeObserver:void 0,fullData:[],lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0}},v=(0,_vue.ref)(),g=(0,_vue.ref)(),h=(0,_vue.ref)(),l={refElem:v},f={xID:t,props:u,context:e,reactData:d,internalData:s,getRefMaps:()=>l},_=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.virtualYConfig||(0,_ui.getConfig)().list.scrollY,u.virtualYConfig||u.scrollY)),x=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=u,{customHeight:l,customMaxHeight:r}=d,i={};return e?i.height=l+"px":t&&(i.height="auto",i.maxHeight=r+"px"),i}),a=(e,t,l)=>{r(e,(0,_ui.createEvent)(l,{$list:f},t))},i=e=>{var t=d["parentHeight"],e=u[e];let l=0;return l=e?"100%"===e||"auto"===e?t:(l=(0,_dom.isScale)(e)?Math.floor((_xeUtils.default.toInteger(e)||1)/100*t):_xeUtils.default.toNumber(e),Math.max(40,l)):l},m=()=>{var e=d["scrollYLoad"],{scrollYStore:t,fullData:l}=s;d.bodyHeight=e?l.length*t.rowHeight:0,d.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},p=()=>{var e=d["scrollYLoad"],{fullData:t,scrollYStore:l}=s;return d.items=e?t.slice(l.startIndex,l.endIndex):t.slice(0),(0,_vue.nextTick)()},S=()=>{p(),m()},b=()=>(0,_vue.nextTick)().then(()=>{var e=d["scrollYLoad"],t=s["scrollYStore"],l=h.value,r=_.value;let i=0,a;(a=l?(a=r.sItem?l.querySelector(r.sItem):a)||l.children[0]:a)&&(i=a.offsetHeight),i=Math.max(12,i),t.rowHeight=i,(e?(l=g.value,e=Math.max(8,Math.ceil(l.clientHeight/i)),l=r.oSize?_xeUtils.default.toNumber(r.oSize):o.edge?10:0,t.offsetSize=l,t.visibleSize=e,t.endIndex=Math.max(t.startIndex+e+l,t.endIndex),S):m)()}),H=()=>{var e=g.value;return e&&(e.scrollTop=0),(0,_vue.nextTick)()},z=(e,t)=>{var l=g.value;return _xeUtils.default.isNumber(e)&&(l.scrollLeft=e),_xeUtils.default.isNumber(t)&&(l.scrollTop=t),d.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},T=()=>{const{lastScrollLeft:e,lastScrollTop:t}=s;return H().then(()=>{if(e||t)return s.lastScrollLeft=0,s.lastScrollTop=0,z(e,t)})},Y=()=>{var e=v.value;if(e){var t=e.parentElement;if(d.parentHeight=t?t.clientHeight:0,d.customHeight=i("height"),d.customMaxHeight=i("maxHeight"),e.clientWidth&&e.clientHeight)return b()}return(0,_vue.nextTick)()},I=e=>{var t=s["scrollYStore"],{startIndex:l,endIndex:r,visibleSize:i,offsetSize:a,rowHeight:o}=t,e=e.target.scrollTop,e=Math.floor(e/o),o=Math.max(0,e-1-a),a=e+i+a;!(e<=l||r-i-1<=e)||l===o&&r===a||(t.startIndex=o,t.endIndex=a,S())},L=e=>{var t=e.target,l=t.scrollTop,t=t.scrollLeft,r=t!==s.lastScrollLeft,i=l!==s.lastScrollTop;s.lastScrollTop=l,s.lastScrollLeft=t,d.scrollYLoad&&I(e),a("scroll",{scrollLeft:t,scrollTop:l,isX:r,isY:i},e)},M=e=>{var t=s["scrollYStore"],l=_.value,e=e||[];return Object.assign(t,{startIndex:0,endIndex:1,visibleSize:0}),s.fullData=e,d.scrollYLoad=!!l.enabled&&-1<l.gt&&(0===l.gt||l.gt<=e.length),p(),b().then(()=>{T()})};t={dispatchEvent:a,loadData:M,reloadData(e){return H(),M(e)},recalculate:Y,scrollTo:z,refreshScroll:T,clearScroll:H};Object.assign(f,t);const y=(0,_vue.ref)(0);(0,_vue.watch)(()=>u.data?u.data.length:-1,()=>{y.value++}),(0,_vue.watch)(()=>u.data,()=>{y.value++}),(0,_vue.watch)(y,()=>{M(u.data||[])}),(0,_vue.watch)(()=>u.height,()=>{Y()}),(0,_vue.watch)(()=>u.maxHeight,()=>{Y()}),(0,_vue.watch)(()=>u.syncResize,e=>{e&&(Y(),(0,_vue.nextTick)(()=>setTimeout(()=>Y())))}),(0,_vue.onActivated)(()=>{Y().then(()=>T())}),(0,_vue.nextTick)(()=>{M(u.data||[])}),(0,_vue.onMounted)(()=>{var e,t;Y(),u.autoResize&&(e=v.value,(t=_ui.globalResize.create(()=>Y())).observe(e),e&&t.observe(e.parentElement),s.resizeObserver=t),_ui.globalEvents.on(f,"resize",Y)}),(0,_vue.onUnmounted)(()=>{var e=s["resizeObserver"];e&&e.disconnect(),_ui.globalEvents.off(f,"resize")});return f.renderVN=()=>{var{className:e,loading:t}=u,{bodyHeight:l,topSpaceHeight:r,items:i}=d,a=n.default,o=c.value,s=x.value;return(0,_vue.h)("div",{ref:v,class:["vxe-list",e?_xeUtils.default.isFunction(e)?e({$list:f}):e:"",{["size--"+o]:o,"is--loading":t}]},[(0,_vue.h)("div",{ref:g,class:"vxe-list--virtual-wrapper",style:s,onScroll:L},[(0,_vue.h)("div",{class:"vxe-list--y-space",style:{height:l?l+"px":""}}),(0,_vue.h)("div",{ref:h,class:"vxe-list--body",style:{marginTop:r?r+"px":""}},a?a({items:i,$list:f}):[])]),(0,_vue.h)(_loading.default,{class:"vxe-list--loading",modelValue:t})])},f},render(){return this.renderVN()}});
|
|
1
|
+
"use strict";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"),_loading=_interopRequireDefault(require("../../loading/src/loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeList",props:{data:Array,height:[Number,String],maxHeight:[Number,String],loading:Boolean,className:[String,Function],size:{type:String,default:()=>(0,_ui.getConfig)().list.size||(0,_ui.getConfig)().size},autoResize:{type:Boolean,default:()=>(0,_ui.getConfig)().list.autoResize},syncResize:[Boolean,String,Number],virtualYConfig:Object,scrollY:Object},emits:["scroll"],setup(u,e){const{slots:n,emit:r}=e;var t=_xeUtils.default.uniqueId();const o=_xeUtils.default.browse(),c=(0,_ui.useSize)(u)["computeSize"],d=(0,_vue.reactive)({scrollYLoad:!1,bodyHeight:0,customHeight:0,customMaxHeight:0,parentHeight:0,topSpaceHeight:0,items:[]}),s={resizeObserver:void 0,fullData:[],lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0}},v=(0,_vue.ref)(),g=(0,_vue.ref)(),h=(0,_vue.ref)(),l={refElem:v},f={xID:t,props:u,context:e,reactData:d,internalData:s,getRefMaps:()=>l},_=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().list.virtualYConfig||(0,_ui.getConfig)().list.scrollY,u.virtualYConfig||u.scrollY)),x=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=u,{customHeight:l,customMaxHeight:r}=d,i={};return e?i.height=l+"px":t&&(i.height="auto",i.maxHeight=r+"px"),i}),a=(e,t,l)=>{r(e,(0,_ui.createEvent)(l,{$list:f},t))},i=e=>{var t=d["parentHeight"],e=u[e];let l=0;return l=e?"100%"===e||"auto"===e?t:(l=(0,_dom.isScale)(e)?Math.floor((_xeUtils.default.toInteger(e)||1)/100*t):_xeUtils.default.toNumber(e),Math.max(40,l)):l},m=()=>{var e=d["scrollYLoad"],{scrollYStore:t,fullData:l}=s;d.bodyHeight=e?l.length*t.rowHeight:0,d.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},p=()=>{var e=d["scrollYLoad"],{fullData:t,scrollYStore:l}=s;return d.items=e?t.slice(l.startIndex,l.endIndex):t.slice(0),(0,_vue.nextTick)()},S=()=>{p(),m()},b=()=>(0,_vue.nextTick)().then(()=>{var e=d["scrollYLoad"],t=s["scrollYStore"],l=h.value,r=_.value;let i=0,a;(a=l?(a=r.sItem?l.querySelector(r.sItem):a)||l.children[0]:a)&&(i=a.offsetHeight),i=Math.max(12,i),t.rowHeight=i,(e?(l=g.value,e=Math.max(8,Math.ceil(l.clientHeight/i)),l=r.oSize?_xeUtils.default.toNumber(r.oSize):o.edge?10:0,t.offsetSize=l,t.visibleSize=e,t.endIndex=Math.max(t.startIndex+e+l,t.endIndex),S):m)()}),H=()=>{var e=g.value;return e&&(e.scrollTop=0),(0,_vue.nextTick)()},z=(e,t)=>{var l=g.value;return e&&!_xeUtils.default.isNumber(e)&&(t=e.top,e=e.left),_xeUtils.default.isNumber(e)&&(l.scrollLeft=e),_xeUtils.default.isNumber(t)&&(l.scrollTop=t),d.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},T=()=>{const{lastScrollLeft:e,lastScrollTop:t}=s;return H().then(()=>{if(e||t)return s.lastScrollLeft=0,s.lastScrollTop=0,z(e,t)})},Y=()=>{var e=v.value;if(e){var t=e.parentElement;if(d.parentHeight=t?t.clientHeight:0,d.customHeight=i("height"),d.customMaxHeight=i("maxHeight"),e.clientWidth&&e.clientHeight)return b()}return(0,_vue.nextTick)()},I=e=>{var t=s["scrollYStore"],{startIndex:l,endIndex:r,visibleSize:i,offsetSize:a,rowHeight:o}=t,e=e.target.scrollTop,e=Math.floor(e/o),o=Math.max(0,e-1-a),a=e+i+a;!(e<=l||r-i-1<=e)||l===o&&r===a||(t.startIndex=o,t.endIndex=a,S())},L=e=>{var t=e.target,l=t.scrollTop,t=t.scrollLeft,r=t!==s.lastScrollLeft,i=l!==s.lastScrollTop;s.lastScrollTop=l,s.lastScrollLeft=t,d.scrollYLoad&&I(e),a("scroll",{scrollLeft:t,scrollTop:l,isX:r,isY:i},e)},M=e=>{var t=s["scrollYStore"],l=_.value,e=e||[];return Object.assign(t,{startIndex:0,endIndex:1,visibleSize:0}),s.fullData=e,d.scrollYLoad=!!l.enabled&&-1<l.gt&&(0===l.gt||l.gt<=e.length),p(),b().then(()=>{T()})};t={dispatchEvent:a,loadData:M,reloadData(e){return H(),M(e)},recalculate:Y,scrollTo:z,refreshScroll:T,clearScroll:H};Object.assign(f,t);const y=(0,_vue.ref)(0);(0,_vue.watch)(()=>u.data?u.data.length:-1,()=>{y.value++}),(0,_vue.watch)(()=>u.data,()=>{y.value++}),(0,_vue.watch)(y,()=>{M(u.data||[])}),(0,_vue.watch)(()=>u.height,()=>{Y()}),(0,_vue.watch)(()=>u.maxHeight,()=>{Y()}),(0,_vue.watch)(()=>u.syncResize,e=>{e&&(Y(),(0,_vue.nextTick)(()=>setTimeout(()=>Y())))}),(0,_vue.onActivated)(()=>{Y().then(()=>T())}),(0,_vue.nextTick)(()=>{M(u.data||[])}),(0,_vue.onMounted)(()=>{var e,t;Y(),u.autoResize&&(e=v.value,(t=_ui.globalResize.create(()=>Y())).observe(e),e&&t.observe(e.parentElement),s.resizeObserver=t),_ui.globalEvents.on(f,"resize",Y)}),(0,_vue.onUnmounted)(()=>{var e=s["resizeObserver"];e&&e.disconnect(),_ui.globalEvents.off(f,"resize")});return f.renderVN=()=>{var{className:e,loading:t}=u,{bodyHeight:l,topSpaceHeight:r,items:i}=d,a=n.default,o=c.value,s=x.value;return(0,_vue.h)("div",{ref:v,class:["vxe-list",e?_xeUtils.default.isFunction(e)?e({$list:f}):e:"",{["size--"+o]:o,"is--loading":t}]},[(0,_vue.h)("div",{ref:g,class:"vxe-list--virtual-wrapper",style:s,onScroll:L},[(0,_vue.h)("div",{class:"vxe-list--y-space",style:{height:l?l+"px":""}}),(0,_vue.h)("div",{ref:h,class:"vxe-list--body",style:{marginTop:r?r+"px":""}},a?a({items:i,$list:f}):[])]),(0,_vue.h)(_loading.default,{class:"vxe-list--loading",modelValue:t})])},f},render(){return this.renderVN()}});
|
|
@@ -499,10 +499,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
499
499
|
}
|
|
500
500
|
};
|
|
501
501
|
const validMaxNum = num => {
|
|
502
|
-
return props.max === null || _xeUtils.default.toNumber(num) <= _xeUtils.default.toNumber(props.max);
|
|
502
|
+
return props.max === null || props.max === '' || _xeUtils.default.toNumber(num) <= _xeUtils.default.toNumber(props.max);
|
|
503
503
|
};
|
|
504
504
|
const validMinNum = num => {
|
|
505
|
-
return props.min === null || _xeUtils.default.toNumber(num) >= _xeUtils.default.toNumber(props.min);
|
|
505
|
+
return props.min === null || props.min === '' || _xeUtils.default.toNumber(num) >= _xeUtils.default.toNumber(props.min);
|
|
506
506
|
};
|
|
507
507
|
const afterCheckValue = () => {
|
|
508
508
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";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"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeNumberInput",props:{modelValue:[String,Number],immediate:{type:Boolean,default:!0},name:String,type:{type:String,default:"number"},clearable:{type:Boolean,default:()=>(0,_ui.getConfig)().numberInput.clearable},readonly:{type:Boolean,default:null},disabled:{type:Boolean,default:null},placeholder:String,maxLength:{type:[String,Number],default:()=>(0,_ui.getConfig)().numberInput.maxLength},autoComplete:{type:String,default:"off"},align:String,form:String,className:String,size:{type:String,default:()=>(0,_ui.getConfig)().numberInput.size||(0,_ui.getConfig)().size},min:{type:[String,Number],default:null},max:{type:[String,Number],default:null},step:[String,Number],exponential:{type:Boolean,default:()=>(0,_ui.getConfig)().numberInput.exponential},showCurrency:{type:Boolean,default:()=>(0,_ui.getConfig)().numberInput.showCurrency},currencySymbol:{type:String,default:()=>(0,_ui.getConfig)().numberInput.currencySymbol},controlConfig:Object,digits:{type:[String,Number],default:null},autoFill:{type:Boolean,default:()=>(0,_ui.getConfig)().numberInput.autoFill},editable:{type:Boolean,default:!0},plusIcon:String,minusIcon:String,prefixIcon:String,suffixIcon:String,controls:{type:Boolean,default:null},maxlength:[String,Number],autocomplete:String},emits:["update:modelValue","input","change","keydown","keyup","wheel","click","focus","blur","clear","plus-number","minus-number","prefix-click","suffix-click","prev-number","next-number"],setup(b,e){const{slots:g,emit:i}=e,a=(0,_vue.inject)("$xeForm",null),n=(0,_vue.inject)("xeFormItemInfo",null);var u=_xeUtils.default.uniqueId();const K=(0,_ui.useSize)(b)["computeSize"],x=(0,_vue.reactive)({isFocus:!1,isActivated:!1,inputValue:b.modelValue}),r={},y=(0,_vue.ref)(),p=(0,_vue.ref)(),q=(0,_vue.ref)(),E=(0,_vue.computed)(()=>{var e=b["readonly"];return null===e?!!a&&a.props.readonly:e}),h=(0,_vue.computed)(()=>{var e=b["disabled"];return null===e?!!a&&a.props.disabled:e}),o=(0,_vue.computed)(()=>{var{type:e,digits:u}=b;let t=u;return null===t&&null===(t=(0,_ui.getConfig)().numberInput.digits)&&"amount"===e&&(t=2),_xeUtils.default.toInteger(t)||1}),N=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().numberInput.controlConfig,b.controlConfig)),s=(0,_vue.computed)(()=>{var e=b["type"];return"float"===e||"amount"===e}),O=(0,_vue.computed)(()=>{var e=b["type"],u=o.value,t=s.value,l=b.step;return"integer"===e?_xeUtils.default.toInteger(l)||1:t?_xeUtils.default.toNumber(l)||1/Math.pow(10,u):_xeUtils.default.toNumber(l)||1}),V=(0,_vue.computed)(()=>b.clearable),U=(0,_vue.computed)(()=>{var e=b["editable"];return E.value||!e}),R=(0,_vue.computed)(()=>{var e=b["placeholder"];return(e=e||(0,_ui.getConfig)().numberInput.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseInput")}),d=(0,_vue.computed)(()=>{var{maxLength:e,maxlength:u}=b;return _xeUtils.default.toNumber(e||u)||16}),v=(0,_vue.computed)(()=>{var e=b["immediate"];return e}),l=(0,_vue.computed)(()=>{var e=b["type"],u=x["inputValue"];return"integer"===e?_xeUtils.default.toInteger((0,_util.handleNumber)(u)):_xeUtils.default.toNumber((0,_util.handleNumber)(u))}),I=(0,_vue.computed)(()=>{var{type:u,showCurrency:t,currencySymbol:l,autoFill:i}=b,a=x["inputValue"],n=o.value;if("amount"!==u)return _xeUtils.default.toString(a);{var u=_xeUtils.default.toNumber(a);let e=_xeUtils.default.commafy(u,{digits:n});return i||([a,u]=e.split("."),u&&(n=u.replace(/0+$/,""),e=n?[a,".",n].join(""):a)),t?""+(l||(0,_ui.getI18n)("vxe.numberInput.currencySymbol")||"")+e:e}}),c=(0,_vue.computed)(()=>{var e=b["min"],u=x["inputValue"],t=l.value;return!(!u&&0!==u||null===e)&&t<=_xeUtils.default.toNumber(e)}),m=(0,_vue.computed)(()=>{var e=b["max"],u=x["inputValue"],t=l.value;return!(!u&&0!==u||null===e)&&t>=_xeUtils.default.toNumber(e)}),D={refElem:y,refInput:p},P={computeControlOpts:N},_={xID:u,props:b,context:e,reactData:x,internalData:r,getRefMaps:()=>D,getComputeMaps:()=>P};let f={};const C=e=>_xeUtils.default.eqNull(e)?"":""+e,S=e=>{var{exponential:u,autoFill:t}=b,l=d.value,i=o.value;let a="";return s.value?(a=(0,_util.toFloatValueFixed)(e,i),t||(a=C(_xeUtils.default.toNumber(a)))):a=C(e),!u||e!==a&&C(e).toLowerCase()!==_xeUtils.default.toNumber(a).toExponential()?a.slice(0,l):e},T=e=>{var u=x["inputValue"];f.dispatchEvent(e.type,{value:u},e)},A=(e,u,t)=>{var e=(0,_utils.eqEmptyValue)(e)?null:Number(e),l=e!==b.modelValue;l&&(r.isUM=!0,i("update:modelValue",e)),x.inputValue!==u&&(0,_vue.nextTick)(()=>{x.inputValue=u||""}),f.dispatchEvent("input",{value:e},t),l&&(f.dispatchEvent("change",{value:e},t),a)&&n&&a.triggerItemEvent(t,n.itemConfig.field,e)},k=(e,u)=>{var t=v.value,l=(0,_utils.eqEmptyValue)(e)?null:_xeUtils.default.toNumber(e);x.inputValue=e,t?A(l,e,u):f.dispatchEvent("input",{value:l},u)},Y=e=>{var u=e.target.value;k(u,e)},j=e=>{v.value||T(e)},G=e=>{var u;U.value||(u=x["inputValue"],x.inputValue=(0,_utils.eqEmptyValue)(u)?"":""+_xeUtils.default.toNumber(u),x.isFocus=!0,x.isActivated=!0,T(e))},W=e=>{var u;h.value||(u=x["inputValue"],f.dispatchEvent("prefix-click",{value:u},e))},B=(e,u)=>{focus(),A(null,"",e),f.dispatchEvent("clear",{value:u},e)},z=e=>{var u;h.value||(u=x["inputValue"],f.dispatchEvent("suffix-click",{value:u},e))},$=()=>{var t=b["autoFill"],l=x["inputValue"],i=o.value,e=s.value;if(e&&l){let e="",u=null;l&&(e=(0,_util.toFloatValueFixed)(l,i),u=_xeUtils.default.toNumber(e),t||(e=""+u)),l!==u?A(u,e,{type:"init"}):x.inputValue=e}},H=e=>null===b.max||_xeUtils.default.toNumber(e)<=_xeUtils.default.toNumber(b.max),J=e=>null===b.min||_xeUtils.default.toNumber(e)>=_xeUtils.default.toNumber(b.min),w=()=>{var{type:u,min:t,max:l,exponential:i}=b,a=x["inputValue"];if(!U.value)if((0,_utils.eqEmptyValue)(a)){let e=null,u=a;!t&&0!==t||(e=_xeUtils.default.toNumber(t),u=""+e),void A(e,""+(u||""),{type:"check"})}else if(a||t||l){let e="integer"===u?_xeUtils.default.toInteger((0,_util.handleNumber)(a)):_xeUtils.default.toNumber((0,_util.handleNumber)(a));J(e)?H(e)||(e=l):e=t,i&&(u=C(a).toLowerCase())===_xeUtils.default.toNumber(e).toExponential()&&(e=u);l=S(e);A((0,_utils.eqEmptyValue)(l)?null:Number(l),l,{type:"check"})}},Q=e=>{var u=x["inputValue"],t=v.value,l=u?Number(u):null;t||A(l,C(u),e),w(),x.isFocus=!1,x.isActivated=!1,f.dispatchEvent("blur",{value:l},e),a&&n&&a.triggerItemEvent(e,n.itemConfig.field,l)},X=(e,u)=>{var{min:t,max:l,type:i}=b,a=x["inputValue"],n=O.value,i="integer"===i?_xeUtils.default.toInteger((0,_util.handleNumber)(a)):_xeUtils.default.toNumber((0,_util.handleNumber)(a)),a=e?_xeUtils.default.add(i,n):_xeUtils.default.subtract(i,n);let r;r=J(a)?H(a)?a:l:t,k(S(r),u)},L=e=>{var u=h.value,t=E.value,l=m.value;u||t||l||X(!0,e),x.isActivated=!0,f.dispatchEvent("plus-number",{value:x.inputValue},e),f.dispatchEvent("next-number",{value:x.inputValue},e)},M=e=>{var u=h.value,t=E.value,l=c.value;u||t||l||X(!1,e),x.isActivated=!0,f.dispatchEvent("minus-number",{value:x.inputValue},e),f.dispatchEvent("prev-number",{value:x.inputValue},e)},Z=e=>{var{type:u,exponential:t,controls:l}=b,i=N.value,a=i["showButton"],n=U.value,r=(0,_dom.hasControlKey)(e),o=e.shiftKey,s=e.altKey,v=e.keyCode,p=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ESCAPE),d=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),c=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN);r||o||s||(_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.SPACEBAR)||"integer"===u&&110===v||(!t||69!==v)&&65<=v&&v<=90||186<=v&&v<=188||191<=v)&&e.preventDefault(),p?w():(d||c)&&(0,_utils.isEnableConf)(i)&&(!1===l?l:a)&&!n&&(r=e,o=_ui.globalEvents.hasKey(r,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),s=_ui.globalEvents.hasKey(r,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),o||s)&&(r.preventDefault(),(o?M:L)(r)),T(e)},ee=e=>{T(e)},ue=e=>{t(),r.ainTimeout=setTimeout(()=>{M(e),ue(e)},60)},te=e=>{t(),r.ainTimeout=setTimeout(()=>{L(e),te(e)},60)},t=()=>{var e;(e=r.dnTimeout)&&(clearTimeout(e),r.dnTimeout=void 0),(e=r.ainTimeout)&&(clearTimeout(e),r.ainTimeout=void 0)},le=e=>{r.isMouseDown?r.isMouseDown=!1:(t(),((0,_dom.hasClass)(e.currentTarget,"is--plus")?L:M)(e))},ie=e=>{if(t(),r.isMouseDown=!0,0===e.button){const u=(0,_dom.hasClass)(e.currentTarget,"is--plus");(u?L:M)(e),r.dnTimeout=setTimeout(()=>{(u?te:ue)(e)},500)}},ae=e=>{var u=b["controls"],t=N.value,l=t["isWheel"],i=U.value;(0,_utils.isEnableConf)(t)&&(!1===u?u:l)&&!i&&x.isActivated&&(e.stopPropagation(),e.preventDefault(),0<(t=e.deltaY)?L(e):t<0&&M(e)),T(e)},ne=e=>{T(e)},re=e=>{var u=x["isActivated"],t=y.value,l=q.value,i=h.value,a=U.value,n=v.value;i||a||!u||(x.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,x.isActivated)||(n||(i=x["inputValue"],a=i?Number(i):null,A(a,C(i),e)),w())},oe=u=>{var t=b["clearable"],l=h.value,i=U.value;if(!l&&!i){l=_ui.globalEvents.hasKey(u,_ui.GLOBAL_EVENT_KEYS.TAB),i=_ui.globalEvents.hasKey(u,_ui.GLOBAL_EVENT_KEYS.DELETE);let e=x.isActivated;l&&(e&&w(),e=!1,x.isActivated=e),i&&t&&e&&B(u,null)}},se=()=>{var e=x["isActivated"];e&&w()};f={dispatchEvent:(e,u,t)=>{i(e,(0,_ui.createEvent)(t,{$numberInput:_},u))},focus(){var e;return U.value||(e=p.value,x.isActivated=!0,e.focus()),(0,_vue.nextTick)()},blur(){return p.value.blur(),(x.isActivated=!1,_vue.nextTick)()},select(){return p.value.select(),(x.isActivated=!1,_vue.nextTick)()}},Object.assign(_,f);const ve=()=>{var e=b["prefixIcon"],u=g.prefix;return u||e?(0,_vue.h)("div",{class:"vxe-number-input--prefix",onClick:W},[(0,_vue.h)("div",{class:"vxe-number-input--prefix-icon"},u?(0,_vn.getSlotVNs)(u({})):[(0,_vue.h)("i",{class:e})])]):(0,_ui.renderEmptyElement)(_)},pe=()=>{var e=b["suffixIcon"],u=x["inputValue"],t=g.suffix,l=h.value,i=V.value;return(0,_vue.h)("div",{class:["vxe-number-input--suffix",{"is--clear":i&&!l&&!(""===u||_xeUtils.default.eqNull(u))}]},[i?(0,_vue.h)("div",{class:"vxe-number-input--clear-icon",onClick:B},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().INPUT_CLEAR})]):(0,_ui.renderEmptyElement)(_),t||e?(0,_vue.h)("div",{class:"vxe-number-input--suffix-icon",onClick:z},t?(0,_vn.getSlotVNs)(t({})):[(0,_vue.h)("i",{class:e})]):(0,_ui.renderEmptyElement)(_)])},F=()=>{var{type:e,name:u,autocomplete:t,autoComplete:l}=b,{inputValue:i,isFocus:a}=x,n=h.value,r=I.value,o=U.value,s=d.value,v=R.value;return(0,_vue.h)("div",{key:"ni",class:"vxe-number-input--input-wrapper"},[ve(),(0,_vue.h)("div",{class:"vxe-number-input--input-inner"},[(0,_vue.h)("input",{ref:p,class:"vxe-number-input--input",value:a||"amount"!==e?i:r,name:u,type:"text",placeholder:v,maxlength:s,readonly:o,disabled:n,autocomplete:l||t,onKeydown:Z,onKeyup:ee,onWheel:ae,onClick:ne,onInput:Y,onChange:j,onFocus:G,onBlur:Q})]),pe()])},de=()=>{var e=b["minusIcon"],u=c.value;return(0,_vue.h)("button",{key:"prev",class:["vxe-number-input--minus-btn is--minus",{"is--disabled":u}],type:"button",onClick:le,onMousedown:ie,onMouseup:t,onMouseleave:t},[(0,_vue.h)("i",{class:e||(0,_ui.getIcon)().NUMBER_INPUT_MINUS_NUM})])},ce=()=>{var e=b["plusIcon"],u=m.value;return(0,_vue.h)("button",{key:"next",class:["vxe-number-input--plus-btn is--plus",{"is--disabled":u}],type:"button",onClick:le,onMousedown:ie,onMouseup:t,onMouseleave:t},[(0,_vue.h)("i",{class:e||(0,_ui.getIcon)().NUMBER_INPUT_PLUS_NUM})])},me=()=>(0,_vue.h)("div",{key:"cplr",class:"vxe-number-input--side-control"},[ce(),de()]);return _.renderVN=()=>{var{className:e,controls:u,type:t,align:l,prefixIcon:i,suffixIcon:a}=b,{inputValue:n,isActivated:r}=x,o=K.value,s=N.value,{layout:v,showButton:p}=s,d=h.value,c=E.value,m=I.value,_=g.prefix,f=g.suffix;return c?(0,_vue.h)("div",{ref:y,class:["vxe-number-input--readonly","type--"+t,e]},m):(c=U.value,m=V.value,s=(0,_utils.isEnableConf)(s)&&(!1===u?u:p),(0,_vue.h)("div",{ref:y,class:["vxe-number-input","type--"+t,"control-"+("right"===v||"left"===v?v:"default"),e,{["size--"+o]:o,["is--"+l]:l,"is--controls":s&&!c,"is--prefix":!!_||i,"is--suffix":!!f||a,"is--disabled":d,"is--active":r,"show--clear":m&&!d&&!(""===n||_xeUtils.default.eqNull(n))}],spellcheck:!1},s?"right"===v?[F(),me()]:"left"===v?[me(),F()]:[de(),F(),ce()]:[F()]))},(0,_vue.watch)(()=>b.modelValue,u=>{if(!r.isUM){var t=b["autoFill"],l=x["inputValue"],i=o.value,a=s.value;if((0,_utils.eqEmptyValue)(u))x.inputValue="";else{let e=""+u;a&&(e=(0,_util.toFloatValueFixed)(u,i),t||(e=""+_xeUtils.default.toNumber(e))),e!==l&&(x.inputValue=e)}}r.isUM=!1}),(0,_vue.watch)(()=>b.type,()=>{Object.assign(x,{inputValue:b.modelValue}),$()}),(0,_vue.onMounted)(()=>{_ui.globalEvents.on(_,"mousedown",re),_ui.globalEvents.on(_,"keydown",oe),_ui.globalEvents.on(_,"blur",se)}),(0,_vue.onBeforeUnmount)(()=>{x.isFocus=!1,t(),w(),_ui.globalEvents.off(_,"mousedown"),_ui.globalEvents.off(_,"keydown"),_ui.globalEvents.off(_,"blur")}),$(),_},render(){return this.renderVN()}});
|
|
1
|
+
"use strict";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"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeNumberInput",props:{modelValue:[String,Number],immediate:{type:Boolean,default:!0},name:String,type:{type:String,default:"number"},clearable:{type:Boolean,default:()=>(0,_ui.getConfig)().numberInput.clearable},readonly:{type:Boolean,default:null},disabled:{type:Boolean,default:null},placeholder:String,maxLength:{type:[String,Number],default:()=>(0,_ui.getConfig)().numberInput.maxLength},autoComplete:{type:String,default:"off"},align:String,form:String,className:String,size:{type:String,default:()=>(0,_ui.getConfig)().numberInput.size||(0,_ui.getConfig)().size},min:{type:[String,Number],default:null},max:{type:[String,Number],default:null},step:[String,Number],exponential:{type:Boolean,default:()=>(0,_ui.getConfig)().numberInput.exponential},showCurrency:{type:Boolean,default:()=>(0,_ui.getConfig)().numberInput.showCurrency},currencySymbol:{type:String,default:()=>(0,_ui.getConfig)().numberInput.currencySymbol},controlConfig:Object,digits:{type:[String,Number],default:null},autoFill:{type:Boolean,default:()=>(0,_ui.getConfig)().numberInput.autoFill},editable:{type:Boolean,default:!0},plusIcon:String,minusIcon:String,prefixIcon:String,suffixIcon:String,controls:{type:Boolean,default:null},maxlength:[String,Number],autocomplete:String},emits:["update:modelValue","input","change","keydown","keyup","wheel","click","focus","blur","clear","plus-number","minus-number","prefix-click","suffix-click","prev-number","next-number"],setup(b,e){const{slots:g,emit:i}=e,a=(0,_vue.inject)("$xeForm",null),n=(0,_vue.inject)("xeFormItemInfo",null);var u=_xeUtils.default.uniqueId();const K=(0,_ui.useSize)(b)["computeSize"],x=(0,_vue.reactive)({isFocus:!1,isActivated:!1,inputValue:b.modelValue}),r={},y=(0,_vue.ref)(),p=(0,_vue.ref)(),q=(0,_vue.ref)(),E=(0,_vue.computed)(()=>{var e=b["readonly"];return null===e?!!a&&a.props.readonly:e}),h=(0,_vue.computed)(()=>{var e=b["disabled"];return null===e?!!a&&a.props.disabled:e}),o=(0,_vue.computed)(()=>{var{type:e,digits:u}=b;let t=u;return null===t&&null===(t=(0,_ui.getConfig)().numberInput.digits)&&"amount"===e&&(t=2),_xeUtils.default.toInteger(t)||1}),N=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().numberInput.controlConfig,b.controlConfig)),s=(0,_vue.computed)(()=>{var e=b["type"];return"float"===e||"amount"===e}),O=(0,_vue.computed)(()=>{var e=b["type"],u=o.value,t=s.value,l=b.step;return"integer"===e?_xeUtils.default.toInteger(l)||1:t?_xeUtils.default.toNumber(l)||1/Math.pow(10,u):_xeUtils.default.toNumber(l)||1}),V=(0,_vue.computed)(()=>b.clearable),U=(0,_vue.computed)(()=>{var e=b["editable"];return E.value||!e}),R=(0,_vue.computed)(()=>{var e=b["placeholder"];return(e=e||(0,_ui.getConfig)().numberInput.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseInput")}),d=(0,_vue.computed)(()=>{var{maxLength:e,maxlength:u}=b;return _xeUtils.default.toNumber(e||u)||16}),v=(0,_vue.computed)(()=>{var e=b["immediate"];return e}),l=(0,_vue.computed)(()=>{var e=b["type"],u=x["inputValue"];return"integer"===e?_xeUtils.default.toInteger((0,_util.handleNumber)(u)):_xeUtils.default.toNumber((0,_util.handleNumber)(u))}),I=(0,_vue.computed)(()=>{var{type:u,showCurrency:t,currencySymbol:l,autoFill:i}=b,a=x["inputValue"],n=o.value;if("amount"!==u)return _xeUtils.default.toString(a);{var u=_xeUtils.default.toNumber(a);let e=_xeUtils.default.commafy(u,{digits:n});return i||([a,u]=e.split("."),u&&(n=u.replace(/0+$/,""),e=n?[a,".",n].join(""):a)),t?""+(l||(0,_ui.getI18n)("vxe.numberInput.currencySymbol")||"")+e:e}}),m=(0,_vue.computed)(()=>{var e=b["min"],u=x["inputValue"],t=l.value;return!(!u&&0!==u||null===e)&&t<=_xeUtils.default.toNumber(e)}),c=(0,_vue.computed)(()=>{var e=b["max"],u=x["inputValue"],t=l.value;return!(!u&&0!==u||null===e)&&t>=_xeUtils.default.toNumber(e)}),D={refElem:y,refInput:p},P={computeControlOpts:N},_={xID:u,props:b,context:e,reactData:x,internalData:r,getRefMaps:()=>D,getComputeMaps:()=>P};let f={};const C=e=>_xeUtils.default.eqNull(e)?"":""+e,S=e=>{var{exponential:u,autoFill:t}=b,l=d.value,i=o.value;let a="";return s.value?(a=(0,_util.toFloatValueFixed)(e,i),t||(a=C(_xeUtils.default.toNumber(a)))):a=C(e),!u||e!==a&&C(e).toLowerCase()!==_xeUtils.default.toNumber(a).toExponential()?a.slice(0,l):e},T=e=>{var u=x["inputValue"];f.dispatchEvent(e.type,{value:u},e)},A=(e,u,t)=>{var e=(0,_utils.eqEmptyValue)(e)?null:Number(e),l=e!==b.modelValue;l&&(r.isUM=!0,i("update:modelValue",e)),x.inputValue!==u&&(0,_vue.nextTick)(()=>{x.inputValue=u||""}),f.dispatchEvent("input",{value:e},t),l&&(f.dispatchEvent("change",{value:e},t),a)&&n&&a.triggerItemEvent(t,n.itemConfig.field,e)},k=(e,u)=>{var t=v.value,l=(0,_utils.eqEmptyValue)(e)?null:_xeUtils.default.toNumber(e);x.inputValue=e,t?A(l,e,u):f.dispatchEvent("input",{value:l},u)},Y=e=>{var u=e.target.value;k(u,e)},j=e=>{v.value||T(e)},G=e=>{var u;U.value||(u=x["inputValue"],x.inputValue=(0,_utils.eqEmptyValue)(u)?"":""+_xeUtils.default.toNumber(u),x.isFocus=!0,x.isActivated=!0,T(e))},W=e=>{var u;h.value||(u=x["inputValue"],f.dispatchEvent("prefix-click",{value:u},e))},B=(e,u)=>{focus(),A(null,"",e),f.dispatchEvent("clear",{value:u},e)},z=e=>{var u;h.value||(u=x["inputValue"],f.dispatchEvent("suffix-click",{value:u},e))},$=()=>{var t=b["autoFill"],l=x["inputValue"],i=o.value,e=s.value;if(e&&l){let e="",u=null;l&&(e=(0,_util.toFloatValueFixed)(l,i),u=_xeUtils.default.toNumber(e),t||(e=""+u)),l!==u?A(u,e,{type:"init"}):x.inputValue=e}},H=e=>null===b.max||""===b.max||_xeUtils.default.toNumber(e)<=_xeUtils.default.toNumber(b.max),J=e=>null===b.min||""===b.min||_xeUtils.default.toNumber(e)>=_xeUtils.default.toNumber(b.min),w=()=>{var{type:u,min:t,max:l,exponential:i}=b,a=x["inputValue"];if(!U.value)if((0,_utils.eqEmptyValue)(a)){let e=null,u=a;!t&&0!==t||(e=_xeUtils.default.toNumber(t),u=""+e),void A(e,""+(u||""),{type:"check"})}else if(a||t||l){let e="integer"===u?_xeUtils.default.toInteger((0,_util.handleNumber)(a)):_xeUtils.default.toNumber((0,_util.handleNumber)(a));J(e)?H(e)||(e=l):e=t,i&&(u=C(a).toLowerCase())===_xeUtils.default.toNumber(e).toExponential()&&(e=u);l=S(e);A((0,_utils.eqEmptyValue)(l)?null:Number(l),l,{type:"check"})}},Q=e=>{var u=x["inputValue"],t=v.value,l=u?Number(u):null;t||A(l,C(u),e),w(),x.isFocus=!1,x.isActivated=!1,f.dispatchEvent("blur",{value:l},e),a&&n&&a.triggerItemEvent(e,n.itemConfig.field,l)},X=(e,u)=>{var{min:t,max:l,type:i}=b,a=x["inputValue"],n=O.value,i="integer"===i?_xeUtils.default.toInteger((0,_util.handleNumber)(a)):_xeUtils.default.toNumber((0,_util.handleNumber)(a)),a=e?_xeUtils.default.add(i,n):_xeUtils.default.subtract(i,n);let r;r=J(a)?H(a)?a:l:t,k(S(r),u)},L=e=>{var u=h.value,t=E.value,l=c.value;u||t||l||X(!0,e),x.isActivated=!0,f.dispatchEvent("plus-number",{value:x.inputValue},e),f.dispatchEvent("next-number",{value:x.inputValue},e)},M=e=>{var u=h.value,t=E.value,l=m.value;u||t||l||X(!1,e),x.isActivated=!0,f.dispatchEvent("minus-number",{value:x.inputValue},e),f.dispatchEvent("prev-number",{value:x.inputValue},e)},Z=e=>{var{type:u,exponential:t,controls:l}=b,i=N.value,a=i["showButton"],n=U.value,r=(0,_dom.hasControlKey)(e),o=e.shiftKey,s=e.altKey,v=e.keyCode,p=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ESCAPE),d=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),m=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN);r||o||s||(_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.SPACEBAR)||"integer"===u&&110===v||(!t||69!==v)&&65<=v&&v<=90||186<=v&&v<=188||191<=v)&&e.preventDefault(),p?w():(d||m)&&(0,_utils.isEnableConf)(i)&&(!1===l?l:a)&&!n&&(r=e,o=_ui.globalEvents.hasKey(r,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),s=_ui.globalEvents.hasKey(r,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),o||s)&&(r.preventDefault(),(o?M:L)(r)),T(e)},ee=e=>{T(e)},ue=e=>{t(),r.ainTimeout=setTimeout(()=>{M(e),ue(e)},60)},te=e=>{t(),r.ainTimeout=setTimeout(()=>{L(e),te(e)},60)},t=()=>{var e;(e=r.dnTimeout)&&(clearTimeout(e),r.dnTimeout=void 0),(e=r.ainTimeout)&&(clearTimeout(e),r.ainTimeout=void 0)},le=e=>{r.isMouseDown?r.isMouseDown=!1:(t(),((0,_dom.hasClass)(e.currentTarget,"is--plus")?L:M)(e))},ie=e=>{if(t(),r.isMouseDown=!0,0===e.button){const u=(0,_dom.hasClass)(e.currentTarget,"is--plus");(u?L:M)(e),r.dnTimeout=setTimeout(()=>{(u?te:ue)(e)},500)}},ae=e=>{var u=b["controls"],t=N.value,l=t["isWheel"],i=U.value;(0,_utils.isEnableConf)(t)&&(!1===u?u:l)&&!i&&x.isActivated&&(e.stopPropagation(),e.preventDefault(),0<(t=e.deltaY)?L(e):t<0&&M(e)),T(e)},ne=e=>{T(e)},re=e=>{var u=x["isActivated"],t=y.value,l=q.value,i=h.value,a=U.value,n=v.value;i||a||!u||(x.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,x.isActivated)||(n||(i=x["inputValue"],a=i?Number(i):null,A(a,C(i),e)),w())},oe=u=>{var t=b["clearable"],l=h.value,i=U.value;if(!l&&!i){l=_ui.globalEvents.hasKey(u,_ui.GLOBAL_EVENT_KEYS.TAB),i=_ui.globalEvents.hasKey(u,_ui.GLOBAL_EVENT_KEYS.DELETE);let e=x.isActivated;l&&(e&&w(),e=!1,x.isActivated=e),i&&t&&e&&B(u,null)}},se=()=>{var e=x["isActivated"];e&&w()};f={dispatchEvent:(e,u,t)=>{i(e,(0,_ui.createEvent)(t,{$numberInput:_},u))},focus(){var e;return U.value||(e=p.value,x.isActivated=!0,e.focus()),(0,_vue.nextTick)()},blur(){return p.value.blur(),(x.isActivated=!1,_vue.nextTick)()},select(){return p.value.select(),(x.isActivated=!1,_vue.nextTick)()}},Object.assign(_,f);const ve=()=>{var e=b["prefixIcon"],u=g.prefix;return u||e?(0,_vue.h)("div",{class:"vxe-number-input--prefix",onClick:W},[(0,_vue.h)("div",{class:"vxe-number-input--prefix-icon"},u?(0,_vn.getSlotVNs)(u({})):[(0,_vue.h)("i",{class:e})])]):(0,_ui.renderEmptyElement)(_)},pe=()=>{var e=b["suffixIcon"],u=x["inputValue"],t=g.suffix,l=h.value,i=V.value;return(0,_vue.h)("div",{class:["vxe-number-input--suffix",{"is--clear":i&&!l&&!(""===u||_xeUtils.default.eqNull(u))}]},[i?(0,_vue.h)("div",{class:"vxe-number-input--clear-icon",onClick:B},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().INPUT_CLEAR})]):(0,_ui.renderEmptyElement)(_),t||e?(0,_vue.h)("div",{class:"vxe-number-input--suffix-icon",onClick:z},t?(0,_vn.getSlotVNs)(t({})):[(0,_vue.h)("i",{class:e})]):(0,_ui.renderEmptyElement)(_)])},F=()=>{var{type:e,name:u,autocomplete:t,autoComplete:l}=b,{inputValue:i,isFocus:a}=x,n=h.value,r=I.value,o=U.value,s=d.value,v=R.value;return(0,_vue.h)("div",{key:"ni",class:"vxe-number-input--input-wrapper"},[ve(),(0,_vue.h)("div",{class:"vxe-number-input--input-inner"},[(0,_vue.h)("input",{ref:p,class:"vxe-number-input--input",value:a||"amount"!==e?i:r,name:u,type:"text",placeholder:v,maxlength:s,readonly:o,disabled:n,autocomplete:l||t,onKeydown:Z,onKeyup:ee,onWheel:ae,onClick:ne,onInput:Y,onChange:j,onFocus:G,onBlur:Q})]),pe()])},de=()=>{var e=b["minusIcon"],u=m.value;return(0,_vue.h)("button",{key:"prev",class:["vxe-number-input--minus-btn is--minus",{"is--disabled":u}],type:"button",onClick:le,onMousedown:ie,onMouseup:t,onMouseleave:t},[(0,_vue.h)("i",{class:e||(0,_ui.getIcon)().NUMBER_INPUT_MINUS_NUM})])},me=()=>{var e=b["plusIcon"],u=c.value;return(0,_vue.h)("button",{key:"next",class:["vxe-number-input--plus-btn is--plus",{"is--disabled":u}],type:"button",onClick:le,onMousedown:ie,onMouseup:t,onMouseleave:t},[(0,_vue.h)("i",{class:e||(0,_ui.getIcon)().NUMBER_INPUT_PLUS_NUM})])},ce=()=>(0,_vue.h)("div",{key:"cplr",class:"vxe-number-input--side-control"},[me(),de()]);return _.renderVN=()=>{var{className:e,controls:u,type:t,align:l,prefixIcon:i,suffixIcon:a}=b,{inputValue:n,isActivated:r}=x,o=K.value,s=N.value,{layout:v,showButton:p}=s,d=h.value,m=E.value,c=I.value,_=g.prefix,f=g.suffix;return m?(0,_vue.h)("div",{ref:y,class:["vxe-number-input--readonly","type--"+t,e]},c):(m=U.value,c=V.value,s=(0,_utils.isEnableConf)(s)&&(!1===u?u:p),(0,_vue.h)("div",{ref:y,class:["vxe-number-input","type--"+t,"control-"+("right"===v||"left"===v?v:"default"),e,{["size--"+o]:o,["is--"+l]:l,"is--controls":s&&!m,"is--prefix":!!_||i,"is--suffix":!!f||a,"is--disabled":d,"is--active":r,"show--clear":c&&!d&&!(""===n||_xeUtils.default.eqNull(n))}],spellcheck:!1},s?"right"===v?[F(),ce()]:"left"===v?[ce(),F()]:[de(),F(),me()]:[F()]))},(0,_vue.watch)(()=>b.modelValue,u=>{if(!r.isUM){var t=b["autoFill"],l=x["inputValue"],i=o.value,a=s.value;if((0,_utils.eqEmptyValue)(u))x.inputValue="";else{let e=""+u;a&&(e=(0,_util.toFloatValueFixed)(u,i),t||(e=""+_xeUtils.default.toNumber(e))),e!==l&&(x.inputValue=e)}}r.isUM=!1}),(0,_vue.watch)(()=>b.type,()=>{Object.assign(x,{inputValue:b.modelValue}),$()}),(0,_vue.onMounted)(()=>{_ui.globalEvents.on(_,"mousedown",re),_ui.globalEvents.on(_,"keydown",oe),_ui.globalEvents.on(_,"blur",se)}),(0,_vue.onBeforeUnmount)(()=>{x.isFocus=!1,t(),w(),_ui.globalEvents.off(_,"mousedown"),_ui.globalEvents.off(_,"keydown"),_ui.globalEvents.off(_,"blur")}),$(),_},render(){return this.renderVN()}});
|
|
@@ -168,7 +168,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
168
168
|
/**
|
|
169
169
|
* 隐藏下拉面板
|
|
170
170
|
*/
|
|
171
|
-
const
|
|
171
|
+
const hideOptionPanel = () => {
|
|
172
172
|
reactData.visiblePanel = false;
|
|
173
173
|
dispatchEvent('visible-change', {
|
|
174
174
|
visible: false
|
|
@@ -194,14 +194,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
194
194
|
*/
|
|
195
195
|
const togglePanel = () => {
|
|
196
196
|
if (reactData.visiblePanel) {
|
|
197
|
-
return
|
|
197
|
+
return hideOptionPanel();
|
|
198
198
|
}
|
|
199
199
|
return showPanel();
|
|
200
200
|
};
|
|
201
201
|
const handleOptionEvent = (evnt, option) => {
|
|
202
202
|
if (!option.disabled) {
|
|
203
203
|
if (reactData.visiblePanel) {
|
|
204
|
-
|
|
204
|
+
hideOptionPanel();
|
|
205
205
|
dispatchEvent('hide-panel', {}, evnt);
|
|
206
206
|
}
|
|
207
207
|
dispatchEvent('option-click', {
|
|
@@ -215,7 +215,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
215
215
|
} = props;
|
|
216
216
|
if (trigger === 'click') {
|
|
217
217
|
if (reactData.visiblePanel) {
|
|
218
|
-
|
|
218
|
+
hideOptionPanel();
|
|
219
219
|
dispatchEvent('hide-panel', {}, evnt);
|
|
220
220
|
} else {
|
|
221
221
|
showPanel();
|
|
@@ -239,7 +239,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
239
239
|
if ((0, _dom.getEventTargetNode)(evnt, panelElem).flag) {
|
|
240
240
|
updatePlacement();
|
|
241
241
|
} else {
|
|
242
|
-
|
|
242
|
+
hideOptionPanel();
|
|
243
243
|
dispatchEvent('hide-panel', {}, evnt);
|
|
244
244
|
}
|
|
245
245
|
}
|
|
@@ -257,17 +257,23 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
257
257
|
if (!disabled) {
|
|
258
258
|
reactData.isActivated = (0, _dom.getEventTargetNode)(evnt, el).flag || (0, _dom.getEventTargetNode)(evnt, panelElem).flag;
|
|
259
259
|
if (visiblePanel && !reactData.isActivated) {
|
|
260
|
-
|
|
260
|
+
hideOptionPanel();
|
|
261
261
|
dispatchEvent('hide-panel', {}, evnt);
|
|
262
262
|
}
|
|
263
263
|
}
|
|
264
264
|
};
|
|
265
265
|
const handleGlobalBlurEvent = evnt => {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
266
|
+
const {
|
|
267
|
+
visiblePanel,
|
|
268
|
+
isActivated
|
|
269
|
+
} = reactData;
|
|
270
|
+
if (visiblePanel) {
|
|
271
|
+
hideOptionPanel();
|
|
269
272
|
dispatchEvent('hide-panel', {}, evnt);
|
|
270
273
|
}
|
|
274
|
+
if (isActivated) {
|
|
275
|
+
reactData.isActivated = false;
|
|
276
|
+
}
|
|
271
277
|
};
|
|
272
278
|
const handleGlobalResizeEvent = () => {
|
|
273
279
|
const {
|
|
@@ -287,7 +293,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
287
293
|
isPanelVisible,
|
|
288
294
|
togglePanel,
|
|
289
295
|
showPanel,
|
|
290
|
-
hidePanel
|
|
296
|
+
hidePanel: hideOptionPanel
|
|
291
297
|
};
|
|
292
298
|
Object.assign($xePulldown, pulldownMethods);
|
|
293
299
|
(0, _vue.watch)(() => props.modelValue, value => {
|
|
@@ -295,7 +301,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
295
301
|
if (value) {
|
|
296
302
|
showPanel();
|
|
297
303
|
} else {
|
|
298
|
-
|
|
304
|
+
hideOptionPanel();
|
|
299
305
|
}
|
|
300
306
|
});
|
|
301
307
|
(0, _vue.nextTick)(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";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},size:{type:String,default:()=>(0,_ui.getConfig)().size},options:Array,className:{type:[String,Function],default:(0,_ui.getConfig)().pulldown.className},popupClassName:[String,Function],showPopupShadow:Boolean,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(g,e){const{slots:w,emit:n}=e,i=(0,_vue.inject)("$xeModal",null),t=(0,_vue.inject)("$xeDrawer",null),a=(0,_vue.inject)("$xeTable",null),o=(0,_vue.inject)("$xeForm",null);var l=_xeUtils.default.uniqueId();const h=(0,_ui.useSize)(g)["computeSize"],x=(0,_vue.reactive)({initialized:!1,panelIndex:0,panelStyle:{},panelPlacement:null,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),u={hpTimeout:void 0},P=(0,_vue.ref)(),y=(0,_vue.ref)(),T=(0,_vue.ref)(),E=(0,_vue.computed)(()=>{var e=g["transfer"];if(null===e){var l=(0,_ui.getConfig)().pulldown.transfer;if(_xeUtils.default.isBoolean(l))return l;if(a||i||t||o)return!0}return e}),s={refElem:P},V={xID:l,props:g,context:e,reactData:x,internalData:u,getRefMaps:()=>s};const d=()=>{x.panelIndex<(0,_utils.getLastZIndex)()&&(x.panelIndex=(0,_utils.nextZIndex)())};const r=()=>{const i=g["placement"],n=x["panelIndex"],t=y.value,a=T.value,o=E.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(t,a,{placement:i,teleportTo:o}),l=Object.assign(e.style,{zIndex:n});x.panelStyle=l,x.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},v=()=>(x.initialized||(x.initialized=!0),new Promise(e=>{g.disabled?(0,_vue.nextTick)(()=>{e()}):(u.hpTimeout&&clearTimeout(u.hpTimeout),x.isActivated=!0,x.isAniVisible=!0,setTimeout(()=>{x.visiblePanel=!0,n("update:modelValue",!0),r(),setTimeout(()=>{e(r())},40)},10),d(),b("visible-change",{visible:!0},null))})),p=()=>(x.visiblePanel=!1,b("visible-change",{visible:!1},null),n("update:modelValue",!1),new Promise(e=>{x.isAniVisible?u.hpTimeout=setTimeout(()=>{(x.isAniVisible=!1,_vue.nextTick)(()=>{e()})},350):(0,_vue.nextTick)(()=>{e()})}));const
|
|
1
|
+
"use strict";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},size:{type:String,default:()=>(0,_ui.getConfig)().size},options:Array,className:{type:[String,Function],default:(0,_ui.getConfig)().pulldown.className},popupClassName:[String,Function],showPopupShadow:Boolean,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(g,e){const{slots:w,emit:n}=e,i=(0,_vue.inject)("$xeModal",null),t=(0,_vue.inject)("$xeDrawer",null),a=(0,_vue.inject)("$xeTable",null),o=(0,_vue.inject)("$xeForm",null);var l=_xeUtils.default.uniqueId();const h=(0,_ui.useSize)(g)["computeSize"],x=(0,_vue.reactive)({initialized:!1,panelIndex:0,panelStyle:{},panelPlacement:null,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),u={hpTimeout:void 0},P=(0,_vue.ref)(),y=(0,_vue.ref)(),T=(0,_vue.ref)(),E=(0,_vue.computed)(()=>{var e=g["transfer"];if(null===e){var l=(0,_ui.getConfig)().pulldown.transfer;if(_xeUtils.default.isBoolean(l))return l;if(a||i||t||o)return!0}return e}),s={refElem:P},V={xID:l,props:g,context:e,reactData:x,internalData:u,getRefMaps:()=>s};const d=()=>{x.panelIndex<(0,_utils.getLastZIndex)()&&(x.panelIndex=(0,_utils.nextZIndex)())};const r=()=>{const i=g["placement"],n=x["panelIndex"],t=y.value,a=T.value,o=E.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(t,a,{placement:i,teleportTo:o}),l=Object.assign(e.style,{zIndex:n});x.panelStyle=l,x.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},v=()=>(x.initialized||(x.initialized=!0),new Promise(e=>{g.disabled?(0,_vue.nextTick)(()=>{e()}):(u.hpTimeout&&clearTimeout(u.hpTimeout),x.isActivated=!0,x.isAniVisible=!0,setTimeout(()=>{x.visiblePanel=!0,n("update:modelValue",!0),r(),setTimeout(()=>{e(r())},40)},10),d(),b("visible-change",{visible:!0},null))})),p=()=>(x.visiblePanel=!1,b("visible-change",{visible:!1},null),n("update:modelValue",!1),new Promise(e=>{x.isAniVisible?u.hpTimeout=setTimeout(()=>{(x.isAniVisible=!1,_vue.nextTick)(()=>{e()})},350):(0,_vue.nextTick)(()=>{e()})}));const A=(e,l)=>{l.disabled||(x.visiblePanel&&(p(),b("hide-panel",{},e)),b("option-click",{option:l},e))},z=e=>{var l=g["trigger"];"click"===l&&(x.visiblePanel?(p(),b("hide-panel",{},e)):(v(),b("show-panel",{},e))),b("click",{$pulldown:V},e)},c=e=>{var l=g["disabled"],i=x["visiblePanel"],n=T.value;l||i&&((0,_dom.getEventTargetNode)(e,n).flag?r():(p(),b("hide-panel",{},e)))},_=e=>{var l=g["disabled"],i=x["visiblePanel"],n=P.value,t=T.value;l||(x.isActivated=(0,_dom.getEventTargetNode)(e,n).flag||(0,_dom.getEventTargetNode)(e,t).flag,i&&!x.isActivated&&(p(),b("hide-panel",{},e)))},m=e=>{var{visiblePanel:l,isActivated:i}=x;l&&(p(),b("hide-panel",{},e)),i&&(x.isActivated=!1)},f=()=>{var e=x["visiblePanel"];e&&r()},b=(e,l,i)=>{n(e,(0,_ui.createEvent)(i,{$pulldown:V},l))};l={dispatchEvent:b,isPanelVisible:()=>x.visiblePanel,togglePanel:()=>(x.visiblePanel?p:v)(),showPanel:v,hidePanel:p},Object.assign(V,l),(0,_vue.watch)(()=>g.modelValue,e=>{x.isActivated=!!e,(e?v:p)()}),(0,_vue.nextTick)(()=>{g.modelValue&&v(),_ui.globalEvents.on(V,"mousewheel",c),_ui.globalEvents.on(V,"mousedown",_),_ui.globalEvents.on(V,"blur",m),_ui.globalEvents.on(V,"resize",f)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(V,"mousewheel"),_ui.globalEvents.off(V,"mousedown"),_ui.globalEvents.off(V,"blur"),_ui.globalEvents.off(V,"resize")});return V.renderVN=()=>{var{className:e,options:l,popupClassName:i,showPopupShadow:n,destroyOnClose:t,disabled:a}=g,{initialized:o,isActivated:u,isAniVisible:s,visiblePanel:d,panelStyle:r,panelPlacement:v}=x,p=E.value,c=h.value,_=w.default,m=w.header,f=w.footer,b=w.dropdown;return(0,_vue.h)("div",{ref:P,class:["vxe-pulldown",e?_xeUtils.default.isFunction(e)?e({$pulldown:V}):e:"",{["size--"+c]:c,"is--visible":d,"is--disabled":a,"is--active":u}]},[(0,_vue.h)("div",{ref:y,class:"vxe-pulldown--content",onClick:z},_?_({$pulldown:V}):[]),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!p||!o},[(0,_vue.h)("div",{ref:T,class:["vxe-table--ignore-clear vxe-pulldown--panel",i?_xeUtils.default.isFunction(i)?i({$pulldown:V}):i:"",{["size--"+c]:c,"is--transfer":p,"ani--leave":s,"ani--enter":d}],placement:v,style:r},[(0,_vue.h)("div",{class:["vxe-pulldown--panel-wrapper",{"is--shadow":n}]},o&&(!t||d||s)?[m?(0,_vue.h)("div",{class:"vxe-pulldown--panel-header"},m({$pulldown:V})):(0,_ui.renderEmptyElement)(V),(0,_vue.h)("div",{class:"vxe-pulldown--panel-body"},b?b({$pulldown:V}):[(e=>{const i=w.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){A(e,l)}},i?i({$pulldown:V,option:l}):""+(l.label||""))):[])})(l)]),f?(0,_vue.h)("div",{class:"vxe-pulldown--panel-footer"},f({$pulldown:V})):(0,_ui.renderEmptyElement)(V)]:[])])])])},V},render(){return this.renderVN()}});
|
package/lib/select/src/select.js
CHANGED
|
@@ -412,7 +412,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
412
412
|
value: modelValue
|
|
413
413
|
}));
|
|
414
414
|
} else if (filterable) {
|
|
415
|
-
avList = fullData.filter(option => isOptionVisible(option) && (!searchStr || `${option[labelField]}`.toLowerCase().indexOf(searchStr) > -1));
|
|
415
|
+
avList = fullData.filter(option => isOptionVisible(option) && (!searchStr || `${option[labelField] || option[valueField]}`.toLowerCase().indexOf(searchStr) > -1));
|
|
416
416
|
} else {
|
|
417
417
|
avList = fullData.filter(isOptionVisible);
|
|
418
418
|
}
|
|
@@ -785,7 +785,22 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
785
785
|
}
|
|
786
786
|
};
|
|
787
787
|
const handleGlobalBlurEvent = () => {
|
|
788
|
-
|
|
788
|
+
const {
|
|
789
|
+
visiblePanel,
|
|
790
|
+
isActivated
|
|
791
|
+
} = reactData;
|
|
792
|
+
if (visiblePanel) {
|
|
793
|
+
hideOptionPanel();
|
|
794
|
+
}
|
|
795
|
+
if (isActivated) {
|
|
796
|
+
reactData.isActivated = false;
|
|
797
|
+
}
|
|
798
|
+
if (visiblePanel || isActivated) {
|
|
799
|
+
const $input = refInput.value;
|
|
800
|
+
if ($input) {
|
|
801
|
+
$input.blur();
|
|
802
|
+
}
|
|
803
|
+
}
|
|
789
804
|
};
|
|
790
805
|
const handleGlobalResizeEvent = () => {
|
|
791
806
|
const {
|
|
@@ -1292,7 +1307,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1292
1307
|
} else if (defaultSlot) {
|
|
1293
1308
|
optVNs = callSlot(defaultSlot, optParams);
|
|
1294
1309
|
} else {
|
|
1295
|
-
optLabel = (0, _utils.getFuncText)(option[isOptGroup ? groupLabelField : labelField]);
|
|
1310
|
+
optLabel = (0, _utils.getFuncText)(option[isOptGroup ? groupLabelField : labelField] || optionValue);
|
|
1296
1311
|
optVNs = optLabel;
|
|
1297
1312
|
}
|
|
1298
1313
|
return isVisible ? (0, _vue.h)('div', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";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"),_input=_interopRequireDefault(require("../../input/src/input")),_button=_interopRequireDefault(require("../../button/src/button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function isOptionVisible(e){return!1!==e.visible}function getOptUniqueId(){return _xeUtils.default.uniqueId("opt_")}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeSelect",props:{modelValue:[String,Number,Boolean,Array],defaultConfig:Object,clearable:Boolean,placeholder:String,readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},multiple:Boolean,multiCharOverflow:{type:[Number,String],default:()=>(0,_ui.getConfig)().select.multiCharOverflow},prefixIcon:String,allowCreate:{type:Boolean,default:()=>(0,_ui.getConfig)().select.allowCreate},placement:String,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],popupClassName:[String,Function],max:{type:[String,Number],default:null},size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},filterable:Boolean,filterMethod:Function,remote:Boolean,remoteConfig:Object,emptyText:String,showTotalButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showTotalButoon},showCheckedButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showCheckedButoon},showClearButton:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showClearButton},transfer:{type:Boolean,default:null},virtualYConfig:Object,scrollY:Object,remoteMethod:Function,optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean},emits:["update:modelValue","change","all-change","clear","blur","focus","click","scroll","visible-change"],setup(L,e){const{slots:C,emit:a}=e,b=(0,_vue.inject)("$xeModal",null),T=(0,_vue.inject)("$xeDrawer",null),E=(0,_vue.inject)("$xeTable",null),l=(0,_vue.inject)("$xeForm",null),i=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();const I=(0,_vue.ref)(),O=(0,_vue.ref)(),P=(0,_vue.ref)(),A=(0,_vue.ref)(),w=(0,_vue.ref)(),U=(0,_vue.ref)(),D=(0,_ui.useSize)(L)["computeSize"],k=(0,_vue.reactive)({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}),y={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},Y={refElem:I},M={xID:t,props:L,context:e,reactData:k,internalData:y,getRefMaps:()=>Y},q=(0,_vue.computed)(()=>{var e=L["readonly"];return null===e?!!l&&l.props.readonly:e}),N=(0,_vue.computed)(()=>{var e=L["disabled"];return null===e?!!l&&l.props.disabled:e}),B=(0,_vue.computed)(()=>{var e=L["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(E||b||T||l)return!0}return e}),H=(0,_vue.computed)(()=>{var e=L["placeholder"];return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),j=(0,_vue.computed)(()=>Object.assign({},L.defaultConfig)),z=(0,_vue.computed)(()=>Object.assign({},L.optionProps)),K=(0,_vue.computed)(()=>Object.assign({},L.optionGroupProps)),c=(0,_vue.computed)(()=>{return z.value.label||"label"}),S=(0,_vue.computed)(()=>{return z.value.value||"value"}),$=(0,_vue.computed)(()=>{return K.value.label||"label"}),G=(0,_vue.computed)(()=>{return K.value.options||"options"}),R=(0,_vue.computed)(()=>{var e=L["modelValue"];return te(e)}),W=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.virtualYConfig||(0,_ui.getConfig)().select.scrollY,L.virtualYConfig||L.scrollY)),X=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.remoteConfig,L.remoteConfig)),Z=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,L.optionConfig)),J=(0,_vue.computed)(()=>_xeUtils.default.toNumber(L.multiCharOverflow)),Q=(0,_vue.computed)(()=>{const{modelValue:e,remote:t,multiple:l}=L;var a,i=k["reactFlag"];const o=J.value;return _xeUtils.default.eqNull(e)?"":(a=_xeUtils.default.isArray(e)?e:[e],(t&&i?a.map(e=>le(e)):a.map(e=>{e=ae(e);return l&&0<o&&e.length>o?e.substring(0,o)+"...":e})).join(", "))}),F=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=C[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],r=(e,t,l)=>{a(e,(0,_ui.createEvent)(l,{$select:M},t))},ee=e=>{a("update:modelValue",e)},_=()=>{return Z.value.keyField||L.optionId||"_X_OPTION_KEY"},V=e=>{e=e[_()];return e?encodeURIComponent(e):""},te=e=>{var{multiple:t,max:l}=L;return!(!t||!l)&&(_xeUtils.default.isArray(e)?e.length:_xeUtils.default.eqNull(e)?0:1)>=_xeUtils.default.toNumber(l)},le=e=>{var{remoteValMaps:t,optFullValMaps:l}=y,a=c.value,t=t[e]||l[e],l=t?t.item:null;return _xeUtils.default.toValueString(l?l[a]:e)},ae=e=>{var t=y["optFullValMaps"],l=c.value,t=k.reactFlag?t[e]:null;return t?t.item[l]:_xeUtils.default.toValueString(e)},g=()=>{const{modelValue:t,filterable:e,filterMethod:l}=L,a=k["searchValue"],{fullData:i,optFullValMaps:o}=y,s=c.value,n=S.value,r=(""+(a||"")).toLowerCase();let u=[];return(u=e&&l?i.filter(e=>isOptionVisible(e)&&l({$select:M,group:null,option:e,searchValue:a,value:t})):e?i.filter(e=>isOptionVisible(e)&&(!r||-1<(""+e[s]).toLowerCase().indexOf(r))):i.filter(isOptionVisible)).forEach((e,t)=>{e=o[e[n]];e&&(e._index=t)}),y.afterVisibleList=u,(0,_vue.nextTick)()},ie=e=>{e&&(k.currentOption=e)},n=()=>{const l=L["placement"],a=k["panelIndex"],i=I.value,o=w.value,s=B.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(i,o,{placement:l,teleportTo:s}),t=Object.assign(e.style,{zIndex:a});k.panelStyle=t,k.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},v=()=>{var{loading:e,filterable:t,remote:l}=L,{fullData:a,hpTimeout:i}=y,o=N.value,s=X.value;e||o||(i&&(clearTimeout(i),y.hpTimeout=void 0),k.initialized||(k.initialized=!0),k.isActivated=!0,k.isAniVisible=!0,t&&(l&&s.enabled&&s.autoLoad&&!a.length?Te:(g(),f))(),setTimeout(()=>{k.visiblePanel=!0,L.filterable&&(0,_vue.nextTick)(()=>{var e=P.value;e&&e.focus()});x().then(()=>m())},10),setTimeout(()=>{x().then(()=>m())},100),k.panelIndex<(0,_utils.getLastZIndex)()&&(k.panelIndex=(0,_utils.nextZIndex)()),n(),r("visible-change",{visible:!0},null))},d=()=>{k.searchValue="",k.searchLoading=!1,k.visiblePanel=!1,y.hpTimeout=setTimeout(()=>{k.isAniVisible=!1},350),r("visible-change",{visible:!1},null)},u=(e,t)=>{ee(t),t!==L.modelValue&&(r("change",{value:t},e),l)&&i&&l.triggerItemEvent(e,i.itemConfig.field,t)},p=(e,t)=>{y.remoteValMaps={},u(e,t),r("clear",{value:t},e)},oe=e=>{e=e.$event;p(e,null),d()},se=e=>{var e=e["$event"],{modelValue:t,multiple:l,max:a}=L,i=k["optList"],o=S.value;if(l){var s=_xeUtils.default.eqNull(t)?[]:_xeUtils.default.isArray(t)?t:[t];for(let e=0;e<i.length;e++){const n=i[e][o];if(te(s)){_ui.VxeUI&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.select.overSizeErr",[a]),status:"warning"});break}s.some(e=>e===n)||s.push(n)}u(e,s),r("all-change",{value:s},e),d()}},ne=e=>{e=e.$event;p(e,null),d()},re=(t,e)=>{var{modelValue:l,multiple:a}=L,i=y["remoteValMaps"];const o=e[S.value];var s=i[o];if(k.visiblePanel){if(s?s.item=e:i[o]={key:V(e),item:e,_index:-1},a){let e=[];s=_xeUtils.default.eqNull(l)?[]:_xeUtils.default.isArray(l)?l:[l],i=_xeUtils.default.findIndexOf(s,e=>e===o);e=-1===i?s.concat([o]):s.filter(e=>e!==o),u(t,e)}else u(t,o),d();k.reactFlag++}},ue=e=>{var t=k["visiblePanel"];N.value||t&&(t=w.value,((0,_dom.getEventTargetNode)(e,t).flag?n:d)())},ce=e=>{var t,l,a=k["visiblePanel"];N.value||(t=I.value,l=w.value,k.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,a&&!k.isActivated&&d())},h=e=>{var t=e.disabled,e=V(e);return!t&&!Pe(e)},ve=(e,t)=>{var l=L["allowCreate"],a=k["optList"],{optFullValMaps:i,optAddMaps:o,afterVisibleList:s}=y,n=S.value;let r=s,u=0;if(l&&a.length&&(s=a[0],o[l=V(s)])&&(u=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[n]]:null;if(-1<(d=a?a._index+u: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},de=t=>{var e=L["clearable"],{visiblePanel:l,currentOption:a}=k;if(!N.value){var i=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.TAB),o=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ENTER),s=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ESCAPE),n=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),r=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),u=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.DELETE),c=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.SPACEBAR);if(i&&(k.isActivated=!1),l)if(s||i)d();else if(o)a&&(t.preventDefault(),t.stopPropagation(),re(t,a));else if(n||r){t.preventDefault();let e=ve(a,r);(e=e||ve(null,r))&&(ie(e),((e,t)=>{const{scrollYLoad:l}=k,{optFullValMaps:a,scrollYStore:i}=y,o=S.value,s=a[e[o]];if(s){const n=s.key;const r=s._index;if(r>-1){const u=A.value;const c=w.value;if(!c)return;const v=c.querySelector(`[optid='${n}']`);if(u)if(v){const d=u.offsetHeight;const p=1;if(t){if(v.offsetTop+v.offsetHeight-u.scrollTop>d)u.scrollTop=v.offsetTop+v.offsetHeight-d;else if(v.offsetTop+p<u.scrollTop||v.offsetTop+p>u.scrollTop+u.clientHeight)u.scrollTop=v.offsetTop-p}else if(v.offsetTop+p<u.scrollTop||v.offsetTop+p>u.scrollTop+u.clientHeight)u.scrollTop=v.offsetTop-p;else if(v.offsetTop+v.offsetHeight-u.scrollTop>d)u.scrollTop=v.offsetTop+v.offsetHeight-d}else if(l)if(t)u.scrollTop=r*i.rowHeight-u.clientHeight+i.rowHeight;else u.scrollTop=r*i.rowHeight}}})(e,r))}else c&&t.preventDefault();else(n||r||o||c)&&k.isActivated&&(t.preventDefault(),v());k.isActivated&&u&&e&&p(t,null)}},pe=()=>{d()},fe=()=>{var e=k["visiblePanel"];e&&n()},_e=e=>{N.value||k.visiblePanel||(k.triggerFocusPanel=!0,v(),setTimeout(()=>{k.triggerFocusPanel=!1},500)),r("focus",{},e)},ge=e=>{ye(e),r("click",{triggerButton:!1,visible:k.visiblePanel},e)},he=e=>{k.isActivated=!1,r("blur",{},e)},me=e=>{ye(e),r("click",{triggerButton:!0,visible:k.visiblePanel},e)},xe=e=>{k.searchValue=e},be=()=>{k.isActivated=!0},Te=()=>{var{modelValue:e,remote:t,remoteMethod:l}=L,a=k["searchValue"],i=X.value,l=i.queryMethod||l;t&&l&&i.enabled?(k.searchLoading=!0,Promise.resolve(l({$select:M,searchValue:a,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{k.searchLoading=!1,g(),f()})):(g(),f())},Ee=_xeUtils.default.debounce(Te,350,{trailing:!0}),ye=e=>{e=e.$event;e.preventDefault(),k.triggerFocusPanel?k.triggerFocusPanel=!1:(k.visiblePanel?d:v)()},Se=()=>{var e=k["scrollYLoad"],{scrollYStore:t,afterVisibleList:l}=y;k.bodyHeight=e?l.length*t.rowHeight:0,k.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},Ve=()=>{var{filterable:e,allowCreate:t}=L;const{scrollYLoad:l,searchValue:a}=k;var{optAddMaps:i,scrollYStore:o,afterVisibleList:s}=y;const n=c.value;var r=S.value,o=l?s.slice(o.startIndex,o.endIndex):s.slice(0);return e&&t&&a&&(o.some(e=>e[n]===a)||(s=i[a]||(0,_vue.reactive)({[_()]:a,[n]:a,[r]:a}),i[a]=s,o.unshift(s))),k.optList=o,(0,_vue.nextTick)()},f=()=>{Ve(),Se()},Le=()=>(0,_vue.nextTick)().then(()=>{var e=k["scrollYLoad"],t=y["scrollYStore"],l=U.value,a=W.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=A.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),f):Se)()}),Ce=(e,t)=>{var l=A.value;return l&&(_xeUtils.default.isNumber(e)&&(l.scrollLeft=e),_xeUtils.default.isNumber(t))&&(l.scrollTop=t),k.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},m=()=>{const{lastScrollLeft:e,lastScrollTop:t}=y;return s().then(()=>{if(e||t)return y.lastScrollLeft=0,y.lastScrollTop=0,Ce(e,t)})},x=()=>{var e=I.value;return e&&e.clientWidth&&e.clientHeight?Le():Promise.resolve()},Ie=e=>{var t=y["scrollYStore"],{startIndex:l,endIndex:a,visibleSize:i,offsetSize:o,rowHeight:s}=t,e=e.target.scrollTop,e=Math.floor(e/s),s=Math.max(0,e-1-o),o=e+i+o;!(e<=l||a-i-1<=e)||l===s&&a===o||(t.startIndex=s,t.endIndex=o,f())},Oe=e=>{var t=e.target,l=t.scrollTop,t=t.scrollLeft,a=t!==y.lastScrollLeft,i=l!==y.lastScrollTop;y.lastScrollTop=l,y.lastScrollLeft=t,k.scrollYLoad&&Ie(e),y.lastScrollTime=Date.now(),r("scroll",{scrollLeft:t,scrollTop:l,isX:a,isY:i},e)},o=e=>{{var t=e||[];const n=G.value,r=S.value,u=_(),c={},v={},d=[],p=e=>{d.push(e);let t=V(e);t||(t=getOptUniqueId(),e[u]=t),v[e[r]]={key:t,item:e,_index:-1}};t.forEach(e=>{p(e),e[n]&&(c[e[u]]=e)[n].forEach(p)}),y.fullData=d,y.optGroupKeyMaps=c,y.optFullValMaps=v,k.reactFlag++,g()}var{isLoaded:t,fullData:l,scrollYStore:a}=y,i=j.value,o=W.value;const s=S.value;if(Object.assign(a,{startIndex:0,endIndex:1,visibleSize:0}),y.synchData=e||[],k.scrollYLoad=!!o.enabled&&-1<o.gt&&(0===o.gt||o.gt<=l.length),Ve(),!t){a=i["selectMode"];if(0<e.length&&_xeUtils.default.eqNull(L.modelValue)){if("first"===a||"last"===a){const f=_xeUtils.default[a](e);f&&(0,_vue.nextTick)(()=>{_xeUtils.default.eqNull(L.modelValue)&&ee(f[s])})}y.isLoaded=!0}}return Le().then(()=>{m()})},s=()=>{var e=A.value;return e&&(e.scrollTop=0,e.scrollLeft=0),y.lastScrollTop=0,(y.lastScrollLeft=0,_vue.nextTick)()},Pe=e=>{var t=y["optGroupKeyMaps"];return!!t[e]};t={dispatchEvent:r,loadData:o,reloadData(e){return y.isLoaded=!1,s(),o(e)},isPanelVisible(){return k.visiblePanel},togglePanel(){return(k.visiblePanel?d:v)(),(0,_vue.nextTick)()},hidePanel(){return k.visiblePanel&&d(),(0,_vue.nextTick)()},showPanel(){return k.visiblePanel||v(),(0,_vue.nextTick)()},refreshOption(){return g(),f(),(0,_vue.nextTick)()},focus(){var e=O.value;return e&&e.blur(),k.isActivated=!0,(0,_vue.nextTick)()},blur(){var e=O.value;return e&&e.blur(),(k.isActivated=!1,_vue.nextTick)()},recalculate:x,clearScroll:s};Object.assign(M,t);const Ae=e=>{const{allowCreate:p,optionKey:f,modelValue:_}=L,g=k["currentOption"],h=y["optAddMaps"];var t=Z.value;const m=c.value,x=S.value,b=$.value,T=t["useKey"],E=C.option;return e.map((t,e)=>{var{slots:l,className:a}=t,i=V(t),o=t[x];const s=Pe(i);var n=!(!p||!h[i]),o=!n&&(_xeUtils.default.isArray(_)?-1<_.indexOf(o):_===o),r=n||!s||isOptionVisible(t);const u=!n&&(c=o,!!t.disabled||!(!R.value||c));var c=l?l.default:null,l={option:t,group:s?t:null,$select:M};let v="",d=[];return d=E?F(E,l):c?F(c,l):v=(0,_utils.getFuncText)(t[s?b:m]),r?(0,_vue.h)("div",{key:T||f?i:e,class:["vxe-select-option",a?_xeUtils.default.isFunction(a)?a(l):a:"",{"vxe-select-optgroup":s,"is--disabled":u,"is--selected":o,"is--add":n,"is--hover":g&&V(g)===i}],optid:i,title:v||null,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick:e=>{u||s||re(e,t)},onMouseenter:()=>{var e;u||s||(e=y.lastScrollTime)&&Date.now()<e+250||ie(t)}},p?[(0,_vue.h)("span",{key:1,class:"vxe-select-option--label"},d),n?(0,_vue.h)("span",{key:2,class:"vxe-select-option--add-icon"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().SELECT_ADD_OPTION})]):(0,_ui.renderEmptyElement)(M)]:d):(0,_ui.renderEmptyElement)(M)})};return(0,_vue.watch)(()=>k.staticOptions,e=>{o(e)}),(0,_vue.watch)(()=>L.options,e=>{o(e||[])}),(0,_vue.watch)(()=>L.optionGroups,e=>{o(e||[])}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=L;t?o(t):e&&o(e)}),_ui.globalEvents.on(M,"mousewheel",ue),_ui.globalEvents.on(M,"mousedown",ce),_ui.globalEvents.on(M,"keydown",de),_ui.globalEvents.on(M,"blur",pe),_ui.globalEvents.on(M,"resize",fe)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(M,"mousewheel"),_ui.globalEvents.off(M,"mousedown"),_ui.globalEvents.off(M,"keydown"),_ui.globalEvents.off(M,"blur"),_ui.globalEvents.off(M,"resize")}),(0,_vue.provide)("$xeSelect",M),M.renderVN=()=>{var{modelValue:e,className:t,popupClassName:l,multiple:a,loading:i,filterable:o,showTotalButoon:s,showCheckedButoon:n,showClearButton:r}=L,{initialized:u,isActivated:c,isAniVisible:v,optList:d,visiblePanel:p,bodyHeight:f,topSpaceHeight:_}=k,g=D.value,h=N.value,m=Q.value,x=B.value,b=q.value,T=H.value,E=C.default,y=C.header,S=C.footer;const V=C.prefix;return b?(0,_vue.h)("div",{ref:I,class:["vxe-select--readonly",t]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)("span",{class:"vxe-select-label"},m)]):(b=_xeUtils.default.eqNull(e)?[]:_xeUtils.default.isArray(e)?e:[e],(0,_vue.h)("div",{ref:I,class:["vxe-select",t?_xeUtils.default.isFunction(t)?t({$select:M}):t:"",{["size--"+g]:g,"is--visible":p,"is--disabled":h,"is--filter":o,"is--loading":i,"is--active":c}]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)(_input.default,{ref:O,clearable:L.clearable,placeholder:T,readonly:!0,disabled:h,type:"text",prefixIcon:L.prefixIcon,suffixIcon:i?(0,_ui.getIcon)().SELECT_LOADED:p?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,autoFocus:!1,title:m,modelValue:m,onClear:oe,onClick:ge,onFocus:_e,onBlur:he,onSuffixClick:me},V?{prefix:()=>V({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!x||!u},[(0,_vue.h)("div",{ref:w,class:["vxe-table--ignore-clear vxe-select--panel",l?_xeUtils.default.isFunction(l)?l({$select:M}):l:"",{["size--"+g]:g,"is--transfer":x,"ani--leave":!i&&v,"ani--enter":!i&&p}],placement:k.panelPlacement,style:k.panelStyle},u&&(p||v)?[(0,_vue.h)("div",{class:"vxe-select--panel-wrapper"},[o?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:P,class:"vxe-select-search--input",modelValue:k.searchValue,clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":xe,onFocus:be,onChange:Ee,onSearch:Ee})]):(0,_ui.renderEmptyElement)(M),s||n&&a||r||y?(0,_vue.h)("div",{class:"vxe-select--panel-header"},y?F(y,{}):[(0,_vue.h)("div",{class:"vxe-select--header-button"},[s?(0,_vue.h)("div",{class:"vxe-select--header-total"},(0,_ui.getI18n)("vxe.select.total",[b.length,d.length])):(0,_ui.renderEmptyElement)(M),(0,_vue.h)("div",{class:"vxe-select--header-btns"},[n&&a?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.allChecked"),mode:"text",onClick:se}):(0,_ui.renderEmptyElement)(M),r?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.clear"),mode:"text",onClick:ne}):(0,_ui.renderEmptyElement)(M)])])]):(0,_ui.renderEmptyElement)(M),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:A,class:"vxe-select-option--wrapper",onScroll:Oe},[(0,_vue.h)("div",{class:"vxe-select--y-space",style:{height:f?f+"px":""}}),(0,_vue.h)("div",{ref:U,class:"vxe-select--body",style:{transform:`translateY(${_}px)`}},(()=>{var{optList:e,searchLoading:t}=k;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?Ae(e):[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},L.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())])]),S?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},F(S,{})):(0,_ui.renderEmptyElement)(M)])]:[])])]))},M},render(){return this.renderVN()}});
|
|
1
|
+
"use strict";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"),_input=_interopRequireDefault(require("../../input/src/input")),_button=_interopRequireDefault(require("../../button/src/button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function isOptionVisible(e){return!1!==e.visible}function getOptUniqueId(){return _xeUtils.default.uniqueId("opt_")}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeSelect",props:{modelValue:[String,Number,Boolean,Array],defaultConfig:Object,clearable:Boolean,placeholder:String,readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},multiple:Boolean,multiCharOverflow:{type:[Number,String],default:()=>(0,_ui.getConfig)().select.multiCharOverflow},prefixIcon:String,allowCreate:{type:Boolean,default:()=>(0,_ui.getConfig)().select.allowCreate},placement:String,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],popupClassName:[String,Function],max:{type:[String,Number],default:null},size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},filterable:Boolean,filterMethod:Function,remote:Boolean,remoteConfig:Object,emptyText:String,showTotalButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showTotalButoon},showCheckedButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showCheckedButoon},showClearButton:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showClearButton},transfer:{type:Boolean,default:null},virtualYConfig:Object,scrollY:Object,remoteMethod:Function,optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean},emits:["update:modelValue","change","all-change","clear","blur","focus","click","scroll","visible-change"],setup(L,e){const{slots:C,emit:a}=e,b=(0,_vue.inject)("$xeModal",null),T=(0,_vue.inject)("$xeDrawer",null),E=(0,_vue.inject)("$xeTable",null),l=(0,_vue.inject)("$xeForm",null),i=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();const I=(0,_vue.ref)(),O=(0,_vue.ref)(),P=(0,_vue.ref)(),A=(0,_vue.ref)(),w=(0,_vue.ref)(),U=(0,_vue.ref)(),Y=(0,_ui.useSize)(L)["computeSize"],k=(0,_vue.reactive)({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}),S={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},y={refElem:I},M={xID:t,props:L,context:e,reactData:k,internalData:S,getRefMaps:()=>y},q=(0,_vue.computed)(()=>{var e=L["readonly"];return null===e?!!l&&l.props.readonly:e}),N=(0,_vue.computed)(()=>{var e=L["disabled"];return null===e?!!l&&l.props.disabled:e}),B=(0,_vue.computed)(()=>{var e=L["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(E||b||T||l)return!0}return e}),H=(0,_vue.computed)(()=>{var e=L["placeholder"];return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),j=(0,_vue.computed)(()=>Object.assign({},L.defaultConfig)),z=(0,_vue.computed)(()=>Object.assign({},L.optionProps)),K=(0,_vue.computed)(()=>Object.assign({},L.optionGroupProps)),c=(0,_vue.computed)(()=>{return z.value.label||"label"}),V=(0,_vue.computed)(()=>{return z.value.value||"value"}),$=(0,_vue.computed)(()=>{return K.value.label||"label"}),G=(0,_vue.computed)(()=>{return K.value.options||"options"}),R=(0,_vue.computed)(()=>{var e=L["modelValue"];return te(e)}),W=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.virtualYConfig||(0,_ui.getConfig)().select.scrollY,L.virtualYConfig||L.scrollY)),X=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.remoteConfig,L.remoteConfig)),Z=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,L.optionConfig)),J=(0,_vue.computed)(()=>_xeUtils.default.toNumber(L.multiCharOverflow)),Q=(0,_vue.computed)(()=>{const{modelValue:e,remote:t,multiple:l}=L;var a,i=k["reactFlag"];const o=J.value;return _xeUtils.default.eqNull(e)?"":(a=_xeUtils.default.isArray(e)?e:[e],(t&&i?a.map(e=>le(e)):a.map(e=>{e=ae(e);return l&&0<o&&e.length>o?e.substring(0,o)+"...":e})).join(", "))}),F=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=C[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],r=(e,t,l)=>{a(e,(0,_ui.createEvent)(l,{$select:M},t))},ee=e=>{a("update:modelValue",e)},_=()=>{return Z.value.keyField||L.optionId||"_X_OPTION_KEY"},D=e=>{e=e[_()];return e?encodeURIComponent(e):""},te=e=>{var{multiple:t,max:l}=L;return!(!t||!l)&&(_xeUtils.default.isArray(e)?e.length:_xeUtils.default.eqNull(e)?0:1)>=_xeUtils.default.toNumber(l)},le=e=>{var{remoteValMaps:t,optFullValMaps:l}=S,a=c.value,t=t[e]||l[e],l=t?t.item:null;return _xeUtils.default.toValueString(l?l[a]:e)},ae=e=>{var t=S["optFullValMaps"],l=c.value,t=k.reactFlag?t[e]:null;return t?t.item[l]:_xeUtils.default.toValueString(e)},g=()=>{const{modelValue:t,filterable:e,filterMethod:l}=L,a=k["searchValue"],{fullData:i,optFullValMaps:o}=S,s=c.value,n=V.value,r=(""+(a||"")).toLowerCase();let u=[];return(u=e&&l?i.filter(e=>isOptionVisible(e)&&l({$select:M,group:null,option:e,searchValue:a,value:t})):e?i.filter(e=>isOptionVisible(e)&&(!r||-1<(""+(e[s]||e[n])).toLowerCase().indexOf(r))):i.filter(isOptionVisible)).forEach((e,t)=>{e=o[e[n]];e&&(e._index=t)}),S.afterVisibleList=u,(0,_vue.nextTick)()},ie=e=>{e&&(k.currentOption=e)},n=()=>{const l=L["placement"],a=k["panelIndex"],i=I.value,o=w.value,s=B.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(i,o,{placement:l,teleportTo:s}),t=Object.assign(e.style,{zIndex:a});k.panelStyle=t,k.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},v=()=>{var{loading:e,filterable:t,remote:l}=L,{fullData:a,hpTimeout:i}=S,o=N.value,s=X.value;e||o||(i&&(clearTimeout(i),S.hpTimeout=void 0),k.initialized||(k.initialized=!0),k.isActivated=!0,k.isAniVisible=!0,t&&(l&&s.enabled&&s.autoLoad&&!a.length?Te:(g(),f))(),setTimeout(()=>{k.visiblePanel=!0,L.filterable&&(0,_vue.nextTick)(()=>{var e=P.value;e&&e.focus()});x().then(()=>m())},10),setTimeout(()=>{x().then(()=>m())},100),k.panelIndex<(0,_utils.getLastZIndex)()&&(k.panelIndex=(0,_utils.nextZIndex)()),n(),r("visible-change",{visible:!0},null))},d=()=>{k.searchValue="",k.searchLoading=!1,k.visiblePanel=!1,S.hpTimeout=setTimeout(()=>{k.isAniVisible=!1},350),r("visible-change",{visible:!1},null)},u=(e,t)=>{ee(t),t!==L.modelValue&&(r("change",{value:t},e),l)&&i&&l.triggerItemEvent(e,i.itemConfig.field,t)},p=(e,t)=>{S.remoteValMaps={},u(e,t),r("clear",{value:t},e)},oe=e=>{e=e.$event;p(e,null),d()},se=e=>{var e=e["$event"],{modelValue:t,multiple:l,max:a}=L,i=k["optList"],o=V.value;if(l){var s=_xeUtils.default.eqNull(t)?[]:_xeUtils.default.isArray(t)?t:[t];for(let e=0;e<i.length;e++){const n=i[e][o];if(te(s)){_ui.VxeUI&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.select.overSizeErr",[a]),status:"warning"});break}s.some(e=>e===n)||s.push(n)}u(e,s),r("all-change",{value:s},e),d()}},ne=e=>{e=e.$event;p(e,null),d()},re=(t,e)=>{var{modelValue:l,multiple:a}=L,i=S["remoteValMaps"];const o=e[V.value];var s=i[o];if(k.visiblePanel){if(s?s.item=e:i[o]={key:D(e),item:e,_index:-1},a){let e=[];s=_xeUtils.default.eqNull(l)?[]:_xeUtils.default.isArray(l)?l:[l],i=_xeUtils.default.findIndexOf(s,e=>e===o);e=-1===i?s.concat([o]):s.filter(e=>e!==o),u(t,e)}else u(t,o),d();k.reactFlag++}},ue=e=>{var t=k["visiblePanel"];N.value||t&&(t=w.value,((0,_dom.getEventTargetNode)(e,t).flag?n:d)())},ce=e=>{var t,l,a=k["visiblePanel"];N.value||(t=I.value,l=w.value,k.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,a&&!k.isActivated&&d())},h=e=>{var t=e.disabled,e=D(e);return!t&&!Pe(e)},ve=(e,t)=>{var l=L["allowCreate"],a=k["optList"],{optFullValMaps:i,optAddMaps:o,afterVisibleList:s}=S,n=V.value;let r=s,u=0;if(l&&a.length&&(s=a[0],o[l=D(s)])&&(u=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[n]]:null;if(-1<(d=a?a._index+u: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},de=t=>{var e=L["clearable"],{visiblePanel:l,currentOption:a}=k;if(!N.value){var i=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.TAB),o=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ENTER),s=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ESCAPE),n=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),r=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),u=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.DELETE),c=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.SPACEBAR);if(i&&(k.isActivated=!1),l)if(s||i)d();else if(o)a&&(t.preventDefault(),t.stopPropagation(),re(t,a));else if(n||r){t.preventDefault();let e=ve(a,r);(e=e||ve(null,r))&&(ie(e),((e,t)=>{const{scrollYLoad:l}=k,{optFullValMaps:a,scrollYStore:i}=S,o=V.value,s=a[e[o]];if(s){const n=s.key;const r=s._index;if(r>-1){const u=A.value;const c=w.value;if(!c)return;const v=c.querySelector(`[optid='${n}']`);if(u)if(v){const d=u.offsetHeight;const p=1;if(t){if(v.offsetTop+v.offsetHeight-u.scrollTop>d)u.scrollTop=v.offsetTop+v.offsetHeight-d;else if(v.offsetTop+p<u.scrollTop||v.offsetTop+p>u.scrollTop+u.clientHeight)u.scrollTop=v.offsetTop-p}else if(v.offsetTop+p<u.scrollTop||v.offsetTop+p>u.scrollTop+u.clientHeight)u.scrollTop=v.offsetTop-p;else if(v.offsetTop+v.offsetHeight-u.scrollTop>d)u.scrollTop=v.offsetTop+v.offsetHeight-d}else if(l)if(t)u.scrollTop=r*i.rowHeight-u.clientHeight+i.rowHeight;else u.scrollTop=r*i.rowHeight}}})(e,r))}else c&&t.preventDefault();else(n||r||o||c)&&k.isActivated&&(t.preventDefault(),v());k.isActivated&&u&&e&&p(t,null)}},pe=()=>{var{visiblePanel:e,isActivated:t}=k;e&&d(),t&&(k.isActivated=!1),(e||t)&&(e=O.value)&&e.blur()},fe=()=>{var e=k["visiblePanel"];e&&n()},_e=e=>{N.value||k.visiblePanel||(k.triggerFocusPanel=!0,v(),setTimeout(()=>{k.triggerFocusPanel=!1},500)),r("focus",{},e)},ge=e=>{ye(e),r("click",{triggerButton:!1,visible:k.visiblePanel},e)},he=e=>{k.isActivated=!1,r("blur",{},e)},me=e=>{ye(e),r("click",{triggerButton:!0,visible:k.visiblePanel},e)},xe=e=>{k.searchValue=e},be=()=>{k.isActivated=!0},Te=()=>{var{modelValue:e,remote:t,remoteMethod:l}=L,a=k["searchValue"],i=X.value,l=i.queryMethod||l;t&&l&&i.enabled?(k.searchLoading=!0,Promise.resolve(l({$select:M,searchValue:a,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{k.searchLoading=!1,g(),f()})):(g(),f())},Ee=_xeUtils.default.debounce(Te,350,{trailing:!0}),ye=e=>{e=e.$event;e.preventDefault(),k.triggerFocusPanel?k.triggerFocusPanel=!1:(k.visiblePanel?d:v)()},Se=()=>{var e=k["scrollYLoad"],{scrollYStore:t,afterVisibleList:l}=S;k.bodyHeight=e?l.length*t.rowHeight:0,k.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},Ve=()=>{var{filterable:e,allowCreate:t}=L;const{scrollYLoad:l,searchValue:a}=k;var{optAddMaps:i,scrollYStore:o,afterVisibleList:s}=S;const n=c.value;var r=V.value,o=l?s.slice(o.startIndex,o.endIndex):s.slice(0);return e&&t&&a&&(o.some(e=>e[n]===a)||(s=i[a]||(0,_vue.reactive)({[_()]:a,[n]:a,[r]:a}),i[a]=s,o.unshift(s))),k.optList=o,(0,_vue.nextTick)()},f=()=>{Ve(),Se()},Le=()=>(0,_vue.nextTick)().then(()=>{var e=k["scrollYLoad"],t=S["scrollYStore"],l=U.value,a=W.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=A.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),f):Se)()}),Ce=(e,t)=>{var l=A.value;return l&&(_xeUtils.default.isNumber(e)&&(l.scrollLeft=e),_xeUtils.default.isNumber(t))&&(l.scrollTop=t),k.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},m=()=>{const{lastScrollLeft:e,lastScrollTop:t}=S;return s().then(()=>{if(e||t)return S.lastScrollLeft=0,S.lastScrollTop=0,Ce(e,t)})},x=()=>{var e=I.value;return e&&e.clientWidth&&e.clientHeight?Le():Promise.resolve()},Ie=e=>{var t=S["scrollYStore"],{startIndex:l,endIndex:a,visibleSize:i,offsetSize:o,rowHeight:s}=t,e=e.target.scrollTop,e=Math.floor(e/s),s=Math.max(0,e-1-o),o=e+i+o;!(e<=l||a-i-1<=e)||l===s&&a===o||(t.startIndex=s,t.endIndex=o,f())},Oe=e=>{var t=e.target,l=t.scrollTop,t=t.scrollLeft,a=t!==S.lastScrollLeft,i=l!==S.lastScrollTop;S.lastScrollTop=l,S.lastScrollLeft=t,k.scrollYLoad&&Ie(e),S.lastScrollTime=Date.now(),r("scroll",{scrollLeft:t,scrollTop:l,isX:a,isY:i},e)},o=e=>{{var t=e||[];const n=G.value,r=V.value,u=_(),c={},v={},d=[],p=e=>{d.push(e);let t=D(e);t||(t=getOptUniqueId(),e[u]=t),v[e[r]]={key:t,item:e,_index:-1}};t.forEach(e=>{p(e),e[n]&&(c[e[u]]=e)[n].forEach(p)}),S.fullData=d,S.optGroupKeyMaps=c,S.optFullValMaps=v,k.reactFlag++,g()}var{isLoaded:t,fullData:l,scrollYStore:a}=S,i=j.value,o=W.value;const s=V.value;if(Object.assign(a,{startIndex:0,endIndex:1,visibleSize:0}),S.synchData=e||[],k.scrollYLoad=!!o.enabled&&-1<o.gt&&(0===o.gt||o.gt<=l.length),Ve(),!t){a=i["selectMode"];if(0<e.length&&_xeUtils.default.eqNull(L.modelValue)){if("first"===a||"last"===a){const f=_xeUtils.default[a](e);f&&(0,_vue.nextTick)(()=>{_xeUtils.default.eqNull(L.modelValue)&&ee(f[s])})}S.isLoaded=!0}}return Le().then(()=>{m()})},s=()=>{var e=A.value;return e&&(e.scrollTop=0,e.scrollLeft=0),S.lastScrollTop=0,(S.lastScrollLeft=0,_vue.nextTick)()},Pe=e=>{var t=S["optGroupKeyMaps"];return!!t[e]};t={dispatchEvent:r,loadData:o,reloadData(e){return S.isLoaded=!1,s(),o(e)},isPanelVisible(){return k.visiblePanel},togglePanel(){return(k.visiblePanel?d:v)(),(0,_vue.nextTick)()},hidePanel(){return k.visiblePanel&&d(),(0,_vue.nextTick)()},showPanel(){return k.visiblePanel||v(),(0,_vue.nextTick)()},refreshOption(){return g(),f(),(0,_vue.nextTick)()},focus(){var e=O.value;return e&&e.blur(),k.isActivated=!0,(0,_vue.nextTick)()},blur(){var e=O.value;return e&&e.blur(),(k.isActivated=!1,_vue.nextTick)()},recalculate:x,clearScroll:s};Object.assign(M,t);const Ae=e=>{const{allowCreate:f,optionKey:_,modelValue:g}=L,h=k["currentOption"],m=S["optAddMaps"];var t=Z.value;const x=c.value,b=V.value,T=$.value,E=t["useKey"],y=C.option;return e.map((t,e)=>{var{slots:l,className:a}=t,i=D(t),o=t[b];const s=Pe(i);var n=!(!f||!m[i]),r=!n&&(_xeUtils.default.isArray(g)?-1<g.indexOf(o):g===o),u=n||!s||isOptionVisible(t);const c=!n&&(v=r,!!t.disabled||!(!R.value||v));var v=l?l.default:null,l={option:t,group:s?t:null,$select:M};let d="",p=[];return p=y?F(y,l):v?F(v,l):d=(0,_utils.getFuncText)(t[s?T:x]||o),u?(0,_vue.h)("div",{key:E||_?i:e,class:["vxe-select-option",a?_xeUtils.default.isFunction(a)?a(l):a:"",{"vxe-select-optgroup":s,"is--disabled":c,"is--selected":r,"is--add":n,"is--hover":h&&D(h)===i}],optid:i,title:d||null,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick:e=>{c||s||re(e,t)},onMouseenter:()=>{var e;c||s||(e=S.lastScrollTime)&&Date.now()<e+250||ie(t)}},f?[(0,_vue.h)("span",{key:1,class:"vxe-select-option--label"},p),n?(0,_vue.h)("span",{key:2,class:"vxe-select-option--add-icon"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().SELECT_ADD_OPTION})]):(0,_ui.renderEmptyElement)(M)]:p):(0,_ui.renderEmptyElement)(M)})};return(0,_vue.watch)(()=>k.staticOptions,e=>{o(e)}),(0,_vue.watch)(()=>L.options,e=>{o(e||[])}),(0,_vue.watch)(()=>L.optionGroups,e=>{o(e||[])}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=L;t?o(t):e&&o(e)}),_ui.globalEvents.on(M,"mousewheel",ue),_ui.globalEvents.on(M,"mousedown",ce),_ui.globalEvents.on(M,"keydown",de),_ui.globalEvents.on(M,"blur",pe),_ui.globalEvents.on(M,"resize",fe)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(M,"mousewheel"),_ui.globalEvents.off(M,"mousedown"),_ui.globalEvents.off(M,"keydown"),_ui.globalEvents.off(M,"blur"),_ui.globalEvents.off(M,"resize")}),(0,_vue.provide)("$xeSelect",M),M.renderVN=()=>{var{modelValue:e,className:t,popupClassName:l,multiple:a,loading:i,filterable:o,showTotalButoon:s,showCheckedButoon:n,showClearButton:r}=L,{initialized:u,isActivated:c,isAniVisible:v,optList:d,visiblePanel:p,bodyHeight:f,topSpaceHeight:_}=k,g=Y.value,h=N.value,m=Q.value,x=B.value,b=q.value,T=H.value,E=C.default,y=C.header,S=C.footer;const V=C.prefix;return b?(0,_vue.h)("div",{ref:I,class:["vxe-select--readonly",t]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)("span",{class:"vxe-select-label"},m)]):(b=_xeUtils.default.eqNull(e)?[]:_xeUtils.default.isArray(e)?e:[e],(0,_vue.h)("div",{ref:I,class:["vxe-select",t?_xeUtils.default.isFunction(t)?t({$select:M}):t:"",{["size--"+g]:g,"is--visible":p,"is--disabled":h,"is--filter":o,"is--loading":i,"is--active":c}]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)(_input.default,{ref:O,clearable:L.clearable,placeholder:T,readonly:!0,disabled:h,type:"text",prefixIcon:L.prefixIcon,suffixIcon:i?(0,_ui.getIcon)().SELECT_LOADED:p?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,autoFocus:!1,title:m,modelValue:m,onClear:oe,onClick:ge,onFocus:_e,onBlur:he,onSuffixClick:me},V?{prefix:()=>V({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!x||!u},[(0,_vue.h)("div",{ref:w,class:["vxe-table--ignore-clear vxe-select--panel",l?_xeUtils.default.isFunction(l)?l({$select:M}):l:"",{["size--"+g]:g,"is--transfer":x,"ani--leave":!i&&v,"ani--enter":!i&&p}],placement:k.panelPlacement,style:k.panelStyle},u&&(p||v)?[(0,_vue.h)("div",{class:"vxe-select--panel-wrapper"},[o?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:P,class:"vxe-select-search--input",modelValue:k.searchValue,clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":xe,onFocus:be,onChange:Ee,onSearch:Ee})]):(0,_ui.renderEmptyElement)(M),s||n&&a||r||y?(0,_vue.h)("div",{class:"vxe-select--panel-header"},y?F(y,{}):[(0,_vue.h)("div",{class:"vxe-select--header-button"},[s?(0,_vue.h)("div",{class:"vxe-select--header-total"},(0,_ui.getI18n)("vxe.select.total",[b.length,d.length])):(0,_ui.renderEmptyElement)(M),(0,_vue.h)("div",{class:"vxe-select--header-btns"},[n&&a?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.allChecked"),mode:"text",onClick:se}):(0,_ui.renderEmptyElement)(M),r?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.clear"),mode:"text",onClick:ne}):(0,_ui.renderEmptyElement)(M)])])]):(0,_ui.renderEmptyElement)(M),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:A,class:"vxe-select-option--wrapper",onScroll:Oe},[(0,_vue.h)("div",{class:"vxe-select--y-space",style:{height:f?f+"px":""}}),(0,_vue.h)("div",{ref:U,class:"vxe-select--body",style:{transform:`translateY(${_}px)`}},(()=>{var{optList:e,searchLoading:t}=k;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?Ae(e):[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},L.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())])]),S?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},F(S,{})):(0,_ui.renderEmptyElement)(M)])]:[])])]))},M},render(){return this.renderVN()}});
|