vxe-pc-ui 3.20.5 → 3.20.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/es/button/src/button.js +1 -0
  2. package/es/cascader/src/cascader.js +1 -0
  3. package/es/color-picker/src/color-picker.js +1 -0
  4. package/es/date-picker/src/date-picker.js +1 -0
  5. package/es/date-range-picker/src/date-range-picker.js +1 -0
  6. package/es/icon/style.css +1 -1
  7. package/es/icon-picker/src/icon-picker.js +1 -0
  8. package/es/pulldown/src/pulldown.js +1 -0
  9. package/es/scrollbar/src/scrollbar.js +22 -2
  10. package/es/scrollbar/style.css +11 -0
  11. package/es/scrollbar/style.min.css +1 -1
  12. package/es/select/src/select.js +1 -0
  13. package/es/style.css +1 -1
  14. package/es/style.min.css +1 -1
  15. package/es/table-select/src/table-select.js +1 -0
  16. package/es/tabs/src/tabs.js +5 -3
  17. package/es/tooltip/src/tooltip.js +49 -8
  18. package/es/tooltip/style.css +2 -1
  19. package/es/tooltip/style.min.css +1 -1
  20. package/es/tree-select/src/tree-select.js +1 -0
  21. package/es/ui/index.js +1 -1
  22. package/es/ui/src/dom.js +11 -8
  23. package/es/ui/src/log.js +1 -1
  24. package/es/vxe-scrollbar/style.css +11 -0
  25. package/es/vxe-scrollbar/style.min.css +1 -1
  26. package/es/vxe-tooltip/style.css +2 -1
  27. package/es/vxe-tooltip/style.min.css +1 -1
  28. package/lib/button/src/button.js +1 -0
  29. package/lib/button/src/button.min.js +1 -1
  30. package/lib/cascader/src/cascader.js +1 -0
  31. package/lib/cascader/src/cascader.min.js +1 -1
  32. package/lib/color-picker/src/color-picker.js +1 -0
  33. package/lib/color-picker/src/color-picker.min.js +1 -1
  34. package/lib/date-picker/src/date-picker.js +1 -0
  35. package/lib/date-picker/src/date-picker.min.js +1 -1
  36. package/lib/date-range-picker/src/date-range-picker.js +1 -0
  37. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  38. package/lib/icon/style/style.css +1 -1
  39. package/lib/icon/style/style.min.css +1 -1
  40. package/lib/icon-picker/src/icon-picker.js +1 -0
  41. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  42. package/lib/index.umd.js +4971 -4674
  43. package/lib/index.umd.min.js +1 -1
  44. package/lib/pulldown/src/pulldown.js +1 -0
  45. package/lib/pulldown/src/pulldown.min.js +1 -1
  46. package/lib/scrollbar/src/scrollbar.js +27 -2
  47. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  48. package/lib/scrollbar/style/style.css +11 -0
  49. package/lib/scrollbar/style/style.min.css +1 -1
  50. package/lib/select/src/select.js +1 -0
  51. package/lib/select/src/select.min.js +1 -1
  52. package/lib/style.css +1 -1
  53. package/lib/style.min.css +1 -1
  54. package/lib/table-select/src/table-select.js +1 -0
  55. package/lib/table-select/src/table-select.min.js +1 -1
  56. package/lib/tabs/src/tabs.js +41 -33
  57. package/lib/tabs/src/tabs.min.js +1 -1
  58. package/lib/tooltip/src/tooltip.js +81 -28
  59. package/lib/tooltip/src/tooltip.min.js +1 -1
  60. package/lib/tooltip/style/style.css +2 -1
  61. package/lib/tooltip/style/style.min.css +1 -1
  62. package/lib/tree-select/src/tree-select.js +1 -0
  63. package/lib/tree-select/src/tree-select.min.js +1 -1
  64. package/lib/ui/index.js +1 -1
  65. package/lib/ui/index.min.js +1 -1
  66. package/lib/ui/src/dom.js +11 -7
  67. package/lib/ui/src/dom.min.js +1 -1
  68. package/lib/ui/src/log.js +1 -1
  69. package/lib/ui/src/log.min.js +1 -1
  70. package/lib/vxe-scrollbar/style/style.css +11 -0
  71. package/lib/vxe-scrollbar/style/style.min.css +1 -1
  72. package/lib/vxe-tooltip/style/style.css +2 -1
  73. package/lib/vxe-tooltip/style/style.min.css +1 -1
  74. package/package.json +2 -2
  75. package/packages/button/src/button.ts +2 -1
  76. package/packages/cascader/src/cascader.ts +1 -0
  77. package/packages/color-picker/src/color-picker.ts +1 -0
  78. package/packages/date-picker/src/date-picker.ts +1 -0
  79. package/packages/date-range-picker/src/date-range-picker.ts +1 -0
  80. package/packages/icon-picker/src/icon-picker.ts +1 -0
  81. package/packages/pulldown/src/pulldown.ts +1 -0
  82. package/packages/scrollbar/src/scrollbar.ts +24 -2
  83. package/packages/select/src/select.ts +1 -0
  84. package/packages/table-select/src/table-select.ts +1 -0
  85. package/packages/tabs/src/tabs.ts +6 -3
  86. package/packages/tooltip/src/tooltip.ts +51 -9
  87. package/packages/tree-select/src/tree-select.ts +1 -0
  88. package/packages/ui/src/dom.ts +12 -8
  89. package/styles/components/scrollbar.scss +15 -1
  90. package/styles/components/tooltip.scss +2 -1
  91. package/types/components/button.d.ts +4 -0
  92. package/types/components/cascader.d.ts +4 -0
  93. package/types/components/scrollbar.d.ts +19 -1
  94. package/types/components/table.d.ts +1 -0
  95. package/types/components/tooltip.d.ts +21 -0
  96. /package/es/icon/{iconfont.1792048654011.ttf → iconfont.1792080131929.ttf} +0 -0
  97. /package/es/icon/{iconfont.1792048654011.woff → iconfont.1792080131929.woff} +0 -0
  98. /package/es/icon/{iconfont.1792048654011.woff2 → iconfont.1792080131929.woff2} +0 -0
  99. /package/es/{iconfont.1792048654011.ttf → iconfont.1792080131929.ttf} +0 -0
  100. /package/es/{iconfont.1792048654011.woff → iconfont.1792080131929.woff} +0 -0
  101. /package/es/{iconfont.1792048654011.woff2 → iconfont.1792080131929.woff2} +0 -0
  102. /package/lib/icon/style/{iconfont.1792048654011.ttf → iconfont.1792080131929.ttf} +0 -0
  103. /package/lib/icon/style/{iconfont.1792048654011.woff → iconfont.1792080131929.woff} +0 -0
  104. /package/lib/icon/style/{iconfont.1792048654011.woff2 → iconfont.1792080131929.woff2} +0 -0
  105. /package/lib/{iconfont.1792048654011.ttf → iconfont.1792080131929.ttf} +0 -0
  106. /package/lib/{iconfont.1792048654011.woff → iconfont.1792080131929.woff} +0 -0
  107. /package/lib/{iconfont.1792048654011.woff2 → iconfont.1792080131929.woff2} +0 -0
