vxe-pc-ui 3.19.1 → 3.19.3

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.
Files changed (56) hide show
  1. package/es/icon/style.css +1 -1
  2. package/es/layout-aside/src/layout-aside.js +1 -1
  3. package/es/layout-body/src/layout-body.js +1 -1
  4. package/es/menu/src/menu.js +26 -11
  5. package/es/menu/style.css +11 -3
  6. package/es/menu/style.min.css +1 -1
  7. package/es/scrollbar/src/scrollbar.js +38 -0
  8. package/es/style.css +1 -1
  9. package/es/style.min.css +1 -1
  10. package/es/ui/index.js +1 -1
  11. package/es/ui/src/log.js +1 -1
  12. package/es/vxe-menu/style.css +11 -3
  13. package/es/vxe-menu/style.min.css +1 -1
  14. package/lib/icon/style/style.css +1 -1
  15. package/lib/icon/style/style.min.css +1 -1
  16. package/lib/index.umd.js +67 -14
  17. package/lib/index.umd.min.js +1 -1
  18. package/lib/layout-aside/src/layout-aside.js +1 -1
  19. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  20. package/lib/layout-body/src/layout-body.js +1 -1
  21. package/lib/layout-body/src/layout-body.min.js +1 -1
  22. package/lib/menu/src/menu.js +25 -10
  23. package/lib/menu/src/menu.min.js +1 -1
  24. package/lib/menu/style/style.css +11 -3
  25. package/lib/menu/style/style.min.css +1 -1
  26. package/lib/scrollbar/src/scrollbar.js +38 -0
  27. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  28. package/lib/style.css +1 -1
  29. package/lib/style.min.css +1 -1
  30. package/lib/ui/index.js +1 -1
  31. package/lib/ui/index.min.js +1 -1
  32. package/lib/ui/src/log.js +1 -1
  33. package/lib/ui/src/log.min.js +1 -1
  34. package/lib/vxe-menu/style/style.css +11 -3
  35. package/lib/vxe-menu/style/style.min.css +1 -1
  36. package/package.json +1 -1
  37. package/packages/layout-aside/src/layout-aside.ts +1 -1
  38. package/packages/layout-body/src/layout-body.ts +1 -1
  39. package/packages/menu/src/menu.ts +29 -14
  40. package/packages/scrollbar/src/scrollbar.ts +43 -0
  41. package/styles/components/menu.scss +14 -3
  42. package/types/components/column.d.ts +1 -1
  43. package/types/components/scrollbar.d.ts +20 -0
  44. package/types/components/table.d.ts +3 -3
  45. /package/es/icon/{iconfont.1791542927686.ttf → iconfont.1791602910236.ttf} +0 -0
  46. /package/es/icon/{iconfont.1791542927686.woff → iconfont.1791602910236.woff} +0 -0
  47. /package/es/icon/{iconfont.1791542927686.woff2 → iconfont.1791602910236.woff2} +0 -0
  48. /package/es/{iconfont.1791542927686.ttf → iconfont.1791602910236.ttf} +0 -0
  49. /package/es/{iconfont.1791542927686.woff → iconfont.1791602910236.woff} +0 -0
  50. /package/es/{iconfont.1791542927686.woff2 → iconfont.1791602910236.woff2} +0 -0
  51. /package/lib/icon/style/{iconfont.1791542927686.ttf → iconfont.1791602910236.ttf} +0 -0
  52. /package/lib/icon/style/{iconfont.1791542927686.woff → iconfont.1791602910236.woff} +0 -0
  53. /package/lib/icon/style/{iconfont.1791542927686.woff2 → iconfont.1791602910236.woff2} +0 -0
  54. /package/lib/{iconfont.1791542927686.ttf → iconfont.1791602910236.ttf} +0 -0
  55. /package/lib/{iconfont.1791542927686.woff → iconfont.1791602910236.woff} +0 -0
  56. /package/lib/{iconfont.1791542927686.woff2 → iconfont.1791602910236.woff2} +0 -0
@@ -138,7 +138,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
138
138
  * 加载中
139
139
  */
140
140
  h(_loading.default, {
141
- class: 'vxe-layout-aside--loading',
141
+ class: 'vxe-layout-aside-view--loading',
142
142
  props: {
143
143
  value: loading
144
144
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _defineProperty(e,t,i){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==_typeof(e)?e:e+""}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}var _default2=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLayoutAside",mixins:[_ui.globalMixins.sizeMixin],props:{width:[String,Number],collapsed:Boolean,collapseWidth:[String,Number],loading:Boolean,padding:Boolean,collapseConfig:Object,useScrollbar:{type:Boolean,default:function(){return(0,_ui.getConfig)().layoutAside.useScrollbar}},scrollbarConfig:Object,size:{type:String,default:function(){return(0,_ui.getConfig)().layoutAside.size||(0,_ui.getConfig)().size}}},provide:function(){return{$xeLayoutAside:this}},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{}}},computed:Object.assign(Object.assign({},{}),{computeCollapseOpts:function(){return Object.assign({},(0,_ui.getConfig)().layoutAside.collapseConfig,this.collapseConfig)},computeVarStyle:function(){var e=this.width,t=this.collapseWidth,i={};return t&&(i["--vxe-ui-layout-aside-collapse-width"]=(0,_dom.toCssUnit)(t)),e&&(i["--vxe-ui-layout-aside-default-width"]=(0,_dom.toCssUnit)(e)),i},computeScrollbarOpts:function(){return Object.assign({},(0,_ui.getConfig)().layoutAside.scrollbarConfig,this.scrollbarConfig)}}),methods:{dispatchEvent:function(e,t,i){this.$emit(e,(0,_ui.createEvent)(i,{$layoutAside:this},t))},renderVN:function(e){var t=this,i=t.$scopedSlots,o=t.collapsed,r=t.loading,n=t.padding,a=t.useScrollbar,l=t.computeVarStyle,s=t.computeSize,u=t.computeCollapseOpts,t=t.computeScrollbarOpts,c=t.native,d=t.yConfig,f=t.className,p=t.viewAttrs,y=t.viewClassName,t=t.viewInnerClassName,m=i.default;return e("aside",{class:["vxe-layout-aside",_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({},"size--".concat(s),s),"is--animat",!1!==u.animation),"is--padding",n),"is--collapse",o),"is--loading",r)],style:l},[a?e(_scrollbar.default,{props:{native:c,xConfig:{visible:"hidden"},yConfig:d,className:"vxe-layout-aside--scrollbar"+(f?" "+f:""),viewAttrs:p,viewClassName:"vxe-layout-aside--scrollbar-view"+(y?" "+y:""),viewInnerClassName:"vxe-layout-aside--scrollbar-inner"+(t?" "+t:"")},scopedSlots:{default:function(){return m?m({}):[]}}}):e("div",{class:"vxe-layout-aside--inner"},m?m({}):[]),e(_loading.default,{class:"vxe-layout-aside--loading",props:{value:r}})])}},render:function(e){return this.renderVN(e)}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _defineProperty(e,t,i){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==_typeof(e)?e:e+""}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0===i)return("string"===t?String:Number)(e);i=i.call(e,t||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}var _default2=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLayoutAside",mixins:[_ui.globalMixins.sizeMixin],props:{width:[String,Number],collapsed:Boolean,collapseWidth:[String,Number],loading:Boolean,padding:Boolean,collapseConfig:Object,useScrollbar:{type:Boolean,default:function(){return(0,_ui.getConfig)().layoutAside.useScrollbar}},scrollbarConfig:Object,size:{type:String,default:function(){return(0,_ui.getConfig)().layoutAside.size||(0,_ui.getConfig)().size}}},provide:function(){return{$xeLayoutAside:this}},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{}}},computed:Object.assign(Object.assign({},{}),{computeCollapseOpts:function(){return Object.assign({},(0,_ui.getConfig)().layoutAside.collapseConfig,this.collapseConfig)},computeVarStyle:function(){var e=this.width,t=this.collapseWidth,i={};return t&&(i["--vxe-ui-layout-aside-collapse-width"]=(0,_dom.toCssUnit)(t)),e&&(i["--vxe-ui-layout-aside-default-width"]=(0,_dom.toCssUnit)(e)),i},computeScrollbarOpts:function(){return Object.assign({},(0,_ui.getConfig)().layoutAside.scrollbarConfig,this.scrollbarConfig)}}),methods:{dispatchEvent:function(e,t,i){this.$emit(e,(0,_ui.createEvent)(i,{$layoutAside:this},t))},renderVN:function(e){var t=this,i=t.$scopedSlots,o=t.collapsed,r=t.loading,n=t.padding,a=t.useScrollbar,l=t.computeVarStyle,s=t.computeSize,u=t.computeCollapseOpts,t=t.computeScrollbarOpts,c=t.native,d=t.yConfig,f=t.className,p=t.viewAttrs,y=t.viewClassName,t=t.viewInnerClassName,m=i.default;return e("aside",{class:["vxe-layout-aside",_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({},"size--".concat(s),s),"is--animat",!1!==u.animation),"is--padding",n),"is--collapse",o),"is--loading",r)],style:l},[a?e(_scrollbar.default,{props:{native:c,xConfig:{visible:"hidden"},yConfig:d,className:"vxe-layout-aside--scrollbar"+(f?" "+f:""),viewAttrs:p,viewClassName:"vxe-layout-aside--scrollbar-view"+(y?" "+y:""),viewInnerClassName:"vxe-layout-aside--scrollbar-inner"+(t?" "+t:"")},scopedSlots:{default:function(){return m?m({}):[]}}}):e("div",{class:"vxe-layout-aside--inner"},m?m({}):[]),e(_loading.default,{class:"vxe-layout-aside-view--loading",props:{value:r}})])}},render:function(e){return this.renderVN(e)}});
@@ -148,7 +148,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
148
148
  * 加载中
149
149
  */
