vxe-table 3.12.10-beta.2 → 3.12.10-beta.21

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 (178) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/locale/lang/ar-EG.js +2 -1
  4. package/es/locale/lang/de-DE.js +2 -1
  5. package/es/locale/lang/en-US.js +2 -1
  6. package/es/locale/lang/es-ES.js +2 -1
  7. package/es/locale/lang/fr-FR.js +2 -1
  8. package/es/locale/lang/hu-HU.js +2 -1
  9. package/es/locale/lang/hy-AM.js +2 -1
  10. package/es/locale/lang/it-IT.js +2 -1
  11. package/es/locale/lang/ja-JP.js +2 -1
  12. package/es/locale/lang/ko-KR.js +2 -1
  13. package/es/locale/lang/nb-NO.js +2 -1
  14. package/es/locale/lang/pt-BR.js +2 -1
  15. package/es/locale/lang/ru-RU.js +4 -3
  16. package/es/locale/lang/th-TH.js +2 -1
  17. package/es/locale/lang/ug-CN.js +2 -1
  18. package/es/locale/lang/uk-UA.js +518 -517
  19. package/es/locale/lang/vi-VN.js +2 -1
  20. package/es/locale/lang/zh-CHT.js +2 -1
  21. package/es/locale/lang/zh-CN.js +2 -1
  22. package/es/style.css +1 -1
  23. package/es/style.min.css +1 -1
  24. package/es/table/module/edit/mixin.js +7 -7
  25. package/es/table/module/export/mixin.js +55 -32
  26. package/es/table/module/keyboard/mixin.js +68 -25
  27. package/es/table/module/menu/mixin.js +3 -1
  28. package/es/table/src/body.js +96 -64
  29. package/es/table/src/cell.js +3 -7
  30. package/es/table/src/column.js +2 -0
  31. package/es/table/src/columnInfo.js +1 -0
  32. package/es/table/src/footer.js +31 -6
  33. package/es/table/src/header.js +45 -141
  34. package/es/table/src/methods.js +918 -456
  35. package/es/table/src/props.js +6 -2
  36. package/es/table/src/table.js +299 -149
  37. package/es/table/src/util.js +67 -57
  38. package/es/table/style.css +299 -191
  39. package/es/table/style.min.css +1 -1
  40. package/es/ui/index.js +20 -10
  41. package/es/ui/src/log.js +1 -1
  42. package/es/vxe-table/style.css +299 -191
  43. package/es/vxe-table/style.min.css +1 -1
  44. package/lib/index.css +1 -1
  45. package/lib/index.min.css +1 -1
  46. package/lib/index.umd.js +1735 -1025
  47. package/lib/index.umd.min.js +1 -1
  48. package/lib/locale/lang/ar-EG.js +2 -1
  49. package/lib/locale/lang/ar-EG.min.js +1 -1
  50. package/lib/locale/lang/de-DE.js +2 -1
  51. package/lib/locale/lang/de-DE.min.js +1 -1
  52. package/lib/locale/lang/en-US.js +2 -1
  53. package/lib/locale/lang/en-US.min.js +1 -1
  54. package/lib/locale/lang/en-US.umd.js +2 -1
  55. package/lib/locale/lang/es-ES.js +2 -1
  56. package/lib/locale/lang/es-ES.min.js +1 -1
  57. package/lib/locale/lang/es-ES.umd.js +2 -1
  58. package/lib/locale/lang/fr-FR.js +2 -1
  59. package/lib/locale/lang/fr-FR.min.js +1 -1
  60. package/lib/locale/lang/hu-HU.js +2 -1
  61. package/lib/locale/lang/hu-HU.min.js +1 -1
  62. package/lib/locale/lang/hu-HU.umd.js +2 -1
  63. package/lib/locale/lang/hy-AM.js +2 -1
  64. package/lib/locale/lang/hy-AM.min.js +1 -1
  65. package/lib/locale/lang/it-IT.js +2 -1
  66. package/lib/locale/lang/it-IT.min.js +1 -1
  67. package/lib/locale/lang/ja-JP.js +2 -1
  68. package/lib/locale/lang/ja-JP.min.js +1 -1
  69. package/lib/locale/lang/ja-JP.umd.js +2 -1
  70. package/lib/locale/lang/ko-KR.js +2 -1
  71. package/lib/locale/lang/ko-KR.min.js +1 -1
  72. package/lib/locale/lang/ko-KR.umd.js +2 -1
  73. package/lib/locale/lang/nb-NO.js +2 -1
  74. package/lib/locale/lang/nb-NO.min.js +1 -1
  75. package/lib/locale/lang/pt-BR.js +2 -1
  76. package/lib/locale/lang/pt-BR.min.js +1 -1
  77. package/lib/locale/lang/pt-BR.umd.js +2 -1
  78. package/lib/locale/lang/ru-RU.js +4 -3
  79. package/lib/locale/lang/ru-RU.min.js +1 -1
  80. package/lib/locale/lang/ru-RU.umd.js +4 -3
  81. package/lib/locale/lang/th-TH.js +2 -1
  82. package/lib/locale/lang/th-TH.min.js +1 -1
  83. package/lib/locale/lang/ug-CN.js +2 -1
  84. package/lib/locale/lang/ug-CN.min.js +1 -1
  85. package/lib/locale/lang/uk-UA.js +518 -517
  86. package/lib/locale/lang/uk-UA.min.js +1 -1
  87. package/lib/locale/lang/uk-UA.umd.js +518 -517
  88. package/lib/locale/lang/vi-VN.js +2 -1
  89. package/lib/locale/lang/vi-VN.min.js +1 -1
  90. package/lib/locale/lang/zh-CHT.js +2 -1
  91. package/lib/locale/lang/zh-CHT.min.js +1 -1
  92. package/lib/locale/lang/zh-CHT.umd.js +2 -1
  93. package/lib/locale/lang/zh-CN.js +2 -1
  94. package/lib/locale/lang/zh-CN.min.js +1 -1
  95. package/lib/locale/lang/zh-CN.umd.js +2 -1
  96. package/lib/style.css +1 -1
  97. package/lib/style.min.css +1 -1
  98. package/lib/table/module/edit/mixin.js +12 -2
  99. package/lib/table/module/edit/mixin.min.js +1 -1
  100. package/lib/table/module/export/mixin.js +52 -27
  101. package/lib/table/module/export/mixin.min.js +1 -1
  102. package/lib/table/module/keyboard/mixin.js +73 -27
  103. package/lib/table/module/keyboard/mixin.min.js +1 -1
  104. package/lib/table/module/menu/mixin.js +3 -1
  105. package/lib/table/src/body.js +89 -60
  106. package/lib/table/src/body.min.js +1 -1
  107. package/lib/table/src/cell.js +3 -5
  108. package/lib/table/src/cell.min.js +1 -1
  109. package/lib/table/src/column.js +2 -0
  110. package/lib/table/src/column.min.js +1 -1
  111. package/lib/table/src/columnInfo.js +1 -0
  112. package/lib/table/src/columnInfo.min.js +1 -1
  113. package/lib/table/src/footer.js +26 -6
  114. package/lib/table/src/footer.min.js +1 -1
  115. package/lib/table/src/header.js +38 -153
  116. package/lib/table/src/header.min.js +1 -1
  117. package/lib/table/src/methods.js +1076 -551
  118. package/lib/table/src/methods.min.js +1 -1
  119. package/lib/table/src/props.js +6 -2
  120. package/lib/table/src/props.min.js +1 -1
  121. package/lib/table/src/table.js +269 -129
  122. package/lib/table/src/table.min.js +1 -1
  123. package/lib/table/src/util.js +80 -70
  124. package/lib/table/src/util.min.js +1 -1
  125. package/lib/table/style/style.css +299 -191
  126. package/lib/table/style/style.min.css +1 -1
  127. package/lib/ui/index.js +20 -10
  128. package/lib/ui/index.min.js +1 -1
  129. package/lib/ui/src/log.js +1 -1
  130. package/lib/ui/src/log.min.js +1 -1
  131. package/lib/vxe-table/style/style.css +299 -191
  132. package/lib/vxe-table/style/style.min.css +1 -1
  133. package/package.json +2 -2
  134. package/packages/locale/lang/ar-EG.ts +2 -1
  135. package/packages/locale/lang/de-DE.ts +2 -1
  136. package/packages/locale/lang/en-US.ts +2 -1
  137. package/packages/locale/lang/es-ES.ts +2 -1
  138. package/packages/locale/lang/fr-FR.ts +2 -1
  139. package/packages/locale/lang/hu-HU.ts +2 -1
  140. package/packages/locale/lang/hy-AM.ts +2 -1
  141. package/packages/locale/lang/it-IT.ts +2 -1
  142. package/packages/locale/lang/ja-JP.ts +2 -1
  143. package/packages/locale/lang/ko-KR.ts +2 -1
  144. package/packages/locale/lang/nb-NO.ts +2 -1
  145. package/packages/locale/lang/pt-BR.ts +2 -1
  146. package/packages/locale/lang/ru-RU.ts +4 -3
  147. package/packages/locale/lang/th-TH.ts +2 -1
  148. package/packages/locale/lang/ug-CN.ts +2 -1
  149. package/packages/locale/lang/uk-UA.ts +518 -517
  150. package/packages/locale/lang/vi-VN.ts +2 -1
  151. package/packages/locale/lang/zh-CHT.ts +2 -1
  152. package/packages/locale/lang/zh-CN.ts +2 -1
  153. package/packages/table/module/edit/mixin.ts +7 -7
  154. package/packages/table/module/export/mixin.ts +50 -27
  155. package/packages/table/module/keyboard/mixin.ts +65 -24
  156. package/packages/table/module/menu/mixin.ts +4 -1
  157. package/packages/table/src/body.ts +102 -61
  158. package/packages/table/src/cell.ts +3 -7
  159. package/packages/table/src/column.ts +7 -2
  160. package/packages/table/src/columnInfo.ts +1 -0
  161. package/packages/table/src/footer.ts +31 -6
  162. package/packages/table/src/header.ts +45 -141
  163. package/packages/table/src/methods.ts +957 -461
  164. package/packages/table/src/props.ts +6 -2
  165. package/packages/table/src/table.ts +325 -149
  166. package/packages/table/src/util.ts +75 -62
  167. package/packages/ui/index.ts +21 -9
  168. package/styles/components/table.scss +352 -260
  169. package/styles/theme/base.scss +4 -6
  170. package/styles/theme/dark.scss +1 -0
  171. package/styles/theme/light.scss +1 -0
  172. package/styles/variable.scss +1 -0
  173. /package/es/{iconfont.1736736807414.ttf → iconfont.1737182271148.ttf} +0 -0
  174. /package/es/{iconfont.1736736807414.woff → iconfont.1737182271148.woff} +0 -0
  175. /package/es/{iconfont.1736736807414.woff2 → iconfont.1737182271148.woff2} +0 -0
  176. /package/lib/{iconfont.1736736807414.ttf → iconfont.1737182271148.ttf} +0 -0
  177. /package/lib/{iconfont.1736736807414.woff → iconfont.1737182271148.woff} +0 -0
  178. /package/lib/{iconfont.1736736807414.woff2 → iconfont.1737182271148.woff2} +0 -0
