vxe-pc-ui 3.20.2 → 3.20.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/button/src/button.js +1 -0
- package/es/cascader/src/cascader.js +1 -0
- package/es/color-picker/src/color-picker.js +1 -0
- package/es/date-picker/src/date-picker.js +1 -0
- package/es/date-range-picker/src/date-range-picker.js +1 -0
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +1 -0
- package/es/list/src/list.js +3 -2
- package/es/pulldown/src/pulldown.js +1 -0
- package/es/scrollbar/src/scrollbar.js +2 -2
- package/es/select/src/select.js +1 -0
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table-select/src/table-select.js +1 -0
- package/es/tooltip/src/tooltip.js +2 -1
- package/es/tree/src/tree.js +2 -2
- package/es/tree-select/src/tree-select.js +1 -0
- package/es/ui/index.js +1 -1
- package/es/ui/src/dom.js +11 -8
- package/es/ui/src/log.js +1 -1
- package/lib/button/src/button.js +1 -0
- package/lib/button/src/button.min.js +1 -1
- package/lib/cascader/src/cascader.js +1 -0
- package/lib/cascader/src/cascader.min.js +1 -1
- package/lib/color-picker/src/color-picker.js +1 -0
- package/lib/color-picker/src/color-picker.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +1 -0
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/date-range-picker/src/date-range-picker.js +1 -0
- package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/icon-picker/src/icon-picker.js +1 -0
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/index.umd.js +99 -119
- package/lib/index.umd.min.js +1 -1
- package/lib/list/src/list.js +57 -46
- package/lib/list/src/list.min.js +1 -1
- package/lib/pulldown/src/pulldown.js +1 -0
- package/lib/pulldown/src/pulldown.min.js +1 -1
- package/lib/scrollbar/src/scrollbar.js +15 -11
- package/lib/scrollbar/src/scrollbar.min.js +1 -1
- package/lib/select/src/select.js +1 -0
- package/lib/select/src/select.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table-select/src/table-select.js +1 -0
- package/lib/table-select/src/table-select.min.js +1 -1
- package/lib/tooltip/src/tooltip.js +2 -0
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/tree/src/tree.js +15 -11
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/tree-select/src/tree-select.js +1 -0
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/dom.js +11 -7
- package/lib/ui/src/dom.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +2 -2
- package/packages/button/src/button.ts +2 -1
- package/packages/cascader/src/cascader.ts +1 -0
- package/packages/color-picker/src/color-picker.ts +1 -0
- package/packages/date-picker/src/date-picker.ts +1 -0
- package/packages/date-range-picker/src/date-range-picker.ts +1 -0
- package/packages/icon-picker/src/icon-picker.ts +1 -0
- package/packages/list/src/list.ts +5 -2
- package/packages/pulldown/src/pulldown.ts +1 -0
- package/packages/scrollbar/src/scrollbar.ts +3 -2
- package/packages/select/src/select.ts +1 -0
- package/packages/table-select/src/table-select.ts +1 -0
- package/packages/tooltip/src/tooltip.ts +2 -1
- package/packages/tree/src/tree.ts +3 -2
- package/packages/tree-select/src/tree-select.ts +1 -0
- package/packages/ui/src/dom.ts +12 -8
- package/types/components/button.d.ts +4 -0
- package/types/components/cascader.d.ts +4 -0
- package/types/components/gantt-plugins/extend-gantt-chart.d.ts +1 -1
- package/types/components/layout-aside.d.ts +15 -0
- package/types/components/layout-body.d.ts +3 -0
- package/types/components/list.d.ts +15 -0
- package/types/components/number-input.d.ts +12 -2
- package/types/components/table-plugins/extend-pivot-table.d.ts +1 -1
- package/types/components/table.d.ts +3 -0
- package/types/components/tree.d.ts +12 -0
- package/es/scrollbar/src/util.js +0 -54
- package/lib/scrollbar/src/util.js +0 -63
- package/lib/scrollbar/src/util.min.js +0 -1
- package/packages/scrollbar/src/util.ts +0 -57
- /package/es/icon/{iconfont.1792034961185.ttf → iconfont.1792054426799.ttf} +0 -0
- /package/es/icon/{iconfont.1792034961185.woff → iconfont.1792054426799.woff} +0 -0
- /package/es/icon/{iconfont.1792034961185.woff2 → iconfont.1792054426799.woff2} +0 -0
- /package/es/{iconfont.1792034961185.ttf → iconfont.1792054426799.ttf} +0 -0
- /package/es/{iconfont.1792034961185.woff → iconfont.1792054426799.woff} +0 -0
- /package/es/{iconfont.1792034961185.woff2 → iconfont.1792054426799.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1792034961185.ttf → iconfont.1792054426799.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1792034961185.woff → iconfont.1792054426799.woff} +0 -0
- /package/lib/icon/style/{iconfont.1792034961185.woff2 → iconfont.1792054426799.woff2} +0 -0
- /package/lib/{iconfont.1792034961185.ttf → iconfont.1792054426799.ttf} +0 -0
- /package/lib/{iconfont.1792034961185.woff → iconfont.1792054426799.woff} +0 -0
- /package/lib/{iconfont.1792034961185.woff2 → iconfont.1792054426799.woff2} +0 -0
package/lib/ui/src/dom.min.js
CHANGED
|
@@ -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,
|
|
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.
|
|
10
|
+
var uiVersion = "ui v".concat("3.20.6");
|
|
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) : '';
|
package/lib/ui/src/log.min.js
CHANGED
|
@@ -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.
|
|
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.6");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);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vxe-pc-ui",
|
|
3
|
-
"version": "3.20.
|
|
3
|
+
"version": "3.20.6",
|
|
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.
|
|
28
|
+
"@vxe-ui/core": "^3.4.32"
|
|
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:
|
|
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, {
|
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import { PropType, CreateElement, VNode } from 'vue'
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp'
|
|
3
3
|
import XEUtils, { XEBrowse } from 'xe-utils'
|
|
4
|
-
import { VxeUI,
|
|
4
|
+
import { VxeUI, createEvent, globalMixins, renderEmptyElement } from '../../ui'
|
|
5
5
|
import { crossListDragRowGlobal, getCrossListDragRowInfo } from './store'
|
|
6
6
|
import { addClass, getTpImg, hasClass, isScale, removeClass, toCssUnit } from '../../ui/src/dom'
|
|
7
7
|
import { isEnableConf, getText, enModelValue, deModelValue, getDefaultConfig } from '../../ui/src/utils'
|
|
8
8
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
9
9
|
import { createComponentLog } from '../../ui/src/log'
|
|
10
10
|
import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime'
|
|
11
|
-
import { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } from '../../scrollbar/src/util'
|
|
12
11
|
import { getItemCacheObj } from './util'
|
|
13
12
|
import VxeLoadingComponent from '../../loading'
|
|
14
13
|
|
|
15
14
|
import type { VxeListPropTypes, VxeListEmits, VxeComponentSizeType, ListReactData, VxeListDefines, ValueOf, ListInternalData, VxeListConstructor, VxeListPrivateMethods, VxeComponentStyleType, VxeScrollbarPropTypes } from '../../../types'
|
|
16
15
|
|
|
16
|
+
const { getConfig, getIcon, getI18n, domUtils, scrollbarUtils, menus, globalEvents, globalResize } = VxeUI
|
|
17
|
+
|
|
18
|
+
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils
|
|
19
|
+
|
|
17
20
|
const { warnLog, errLog } = createComponentLog('tree')
|
|
18
21
|
|
|
19
22
|
let crossListDragRowObj: {
|
|
@@ -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, {
|
|
@@ -3,14 +3,15 @@ import { defineVxeComponent } from '../../ui/src/comp'
|
|
|
3
3
|
import XEUtils from 'xe-utils'
|
|
4
4
|
import { VxeUI } from '../../ui'
|
|
5
5
|
import { toCssUnit } from '../../ui/src/dom'
|
|
6
|
-
import { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } from './util'
|
|
7
6
|
import { getDefaultConfig } from '../../ui/src/utils'
|
|
8
7
|
|
|
9
8
|
import VxeLoadingComponent from '../../loading'
|
|
10
9
|
|
|
11
10
|
import type { ScrollbarReactData, ScrollbarInternalData, VxeScrollbarEmits, ValueOf, VxeScrollbarPropTypes, VxeComponentStyleType } from '../../../types'
|
|
12
11
|
|
|
13
|
-
const { getConfig, createEvent, domUtils, globalResize, globalEvents, renderEmptyElement } = VxeUI
|
|
12
|
+
const { getConfig, createEvent, domUtils, scrollbarUtils, globalResize, globalEvents, renderEmptyElement } = VxeUI
|
|
13
|
+
|
|
14
|
+
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils
|
|
14
15
|
|
|
15
16
|
function createReactData (): ScrollbarReactData {
|
|
16
17
|
return {
|
|
@@ -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, {
|
|
@@ -234,7 +234,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
234
234
|
const props = $xeTooltip
|
|
235
235
|
const reactData = $xeTooltip.reactData
|
|
236
236
|
|
|
237
|
-
const { placement, defaultPlacement, isArrow } = props
|
|
237
|
+
const { placement, defaultPlacement, appendTo, isArrow } = props
|
|
238
238
|
const { tipTarget: targetElem, tipStore, tipPos, tipZindex } = reactData
|
|
239
239
|
const panelElem = $xeTooltip.$refs.refElem as HTMLElement
|
|
240
240
|
if (!targetElem || !panelElem) {
|
|
@@ -268,6 +268,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
268
268
|
defaultLeft: left,
|
|
269
269
|
placement: placement,
|
|
270
270
|
defaultPlacement: defaultPlacement,
|
|
271
|
+
appendTo: appendTo,
|
|
271
272
|
isMinWidth: false,
|
|
272
273
|
teleportTo: true
|
|
273
274
|
})
|
|
@@ -9,7 +9,6 @@ import { crossTreeDragNodeGlobal, getCrossTreeDragNodeInfo } from './store'
|
|
|
9
9
|
import { toCssUnit, isScale, getPaddingTopBottomSize, addClass, removeClass, getTpImg, hasControlKey, getEventTargetNode, hasClass } from '../../ui/src/dom'
|
|
10
10
|
import { isEnableConf, enModelValue, deModelValue, getText, getDefaultConfig } from '../../ui/src/utils'
|
|
11
11
|
import { moveRowAnimateToTb, clearRowAnimate } from '../../ui/src/anime'
|
|
12
|
-
import { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } from '../../scrollbar/src/util'
|
|
13
12
|
import VxeLoadingComponent from '../../loading'
|
|
14
13
|
import VxeTooltipComponent from '../../tooltip'
|
|
15
14
|
|
|
@@ -17,7 +16,9 @@ import type { TreeReactData, VxeTreeEmits, VxeTreeConstructor, VxeTreePropTypes,
|
|
|
17
16
|
|
|
18
17
|
const { warnLog, errLog } = createComponentLog('tree')
|
|
19
18
|
|
|
20
|
-
const { menus, getConfig, getI18n, getIcon } = VxeUI
|
|
19
|
+
const { menus, scrollbarUtils, getConfig, getI18n, getIcon } = VxeUI
|
|
20
|
+
|
|
21
|
+
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils
|
|
21
22
|
|
|
22
23
|
let crossTreeDragNodeObj: {
|
|
23
24
|
$oldTree: VxeTreeConstructor & VxeTreePrivateMethods
|
|
@@ -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, {
|
package/packages/ui/src/dom.ts
CHANGED
|
@@ -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
|
|
219
|
-
const
|
|
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 -=
|
|
271
|
-
left -=
|
|
274
|
+
top -= parentWrapperOffsetTop
|
|
275
|
+
left -= parentWrapperOffsetLeft
|
|
272
276
|
} else {
|
|
273
277
|
if (placement === 'top') {
|
|
274
278
|
panelPlacement = 'top'
|
|
@@ -143,6 +143,10 @@ export namespace VxeCascaderPropTypes {
|
|
|
143
143
|
*/
|
|
144
144
|
defaultPlacement?: 'top' | 'bottom' | '' | null
|
|
145
145
|
transfer?: boolean
|
|
146
|
+
/**
|
|
147
|
+
* 挂载到指定元素下
|
|
148
|
+
*/
|
|
149
|
+
appendTo?: string | HTMLElement | ((params: {}) => string | HTMLElement)
|
|
146
150
|
height?: number | string
|
|
147
151
|
nodeWidth?: number | string
|
|
148
152
|
nodeHeight?: number | string
|
|
@@ -37,7 +37,7 @@ export interface VxeGanttExtendChartPrivateMethods<D = any> {
|
|
|
37
37
|
* 内部方法
|
|
38
38
|
* @private
|
|
39
39
|
*/
|
|
40
|
-
|
|
40
|
+
handleTaskBarModnEvent(evnt: MouseEvent, params: {
|
|
41
41
|
$gantt: VxeGanttConstructor<D>
|
|
42
42
|
row: D
|
|
43
43
|
scaleType: VxeGanttDefines.ColumnScaleType
|
|
@@ -43,10 +43,25 @@ export namespace VxeLayoutAsidePropTypes {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
export interface VxeLayoutAsideProps {
|
|
46
|
+
/**
|
|
47
|
+
* 宽度
|
|
48
|
+
*/
|
|
46
49
|
width?: VxeLayoutAsidePropTypes.Width
|
|
50
|
+
/**
|
|
51
|
+
* 是否折叠
|
|
52
|
+
*/
|
|
47
53
|
collapsed?: VxeLayoutAsidePropTypes.Collapsed
|
|
54
|
+
/**
|
|
55
|
+
* 折叠后宽度
|
|
56
|
+
*/
|
|
48
57
|
collapseWidth?: VxeLayoutAsidePropTypes.CollapseWidth
|
|
58
|
+
/**
|
|
59
|
+
* 加载中
|
|
60
|
+
*/
|
|
49
61
|
loading?: VxeLayoutAsidePropTypes.Loading
|
|
62
|
+
/**
|
|
63
|
+
* 显示内边距
|
|
64
|
+
*/
|
|
50
65
|
padding?: VxeLayoutAsidePropTypes.Padding
|
|
51
66
|
size?: VxeLayoutAsidePropTypes.Size
|
|
52
67
|
collapseConfig?: VxeLayoutAsidePropTypes.CollapseConfig
|
|
@@ -38,6 +38,9 @@ export namespace VxeLayoutBodyPropTypes {
|
|
|
38
38
|
}
|
|
39
39
|
export interface VxeLayoutBodyProps {
|
|
40
40
|
size?: VxeLayoutBodyPropTypes.Size
|
|
41
|
+
/**
|
|
42
|
+
* 加载中
|
|
43
|
+
*/
|
|
41
44
|
loading?: VxeLayoutBodyPropTypes.Loading
|
|
42
45
|
padding?: VxeLayoutBodyPropTypes.Padding
|
|
43
46
|
showBacktop?: VxeLayoutBodyPropTypes.ShowBacktop
|
|
@@ -235,8 +235,17 @@ export namespace VxeListPropTypes {
|
|
|
235
235
|
export interface VxeListProps<D = any> {
|
|
236
236
|
size?: VxeListPropTypes.Size
|
|
237
237
|
data?: D[]
|
|
238
|
+
/**
|
|
239
|
+
* 高度
|
|
240
|
+
*/
|
|
238
241
|
height?: VxeListPropTypes.Height
|
|
242
|
+
/**
|
|
243
|
+
* 最大高度
|
|
244
|
+
*/
|
|
239
245
|
maxHeight?: VxeListPropTypes.MaxHeight
|
|
246
|
+
/**
|
|
247
|
+
* 加载中
|
|
248
|
+
*/
|
|
240
249
|
loading?: VxeListPropTypes.Loading
|
|
241
250
|
autoResize?: VxeListPropTypes.AutoResize
|
|
242
251
|
syncResize?: VxeListPropTypes.SyncResize
|
|
@@ -250,7 +259,13 @@ export interface VxeListProps<D = any> {
|
|
|
250
259
|
checkboxConfig?: VxeListPropTypes.CheckboxConfig
|
|
251
260
|
rowConfig?: VxeListPropTypes.RowConfig
|
|
252
261
|
dragConfig?: VxeListPropTypes.DragConfig
|
|
262
|
+
/**
|
|
263
|
+
* 右键菜单配置项
|
|
264
|
+
*/
|
|
253
265
|
menuConfig?: VxeListPropTypes.MenuConfig
|
|
266
|
+
/**
|
|
267
|
+
* 纵向虚拟滚动配置
|
|
268
|
+
*/
|
|
254
269
|
virtualYConfig?: VxeListPropTypes.VirtualYConfig
|
|
255
270
|
/**
|
|
256
271
|
* 使用虚拟滚动条
|
|
@@ -32,7 +32,6 @@ export namespace VxeNumberInputPropTypes {
|
|
|
32
32
|
export type FloatContent = string
|
|
33
33
|
export type FloatAlign = VxeComponentAlignType
|
|
34
34
|
export type MaxLength = string | number | null
|
|
35
|
-
export type Multiple = boolean
|
|
36
35
|
export type AutoComplete = string
|
|
37
36
|
export type Align = string
|
|
38
37
|
export type Form = string
|
|
@@ -119,6 +118,9 @@ export namespace VxeNumberInputPropTypes {
|
|
|
119
118
|
}
|
|
120
119
|
|
|
121
120
|
export interface VxeNumberInputProps {
|
|
121
|
+
/**
|
|
122
|
+
* 尺寸大小
|
|
123
|
+
*/
|
|
122
124
|
size?: VxeNumberInputPropTypes.Size
|
|
123
125
|
value?: VxeNumberInputPropTypes.ModelValue
|
|
124
126
|
className?: VxeNumberInputPropTypes.ClassName
|
|
@@ -129,7 +131,13 @@ export interface VxeNumberInputProps {
|
|
|
129
131
|
width?: VxeNumberInputPropTypes.Width
|
|
130
132
|
immediate?: VxeNumberInputPropTypes.Immediate
|
|
131
133
|
name?: VxeNumberInputPropTypes.Name
|
|
134
|
+
/**
|
|
135
|
+
* 控件类型
|
|
136
|
+
*/
|
|
132
137
|
type?: VxeNumberInputPropTypes.Type
|
|
138
|
+
/**
|
|
139
|
+
* 显示清除按钮
|
|
140
|
+
*/
|
|
133
141
|
clearable?: VxeNumberInputPropTypes.Clearable
|
|
134
142
|
readonly?: VxeNumberInputPropTypes.Readonly
|
|
135
143
|
disabled?: VxeNumberInputPropTypes.Disabled
|
|
@@ -137,8 +145,10 @@ export interface VxeNumberInputProps {
|
|
|
137
145
|
floatContent?: VxeNumberInputPropTypes.FloatContent
|
|
138
146
|
floatAlign?: VxeNumberInputPropTypes.FloatAlign
|
|
139
147
|
maxLength?: VxeNumberInputPropTypes.MaxLength
|
|
140
|
-
multiple?: VxeNumberInputPropTypes.Multiple
|
|
141
148
|
autoComplete?: VxeNumberInputPropTypes.AutoComplete
|
|
149
|
+
/**
|
|
150
|
+
* 对齐方式
|
|
151
|
+
*/
|
|
142
152
|
align?: VxeNumberInputPropTypes.Align
|
|
143
153
|
form?: VxeNumberInputPropTypes.Form
|
|
144
154
|
|
|
@@ -45,7 +45,7 @@ export interface VxeTableExtendPivotTablePrivateMethods<D = any> {
|
|
|
45
45
|
* 内部方法
|
|
46
46
|
* @private
|
|
47
47
|
*/
|
|
48
|
-
|
|
48
|
+
handlePivotTableAggPanelDragendEvent(evnt: DragEvent): void
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
declare module '../table' {
|
|
@@ -339,10 +339,22 @@ export namespace VxeTreePropTypes {
|
|
|
339
339
|
}
|
|
340
340
|
|
|
341
341
|
export interface VxeTreeProps<D = any> {
|
|
342
|
+
/**
|
|
343
|
+
* 数据源
|
|
344
|
+
*/
|
|
342
345
|
data?: VxeTreePropTypes.Data<D>
|
|
343
346
|
autoResize?: VxeTreePropTypes.AutoResize
|
|
347
|
+
/**
|
|
348
|
+
* 高度
|
|
349
|
+
*/
|
|
344
350
|
height?: VxeTreePropTypes.Height
|
|
351
|
+
/**
|
|
352
|
+
* 最小高度
|
|
353
|
+
*/
|
|
345
354
|
minHeight?: VxeTreePropTypes.MinHeight
|
|
355
|
+
/**
|
|
356
|
+
* 最大高度
|
|
357
|
+
*/
|
|
346
358
|
maxHeight?: VxeTreePropTypes.MaxHeight
|
|
347
359
|
loading?: VxeTreePropTypes.Loading
|
|
348
360
|
loadingConfig?: VxeTreePropTypes.LoadingConfig
|
package/es/scrollbar/src/util.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 计算滚动条滑块的长度
|
|
3
|
-
*/
|
|
4
|
-
export function getThumbSize(viewportSize, contentSize, trackSize) {
|
|
5
|
-
if (contentSize <= viewportSize) {
|
|
6
|
-
return 0;
|
|
7
|
-
}
|
|
8
|
-
const ratio = viewportSize / contentSize;
|
|
9
|
-
const ideal = trackSize * ratio;
|
|
10
|
-
return Math.max(20, Math.min(ideal, trackSize));
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* 计算滚动条滑块的偏移位置
|
|
14
|
-
*/
|
|
15
|
-
export function getThumbOffsetSize(offsetSize, viewportSize, contentSize, trackSize, thumbSize) {
|
|
16
|
-
const maxScroll = contentSize - viewportSize;
|
|
17
|
-
if (maxScroll <= 0) {
|
|
18
|
-
return 0;
|
|
19
|
-
}
|
|
20
|
-
const maxThumbOffset = trackSize - thumbSize;
|
|
21
|
-
if (maxThumbOffset <= 0) {
|
|
22
|
-
return 0;
|
|
23
|
-
}
|
|
24
|
-
const clamped = Math.min(Math.max(offsetSize, 0), maxScroll);
|
|
25
|
-
const ratio = clamped / maxScroll;
|
|
26
|
-
return ratio * maxThumbOffset;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* 根据点击轨道的位置,计算滑块的偏移位置
|
|
30
|
-
*/
|
|
31
|
-
export function getScrollFromClick(clickPosition, viewportSize, contentSize, trackSize, thumbSize) {
|
|
32
|
-
const maxThumbOffset = trackSize - thumbSize;
|
|
33
|
-
const maxScroll = contentSize - viewportSize;
|
|
34
|
-
if (maxScroll <= 0 || maxThumbOffset <= 0) {
|
|
35
|
-
return 0;
|
|
36
|
-
}
|
|
37
|
-
let thumbOffset = clickPosition - thumbSize / 2;
|
|
38
|
-
thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
|
|
39
|
-
const scrollOffset = (thumbOffset / maxThumbOffset) * maxScroll;
|
|
40
|
-
return scrollOffset;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* 拖拽 thumb 时,根据鼠标位置计算滑块的偏移位置
|
|
44
|
-
*/
|
|
45
|
-
export function getScrollFromDrag(pointerPosition, dragOffset, viewportSize, contentSize, trackSize, thumbSize) {
|
|
46
|
-
const maxScroll = contentSize - viewportSize;
|
|
47
|
-
const maxThumbOffset = trackSize - thumbSize;
|
|
48
|
-
if (maxScroll <= 0 || maxThumbOffset <= 0) {
|
|
49
|
-
return 0;
|
|
50
|
-
}
|
|
51
|
-
let thumbOffset = pointerPosition - dragOffset;
|
|
52
|
-
thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
|
|
53
|
-
return (thumbOffset / maxThumbOffset) * maxScroll;
|
|
54
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getScrollFromClick = getScrollFromClick;
|
|
7
|
-
exports.getScrollFromDrag = getScrollFromDrag;
|
|
8
|
-
exports.getThumbOffsetSize = getThumbOffsetSize;
|
|
9
|
-
exports.getThumbSize = getThumbSize;
|
|
10
|
-
/**
|
|
11
|
-
* 计算滚动条滑块的长度
|
|
12
|
-
*/
|
|
13
|
-
function getThumbSize(viewportSize, contentSize, trackSize) {
|
|
14
|
-
if (contentSize <= viewportSize) {
|
|
15
|
-
return 0;
|
|
16
|
-
}
|
|
17
|
-
var ratio = viewportSize / contentSize;
|
|
18
|
-
var ideal = trackSize * ratio;
|
|
19
|
-
return Math.max(20, Math.min(ideal, trackSize));
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* 计算滚动条滑块的偏移位置
|
|
23
|
-
*/
|
|
24
|
-
function getThumbOffsetSize(offsetSize, viewportSize, contentSize, trackSize, thumbSize) {
|
|
25
|
-
var maxScroll = contentSize - viewportSize;
|
|
26
|
-
if (maxScroll <= 0) {
|
|
27
|
-
return 0;
|
|
28
|
-
}
|
|
29
|
-
var maxThumbOffset = trackSize - thumbSize;
|
|
30
|
-
if (maxThumbOffset <= 0) {
|
|
31
|
-
return 0;
|
|
32
|
-
}
|
|
33
|
-
var clamped = Math.min(Math.max(offsetSize, 0), maxScroll);
|
|
34
|
-
var ratio = clamped / maxScroll;
|
|
35
|
-
return ratio * maxThumbOffset;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* 根据点击轨道的位置,计算滑块的偏移位置
|
|
39
|
-
*/
|
|
40
|
-
function getScrollFromClick(clickPosition, viewportSize, contentSize, trackSize, thumbSize) {
|
|
41
|
-
var maxThumbOffset = trackSize - thumbSize;
|
|
42
|
-
var maxScroll = contentSize - viewportSize;
|
|
43
|
-
if (maxScroll <= 0 || maxThumbOffset <= 0) {
|
|
44
|
-
return 0;
|
|
45
|
-
}
|
|
46
|
-
var thumbOffset = clickPosition - thumbSize / 2;
|
|
47
|
-
thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
|
|
48
|
-
var scrollOffset = thumbOffset / maxThumbOffset * maxScroll;
|
|
49
|
-
return scrollOffset;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* 拖拽 thumb 时,根据鼠标位置计算滑块的偏移位置
|
|
53
|
-
*/
|
|
54
|
-
function getScrollFromDrag(pointerPosition, dragOffset, viewportSize, contentSize, trackSize, thumbSize) {
|
|
55
|
-
var maxScroll = contentSize - viewportSize;
|
|
56
|
-
var maxThumbOffset = trackSize - thumbSize;
|
|
57
|
-
if (maxScroll <= 0 || maxThumbOffset <= 0) {
|
|
58
|
-
return 0;
|
|
59
|
-
}
|
|
60
|
-
var thumbOffset = pointerPosition - dragOffset;
|
|
61
|
-
thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
|
|
62
|
-
return thumbOffset / maxThumbOffset * maxScroll;
|
|
63
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function getThumbSize(t,e,r){return e<=t?0:Math.max(20,Math.min(r*(t/e),r))}function getThumbOffsetSize(t,e,r,o,m){r-=e;return r<=0||(e=o-m)<=0?0:Math.min(Math.max(t,0),r)/r*e}function getScrollFromClick(t,e,r,o,m){o-=m,r-=e;return r<=0||o<=0?0:(e=t-m/2,(e=Math.min(Math.max(e,0),o))/o*r)}function getScrollFromDrag(t,e,r,o,m,i){o-=r,r=m-i;return o<=0||r<=0?0:(m=t-e,(m=Math.min(Math.max(m,0),r))/r*o)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getScrollFromClick=getScrollFromClick,exports.getScrollFromDrag=getScrollFromDrag,exports.getThumbOffsetSize=getThumbOffsetSize,exports.getThumbSize=getThumbSize;
|