150
150
  h(_loading.default, {
151
- class: 'vxe-list-view--loading',
151
+ class: 'vxe-layout-body-view--loading',
152
152
  props: {
153
153
  value: loading
154
154
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar")),_backtop=_interopRequireDefault(require("../../backtop"));function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function _defineProperty(t,e,o){return(e=_toPropertyKey(e))in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function _toPropertyKey(t){t=_toPrimitive(t,"string");return"symbol"==_typeof(t)?t:t+""}function _toPrimitive(t,e){if("object"!=_typeof(t)||!t)return t;var o=t[Symbol.toPrimitive];if(void 0===o)return("string"===e?String:Number)(t);o=o.call(t,e||"default");if("object"!=_typeof(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}function createInternalData(){return{}}function createReactData(){return{}}var _default2=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLayoutBody",mixins:[_ui.globalMixins.sizeMixin],props:{loading:Boolean,padding:Boolean,showBacktop:{type:Boolean,default:function(){return(0,_ui.getConfig)().layoutBody.showBacktop}},backtopConfig:Object,useScrollbar:{type:Boolean,default:function(){return(0,_ui.getConfig)().layoutBody.useScrollbar}},scrollbarConfig:Object,size:{type:String,default:function(){return(0,_ui.getConfig)().layoutBody.size||(0,_ui.getConfig)().size}}},data:function(){var t=_xeUtils.default.uniqueId(),e="vxe_layout_body_backtop_".concat(t),o=createReactData();return Object.assign(Object.assign({},{}),{xID:t,backtopId:e,reactData:o})},computed:Object.assign(Object.assign({},{}),{computeBacktopOpts:function(){var t=this.backtopId;return Object.assign({},(0,_ui.getConfig)().layoutBody.backtopConfig,this.backtopConfig,{target:"#"+t})},computeScrollbarOpts:function(){return Object.assign({},(0,_ui.getConfig)().layoutBody.scrollbarConfig,this.scrollbarConfig)}}),methods:{dispatchEvent:function(t,e,o){this.$emit(t,(0,_ui.createEvent)(o,{$layoutBody:this},e))},renderVN:function(t){var e=this,o=e.$scopedSlots,r=e.backtopId,a=e.loading,i=e.padding,n=e.showBacktop,u=e.useScrollbar,l=e.computeBacktopOpts,c=e.computeScrollbarOpts,s=c.native,p=c.xConfig,f=c.yConfig,d=c.className,b=c.viewAttrs,y=c.viewClassName,c=c.viewInnerClassName,g=e.computeSize,_=o.default,m=o.backtop,v=o.backtopTop||o["backtop-top"],o=o.backtopBottom||o["backtop-bottom"],x={};return m&&(x.default=m),v&&(x.top=v),o&&(x.bottom=o),t("div",{class:["vxe-layout-body",_defineProperty(_defineProperty(_defineProperty({},"size--".concat(g),g),"is--loading",a),"is--padding",i)]},[u?t(_scrollbar.default,{props:{native:s,xConfig:p,yConfig:f,className:"vxe-layout-body--scrollbar"+(d?" "+d:""),viewAttrs:Object.assign(Object.assign({},b),{id:n&&r||null}),viewClassName:"vxe-layout-body--scrollbar-view"+(y?" "+y:""),viewInnerClassName:"vxe-layout-body--scrollbar-inner"+(c?" "+c:"")},scopedSlots:{default:function(){return _?_({}):[]}}}):t("div",{attrs:{id:n?r:""},class:"vxe-layout-body--inner"},_?_({}):[]),t(_loading.default,{class:"vxe-list-view--loading",props:{value:a}}),n?t(_backtop.default,{props:l,scopedSlots:x}):(0,_ui.renderEmptyElement)(e)])}},created:function(){this.internalData=createInternalData()},beforeDestroy:function(){var t=this.reactData,e=this.internalData;_xeUtils.default.assign(t,createReactData()),_xeUtils.default.assign(e,createInternalData())},render:function(t){return this.renderVN(t)}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar")),_backtop=_interopRequireDefault(require("../../backtop"));function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function _defineProperty(t,e,o){return(e=_toPropertyKey(e))in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function _toPropertyKey(t){t=_toPrimitive(t,"string");return"symbol"==_typeof(t)?t:t+""}function _toPrimitive(t,e){if("object"!=_typeof(t)||!t)return t;var o=t[Symbol.toPrimitive];if(void 0===o)return("string"===e?String:Number)(t);o=o.call(t,e||"default");if("object"!=_typeof(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}function createInternalData(){return{}}function createReactData(){return{}}var _default2=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLayoutBody",mixins:[_ui.globalMixins.sizeMixin],props:{loading:Boolean,padding:Boolean,showBacktop:{type:Boolean,default:function(){return(0,_ui.getConfig)().layoutBody.showBacktop}},backtopConfig:Object,useScrollbar:{type:Boolean,default:function(){return(0,_ui.getConfig)().layoutBody.useScrollbar}},scrollbarConfig:Object,size:{type:String,default:function(){return(0,_ui.getConfig)().layoutBody.size||(0,_ui.getConfig)().size}}},data:function(){var t=_xeUtils.default.uniqueId(),e="vxe_layout_body_backtop_".concat(t),o=createReactData();return Object.assign(Object.assign({},{}),{xID:t,backtopId:e,reactData:o})},computed:Object.assign(Object.assign({},{}),{computeBacktopOpts:function(){var t=this.backtopId;return Object.assign({},(0,_ui.getConfig)().layoutBody.backtopConfig,this.backtopConfig,{target:"#"+t})},computeScrollbarOpts:function(){return Object.assign({},(0,_ui.getConfig)().layoutBody.scrollbarConfig,this.scrollbarConfig)}}),methods:{dispatchEvent:function(t,e,o){this.$emit(t,(0,_ui.createEvent)(o,{$layoutBody:this},e))},renderVN:function(t){var e=this,o=e.$scopedSlots,r=e.backtopId,a=e.loading,i=e.padding,n=e.showBacktop,u=e.useScrollbar,l=e.computeBacktopOpts,c=e.computeScrollbarOpts,s=c.native,p=c.xConfig,f=c.yConfig,d=c.className,b=c.viewAttrs,y=c.viewClassName,c=c.viewInnerClassName,g=e.computeSize,_=o.default,m=o.backtop,v=o.backtopTop||o["backtop-top"],o=o.backtopBottom||o["backtop-bottom"],x={};return m&&(x.default=m),v&&(x.top=v),o&&(x.bottom=o),t("div",{class:["vxe-layout-body",_defineProperty(_defineProperty(_defineProperty({},"size--".concat(g),g),"is--loading",a),"is--padding",i)]},[u?t(_scrollbar.default,{props:{native:s,xConfig:p,yConfig:f,className:"vxe-layout-body--scrollbar"+(d?" "+d:""),viewAttrs:Object.assign(Object.assign({},b),{id:n&&r||null}),viewClassName:"vxe-layout-body--scrollbar-view"+(y?" "+y:""),viewInnerClassName:"vxe-layout-body--scrollbar-inner"+(c?" "+c:"")},scopedSlots:{default:function(){return _?_({}):[]}}}):t("div",{attrs:{id:n?r:""},class:"vxe-layout-body--inner"},_?_({}):[]),t(_loading.default,{class:"vxe-layout-body-view--loading",props:{value:a}}),n?t(_backtop.default,{props:l,scopedSlots:x}):(0,_ui.renderEmptyElement)(e)])}},created:function(){this.internalData=createInternalData()},beforeDestroy:function(){var t=this.reactData,e=this.internalData;_xeUtils.default.assign(t,createReactData()),_xeUtils.default.assign(e,createInternalData())},render:function(t){return this.renderVN(t)}});
@@ -415,13 +415,18 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
415
415
  var el = $xeMenu.$refs.refElem;
416
416
  if (el) {
417
417
  var clientRect = el.getBoundingClientRect();
418
- var parentNode = el.parentNode;
419
- reactData.collapseStyle = isCollapsed ? {
420
- top: (0, _dom.toCssUnit)(clientRect.top),
421
- left: (0, _dom.toCssUnit)(clientRect.left),
422
- height: (0, _dom.toCssUnit)(parentNode.clientHeight),
423
- zIndex: reactData.collapseZindex
424
- } : {};
418
+ var parentElement = el.parentElement;
419
+ if (parentElement) {
420
+ if (clientRect.top < 0) {
421
+ clientRect = parentElement.getBoundingClientRect();
422
+ }
423
+ reactData.collapseStyle = isCollapsed ? {
424
+ top: (0, _dom.toCssUnit)(clientRect.top),
425
+ left: (0, _dom.toCssUnit)(clientRect.left),
426
+ height: (0, _dom.toCssUnit)(parentElement.clientHeight),
427
+ zIndex: reactData.collapseZindex
428
+ } : {};
429
+ }
425
430
  }
426
431
  });
427
432
  }
@@ -590,6 +595,14 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
590
595
  handleMenuMouseleave: function handleMenuMouseleave() {
591
596
  var $xeMenu = this;
592
597
  var reactData = $xeMenu.reactData;
598
+ var $collapseBodyScrollbar = $xeMenu.$refs.refCollapseBodyScrollbar;
599
+ var collapseBodyEl = $xeMenu.$refs.refCollapseBodyElem;
600
+ if (collapseBodyEl) {
601
+ collapseBodyEl.scrollTop = 0;
602
+ }
603
+ if ($collapseBodyScrollbar) {
604
+ $collapseBodyScrollbar.clearScroll();
605
+ }
593
606
  reactData.isEnterCollapse = false;
594
607
  },
595
608
  //
@@ -811,11 +824,12 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
811
824
  on: ons