@@ -68,6 +68,10 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
68
68
  } = tableInternalData;
69
69
  const tooltipOpts = $xeTable.computeTooltipOpts;
70
70
  const columnOpts = $xeTable.computeColumnOpts;
71
+ const defaultRowHeight = $xeTable.computeDefaultRowHeight;
72
+ const cellOpts = $xeTable.computeCellOpts;
73
+ const footerCellOpts = $xeTable.computeFooterCellOpts;
74
+ const currCellHeight = footerCellOpts.height || cellOpts.height || defaultRowHeight;
71
75
  return tableColumn.map((column, $columnIndex) => {
72
76
  const {
73
77
  type,
@@ -78,11 +82,13 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
78
82
  editRender,
79
83
  cellRender
80
84
  } = column;
85
+ const colid = column.id;
81
86
  const renderOpts = editRender || cellRender;
82
87
  const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
83
88
  const showAllTip = tooltipOpts.showAll;
84
89
  const isColGroup = column.children && column.children.length;
85
90
  const fixedHiddenColumn = fixedType ? column.fixed !== fixedType && !isColGroup : column.fixed && overflowX;
91
+ const isPadding = _xeUtils.default.isBoolean(footerCellOpts.padding) ? footerCellOpts.padding : cellOpts.padding;
86
92
  const footOverflow = _xeUtils.default.eqNull(showFooterOverflow) ? allColumnFooterOverflow : showFooterOverflow;
87
93
  const footAlign = footerAlign || (compConf ? compConf.tableFooterCellAlign : '') || allFooterAlign || align || (compConf ? compConf.tableCellAlign : '') || allAlign;
88
94
  let showEllipsis = footOverflow === 'ellipsis';
@@ -177,18 +183,26 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
177
183
  attrs.colspan = colspan;
178
184
  }
179
185
  }
186
+ const isLastColumn = $columnIndex === tableColumn.length - 1;
180
187
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
181
- let isPreLoadStatus = false;
182
- if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex || _columnIndex > scrollXStore.visibleEndIndex)) {
183
- isPreLoadStatus = true;
188
+ let isVNPreEmptyStatus = false;
189
+ if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
190
+ isVNPreEmptyStatus = true;
191
+ }
192
+ const tcStyle = {};
193
+ if (hasEllipsis) {
194
+ tcStyle.height = `${currCellHeight}px`;
195
+ } else {
196
+ tcStyle.minHeight = `${currCellHeight}px`;
184
197
  }
185
198
  return h('td', {
186
199
  class: ['vxe-footer--column', column.id, {
187
200
  [`col--${footAlign}`]: footAlign,
188
201
  [`col--${type}`]: type,
189
- 'col--last': $columnIndex === tableColumn.length - 1,
202
+ 'col--last': isLastColumn,
190
203
  'fixed--width': !isAutoCellWidth,
191
204
  'fixed--hidden': fixedHiddenColumn,
205
+ 'is--padding': isPadding,
192
206
  'col--ellipsis': hasEllipsis,
193
207
  'col--current': currentColumn === column
194
208
  }, (0, _utils.getClass)(footerClassName, cellParams), (0, _utils.getClass)(footerCellClassName, cellParams)],
@@ -201,8 +215,14 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
201
215
  'c--title': showTitle,
202
216
  'c--tooltip': showTooltip,
203
217
  'c--ellipsis': showEllipsis
204
- }]
205
- }, isPreLoadStatus ? [] : column.renderFooter(h, cellParams))]);
218
+ }],
219
+ style: tcStyle
220
+ }, isVNPreEmptyStatus ? [] : [h('div', {
221
+ attrs: {
222
+ colid
223
+ },
224
+ class: 'vxe-cell--wrapper'
225
+ }, column.renderFooter(h, cellParams))])]);
206
226
  });
