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.
Files changed (39) hide show
  1. package/dist/all.esm.js +37 -72
  2. package/dist/style.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/table/module/custom/panel.js +2 -2
  5. package/es/table/module/filter/hook.js +1 -0
  6. package/es/table/src/table.js +10 -6
  7. package/es/ui/index.js +1 -1
  8. package/es/ui/src/dom.js +11 -8
  9. package/es/ui/src/log.js +1 -1
  10. package/lib/index.umd.js +23 -74
  11. package/lib/index.umd.min.js +1 -1
  12. package/lib/style.css +1 -1
  13. package/lib/table/module/custom/panel.js +2 -2
  14. package/lib/table/module/custom/panel.min.js +1 -1
  15. package/lib/table/module/filter/hook.js +1 -0
  16. package/lib/table/module/filter/hook.min.js +1 -1
  17. package/lib/table/src/table.js +10 -10
  18. package/lib/table/src/table.min.js +1 -1
  19. package/lib/ui/index.js +1 -1
  20. package/lib/ui/index.min.js +1 -1
  21. package/lib/ui/src/dom.js +11 -7
  22. package/lib/ui/src/dom.min.js +1 -1
  23. package/lib/ui/src/log.js +1 -1
  24. package/lib/ui/src/log.min.js +1 -1
  25. package/package.json +2 -2
  26. package/packages/table/module/custom/panel.ts +2 -2
  27. package/packages/table/module/filter/hook.ts +1 -0
  28. package/packages/table/src/table.ts +11 -6
  29. package/packages/ui/src/dom.ts +12 -8
  30. package/es/table/src/scrollbar.js +0 -54
  31. package/lib/table/src/scrollbar.js +0 -63
  32. package/lib/table/src/scrollbar.min.js +0 -1
  33. package/packages/table/src/scrollbar.ts +0 -57
  34. /package/es/{iconfont.1792035024476.ttf → iconfont.1792117711657.ttf} +0 -0
  35. /package/es/{iconfont.1792035024476.woff → iconfont.1792117711657.woff} +0 -0
  36. /package/es/{iconfont.1792035024476.woff2 → iconfont.1792117711657.woff2} +0 -0
  37. /package/lib/{iconfont.1792035024476.ttf → iconfont.1792117711657.ttf} +0 -0
  38. /package/lib/{iconfont.1792035024476.woff → iconfont.1792117711657.woff} +0 -0
  39. /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.2";
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({
@@ -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.2",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;
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 offsetLeft = parentWrapperRect.left;
347
- const offsetTop = parentWrapperRect.top;
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 -= offsetTop;
396
- left -= offsetLeft;
399
+ top -= parentWrapperOffsetTop;
400
+ left -= parentWrapperOffsetLeft;
397
401
  } else {
398
402
  if (placement === 'top') {
399
403
  panelPlacement = 'top';
@@ -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,teleportTo:s,marginSize:i,isMinWidth:a}=Object.assign({teleportTo:!1,marginSize:18,isMinWidth:!0},o);let p="bottom",u="",c="",f=0;var m="";let g="";var d,h,T,x,C,A,E,w,P,N,b={};return t&&e&&(A=document.body,w=getPopupWrapperElement(t))&&(d=e.offsetWidth,h=e.offsetHeight,T=t.offsetWidth,x=t.offsetHeight,w=w.getBoundingClientRect(),t=t.getBoundingClientRect(),N=e.getBoundingClientRect(),C=A.clientHeight,A=A.clientWidth,E=w.left,w=w.top,P=N.left,N=N.top,m=e.offsetWidth,s?(f=n||P-(T-d)/2,u=o||N+h,"top"===l?(p="top",u=N-x):l||("top"===r?(p="top",(u=o?u:N-x)<i&&(p="bottom",u=N+h),u+x+i>C&&(p="top",u=N-x)):(u+x+i>C&&(p="top",u=N-x),u<i&&(p="bottom",u=N+h))),f+T+i>A&&(f-=f+T+i-A),f<i&&(f=i),u-=w,f-=E):("top"===l?(p="top",c=h):l||C<N+(u=h)+x+i&&i<N-h-x&&(p="top",u="",c=h),t.left+t.width+i>A&&(f=-(t.left+t.width+i-A))),_xeUtils.default.isNumber(u)&&(b.top=toCssUnit(u)),_xeUtils.default.isNumber(c)&&(b.bottom=toCssUnit(c)),_xeUtils.default.isNumber(f)&&(b.left=toCssUnit(f)),a&&_xeUtils.default.isNumber(m)&&(b.minWidth=toCssUnit(m)),f===P?d<=T&&(g=d/2):f<P&&(g=f+T>P+d?P-f+d/2:P-f+(T-(P-f))/2)),{top:u||0,bottom:c||0,left:f||0,arrowLeft:g||0,style:b,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.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.2"}`;
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}` : '';
@@ -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.2";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);
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.2",
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.2"
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.handlePivotTableAggregatePanelDragendEvent) {
382
- $xeTable.handlePivotTableAggregatePanelDragendEvent(evnt)
381
+ if ($xeTable.handlePivotTableAggPanelDragendEvent) {
382
+ $xeTable.handlePivotTableAggPanelDragendEvent(evnt)
383
383
  }
384
384
  } else if (prevDragCol && dragCol) {
385
385
  // 判断是否有拖动
@@ -75,6 +75,7 @@ hooks.add('tableFilterModule', {
75
75
  if (transfer) {
76
76
  const ppObj = updatePanelPlacement(currEl, filterWrapperElem, {
77
77
  defaultPlacement: 'bottom',
78
+ appendTo: '',
78
79
  isMinWidth: false,
79
80
  teleportTo: transfer
80
81
  })
@@ -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
- return Object.assign({}, getConfig().tooltip, getConfig().table.tooltipConfig, props.tooltipConfig)
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
  ])
@@ -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 offsetLeft = parentWrapperRect.left
328
- const offsetTop = parentWrapperRect.top
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 -= offsetTop
380
- left -= offsetLeft
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
- }