812
825
  }, isCollapsed ? [headerSlot ? h('div', {
813
826
  class: 'vxe-menu--header'
814
- }, headerSlot(stParams)) : (0, _ui.renderEmptyElement)($xeMenu), useScrollbar ? h(_scrollbar.default, {
827
+ }, headerSlot(stParams)) : (0, _ui.renderEmptyElement)($xeMenu), useScrollbar && isEnterCollapse ? h(_scrollbar.default, {
828
+ ref: 'refCollapseBodyScrollbar',
815
829
  class: 'vxe-menu--scrollbar-body',
816
830
  props: Object.assign(Object.assign({}, scrollbarOpts), {
817
- viewClassName: 'vxe-menu--body-view' + (viewClassName ? ' ' + viewClassName : ''),
818
- viewInnerClassName: 'vxe-menu--body-inner' + (viewClassName ? ' ' + viewInnerClassName : '')
831
+ viewClassName: 'vxe-menu--scrollbar-body-view' + (viewClassName ? ' ' + viewClassName : ''),
832
+ viewInnerClassName: 'vxe-menu--scrollbar-body-inner' + (viewClassName ? ' ' + viewInnerClassName : '')
819
833
  }),
820
834
  scopedSlots: {
821
835
  default: function _default() {
@@ -825,6 +839,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
825
839
  }
826
840
  }
827
841
  }) : h('div', {
842
+ ref: 'refCollapseBodyElem',
828
843
  class: 'vxe-menu--body'
829
844
  }, menuList.map(function (child) {
830
845
  return $xeMenu.renderDefaultChildren(h, child, menuList);
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log"),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==_typeof(e)?e:e+""}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);n=n.call(e,t||"default");if("object"!=_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}var _createComponentLog=(0,_log.createComponentLog)("menu"),errLog=_createComponentLog.errLog,menus=_ui.VxeUI.menus,getConfig=_ui.VxeUI.getConfig,getIcon=_ui.VxeUI.getIcon;function createInternalData(){return{lastActiveTime:0,menuInitMaps:{},menuCacheMaps:{},menuKeyMaps:{},menuEffectMaps:{}}}function createReactData(){return{initialized:!1,isEnterCollapse:!1,collapseStyle:{},collapseZindex:0,activeName:"",menuList:[],itemHeight:1}}var nemuUniqueKey=1e8,_default2=exports.default=(0,_comp.defineVxeComponent)({name:"VxeMenu",mixins:[_ui.globalMixins.sizeMixin,_ui.globalMixins.permissionMixin],props:{value:[String,Number],expandAll:Boolean,expandKeys:Array,accordion:{type:Boolean,default:function(){return getConfig().menu.accordion}},border:{type:[Boolean,String],default:function(){return getConfig().menu.border}},optionProps:{type:Object,default:function(){return getConfig().menu.optionProps}},collapsed:{type:Boolean,default:null},collapseFixed:Boolean,loading:Boolean,options:{type:Array,default:function(){return[]}},size:{type:String,default:function(){return getConfig().menu.size||getConfig().size}},menuConfig:Object,useScrollbar:{type:Boolean,default:function(){return getConfig().menu.useScrollbar}},scrollbarConfig:Object,appendTo:{type:[String,Function],default:function(){return getConfig().menu.appendTo}}},inject:{$xeLayoutAside:{default:null}},data:function(){var e=createReactData();return Object.assign(Object.assign({},{}),{xID:_xeUtils.default.uniqueId(),reactData:e})},computed:Object.assign(Object.assign({},{}),{computePropsOpts:function(){return Object.assign({},getConfig().menu.optionProps,this.optionProps)},computeTitleField:function(){return this.computePropsOpts.title||"title"},computeKeyField:function(){return this.computePropsOpts.name||"name"},computeChildrenField:function(){return this.computePropsOpts.children||"children"},computeLinkUrlField:function(){return this.computePropsOpts.linkUrl||"linkUrl"},computeRouterLinkField:function(){return this.computePropsOpts.routerLink||"routerLink"},computeScrollbarOpts:function(){return Object.assign({},getConfig().menu.scrollbarConfig,this.scrollbarConfig)},computeCurrBorder:function(){var e=this.border;return e?!0===e?"first-group":e:""},computeMenuOpts:function(){return Object.assign({},getConfig().tree.menuConfig,this.menuConfig)},computeIsCollapsed:function(){var e=this.$xeLayoutAside,t=this.collapsed;return _xeUtils.default.isBoolean(t)?t:!!e&&!!e.collapsed},computeVarStyle:function(){var e=this.$xeLayoutAside;return e?e.computeVarStyle:{}},computeCollapseEnterWidth:function(){var e=this.$xeLayoutAside,t="";return t=e?e.width||"":t}}),methods:{dispatchEvent:function(e,t,n){this.$emit(e,(0,_ui.createEvent)(n,{$menu:this},t))},emitModel:function(e){var t=this,n=t.reactData,i=t._events;n.activeName=e,t.$emit("input",e),i&&i.modelValue?t.$emit("modelValue",e):t.$emit("model-value",e)},callSlot:function(e,t,n){var i=this.$scopedSlots;return e&&(_xeUtils.default.isString(e)&&(e=i[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e.call(this,t,n)):[]},setExpandByMenuKey:function(e,t){var n=this.internalData,i=n.menuKeyMaps,r=n.menuInitMaps;return e&&(e=_xeUtils.default.isArray(e)?e:[e]).forEach(function(e){e=i[e];e&&(t&&(r[e.itemId]=!0),e.isExpand=!!t)}),this.$nextTick()},clearAllExpandMenu:function(){var e=this.reactData,t=this.internalData,e=e.menuList;return _xeUtils.default.eachTree(e,function(e){e.isExpand=!1},{children:"childList"}),t.menuInitMaps={},this.$nextTick()},handleScrollToView:function(e){var t=this.$refs.refElem,t=t?t.querySelector('.vxe-menu--item-wrapper[data-menu-id="'.concat(e,'"]')):null;return!!t&&((0,_dom.scrollToView)(t),!0)},scrollToMenuKey:function(e){var t,n=this,e=n.internalData.menuKeyMaps[e];return!e||(t=e.itemId,n.handleScrollToView(t))?n.$nextTick():n.$nextTick().then(function(){n.handleScrollToView(t)})},scrollToActiveMenu:function(){var t=this,n=t.reactData,e=n.activeName;return e?t.scrollToMenuKey(e):t.$nextTick().then(function(){var e=n.activeName;if(e)return t.scrollToMenuKey(e)})},getMenuTitle:function(e){return"".concat(e.title||e.name)},updateZindex:function(){var e=this.reactData;e.collapseZindex<(0,_utils.getLastZIndex)()&&(e.collapseZindex=(0,_utils.nextZIndex)())},updateActiveMenu:function(a){var e=this.reactData,t=this.internalData,l=e.activeName,u=t.menuInitMaps;_xeUtils.default.eachTree(e.menuList,function(e,t,n,i,r,o){e.itemKey===l?(o.forEach(function(e){e.isActive=!0,a&&(e.isExpand=!0,u[e.itemId]=!0)}),e.isExactActive=!0):(e.isExactActive=!1,e.isActive=!1)},{children:"childList"})},updateMenuConfig:function(){var e=this,t=e.reactData,n=e.internalData,i=e.options,c=e.expandAll,r=e.expandKeys,d={},p=e.computeTitleField,m=e.computeKeyField,f=e.computeChildrenField,v=e.computeLinkUrlField,h=e.computeRouterLinkField,x={},g=(r&&r.forEach(function(e){x[e]=!0}),{}),C={};t.menuList=_xeUtils.default.mapTree(i,function(e,t,n,i,r){var o=++nemuUniqueKey,a=e[m]||i.join(","),l=e[f],u=l&&0<l.length,s=!!u&&(_xeUtils.default.isBoolean(e.expanded)?e.expanded:x[a]||!!c),l=(s&&(d[o]=!0),{itemConf:e,title:e[p],name:e[m],icon:e.icon,linkUrl:e[v],linkTarget:e.linkTarget,routerLink:e[h],permissionCode:e.permissionCode,children:l,slots:e.slots,parentKey:r?r.name||i.slice(0,i.length-1).join(","):"",level:i.length,itemId:o,itemKey:a,isExactActive:!1,isActive:!1,isExpand:s,hasChild:u,childList:[]});return C[a]&&errLog("vxe.error.repeatKey",[m,e[m]]),C[a]=g[o]=l},{children:"children",mapChildren:"childList"}),n.menuInitMaps=d,n.menuCacheMaps=g,n.menuKeyMaps=C},updateCollapseStyle:function(){var i=this,r=i.reactData;i.collapseFixed&&i.$nextTick(function(){var e,t=i.computeIsCollapsed,n=i.$refs.refElem;n&&(e=n.getBoundingClientRect(),n=n.parentNode,r.collapseStyle=t?{top:(0,_dom.toCssUnit)(e.top),left:(0,_dom.toCssUnit)(e.left),height:(0,_dom.toCssUnit)(n.clientHeight),zIndex:r.collapseZindex}:{})})},handleCollapseMenu:function(){var t=this,e=t.reactData,n=t.collapseFixed,i=t.appendTo;n&&(n=e.initialized,t.computeIsCollapsed&&!n&&(e.initialized=!0,t.$nextTick(function(){var e=t.$refs.refCollapseElem;e&&(0,_dom.getPopupAppendElement)(i).appendChild(e)})),e.isEnterCollapse=!1,t.updateZindex(),t.updateCollapseStyle())},handleClickIconCollapse:function(e,t,n){var i,r=this,o=r.internalData,a=r.accordion,l=o.menuEffectMaps,o=o.menuInitMaps,u=t.itemId,s=r.computeIsCollapsed,c=!t.isExpand;t.hasChild&&(e.stopPropagation(),e.preventDefault(),l[u]&&clearTimeout(l[u]),a&&n.forEach(function(e){e!==t&&(e.isExpand=!1)}),t.isExpand=c,o[u]=!0,e=s?r.$refs.refCollapseElem:r.$refs.refElem)&&(a=e.querySelector('.vxe-menu--item-wrapper[data-menu-id="'.concat(u,'"]')),i=a?a.querySelector(".vxe-menu--item-group"):null)&&(c?(i.style.height="0",i.setAttribute("data-effect","y"),requestAnimationFrame(function(){i.style.height="".concat(i.scrollHeight,"px")})):(i.style.height="".concat(i.scrollHeight,"px"),i.setAttribute("data-effect","y"),requestAnimationFrame(function(){i.style.height="0"})),l[u]=setTimeout(function(){delete l[u],i.removeAttribute("data-effect"),i.style.height=""},350))},handleContextmenuEvent:function(i,r){var o=this,e=o.menuConfig,t=o.computeMenuOpts;(e?(0,_utils.isEnableConf)(t):t.enabled)&&(e=t.options,(t=t.visibleMethod)&&!t({$menu:o,options:e,currentMenu:r,currentOption:r.itemConf})||_ui.VxeUI.contextMenu&&_ui.VxeUI.contextMenu.openByEvent(i,{options:e,events:{optionClick:function(e){var t=e.option,n=menus.get(t.code),n=n?n.menuMenuMethod:null,t={menu:t,currentMenu:r,currentOption:r.itemConf,$event:i,$menu:o};n&&n(t,i),o.dispatchEvent("menu-click",t,e.$event)}}})),o.dispatchEvent("option-menu",{currentMenu:r},i)},handleClickMenu:function(e,t,n){var i=this,r=i.reactData,o=i.internalData,a=t.itemKey,n=(!t.linkUrl&&!t.routerLink&&t.hasChild?i.handleClickIconCollapse(e,t,n):(i.emitModel(a),r.isEnterCollapse=!1,o.lastActiveTime=Date.now()),{currentMenu:t,currentOption:t.itemConf,option:t.itemConf,menu:t});i.dispatchEvent("click",n,e)},handleMenuMouseenter:function(){var e=this.reactData;this.internalData.lastActiveTime<Date.now()-500&&(e.isEnterCollapse=!0)},handleMenuMouseleave:function(){this.reactData.isEnterCollapse=!1},renderMenuTitle:function(e,t,n){var i=this,r=i.$scopedSlots,o=t.icon,a=t.isExpand,l=t.hasChild,u=t.slots||{},s=u.default||r.option,c=u.title||r.optionTitle||r["option-title"],u=u.icon||r.optionIcon||r["option-icon"],r=i.getMenuTitle(t),d=i.computeIsCollapsed,d={currentMenu:t,currentOption:t.itemConf,option:t.itemConf,collapsed:d};return[s?(0,_ui.renderEmptyElement)(i):e("div",{class:"vxe-menu--item-link-icon"},u?i.callSlot(u,d,e):o?[e("i",{class:o})]:[]),s?e("div",{class:"vxe-menu--item-custom-title"},i.callSlot(s,d,e)):e("div",{class:"vxe-menu--item-link-title",attrs:{title:r}},c?i.callSlot(c,d,e):r),l?e("div",{class:"vxe-menu--item-link-collapse",on:{click:function(e){i.handleClickIconCollapse(e,t,n)}}},[e("i",{class:a?getIcon().MENU_ITEM_EXPAND_OPEN:getIcon().MENU_ITEM_EXPAND_CLOSE})]):(0,_ui.renderEmptyElement)(i)]},renderDefaultChildren:function(t,n,i){var r=this,e=r.reactData,o=n.itemId,a=n.itemKey,l=n.level,u=n.hasChild,s=n.isActive,c=n.isExactActive,d=n.isExpand,p=n.linkUrl,m=n.routerLink,f=n.linkTarget,v=n.childList,e=e.isEnterCollapse,h=r.internalData.menuInitMaps,x=r.computeIsCollapsed;return n.permissionCode&&!_ui.permission.checkVisible(n.permissionCode)?(0,_ui.renderEmptyElement)(r):(x=(!x||e)&&d,e={contextmenu:function(e){r.handleContextmenuEvent(e,n)},click:function(e){r.handleClickMenu(e,n,i)}},t("div",{key:a,class:["vxe-menu--item-wrapper","vxe-menu--item-level".concat(l),{"has--child":u,"is--exact-active":c,"is--active":s,"is--expand":x}],attrs:{"data-menu-id":o}},[p?t("a",{class:"vxe-menu--item-link is--link",attrs:{href:p,target:f},on:e},r.renderMenuTitle(t,n,i)):m?t("router-link",{class:"vxe-menu--item-link is--router",props:{custom:!0,to:m,target:f},nativeOn:e},r.renderMenuTitle(t,n,i)):t("div",{class:"vxe-menu--item-link is--default",on:e},r.renderMenuTitle(t,n,i)),u?t("div",{class:"vxe-menu--item-group"},x||h[o]?v.map(function(e){return r.renderDefaultChildren(t,e,v)}):[]):(0,_ui.renderEmptyElement)(r)]))},renderCollapseChildren:function(t,n,i){var e,r=this,o=n.itemId,a=n.itemKey,l=n.level,u=n.hasChild,s=n.isActive,c=n.isExactActive,d=n.routerLink,p=n.linkUrl,m=n.linkTarget,f=n.childList;return n.permissionCode&&!_ui.permission.checkVisible(n.permissionCode)?(0,_ui.renderEmptyElement)(r):(e={contextmenu:function(e){r.handleContextmenuEvent(e,n)},click:function(e){r.handleClickMenu(e,n,i)}},t("div",{key:a,class:["vxe-menu--item-wrapper","vxe-menu--item-level".concat(l),{"has--child":u,"is--exact-active":c,"is--active":s}],attrs:{"data-menu-id":o}},[p?t("a",{class:"vxe-menu--item-link is--link",attrs:{href:p,target:m},on:e},r.renderMenuTitle(t,n,i)):d?t("router-link",{class:"vxe-menu--item-link is--router",props:{custom:!0,to:d,target:m},nativeOn:e},r.renderMenuTitle(t,n,i)):t("div",{class:"vxe-menu--item-link is--default",on:e},r.renderMenuTitle(t,n,i)),u?t("div",{class:"vxe-menu--item-group"},f.map(function(e){return r.renderDefaultChildren(t,e,f)})):(0,_ui.renderEmptyElement)(r)]))},renderVN:function(t){var n=this,e=n.$scopedSlots,i=n.reactData,r=n.loading,o=n.useScrollbar,a=i.initialized,l=i.menuList,u=i.collapseStyle,i=i.isEnterCollapse,s=n.computeSize,c=n.computeIsCollapsed,d=n.computeCurrBorder,p=n.computeVarStyle,m=n.computeScrollbarOpts,f=m.viewClassName,v=m.viewInnerClassName,h=e.header,e=e.footer,x={},g=(n.collapseFixed&&(x={mouseenter:n.handleMenuMouseenter,mouseleave:n.handleMenuMouseleave}),{collapsed:c});return t("div",{ref:"refElem",class:["vxe-menu",_defineProperty(_defineProperty(_defineProperty(_defineProperty({},"border--".concat(d),d),"size--".concat(s),s),"is--collapsed",c),"is--loading",r)]},[h?t("div",{class:"vxe-menu--header"},h(g)):(0,_ui.renderEmptyElement)(n),t("div",{class:"vxe-menu--body"},l.map(function(e){return c?n.renderCollapseChildren(t,e,l):n.renderDefaultChildren(t,e,l)})),e?t("div",{class:"vxe-menu--footer"},e(g)):(0,_ui.renderEmptyElement)(n),a?t("div",{ref:"refCollapseElem",class:["vxe-menu--collapse-wrapper",_defineProperty(_defineProperty(_defineProperty(_defineProperty({},"size--".concat(s),s),"is--collapsed",c),"is--enter",i),"is--loading",r)],style:Object.assign({},p,u),on:x},c?[h?t("div",{class:"vxe-menu--header"},h(g)):(0,_ui.renderEmptyElement)(n),o?t(_scrollbar.default,{class:"vxe-menu--scrollbar-body",props:Object.assign(Object.assign({},m),{viewClassName:"vxe-menu--body-view"+(f?" "+f:""),viewInnerClassName:"vxe-menu--body-inner"+(f?" "+v:"")}),scopedSlots:{default:function(){return l.map(function(e){return n.renderDefaultChildren(t,e,l)})}}}):t("div",{class:"vxe-menu--body"},l.map(function(e){return n.renderDefaultChildren(t,e,l)})),e?t("div",{class:"vxe-menu--footer"},e(g)):(0,_ui.renderEmptyElement)(n)]:[]):(0,_ui.renderEmptyElement)(n),t(_loading.default,{class:"vxe-menu-view--loading",props:{value:r}})])}},watch:{value:function(e){this.reactData.activeName=e},options:function(){var e=this;e.updateMenuConfig(),e.updateActiveMenu(!0),e.$nextTick(function(){e.scrollToActiveMenu()})},"reactData.activeName":function(){this.updateActiveMenu(!0)},computeIsCollapsed:function(){this.handleCollapseMenu()}},created:function(){var e=this,t=e,n=(e.internalData=createInternalData(),e.reactData);n.initialized=!!t.collapsed,n.activeName=t.value,e.updateMenuConfig(),e.updateActiveMenu(!0)},mounted:function(){var e=this,t=e.menuConfig,n=_ui.VxeUI.getComponent("VxeContextMenu");t&&!n&&errLog("vxe.error.reqComp",["vxe-context-menu"]),e.updateCollapseStyle(),_ui.globalEvents.on(e,"resize",e.updateCollapseStyle),e.$nextTick(function(){e.scrollToActiveMenu()})},beforeDestroy:function(){var e,t=this.reactData,n=this.internalData,i=this.$refs.refCollapseElem;i&&(e=i.parentNode)&&e.removeChild(i),_ui.globalEvents.off(this,"resize"),_xeUtils.default.assign(t,createReactData()),_xeUtils.default.assign(n,createInternalData())},render:function(e){return this.renderVN(e)}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log"),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==_typeof(e)?e:e+""}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);n=n.call(e,t||"default");if("object"!=_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}var _createComponentLog=(0,_log.createComponentLog)("menu"),errLog=_createComponentLog.errLog,menus=_ui.VxeUI.menus,getConfig=_ui.VxeUI.getConfig,getIcon=_ui.VxeUI.getIcon;function createInternalData(){return{lastActiveTime:0,menuInitMaps:{},menuCacheMaps:{},menuKeyMaps:{},menuEffectMaps:{}}}function createReactData(){return{initialized:!1,isEnterCollapse:!1,collapseStyle:{},collapseZindex:0,activeName:"",menuList:[],itemHeight:1}}var nemuUniqueKey=1e8,_default2=exports.default=(0,_comp.defineVxeComponent)({name:"VxeMenu",mixins:[_ui.globalMixins.sizeMixin,_ui.globalMixins.permissionMixin],props:{value:[String,Number],expandAll:Boolean,expandKeys:Array,accordion:{type:Boolean,default:function(){return getConfig().menu.accordion}},border:{type:[Boolean,String],default:function(){return getConfig().menu.border}},optionProps:{type:Object,default:function(){return getConfig().menu.optionProps}},collapsed:{type:Boolean,default:null},collapseFixed:Boolean,loading:Boolean,options:{type:Array,default:function(){return[]}},size:{type:String,default:function(){return getConfig().menu.size||getConfig().size}},menuConfig:Object,useScrollbar:{type:Boolean,default:function(){return getConfig().menu.useScrollbar}},scrollbarConfig:Object,appendTo:{type:[String,Function],default:function(){return getConfig().menu.appendTo}}},inject:{$xeLayoutAside:{default:null}},data:function(){var e=createReactData();return Object.assign(Object.assign({},{}),{xID:_xeUtils.default.uniqueId(),reactData:e})},computed:Object.assign(Object.assign({},{}),{computePropsOpts:function(){return Object.assign({},getConfig().menu.optionProps,this.optionProps)},computeTitleField:function(){return this.computePropsOpts.title||"title"},computeKeyField:function(){return this.computePropsOpts.name||"name"},computeChildrenField:function(){return this.computePropsOpts.children||"children"},computeLinkUrlField:function(){return this.computePropsOpts.linkUrl||"linkUrl"},computeRouterLinkField:function(){return this.computePropsOpts.routerLink||"routerLink"},computeScrollbarOpts:function(){return Object.assign({},getConfig().menu.scrollbarConfig,this.scrollbarConfig)},computeCurrBorder:function(){var e=this.border;return e?!0===e?"first-group":e:""},computeMenuOpts:function(){return Object.assign({},getConfig().tree.menuConfig,this.menuConfig)},computeIsCollapsed:function(){var e=this.$xeLayoutAside,t=this.collapsed;return _xeUtils.default.isBoolean(t)?t:!!e&&!!e.collapsed},computeVarStyle:function(){var e=this.$xeLayoutAside;return e?e.computeVarStyle:{}},computeCollapseEnterWidth:function(){var e=this.$xeLayoutAside,t="";return t=e?e.width||"":t}}),methods:{dispatchEvent:function(e,t,n){this.$emit(e,(0,_ui.createEvent)(n,{$menu:this},t))},emitModel:function(e){var t=this,n=t.reactData,i=t._events;n.activeName=e,t.$emit("input",e),i&&i.modelValue?t.$emit("modelValue",e):t.$emit("model-value",e)},callSlot:function(e,t,n){var i=this.$scopedSlots;return e&&(_xeUtils.default.isString(e)&&(e=i[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e.call(this,t,n)):[]},setExpandByMenuKey:function(e,t){var n=this.internalData,i=n.menuKeyMaps,r=n.menuInitMaps;return e&&(e=_xeUtils.default.isArray(e)?e:[e]).forEach(function(e){e=i[e];e&&(t&&(r[e.itemId]=!0),e.isExpand=!!t)}),this.$nextTick()},clearAllExpandMenu:function(){var e=this.reactData,t=this.internalData,e=e.menuList;return _xeUtils.default.eachTree(e,function(e){e.isExpand=!1},{children:"childList"}),t.menuInitMaps={},this.$nextTick()},handleScrollToView:function(e){var t=this.$refs.refElem,t=t?t.querySelector('.vxe-menu--item-wrapper[data-menu-id="'.concat(e,'"]')):null;return!!t&&((0,_dom.scrollToView)(t),!0)},scrollToMenuKey:function(e){var t,n=this,e=n.internalData.menuKeyMaps[e];return!e||(t=e.itemId,n.handleScrollToView(t))?n.$nextTick():n.$nextTick().then(function(){n.handleScrollToView(t)})},scrollToActiveMenu:function(){var t=this,n=t.reactData,e=n.activeName;return e?t.scrollToMenuKey(e):t.$nextTick().then(function(){var e=n.activeName;if(e)return t.scrollToMenuKey(e)})},getMenuTitle:function(e){return"".concat(e.title||e.name)},updateZindex:function(){var e=this.reactData;e.collapseZindex<(0,_utils.getLastZIndex)()&&(e.collapseZindex=(0,_utils.nextZIndex)())},updateActiveMenu:function(l){var e=this.reactData,t=this.internalData,a=e.activeName,u=t.menuInitMaps;_xeUtils.default.eachTree(e.menuList,function(e,t,n,i,r,o){e.itemKey===a?(o.forEach(function(e){e.isActive=!0,l&&(e.isExpand=!0,u[e.itemId]=!0)}),e.isExactActive=!0):(e.isExactActive=!1,e.isActive=!1)},{children:"childList"})},updateMenuConfig:function(){var e=this,t=e.reactData,n=e.internalData,i=e.options,c=e.expandAll,r=e.expandKeys,d={},p=e.computeTitleField,m=e.computeKeyField,f=e.computeChildrenField,v=e.computeLinkUrlField,h=e.computeRouterLinkField,x={},C=(r&&r.forEach(function(e){x[e]=!0}),{}),g={};t.menuList=_xeUtils.default.mapTree(i,function(e,t,n,i,r){var o=++nemuUniqueKey,l=e[m]||i.join(","),a=e[f],u=a&&0<a.length,s=!!u&&(_xeUtils.default.isBoolean(e.expanded)?e.expanded:x[l]||!!c),a=(s&&(d[o]=!0),{itemConf:e,title:e[p],name:e[m],icon:e.icon,linkUrl:e[v],linkTarget:e.linkTarget,routerLink:e[h],permissionCode:e.permissionCode,children:a,slots:e.slots,parentKey:r?r.name||i.slice(0,i.length-1).join(","):"",level:i.length,itemId:o,itemKey:l,isExactActive:!1,isActive:!1,isExpand:s,hasChild:u,childList:[]});return g[l]&&errLog("vxe.error.repeatKey",[m,e[m]]),g[l]=C[o]=a},{children:"children",mapChildren:"childList"}),n.menuInitMaps=d,n.menuCacheMaps=C,n.menuKeyMaps=g},updateCollapseStyle:function(){var i=this,r=i.reactData;i.collapseFixed&&i.$nextTick(function(){var e,t=i.computeIsCollapsed,n=i.$refs.refElem;n&&(e=n.getBoundingClientRect(),n=n.parentElement)&&(e.top<0&&(e=n.getBoundingClientRect()),r.collapseStyle=t?{top:(0,_dom.toCssUnit)(e.top),left:(0,_dom.toCssUnit)(e.left),height:(0,_dom.toCssUnit)(n.clientHeight),zIndex:r.collapseZindex}:{})})},handleCollapseMenu:function(){var t=this,e=t.reactData,n=t.collapseFixed,i=t.appendTo;n&&(n=e.initialized,t.computeIsCollapsed&&!n&&(e.initialized=!0,t.$nextTick(function(){var e=t.$refs.refCollapseElem;e&&(0,_dom.getPopupAppendElement)(i).appendChild(e)})),e.isEnterCollapse=!1,t.updateZindex(),t.updateCollapseStyle())},handleClickIconCollapse:function(e,t,n){var i,r=this,o=r.internalData,l=r.accordion,a=o.menuEffectMaps,o=o.menuInitMaps,u=t.itemId,s=r.computeIsCollapsed,c=!t.isExpand;t.hasChild&&(e.stopPropagation(),e.preventDefault(),a[u]&&clearTimeout(a[u]),l&&n.forEach(function(e){e!==t&&(e.isExpand=!1)}),t.isExpand=c,o[u]=!0,e=s?r.$refs.refCollapseElem:r.$refs.refElem)&&(l=e.querySelector('.vxe-menu--item-wrapper[data-menu-id="'.concat(u,'"]')),i=l?l.querySelector(".vxe-menu--item-group"):null)&&(c?(i.style.height="0",i.setAttribute("data-effect","y"),requestAnimationFrame(function(){i.style.height="".concat(i.scrollHeight,"px")})):(i.style.height="".concat(i.scrollHeight,"px"),i.setAttribute("data-effect","y"),requestAnimationFrame(function(){i.style.height="0"})),a[u]=setTimeout(function(){delete a[u],i.removeAttribute("data-effect"),i.style.height=""},350))},handleContextmenuEvent:function(i,r){var o=this,e=o.menuConfig,t=o.computeMenuOpts;(e?(0,_utils.isEnableConf)(t):t.enabled)&&(e=t.options,(t=t.visibleMethod)&&!t({$menu:o,options:e,currentMenu:r,currentOption:r.itemConf})||_ui.VxeUI.contextMenu&&_ui.VxeUI.contextMenu.openByEvent(i,{options:e,events:{optionClick:function(e){var t=e.option,n=menus.get(t.code),n=n?n.menuMenuMethod:null,t={menu:t,currentMenu:r,currentOption:r.itemConf,$event:i,$menu:o};n&&n(t,i),o.dispatchEvent("menu-click",t,e.$event)}}})),o.dispatchEvent("option-menu",{currentMenu:r},i)},handleClickMenu:function(e,t,n){var i=this,r=i.reactData,o=i.internalData,l=t.itemKey,n=(!t.linkUrl&&!t.routerLink&&t.hasChild?i.handleClickIconCollapse(e,t,n):(i.emitModel(l),r.isEnterCollapse=!1,o.lastActiveTime=Date.now()),{currentMenu:t,currentOption:t.itemConf,option:t.itemConf,menu:t});i.dispatchEvent("click",n,e)},handleMenuMouseenter:function(){var e=this.reactData;this.internalData.lastActiveTime<Date.now()-500&&(e.isEnterCollapse=!0)},handleMenuMouseleave:function(){var e=this.reactData,t=this.$refs.refCollapseBodyScrollbar,n=this.$refs.refCollapseBodyElem;n&&(n.scrollTop=0),t&&t.clearScroll(),e.isEnterCollapse=!1},renderMenuTitle:function(e,t,n){var i=this,r=i.$scopedSlots,o=t.icon,l=t.isExpand,a=t.hasChild,u=t.slots||{},s=u.default||r.option,c=u.title||r.optionTitle||r["option-title"],u=u.icon||r.optionIcon||r["option-icon"],r=i.getMenuTitle(t),d=i.computeIsCollapsed,d={currentMenu:t,currentOption:t.itemConf,option:t.itemConf,collapsed:d};return[s?(0,_ui.renderEmptyElement)(i):e("div",{class:"vxe-menu--item-link-icon"},u?i.callSlot(u,d,e):o?[e("i",{class:o})]:[]),s?e("div",{class:"vxe-menu--item-custom-title"},i.callSlot(s,d,e)):e("div",{class:"vxe-menu--item-link-title",attrs:{title:r}},c?i.callSlot(c,d,e):r),a?e("div",{class:"vxe-menu--item-link-collapse",on:{click:function(e){i.handleClickIconCollapse(e,t,n)}}},[e("i",{class:l?getIcon().MENU_ITEM_EXPAND_OPEN:getIcon().MENU_ITEM_EXPAND_CLOSE})]):(0,_ui.renderEmptyElement)(i)]},renderDefaultChildren:function(t,n,i){var r=this,e=r.reactData,o=n.itemId,l=n.itemKey,a=n.level,u=n.hasChild,s=n.isActive,c=n.isExactActive,d=n.isExpand,p=n.linkUrl,m=n.routerLink,f=n.linkTarget,v=n.childList,e=e.isEnterCollapse,h=r.internalData.menuInitMaps,x=r.computeIsCollapsed;return n.permissionCode&&!_ui.permission.checkVisible(n.permissionCode)?(0,_ui.renderEmptyElement)(r):(x=(!x||e)&&d,e={contextmenu:function(e){r.handleContextmenuEvent(e,n)},click:function(e){r.handleClickMenu(e,n,i)}},t("div",{key:l,class:["vxe-menu--item-wrapper","vxe-menu--item-level".concat(a),{"has--child":u,"is--exact-active":c,"is--active":s,"is--expand":x}],attrs:{"data-menu-id":o}},[p?t("a",{class:"vxe-menu--item-link is--link",attrs:{href:p,target:f},on:e},r.renderMenuTitle(t,n,i)):m?t("router-link",{class:"vxe-menu--item-link is--router",props:{custom:!0,to:m,target:f},nativeOn:e},r.renderMenuTitle(t,n,i)):t("div",{class:"vxe-menu--item-link is--default",on:e},r.renderMenuTitle(t,n,i)),u?t("div",{class:"vxe-menu--item-group"},x||h[o]?v.map(function(e){return r.renderDefaultChildren(t,e,v)}):[]):(0,_ui.renderEmptyElement)(r)]))},renderCollapseChildren:function(t,n,i){var e,r=this,o=n.itemId,l=n.itemKey,a=n.level,u=n.hasChild,s=n.isActive,c=n.isExactActive,d=n.routerLink,p=n.linkUrl,m=n.linkTarget,f=n.childList;return n.permissionCode&&!_ui.permission.checkVisible(n.permissionCode)?(0,_ui.renderEmptyElement)(r):(e={contextmenu:function(e){r.handleContextmenuEvent(e,n)},click:function(e){r.handleClickMenu(e,n,i)}},t("div",{key:l,class:["vxe-menu--item-wrapper","vxe-menu--item-level".concat(a),{"has--child":u,"is--exact-active":c,"is--active":s}],attrs:{"data-menu-id":o}},[p?t("a",{class:"vxe-menu--item-link is--link",attrs:{href:p,target:m},on:e},r.renderMenuTitle(t,n,i)):d?t("router-link",{class:"vxe-menu--item-link is--router",props:{custom:!0,to:d,target:m},nativeOn:e},r.renderMenuTitle(t,n,i)):t("div",{class:"vxe-menu--item-link is--default",on:e},r.renderMenuTitle(t,n,i)),u?t("div",{class:"vxe-menu--item-group"},f.map(function(e){return r.renderDefaultChildren(t,e,f)})):(0,_ui.renderEmptyElement)(r)]))},renderVN:function(t){var n=this,e=n.$scopedSlots,i=n.reactData,r=n.loading,o=n.useScrollbar,l=i.initialized,a=i.menuList,u=i.collapseStyle,i=i.isEnterCollapse,s=n.computeSize,c=n.computeIsCollapsed,d=n.computeCurrBorder,p=n.computeVarStyle,m=n.computeScrollbarOpts,f=m.viewClassName,v=m.viewInnerClassName,h=e.header,e=e.footer,x={},C=(n.collapseFixed&&(x={mouseenter:n.handleMenuMouseenter,mouseleave:n.handleMenuMouseleave}),{collapsed:c});return t("div",{ref:"refElem",class:["vxe-menu",_defineProperty(_defineProperty(_defineProperty(_defineProperty({},"border--".concat(d),d),"size--".concat(s),s),"is--collapsed",c),"is--loading",r)]},[h?t("div",{class:"vxe-menu--header"},h(C)):(0,_ui.renderEmptyElement)(n),t("div",{class:"vxe-menu--body"},a.map(function(e){return c?n.renderCollapseChildren(t,e,a):n.renderDefaultChildren(t,e,a)})),e?t("div",{class:"vxe-menu--footer"},e(C)):(0,_ui.renderEmptyElement)(n),l?t("div",{ref:"refCollapseElem",class:["vxe-menu--collapse-wrapper",_defineProperty(_defineProperty(_defineProperty(_defineProperty({},"size--".concat(s),s),"is--collapsed",c),"is--enter",i),"is--loading",r)],style:Object.assign({},p,u),on:x},c?[h?t("div",{class:"vxe-menu--header"},h(C)):(0,_ui.renderEmptyElement)(n),o&&i?t(_scrollbar.default,{ref:"refCollapseBodyScrollbar",class:"vxe-menu--scrollbar-body",props:Object.assign(Object.assign({},m),{viewClassName:"vxe-menu--scrollbar-body-view"+(f?" "+f:""),viewInnerClassName:"vxe-menu--scrollbar-body-inner"+(f?" "+v:"")}),scopedSlots:{default:function(){return a.map(function(e){return n.renderDefaultChildren(t,e,a)})}}}):t("div",{ref:"refCollapseBodyElem",class:"vxe-menu--body"},a.map(function(e){return n.renderDefaultChildren(t,e,a)})),e?t("div",{class:"vxe-menu--footer"},e(C)):(0,_ui.renderEmptyElement)(n)]:[]):(0,_ui.renderEmptyElement)(n),t(_loading.default,{class:"vxe-menu-view--loading",props:{value:r}})])}},watch:{value:function(e){this.reactData.activeName=e},options:function(){var e=this;e.updateMenuConfig(),e.updateActiveMenu(!0),e.$nextTick(function(){e.scrollToActiveMenu()})},"reactData.activeName":function(){this.updateActiveMenu(!0)},computeIsCollapsed:function(){this.handleCollapseMenu()}},created:function(){var e=this,t=e,n=(e.internalData=createInternalData(),e.reactData);n.initialized=!!t.collapsed,n.activeName=t.value,e.updateMenuConfig(),e.updateActiveMenu(!0)},mounted:function(){var e=this,t=e.menuConfig,n=_ui.VxeUI.getComponent("VxeContextMenu");t&&!n&&errLog("vxe.error.reqComp",["vxe-context-menu"]),e.updateCollapseStyle(),_ui.globalEvents.on(e,"resize",e.updateCollapseStyle),e.$nextTick(function(){e.scrollToActiveMenu()})},beforeDestroy:function(){var e,t=this.reactData,n=this.internalData,i=this.$refs.refCollapseElem;i&&(e=i.parentNode)&&e.removeChild(i),_ui.globalEvents.off(this,"resize"),_xeUtils.default.assign(t,createReactData()),_xeUtils.default.assign(n,createInternalData())},render:function(e){return this.renderVN(e)}});
@@ -97,20 +97,28 @@
97
97
  .vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-collapse {
98
98
  display: none;
99
99
  }
100
+ .vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--scrollbar-body .vxe-scrollbar--track-x,
101
+ .vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--scrollbar-body .vxe-scrollbar--track-y {
102
+ display: none;
103
+ }
104
+ .vxe-menu--collapse-wrapper:not(.is--enter) > .vxe-menu--body {
105
+ overflow: hidden;
106
+ }
100
107
  .vxe-menu--collapse-wrapper.is--enter {
101
108
  width: var(--vxe-ui-layout-aside-default-width);
102
109
  box-shadow: var(--vxe-ui-menu-collapse-wrapper-box-shadow);
103
110
  }
111
+ .vxe-menu--collapse-wrapper.is--enter > .vxe-menu--body {
112
+ overflow: auto;
113
+ }
104
114
  .vxe-menu--collapse-wrapper > .vxe-menu--header, .vxe-menu--collapse-wrapper > .vxe-menu--footer {
105
115
  flex-shrink: 0;
106
116
  }
107
117
  .vxe-menu--collapse-wrapper > .vxe-menu--scrollbar-body {
108
- flex-grow: 1;
109
118
  overflow: hidden;
110
119
  }
111
- .vxe-menu--collapse-wrapper > .vxe-menu--body {
120
+ .vxe-menu--collapse-wrapper > .vxe-menu--body, .vxe-menu--collapse-wrapper > .vxe-menu--scrollbar-body {
112
121
  flex-grow: 1;
113
- overflow: auto;
114
122
  }
115
123
 
116
124
  .vxe-menu--item-link {
@@ -1 +1 @@
1
- .vxe-menu,.vxe-menu--collapse-wrapper{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-default);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-default);--vxe-ui-menu-current-margin:4px}.vxe-menu--collapse-wrapper.size--xlarge,.vxe-menu.size--xlarge{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-xlarge);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-xlarge);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-xlarge)}.vxe-menu--collapse-wrapper.size--large,.vxe-menu.size--large{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-large);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-large);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-large)}.vxe-menu--collapse-wrapper.size--medium,.vxe-menu.size--medium{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-medium);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-medium)}.vxe-menu--collapse-wrapper.size--small,.vxe-menu.size--small{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-small);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-small)}.vxe-menu--collapse-wrapper.size--mini,.vxe-menu.size--mini{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-mini);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-mini)}.vxe-menu--collapse-wrapper.size--large,.vxe-menu--collapse-wrapper.size--xlarge,.vxe-menu.size--large,.vxe-menu.size--xlarge{--vxe-ui-menu-current-margin:6px}.vxe-menu--collapse-wrapper.size--mini,.vxe-menu--collapse-wrapper.size--small,.vxe-menu.size--mini,.vxe-menu.size--small{--vxe-ui-menu-current-margin:2px}.vxe-menu{position:relative}.vxe-menu.is--collapsed .vxe-menu--item-custom-title,.vxe-menu.is--collapsed .vxe-menu--item-link-collapse,.vxe-menu.is--collapsed .vxe-menu--item-link-title{display:none}.vxe-menu.is--loading{min-height:4em}.vxe-menu.border--first .vxe-menu--item-level1>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu.border--first-group .vxe-menu--item-level1.has--child>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu.border--group .vxe-menu--item-wrapper.has--child>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu.border--all .vxe-menu--item-wrapper>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu,.vxe-menu--collapse-wrapper{font-size:var(--vxe-ui-menu-current-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper{display:none;flex-direction:column;position:absolute;overflow:hidden;background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper.is--collapsed{display:flex;transition:all .25s ease-in-out}.vxe-menu--collapse-wrapper:not(.is--enter){width:var(--vxe-ui-layout-aside-collapse-width)}.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-custom-title,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-collapse,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-title{display:none}.vxe-menu--collapse-wrapper.is--enter{width:var(--vxe-ui-layout-aside-default-width);box-shadow:var(--vxe-ui-menu-collapse-wrapper-box-shadow)}.vxe-menu--collapse-wrapper>.vxe-menu--footer,.vxe-menu--collapse-wrapper>.vxe-menu--header{flex-shrink:0}.vxe-menu--collapse-wrapper>.vxe-menu--scrollbar-body{flex-grow:1;overflow:hidden}.vxe-menu--collapse-wrapper>.vxe-menu--body{flex-grow:1;overflow:auto}.vxe-menu--item-link{display:flex;flex-direction:row;align-items:center;margin:0 var(--vxe-ui-menu-current-item-padding);height:var(--vxe-ui-menu-current-item-height);color:var(--vxe-ui-font-color);border-radius:var(--vxe-ui-base-border-radius);text-decoration:none;cursor:pointer}.vxe-menu--item-link:hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-menu--item-custom-title,.vxe-menu--item-link,.vxe-menu--item-link-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-menu--item-link-icon{flex-shrink:0;width:var(--vxe-ui-menu-icon-width);text-align:center}.vxe-menu--item-custom-title,.vxe-menu--item-link-title{flex-grow:1;padding-left:.2em}.vxe-menu--item-link-collapse{flex-shrink:0;padding:.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-menu--item-link-collapse i{display:inline-block;font-size:.8em;transition:transform .25s ease-in-out}.vxe-menu--item-wrapper{margin:var(--vxe-ui-menu-current-margin) 0}.vxe-menu--item-wrapper:first-child{margin-top:0}.vxe-menu--item-wrapper:last-child{margin-bottom:0}.vxe-menu--item-wrapper.vxe-menu--item-level1>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double)}.vxe-menu--item-wrapper.vxe-menu--item-level1>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 1)}.vxe-menu--item-wrapper.vxe-menu--item-level2>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 2)}.vxe-menu--item-wrapper.vxe-menu--item-level3>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 3)}.vxe-menu--item-wrapper.vxe-menu--item-level4>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 4)}.vxe-menu--item-wrapper.vxe-menu--item-level5>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 5)}.vxe-menu--item-wrapper.vxe-menu--item-level6>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 6)}.vxe-menu--item-wrapper.vxe-menu--item-level7>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 7)}.vxe-menu--item-group{height:0;overflow:hidden}.vxe-menu--item-group[data-effect]{transition:height .3s ease-in-out}.vxe-menu--item-wrapper.is--active>.vxe-menu--item-link{font-weight:700}.vxe-menu--item-wrapper.is--exact-active>.vxe-menu--item-link{color:var(--vxe-ui-font-primary-color);background-color:var(--vxe-ui-base-active-background-color)}.vxe-menu--item-wrapper.is--expand>.vxe-menu--item-group{height:auto}
1
+ .vxe-menu,.vxe-menu--collapse-wrapper{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-default);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-default);--vxe-ui-menu-current-margin:4px}.vxe-menu--collapse-wrapper.size--xlarge,.vxe-menu.size--xlarge{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-xlarge);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-xlarge);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-xlarge)}.vxe-menu--collapse-wrapper.size--large,.vxe-menu.size--large{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-large);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-large);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-large)}.vxe-menu--collapse-wrapper.size--medium,.vxe-menu.size--medium{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-medium);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-medium)}.vxe-menu--collapse-wrapper.size--small,.vxe-menu.size--small{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-small);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-small)}.vxe-menu--collapse-wrapper.size--mini,.vxe-menu.size--mini{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-mini);--vxe-ui-menu-current-item-padding:var(--vxe-ui-layout-padding-mini)}.vxe-menu--collapse-wrapper.size--large,.vxe-menu--collapse-wrapper.size--xlarge,.vxe-menu.size--large,.vxe-menu.size--xlarge{--vxe-ui-menu-current-margin:6px}.vxe-menu--collapse-wrapper.size--mini,.vxe-menu--collapse-wrapper.size--small,.vxe-menu.size--mini,.vxe-menu.size--small{--vxe-ui-menu-current-margin:2px}.vxe-menu{position:relative}.vxe-menu.is--collapsed .vxe-menu--item-custom-title,.vxe-menu.is--collapsed .vxe-menu--item-link-collapse,.vxe-menu.is--collapsed .vxe-menu--item-link-title{display:none}.vxe-menu.is--loading{min-height:4em}.vxe-menu.border--first .vxe-menu--item-level1>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu.border--first-group .vxe-menu--item-level1.has--child>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu.border--group .vxe-menu--item-wrapper.has--child>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu.border--all .vxe-menu--item-wrapper>.vxe-menu--item-link{border-bottom:1px solid var(--vxe-ui-menu-border-color)}.vxe-menu,.vxe-menu--collapse-wrapper{font-size:var(--vxe-ui-menu-current-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper{display:none;flex-direction:column;position:absolute;overflow:hidden;background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper.is--collapsed{display:flex;transition:all .25s ease-in-out}.vxe-menu--collapse-wrapper:not(.is--enter){width:var(--vxe-ui-layout-aside-collapse-width)}.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-custom-title,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-collapse,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-title{display:none}.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--scrollbar-body .vxe-scrollbar--track-x,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--scrollbar-body .vxe-scrollbar--track-y{display:none}.vxe-menu--collapse-wrapper:not(.is--enter)>.vxe-menu--body{overflow:hidden}.vxe-menu--collapse-wrapper.is--enter{width:var(--vxe-ui-layout-aside-default-width);box-shadow:var(--vxe-ui-menu-collapse-wrapper-box-shadow)}.vxe-menu--collapse-wrapper.is--enter>.vxe-menu--body{overflow:auto}.vxe-menu--collapse-wrapper>.vxe-menu--footer,.vxe-menu--collapse-wrapper>.vxe-menu--header{flex-shrink:0}.vxe-menu--collapse-wrapper>.vxe-menu--scrollbar-body{overflow:hidden}.vxe-menu--collapse-wrapper>.vxe-menu--body,.vxe-menu--collapse-wrapper>.vxe-menu--scrollbar-body{flex-grow:1}.vxe-menu--item-link{display:flex;flex-direction:row;align-items:center;margin:0 var(--vxe-ui-menu-current-item-padding);height:var(--vxe-ui-menu-current-item-height);color:var(--vxe-ui-font-color);border-radius:var(--vxe-ui-base-border-radius);text-decoration:none;cursor:pointer}.vxe-menu--item-link:hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-menu--item-custom-title,.vxe-menu--item-link,.vxe-menu--item-link-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-menu--item-link-icon{flex-shrink:0;width:var(--vxe-ui-menu-icon-width);text-align:center}.vxe-menu--item-custom-title,.vxe-menu--item-link-title{flex-grow:1;padding-left:.2em}.vxe-menu--item-link-collapse{flex-shrink:0;padding:.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-menu--item-link-collapse i{display:inline-block;font-size:.8em;transition:transform .25s ease-in-out}.vxe-menu--item-wrapper{margin:var(--vxe-ui-menu-current-margin) 0}.vxe-menu--item-wrapper:first-child{margin-top:0}.vxe-menu--item-wrapper:last-child{margin-bottom:0}.vxe-menu--item-wrapper.vxe-menu--item-level1>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double)}.vxe-menu--item-wrapper.vxe-menu--item-level1>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 1)}.vxe-menu--item-wrapper.vxe-menu--item-level2>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 2)}.vxe-menu--item-wrapper.vxe-menu--item-level3>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 3)}.vxe-menu--item-wrapper.vxe-menu--item-level4>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 4)}.vxe-menu--item-wrapper.vxe-menu--item-level5>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 5)}.vxe-menu--item-wrapper.vxe-menu--item-level6>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 6)}.vxe-menu--item-wrapper.vxe-menu--item-level7>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 7)}.vxe-menu--item-group{height:0;overflow:hidden}.vxe-menu--item-group[data-effect]{transition:height .3s ease-in-out}.vxe-menu--item-wrapper.is--active>.vxe-menu--item-link{font-weight:700}.vxe-menu--item-wrapper.is--exact-active>.vxe-menu--item-link{color:var(--vxe-ui-font-primary-color);background-color:var(--vxe-ui-base-active-background-color)}.vxe-menu--item-wrapper.is--expand>.vxe-menu--item-group{height:auto}
@@ -200,6 +200,44 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
200
200
  viewEl.scrollIntoView();