207
227
  }
208
228
  function renderHeads(h, _vm, renderColumnList) {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderType="footer",{renderer,renderEmptyElement}=_ui.VxeUI;function mergeFooterMethod(r,t,o){for(let e=0;e<r.length;e++){var{row:l,col:n,rowspan:a,colspan:i}=r[e];if(-1<n&&-1<l&&a&&i){if(l===t&&n===o)return{rowspan:a,colspan:i};if(l<=t&&t<l+a&&n<=o&&o<n+i)return{rowspan:0,colspan:0}}}}function renderRows(w,e,y,h,b,F,_){let C=e.$parent;var r=C,t=C,o=C;let T=e.fixedType,{footerCellClassName:$,footerCellStyle:I,footerAlign:S,footerSpanMethod:E,align:O,columnKey:R,showFooterOverflow:k}=r,{scrollXLoad:A,scrollYLoad:D,overflowX:M,currentColumn:U,mergeFooterList:q}=t,L=o.scrollXStore,X=C.computeTooltipOpts,N=C.computeColumnOpts;return y.map((r,e)=>{var{type:t,showFooterOverflow:o,footerAlign:l,align:n,footerClassName:a,editRender:i,cellRender:s}=r,i=i||s,s=i?renderer.get(i.name):null;let d=X.showAll;i=r.children&&r.children.length,i=T?r.fixed!==T&&!i:r.fixed&&M,o=_xeUtils.default.eqNull(o)?k:o,l=l||(s?s.tableFooterCellAlign:"")||S||n||(s?s.tableCellAlign:"")||O;let u="ellipsis"===o,c="title"===o,f=!0===o||"tooltip"===o,p=c||f||u;var n={colid:r.id},s={},o=C.getColumnIndex(r),x=C.getVTColumnIndex(r),m=x;let g={$table:C,$grid:C.xegrid,row:b,rowIndex:_,_rowIndex:_,$rowIndex:F,column:r,columnIndex:o,$columnIndex:e,_columnIndex:x,itemIndex:m,items:b,fixed:T,type:renderType,data:h};if(A&&!p&&(u=p=!0),(c||f||d)&&(s.mouseenter=e=>{c?(0,_dom.updateCellTitle)(e.currentTarget,r):(f||d)&&C.triggerFooterTooltipEvent(e,g)}),(f||d)&&(s.mouseleave=e=>{(f||d)&&C.handleTargetLeaveEvent(e)}),s.click=e=>{C.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},g),e)},s.dblclick=e=>{C.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},g),e)},q.length){o=mergeFooterMethod(q,_,x);if(o){var{rowspan:m,colspan:o}=o;if(!m||!o)return null;1<m&&(n.rowspan=m),1<o&&(n.colspan=o)}}else if(E){var{rowspan:m=1,colspan:o=1}=E(g)||{};if(!m||!o)return null;1<m&&(n.rowspan=m),1<o&&(n.colspan=o)}m=!r.resizeWidth&&("auto"===r.minWidth||"auto"===r.width);let v=!1;return A&&!r.fixed&&(x<L.visibleStartIndex||x>L.visibleEndIndex)&&(v=!0),w("td",{class:["vxe-footer--column",r.id,{["col--"+l]:l,["col--"+t]:t,"col--last":e===y.length-1,"fixed--width":!m,"fixed--hidden":i,"col--ellipsis":p,"col--current":U===r},(0,_utils.getClass)(a,g),(0,_utils.getClass)($,g)],attrs:n,style:I?_xeUtils.default.isFunction(I)?I(g):I:void 0,on:s,key:R||A||D||N.useKey||N.drag?r.id:e},[w("div",{class:["vxe-cell",{"c--title":c,"c--tooltip":f,"c--ellipsis":u}]},v?[]:r.renderFooter(w,g))])})}function renderHeads(l,n,a){let i=n.$parent;var e=i,r=i;let{fixedType:s,footerTableData:d}=n,{footerRowClassName:u,footerRowStyle:c}=e,f=r.isDragColMove,p=i.computeColumnOpts,x=i.computeColumnDragOpts;return d.map((e,r)=>{var t=r,o={$table:i,row:e,_rowIndex:t,$rowIndex:r,fixed:s,type:renderType};return p.drag&&x.animation?l("transition-group",{key:r,props:{tag:"tr",name:"vxe-header--col-list"+(f?"":"-disabled"),class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(o):u:""],style:c?_xeUtils.default.isFunction(c)?c(o):c:void 0}},renderRows(l,n,a,d,e,r,t)):l("tr",{key:r,class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(o):u:""],style:c?_xeUtils.default.isFunction(c)?c(o):c:void 0},renderRows(l,n,a,d,e,r,t))})}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},mounted(){var e=this,r=e.fixedType,t=e.$parent.elemStore,r=`${r||"main"}-footer-`;t[r+"wrapper"]=e.$refs.refElem,t[r+"scroll"]=e.$refs.refFooterScroll,t[r+"table"]=e.$refs.refFooterTable,t[r+"colgroup"]=e.$refs.refFooterColgroup,t[r+"list"]=e.$refs.refFooterTFoot,t[r+"xSpace"]=e.$refs.refFooterXSpace},destroyed(){var e=this.fixedType,r=this.$parent.elemStore,e=`${e||"main"}-footer-`;r[e+"wrapper"]=null,r[e+"scroll"]=null,r[e+"table"]=null,r[e+"colgroup"]=null,r[e+"list"]=null,r[e+"xSpace"]=null},render(t){let r=this.$parent;var e=r,o=r,l=r,n=r.xID;let{fixedType:a,fixedColumn:i,tableColumn:s}=this;var{spanMethod:e,footerSpanMethod:d,showFooterOverflow:u}=e,{visibleColumn:l,fullColumnIdData:c}=l,{isGroup:o,scrollXLoad:f,scrollYLoad:p,dragCol:x}=o;let m=s,g=!(f||p||u)||e||d?!1:!0;return a&&(m=l,g)&&(m=i||[]),a||o||f&&x&&2<m.length&&(p=c[x.id])&&(u=p._index,e=m[0],d=m[m.length-1],l=c[e.id],o=c[d.id],l)&&o&&(f=l._index,p=o._index,u<f?m=[x].concat(m):p<u&&(m=m.concat([x]))),t("div",{ref:"refElem",class:["vxe-table--footer-wrapper",a?`fixed-${a}--wrapper`:"body--wrapper"],attrs:{xid:n}},[t("div",{ref:"refFooterScroll",class:"vxe-table--footer-inner-wrapper",on:{scroll(e){r.triggerFooterScrollEvent(e,a)}}},[a?renderEmptyElement(r):t("div",{ref:"refFooterXSpace",class:"vxe-body--x-space"}),t("table",{ref:"refFooterTable",class:"vxe-table--footer",attrs:{xid:n,cellspacing:0,cellpadding:0,border:0}},[t("colgroup",{ref:"refFooterColgroup"},m.map((e,r)=>t("col",{attrs:{name:e.id},key:r}))),t("tfoot",{ref:"refFooterTFoot"},renderHeads(t,this,m))])])])}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderType="footer",{renderer,renderEmptyElement}=_ui.VxeUI;function mergeFooterMethod(r,t,l){for(let e=0;e<r.length;e++){var{row:o,col:i,rowspan:a,colspan:n}=r[e];if(-1<i&&-1<o&&a&&n){if(o===t&&i===l)return{rowspan:a,colspan:n};if(o<=t&&t<o+a&&i<=l&&l<i+n)return{rowspan:0,colspan:0}}}}function renderRows(y,e,b,F,C,_,T){let $=e.$parent;var r=$,t=$,l=$;let S=e.fixedType,{footerCellClassName:I,footerCellStyle:E,footerAlign:O,footerSpanMethod:R,align:D,columnKey:U,showFooterOverflow:k}=r,{scrollXLoad:A,scrollYLoad:M,overflowX:q,currentColumn:L,mergeFooterList:X}=t,H=l.scrollXStore,N=$.computeTooltipOpts,j=$.computeColumnOpts;e=$.computeDefaultRowHeight;let z=$.computeCellOpts,V=$.computeFooterCellOpts,K=V.height||z.height||e;return b.map((r,e)=>{var{type:t,showFooterOverflow:l,footerAlign:o,align:i,footerClassName:a,editRender:n,cellRender:s}=r,d=r.id,n=n||s,s=n?renderer.get(n.name):null;let u=N.showAll;var n=r.children&&r.children.length,n=S?r.fixed!==S&&!n:r.fixed&&q,p=(_xeUtils.default.isBoolean(V.padding)?V:z).padding,l=_xeUtils.default.eqNull(l)?k:l,o=o||(s?s.tableFooterCellAlign:"")||O||i||(s?s.tableCellAlign:"")||D;let c="ellipsis"===l,f="title"===l,x=!0===l||"tooltip"===l,m=f||x||c;var i={colid:r.id},s={},l=$.getColumnIndex(r),g=$.getVTColumnIndex(r),v=g;let h={$table:$,$grid:$.xegrid,row:C,rowIndex:T,_rowIndex:T,$rowIndex:_,column:r,columnIndex:l,$columnIndex:e,_columnIndex:g,itemIndex:v,items:C,fixed:S,type:renderType,data:F};if(A&&!m&&(c=m=!0),(f||x||u)&&(s.mouseenter=e=>{f?(0,_dom.updateCellTitle)(e.currentTarget,r):(x||u)&&$.triggerFooterTooltipEvent(e,h)}),(x||u)&&(s.mouseleave=e=>{(x||u)&&$.handleTargetLeaveEvent(e)}),s.click=e=>{$.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},h),e)},s.dblclick=e=>{$.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},h),e)},X.length){l=mergeFooterMethod(X,T,g);if(l){var{rowspan:v,colspan:l}=l;if(!v||!l)return null;1<v&&(i.rowspan=v),1<l&&(i.colspan=l)}}else if(R){var{rowspan:v=1,colspan:l=1}=R(h)||{};if(!v||!l)return null;1<v&&(i.rowspan=v),1<l&&(i.colspan=l)}v=e===b.length-1,l=!r.resizeWidth&&("auto"===r.minWidth||"auto"===r.width);let w=!1;A&&!r.fixed&&(g<H.visibleStartIndex-H.preloadSize||g>H.visibleEndIndex+H.preloadSize)&&(w=!0);g={};return m?g.height=K+"px":g.minHeight=K+"px",y("td",{class:["vxe-footer--column",r.id,{["col--"+o]:o,["col--"+t]:t,"col--last":v,"fixed--width":!l,"fixed--hidden":n,"is--padding":p,"col--ellipsis":m,"col--current":L===r},(0,_utils.getClass)(a,h),(0,_utils.getClass)(I,h)],attrs:i,style:E?_xeUtils.default.isFunction(E)?E(h):E:void 0,on:s,key:U||A||M||j.useKey||j.drag?r.id:e},[y("div",{class:["vxe-cell",{"c--title":f,"c--tooltip":x,"c--ellipsis":c}],style:g},w?[]:[y("div",{attrs:{colid:d},class:"vxe-cell--wrapper"},r.renderFooter(y,h))])])})}function renderHeads(o,i,a){let n=i.$parent;var e=n,r=n;let{fixedType:s,footerTableData:d}=i,{footerRowClassName:u,footerRowStyle:p}=e,c=r.isDragColMove,f=n.computeColumnOpts,x=n.computeColumnDragOpts;return d.map((e,r)=>{var t=r,l={$table:n,row:e,_rowIndex:t,$rowIndex:r,fixed:s,type:renderType};return f.drag&&x.animation?o("transition-group",{key:r,props:{tag:"tr",name:"vxe-header--col-list"+(c?"":"-disabled"),class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(l):u:""],style:p?_xeUtils.default.isFunction(p)?p(l):p:void 0}},renderRows(o,i,a,d,e,r,t)):o("tr",{key:r,class:["vxe-footer--row",u?_xeUtils.default.isFunction(u)?u(l):u:""],style:p?_xeUtils.default.isFunction(p)?p(l):p:void 0},renderRows(o,i,a,d,e,r,t))})}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},mounted(){var e=this,r=e.fixedType,t=e.$parent.elemStore,r=`${r||"main"}-footer-`;t[r+"wrapper"]=e.$refs.refElem,t[r+"scroll"]=e.$refs.refFooterScroll,t[r+"table"]=e.$refs.refFooterTable,t[r+"colgroup"]=e.$refs.refFooterColgroup,t[r+"list"]=e.$refs.refFooterTFoot,t[r+"xSpace"]=e.$refs.refFooterXSpace},destroyed(){var e=this.fixedType,r=this.$parent.elemStore,e=`${e||"main"}-footer-`;r[e+"wrapper"]=null,r[e+"scroll"]=null,r[e+"table"]=null,r[e+"colgroup"]=null,r[e+"list"]=null,r[e+"xSpace"]=null},render(t){let r=this.$parent;var e=r,l=r,o=r,i=r.xID;let{fixedType:a,fixedColumn:n,tableColumn:s}=this;var{spanMethod:e,footerSpanMethod:d,showFooterOverflow:u}=e,{visibleColumn:o,fullColumnIdData:p}=o,{isGroup:l,scrollXLoad:c,scrollYLoad:f,dragCol:x}=l;let m=s,g=!(c||f||u)||e||d?!1:!0;return a&&(m=o,g)&&(m=n||[]),a||l||c&&x&&2<m.length&&(f=p[x.id])&&(u=f._index,e=m[0],d=m[m.length-1],o=p[e.id],l=p[d.id],o)&&l&&(c=o._index,f=l._index,u<c?m=[x].concat(m):f<u&&(m=m.concat([x]))),t("div",{ref:"refElem",class:["vxe-table--footer-wrapper",a?`fixed-${a}--wrapper`:"body--wrapper"],attrs:{xid:i}},[t("div",{ref:"refFooterScroll",class:"vxe-table--footer-inner-wrapper",on:{scroll(e){r.triggerFooterScrollEvent(e,a)}}},[a?renderEmptyElement(r):t("div",{ref:"refFooterXSpace",class:"vxe-body--x-space"}),t("table",{ref:"refFooterTable",class:"vxe-table--footer",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0}},[t("colgroup",{ref:"refFooterColgroup"},m.map((e,r)=>t("col",{attrs:{name:e.id},key:r}))),t("tfoot",{ref:"refFooterTFoot"},renderHeads(t,this,m))])])])}};
