vxe-table 4.23.0-beta.2 → 4.23.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.esm.js +37 -72
- package/dist/style.css +1 -1
- package/es/style.css +1 -1
- package/es/table/module/custom/panel.js +2 -2
- package/es/table/module/filter/hook.js +1 -0
- package/es/table/src/table.js +10 -6
- 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/index.umd.js +23 -74
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/custom/panel.js +2 -2
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/filter/hook.js +1 -0
- package/lib/table/module/filter/hook.min.js +1 -1
- package/lib/table/src/table.js +10 -10
- package/lib/table/src/table.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/table/module/custom/panel.ts +2 -2
- package/packages/table/module/filter/hook.ts +1 -0
- package/packages/table/src/table.ts +11 -6
- package/packages/ui/src/dom.ts +12 -8
- package/es/table/src/scrollbar.js +0 -54
- package/lib/table/src/scrollbar.js +0 -63
- package/lib/table/src/scrollbar.min.js +0 -1
- package/packages/table/src/scrollbar.ts +0 -57
- /package/es/{iconfont.1792035024476.ttf → iconfont.1792117711657.ttf} +0 -0
- /package/es/{iconfont.1792035024476.woff → iconfont.1792117711657.woff} +0 -0
- /package/es/{iconfont.1792035024476.woff2 → iconfont.1792117711657.woff2} +0 -0
- /package/lib/{iconfont.1792035024476.ttf → iconfont.1792117711657.ttf} +0 -0
- /package/lib/{iconfont.1792035024476.woff → iconfont.1792117711657.woff} +0 -0
- /package/lib/{iconfont.1792035024476.woff2 → iconfont.1792117711657.woff2} +0 -0
package/lib/ui/index.js
CHANGED
|
@@ -13,7 +13,7 @@ Object.defineProperty(exports, "VxeUI", {
|
|
|
13
13
|
exports.version = exports.validators = exports.use = exports.t = exports.setup = exports.setTheme = exports.setLanguage = exports.setIcon = exports.setI18n = exports.setConfig = exports.saveFile = exports.renderer = exports.readFile = exports.print = exports.modal = exports.menus = exports.log = exports.interceptor = exports.hooks = exports.globalResize = exports.globalEvents = exports.getTheme = exports.getIcon = exports.getI18n = exports.getConfig = exports.formats = exports.default = exports.config = exports.commands = exports.clipboard = exports._t = void 0;
|
|
14
14
|
var _core = require("@vxe-ui/core");
|
|
15
15
|
var _utils = require("./src/utils");
|
|
16
|
-
const version = exports.version = "4.23.0-beta.
|
|
16
|
+
const version = exports.version = "4.23.0-beta.3";
|
|
17
17
|
_core.VxeUI.version = version;
|
|
18
18
|
_core.VxeUI.tableVersion = version;
|
|
19
19
|
_core.VxeUI.setConfig({
|
package/lib/ui/index.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.hooks=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");let version=exports.version="4.23.0-beta.
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.hooks=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");let version=exports.version="4.23.0-beta.3",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0,isSyncAutoHeight:!0,isSyncAutoWidth:!0,minHeight:18},currentRowConfig:{strict:!0},currentColumnConfig:{strict:!0},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},columnDragConfig:{showIcon:!0,animation:!0,showGuidesStatus:!0,showDragTip:!0},checkboxConfig:{strict:!0},tooltipConfig:{mode:"tooltip",enterable:!0,defaultPlacement:"top"},headerTooltipConfig:{mode:"tooltip",enterable:!0},footerTooltipConfig:{mode:"tooltip",enterable:!0},validConfig:{showErrorMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{autoOptions:{isCalcHeader:!0,isCalcBody:!0,isCalcFooter:!0},maxFixedSize:4},cellConfig:{padding:!0},headerCellConfig:{height:"unset"},footerCellConfig:{height:"unset"},menuConfig:{destroyOnClose:!0},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,allowAlign:!0,showSortDragButton:!0,showFooter:!0,placement:"top-right",storeOptions:{visible:!0,resizable:!0,sort:!0,fixed:!0,align:!0,headerAlign:!0,footerAlign:!0,aggFunc:!0},modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0},drawerOptions:{mask:!0,lockView:!0,escClosable:!0,resize:!0}},sortConfig:{showIcon:!0,allowClear:!0,allowBtn:!0,iconLayout:"vertical"},filterConfig:{destroyOnClose:!0,multiple:!0,showIcon:!0,maxHeight:280},floatingFilterConfig:{},aggregateConfig:{padding:!0,placement:"left",rowField:"id",parentField:"_X_ROW_PARENT_KEY",childrenField:"_X_ROW_CHILDREN",mapChildrenField:"_X_ROW_CHILD_LIST",indent:20,showIcon:!0,maxGroupSize:4,showAggFuncTitle:!0},treeConfig:{padding:!0,rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0,showRootLine:!0},expandConfig:{showIcon:!0,mode:"fixed"},editConfig:{showIcon:!0,showAsterisk:!0,autoFocus:!0,isReuseKeep:!0},importConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},exportConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},printConfig:{},mouseConfig:{extension:!0},keyboardConfig:{isAll:!0,isEsc:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0,selectCellByBody:!0,extendDirection:{top:!0,left:!0,bottom:!0,right:!0}},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},virtualXConfig:{gt:24,preSize:1,oSize:0},virtualYConfig:{gt:100,preSize:1,oSize:0},scrollbarConfig:{},undoRedoHistoryConfig:{stackSize:50}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showLoading:!0,showResponseMsg:!0,showActionMsg:!0,response:{list:"list",result:"result",total:"page.total",footerData:"footerData",message:"message"}}},toolbar:{},gantt:{}}),"vxe-table-icon-"),setTheme=(_core.VxeUI.setIcon({TABLE_SORT_ASC:iconPrefix+"caret-up",TABLE_SORT_DESC:iconPrefix+"caret-down",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit",TABLE_TITLE_PREFIX:iconPrefix+"question-circle-fill",TABLE_TITLE_SUFFIX:iconPrefix+"question-circle-fill",TABLE_TREE_LOADED:iconPrefix+"spinner roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"spinner roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",TABLE_CHECKBOX_CHECKED:iconPrefix+"checkbox-checked-fill",TABLE_CHECKBOX_UNCHECKED:iconPrefix+"checkbox-unchecked",TABLE_CHECKBOX_INDETERMINATE:iconPrefix+"checkbox-indeterminate-fill",TABLE_CHECKBOX_DISABLED_UNCHECKED:iconPrefix+"checkbox-unchecked-fill",TABLE_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_RADIO_DISABLED_UNCHECKED:iconPrefix+"radio-unchecked-fill",TABLE_CUSTOM_SORT:iconPrefix+"drag-handle",TABLE_CUSTOM_FIXED_LEFT:iconPrefix+"fixed-left",TABLE_CUSTOM_FIXED_RIGHT:iconPrefix+"fixed-right",TABLE_CUSTOM_ALIGN_LEFT:iconPrefix+"align-left",TABLE_CUSTOM_ALIGN_CENTER:iconPrefix+"align-center",TABLE_CUSTOM_ALIGN_RIGHT:iconPrefix+"align-right",TABLE_CUSTOM_MOVE_UP:iconPrefix+"arrows-up",TABLE_CUSTOM_MOVE_DN:iconPrefix+"arrows-down",TABLE_CUSTOM_PUT_TOP:iconPrefix+"top",TABLE_CUSTOM_PUT_BOTTOM:iconPrefix+"bottom",TABLE_MENU_OPTIONS:iconPrefix+"arrow-right",TABLE_MENU_OPTION_LOADING:iconPrefix+"repeat roll",TABLE_DRAG_ROW:iconPrefix+"drag-handle",TABLE_DRAG_COLUMN:iconPrefix+"drag-handle",TABLE_DRAG_STATUS_ROW:iconPrefix+"sort",TABLE_DRAG_STATUS_SUB_ROW:iconPrefix+"add-sub",TABLE_DRAG_STATUS_AGG_GROUP:iconPrefix+"grouping",TABLE_DRAG_STATUS_AGG_VALUES:iconPrefix+"values",TABLE_DRAG_STATUS_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",TABLE_ROW_GROUP_OPEN:iconPrefix+"arrow-right rotate90",TABLE_ROW_GROUP_CLOSE:iconPrefix+"arrow-right",TABLE_AGGREGATE_GROUPING:iconPrefix+"grouping",TABLE_AGGREGATE_VALUES:iconPrefix+"values",TABLE_AGGREGATE_SORT:iconPrefix+"drag-handle",TABLE_AGGREGATE_DELETE:iconPrefix+"close",TOOLBAR_TOOLS_REFRESH:iconPrefix+"repeat",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"repeat roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_FULLSCREEN:iconPrefix+"fullscreen",TOOLBAR_TOOLS_MINIMIZE:iconPrefix+"minimize",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"setting",TOOLBAR_TOOLS_FIXED_LEFT:iconPrefix+"fixed-left",TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:iconPrefix+"fixed-left-fill",TOOLBAR_TOOLS_FIXED_RIGHT:iconPrefix+"fixed-right",TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:iconPrefix+"fixed-right-fill"}),exports.setTheme=_core.VxeUI.setTheme),getTheme=exports.getTheme=_core.VxeUI.getTheme,setConfig=exports.setConfig=_core.VxeUI.setConfig,getConfig=exports.getConfig=_core.VxeUI.getConfig,setIcon=exports.setIcon=_core.VxeUI.setIcon,getIcon=exports.getIcon=_core.VxeUI.getIcon,setLanguage=exports.setLanguage=_core.VxeUI.setLanguage,setI18n=exports.setI18n=_core.VxeUI.setI18n,getI18n=exports.getI18n=_core.VxeUI.getI18n,globalEvents=exports.globalEvents=_core.VxeUI.globalEvents,globalResize=exports.globalResize=_core.VxeUI.globalResize,renderer=exports.renderer=_core.VxeUI.renderer,validators=exports.validators=_core.VxeUI.validators,menus=exports.menus=_core.VxeUI.menus,formats=exports.formats=_core.VxeUI.formats,commands=exports.commands=_core.VxeUI.commands,interceptor=exports.interceptor=_core.VxeUI.interceptor,clipboard=exports.clipboard=_core.VxeUI.clipboard,log=exports.log=_core.VxeUI.log,hooks=exports.hooks=_core.VxeUI.hooks,use=exports.use=_core.VxeUI.use,setup=e=>_core.VxeUI.setConfig(e),config=(exports.setup=setup,_core.VxeUI.setup=setup,e=>_core.VxeUI.setConfig(e)),t=(exports.config=config,_core.VxeUI.config=config,(e,o)=>_core.VxeUI.getI18n(e,o)),_t=(exports.t=t,_core.VxeUI.t=t,(e,o)=>(0,_utils.getFuncText)(e,o)),VXETable=(exports._t=_t,_core.VxeUI._t=_t,exports.VXETable=_core.VxeUI),saveFile=e=>_core.VxeUI.saveFile(e),readFile=(exports.saveFile=saveFile,e=>_core.VxeUI.readFile(e)),print=(exports.readFile=readFile,e=>_core.VxeUI.print(e)),modal=(exports.print=print,exports.modal={get(e){return _core.VxeUI.modal.get(e)},close(e){return _core.VxeUI.modal.close(e)},open(e){return _core.VxeUI.modal.open(e)},alert(e,o,i){return _core.VxeUI.modal.alert(e,o,i)},confirm(e,o,i){return _core.VxeUI.modal.confirm(e,o,i)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,i){return _core.VxeUI.modal.notification(e,o,i)}});var _default=exports.default=_core.VxeUI;
|
package/lib/ui/src/dom.js
CHANGED
|
@@ -315,10 +315,12 @@ function updatePanelPlacement(targetElem, panelElem, options) {
|
|
|
315
315
|
defaultLeft,
|
|
316
316
|
placement,
|
|
317
317
|
defaultPlacement,
|
|
318
|
+
appendTo,
|
|
318
319
|
teleportTo,
|
|
319
320
|
marginSize,
|
|
320
321
|
isMinWidth
|
|
321
322
|
} = Object.assign({
|
|
323
|
+
appendTo: '',
|
|
322
324
|
teleportTo: false,
|
|
323
325
|
marginSize: 18,
|
|
324
326
|
isMinWidth: true
|
|
@@ -332,7 +334,7 @@ function updatePanelPlacement(targetElem, panelElem, options) {
|
|
|
332
334
|
const stys = {};
|
|
333
335
|
if (panelElem && targetElem) {
|
|
334
336
|
const bodyEl = document.body;
|
|
335
|
-
const parentWrapperEl = getPopupWrapperElement(panelElem);
|
|
337
|
+
const parentWrapperEl = getPopupWrapperElement(teleportTo ? getPopupAppendElement(appendTo) : panelElem);
|
|
336
338
|
if (parentWrapperEl) {
|
|
337
339
|
const targetWidth = targetElem.offsetWidth;
|
|
338
340
|
const targetHeight = targetElem.offsetHeight;
|
|
@@ -343,14 +345,16 @@ function updatePanelPlacement(targetElem, panelElem, options) {
|
|
|
343
345
|
const targetRect = targetElem.getBoundingClientRect();
|
|
344
346
|
const visibleHeight = bodyEl.clientHeight;
|
|
345
347
|
const visibleWidth = bodyEl.clientWidth;
|
|
346
|
-
const
|
|
347
|
-
const
|
|
348
|
+
const parentWrapperScrollLeft = parentWrapperEl.scrollLeft;
|
|
349
|
+
const parentWrapperScrollTop = parentWrapperEl.scrollTop;
|
|
350
|
+
const parentWrapperOffsetLeft = parentWrapperRect.left;
|
|
351
|
+
const parentWrapperOffsetTop = parentWrapperRect.top;
|
|
348
352
|
const targetLeft = targetRect.left;
|
|
349
353
|
const targetTop = targetRect.top;
|
|
350
354
|
minWidth = targetElem.offsetWidth;
|
|
351
355
|
if (teleportTo) {
|
|
352
|
-
left = defaultLeft || targetLeft - (panelWidth - targetWidth) / 2;
|
|
353
|
-
top = defaultTop || targetTop + targetHeight;
|
|
356
|
+
left = (defaultLeft || targetLeft - (panelWidth - targetWidth) / 2) - parentWrapperScrollLeft;
|
|
357
|
+
top = (defaultTop || targetTop + targetHeight) - parentWrapperScrollTop;
|
|
354
358
|
if (placement === 'top') {
|
|
355
359
|
panelPlacement = 'top';
|
|
356
360
|
top = targetTop - panelHeight;
|
|
@@ -392,8 +396,8 @@ function updatePanelPlacement(targetElem, panelElem, options) {
|
|
|
392
396
|
left = marginSize;
|
|
393
397
|
}
|
|
394
398
|
// 偏移
|
|
395
|
-
top -=
|
|
396
|
-
left -=
|
|
399
|
+
top -= parentWrapperOffsetTop;
|
|
400
|
+
left -= parentWrapperOffsetLeft;
|
|
397
401
|
} else {
|
|
398
402
|
if (placement === 'top') {
|
|
399
403
|
panelPlacement = 'top';
|
package/lib/ui/src/dom.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.addClass=addClass,exports.checkTargetElement=checkTargetElement,exports.getAbsolutePos=getAbsolutePos,exports.getDomNode=getDomNode,exports.getEventTargetNode=getEventTargetNode,exports.getOffsetHeight=getOffsetHeight,exports.getOffsetPos=getOffsetPos,exports.getPaddingTopBottomSize=getPaddingTopBottomSize,exports.getPopupAppendElement=getPopupAppendElement,exports.getPopupContainer=getPopupContainer,exports.getPopupWrapperElement=getPopupWrapperElement,exports.getPropClass=getPropClass,exports.getTpImg=getTpImg,exports.hasAxternalInputTarget=hasAxternalInputTarget,exports.hasClass=hasClass,exports.hasControlKey=hasControlKey,exports.hasEventInputTarget=hasEventInputTarget,exports.initTpImg=initTpImg,exports.isNodeElement=isNodeElement,exports.isPx=isPx,exports.isScale=isScale,exports.queryElement=queryElement,exports.removeClass=removeClass,exports.scrollToView=scrollToView,exports.scrollTopTo=scrollTopTo,exports.setScrollLeft=setScrollLeft,exports.setScrollTop=setScrollTop,exports.toCssUnit=toCssUnit,exports.triggerEvent=triggerEvent,exports.updateCellTitle=updateCellTitle,exports.updatePanelPlacement=updatePanelPlacement,exports.wheelScrollLeftTo=wheelScrollLeftTo,exports.wheelScrollTopTo=wheelScrollTopTo;var _xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let reClsMap={},tpImgEl;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)||""}function getClsRE(e){return reClsMap[e]||(reClsMap[e]=new RegExp(`(?:^|\\s)${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=e.className+" "+t)}function hasControlKey(e){return e.ctrlKey||e.metaKey}function toCssUnit(e,t="px"){return _xeUtils.default.isNumber(e)||/^\d+$/.test(""+e)?""+e+t:""+(e||"")}function queryElement(e,t){return e?e.querySelector(t):null}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 getOffsetHeight(e){return e?e.offsetHeight:0}function getPaddingTopBottomSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingTop)+_xeUtils.default.toNumber(e.paddingBottom)):0}function setScrollTop(e,t){e&&(e.scrollTop=t)}function setScrollLeft(e,t){e&&(e.scrollLeft=t)}function updateCellTitle(e,t){t="html"===t.type?e.innerText:e.textContent;e.getAttribute("title")!==t&&e.setAttribute("title",t)}function checkTargetElement(e,t,o){let n=e;if(t&&t.length)for(var[l,r,s]=t;n;){if(l===n||r&&n===r||s&&n===s)return!0;if(o&&n===o)return!1;n=n.parentElement}return!1}function getEventTargetNode(e,t,o,n){let l,r=e.target.shadowRoot&&e.composed&&e.composedPath()[0]||e.target;for(;r&&r.nodeType&&r!==document;){if(o&&hasClass(r,o)&&(!n||n(r)))l=r;else if(r===t)return{flag:!o||!!l,container:t,targetElem:l};r=r.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,{scrollTop:o,scrollLeft:n,visibleHeight:l,visibleWidth:r}=getDomNode();return{boundingTop:t,top:o+t,boundingLeft:e,left:n+e,visibleHeight:l,visibleWidth:r}}function hasEventInputTarget(e){e=e?e.tagName:"";return e&&["input","textarea"].includes(e.toLowerCase())}function hasReusekeepControl(e){return!!e&&hasClass(e,"vxe-reusekeep-control")}function hasAxternalInputTarget(e){return!!hasEventInputTarget(e)&&!hasReusekeepControl(e)}let 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 scrollTopTo(o,n){let l=Math.abs(o),r=performance.now(),s=0,i=e=>{let t=(e-r)/l;t<0?t=0:1<t&&(t=1);e=Math.pow(t,2),e=Math.floor(o*e)-s;s+=e,n(e),t<1&&requestAnimationFrame(i)};requestAnimationFrame(i)}let wtlFrame;function wheelScrollLeftTo(e,t){wtlFrame&&cancelAnimationFrame(wtlFrame),wtlFrame=requestAnimationFrame(()=>{t(e),wtlFrame=null})}let wtaFrame;function wheelScrollTopTo(e,t){wtaFrame&&cancelAnimationFrame(wtaFrame),wtaFrame=requestAnimationFrame(()=>{t(e),wtaFrame=null})}function updatePanelPlacement(e,t,o){var{defaultTop:o,defaultLeft:n,placement:l,defaultPlacement:r,
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.addClass=addClass,exports.checkTargetElement=checkTargetElement,exports.getAbsolutePos=getAbsolutePos,exports.getDomNode=getDomNode,exports.getEventTargetNode=getEventTargetNode,exports.getOffsetHeight=getOffsetHeight,exports.getOffsetPos=getOffsetPos,exports.getPaddingTopBottomSize=getPaddingTopBottomSize,exports.getPopupAppendElement=getPopupAppendElement,exports.getPopupContainer=getPopupContainer,exports.getPopupWrapperElement=getPopupWrapperElement,exports.getPropClass=getPropClass,exports.getTpImg=getTpImg,exports.hasAxternalInputTarget=hasAxternalInputTarget,exports.hasClass=hasClass,exports.hasControlKey=hasControlKey,exports.hasEventInputTarget=hasEventInputTarget,exports.initTpImg=initTpImg,exports.isNodeElement=isNodeElement,exports.isPx=isPx,exports.isScale=isScale,exports.queryElement=queryElement,exports.removeClass=removeClass,exports.scrollToView=scrollToView,exports.scrollTopTo=scrollTopTo,exports.setScrollLeft=setScrollLeft,exports.setScrollTop=setScrollTop,exports.toCssUnit=toCssUnit,exports.triggerEvent=triggerEvent,exports.updateCellTitle=updateCellTitle,exports.updatePanelPlacement=updatePanelPlacement,exports.wheelScrollLeftTo=wheelScrollLeftTo,exports.wheelScrollTopTo=wheelScrollTopTo;var _xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let reClsMap={},tpImgEl;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)||""}function getClsRE(e){return reClsMap[e]||(reClsMap[e]=new RegExp(`(?:^|\\s)${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=e.className+" "+t)}function hasControlKey(e){return e.ctrlKey||e.metaKey}function toCssUnit(e,t="px"){return _xeUtils.default.isNumber(e)||/^\d+$/.test(""+e)?""+e+t:""+(e||"")}function queryElement(e,t){return e?e.querySelector(t):null}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 getOffsetHeight(e){return e?e.offsetHeight:0}function getPaddingTopBottomSize(e){return e?(e=getComputedStyle(e),_xeUtils.default.toNumber(e.paddingTop)+_xeUtils.default.toNumber(e.paddingBottom)):0}function setScrollTop(e,t){e&&(e.scrollTop=t)}function setScrollLeft(e,t){e&&(e.scrollLeft=t)}function updateCellTitle(e,t){t="html"===t.type?e.innerText:e.textContent;e.getAttribute("title")!==t&&e.setAttribute("title",t)}function checkTargetElement(e,t,o){let n=e;if(t&&t.length)for(var[l,r,s]=t;n;){if(l===n||r&&n===r||s&&n===s)return!0;if(o&&n===o)return!1;n=n.parentElement}return!1}function getEventTargetNode(e,t,o,n){let l,r=e.target.shadowRoot&&e.composed&&e.composedPath()[0]||e.target;for(;r&&r.nodeType&&r!==document;){if(o&&hasClass(r,o)&&(!n||n(r)))l=r;else if(r===t)return{flag:!o||!!l,container:t,targetElem:l};r=r.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,{scrollTop:o,scrollLeft:n,visibleHeight:l,visibleWidth:r}=getDomNode();return{boundingTop:t,top:o+t,boundingLeft:e,left:n+e,visibleHeight:l,visibleWidth:r}}function hasEventInputTarget(e){e=e?e.tagName:"";return e&&["input","textarea"].includes(e.toLowerCase())}function hasReusekeepControl(e){return!!e&&hasClass(e,"vxe-reusekeep-control")}function hasAxternalInputTarget(e){return!!hasEventInputTarget(e)&&!hasReusekeepControl(e)}let 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 scrollTopTo(o,n){let l=Math.abs(o),r=performance.now(),s=0,i=e=>{let t=(e-r)/l;t<0?t=0:1<t&&(t=1);e=Math.pow(t,2),e=Math.floor(o*e)-s;s+=e,n(e),t<1&&requestAnimationFrame(i)};requestAnimationFrame(i)}let wtlFrame;function wheelScrollLeftTo(e,t){wtlFrame&&cancelAnimationFrame(wtlFrame),wtlFrame=requestAnimationFrame(()=>{t(e),wtlFrame=null})}let wtaFrame;function wheelScrollTopTo(e,t){wtaFrame&&cancelAnimationFrame(wtaFrame),wtaFrame=requestAnimationFrame(()=>{t(e),wtaFrame=null})}function updatePanelPlacement(e,t,o){var{defaultTop:o,defaultLeft:n,placement:l,defaultPlacement:r,appendTo:s,teleportTo:i,marginSize:a,isMinWidth:p}=Object.assign({appendTo:"",teleportTo:!1,marginSize:18,isMinWidth:!0},o);let u="bottom",c="",f="",m=0;var d="";let g="";var h,T,x,C,A,E,w,P,N,b,I,v={};return t&&e&&(E=document.body,s=getPopupWrapperElement(i?getPopupAppendElement(s):t))&&(h=e.offsetWidth,T=e.offsetHeight,x=t.offsetWidth,C=t.offsetHeight,N=s.getBoundingClientRect(),t=t.getBoundingClientRect(),I=e.getBoundingClientRect(),A=E.clientHeight,E=E.clientWidth,w=s.scrollLeft,s=s.scrollTop,P=N.left,N=N.top,b=I.left,I=I.top,d=e.offsetWidth,i?(m=(n||b-(x-h)/2)-w,c=(o||I+T)-s,"top"===l?(u="top",c=I-C):l||("top"===r?(u="top",(c=o?c:I-C)<a&&(u="bottom",c=I+T),c+C+a>A&&(u="top",c=I-C)):(c+C+a>A&&(u="top",c=I-C),c<a&&(u="bottom",c=I+T))),m+x+a>E&&(m-=m+x+a-E),m<a&&(m=a),c-=N,m-=P):("top"===l?(u="top",f=T):l||A<I+(c=T)+C+a&&a<I-T-C&&(u="top",c="",f=T),t.left+t.width+a>E&&(m=-(t.left+t.width+a-E))),_xeUtils.default.isNumber(c)&&(v.top=toCssUnit(c)),_xeUtils.default.isNumber(f)&&(v.bottom=toCssUnit(f)),_xeUtils.default.isNumber(m)&&(v.left=toCssUnit(m)),p&&_xeUtils.default.isNumber(d)&&(v.minWidth=toCssUnit(d)),m===b?h<=x&&(g=h/2):m<b&&(g=m+x>b+h?b-m+h/2:b-m+(x-(b-m))/2)),{top:c||0,bottom:f||0,left:m||0,arrowLeft:g||0,style:v,placement:u}}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
|
@@ -9,7 +9,7 @@ var _core = require("@vxe-ui/core");
|
|
|
9
9
|
const {
|
|
10
10
|
log
|
|
11
11
|
} = _core.VxeUI;
|
|
12
|
-
const tableVersion = `table v${"4.23.0-beta.
|
|
12
|
+
const tableVersion = `table v${"4.23.0-beta.3"}`;
|
|
13
13
|
function createComponentLog(name) {
|
|
14
14
|
const uiVersion = _core.VxeUI.uiVersion ? `ui v${_core.VxeUI.uiVersion}` : '';
|
|
15
15
|
const ganttVersion = _core.VxeUI.ganttVersion ? `gantt v${_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");let log=_core.VxeUI.log,tableVersion="table v4.23.0-beta.
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.createComponentLog=createComponentLog,exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,tableVersion="table v4.23.0-beta.3";function createComponentLog(e){var r=_core.VxeUI.uiVersion?"ui v"+_core.VxeUI.uiVersion:"",o=_core.VxeUI.ganttVersion?"gantt v"+_core.VxeUI.ganttVersion:"",t=_core.VxeUI.designVersion?"design v"+_core.VxeUI.designVersion:"",r=[r,tableVersion,o,t].filter(e=>e).join(" ");return{warnLog:log.create("warn",r+"] ["+e),errLog:log.create("error",r+"] ["+e)}}let warnLog=exports.warnLog=log.create("warn",tableVersion),errLog=exports.errLog=log.create("error",tableVersion);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vxe-table",
|
|
3
|
-
"version": "4.23.0-beta.
|
|
3
|
+
"version": "4.23.0-beta.3",
|
|
4
4
|
"description": "A PC-end table component based on Vxe UI, supporting copy-paste, data pivot table, and high-performance virtual list table solution.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"update": "npm install --legacy-peer-deps",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"typescript": "~5.9.3",
|
|
67
67
|
"vue": "3.4.27",
|
|
68
68
|
"vue-router": "~4.5.1",
|
|
69
|
-
"vxe-pc-ui": "4.20.
|
|
69
|
+
"vxe-pc-ui": "4.20.8"
|
|
70
70
|
},
|
|
71
71
|
"vetur": {
|
|
72
72
|
"tags": "helper/vetur/tags.json",
|
|
@@ -378,8 +378,8 @@ export default defineVxeComponent({
|
|
|
378
378
|
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0
|
|
379
379
|
|
|
380
380
|
if (prevDragGroupField || prevDragAggFnColid) {
|
|
381
|
-
if ($xeTable.
|
|
382
|
-
$xeTable.
|
|
381
|
+
if ($xeTable.handlePivotTableAggPanelDragendEvent) {
|
|
382
|
+
$xeTable.handlePivotTableAggPanelDragendEvent(evnt)
|
|
383
383
|
}
|
|
384
384
|
} else if (prevDragCol && dragCol) {
|
|
385
385
|
// 判断是否有拖动
|
|
@@ -7,7 +7,6 @@ import { VxeUI } from '../../ui'
|
|
|
7
7
|
import { createReactData, createInternalData, getRowUniqueId, createRowId, clearTableAllStatus, getColumnList, toFilters, hasDeepKey, getRowkey, getRowid, rowToVisible, colToVisible, getCellValue, setCellValue, handleRowidOrRow, handleFieldOrColumn, toTreePathSeq, restoreScrollLocation, getRootColumn, getRefElem, getColReMinWidth, getColReMaxWidth, createHandleUpdateRowId, createHandleGetRowId, getCalcHeight, getCellRestHeight, getLastChildColumn, getRowMaxHeight, handleCustomStoreConfig, encodeRowid } from './util'
|
|
8
8
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
9
9
|
import { moveRowAnimateToTb, clearRowAnimate, moveColAnimateToLr, clearColAnimate } from '../../ui/src/anime'
|
|
10
|
-
import { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } from './scrollbar'
|
|
11
10
|
import { createComponentLog } from '../../ui/src/log'
|
|
12
11
|
import { getCrossTableDragRowInfo } from './store'
|
|
13
12
|
import Cell from './cell'
|
|
@@ -36,7 +35,9 @@ import type { VxeGridConstructor, VxeGridPrivateMethods, VxeTableConstructor, Vx
|
|
|
36
35
|
|
|
37
36
|
const { warnLog, errLog } = createComponentLog('table')
|
|
38
37
|
|
|
39
|
-
const { getConfig, getIcon, getI18n, renderer, formats, createEvent, globalResize, interceptor, hooks, domUtils, globalEvents, GLOBAL_EVENT_KEYS, useFns, renderEmptyElement } = VxeUI
|
|
38
|
+
const { getConfig, getIcon, getI18n, renderer, formats, scrollbarUtils, createEvent, globalResize, interceptor, hooks, domUtils, globalEvents, GLOBAL_EVENT_KEYS, useFns, renderEmptyElement } = VxeUI
|
|
39
|
+
|
|
40
|
+
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils || {}
|
|
40
41
|
|
|
41
42
|
const supportMaxRow = 5e6
|
|
42
43
|
const customStorageKey = 'VXE_CUSTOM_STORE'
|
|
@@ -425,7 +426,8 @@ export default defineVxeComponent({
|
|
|
425
426
|
})
|
|
426
427
|
|
|
427
428
|
const computeTooltipOpts = computed(() => {
|
|
428
|
-
|
|
429
|
+
const { useScrollbar } = props
|
|
430
|
+
return Object.assign({ useScrollbar }, getConfig().tooltip, getConfig().table.tooltipConfig, props.tooltipConfig)
|
|
429
431
|
})
|
|
430
432
|
|
|
431
433
|
const computeHeaderTooltipOpts = computed(() => {
|
|
@@ -14719,7 +14721,8 @@ export default defineVxeComponent({
|
|
|
14719
14721
|
key: 'ctp',
|
|
14720
14722
|
ref: refCommTooltip,
|
|
14721
14723
|
isArrow: false,
|
|
14722
|
-
enterable: false
|
|
14724
|
+
enterable: false,
|
|
14725
|
+
useScrollbar
|
|
14723
14726
|
}),
|
|
14724
14727
|
/**
|
|
14725
14728
|
* 工具提示
|
|
@@ -14742,7 +14745,8 @@ export default defineVxeComponent({
|
|
|
14742
14745
|
maxHeight: tableTipConfig.maxHeight,
|
|
14743
14746
|
placement: tableTipConfig.placement,
|
|
14744
14747
|
defaultPlacement: tableTipConfig.defaultPlacement,
|
|
14745
|
-
popupClassName: tableTipConfig.popupClassName
|
|
14748
|
+
popupClassName: tableTipConfig.popupClassName,
|
|
14749
|
+
useScrollbar: tableTipConfig.useScrollbar
|
|
14746
14750
|
}, currTooltipSlot
|
|
14747
14751
|
? {
|
|
14748
14752
|
content: () => {
|
|
@@ -14781,7 +14785,8 @@ export default defineVxeComponent({
|
|
|
14781
14785
|
theme: validTipConfig.theme,
|
|
14782
14786
|
enterable: validTipConfig.enterable,
|
|
14783
14787
|
enterDelay: validTipConfig.enterDelay,
|
|
14784
|
-
leaveDelay: validTipConfig.leaveDelay
|
|
14788
|
+
leaveDelay: validTipConfig.leaveDelay,
|
|
14789
|
+
useScrollbar
|
|
14785
14790
|
})
|
|
14786
14791
|
: renderEmptyElement($xeTable)
|
|
14787
14792
|
])
|
package/packages/ui/src/dom.ts
CHANGED
|
@@ -288,6 +288,7 @@ interface PanelPlacementOptions {
|
|
|
288
288
|
defaultLeft?: number
|
|
289
289
|
placement?: '' | 'top' | 'bottom' | null
|
|
290
290
|
defaultPlacement?: '' | 'top' | 'bottom' | null
|
|
291
|
+
appendTo?: string | HTMLElement | ((params: any) => string | HTMLElement)
|
|
291
292
|
teleportTo?: boolean
|
|
292
293
|
marginSize?: number
|
|
293
294
|
isMinWidth?: boolean
|
|
@@ -297,7 +298,8 @@ interface PanelPlacementOptions {
|
|
|
297
298
|
* 通用定位计算
|
|
298
299
|
*/
|
|
299
300
|
export function updatePanelPlacement (targetElem: HTMLElement | null | undefined, panelElem: HTMLElement | null | undefined, options: PanelPlacementOptions) {
|
|
300
|
-
const { defaultTop, defaultLeft, placement, defaultPlacement, teleportTo, marginSize, isMinWidth } = Object.assign({
|
|
301
|
+
const { defaultTop, defaultLeft, placement, defaultPlacement, appendTo, teleportTo, marginSize, isMinWidth } = Object.assign({
|
|
302
|
+
appendTo: '',
|
|
301
303
|
teleportTo: false,
|
|
302
304
|
marginSize: 18,
|
|
303
305
|
isMinWidth: true
|
|
@@ -311,7 +313,7 @@ export function updatePanelPlacement (targetElem: HTMLElement | null | undefined
|
|
|
311
313
|
const stys: Record<string, string> = {}
|
|
312
314
|
if (panelElem && targetElem) {
|
|
313
315
|
const bodyEl = document.body
|
|
314
|
-
const parentWrapperEl = getPopupWrapperElement(panelElem)
|
|
316
|
+
const parentWrapperEl = getPopupWrapperElement(teleportTo ? getPopupAppendElement(appendTo) : panelElem)
|
|
315
317
|
if (parentWrapperEl) {
|
|
316
318
|
const targetWidth = targetElem.offsetWidth
|
|
317
319
|
const targetHeight = targetElem.offsetHeight
|
|
@@ -324,16 +326,18 @@ export function updatePanelPlacement (targetElem: HTMLElement | null | undefined
|
|
|
324
326
|
const visibleHeight = bodyEl.clientHeight
|
|
325
327
|
const visibleWidth = bodyEl.clientWidth
|
|
326
328
|
|
|
327
|
-
const
|
|
328
|
-
const
|
|
329
|
+
const parentWrapperScrollLeft = parentWrapperEl.scrollLeft
|
|
330
|
+
const parentWrapperScrollTop = parentWrapperEl.scrollTop
|
|
331
|
+
const parentWrapperOffsetLeft = parentWrapperRect.left
|
|
332
|
+
const parentWrapperOffsetTop = parentWrapperRect.top
|
|
329
333
|
const targetLeft = targetRect.left
|
|
330
334
|
const targetTop = targetRect.top
|
|
331
335
|
|
|
332
336
|
minWidth = targetElem.offsetWidth
|
|
333
337
|
|
|
334
338
|
if (teleportTo) {
|
|
335
|
-
left = defaultLeft || (targetLeft - (panelWidth - targetWidth) / 2)
|
|
336
|
-
top = defaultTop || (targetTop + targetHeight)
|
|
339
|
+
left = (defaultLeft || (targetLeft - (panelWidth - targetWidth) / 2)) - parentWrapperScrollLeft
|
|
340
|
+
top = (defaultTop || (targetTop + targetHeight)) - parentWrapperScrollTop
|
|
337
341
|
if (placement === 'top') {
|
|
338
342
|
panelPlacement = 'top'
|
|
339
343
|
top = targetTop - panelHeight
|
|
@@ -376,8 +380,8 @@ export function updatePanelPlacement (targetElem: HTMLElement | null | undefined
|
|
|
376
380
|
}
|
|
377
381
|
|
|
378
382
|
// 偏移
|
|
379
|
-
top -=
|
|
380
|
-
left -=
|
|
383
|
+
top -= parentWrapperOffsetTop
|
|
384
|
+
left -= parentWrapperOffsetLeft
|
|
381
385
|
} else {
|
|
382
386
|
if (placement === 'top') {
|
|
383
387
|
panelPlacement = 'top'
|
|
@@ -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
|
-
const ratio = viewportSize / contentSize;
|
|
18
|
-
const 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
|
-
const maxScroll = contentSize - viewportSize;
|
|
26
|
-
if (maxScroll <= 0) {
|
|
27
|
-
return 0;
|
|
28
|
-
}
|
|
29
|
-
const maxThumbOffset = trackSize - thumbSize;
|
|
30
|
-
if (maxThumbOffset <= 0) {
|
|
31
|
-
return 0;
|
|
32
|
-
}
|
|
33
|
-
const clamped = Math.min(Math.max(offsetSize, 0), maxScroll);
|
|
34
|
-
const ratio = clamped / maxScroll;
|
|
35
|
-
return ratio * maxThumbOffset;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* 根据点击轨道的位置,计算滑块的偏移位置
|
|
39
|
-
*/
|
|
40
|
-
function getScrollFromClick(clickPosition, viewportSize, contentSize, trackSize, thumbSize) {
|
|
41
|
-
const maxThumbOffset = trackSize - thumbSize;
|
|
42
|
-
const maxScroll = contentSize - viewportSize;
|
|
43
|
-
if (maxScroll <= 0 || maxThumbOffset <= 0) {
|
|
44
|
-
return 0;
|
|
45
|
-
}
|
|
46
|
-
let thumbOffset = clickPosition - thumbSize / 2;
|
|
47
|
-
thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
|
|
48
|
-
const scrollOffset = thumbOffset / maxThumbOffset * maxScroll;
|
|
49
|
-
return scrollOffset;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* 拖拽 thumb 时,根据鼠标位置计算滑块的偏移位置
|
|
53
|
-
*/
|
|
54
|
-
function getScrollFromDrag(pointerPosition, dragOffset, viewportSize, contentSize, trackSize, thumbSize) {
|
|
55
|
-
const maxScroll = contentSize - viewportSize;
|
|
56
|
-
const maxThumbOffset = trackSize - thumbSize;
|
|
57
|
-
if (maxScroll <= 0 || maxThumbOffset <= 0) {
|
|
58
|
-
return 0;
|
|
59
|
-
}
|
|
60
|
-
let 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;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 计算滚动条滑块的长度
|
|
3
|
-
*/
|
|
4
|
-
export function getThumbSize (viewportSize: number, contentSize: number, trackSize: number) {
|
|
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
|
-
*/
|
|
16
|
-
export function getThumbOffsetSize (offsetSize: number, viewportSize: number, contentSize: number, trackSize: number, thumbSize: number) {
|
|
17
|
-
const maxScroll = contentSize - viewportSize
|
|
18
|
-
if (maxScroll <= 0) {
|
|
19
|
-
return 0
|
|
20
|
-
}
|
|
21
|
-
const maxThumbOffset = trackSize - thumbSize
|
|
22
|
-
if (maxThumbOffset <= 0) {
|
|
23
|
-
return 0
|
|
24
|
-
}
|
|
25
|
-
const clamped = Math.min(Math.max(offsetSize, 0), maxScroll)
|
|
26
|
-
const ratio = clamped / maxScroll
|
|
27
|
-
return ratio * maxThumbOffset
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* 根据点击轨道的位置,计算滑块的偏移位置
|
|
32
|
-
*/
|
|
33
|
-
export function getScrollFromClick (clickPosition: number, viewportSize: number, contentSize: number, trackSize: number, thumbSize: number) {
|
|
34
|
-
const maxThumbOffset = trackSize - thumbSize
|
|
35
|
-
const maxScroll = contentSize - viewportSize
|
|
36
|
-
if (maxScroll <= 0 || maxThumbOffset <= 0) {
|
|
37
|
-
return 0
|
|
38
|
-
}
|
|
39
|
-
let thumbOffset = clickPosition - thumbSize / 2
|
|
40
|
-
thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset)
|
|
41
|
-
const scrollOffset = (thumbOffset / maxThumbOffset) * maxScroll
|
|
42
|
-
return scrollOffset
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* 拖拽 thumb 时,根据鼠标位置计算滑块的偏移位置
|
|
47
|
-
*/
|
|
48
|
-
export function getScrollFromDrag (pointerPosition: number, dragOffset: number, viewportSize: number, contentSize: number, trackSize: number, thumbSize: number) {
|
|
49
|
-
const maxScroll = contentSize - viewportSize
|
|
50
|
-
const maxThumbOffset = trackSize - thumbSize
|
|
51
|
-
if (maxScroll <= 0 || maxThumbOffset <= 0) {
|
|
52
|
-
return 0
|
|
53
|
-
}
|
|
54
|
-
let thumbOffset = pointerPosition - dragOffset
|
|
55
|
-
thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset)
|
|
56
|
-
return (thumbOffset / maxThumbOffset) * maxScroll
|
|
57
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|