201
201
  }
202
202
  },
203
+ setScrollTop: function setScrollTop(top) {
204
+ var $xeScrollbar = this;
205
+ var viewEl = $xeScrollbar.$refs.refViewElem;
206
+ if (viewEl) {
207
+ viewEl.scrollTop = top;
208
+ }
209
+ },
210
+ setScrollLeft: function setScrollLeft(left) {
211
+ var $xeScrollbar = this;
212
+ var viewEl = $xeScrollbar.$refs.refViewElem;
213
+ if (viewEl) {
214
+ viewEl.scrollLeft = left;
215
+ }
216
+ },
217
+ getScrollTop: function getScrollTop() {
218
+ var $xeScrollbar = this;
219
+ var viewEl = $xeScrollbar.$refs.refViewElem;
220
+ if (viewEl) {
221
+ return viewEl.scrollTop;
222
+ }
223
+ return 0;
224
+ },
225
+ getScrollLeft: function getScrollLeft() {
226
+ var $xeScrollbar = this;
227
+ var viewEl = $xeScrollbar.$refs.refViewElem;
228
+ if (viewEl) {
229
+ return viewEl.scrollLeft;
230
+ }
231
+ return 0;
232
+ },
233
+ clearScroll: function clearScroll() {
234
+ var $xeScrollbar = this;
235
+ var viewEl = $xeScrollbar.$refs.refViewElem;
236
+ if (viewEl) {
237
+ viewEl.scrollTop = 0;
238
+ viewEl.scrollLeft = 0;
239
+ }
240
+ },
203
241
  recalculate: function recalculate() {
204
242
  var $xeScrollbar = this;
205
243
  $xeScrollbar.updateThumbSize();
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_util=require("./util"),_loading=_interopRequireDefault(require("../../loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var getConfig=_ui.VxeUI.getConfig,createEvent=_ui.VxeUI.createEvent,domUtils=_ui.VxeUI.domUtils,globalResize=_ui.VxeUI.globalResize,renderEmptyElement=_ui.VxeUI.renderEmptyElement;function createReactData(){return{yThumbHeight:0,xThumbWidth:0}}function createInternalData(){return{thumbDragOffset:0,yThumbTop:0,xThumbLeft:0,lastScrollTop:0,lastScrollLeft:0}}var _default2=exports.default=(0,_comp.defineVxeComponent)({name:"VxeScrollbar",props:{id:[String,Number],width:[String,Number],height:[String,Number],minWidth:[String,Number],minHeight:[String,Number],maxWidth:[String,Number],maxHeight:[String,Number],loading:Boolean,native:{type:Boolean,default:function(){return getConfig().scrollbar.native}},xConfig:Object,yConfig:Object,className:{type:String,default:function(){return getConfig().scrollbar.className}},viewAttrs:{type:Object,default:function(){return getConfig().scrollbar.viewAttrs}},viewClassName:{type:String,default:function(){return getConfig().scrollbar.viewClassName}},viewInnerClassName:{type:String,default:function(){return getConfig().scrollbar.viewInnerClassName}},autoResize:{type:Boolean,default:function(){return getConfig().scrollbar.autoResize}},syncResize:[Boolean,String,Number]},data:function(){var e=_xeUtils.default.uniqueId(),t=createReactData();return Object.assign(Object.assign({},{}),{xID:e,reactData:t,reFlag:0})},computed:{computeWrapperStyle:function(){var e=this,t=e.width,i=e.height,r=e.minWidth,n=e.minHeight,l=e.maxWidth,a=e.maxHeight,o=e.computeXOpts,e=e.computeYOpts,s={};return t&&(s.width=(0,_dom.toCssUnit)(t)),i&&(s.height=(0,_dom.toCssUnit)(i)),r&&(s.minWidth=(0,_dom.toCssUnit)(r)),n&&(s.minHeight=(0,_dom.toCssUnit)(n)),l&&(s.maxWidth=(0,_dom.toCssUnit)(l)),a&&(s.maxHeight=(0,_dom.toCssUnit)(a)),e.width&&(s["--vxe-ui-scrollbar-y-width"]=(0,_dom.toCssUnit)(e.width)),o.height&&(s["--vxe-ui-scrollbar-x-height"]=(0,_dom.toCssUnit)(o.height)),s},computeWrapperClss:function(){var e=this,t=e.reactData,i=e.native,r=e.className,n=t.yThumbHeight,t=t.xThumbWidth,l=e.computeXOpts,e=e.computeYOpts;return domUtils.buildClass(["vxe-scrollbar","ov-x--".concat(l.visible||"visible"),"ov-y--".concat(e.visible||"visible"),i?"is--native":"is--virtual",r],{"ov-x--auto-hide":l.autoHide,"ov-y--auto-hide":e.autoHide,"overflow-y":n,"overflow-x":t})},computeViewClss:function(){var e=this.viewClassName;return domUtils.buildClass(["vxe-scrollbar--view",e])},computeViewInnerClss:function(){var e=this.viewInnerClassName;return domUtils.buildClass(["vxe-scrollbar--view-inner",e])},computeXOpts:function(){return Object.assign({},getConfig().scrollbar.xConfig,this.xConfig)},computeYOpts:function(){return Object.assign({},getConfig().scrollbar.yConfig,this.yConfig)}},methods:{dispatchEvent:function(e,t,i){this.$emit(e,createEvent(i,{$scrollbar:this},t))},scrollTo:function(e,t){var i=this.$refs.refViewElem;i&&(_xeUtils.default.isNumber(e)?i.scrollTo(e,t||0):i.scrollTo(e))},scrollIntoView:function(){var e=this.$refs.refViewElem;e&&e.scrollIntoView()},recalculate:function(){return this.updateThumbSize(),this.updateThumbOffset(),this.$nextTick()},updateThumbSize:function(){var e,t,i=this,r=i.reactData,n=i.$refs.refViewElem;n&&(t=(t=i.$refs.refTrackXElem)?(0,_util.getThumbSize)(n.clientWidth,n.scrollWidth,t.clientWidth):0,(e=i.$refs.refThumbXElem)&&(e.style.width=t+"px"),r.xThumbWidth=t,t=(e=i.$refs.refTrackYElem)?(0,_util.getThumbSize)(n.clientHeight,n.scrollHeight,e.clientHeight):0,(n=i.$refs.refThumbYElem)&&(n.style.height=t+"px"),r.yThumbHeight=t)},updateThumbOffset:function(){var e,t,i,r=this,n=r.reactData,l=r.internalData,a=r.$refs.refViewElem;a&&(e=n.xThumbWidth,n=n.yThumbHeight,i=r.$refs.refTrackXElem,t=r.$refs.refThumbXElem,i=i&&e?(0,_util.getThumbOffsetSize)(a.scrollLeft,a.clientWidth,a.scrollWidth,i.clientWidth,e):0,l.xThumbLeft=i,t&&e&&(t.style.width=e+"px",t.style.transform="translateX(".concat(i,"px)")),e=r.$refs.refTrackYElem,t=r.$refs.refThumbYElem,i=e&&n?(0,_util.getThumbOffsetSize)(a.scrollTop,a.clientHeight,a.scrollHeight,e.clientHeight,n):0,l.yThumbTop=i,t)&&n&&(t.style.height=n+"px",t.style.transform="translateY(".concat(i,"px)"))},scrollEvent:function(e){var t,i=this,r=i.reactData,n=i.internalData,l=r.xThumbWidth,r=r.yThumbHeight,a=n.lastScrollTop,o=n.lastScrollLeft,s=i.computeXOpts,c=e.currentTarget,u=c.scrollTop,h=c.scrollLeft,m=c.clientWidth,f=c.clientHeight,g=c.scrollHeight,c=c.scrollWidth,d="",p=!1,b=!1,v=!1,T=!1;a!==u&&(t=_xeUtils.default.toNumber(i.computeYOpts.threshold)||1,a<u?(d="bottom",0<r&&g-t<=u+f&&(b=!0)):(d="top",0<r&&u<=t&&(p=!0))),o!==h&&(a=_xeUtils.default.toNumber(s.threshold)||1,o<h?(d="right",0<l&&c-a<=h+m&&(T=!0)):(d="left",0<l&&h<=a&&(v=!0))),i.updateThumbOffset(),n.lastScrollTop=u,n.lastScrollLeft=h,(b||p||T||v)&&i.dispatchEvent("scroll-boundary",{direction:d,isTop:p,isBottom:b,isLeft:v,isRight:T,scrollTop:u,scrollLeft:h,clientWidth:m,clientHeight:f,scrollHeight:g,scrollWidth:c},e),i.dispatchEvent("scroll",{direction:d,isTop:0<r&&u<=0,isBottom:0<r&&g<=u+f,isLeft:0<l&&h<=0,isRight:0<l&&c<=h+m,scrollTop:u,scrollLeft:h,clientWidth:m,clientHeight:f,scrollHeight:g,scrollWidth:c},e)},clickTrackXEvent:function(e){var t,i,r=this.reactData,n=e.currentTarget;n===e.target&&(t=this.$refs.refViewElem)&&(r=r.xThumbWidth,i=n.getBoundingClientRect(),t.scrollTo({left:(0,_util.getScrollFromClick)(e.clientX-i.left,t.clientWidth,t.scrollWidth,n.clientWidth,r),behavior:"auto"}))},clickTrackYEvent:function(e){var t,i,r=this.reactData,n=e.currentTarget;n===e.target&&(t=this.$refs.refViewElem)&&(r=r.yThumbHeight,i=n.getBoundingClientRect(),t.scrollTo({top:(0,_util.getScrollFromClick)(e.clientY-i.top,t.clientHeight,t.scrollHeight,n.clientHeight,r),behavior:"auto"}))},pointerdownThumbXEvent:function(e){var t,i=this.reactData,r=this.internalData,n=e.currentTarget,l=(r.isThumbDrag=!0,n.setPointerCapture(e.pointerId),this.$refs.refViewElem);l&&(i=i.xThumbWidth,t=(n=n.parentElement).getBoundingClientRect(),e=e.clientX-t.left,t=(0,_util.getThumbOffsetSize)(l.scrollLeft,l.clientWidth,l.scrollWidth,n.clientWidth,i),r.thumbDragOffset=e-t)},pointermoveThumbXEvent:function(e){var t,i,r=this.reactData,n=this.internalData,l=n.isThumbDrag,n=n.thumbDragOffset;l&&(l=this.$refs.refViewElem)&&(r=r.xThumbWidth,i=(t=e.currentTarget.parentElement).getBoundingClientRect(),l.scrollLeft=(0,_util.getScrollFromDrag)(e.clientX-i.left,n,l.clientWidth,l.scrollWidth,t.clientWidth,r))},cleatPointerThumbEvent:function(e){var t=this.internalData;e.currentTarget.releasePointerCapture(e.pointerId),t.isThumbDrag=!1},pointerdownThumbYEvent:function(e){var t,i=this.reactData,r=this.internalData,n=e.currentTarget,l=(r.isThumbDrag=!0,n.setPointerCapture(e.pointerId),this.$refs.refViewElem);l&&(i=i.yThumbHeight,t=(n=n.parentElement).getBoundingClientRect(),e=e.clientY-t.top,t=(0,_util.getThumbOffsetSize)(l.scrollTop,l.clientHeight,l.scrollHeight,n.clientHeight,i),r.thumbDragOffset=e-t)},pointermoveThumbYEvent:function(e){var t,i,r=this.reactData,n=this.internalData,l=n.isThumbDrag,n=n.thumbDragOffset;l&&(l=this.$refs.refViewElem)&&(r=r.yThumbHeight,i=(t=e.currentTarget.parentElement).getBoundingClientRect(),l.scrollTop=(0,_util.getScrollFromDrag)(e.clientY-i.top,n,l.clientHeight,l.scrollHeight,t.clientHeight,r))},renderVN:function(e){var t=this,i=t.$scopedSlots,r=t.id,n=t.native,l=t.loading,a=t.computeXOpts,o=t.computeYOpts,i=i.default;return e("div",{ref:"refElem",attrs:{id:r||null},class:t.computeWrapperClss,style:t.computeWrapperStyle},[e("div",{ref:"refViewElem",class:t.computeViewClss,attrs:t.viewAttrs,on:{scroll:t.scrollEvent}},[e("div",{key:"vi",ref:"refViewInnerElem",class:t.computeViewInnerClss},i?i({}):[])]),n||"hidden"===a.visible?renderEmptyElement(t):e("div",{ref:"refTrackXElem",class:"vxe-scrollbar--track-x",on:{click:t.clickTrackXEvent}},[e("div",{ref:"refThumbXElem",class:"vxe-scrollbar--thumb-x",on:{pointerdown:t.pointerdownThumbXEvent,pointermove:t.pointermoveThumbXEvent,pointerup:t.cleatPointerThumbEvent,pointercancel:t.cleatPointerThumbEvent,lostpointercapture:t.cleatPointerThumbEvent}})]),n||"hidden"===o.visible?renderEmptyElement(t):e("div",{ref:"refTrackYElem",class:"vxe-scrollbar--track-y",on:{click:t.clickTrackYEvent}},[e("div",{ref:"refThumbYElem",class:"vxe-scrollbar--thumb-y",on:{pointerdown:t.pointerdownThumbYEvent,pointermove:t.pointermoveThumbYEvent,pointerup:t.cleatPointerThumbEvent,pointercancel:t.cleatPointerThumbEvent,lostpointercapture:t.cleatPointerThumbEvent}})]),e(_loading.default,{class:"vxe-scrollbar--loading",props:{value:l}})])}},watch:{height:function(){this.reFlag++},width:function(){this.reFlag++},minHeight:function(){this.reFlag++},minWidth:function(){this.reFlag++},maxHeight:function(){this.reFlag++},maxWidth:function(){this.reFlag++},native:function(){this.reFlag++},syncResize:function(){this.reFlag++},reFlag:function(){var e=this;e.recalculate().then(function(){e.recalculate()})}},created:function(){this.internalData=createInternalData()},mounted:function(){var e=this,t=e,i=e.internalData,r=t.autoResize,n=e.$refs.refViewElem,l=e.$refs.refViewInnerElem;r&&(r=globalResize.create(function(){t.autoResize&&e.reFlag++}),n&&r.observe(n),l&&r.observe(l),i.resizeObserver=r),e.reFlag++},beforeDestroy:function(){var e=this.internalData.resizeObserver;e&&e.disconnect()},destroyed:function(){var e=this.reactData,t=this.internalData;_xeUtils.default.assign(e,createReactData()),_xeUtils.default.assign(t,createInternalData())},render:function(e){return this.renderVN(e)}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_util=require("./util"),_loading=_interopRequireDefault(require("../../loading"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var getConfig=_ui.VxeUI.getConfig,createEvent=_ui.VxeUI.createEvent,domUtils=_ui.VxeUI.domUtils,globalResize=_ui.VxeUI.globalResize,renderEmptyElement=_ui.VxeUI.renderEmptyElement;function createReactData(){return{yThumbHeight:0,xThumbWidth:0}}function createInternalData(){return{thumbDragOffset:0,yThumbTop:0,xThumbLeft:0,lastScrollTop:0,lastScrollLeft:0}}var _default2=exports.default=(0,_comp.defineVxeComponent)({name:"VxeScrollbar",props:{id:[String,Number],width:[String,Number],height:[String,Number],minWidth:[String,Number],minHeight:[String,Number],maxWidth:[String,Number],maxHeight:[String,Number],loading:Boolean,native:{type:Boolean,default:function(){return getConfig().scrollbar.native}},xConfig:Object,yConfig:Object,className:{type:String,default:function(){return getConfig().scrollbar.className}},viewAttrs:{type:Object,default:function(){return getConfig().scrollbar.viewAttrs}},viewClassName:{type:String,default:function(){return getConfig().scrollbar.viewClassName}},viewInnerClassName:{type:String,default:function(){return getConfig().scrollbar.viewInnerClassName}},autoResize:{type:Boolean,default:function(){return getConfig().scrollbar.autoResize}},syncResize:[Boolean,String,Number]},data:function(){var e=_xeUtils.default.uniqueId(),t=createReactData();return Object.assign(Object.assign({},{}),{xID:e,reactData:t,reFlag:0})},computed:{computeWrapperStyle:function(){var e=this,t=e.width,i=e.height,r=e.minWidth,l=e.minHeight,n=e.maxWidth,o=e.maxHeight,a=e.computeXOpts,e=e.computeYOpts,s={};return t&&(s.width=(0,_dom.toCssUnit)(t)),i&&(s.height=(0,_dom.toCssUnit)(i)),r&&(s.minWidth=(0,_dom.toCssUnit)(r)),l&&(s.minHeight=(0,_dom.toCssUnit)(l)),n&&(s.maxWidth=(0,_dom.toCssUnit)(n)),o&&(s.maxHeight=(0,_dom.toCssUnit)(o)),e.width&&(s["--vxe-ui-scrollbar-y-width"]=(0,_dom.toCssUnit)(e.width)),a.height&&(s["--vxe-ui-scrollbar-x-height"]=(0,_dom.toCssUnit)(a.height)),s},computeWrapperClss:function(){var e=this,t=e.reactData,i=e.native,r=e.className,l=t.yThumbHeight,t=t.xThumbWidth,n=e.computeXOpts,e=e.computeYOpts;return domUtils.buildClass(["vxe-scrollbar","ov-x--".concat(n.visible||"visible"),"ov-y--".concat(e.visible||"visible"),i?"is--native":"is--virtual",r],{"ov-x--auto-hide":n.autoHide,"ov-y--auto-hide":e.autoHide,"overflow-y":l,"overflow-x":t})},computeViewClss:function(){var e=this.viewClassName;return domUtils.buildClass(["vxe-scrollbar--view",e])},computeViewInnerClss:function(){var e=this.viewInnerClassName;return domUtils.buildClass(["vxe-scrollbar--view-inner",e])},computeXOpts:function(){return Object.assign({},getConfig().scrollbar.xConfig,this.xConfig)},computeYOpts:function(){return Object.assign({},getConfig().scrollbar.yConfig,this.yConfig)}},methods:{dispatchEvent:function(e,t,i){this.$emit(e,createEvent(i,{$scrollbar:this},t))},scrollTo:function(e,t){var i=this.$refs.refViewElem;i&&(_xeUtils.default.isNumber(e)?i.scrollTo(e,t||0):i.scrollTo(e))},scrollIntoView:function(){var e=this.$refs.refViewElem;e&&e.scrollIntoView()},setScrollTop:function(e){var t=this.$refs.refViewElem;t&&(t.scrollTop=e)},setScrollLeft:function(e){var t=this.$refs.refViewElem;t&&(t.scrollLeft=e)},getScrollTop:function(){var e=this.$refs.refViewElem;return e?e.scrollTop:0},getScrollLeft:function(){var e=this.$refs.refViewElem;return e?e.scrollLeft:0},clearScroll:function(){var e=this.$refs.refViewElem;e&&(e.scrollTop=0,e.scrollLeft=0)},recalculate:function(){return this.updateThumbSize(),this.updateThumbOffset(),this.$nextTick()},updateThumbSize:function(){var e,t,i=this,r=i.reactData,l=i.$refs.refViewElem;l&&(t=(t=i.$refs.refTrackXElem)?(0,_util.getThumbSize)(l.clientWidth,l.scrollWidth,t.clientWidth):0,(e=i.$refs.refThumbXElem)&&(e.style.width=t+"px"),r.xThumbWidth=t,t=(e=i.$refs.refTrackYElem)?(0,_util.getThumbSize)(l.clientHeight,l.scrollHeight,e.clientHeight):0,(l=i.$refs.refThumbYElem)&&(l.style.height=t+"px"),r.yThumbHeight=t)},updateThumbOffset:function(){var e,t,i,r=this,l=r.reactData,n=r.internalData,o=r.$refs.refViewElem;o&&(e=l.xThumbWidth,l=l.yThumbHeight,i=r.$refs.refTrackXElem,t=r.$refs.refThumbXElem,i=i&&e?(0,_util.getThumbOffsetSize)(o.scrollLeft,o.clientWidth,o.scrollWidth,i.clientWidth,e):0,n.xThumbLeft=i,t&&e&&(t.style.width=e+"px",t.style.transform="translateX(".concat(i,"px)")),e=r.$refs.refTrackYElem,t=r.$refs.refThumbYElem,i=e&&l?(0,_util.getThumbOffsetSize)(o.scrollTop,o.clientHeight,o.scrollHeight,e.clientHeight,l):0,n.yThumbTop=i,t)&&l&&(t.style.height=l+"px",t.style.transform="translateY(".concat(i,"px)"))},scrollEvent:function(e){var t,i=this,r=i.reactData,l=i.internalData,n=r.xThumbWidth,r=r.yThumbHeight,o=l.lastScrollTop,a=l.lastScrollLeft,s=i.computeXOpts,c=e.currentTarget,u=c.scrollTop,h=c.scrollLeft,f=c.clientWidth,m=c.clientHeight,g=c.scrollHeight,c=c.scrollWidth,d="",p=!1,b=!1,v=!1,T=!1;o!==u&&(t=_xeUtils.default.toNumber(i.computeYOpts.threshold)||1,o<u?(d="bottom",0<r&&g-t<=u+m&&(b=!0)):(d="top",0<r&&u<=t&&(p=!0))),a!==h&&(o=_xeUtils.default.toNumber(s.threshold)||1,a<h?(d="right",0<n&&c-o<=h+f&&(T=!0)):(d="left",0<n&&h<=o&&(v=!0))),i.updateThumbOffset(),l.lastScrollTop=u,l.lastScrollLeft=h,(b||p||T||v)&&i.dispatchEvent("scroll-boundary",{direction:d,isTop:p,isBottom:b,isLeft:v,isRight:T,scrollTop:u,scrollLeft:h,clientWidth:f,clientHeight:m,scrollHeight:g,scrollWidth:c},e),i.dispatchEvent("scroll",{direction:d,isTop:0<r&&u<=0,isBottom:0<r&&g<=u+m,isLeft:0<n&&h<=0,isRight:0<n&&c<=h+f,scrollTop:u,scrollLeft:h,clientWidth:f,clientHeight:m,scrollHeight:g,scrollWidth:c},e)},clickTrackXEvent:function(e){var t,i,r=this.reactData,l=e.currentTarget;l===e.target&&(t=this.$refs.refViewElem)&&(r=r.xThumbWidth,i=l.getBoundingClientRect(),t.scrollTo({left:(0,_util.getScrollFromClick)(e.clientX-i.left,t.clientWidth,t.scrollWidth,l.clientWidth,r),behavior:"auto"}))},clickTrackYEvent:function(e){var t,i,r=this.reactData,l=e.currentTarget;l===e.target&&(t=this.$refs.refViewElem)&&(r=r.yThumbHeight,i=l.getBoundingClientRect(),t.scrollTo({top:(0,_util.getScrollFromClick)(e.clientY-i.top,t.clientHeight,t.scrollHeight,l.clientHeight,r),behavior:"auto"}))},pointerdownThumbXEvent:function(e){var t,i=this.reactData,r=this.internalData,l=e.currentTarget,n=(r.isThumbDrag=!0,l.setPointerCapture(e.pointerId),this.$refs.refViewElem);n&&(i=i.xThumbWidth,t=(l=l.parentElement).getBoundingClientRect(),e=e.clientX-t.left,t=(0,_util.getThumbOffsetSize)(n.scrollLeft,n.clientWidth,n.scrollWidth,l.clientWidth,i),r.thumbDragOffset=e-t)},pointermoveThumbXEvent:function(e){var t,i,r=this.reactData,l=this.internalData,n=l.isThumbDrag,l=l.thumbDragOffset;n&&(n=this.$refs.refViewElem)&&(r=r.xThumbWidth,i=(t=e.currentTarget.parentElement).getBoundingClientRect(),n.scrollLeft=(0,_util.getScrollFromDrag)(e.clientX-i.left,l,n.clientWidth,n.scrollWidth,t.clientWidth,r))},cleatPointerThumbEvent:function(e){var t=this.internalData;e.currentTarget.releasePointerCapture(e.pointerId),t.isThumbDrag=!1},pointerdownThumbYEvent:function(e){var t,i=this.reactData,r=this.internalData,l=e.currentTarget,n=(r.isThumbDrag=!0,l.setPointerCapture(e.pointerId),this.$refs.refViewElem);n&&(i=i.yThumbHeight,t=(l=l.parentElement).getBoundingClientRect(),e=e.clientY-t.top,t=(0,_util.getThumbOffsetSize)(n.scrollTop,n.clientHeight,n.scrollHeight,l.clientHeight,i),r.thumbDragOffset=e-t)},pointermoveThumbYEvent:function(e){var t,i,r=this.reactData,l=this.internalData,n=l.isThumbDrag,l=l.thumbDragOffset;n&&(n=this.$refs.refViewElem)&&(r=r.yThumbHeight,i=(t=e.currentTarget.parentElement).getBoundingClientRect(),n.scrollTop=(0,_util.getScrollFromDrag)(e.clientY-i.top,l,n.clientHeight,n.scrollHeight,t.clientHeight,r))},renderVN:function(e){var t=this,i=t.$scopedSlots,r=t.id,l=t.native,n=t.loading,o=t.computeXOpts,a=t.computeYOpts,i=i.default;return e("div",{ref:"refElem",attrs:{id:r||null},class:t.computeWrapperClss,style:t.computeWrapperStyle},[e("div",{ref:"refViewElem",class:t.computeViewClss,attrs:t.viewAttrs,on:{scroll:t.scrollEvent}},[e("div",{key:"vi",ref:"refViewInnerElem",class:t.computeViewInnerClss},i?i({}):[])]),l||"hidden"===o.visible?renderEmptyElement(t):e("div",{ref:"refTrackXElem",class:"vxe-scrollbar--track-x",on:{click:t.clickTrackXEvent}},[e("div",{ref:"refThumbXElem",class:"vxe-scrollbar--thumb-x",on:{pointerdown:t.pointerdownThumbXEvent,pointermove:t.pointermoveThumbXEvent,pointerup:t.cleatPointerThumbEvent,pointercancel:t.cleatPointerThumbEvent,lostpointercapture:t.cleatPointerThumbEvent}})]),l||"hidden"===a.visible?renderEmptyElement(t):e("div",{ref:"refTrackYElem",class:"vxe-scrollbar--track-y",on:{click:t.clickTrackYEvent}},[e("div",{ref:"refThumbYElem",class:"vxe-scrollbar--thumb-y",on:{pointerdown:t.pointerdownThumbYEvent,pointermove:t.pointermoveThumbYEvent,pointerup:t.cleatPointerThumbEvent,pointercancel:t.cleatPointerThumbEvent,lostpointercapture:t.cleatPointerThumbEvent}})]),e(_loading.default,{class:"vxe-scrollbar--loading",props:{value:n}})])}},watch:{height:function(){this.reFlag++},width:function(){this.reFlag++},minHeight:function(){this.reFlag++},minWidth:function(){this.reFlag++},maxHeight:function(){this.reFlag++},maxWidth:function(){this.reFlag++},native:function(){this.reFlag++},syncResize:function(){this.reFlag++},reFlag:function(){var e=this;e.recalculate().then(function(){e.recalculate()})}},created:function(){this.internalData=createInternalData()},mounted:function(){var e=this,t=e,i=e.internalData,r=t.autoResize,l=e.$refs.refViewElem,n=e.$refs.refViewInnerElem;r&&(r=globalResize.create(function(){t.autoResize&&e.reFlag++}),l&&r.observe(l),n&&r.observe(n),i.resizeObserver=r),e.reFlag++},beforeDestroy:function(){var e=this.internalData.resizeObserver;e&&e.disconnect()},destroyed:function(){var e=this.reactData,t=this.internalData;_xeUtils.default.assign(e,createReactData()),_xeUtils.default.assign(t,createInternalData())},render:function(e){return this.renderVN(e)}});