@@ -7,11 +7,9 @@ exports.default = void 0;
7
7
  var _xeUtils = _interopRequireDefault(require("xe-utils"));
8
8
  var _ui = require("../../ui");
9
9
  var _utils = require("../../ui/src/utils");
10
- var _dom = require("../../ui/src/dom");
11
10
  var _util = require("./util");
12
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
12
  const {
14
- getI18n,
15
13
  renderer,
16
14
  renderEmptyElement
17
15
  } = _ui.VxeUI;
@@ -48,6 +46,10 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
48
46
  } = tableInternalData;
49
47
  const columnOpts = $xeTable.computeColumnOpts;
50
48
  const columnDragOpts = $xeTable.computeColumnDragOpts;
49
+ const cellOpts = $xeTable.computeCellOpts;
50
+ const defaultRowHeight = $xeTable.computeDefaultRowHeight;
51
+ const headerCellOpts = $xeTable.computeHeaderCellOpts;
52
+ const currCellHeight = headerCellOpts.height || cellOpts.height || defaultRowHeight;
51
53
  const {
52
54
  disabledMethod: dragDisabledMethod,
53
55
  isCrossDrag,
@@ -70,6 +72,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
70
72
  const compConf = renderOpts ? renderer.get(renderOpts.name) : null;
71
73
  const isColGroup = column.children && column.children.length;
72
74
  const fixedHiddenColumn = fixedType ? column.fixed !== fixedType && !isColGroup : column.fixed && overflowX;
75
+ const isPadding = _xeUtils.default.isBoolean(headerCellOpts.padding) ? headerCellOpts.padding : cellOpts.padding;
73
76
  const headOverflow = _xeUtils.default.isUndefined(showHeaderOverflow) || _xeUtils.default.isNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
74
77
  const headAlign = headerAlign || (compConf ? compConf.tableHeaderCellAlign : '') || allHeaderAlign || align || (compConf ? compConf.tableCellAlign : '') || allAlign;
75
78
  let showEllipsis = headOverflow === 'ellipsis';
@@ -84,7 +87,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
84
87
  }