package/lib/ui/src/dom.js CHANGED
@@ -204,6 +204,7 @@ function isNodeElement(elem) {
204
204
  */
205
205
  function updatePanelPlacement(targetElem, panelElem, options) {
206
206
  var _Object$assign = Object.assign({
207
+ appendTo: '',
207
208
  teleportTo: false,
208
209
  marginSize: 18,
209
210
  isMinWidth: true
@@ -212,6 +213,7 @@ function updatePanelPlacement(targetElem, panelElem, options) {
212
213
  defaultLeft = _Object$assign.defaultLeft,
213
214
  placement = _Object$assign.placement,
214
215
  defaultPlacement = _Object$assign.defaultPlacement,
216
+ appendTo = _Object$assign.appendTo,
215
217
  teleportTo = _Object$assign.teleportTo,
216
218
  marginSize = _Object$assign.marginSize,
217
219
  isMinWidth = _Object$assign.isMinWidth;
@@ -224,7 +226,7 @@ function updatePanelPlacement(targetElem, panelElem, options) {
224
226
  var stys = {};
225
227
  if (panelElem && targetElem) {
226
228
  var bodyEl = document.body;
227
- var parentWrapperEl = getPopupWrapperElement(panelElem);
229
+ var parentWrapperEl = getPopupWrapperElement(teleportTo ? getPopupAppendElement(appendTo) : panelElem);
228
230
  if (parentWrapperEl) {
229
231
  var targetWidth = targetElem.offsetWidth;
230
232
  var targetHeight = targetElem.offsetHeight;
@@ -235,14 +237,16 @@ function updatePanelPlacement(targetElem, panelElem, options) {
235
237
  var targetRect = targetElem.getBoundingClientRect();
236
238
  var visibleHeight = bodyEl.clientHeight;
237
239
  var visibleWidth = bodyEl.clientWidth;
238
- var offsetLeft = parentWrapperRect.left;
239
- var offsetTop = parentWrapperRect.top;
240
+ var parentWrapperScrollLeft = parentWrapperEl.scrollLeft;
241
+ var parentWrapperScrollTop = parentWrapperEl.scrollTop;
242
+ var parentWrapperOffsetLeft = parentWrapperRect.left;
243
+ var parentWrapperOffsetTop = parentWrapperRect.top;
240
244
  var targetLeft = targetRect.left;
241
245
  var targetTop = targetRect.top;
242
246
  minWidth = targetElem.offsetWidth;
243
247
  if (teleportTo) {
244
- left = defaultLeft || targetLeft - (panelWidth - targetWidth) / 2;
245
- top = defaultTop || targetTop + targetHeight;
248
+ left = (defaultLeft || targetLeft - (panelWidth - targetWidth) / 2) - parentWrapperScrollLeft;
249
+ top = (defaultTop || targetTop + targetHeight) - parentWrapperScrollTop;
246
250
  if (placement === 'top') {
247
251
  panelPlacement = 'top';
248
252
  top = targetTop - panelHeight;
@@ -284,8 +288,8 @@ function updatePanelPlacement(targetElem, panelElem, options) {
284
288
  left = marginSize;
285
289
  }
286
290
  // 偏移
287
- top -= offsetTop;
288
- left -= offsetLeft;
291
+ top -= parentWrapperOffsetTop;
292
+ left -= parentWrapperOffsetLeft;
289
293
  } else {
290
294
  if (placement === 'top') {
291
295
  panelPlacement = 'top';
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.addClass=addClass,exports.getAbsolutePos=getAbsolutePos,exports.getDomNode=getDomNode,exports.getEventTargetNode=getEventTargetNode,exports.getOffsetPos=getOffsetPos,exports.getPaddingLeftRightSize=getPaddingLeftRightSize,exports.getPaddingTopBottomSize=getPaddingTopBottomSize,exports.getPopupAppendElement=getPopupAppendElement,exports.getPopupContainer=getPopupContainer,exports.getPopupWrapperElement=getPopupWrapperElement,exports.getPropClass=getPropClass,exports.getTpImg=getTpImg,exports.hasClass=hasClass,exports.hasControlKey=hasControlKey,exports.initTpImg=initTpImg,exports.isNodeElement=isNodeElement,exports.isPx=isPx,exports.isScale=isScale,exports.removeClass=removeClass,exports.scrollToView=scrollToView,exports.toCssUnit=toCssUnit,exports.triggerEvent=triggerEvent,exports.updatePanelPlacement=updatePanelPlacement;var tpImgEl,_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function initTpImg(){return tpImgEl||((tpImgEl=new Image).src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),tpImgEl}function getTpImg(){return tpImgEl||initTpImg()}function getPropClass(e,t){return e&&(_xeUtils.default.isFunction(e)?e(t):e)||""}var reClsMap={};function getClsRE(e){return reClsMap[e]||(reClsMap[e]=new RegExp("(?:^|\\s)".concat(e,"(?!\\S)"),"g")),reClsMap[e]}function getNodeOffset(e,t,o){if(e){var n=e.parentNode;if(o.top+=e.offsetTop,o.left+=e.offsetLeft,n&&n!==document.documentElement&&n!==document.body&&(o.top-=n.scrollTop,o.left-=n.scrollLeft),(!t||e!==t&&e.offsetParent!==t)&&e.offsetParent)return getNodeOffset(e.offsetParent,t,o)}return o}function isPx(e){return e&&/^\d+(\.\d+)?(px)?$/.test(e)}function isScale(e){return e&&/^\d+(\.\d+)?%$/.test(e)}function hasClass(e,t){return!!e&&(e.classList?e.classList.contains(t):!!(e.className&&e.className.match&&e.className.match(getClsRE(t))))}function removeClass(e,t){e&&hasClass(e,t)&&(e.className=e.className.replace(getClsRE(t),""))}function addClass(e,t){e&&!hasClass(e,t)&&(removeClass(e,t),e.className="".concat(e.className," ").concat(t))}function hasControlKey(e){return e.ctrlKey||e.metaKey}function toCssUnit(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"px";return _xeUtils.default.isNumber(e)||/^\d+$/.test("".concat(e))?"".concat(e).concat(t):"".concat(e||"")}function getDomNode(){var e=document.documentElement,t=document.body;return{scrollTop:e.scrollTop||t.scrollTop,scrollLeft:e.scrollLeft||t.scrollLeft,visibleHeight:e.clientHeight||t.clientHeight,visibleWidth:e.clientWidth||t.clientWidth}}function getEventTargetNode(e,t,o,n){for(var s,i=e.target.shadowRoot&&e.composed&&e.composedPath()[0]||e.target;i&&i.nodeType&&i!==document;){if(o&&hasClass(i,o)&&(!n||n(i)))s=i;else if(i===t)return{flag:!o||!!s,container:t,targetElem:s};i=i.parentNode}return{flag:!1}}function getOffsetPos(e,t){return getNodeOffset(e,t,{left:0,top:0})}function getAbsolutePos(e){var e=e.getBoundingClientRect(),t=e.top,e=e.left,o=getDomNode();return{boundingTop:t,top:o.scrollTop+t,boundingLeft:e,left:o.scrollLeft+e,visibleHeight:o.visibleHeight,visibleWidth:o.visibleWidth}}function getPaddingTopBottomSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingTop)+_xeUtils.default.toNumber(e.paddingBottom)):0}function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}var scrollIntoViewIfNeeded="scrollIntoViewIfNeeded",scrollIntoView="scrollIntoView";function scrollToView(e){e&&(e[scrollIntoViewIfNeeded]?e[scrollIntoViewIfNeeded]():e[scrollIntoView]&&e[scrollIntoView]())}function triggerEvent(e,t){e&&e.dispatchEvent(new Event(t))}function isNodeElement(e){return e&&1===e.nodeType}function updatePanelPlacement(e,t,o){var n,s,i,l,r,a,p,d,u,c,o=Object.assign({teleportTo:!1,marginSize:18,isMinWidth:!0},o),g=o.defaultTop,f=o.defaultLeft,m=o.placement,C=o.defaultPlacement,x=o.teleportTo,h=o.marginSize,o=o.isMinWidth,P="bottom",A="",N="",E=0,b="",v="",T={};return t&&e&&(a=document.body,d=getPopupWrapperElement(t))&&(n=e.offsetWidth,s=e.offsetHeight,i=t.offsetWidth,l=t.offsetHeight,d=d.getBoundingClientRect(),t=t.getBoundingClientRect(),c=e.getBoundingClientRect(),r=a.clientHeight,a=a.clientWidth,p=d.left,d=d.top,u=c.left,c=c.top,b=e.offsetWidth,x?(A=g||c+s,"top"===m?(P="top",A=c-l):m||("top"===C?(P="top",(A=g?A:c-l)<h&&(P="bottom",A=c+s),r<A+l+h&&(P="top",A=c-l)):(r<A+l+h&&(P="top",A=c-l),A<h&&(P="bottom",A=c+s))),a<(E=f||u-(i-n)/2)+i+h&&(E-=E+i+h-a),E<h&&(E=h),A-=d,E-=p):("top"===m?(P="top",N=s):m||r<c+(A=s)+l+h&&h<c-s-l&&(P="top",A="",N=s),t.left+t.width+h>a&&(E=-(t.left+t.width+h-a))),_xeUtils.default.isNumber(A)&&(T.top=toCssUnit(A)),_xeUtils.default.isNumber(N)&&(T.bottom=toCssUnit(N)),_xeUtils.default.isNumber(E)&&(T.left=toCssUnit(E)),o&&_xeUtils.default.isNumber(b)&&(T.minWidth=toCssUnit(b)),E===u?n<=i&&(v=n/2):E<u&&(v=u+n<E+i?u-E+n/2:u-E+(i-(u-E))/2)),{top:A||0,bottom:N||0,left:E||0,arrowLeft:v||0,style:T,placement:P}}function getPopupWrapperElement(e){var t;return e&&(t=document.body,(e=e.parentElement)===t?document.documentElement:e)||null}function getPopupContainer(e){return(e&&_xeUtils.default.isFunction(e)?e({}):e)||"body"}function getPopupAppendElement(e){e=getPopupContainer(e);return _xeUtils.default.isString(e)?document.querySelector(e)||document.body:e}
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.addClass=addClass,exports.getAbsolutePos=getAbsolutePos,exports.getDomNode=getDomNode,exports.getEventTargetNode=getEventTargetNode,exports.getOffsetPos=getOffsetPos,exports.getPaddingLeftRightSize=getPaddingLeftRightSize,exports.getPaddingTopBottomSize=getPaddingTopBottomSize,exports.getPopupAppendElement=getPopupAppendElement,exports.getPopupContainer=getPopupContainer,exports.getPopupWrapperElement=getPopupWrapperElement,exports.getPropClass=getPropClass,exports.getTpImg=getTpImg,exports.hasClass=hasClass,exports.hasControlKey=hasControlKey,exports.initTpImg=initTpImg,exports.isNodeElement=isNodeElement,exports.isPx=isPx,exports.isScale=isScale,exports.removeClass=removeClass,exports.scrollToView=scrollToView,exports.toCssUnit=toCssUnit,exports.triggerEvent=triggerEvent,exports.updatePanelPlacement=updatePanelPlacement;var tpImgEl,_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function initTpImg(){return tpImgEl||((tpImgEl=new Image).src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),tpImgEl}function getTpImg(){return tpImgEl||initTpImg()}function getPropClass(e,t){return e&&(_xeUtils.default.isFunction(e)?e(t):e)||""}var reClsMap={};function getClsRE(e){return reClsMap[e]||(reClsMap[e]=new RegExp("(?:^|\\s)".concat(e,"(?!\\S)"),"g")),reClsMap[e]}function getNodeOffset(e,t,o){if(e){var n=e.parentNode;if(o.top+=e.offsetTop,o.left+=e.offsetLeft,n&&n!==document.documentElement&&n!==document.body&&(o.top-=n.scrollTop,o.left-=n.scrollLeft),(!t||e!==t&&e.offsetParent!==t)&&e.offsetParent)return getNodeOffset(e.offsetParent,t,o)}return o}function isPx(e){return e&&/^\d+(\.\d+)?(px)?$/.test(e)}function isScale(e){return e&&/^\d+(\.\d+)?%$/.test(e)}function hasClass(e,t){return!!e&&(e.classList?e.classList.contains(t):!!(e.className&&e.className.match&&e.className.match(getClsRE(t))))}function removeClass(e,t){e&&hasClass(e,t)&&(e.className=e.className.replace(getClsRE(t),""))}function addClass(e,t){e&&!hasClass(e,t)&&(removeClass(e,t),e.className="".concat(e.className," ").concat(t))}function hasControlKey(e){return e.ctrlKey||e.metaKey}function toCssUnit(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"px";return _xeUtils.default.isNumber(e)||/^\d+$/.test("".concat(e))?"".concat(e).concat(t):"".concat(e||"")}function getDomNode(){var e=document.documentElement,t=document.body;return{scrollTop:e.scrollTop||t.scrollTop,scrollLeft:e.scrollLeft||t.scrollLeft,visibleHeight:e.clientHeight||t.clientHeight,visibleWidth:e.clientWidth||t.clientWidth}}function getEventTargetNode(e,t,o,n){for(var s,l=e.target.shadowRoot&&e.composed&&e.composedPath()[0]||e.target;l&&l.nodeType&&l!==document;){if(o&&hasClass(l,o)&&(!n||n(l)))s=l;else if(l===t)return{flag:!o||!!s,container:t,targetElem:s};l=l.parentNode}return{flag:!1}}function getOffsetPos(e,t){return getNodeOffset(e,t,{left:0,top:0})}function getAbsolutePos(e){var e=e.getBoundingClientRect(),t=e.top,e=e.left,o=getDomNode();return{boundingTop:t,top:o.scrollTop+t,boundingLeft:e,left:o.scrollLeft+e,visibleHeight:o.visibleHeight,visibleWidth:o.visibleWidth}}function getPaddingTopBottomSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingTop)+_xeUtils.default.toNumber(e.paddingBottom)):0}function getPaddingLeftRightSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingLeft)+_xeUtils.default.toNumber(e.paddingRight)):0}var scrollIntoViewIfNeeded="scrollIntoViewIfNeeded",scrollIntoView="scrollIntoView";function scrollToView(e){e&&(e[scrollIntoViewIfNeeded]?e[scrollIntoViewIfNeeded]():e[scrollIntoView]&&e[scrollIntoView]())}function triggerEvent(e,t){e&&e.dispatchEvent(new Event(t))}function isNodeElement(e){return e&&1===e.nodeType}function updatePanelPlacement(e,t,o){var n,s,l,i,r,a,p,d,u,c,g,o=Object.assign({appendTo:"",teleportTo:!1,marginSize:18,isMinWidth:!0},o),f=o.defaultTop,m=o.defaultLeft,C=o.placement,x=o.defaultPlacement,h=o.teleportTo,P=o.marginSize,A=o.isMinWidth,N="bottom",E="",b="",T=0,v="",I="",U={};return t&&e&&(a=document.body,o=getPopupWrapperElement(h?getPopupAppendElement(o.appendTo):t))&&(n=e.offsetWidth,s=e.offsetHeight,l=t.offsetWidth,i=t.offsetHeight,u=o.getBoundingClientRect(),t=t.getBoundingClientRect(),g=e.getBoundingClientRect(),r=a.clientHeight,a=a.clientWidth,p=o.scrollLeft,o=o.scrollTop,d=u.left,u=u.top,c=g.left,g=g.top,v=e.offsetWidth,h?(E=(f||g+s)-o,"top"===C?(N="top",E=g-i):C||("top"===x?(N="top",(E=f?E:g-i)<P&&(N="bottom",E=g+s),r<E+i+P&&(N="top",E=g-i)):(r<E+i+P&&(N="top",E=g-i),E<P&&(N="bottom",E=g+s))),a<(T=(m||c-(l-n)/2)-p)+l+P&&(T-=T+l+P-a),T<P&&(T=P),E-=u,T-=d):("top"===C?(N="top",b=s):C||r<g+(E=s)+i+P&&P<g-s-i&&(N="top",E="",b=s),t.left+t.width+P>a&&(T=-(t.left+t.width+P-a))),_xeUtils.default.isNumber(E)&&(U.top=toCssUnit(E)),_xeUtils.default.isNumber(b)&&(U.bottom=toCssUnit(b)),_xeUtils.default.isNumber(T)&&(U.left=toCssUnit(T)),A&&_xeUtils.default.isNumber(v)&&(U.minWidth=toCssUnit(v)),T===c?n<=l&&(I=n/2):T<c&&(I=c+n<T+l?c-T+n/2:c-T+(l-(c-T))/2)),{top:E||0,bottom:b||0,left:T||0,arrowLeft:I||0,style:U,placement:N}}function getPopupWrapperElement(e){var t;return e&&(t=document.body,(e=e.parentElement)===t?document.documentElement:e)||null}function getPopupContainer(e){return(e&&_xeUtils.default.isFunction(e)?e({}):e)||"body"}function getPopupAppendElement(e){e=getPopupContainer(e);return _xeUtils.default.isString(e)?document.querySelector(e)||document.body:e}
package/lib/ui/src/log.js CHANGED
@@ -7,7 +7,7 @@ exports.createComponentLog = createComponentLog;
7
7
  exports.warnLog = exports.errLog = void 0;
8
8
  var _core = require("@vxe-ui/core");
9
9
  var log = _core.VxeUI.log;
10
- var uiVersion = "ui v".concat("3.20.5");
10
+ var uiVersion = "ui v".concat("3.20.7");
11
11
  function createComponentLog(name) {
12
12
  var tableVersion = _core.VxeUI.tableVersion ? "table v".concat(_core.VxeUI.tableVersion) : '';
13
13
  var ganttVersion = _core.VxeUI.ganttVersion ? "gantt v".concat(_core.VxeUI.ganttVersion) : '';
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.createComponentLog=createComponentLog,exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core"),log=_core.VxeUI.log,uiVersion="ui v".concat("3.20.5");function createComponentLog(e){var r=_core.VxeUI.tableVersion?"table v".concat(_core.VxeUI.tableVersion):"",o=_core.VxeUI.ganttVersion?"gantt v".concat(_core.VxeUI.ganttVersion):"",n=_core.VxeUI.designVersion?"design v".concat(_core.VxeUI.designVersion):"",r=[uiVersion,r,o,n].filter(function(e){return e}).join(" ");return{warnLog:log.create("warn",r+"] ["+e),errLog:log.create("error",r+"] ["+e)}}var warnLog=exports.warnLog=log.create("warn",uiVersion),errLog=exports.errLog=log.create("error",uiVersion);
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.createComponentLog=createComponentLog,exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core"),log=_core.VxeUI.log,uiVersion="ui v".concat("3.20.7");function createComponentLog(e){var r=_core.VxeUI.tableVersion?"table v".concat(_core.VxeUI.tableVersion):"",o=_core.VxeUI.ganttVersion?"gantt v".concat(_core.VxeUI.ganttVersion):"",n=_core.VxeUI.designVersion?"design v".concat(_core.VxeUI.designVersion):"",r=[uiVersion,r,o,n].filter(function(e){return e}).join(" ");return{warnLog:log.create("warn",r+"] ["+e),errLog:log.create("error",r+"] ["+e)}}var warnLog=exports.warnLog=log.create("warn",uiVersion),errLog=exports.errLog=log.create("error",uiVersion);
@@ -142,4 +142,15 @@
142
142
  .vxe-scrollbar--thumb-x:active,
143
143
  .vxe-scrollbar--thumb-y:active {
144
144
  background-color: var(--vxe-ui-scrollbar-thumb-active-background-color);
145
+ }
146
+
147
+ .vxe-scrollbar.theme--light {
148
+ --vxe-ui-scrollbar-thumb-background-color: rgba(0,0,0,0.4);
149
+ --vxe-ui-scrollbar-thumb-hover-background-color: rgba(0,0,0,0.5);
150
+ --vxe-ui-scrollbar-thumb-active-background-color: rgba(0,0,0,0.6);
151
+ }
152
+ .vxe-scrollbar.theme--dark {
153
+ --vxe-ui-scrollbar-thumb-background-color: rgba(255,255,255,0.4);
154
+ --vxe-ui-scrollbar-thumb-hover-background-color: rgba(255,255,255,0.5);
155
+ --vxe-ui-scrollbar-thumb-active-background-color: rgba(255,255,255,0.6);
145
156
  }
@@ -1 +1 @@
1
- .vxe-scrollbar{position:relative}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view{scrollbar-width:none;-ms-overflow-style:none}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view::-webkit-scrollbar{display:none}.vxe-scrollbar.is--virtual.ov-x--auto-hide:hover>.vxe-scrollbar--track-x{opacity:1}.vxe-scrollbar.is--virtual.ov-x--auto-hide>.vxe-scrollbar--track-x{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--virtual.ov-y--auto-hide:hover>.vxe-scrollbar--track-y{opacity:1}.vxe-scrollbar.is--virtual.ov-y--auto-hide>.vxe-scrollbar--track-y{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar{width:var(--vxe-ui-scrollbar-y-width);height:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb{border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}.vxe-scrollbar.ov-x--hidden>.vxe-scrollbar--view{overflow-x:hidden}.vxe-scrollbar.ov-y--hidden>.vxe-scrollbar--view{overflow-y:hidden}.vxe-scrollbar--view{height:100%;width:100%;overflow-x:auto;overflow-y:auto}.vxe-scrollbar--track-x,.vxe-scrollbar--track-y{display:none;position:absolute;background-color:var(--vxe-ui-scrollbar-track-background-color);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-scrollbar.overflow-x>.vxe-scrollbar--track-x{display:block}.vxe-scrollbar.overflow-y>.vxe-scrollbar--track-y{display:block}.vxe-scrollbar--track-x{width:100%;left:0;height:var(--vxe-ui-scrollbar-x-height);padding:var(--vxe-ui-scrollbar-track-padding) 0}.vxe-scrollbar--track-y{height:100%;top:0;width:var(--vxe-ui-scrollbar-y-width);padding:0 var(--vxe-ui-scrollbar-track-padding)}.vxe-scrollbar.sx-pos--top>.vxe-scrollbar--track-x{top:0}.vxe-scrollbar.sx-pos--bottom>.vxe-scrollbar--track-x{bottom:0}.vxe-scrollbar.sy-pos--left>.vxe-scrollbar--track-y{left:0}.vxe-scrollbar.sy-pos--right>.vxe-scrollbar--track-y{right:0}.vxe-scrollbar.overflow-x.overflow-y>.vxe-scrollbar--track-x{width:calc(100% - var(--vxe-ui-scrollbar-x-height))}.vxe-scrollbar.overflow-x.overflow-y>.vxe-scrollbar--track-y{height:calc(100% - var(--vxe-ui-scrollbar-y-width))}.vxe-scrollbar.overflow-x.overflow-y.sx-pos--top.sy-pos--left>.vxe-scrollbar--track-y,.vxe-scrollbar.overflow-x.overflow-y.sx-pos--top.sy-pos--right>.vxe-scrollbar--track-y{top:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.overflow-x.overflow-y.sy-pos--left.sx-pos--bottom>.vxe-scrollbar--track-x,.vxe-scrollbar.overflow-x.overflow-y.sy-pos--left.sx-pos--top>.vxe-scrollbar--track-x{left:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar.is--padding.overflow-x.sx-pos--top{padding-top:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--padding.overflow-x.sx-pos--bottom{padding-bottom:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--padding.overflow-y.sy-pos--left{padding-left:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar.is--padding.overflow-y.sy-pos--right{padding-right:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar--thumb-y{width:100%}.vxe-scrollbar--thumb-x{height:100%}.vxe-scrollbar--thumb-x,.vxe-scrollbar--thumb-y{border-radius:var(--vxe-ui-scrollbar-thumb-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar--thumb-x:hover,.vxe-scrollbar--thumb-y:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar--thumb-x:active,.vxe-scrollbar--thumb-y:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}
1
+ .vxe-scrollbar{position:relative}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view{scrollbar-width:none;-ms-overflow-style:none}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view::-webkit-scrollbar{display:none}.vxe-scrollbar.is--virtual.ov-x--auto-hide:hover>.vxe-scrollbar--track-x{opacity:1}.vxe-scrollbar.is--virtual.ov-x--auto-hide>.vxe-scrollbar--track-x{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--virtual.ov-y--auto-hide:hover>.vxe-scrollbar--track-y{opacity:1}.vxe-scrollbar.is--virtual.ov-y--auto-hide>.vxe-scrollbar--track-y{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar{width:var(--vxe-ui-scrollbar-y-width);height:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb{border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}.vxe-scrollbar.ov-x--hidden>.vxe-scrollbar--view{overflow-x:hidden}.vxe-scrollbar.ov-y--hidden>.vxe-scrollbar--view{overflow-y:hidden}.vxe-scrollbar--view{height:100%;width:100%;overflow-x:auto;overflow-y:auto}.vxe-scrollbar--track-x,.vxe-scrollbar--track-y{display:none;position:absolute;background-color:var(--vxe-ui-scrollbar-track-background-color);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-scrollbar.overflow-x>.vxe-scrollbar--track-x{display:block}.vxe-scrollbar.overflow-y>.vxe-scrollbar--track-y{display:block}.vxe-scrollbar--track-x{width:100%;left:0;height:var(--vxe-ui-scrollbar-x-height);padding:var(--vxe-ui-scrollbar-track-padding) 0}.vxe-scrollbar--track-y{height:100%;top:0;width:var(--vxe-ui-scrollbar-y-width);padding:0 var(--vxe-ui-scrollbar-track-padding)}.vxe-scrollbar.sx-pos--top>.vxe-scrollbar--track-x{top:0}.vxe-scrollbar.sx-pos--bottom>.vxe-scrollbar--track-x{bottom:0}.vxe-scrollbar.sy-pos--left>.vxe-scrollbar--track-y{left:0}.vxe-scrollbar.sy-pos--right>.vxe-scrollbar--track-y{right:0}.vxe-scrollbar.overflow-x.overflow-y>.vxe-scrollbar--track-x{width:calc(100% - var(--vxe-ui-scrollbar-x-height))}.vxe-scrollbar.overflow-x.overflow-y>.vxe-scrollbar--track-y{height:calc(100% - var(--vxe-ui-scrollbar-y-width))}.vxe-scrollbar.overflow-x.overflow-y.sx-pos--top.sy-pos--left>.vxe-scrollbar--track-y,.vxe-scrollbar.overflow-x.overflow-y.sx-pos--top.sy-pos--right>.vxe-scrollbar--track-y{top:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.overflow-x.overflow-y.sy-pos--left.sx-pos--bottom>.vxe-scrollbar--track-x,.vxe-scrollbar.overflow-x.overflow-y.sy-pos--left.sx-pos--top>.vxe-scrollbar--track-x{left:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar.is--padding.overflow-x.sx-pos--top{padding-top:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--padding.overflow-x.sx-pos--bottom{padding-bottom:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--padding.overflow-y.sy-pos--left{padding-left:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar.is--padding.overflow-y.sy-pos--right{padding-right:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar--thumb-y{width:100%}.vxe-scrollbar--thumb-x{height:100%}.vxe-scrollbar--thumb-x,.vxe-scrollbar--thumb-y{border-radius:var(--vxe-ui-scrollbar-thumb-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar--thumb-x:hover,.vxe-scrollbar--thumb-y:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar--thumb-x:active,.vxe-scrollbar--thumb-y:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}.vxe-scrollbar.theme--light{--vxe-ui-scrollbar-thumb-background-color:rgba(0,0,0,0.4);--vxe-ui-scrollbar-thumb-hover-background-color:rgba(0,0,0,0.5);--vxe-ui-scrollbar-thumb-active-background-color:rgba(0,0,0,0.6)}.vxe-scrollbar.theme--dark{--vxe-ui-scrollbar-thumb-background-color:rgba(255,255,255,0.4);--vxe-ui-scrollbar-thumb-hover-background-color:rgba(255,255,255,0.5);--vxe-ui-scrollbar-thumb-active-background-color:rgba(255,255,255,0.6)}
@@ -25,7 +25,8 @@
25
25
  .vxe-tooltip--wrapper.is--enterable .vxe-tooltip--body {
26
26
  pointer-events: all;
27
27
  }
28
- .vxe-tooltip--wrapper .vxe-tooltip--content {
28
+ .vxe-tooltip--wrapper .vxe-tooltip--content,
29
+ .vxe-tooltip--wrapper .vxe-tooltip--scrollbar-content-view {
29
30
  padding: 8px 12px;
30
31
  max-width: 600px;
31
32
  max-height: 800px;
@@ -1 +1 @@
1
- .vxe-tooltip--wrapper{display:none;position:absolute;top:-100%;left:-100%;font-size:12px;color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);pointer-events:none}.vxe-tooltip--wrapper.is--visible{display:inline-block}.vxe-tooltip--wrapper.is--arrow .vxe-tooltip--arrow{display:block}.vxe-tooltip--wrapper.is--enterable:after{content:"";position:absolute;left:0;width:100%;height:6px;background-color:transparent}.vxe-tooltip--wrapper.is--enterable .vxe-tooltip--body{pointer-events:all}.vxe-tooltip--wrapper .vxe-tooltip--content{padding:8px 12px;max-width:600px;max-height:800px;white-space:pre-line;border-radius:var(--vxe-ui-base-border-radius);overflow:auto}.vxe-tooltip--wrapper .vxe-tooltip--arrow{display:none;position:absolute;border-color:transparent;border-width:6px;border-style:solid;left:50%;transform:translateX(-6px)}.vxe-tooltip--wrapper .vxe-tooltip--arrow:before{content:"";position:absolute;border-color:transparent;border-width:5px;border-style:solid;left:-5px}.vxe-tooltip--wrapper.placement--top.is--arrow{padding-bottom:6px}.vxe-tooltip--wrapper.placement--top.is--enterable:after{bottom:-6px}.vxe-tooltip--wrapper.placement--top .vxe-tooltip--arrow{bottom:-11px}.vxe-tooltip--wrapper.placement--top .vxe-tooltip--arrow:before{top:-7px}.vxe-tooltip--wrapper.placement--bottom.is--arrow{padding-top:6px}.vxe-tooltip--wrapper.placement--bottom.is--enterable:after{top:-6px}.vxe-tooltip--wrapper.placement--bottom .vxe-tooltip--arrow{top:-11px}.vxe-tooltip--wrapper.placement--bottom .vxe-tooltip--arrow:before{top:-3px}.vxe-tooltip--body{position:relative;border-radius:var(--vxe-ui-base-border-radius);white-space:normal;word-break:break-word;box-shadow:2px 2px 4px -2px rgba(0,0,0,.2)}.vxe-tooltip--wrapper.theme--light .vxe-tooltip--body{background-color:var(--vxe-ui-layout-background-color);border:1px solid var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--top .vxe-tooltip--arrow{border-top-color:var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--top .vxe-tooltip--arrow:before{border-top-color:var(--vxe-ui-layout-background-color)}.vxe-tooltip--wrapper.theme--light.placement--bottom .vxe-tooltip--arrow{border-bottom-color:var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--bottom .vxe-tooltip--arrow:before{border-bottom-color:var(--vxe-ui-layout-background-color)}.vxe-tooltip--wrapper.theme--dark .vxe-tooltip--body{background:var(--vxe-ui-tooltip-dark-background-color);color:var(--vxe-ui-tooltip-dark-color)}.vxe-tooltip--wrapper.theme--dark.placement--top .vxe-tooltip--arrow{border-top-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--top .vxe-tooltip--arrow:before{border-top-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--bottom .vxe-tooltip--arrow{border-bottom-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--bottom .vxe-tooltip--arrow:before{border-bottom-color:var(--vxe-ui-tooltip-dark-background-color)}
1
+ .vxe-tooltip--wrapper{display:none;position:absolute;top:-100%;left:-100%;font-size:12px;color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);pointer-events:none}.vxe-tooltip--wrapper.is--visible{display:inline-block}.vxe-tooltip--wrapper.is--arrow .vxe-tooltip--arrow{display:block}.vxe-tooltip--wrapper.is--enterable:after{content:"";position:absolute;left:0;width:100%;height:6px;background-color:transparent}.vxe-tooltip--wrapper.is--enterable .vxe-tooltip--body{pointer-events:all}.vxe-tooltip--wrapper .vxe-tooltip--content,.vxe-tooltip--wrapper .vxe-tooltip--scrollbar-content-view{padding:8px 12px;max-width:600px;max-height:800px;white-space:pre-line;border-radius:var(--vxe-ui-base-border-radius);overflow:auto}.vxe-tooltip--wrapper .vxe-tooltip--arrow{display:none;position:absolute;border-color:transparent;border-width:6px;border-style:solid;left:50%;transform:translateX(-6px)}.vxe-tooltip--wrapper .vxe-tooltip--arrow:before{content:"";position:absolute;border-color:transparent;border-width:5px;border-style:solid;left:-5px}.vxe-tooltip--wrapper.placement--top.is--arrow{padding-bottom:6px}.vxe-tooltip--wrapper.placement--top.is--enterable:after{bottom:-6px}.vxe-tooltip--wrapper.placement--top .vxe-tooltip--arrow{bottom:-11px}.vxe-tooltip--wrapper.placement--top .vxe-tooltip--arrow:before{top:-7px}.vxe-tooltip--wrapper.placement--bottom.is--arrow{padding-top:6px}.vxe-tooltip--wrapper.placement--bottom.is--enterable:after{top:-6px}.vxe-tooltip--wrapper.placement--bottom .vxe-tooltip--arrow{top:-11px}.vxe-tooltip--wrapper.placement--bottom .vxe-tooltip--arrow:before{top:-3px}.vxe-tooltip--body{position:relative;border-radius:var(--vxe-ui-base-border-radius);white-space:normal;word-break:break-word;box-shadow:2px 2px 4px -2px rgba(0,0,0,.2)}.vxe-tooltip--wrapper.theme--light .vxe-tooltip--body{background-color:var(--vxe-ui-layout-background-color);border:1px solid var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--top .vxe-tooltip--arrow{border-top-color:var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--top .vxe-tooltip--arrow:before{border-top-color:var(--vxe-ui-layout-background-color)}.vxe-tooltip--wrapper.theme--light.placement--bottom .vxe-tooltip--arrow{border-bottom-color:var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--bottom .vxe-tooltip--arrow:before{border-bottom-color:var(--vxe-ui-layout-background-color)}.vxe-tooltip--wrapper.theme--dark .vxe-tooltip--body{background:var(--vxe-ui-tooltip-dark-background-color);color:var(--vxe-ui-tooltip-dark-color)}.vxe-tooltip--wrapper.theme--dark.placement--top .vxe-tooltip--arrow{border-top-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--top .vxe-tooltip--arrow:before{border-top-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--bottom .vxe-tooltip--arrow{border-bottom-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--bottom .vxe-tooltip--arrow:before{border-bottom-color:var(--vxe-ui-tooltip-dark-background-color)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-pc-ui",
3
- "version": "3.20.5",
3
+ "version": "3.20.7",
4
4
  "description": "A vue based PC component library",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -25,7 +25,7 @@
25
25
  "style": "lib/style.css",
26
26
  "typings": "types/index.d.ts",
27
27
  "dependencies": {
28
- "@vxe-ui/core": "^3.4.31"
28
+ "@vxe-ui/core": "^3.4.33"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@typescript-eslint/eslint-plugin": "^6.21.0",
@@ -439,7 +439,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
439
439
  const handleStyle = () => {
440
440
  const ppObj = updatePanelPlacement(targetElem, panelElem, {
441
441
  placement: popupOpts.placement || placement,
442
- defaultPlacement: (popupOpts as any).defaultPlacement,
442
+ defaultPlacement: popupOpts.defaultPlacement,
443
+ appendTo: popupOpts.appendTo,
443
444
  teleportTo: btnTransfer
444
445
  })
445
446
  const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
@@ -918,6 +918,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
918
918
  const ppObj = updatePanelPlacement(targetElem, panelElem, {
919
919
  placement: popupOpts.placement,
920
920
  defaultPlacement: popupOpts.defaultPlacement,
921
+ appendTo: popupOpts.appendTo,
921
922
  teleportTo: btnTransfer,
922
923
  isMinWidth: false
923
924
  })
@@ -386,6 +386,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
386
386
  const ppObj = updatePanelPlacement(targetElem, panelElem, {
387
387
  placement: popupOpts.placement || placement,
388
388
  defaultPlacement: popupOpts.defaultPlacement,
389
+ appendTo: popupOpts.appendTo,
389
390
  teleportTo: btnTransfer
390
391
  })
391
392
  const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
@@ -1404,6 +1404,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1404
1404
  const ppObj = updatePanelPlacement(targetElem, panelElem, {
1405
1405
  placement: popupOpts.placement || placement,
1406
1406
  defaultPlacement: popupOpts.defaultPlacement,
1407
+ appendTo: popupOpts.appendTo,
1407
1408
  teleportTo: btnTransfer
1408
1409
  })
1409
1410
  const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
@@ -1180,6 +1180,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1180
1180
  const ppObj = updatePanelPlacement(targetElem, panelElem, {
1181
1181
  placement: popupOpts.placement || placement,
1182
1182
  defaultPlacement: popupOpts.defaultPlacement,
1183
+ appendTo: popupOpts.appendTo,
1183
1184
  teleportTo: btnTransfer
1184
1185
  })
1185
1186
  const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
@@ -369,6 +369,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
369
369
  const ppObj = updatePanelPlacement(targetElem, panelElem, {
370
370
  placement: popupOpts.placement || placement,
371
371
  defaultPlacement: popupOpts.defaultPlacement,
372
+ appendTo: popupOpts.appendTo,
372
373
  teleportTo: btnTransfer
373
374
  })
374
375
  const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
@@ -188,6 +188,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
188
188
  const ppObj = updatePanelPlacement(targetElem, panelElem, {
189
189
  placement: popupOpts.placement || placement,
190
190
  defaultPlacement: popupOpts.defaultPlacement,
191
+ appendTo: popupOpts.appendTo,
191
192
  teleportTo: btnTransfer
192
193
  })
193
194
  const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
@@ -37,6 +37,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
37
37
  props: {
38
38
  id: [String, Number] as PropType<VxeScrollbarPropTypes.Id>,
39
39
  viewId: [String, Number] as PropType<VxeScrollbarPropTypes.ViewId>,
40
+ theme: {
41
+ type: String as PropType<VxeScrollbarPropTypes.Theme>,
42
+ default: () => getConfig().scrollbar.theme
43
+ },
40
44
  width: [String, Number] as PropType<VxeScrollbarPropTypes.Width>,
41
45
  height: [String, Number] as PropType<VxeScrollbarPropTypes.Height>,
42
46
  minWidth: [String, Number] as PropType<VxeScrollbarPropTypes.MinWidth>,
@@ -70,6 +74,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
70
74
  type: Object as PropType<VxeScrollbarPropTypes.ViewAttrs>,
71
75
  default: () => getConfig().scrollbar.viewAttrs
72
76
  },
77
+ viewStyle: {
78
+ type: Object as PropType<VxeScrollbarPropTypes.ViewStyle>,
79
+ default: () => getConfig().scrollbar.viewStyle
80
+ },
73
81
  viewClassName: {
74
82
  type: String as PropType<VxeScrollbarPropTypes.ViewClassName>,
75
83
  default: () => getConfig().scrollbar.viewClassName
@@ -180,7 +188,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
180
188
  const props = $xeScrollbar
181
189
  const reactData = $xeScrollbar.reactData
182
190
 
183
- const { native, className, padding } = props
191
+ const { native, theme, className, padding } = props
184
192
  const { yThumbHeight, xThumbWidth } = reactData
185
193
  const xToTop = ($xeScrollbar as any).computeXToTop as boolean
186
194
  const yToLeft = ($xeScrollbar as any).computeYToLeft as boolean
@@ -190,6 +198,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
190
198
  const yAutoHide = ($xeScrollbar as any).computeYAutoHide
191
199
  return domUtils.buildClass([
192
200
  'vxe-scrollbar',
201
+ theme ? `theme--${theme}` : '',
193
202
  `ov-x--${xVisible === false ? 'hidden' : 'visible'}`,
194
203
  `ov-y--${yVisible === false ? 'hidden' : 'visible'}`,
195
204
  `sx-pos--${xToTop ? 'top' : 'bottom'}`,
@@ -257,6 +266,18 @@ export default /* define-vxe-component start */ defineVxeComponent({
257
266
  const $xeScrollbar = this
258
267
  $xeScrollbar.$emit(type, createEvent(evnt, { $scrollbar: $xeScrollbar }, params))
259
268
  },
269
+ getViewElem () {
270
+ const $xeScrollbar = this
271
+
272
+ const viewEl = $xeScrollbar.$refs.refViewElem as HTMLDivElement
273
+ return viewEl || null
274
+ },
275
+ getViewInnerElem () {
276
+ const $xeScrollbar = this
277
+
278
+ const viewInnerEl = $xeScrollbar.$refs.refViewInnerElem as HTMLDivElement
279
+ return viewInnerEl || null
280
+ },
260
281
  scrollTo (left: ScrollToOptions | number, top?: number) {
261
282
  const $xeScrollbar = this
262
283
 
@@ -596,7 +617,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
596
617
  const props = $xeScrollbar
597
618
  const slots = $xeScrollbar.$scopedSlots
598
619
 
599
- const { id, native, loading, viewId, viewAttrs } = props
620
+ const { id, native, loading, viewId, viewAttrs, viewStyle } = props
600
621
  const wrapperStyle = $xeScrollbar.computeWrapperStyle
601
622
  const wrapperClss = $xeScrollbar.computeWrapperClss
602
623
  const viewClss = $xeScrollbar.computeViewClss
@@ -615,6 +636,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
615
636
  h('div', {
616
637
  ref: 'refViewElem',
617
638
  class: viewClss,
639
+ style: viewStyle,
618
640
  attrs: {
619
641
  id: viewId || null,
620
642
  ...viewAttrs
@@ -827,6 +827,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
827
827
  const ppObj = updatePanelPlacement(targetElem, panelElem, {
828
828
  placement: popupOpts.placement || placement,
829
829
  defaultPlacement: popupOpts.defaultPlacement,
830
+ appendTo: popupOpts.appendTo,
830
831
  teleportTo: btnTransfer
831
832
  })
832
833
  const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
@@ -477,6 +477,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
477
477
  const ppObj = updatePanelPlacement(targetElem, panelElem, {
478
478
  placement: popupOpts.placement || placement,
479
479
  defaultPlacement: popupOpts.defaultPlacement,
480
+ appendTo: popupOpts.appendTo,
480
481
  teleportTo: btnTransfer
481
482
  })
482
483
  const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
@@ -1,16 +1,19 @@
1
1
  import { PropType, CreateElement, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
- import { createEvent, getConfig, getIcon, globalEvents, globalMixins, permission, renderEmptyElement } from '../../ui'
4
+ import { VxeUI, globalMixins } from '../../ui'
5
5
  import { getSlotVNs } from '../../ui/src/vn'
6
6
  import { toCssUnit, addClass, removeClass } from '../../ui/src/dom'
7
- import { getDefaultConfig, isEnableConf } from '../../ui/src/utils'
7
+ import { isEnableConf } from '../../ui/src/utils'
8
8
  import { createComponentLog } from '../../ui/src/log'
9
9
  import VxeLoadingComponent from '../../loading'
10
10
  import VxeScrollbarComponent from '../../scrollbar'
11
11
 
12
12
  import type { VxeTabsPropTypes, VxeTabPaneProps, VxeTabsEmits, TabsInternalData, TabsReactData, VxeComponentSizeType, VxeTabsConstructor, VxeTabsPrivateMethods, VxeTabPaneDefines, ValueOf, VxeComponentStyleType } from '../../../types'
13
13
 
14
+ const { baseUtils, createEvent, getConfig, getIcon, globalEvents, permission, renderEmptyElement } = VxeUI
15
+ const { getDefVal } = baseUtils
16
+
14
17
  const { warnLog, errLog } = createComponentLog('tabs')
15
18
 
16
19
  const scrollbarOffsetSize = 20
@@ -58,7 +61,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
58
61
  },
59
62
  useScrollbar: {
60
63
  type: Boolean as PropType<VxeTabsPropTypes.UseScrollbar>,
61
- default: () => getDefaultConfig(getConfig().tabs.useScrollbar, getConfig().useScrollbar)
64
+ default: () => getDefVal(getConfig().tabs.useScrollbar, getConfig().useScrollbar)
62
65
  },
63
66
  scrollbarConfig: Object as PropType<VxeTabsPropTypes.ScrollbarConfig>,
64
67
  // 已废弃
@@ -1,12 +1,16 @@
1
1
  import { PropType, CreateElement, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
- import { getConfig, createEvent, globalMixins, globalEvents } from '../../ui'
4
+ import { VxeUI, globalMixins } from '../../ui'
5
5
  import { getLastZIndex, nextZIndex } from '../../ui/src/utils'
6
6
  import { getPopupAppendElement, toCssUnit, updatePanelPlacement } from '../../ui/src/dom'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
+ import VxeScrollbarComponent from '../../scrollbar'
8
9
 
9
- import type { VxeTooltipPropTypes, VxeTooltipEmits, TooltipReactData, TooltipInternalData, VxeComponentSizeType, ValueOf, VxeComponentStyleType } from '../../../types'
10
+ import type { VxeTooltipPropTypes, VxeTooltipEmits, TooltipReactData, TooltipInternalData, VxeComponentSizeType, ValueOf, VxeScrollbarInstance, VxeComponentStyleType } from '../../../types'
11
+
12
+ const { baseUtils, getConfig, createEvent, globalEvents } = VxeUI
13
+ const { getDefVal } = baseUtils
10
14
 
11
15
  function createReactData (): TooltipReactData {
12
16
  return {
@@ -28,6 +32,7 @@ function createReactData (): TooltipReactData {
28
32
 
29
33
  function createInternalData (): TooltipInternalData {
30
34
  return {
35
+ // scrollbarViewEl: undefined,
31
36
  // showDelayTip: undefined
32
37
  }
33
38
  }
@@ -118,7 +123,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
118
123
  appendTo: {
119
124
  type: [String, Function] as PropType<VxeTooltipPropTypes.AppendTo>,
120
125
  default: () => getConfig().tooltip.appendTo
121
- }
126
+ },
127
+ useScrollbar: {
128
+ type: Boolean as PropType<VxeTooltipPropTypes.UseScrollbar>,
129
+ default: () => getDefVal(getConfig().tooltip.useScrollbar, getConfig().useScrollbar)
130
+ },
131
+ scrollbarConfig: Object as PropType<VxeTooltipPropTypes.ScrollbarConfig>
122
132
  },
123
133
  data () {
124
134
  const xID = XEUtils.uniqueId()
@@ -234,7 +244,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
234
244
  const props = $xeTooltip
235
245
  const reactData = $xeTooltip.reactData
236
246
 
237
- const { placement, defaultPlacement, isArrow } = props
247
+ const { placement, defaultPlacement, appendTo, isArrow } = props
238
248
  const { tipTarget: targetElem, tipStore, tipPos, tipZindex } = reactData
239
249
  const panelElem = $xeTooltip.$refs.refElem as HTMLElement
240
250
  if (!targetElem || !panelElem) {
@@ -268,6 +278,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
268
278
  defaultLeft: left,
269
279
  placement: placement,
270
280
  defaultPlacement: defaultPlacement,
281
+ appendTo: appendTo,
271
282
  isMinWidth: false,
272
283
  teleportTo: true
273
284
  })
@@ -393,7 +404,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
393
404
  tipStore.placement = 'top'
394
405
  tipStore.style = { width: 'auto', left: 0, top: 0, zIndex: props.zIndex || reactData.tipZindex }
395
406
  tipStore.arrowStyle = { left: '50%' }
396
- return $xeTooltip.updatePlacement()
407
+ return $xeTooltip.updatePlacement().then(() => {
408
+ return $xeTooltip.updatePlacement()
409
+ })
397
410
  },
398
411
  handleDelayFn () {
399
412
  const $xeTooltip = this
@@ -482,7 +495,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
482
495
  const slots = $xeTooltip.$scopedSlots
483
496
  const reactData = $xeTooltip.reactData
484
497
 
485
- const { useHtml, useHTML } = props
498
+ const { useHtml, theme, useScrollbar, useHTML } = props
486
499
  const { tipContent } = reactData
487
500
  const wrapperStyle = $xeTooltip.computeWrapperStyle
488
501
  const contentSlot = slots.content
@@ -507,9 +520,25 @@ export default /* define-vxe-component start */ defineVxeComponent({
507
520
  key: 'cd'
508
521
  }, `${tipContent}`))
509
522
  }
523
+ if (useScrollbar) {
524
+ return h(VxeScrollbarComponent, {
525
+ key: 5,
526
+ ref: 'contentScrollbar',
527
+ class: 'vxe-tooltip--scrollbar-content',
528
+ props: {
529
+ theme,
530
+ viewClassName: 'vxe-tooltip--scrollbar-content-view',
531
+ viewInnerClassName: 'vxe-tooltip--scrollbar-content-inner',
532
+ viewStyle: wrapperStyle
533
+ },
534
+ scopedSlots: {
535
+ default: () => contVNs
536
+ }
537
+ })
538
+ }
510
539
  return h('div', {
511
540
  key: 3,
512
- ref: 'contentWrapperfElem',
541
+ ref: 'contentWrapperElem',
513
542
  class: 'vxe-tooltip--content',
514
543
  style: wrapperStyle
515
544
  }, contVNs)
@@ -598,8 +627,17 @@ export default /* define-vxe-component start */ defineVxeComponent({
598
627
  const $xeTooltip = this
599
628
  const props = $xeTooltip
600
629
  const reactData = $xeTooltip.reactData
630
+ const internalData = $xeTooltip.internalData
601
631
 
602
- const contentWrapperfEl = $xeTooltip.$refs.contentWrapperfElem as HTMLElement
632
+ const $scrollbar = $xeTooltip.$refs.contentScrollbar as VxeScrollbarInstance
633
+ if ($scrollbar) {
634
+ const viewEl = $scrollbar.getViewElem()
635
+ if (viewEl) {
636
+ viewEl.addEventListener('wheel', $xeTooltip.wheelEvent, { passive: false })
637
+ internalData.scrollbarViewEl = viewEl
638
+ }
639
+ }
640
+ const contentWrapperfEl = $xeTooltip.$refs.contentWrapperElem as HTMLElement
603
641
  if (contentWrapperfEl) {
604
642
  contentWrapperfEl.addEventListener('wheel', $xeTooltip.wheelEvent, { passive: false })
605
643
  }
@@ -642,16 +680,20 @@ export default /* define-vxe-component start */ defineVxeComponent({
642
680
  const internalData = $xeTooltip.internalData
643
681
 
644
682
  const { target } = reactData
683
+ const { scrollbarViewEl } = internalData
645
684
  const panelElem = $xeTooltip.$refs.refElem as HTMLElement
646
685
  if (target) {
647
686
  target.onmouseenter = null
648
687
  target.onmouseleave = null
649
688
  target.onclick = null
650
689
  }
651
- const contentWrapperfEl = $xeTooltip.$refs.contentWrapperfElem as HTMLElement
690
+ const contentWrapperfEl = $xeTooltip.$refs.contentWrapperElem as HTMLElement
652
691
  if (contentWrapperfEl) {
653
692
  contentWrapperfEl.removeEventListener('wheel', $xeTooltip.wheelEvent)
654
693
  }
694
+ if (scrollbarViewEl) {
695
+ scrollbarViewEl.removeEventListener('wheel', $xeTooltip.wheelEvent)
696
+ }
655
697
  if (panelElem) {
656
698
  const parentNode = panelElem.parentNode
657
699
  if (parentNode) {
@@ -568,6 +568,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
568
568
  isMinWidth: !popupOpts.width,
569
569
  placement: popupOpts.placement || placement,
570
570
  defaultPlacement: popupOpts.defaultPlacement,
571
+ appendTo: popupOpts.appendTo,
571
572
  teleportTo: btnTransfer
572
573
  })
573
574
  const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
@@ -179,6 +179,7 @@ interface PanelPlacementOptions {
179
179
  defaultLeft?: number
180
180
  placement?: '' | 'top' | 'bottom' | null
181
181
  defaultPlacement?: '' | 'top' | 'bottom' | null
182
+ appendTo?: string | HTMLElement | ((params: any) => string | HTMLElement)
182
183
  teleportTo?: boolean
183
184
  marginSize?: number
184
185
  isMinWidth?: boolean
@@ -188,7 +189,8 @@ interface PanelPlacementOptions {
188
189
  * 通用定位计算
189
190
  */
190
191
  export function updatePanelPlacement (targetElem: HTMLElement | null | undefined, panelElem: HTMLElement | null | undefined, options: PanelPlacementOptions) {
191
- const { defaultTop, defaultLeft, placement, defaultPlacement, teleportTo, marginSize, isMinWidth } = Object.assign({
192
+ const { defaultTop, defaultLeft, placement, defaultPlacement, appendTo, teleportTo, marginSize, isMinWidth } = Object.assign({
193
+ appendTo: '',
192
194
  teleportTo: false,
193
195
  marginSize: 18,
194
196
  isMinWidth: true
@@ -202,7 +204,7 @@ export function updatePanelPlacement (targetElem: HTMLElement | null | undefined
202
204
  const stys: Record<string, string> = {}
203
205
  if (panelElem && targetElem) {
204
206
  const bodyEl = document.body
205
- const parentWrapperEl = getPopupWrapperElement(panelElem)
207
+ const parentWrapperEl = getPopupWrapperElement(teleportTo ? getPopupAppendElement(appendTo) : panelElem)
206
208
  if (parentWrapperEl) {
207
209
  const targetWidth = targetElem.offsetWidth
208
210
  const targetHeight = targetElem.offsetHeight
@@ -215,16 +217,18 @@ export function updatePanelPlacement (targetElem: HTMLElement | null | undefined
215
217
  const visibleHeight = bodyEl.clientHeight
216
218
  const visibleWidth = bodyEl.clientWidth
217
219
 
218
- const offsetLeft = parentWrapperRect.left
219
- const offsetTop = parentWrapperRect.top
220
+ const parentWrapperScrollLeft = parentWrapperEl.scrollLeft
221
+ const parentWrapperScrollTop = parentWrapperEl.scrollTop
222
+ const parentWrapperOffsetLeft = parentWrapperRect.left
223
+ const parentWrapperOffsetTop = parentWrapperRect.top
220
224
  const targetLeft = targetRect.left
221
225
  const targetTop = targetRect.top
222
226
 
223
227
  minWidth = targetElem.offsetWidth
224
228
 
225
229
  if (teleportTo) {
226
- left = defaultLeft || (targetLeft - (panelWidth - targetWidth) / 2)
227
- top = defaultTop || (targetTop + targetHeight)
230
+ left = (defaultLeft || (targetLeft - (panelWidth - targetWidth) / 2)) - parentWrapperScrollLeft
231
+ top = (defaultTop || (targetTop + targetHeight)) - parentWrapperScrollTop
228
232
  if (placement === 'top') {
229
233
  panelPlacement = 'top'
230
234
  top = targetTop - panelHeight
@@ -267,8 +271,8 @@ export function updatePanelPlacement (targetElem: HTMLElement | null | undefined
267
271
  }
268
272
 
269
273
  // 偏移
270
- top -= offsetTop
271
- left -= offsetLeft
274
+ top -= parentWrapperOffsetTop
275
+ left -= parentWrapperOffsetLeft
272
276
  } else {
273
277
  if (placement === 'top') {
274
278
  panelPlacement = 'top'
@@ -191,4 +191,18 @@
191
191
  &:active {
192
192
  background-color: var(--vxe-ui-scrollbar-thumb-active-background-color);
193
193
  }
194
- }
194
+ }
195
+
196
+ // 滚动条主题色
197
+ .vxe-scrollbar {
198
+ &.theme--light {
199
+ --vxe-ui-scrollbar-thumb-background-color: rgba(0,0,0,0.4);
200
+ --vxe-ui-scrollbar-thumb-hover-background-color: rgba(0,0,0,0.5);
201
+ --vxe-ui-scrollbar-thumb-active-background-color: rgba(0,0,0,0.6);
202
+ }
203
+ &.theme--dark {
204
+ --vxe-ui-scrollbar-thumb-background-color: rgba(255,255,255,0.4);
205
+ --vxe-ui-scrollbar-thumb-hover-background-color: rgba(255,255,255,0.5);
206
+ --vxe-ui-scrollbar-thumb-active-background-color: rgba(255,255,255,0.6);
207
+ }
208
+ }
@@ -28,7 +28,8 @@
28
28
  pointer-events: all;
29
29
  }
30
30
  }
31
- .vxe-tooltip--content {
31
+ .vxe-tooltip--content,
32
+ .vxe-tooltip--scrollbar-content-view {
32
33
  padding: 8px 12px;
33
34
  max-width: 600px;
34
35
  max-height: 800px;