85
88
  const columnIndex = $xeTable.getColumnIndex(column);
86
89
  const _columnIndex = $xeTable.getVTColumnIndex(column);
87
- const params = {
90
+ const cellParams = {
88
91
  $table: $xeTable,
89
92
  $grid: $xeGrid,
90
93
  $rowIndex,
@@ -104,8 +107,8 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
104
107
  rowspan: column.rowSpan > 1 ? column.rowSpan : null
105
108
  };
106
109
  const thOns = {
107
- click: evnt => $xeTable.triggerHeaderCellClickEvent(evnt, params),
108
- dblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt, params)
110
+ click: evnt => $xeTable.triggerHeaderCellClickEvent(evnt, cellParams),
111
+ dblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt, cellParams)
109
112
  };
110
113
  // 虚拟滚动不支持动态高度
111
114
  if (scrollXLoad && !hasEllipsis) {
@@ -114,11 +117,11 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
114
117
  const isColDragCell = columnOpts.drag && columnDragOpts.trigger === 'cell';
115
118
  let isDisabledDrag = false;
116
119
  if (isColDragCell) {
117
- isDisabledDrag = !!(dragDisabledMethod && dragDisabledMethod(params));
120
+ isDisabledDrag = !!(dragDisabledMethod && dragDisabledMethod(cellParams));
118
121
  }
119
122
  // 按下事件处理
120
123
  if (mouseConfig || isColDragCell) {
121
- thOns.mousedown = evnt => $xeTable.triggerHeaderCellMousedownEvent(evnt, params);
124
+ thOns.mousedown = evnt => $xeTable.triggerHeaderCellMousedownEvent(evnt, cellParams);
122
125
  }
123
126
  // 拖拽列事件
124
127
  if (columnOpts.drag) {
@@ -129,30 +132,39 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
129
132
  thOns.mouseup = $xeTable.handleHeaderCellDragMouseupEvent;
130
133
  }
131
134
  }
135
+ const isLastColumn = $columnIndex === cols.length - 1;
136
+ const showResizable = _xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable;
132
137
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
133
- let isPreLoadStatus = false;
134
- if (scrollXLoad && !isGroup && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex || _columnIndex > scrollXStore.visibleEndIndex)) {
135
- isPreLoadStatus = true;
138
+ let isVNPreEmptyStatus = false;
139
+ if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
140
+ isVNPreEmptyStatus = true;
141
+ }
142
+ const tcStyle = {};
143
+ if (hasEllipsis) {
144
+ tcStyle.height = `${currCellHeight}px`;
145
+ } else {
146
+ tcStyle.minHeight = `${currCellHeight}px`;
136
147
  }
137
148
  return h('th', {
138
149
  class: ['vxe-header--column', colid, {
139
150
  [`col--${headAlign}`]: headAlign,
140
151
  [`col--${type}`]: type,
141
- 'col--last': $columnIndex === cols.length - 1,
152
+ 'col--last': isLastColumn,
142
153
  'col--fixed': column.fixed,
143
154
  'col--group': isColGroup,
144
155
  'col--ellipsis': hasEllipsis,
145
156
  'fixed--width': !isAutoCellWidth,
146
157
  'fixed--hidden': fixedHiddenColumn,
158
+ 'is--padding': isPadding,
147
159
  'is--sortable': column.sortable,
148
160
  'col--filter': !!filters,
149
161
  'is--filter-active': hasFilter,
150
162
  'is--drag-active': !column.fixed && !isDisabledDrag && (isCrossDrag || isPeerDrag || !column.parentId),
151
163
  'is--drag-disabled': isDisabledDrag,
152
164
  'col--current': currentColumn === column
153
- }, (0, _utils.getClass)(headerClassName, params), (0, _utils.getClass)(headerCellClassName, params)],
165
+ }, (0, _utils.getClass)(headerClassName, cellParams), (0, _utils.getClass)(headerCellClassName, cellParams)],
154
166
  attrs: thAttrs,
155
- style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(params) : headerCellStyle : undefined,
167
+ style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(cellParams) : headerCellStyle : undefined,
156
168
  on: thOns,
157
169
  key: columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
158
170
  }, [h('div', {
@@ -160,20 +172,26 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
160
172
  'c--title': showTitle,
161
173
  'c--tooltip': showTooltip,
162
174
  'c--ellipsis': showEllipsis
163
- }]
164
- }, isPreLoadStatus || isOptimizeMode && fixedHiddenColumn ? [] : column.renderHeader(h, params)),
175
+ }],
176
+ style: tcStyle
177
+ }, isVNPreEmptyStatus || isOptimizeMode && fixedHiddenColumn ? [] : [h('div', {
178
+ attrs: {
179
+ colid
180
+ },
181
+ class: 'vxe-cell--wrapper'
182
+ }, column.renderHeader(h, cellParams))]),
165
183
  /**
166
184
  * 列宽拖动
167
185
  */
168
- !fixedHiddenColumn && !isColGroup && (_xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable) ? h('div', {
169
- class: ['vxe-resizable', {
186
+ !fixedHiddenColumn && showResizable ? h('div', {
187
+ class: ['vxe-cell--col-resizable', {
170
188
  'is--line': !border || border === 'none'
171
189
  }],
172
190
  on: {
173
- mousedown: evnt => _vm.resizeMousedownEvent(evnt, params),
174
- dblclick: evnt => $xeTable.handleResizeDblclickEvent(evnt, params)
191
+ mousedown: evnt => $xeTable.handleColResizeMousedownEvent(evnt, fixedType, cellParams),
192
+ dblclick: evnt => $xeTable.handleColResizeDblclickEvent(evnt, cellParams)
175
193
  }
176
- }) : null]);
194
+ }) : renderEmptyElement($xeTable)]);
177
195
  });
178
196
  };
179
197
  function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
@@ -423,139 +441,6 @@ var _default = exports.default = {
423
441
  $parent: $xetable
424
442
  } = this;
425
443
  this.headerColumn = $xetable.isGroup ? (0, _util.convertHeaderColumnToRows)(this.tableGroupColumn) : [];
426
- },
427
- resizeMousedownEvent(evnt, params) {
428
- const $xeTable = this.$parent;
429
- const tableInternalData = $xeTable;
430
- const {
431
- column
432
- } = params;
433
- const {
434
- $parent: $xetable,
435
- fixedType
436
- } = this;
437
- const {
438
- visibleColumn
439
- } = tableInternalData;
440
- const {
441
- refTableBody,
442
- refLeftContainer,
443
- refRightContainer
444
- } = $xetable.$refs;
445
- const tableEl = $xeTable.$el;
446
- const resizeBarElem = $xetable.$refs.refCellResizeBar;
447
- const resizeTipElem = $xetable.$refs.refCellResizeTip;
448
- const wrapperElem = this.$el;
449
- const {
450
- clientX: dragClientX
451
- } = evnt;
452
- const dragBtnElem = evnt.target;
453
- const cell = dragBtnElem.parentNode;
454
- const cellParams = Object.assign(params, {
455
- cell
456
- });
457
- const resizableOpts = $xeTable.computeResizableOpts;
458
- let dragLeft = 0;
459
- const tableBodyElem = refTableBody.$el;
460
- const pos = (0, _dom.getOffsetPos)(dragBtnElem, tableEl);
461
- const dragBtnWidth = dragBtnElem.clientWidth;
462
- const dragBtnOffsetWidth = Math.floor(dragBtnWidth / 2);
463
- const minInterval = (0, _util.getColReMinWidth)(cellParams) - dragBtnOffsetWidth; // 列之间的最小间距
464
- let dragMinLeft = pos.left - cell.clientWidth + dragBtnWidth + minInterval;
465
- let dragPosLeft = pos.left + dragBtnOffsetWidth;
466
- const domMousemove = document.onmousemove;
467
- const domMouseup = document.onmouseup;
468
- const isLeftFixed = fixedType === 'left';
469
- const isRightFixed = fixedType === 'right';
470
- // 计算左右侧固定列偏移量
471
- let fixedOffsetWidth = 0;
472
- if (isLeftFixed || isRightFixed) {
473
- const siblingProp = isLeftFixed ? 'nextElementSibling' : 'previousElementSibling';
474
- let tempCellElem = cell[siblingProp];
475
- while (tempCellElem) {
476
- if ((0, _dom.hasClass)(tempCellElem, 'fixed--hidden')) {
477
- break;
478
- } else if (!(0, _dom.hasClass)(tempCellElem, 'col--group')) {
479
- fixedOffsetWidth += tempCellElem.offsetWidth;
480
- }
481
- tempCellElem = tempCellElem[siblingProp];
482
- }
483
- if (isRightFixed && refRightContainer) {
484
- dragPosLeft = refRightContainer.offsetLeft + fixedOffsetWidth;
485
- }
486
- }
487
- // 处理拖动事件
488
- const updateEvent = function (evnt) {
489
- evnt.stopPropagation();
490
- evnt.preventDefault();
491
- const offsetX = evnt.clientX - dragClientX;
492
- let left = dragPosLeft + offsetX;
493
- const scrollLeft = fixedType ? 0 : tableBodyElem.scrollLeft;
494
- if (isLeftFixed) {
495
- // 左固定列(不允许超过右侧固定列、不允许超过右边距)
496
- left = Math.min(left, (refRightContainer ? refRightContainer.offsetLeft : tableBodyElem.clientWidth) - fixedOffsetWidth - minInterval);
497
- } else if (isRightFixed) {
498
- // 右侧固定列(不允许超过左侧固定列、不允许超过左边距)
499
- dragMinLeft = (refLeftContainer ? refLeftContainer.clientWidth : 0) + fixedOffsetWidth + minInterval;
500
- left = Math.min(left, dragPosLeft + cell.clientWidth - minInterval);
501
- } else {
502
- dragMinLeft = Math.max(tableBodyElem.scrollLeft, dragMinLeft);
503
- // left = Math.min(left, tableBodyElem.clientWidth + tableBodyElem.scrollLeft - 40)
504
- }
505
- dragLeft = Math.max(left, dragMinLeft);
506
- const resizeBarLeft = dragLeft - scrollLeft;
507
- resizeBarElem.style.left = `${resizeBarLeft}px`;
508
- if (resizableOpts.showDragTip && resizeTipElem) {
509
- const tableWidth = tableEl.clientWidth;
510
- const wrapperRect = wrapperElem.getBoundingClientRect();
511
- const resizeBarWidth = resizeBarElem.clientWidth;
512
- const resizeTipWidth = resizeTipElem.clientWidth;
513
- const resizeTipHeight = resizeTipElem.clientHeight;
514
- let resizeTipLeft = -resizeTipWidth;
515
- if (resizeBarLeft < resizeTipWidth + resizeBarWidth) {
516
- resizeTipLeft = resizeTipWidth + resizeBarWidth - resizeBarLeft;
517
- } else if (resizeBarLeft > tableWidth) {
518
- resizeTipLeft += tableWidth - resizeBarLeft;
519
- }
520
- resizeTipElem.style.left = `${resizeTipLeft}px`;
521
- resizeTipElem.style.top = `${Math.min(tableEl.clientHeight - resizeTipHeight, Math.max(0, evnt.clientY - wrapperRect.y - resizeTipHeight / 2))}px`;
522
- resizeTipElem.textContent = getI18n('vxe.table.resizeColTip', [column.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft)]);
523
- }
524
- };
525
- $xetable._isResize = true;
526
- (0, _dom.addClass)($xetable.$el, 'drag--resize');
527
- resizeBarElem.style.display = 'block';
528
- document.onmousemove = updateEvent;
529
- document.onmouseup = function (evnt) {
530
- document.onmousemove = domMousemove;
531
- document.onmouseup = domMouseup;
532
- const resizeWidth = column.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft);
533
- column.resizeWidth = resizeWidth;
534
- if (resizableOpts.dragMode === 'fixed') {
535
- visibleColumn.forEach(item => {
536
- if (item.id !== column.id) {
537
- if (!item.resizeWidth) {
538
- item.resizeWidth = item.renderWidth;
539
- }
540
- }
541
- });
542
- }
543
- resizeBarElem.style.display = 'none';
544
- $xetable._isResize = false;
545
- $xetable._lastResizeTime = Date.now();
546
- $xetable.analyColumnWidth();
547
- $xetable.recalculate(true).then(() => {
548
- $xetable.saveCustomStore('update:visible');
549
- $xetable.updateCellAreas();
550
- $xetable.emitEvent('resizable-change', Object.assign(Object.assign({}, params), {
551
- resizeWidth
552
- }), evnt);
553
- setTimeout(() => $xetable.recalculate(true), 300);
554
- });
555
- (0, _dom.removeClass)($xetable.$el, 'drag--resize');
556
- };
557
- updateEvent(evnt);
558
- $xetable.closeMenu();
559
444
  }
560
445
  }
561
446
  };
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=(_,w,H,$,z,T)=>{let D=w.$parent,E=D.xegrid;var e=D,l=D,r=D;let R=w.fixedType,{resizable:S,border:M,columnKey:W,headerCellClassName:I,headerCellStyle:O,showHeaderOverflow:k,headerAlign:U,align:A,mouseConfig:L}=e,{currentColumn:X,scrollXLoad:q,scrollYLoad:F,overflowX:B}=l,N=r.scrollXStore,j=D.computeColumnOpts,G=D.computeColumnDragOpts,{disabledMethod:P,isCrossDrag:V,isPeerDrag:Y}=G;return z.map((e,l)=>{var{type:r,showHeaderOverflow:t,headerAlign:a,align:i,filters:d,headerClassName:n,editRender:o,cellRender:s}=e,u=e.id,o=o||s,s=o?renderer.get(o.name):null,o=e.children&&e.children.length,c=R?e.fixed!==R&&!o:e.fixed&&B,t=_xeUtils.default.isUndefined(t)||_xeUtils.default.isNull(t)?k:t,a=a||(s?s.tableHeaderCellAlign:"")||U||i||(s?s.tableCellAlign:"")||A;let p="ellipsis"===t;i="title"===t,s=!0===t||"tooltip"===t;let f=i||s||p,m=!1,h=null;d&&(h=d[0],m=d.some(e=>e.checked));var t=D.getColumnIndex(e),g=D.getVTColumnIndex(e);let v={$table:D,$grid:E,$rowIndex:T,column:e,columnIndex:t,$columnIndex:l,_columnIndex:g,firstFilterOption:h,fixed:R,type:cellType,isHidden:c,hasFilter:m};var t={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},x={click:e=>D.triggerHeaderCellClickEvent(e,v),dblclick:e=>D.triggerHeaderCellDblclickEvent(e,v)},C=(q&&!f&&(p=f=!0),j.drag&&"cell"===G.trigger);let b=!1;C&&(b=!(!P||!P(v))),(L||C)&&(x.mousedown=e=>D.triggerHeaderCellMousedownEvent(e,v)),j.drag&&(x.dragstart=D.handleHeaderCellDragDragstartEvent,x.dragend=D.handleHeaderCellDragDragendEvent,x.dragover=D.handleHeaderCellDragDragoverEvent,C)&&(x.mouseup=D.handleHeaderCellDragMouseupEvent);C=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let y=!1;return q&&!H&&!e.fixed&&(g<N.visibleStartIndex||g>N.visibleEndIndex)&&(y=!0),_("th",{class:["vxe-header--column",u,{["col--"+a]:a,["col--"+r]:r,"col--last":l===z.length-1,"col--fixed":e.fixed,"col--group":o,"col--ellipsis":f,"fixed--width":!C,"fixed--hidden":c,"is--sortable":e.sortable,"col--filter":!!d,"is--filter-active":m,"is--drag-active":!e.fixed&&!b&&(V||Y||!e.parentId),"is--drag-disabled":b,"col--current":X===e},(0,_utils.getClass)(n,v),(0,_utils.getClass)(I,v)],attrs:t,style:O?_xeUtils.default.isFunction(O)?O(v):O:void 0,on:x,key:W||q||F||j.useKey||j.drag||o?u:l},[_("div",{class:["vxe-cell",{"c--title":i,"c--tooltip":s,"c--ellipsis":p}]},y||$&&c?[]:e.renderHeader(_,v)),c||o||!(_xeUtils.default.isBoolean(e.resizable)?e.resizable:j.resizable||S)?null:_("div",{class:["vxe-resizable",{"is--line":!M||"none"===M}],on:{mousedown:e=>w.resizeMousedownEvent(e,v),dblclick:e=>D.handleResizeDblclickEvent(e,v)}})])})};function renderHeads(t,a,i,d,e){let n=a.$parent;var l=n,r=n;let o=a.fixedType,s=n.computeColumnOpts,u=n.computeColumnDragOpts,{headerRowClassName:c,headerRowStyle:p}=l,f=r.isDragColMove;return e.map((e,l)=>{var r={$table:n,$rowIndex:l,fixed:o,type:cellType};return s.drag&&u.animation?t("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(f?"":"-disabled"),class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:null}},renderRows(t,a,i,d,e,l)):t("tr",{key:l,class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:void 0},renderRows(t,a,i,d,e,l))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,t=l,a=l,i=l.xID;let{fixedType:d,fixedColumn:n,tableColumn:o}=this;var s=this.headerColumn,{showHeaderOverflow:e,spanMethod:u,footerSpanMethod:c}=e,{isGroup:t,scrollXLoad:p,scrollYLoad:f,dragCol:m}=t,{visibleColumn:a,fullColumnIdData:h}=a;let g=s,v=o,x=!1;return t?v=a:(!(p||f||e)||u||c||(x=!0),d&&(v=a,x)&&(v=n||[]),g=[v]),d||t||p&&m&&2<v.length&&(s=h[m.id])&&(f=s._index,e=v[0],u=v[v.length-1],c=h[e.id],a=h[u.id],c)&&a&&(p=c._index,s=a._index,f<p?(v=[m].concat(v),g=[[m].concat(g[0])].concat(g.slice(1))):s<f&&(v=v.concat([m]),g=[g[0].concat([m])].concat(g.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",d?`fixed-${d}--wrapper`:"body--wrapper"],attrs:{xid:i}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,d)}}},[d?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0}},[r("colgroup",{ref:"refHeaderColgroup"},v.map((e,l)=>r("col",{attrs:{name:e.id},key:l}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,t,x,g))]),r("div",{ref:"refHeaderBorderRepair",class:"vxe-table--header-border-line"})])])},methods:{uploadColumn(){var e=this.$parent;this.headerColumn=e.isGroup?(0,_util.convertHeaderColumnToRows)(this.tableGroupColumn):[]},resizeMousedownEvent(e,r){var l=this.$parent;let o=r.column,{$parent:t,fixedType:s}=this,a=l.visibleColumn,{refTableBody:i,refLeftContainer:u,refRightContainer:c}=t.$refs,p=l.$el,f=t.$refs.refCellResizeBar,m=t.$refs.refCellResizeTip,h=this.$el,g=e.clientX;var d=e.target;let v=d.parentNode;var n=Object.assign(r,{cell:v});let x=l.computeResizableOpts,C=0,b=i.$el;var l=(0,_dom.getOffsetPos)(d,p),d=d.clientWidth,y=Math.floor(d/2);let _=(0,_util.getColReMinWidth)(n)-y,w=l.left-v.clientWidth+d+_,H=l.left+y,$=document.onmousemove,z=document.onmouseup,T="left"===s,D="right"===s,E=0;if(T||D){var R=T?"nextElementSibling":"previousElementSibling";let e=v[R];for(;e&&!(0,_dom.hasClass)(e,"fixed--hidden");)(0,_dom.hasClass)(e,"col--group")||(E+=e.offsetWidth),e=e[R];D&&c&&(H=c.offsetLeft+E)}function S(l){l.stopPropagation(),l.preventDefault();var r=l.clientX-g;let e=H+r;if(r=s?0:b.scrollLeft,T?e=Math.min(e,(c?c.offsetLeft:b.clientWidth)-E-_):D?(w=(u?u.clientWidth:0)+E+_,e=Math.min(e,H+v.clientWidth-_)):w=Math.max(b.scrollLeft,w),r=(C=Math.max(e,w))-r,f.style.left=r+"px",x.showDragTip&&m){var t=p.clientWidth,a=h.getBoundingClientRect(),i=f.clientWidth,d=m.clientWidth,n=m.clientHeight;let e=-d;r<d+i?e=d+i-r:t<r&&(e+=t-r),m.style.left=e+"px",m.style.top=Math.min(p.clientHeight-n,Math.max(0,l.clientY-a.y-n/2))+"px",m.textContent=getI18n("vxe.table.resizeColTip",[o.renderWidth+(D?H-C:C-H)])}}t._isResize=!0,(0,_dom.addClass)(t.$el,"drag--resize"),f.style.display="block",document.onmousemove=S,document.onmouseup=function(e){document.onmousemove=$,document.onmouseup=z;let l=o.renderWidth+(D?H-C:C-H);o.resizeWidth=l,"fixed"===x.dragMode&&a.forEach(e=>{e.id===o.id||e.resizeWidth||(e.resizeWidth=e.renderWidth)}),f.style.display="none",t._isResize=!1,t._lastResizeTime=Date.now(),t.analyColumnWidth(),t.recalculate(!0).then(()=>{t.saveCustomStore("update:visible"),t.updateCellAreas(),t.emitEvent("resizable-change",Object.assign(Object.assign({},r),{resizeWidth:l}),e),setTimeout(()=>t.recalculate(!0),300)}),(0,_dom.removeClass)(t.$el,"drag--resize")},S(e),t.closeMenu()}}};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=($,e,l,S,D,E)=>{let T=e.$parent,R=T.xegrid;var r=T,a=T,t=T;let I=e.fixedType,{resizable:U,border:k,columnKey:O,headerCellClassName:z,headerCellStyle:M,showHeaderOverflow:A,headerAlign:F,align:q,mouseConfig:X}=r,{currentColumn:B,scrollXLoad:G,scrollYLoad:L,overflowX:N}=a,V=t.scrollXStore,K=T.computeColumnOpts,P=T.computeColumnDragOpts,W=T.computeCellOpts;e=T.computeDefaultRowHeight;let Y=T.computeHeaderCellOpts,j=Y.height||W.height||e,{disabledMethod:J,isCrossDrag:Q,isPeerDrag:Z}=P;return D.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:d,filters:i,headerClassName:o,editRender:n,cellRender:s}=e,u=e.id,n=n||s,s=n?renderer.get(n.name):null,n=e.children&&e.children.length,c=I?e.fixed!==I&&!n:e.fixed&&N,p=(_xeUtils.default.isBoolean(Y.padding)?Y:W).padding,a=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?A:a,t=t||(s?s.tableHeaderCellAlign:"")||F||d||(s?s.tableCellAlign:"")||q;let f="ellipsis"===a;d="title"===a,s=!0===a||"tooltip"===a;let h=d||s||f,g=!1,m=null;i&&(m=i[0],g=i.some(e=>e.checked));var a=T.getColumnIndex(e),x=T.getVTColumnIndex(e);let v={$table:T,$grid:R,$rowIndex:E,column:e,columnIndex:a,$columnIndex:l,_columnIndex:x,firstFilterOption:m,fixed:I,type:cellType,isHidden:c,hasFilter:g};var a={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},C={click:e=>T.triggerHeaderCellClickEvent(e,v),dblclick:e=>T.triggerHeaderCellDblclickEvent(e,v)},b=(G&&!h&&(f=h=!0),K.drag&&"cell"===P.trigger);let y=!1;b&&(y=!(!J||!J(v))),(X||b)&&(C.mousedown=e=>T.triggerHeaderCellMousedownEvent(e,v)),K.drag&&(C.dragstart=T.handleHeaderCellDragDragstartEvent,C.dragend=T.handleHeaderCellDragDragendEvent,C.dragover=T.handleHeaderCellDragDragoverEvent,b)&&(C.mouseup=T.handleHeaderCellDragMouseupEvent);var b=l===D.length-1,w=_xeUtils.default.isBoolean(e.resizable)?e.resizable:K.resizable||U,H=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let _=!1;G&&!e.fixed&&(x<V.visibleStartIndex-V.preloadSize||x>V.visibleEndIndex+V.preloadSize)&&(_=!0);x={};return h?x.height=j+"px":x.minHeight=j+"px",$("th",{class:["vxe-header--column",u,{["col--"+t]:t,["col--"+r]:r,"col--last":b,"col--fixed":e.fixed,"col--group":n,"col--ellipsis":h,"fixed--width":!H,"fixed--hidden":c,"is--padding":p,"is--sortable":e.sortable,"col--filter":!!i,"is--filter-active":g,"is--drag-active":!e.fixed&&!y&&(Q||Z||!e.parentId),"is--drag-disabled":y,"col--current":B===e},(0,_utils.getClass)(o,v),(0,_utils.getClass)(z,v)],attrs:a,style:M?_xeUtils.default.isFunction(M)?M(v):M:void 0,on:C,key:O||G||L||K.useKey||K.drag||n?u:l},[$("div",{class:["vxe-cell",{"c--title":d,"c--tooltip":s,"c--ellipsis":f}],style:x},_||S&&c?[]:[$("div",{attrs:{colid:u},class:"vxe-cell--wrapper"},e.renderHeader($,v))]),!c&&w?$("div",{class:["vxe-cell--col-resizable",{"is--line":!k||"none"===k}],on:{mousedown:e=>T.handleColResizeMousedownEvent(e,I,v),dblclick:e=>T.handleColResizeDblclickEvent(e,v)}}):renderEmptyElement(T)])})};function renderHeads(a,t,d,i,e){let o=t.$parent;var l=o,r=o;let n=t.fixedType,s=o.computeColumnOpts,u=o.computeColumnDragOpts,{headerRowClassName:c,headerRowStyle:p}=l,f=r.isDragColMove;return e.map((e,l)=>{var r={$table:o,$rowIndex:l,fixed:n,type:cellType};return s.drag&&u.animation?a("transition-group",{key:l,props:{tag:"tr",name:"vxe-header--col-list"+(f?"":"-disabled"),class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:null}},renderRows(a,t,d,i,e,l)):a("tr",{key:l,class:["vxe-header--row",c?_xeUtils.default.isFunction(c)?c(r):c:""],style:p?_xeUtils.default.isFunction(p)?p(r):p:void 0},renderRows(a,t,d,i,e,l))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,a=l,t=l,d=l.xID;let{fixedType:i,fixedColumn:o,tableColumn:n}=this;var s=this.headerColumn,{showHeaderOverflow:e,spanMethod:u,footerSpanMethod:c}=e,{isGroup:a,scrollXLoad:p,scrollYLoad:f,dragCol:h}=a,{visibleColumn:t,fullColumnIdData:g}=t;let m=s,x=n,v=!1;return a?x=t:(!(p||f||e)||u||c||(v=!0),i&&(x=t,v)&&(x=o||[]),m=[x]),i||a||p&&h&&2<x.length&&(s=g[h.id])&&(f=s._index,e=x[0],u=x[x.length-1],c=g[e.id],t=g[u.id],c)&&t&&(p=c._index,s=t._index,f<p?(x=[h].concat(x),m=[[h].concat(m[0])].concat(m.slice(1))):s<f&&(x=x.concat([h]),m=[m[0].concat([h])].concat(m.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",i?`fixed-${i}--wrapper`:"body--wrapper"],attrs:{xid:d}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,i)}}},[i?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:d,cellspacing:0,cellpadding:0,border:0}},[r("colgroup",{ref:"refHeaderColgroup"},x.map((e,l)=>r("col",{attrs:{name:e.id},key:l}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,a,v,m))]),r("div",{ref:"refHeaderBorderRepair",class:"vxe-table--header-border-line"})])])},methods:{uploadColumn(){var e=this.$parent;this.headerColumn=e.isGroup?(0,_util.convertHeaderColumnToRows)(this.tableGroupColumn):[]}}};