vxe-table 4.13.0-beta.2 → 4.13.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.
@@ -94,16 +94,9 @@ hooks.add('tableFilterModule', {
94
94
  if (filterStore.column === column && filterStore.visible) {
95
95
  filterStore.visible = false;
96
96
  } else {
97
- const {
98
- clientY,
99
- pageX
100
- } = evnt;
101
97
  const el = refElem.value;
102
98
  const tableRect = el.getBoundingClientRect();
103
- const targetElem = evnt.target;
104
- const {
105
- visibleWidth
106
- } = (0, _dom.getDomNode)();
99
+ const btnElem = evnt.currentTarget;
107
100
  const {
108
101
  filters,
109
102
  filterMultiple,
@@ -148,41 +141,19 @@ hooks.add('tableFilterModule', {
148
141
  if (!filterWrapperElem) {
149
142
  return;
150
143
  }
144
+ const btnRect = btnElem.getBoundingClientRect();
151
145
  const filterWidth = filterWrapperElem.offsetWidth;
152
146
  const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
153
147
  const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
154
148
  const centerWidth = filterWidth / 2;
155
- const minMargin = 10;
156
- const maxLeft = el.clientWidth - filterWidth - minMargin;
157
- let left, right;
158
- const thEl = targetElem.offsetParent;
159
- const trEl = thEl.offsetParent;
160
- const style = {
161
- top: `${targetElem.offsetTop + thEl.offsetTop + targetElem.offsetHeight}px`
162
- };
149
+ const left = btnRect.left - tableRect.left - centerWidth;
150
+ const top = btnRect.top - tableRect.top + btnElem.clientHeight;
163
151
  // 判断面板不能大于表格高度
164
- const maxHeight = Math.max(40, el.clientHeight - (clientY - tableRect.y) - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
165
- if (column.fixed === 'left') {
166
- left = targetElem.offsetLeft + thEl.offsetLeft - centerWidth;
167
- } else if (column.fixed === 'right') {
168
- right = thEl.offsetWidth - targetElem.offsetLeft + (trEl.offsetWidth - trEl.offsetLeft) - column.renderWidth - centerWidth;
169
- } else {
170
- left = targetElem.offsetLeft + thEl.offsetLeft - centerWidth - headerScrollElem.scrollLeft;
171
- }
172
- if (left) {
173
- const overflowWidth = pageX + filterWidth - centerWidth + minMargin - visibleWidth;
174
- if (overflowWidth > 0) {
175
- left -= overflowWidth;
176
- }
177
- style.left = `${Math.min(maxLeft, Math.max(minMargin, left))}px`;
178
- } else if (right) {
179
- const overflowWidth = pageX + filterWidth - centerWidth + minMargin - visibleWidth;
180
- if (overflowWidth > 0) {
181
- right += overflowWidth;
182
- }
183
- style.right = `${Math.max(minMargin, right)}px`;
184
- }
185
- filterStore.style = style;
152
+ const maxHeight = Math.max(40, el.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
153
+ filterStore.style = {
154
+ top: (0, _dom.toCssUnit)(top),
155
+ left: (0, _dom.toCssUnit)(left)
156
+ };
186
157
  filterStore.maxHeight = maxHeight;
187
158
  });
188
159
  }
@@ -334,7 +305,7 @@ hooks.add('tableFilterModule', {
334
305
  return $xeTable.scrollToColumn(column).then(() => {
335
306
  const headerWrapperElem = (0, _util.getRefElem)(elemStore[`${fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper']);
336
307
  if (headerWrapperElem) {
337
- const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-filter--btn`);
308
+ const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-cell--filter`);
338
309
  (0, _dom.triggerEvent)(filterBtnElem, 'click');
339
310
  }
340
311
  });
@@ -1 +1 @@
1
- var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_utils=require("../../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,hooks}=_ui.VxeUI,tableFilterMethodKeys=["openFilter","setFilter","clearFilter","saveFilterPanel","resetFilterPanel","getCheckedFilters","updateFilterOptionStatus"];hooks.add("tableFilterModule",{setupTable(k){let{props:d,reactData:f,internalData:o}=k,{refElem:u,refTableFilter:b}=k.getRefMaps(),{computeFilterOpts:h,computeMouseOpts:p}=k.getComputeMaps(),i=e=>{var t=f.filterStore;t.options.forEach(e=>{e.checked=e._checked}),k.confirmFilterEvent(e)},a=(e,t,l)=>{var r=f.filterStore;r.options.forEach(e=>{e._checked=!1}),l._checked=t,k.checkFilterOptions(),i(e)},n=(e,t,l)=>{l._checked=t,k.checkFilterOptions()},e=e=>{var t=f.filterStore;k.handleClearFilter(t.column),k.confirmFilterEvent(e)},s={checkFilterOptions(){var e=f.filterStore;e.isAllSelected=e.options.every(e=>e._checked),e.isIndeterminate=!e.isAllSelected&&e.options.some(e=>e._checked)},triggerFilterEvent(e,F,t){let{initStore:l,filterStore:_}=f,g=o.elemStore;if(_.column===F&&_.visible)_.visible=!1;else{let{clientY:d,pageX:f}=e,h=u.value,p=h.getBoundingClientRect(),v=e.target,m=(0,_dom.getDomNode)().visibleWidth;var{filters:i,filterMultiple:a,filterRender:n}=F,n=(0,_utils.isEnableConf)(n)?renderer.get(n.name):null;let r=F.filterRecoverMethod||(n?n.tableFilterRecoverMethod||n.filterRecoverMethod:null);o._currFilterParams=t,Object.assign(_,{multiple:a,options:i,column:F,style:null}),_.options.forEach(e=>{var{_checked:t,checked:l}=e;(e._checked=l)||t===l||r&&r({option:e,column:F,$table:k})}),this.checkFilterOptions(),_.visible=!0,l.filter=!0,(0,_vue.nextTick)(()=>{var l=(0,_util.getRefElem)(g["main-header-scroll"]);if(l){var r=b.value,r=r?r.$el:null;if(r){var i=r.offsetWidth,a=r.querySelector(".vxe-table--filter-header"),r=r.querySelector(".vxe-table--filter-footer"),n=i/2,o=h.clientWidth-i-10;let e,t;var u=v.offsetParent,s=u.offsetParent,c={top:v.offsetTop+u.offsetTop+v.offsetHeight+"px"},a=Math.max(40,h.clientHeight-(d-p.y)-(a?a.clientHeight:0)-(r?r.clientHeight:0)-14);"left"===F.fixed?e=v.offsetLeft+u.offsetLeft-n:"right"===F.fixed?t=u.offsetWidth-v.offsetLeft+(s.offsetWidth-s.offsetLeft)-F.renderWidth-n:e=v.offsetLeft+u.offsetLeft-n-l.scrollLeft,e?(0<(r=f+i-n+10-m)&&(e-=r),c.left=Math.min(o,Math.max(10,e))+"px"):t&&(0<(s=f+i-n+10-m)&&(t+=s),c.right=Math.max(10,t)+"px"),_.style=c,_.maxHeight=a}}})}k.dispatchEvent("filter-visible",{column:F,field:F.field,property:F.field,filterList:k.getCheckedFilters(),visible:_.visible},e)},handleClearFilter(e){if(e){var{filters:l,filterRender:r}=e;if(l){r=(0,_utils.isEnableConf)(r)?renderer.get(r.name):null;let t=e.filterResetMethod||(r?r.tableFilterResetMethod||r.filterResetMethod:null);l.forEach(e=>{e._checked=!1,e.checked=!1,t||(e.data=_xeUtils.default.clone(e.resetValue,!0))}),t&&t({options:l,column:e,$table:k})}}},handleColumnConfirmFilter(e,t){var l=d.mouseConfig;let{scrollXLoad:r,scrollYLoad:i}=f;var a=h.value,n=p.value,o=e.field;let u=[],s=[];e.filters.forEach(e=>{e.checked&&(u.push(e.value),s.push(e.data))});var c=k.getCheckedFilters(),e={$table:k,$event:t,column:e,field:o,property:o,values:u,datas:s,filters:c,filterList:c};return a.remote||(k.handleTableData(!0),k.checkSelectionStatus()),l&&n.area&&k.handleFilterEvent&&k.handleFilterEvent(t,e),t&&k.dispatchEvent("filter-change",e,t),k.closeFilter(),k.updateFooter().then(()=>{var{scrollXLoad:e,scrollYLoad:t}=f;if(r||e||i||t)return(r||e)&&k.updateScrollXSpace(),(i||t)&&k.updateScrollYSpace(),k.refreshScroll()}).then(()=>(k.updateCellAreas(),k.recalculate(!0))).then(()=>{setTimeout(()=>k.recalculate(),50)})},confirmFilterEvent(e){var t=f.filterStore,t=t.column;k.handleColumnConfirmFilter(t,e)},handleFilterChangeRadioOption:a,handleFilterChangeMultipleOption:n,handleFilterChangeOption(e,t,l){var r=f.filterStore;r.multiple?n(0,t,l):a(e,t,l)},handleFilterConfirmFilter:i,handleFilterResetFilter:e};return Object.assign(Object.assign({},{openFilter(e){let r=(0,_util.handleFieldOrColumn)(k,e);if(r&&r.filters){let t=o.elemStore,l=r.fixed;return k.scrollToColumn(r).then(()=>{var e=(0,_util.getRefElem)(t[`${l||"main"}-header-wrapper`]||t["main-header-wrapper"]);e&&(e=e.querySelector(`.vxe-header--column.${r.id} .vxe-filter--btn`),(0,_dom.triggerEvent)(e,"click"))})}return(0,_vue.nextTick)()},setFilter(e,t,l){e=(0,_util.handleFieldOrColumn)(k,e);return e&&e.filters&&(e.filters=(0,_util.toFilters)(t||[]),l)?k.handleColumnConfirmFilter(e,new Event("click")):(0,_vue.nextTick)()},clearFilter(e){var t=f.filterStore,l=o.tableFullColumn,r=h.value;let i;return e?(i=(0,_util.handleFieldOrColumn)(k,e))&&s.handleClearFilter(i):l.forEach(s.handleClearFilter),e&&i===t.column||Object.assign(t,{isAllSelected:!1,isIndeterminate:!1,style:null,options:[],column:null,multiple:!1,visible:!1}),r.remote?(0,_vue.nextTick)():k.updateData()},saveFilterPanel(){return i(null),(0,_vue.nextTick)()},resetFilterPanel(){return e(null),(0,_vue.nextTick)()},getCheckedFilters(){var e=o.tableFullColumn;let a=[];return e.forEach(e=>{var{field:t,filters:l}=e;let r=[],i=[];l&&l.length&&(l.forEach(e=>{e.checked&&(r.push(e.value),i.push(e.data))}),r.length)&&a.push({column:e,field:t,property:t,values:r,datas:i})}),a},updateFilterOptionStatus(e,t){return e._checked=t,e.checked=t,(0,_vue.nextTick)()}}),s)},setupGrid(e){return e.extendTableMethods(tableFilterMethodKeys)}});
1
+ var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_utils=require("../../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,hooks}=_ui.VxeUI,tableFilterMethodKeys=["openFilter","setFilter","clearFilter","saveFilterPanel","resetFilterPanel","getCheckedFilters","updateFilterOptionStatus"];hooks.add("tableFilterModule",{setupTable(f){let{props:d,reactData:p,internalData:v}=f,{refElem:m,refTableFilter:F}=f.getRefMaps(),{computeFilterOpts:h,computeMouseOpts:_}=f.getComputeMaps(),i=e=>{var t=p.filterStore;t.options.forEach(e=>{e.checked=e._checked}),f.confirmFilterEvent(e)},n=(e,t,l)=>{var r=p.filterStore;r.options.forEach(e=>{e._checked=!1}),l._checked=t,f.checkFilterOptions(),i(e)},a=(e,t,l)=>{l._checked=t,f.checkFilterOptions()},e=e=>{var t=p.filterStore;f.handleClearFilter(t.column),f.confirmFilterEvent(e)},o={checkFilterOptions(){var e=p.filterStore;e.isAllSelected=e.options.every(e=>e._checked),e.isIndeterminate=!e.isAllSelected&&e.options.some(e=>e._checked)},triggerFilterEvent(e,o,t){let{initStore:l,filterStore:u}=p,c=v.elemStore;if(u.column===o&&u.visible)u.visible=!1;else{let i=m.value,n=i.getBoundingClientRect(),a=e.currentTarget;var{filters:s,filterMultiple:d,filterRender:h}=o,h=(0,_utils.isEnableConf)(h)?renderer.get(h.name):null;let r=o.filterRecoverMethod||(h?h.tableFilterRecoverMethod||h.filterRecoverMethod:null);v._currFilterParams=t,Object.assign(u,{multiple:d,options:s,column:o,style:null}),u.options.forEach(e=>{var{_checked:t,checked:l}=e;(e._checked=l)||t===l||r&&r({option:e,column:o,$table:f})}),this.checkFilterOptions(),u.visible=!0,l.filter=!0,(0,_vue.nextTick)(()=>{var e,t,l,r;(0,_util.getRefElem)(c["main-header-scroll"])&&(e=(e=F.value)?e.$el:null)&&(l=a.getBoundingClientRect(),t=e.offsetWidth,r=e.querySelector(".vxe-table--filter-header"),e=e.querySelector(".vxe-table--filter-footer"),t=t/2,t=l.left-n.left-t,l=l.top-n.top+a.clientHeight,r=Math.max(40,i.clientHeight-l-(r?r.clientHeight:0)-(e?e.clientHeight:0)-14),u.style={top:(0,_dom.toCssUnit)(l),left:(0,_dom.toCssUnit)(t)},u.maxHeight=r)})}f.dispatchEvent("filter-visible",{column:o,field:o.field,property:o.field,filterList:f.getCheckedFilters(),visible:u.visible},e)},handleClearFilter(e){if(e){var{filters:l,filterRender:r}=e;if(l){r=(0,_utils.isEnableConf)(r)?renderer.get(r.name):null;let t=e.filterResetMethod||(r?r.tableFilterResetMethod||r.filterResetMethod:null);l.forEach(e=>{e._checked=!1,e.checked=!1,t||(e.data=_xeUtils.default.clone(e.resetValue,!0))}),t&&t({options:l,column:e,$table:f})}}},handleColumnConfirmFilter(e,t){var l=d.mouseConfig;let{scrollXLoad:r,scrollYLoad:i}=p;var n=h.value,a=_.value,o=e.field;let u=[],c=[];e.filters.forEach(e=>{e.checked&&(u.push(e.value),c.push(e.data))});var s=f.getCheckedFilters(),e={$table:f,$event:t,column:e,field:o,property:o,values:u,datas:c,filters:s,filterList:s};return n.remote||(f.handleTableData(!0),f.checkSelectionStatus()),l&&a.area&&f.handleFilterEvent&&f.handleFilterEvent(t,e),t&&f.dispatchEvent("filter-change",e,t),f.closeFilter(),f.updateFooter().then(()=>{var{scrollXLoad:e,scrollYLoad:t}=p;if(r||e||i||t)return(r||e)&&f.updateScrollXSpace(),(i||t)&&f.updateScrollYSpace(),f.refreshScroll()}).then(()=>(f.updateCellAreas(),f.recalculate(!0))).then(()=>{setTimeout(()=>f.recalculate(),50)})},confirmFilterEvent(e){var t=p.filterStore,t=t.column;f.handleColumnConfirmFilter(t,e)},handleFilterChangeRadioOption:n,handleFilterChangeMultipleOption:a,handleFilterChangeOption(e,t,l){var r=p.filterStore;r.multiple?a(0,t,l):n(e,t,l)},handleFilterConfirmFilter:i,handleFilterResetFilter:e};return Object.assign(Object.assign({},{openFilter(e){let r=(0,_util.handleFieldOrColumn)(f,e);if(r&&r.filters){let t=v.elemStore,l=r.fixed;return f.scrollToColumn(r).then(()=>{var e=(0,_util.getRefElem)(t[`${l||"main"}-header-wrapper`]||t["main-header-wrapper"]);e&&(e=e.querySelector(`.vxe-header--column.${r.id} .vxe-cell--filter`),(0,_dom.triggerEvent)(e,"click"))})}return(0,_vue.nextTick)()},setFilter(e,t,l){e=(0,_util.handleFieldOrColumn)(f,e);return e&&e.filters&&(e.filters=(0,_util.toFilters)(t||[]),l)?f.handleColumnConfirmFilter(e,new Event("click")):(0,_vue.nextTick)()},clearFilter(e){var t=p.filterStore,l=v.tableFullColumn,r=h.value;let i;return e?(i=(0,_util.handleFieldOrColumn)(f,e))&&o.handleClearFilter(i):l.forEach(o.handleClearFilter),e&&i===t.column||Object.assign(t,{isAllSelected:!1,isIndeterminate:!1,style:null,options:[],column:null,multiple:!1,visible:!1}),r.remote?(0,_vue.nextTick)():f.updateData()},saveFilterPanel(){return i(null),(0,_vue.nextTick)()},resetFilterPanel(){return e(null),(0,_vue.nextTick)()},getCheckedFilters(){var e=v.tableFullColumn;let n=[];return e.forEach(e=>{var{field:t,filters:l}=e;let r=[],i=[];l&&l.length&&(l.forEach(e=>{e.checked&&(r.push(e.value),i.push(e.data))}),r.length)&&n.push({column:e,field:t,property:t,values:r,datas:i})}),n},updateFilterOptionStatus(e,t){return e._checked=t,e.checked=t,(0,_vue.nextTick)()}}),o)},setupGrid(e){return e.extendTableMethods(tableFilterMethodKeys)}});
@@ -1156,15 +1156,15 @@ const Cell = exports.Cell = {
1156
1156
  return [(0, _vue.h)('span', {
1157
1157
  class: ['vxe-cell--filter', {
1158
1158
  'is--active': filterStore.visible && filterStore.column === column
1159
- }]
1160
- }, [(0, _vue.h)('i', {
1161
- class: ['vxe-filter--btn', hasFilter ? iconMatch || getIcon().TABLE_FILTER_MATCH : iconNone || getIcon().TABLE_FILTER_NONE],
1162
- title: getI18n('vxe.table.filter'),
1159
+ }],
1163
1160
  onClick(evnt) {
1164
1161
  if ($table.triggerFilterEvent) {
1165
1162
  $table.triggerFilterEvent(evnt, params.column, params);
1166
1163
  }
1167
1164
  }
1165
+ }, [(0, _vue.h)('i', {
1166
+ class: ['vxe-filter--btn', hasFilter ? iconMatch || getIcon().TABLE_FILTER_MATCH : iconNone || getIcon().TABLE_FILTER_NONE],
1167
+ title: getI18n('vxe.table.filter')
1168
1168
  })])];
1169
1169
  }
1170
1170
  return [];
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Cell=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,getIcon,renderer,formats,renderEmptyElement}=_ui.VxeUI;function renderTitlePrefixIcon(l){let{$table:r,column:e}=l,t=e.titlePrefix||e.titleHelp;return t?(0,_vue.h)("i",{class:["vxe-cell-title-prefix-icon",t.icon||getIcon().TABLE_TITLE_PREFIX],onMouseenter(e){r.triggerHeaderTitleEvent(e,t,l)},onMouseleave(e){r.handleTargetLeaveEvent(e)}}):renderEmptyElement(r)}function renderTitleSuffixIcon(l){let{$table:r,column:e}=l,t=e.titleSuffix;return t?(0,_vue.h)("i",{class:["vxe-cell-title-suffix-icon",t.icon||getIcon().TABLE_TITLE_SUFFIX],onMouseenter(e){r.triggerHeaderTitleEvent(e,t,l)},onMouseleave(e){r.handleTargetLeaveEvent(e)}}):renderEmptyElement(r)}function renderCellDragIcon(l){let{$table:r,column:e}=l;var t=r.context,t=t.slots,n=e.slots,a=r.props.dragConfig,o=r.getComputeMaps().computeRowDragOpts,{icon:o,trigger:s,disabledMethod:d}=o.value,d=d||(a?a.rowDisabledMethod:null);let i=d&&d(l);d=(n?n.rowDragIcon||n["row-drag-icon"]:null)||t.rowDragIcon||t["row-drag-icon"],n={};return"cell"!==s&&(n.onMousedown=e=>{i||r.handleCellDragMousedownEvent(e,l)},n.onMouseup=r.handleCellDragMouseupEvent),(0,_vue.h)("span",Object.assign({key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":i}]},n),d?r.callSlot(d,l):[(0,_vue.h)("i",{class:o||(a?a.rowIcon:"")||getIcon().TABLE_DRAG_ROW})])}function renderCellBaseVNs(e,l){var{$table:r,column:t,level:n}=e,t=t.dragSort,{treeConfig:a,dragConfig:o}=r.props,{computeRowOpts:r,computeRowDragOpts:s,computeTreeOpts:d}=r.getComputeMaps(),r=r.value,s=s.value,d=d.value,{showIcon:s,isPeerDrag:i,isCrossDrag:c,visibleMethod:u}=s,u=u||(o?o.rowVisibleMethod:null),l=_xeUtils.default.isArray(l)?l:[l];return t&&r.drag&&(s||o&&o.showRowIcon)&&(!u||u(e))&&(!a||d.transform&&(i||c||!n))&&l.unshift(renderCellDragIcon(e)),l}function renderHeaderCellDragIcon(r){let{$table:t,column:e}=r;var n=t.context,n=n.slots,a=e.slots,{computeColumnOpts:o,computeColumnDragOpts:s}=t.getComputeMaps(),o=o.value,{showIcon:s,icon:d,trigger:i,isPeerDrag:l,isCrossDrag:c,visibleMethod:u,disabledMethod:C}=s.value;if(!o.drag||!s||u&&!u(r)||e.fixed||!l&&!c&&e.parentId)return renderEmptyElement(t);{let l=C&&C(r);o=(a?a.columnDragIcon||a["column-drag-icon"]:null)||n.columnDragIcon||n["column-drag-icon"],s={};return"cell"!==i&&(s.onMousedown=e=>{l||t.handleHeaderCellDragMousedownEvent(e,r)},s.onMouseup=t.handleHeaderCellDragMouseupEvent),(0,_vue.h)("span",Object.assign({key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":l}]},s),o?t.callSlot(o,r):[(0,_vue.h)("i",{class:d||getIcon().TABLE_DRAG_COLUMN})])}}function renderHeaderCellBaseVNs(e,l){return[renderTitlePrefixIcon(e),renderHeaderCellDragIcon(e),..._xeUtils.default.isArray(l)?l:[l],renderTitleSuffixIcon(e)]}function renderTitleContent(l,e){let{$table:r,column:t}=l;var n=r.props;let a=r.reactData;var o=r.getComputeMaps().computeTooltipOpts,n=n.showHeaderOverflow,{type:s,showHeaderOverflow:d}=t;let i=o.value.showAll;o=_xeUtils.default.isUndefined(d)||_xeUtils.default.isNull(d)?n:d;let c="title"===o,u=!0===o||"tooltip"===o;n={};return(c||u||i)&&(n.onMouseenter=e=>{a.isDragResize||(c?(0,_dom.updateCellTitle)(e.currentTarget,t):(u||i)&&r.triggerHeaderTooltipEvent(e,l))}),(u||i)&&(n.onMouseleave=e=>{a.isDragResize||(u||i)&&r.handleTargetLeaveEvent(e)}),["html"===s&&_xeUtils.default.isString(e)?(0,_vue.h)("span",Object.assign({class:"vxe-cell--title",innerHTML:e},n)):(0,_vue.h)("span",Object.assign({class:"vxe-cell--title"},n),(0,_vn.getSlotVNs)(e))]}function getFooterContent(e){var{$table:l,column:r,_columnIndex:t,items:n,row:a}=e,{slots:o,editRender:s,cellRender:d,footerFormatter:i}=r,s=s||d,d=o?o.footer:null;if(d)return l.callSlot(d,e);let c="";c=_xeUtils.default.isArray(n)?n[t]:_xeUtils.default.get(a,r.field);o=Object.assign(e,{itemValue:c});if(i)return _xeUtils.default.isFunction(i)?[(0,_vue.h)("span",{class:"vxe-cell--label"},""+i(o))]:(n=(d=(l=_xeUtils.default.isArray(i))?formats.get(i[0]):formats.get(i))?d.tableFooterCellFormatMethod:null)?[(0,_vue.h)("span",{class:"vxe-cell--label"},""+(l?n(o,...i.slice(1)):n(o)))]:[(0,_vue.h)("span",{class:"vxe-cell--label"},"")];if(s){t=renderer.get(s.name);if(t){a=t.renderTableFooter||t.renderFooter;if(a)return(0,_vn.getSlotVNs)(a(s,o))}}return[(0,_vue.h)("span",{class:"vxe-cell--label"},(0,_utils.formatText)(c,1))]}function getDefaultCellLabel(e){var{$table:e,row:l,column:r}=e;return(0,_utils.formatText)(e.getCellLabel(l,r),1)}function renderCellHandle(e){var{column:l,$table:r}=e,t=r.props.editConfig,{type:l,treeNode:n,editRender:a}=l,{computeEditOpts:r,computeCheckboxOpts:o}=r.getComputeMaps(),s=o.value,o=r.value;switch(l){case"seq":return n?Cell.renderTreeIndexCell(e):Cell.renderSeqCell(e);case"radio":return n?Cell.renderTreeRadioCell(e):Cell.renderRadioCell(e);case"checkbox":return s.checkField?n?Cell.renderTreeSelectionCellByProp(e):Cell.renderCheckboxCellByProp(e):n?Cell.renderTreeSelectionCell(e):Cell.renderCheckboxCell(e);case"expand":return Cell.renderExpandCell(e);case"html":return n?Cell.renderTreeHTMLCell(e):Cell.renderHTMLCell(e)}return(0,_utils.isEnableConf)(t)&&a?"cell"===o.mode?n?Cell.renderTreeCellEdit(e):Cell.renderCellEdit(e):n?Cell.renderTreeRowEdit(e):Cell.renderRowEdit(e):n?Cell.renderTreeCell(e):Cell.renderDefaultCell(e)}function renderHeaderHandle(e){var{column:l,$table:r}=e,r=r.props.editConfig,{type:l,filters:t,sortable:n,editRender:a}=l;switch(l){case"seq":return Cell.renderSeqHeader(e);case"radio":return Cell.renderRadioHeader(e);case"checkbox":return Cell.renderCheckboxHeader(e);case"html":if(t&&n)return Cell.renderSortAndFilterHeader(e);if(n)return Cell.renderSortHeader(e);if(t)return Cell.renderFilterHeader(e)}return r&&a?Cell.renderEditHeader(e):t&&n?Cell.renderSortAndFilterHeader(e):n?Cell.renderSortHeader(e):t?Cell.renderFilterHeader(e):Cell.renderDefaultHeader(e)}function renderFooterHandle(e){return Cell.renderDefaultFooter(e)}let Cell=exports.Cell={createColumn(e,l){var r=l.type,t={renderHeader:renderHeaderHandle,renderCell:renderCellHandle,renderFooter:renderFooterHandle};return"expand"===r&&(t.renderData=Cell.renderExpandData),(0,_util.createColumn)(e,l,t)},renderHeaderTitle(e){var{$table:l,column:r}=e,{slots:t,editRender:n,cellRender:a}=r,n=n||a,a=t?t.header:null;if(a)return renderTitleContent(e,l.callSlot(a,e));if(n){t=renderer.get(n.name);if(t){l=t.renderTableHeader||t.renderHeader;if(l)return renderTitleContent(e,(0,_vn.getSlotVNs)(l(n,e)))}}return renderTitleContent(e,(0,_utils.formatText)(r.getTitle(),1))},renderDefaultHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e))},renderDefaultCell(e){var{$table:l,row:r,column:t}=e,{slots:n,editRender:a,cellRender:o}=t,o=a||o,n=n?n.default:null;if(n)return renderCellBaseVNs(e,l.callSlot(n,e));if(o){n=renderer.get(o.name);if(n){var s=n.renderTableCell||n.renderCell,n=n.renderTableDefault||n.renderDefault,s=a?s:n;if(s)return renderCellBaseVNs(e,(0,_vn.getSlotVNs)(s(o,Object.assign({$type:a?"edit":"cell"},e))))}}n=l.getCellLabel(r,t),s=a?a.placeholder:"";return renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},[a&&(0,_utils.eqEmptyValue)(n)?(0,_vue.h)("span",{class:"vxe-cell--placeholder"},(0,_utils.formatText)((0,_utils.getFuncText)(s),1)):(0,_vue.h)("span",(0,_utils.formatText)(n,1))])])},renderTreeCell(e){return Cell.renderTreeIcon(e,Cell.renderDefaultCell(e))},renderDefaultFooter(e){return getFooterContent(e)},renderTreeIcon(l,e){let{$table:r,isHidden:t}=l;var n=r.reactData,a=r.internalData,o=r.getComputeMaps().computeTreeOpts,n=n.treeExpandedFlag,{fullAllDataRowIdData:a,treeExpandedMaps:s,treeExpandLazyLoadedMaps:d}=a,o=o.value,{row:i,column:c,level:u}=l,c=c.slots,{indent:C,lazy:v,trigger:p,iconLoaded:g,showIcon:h,iconOpen:_,iconClose:b}=o,E=o.children||o.childrenField,o=o.hasChild||o.hasChildField,E=i[E],E=E&&E.length,c=c?c.icon:null;let x=!1,f=!1,m=!1,T=!1;var I={};return c?r.callSlot(c,l):(t||(c=(0,_util.getRowid)(r,i),f=!!n&&!!s[c],v&&(n=a[c],m=!!d[c],x=i[o],T=!!n.treeLoaded)),p&&"default"!==p||(I.onClick=e=>{r.triggerTreeExpandEvent(e,l)}),[(0,_vue.h)("div",{class:["vxe-cell--tree-node",{"is--active":f}],style:{paddingLeft:u*C+"px"}},[h&&(!v||T?E:E||x)?[(0,_vue.h)("div",Object.assign({class:"vxe-tree--btn-wrapper"},I),[(0,_vue.h)("i",{class:["vxe-tree--node-btn",m?g||getIcon().TABLE_TREE_LOADED:f?_||getIcon().TABLE_TREE_OPEN:b||getIcon().TABLE_TREE_CLOSE]})])]:null,(0,_vue.h)("div",{class:"vxe-tree-cell"},e)])])},renderSeqHeader(e){var{$table:l,column:r}=e,t=r.slots,t=t?t.header:null;return renderHeaderCellBaseVNs(e,renderTitleContent(e,t?l.callSlot(t,e):(0,_utils.formatText)(r.getTitle(),1)))},renderSeqCell(e){var{$table:l,column:r}=e,t=l.props.treeConfig,n=l.getComputeMaps().computeSeqOpts,n=n.value,r=r.slots,r=r?r.default:null;return r?renderCellBaseVNs(e,l.callSlot(r,e)):(l=e.seq,r=n.seqMethod,renderCellBaseVNs(e,[(0,_vue.h)("span",""+(0,_utils.formatText)(r?r(e):t?l:(n.startIndex||0)+l,1))]))},renderTreeIndexCell(e){return Cell.renderTreeIcon(e,Cell.renderSeqCell(e))},renderRadioHeader(e){var{$table:l,column:r}=e,t=r.slots,n=t?t.header:null,t=t?t.title:null;return renderHeaderCellBaseVNs(e,renderTitleContent(e,n?l.callSlot(n,e):[(0,_vue.h)("span",{class:"vxe-radio--label"},t?l.callSlot(t,e):(0,_utils.formatText)(r.getTitle(),1))]))},renderRadioCell(l){let{$table:r,column:e,isHidden:t}=l;var n=r.reactData,a=r.getComputeMaps().computeRadioOpts,n=n.selectRadioRow,o=e.slots,{labelField:a,checkMethod:s,visibleMethod:d}=a.value,i=l.row,c=o?o.default:null,o=o?o.radio:null,n=r.eqRow(i,n);let u=!d||d({row:i}),C=!!s,v;t||(v={onClick(e){!C&&u&&r.triggerRadioRowEvent(e,l)}},s&&(C=!s({row:i})));d=Object.assign(Object.assign({},l),{checked:n,disabled:C,visible:u});return o?renderCellBaseVNs(l,r.callSlot(o,d)):(s=[],u&&s.push((0,_vue.h)("span",{class:["vxe-radio--icon",n?getIcon().TABLE_RADIO_CHECKED:getIcon().TABLE_RADIO_UNCHECKED]})),(c||a)&&s.push((0,_vue.h)("span",{class:"vxe-radio--label"},c?r.callSlot(c,d):_xeUtils.default.get(i,a))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--radio",{"is--checked":n,"is--disabled":C}]},v),s)]))},renderTreeRadioCell(e){return Cell.renderTreeIcon(e,Cell.renderRadioCell(e))},renderCheckboxHeader(e){let{$table:l,column:r,isHidden:t}=e;var n=l.reactData,{computeIsAllCheckboxDisabled:a,computeCheckboxOpts:o}=l.getComputeMaps();let{isAllSelected:s,isIndeterminate:d}=n,i=a.value;var n=r.slots,a=n?n.header:null,n=n?n.title:null,{checkStrictly:o,showHeader:c,headerTitle:u}=o.value,C=r.getTitle(),v={},p=(t||(v.onClick=e=>{i||l.triggerCheckAllEvent(e,!s)}),Object.assign(Object.assign({},e),{checked:s,disabled:i,indeterminate:d}));return renderHeaderCellBaseVNs(e,renderTitleContent(p,a?l.callSlot(a,p):(o?c:!1!==c)?[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":s,"is--disabled":i,"is--indeterminate":d}],title:_xeUtils.default.eqNull(u)?getI18n("vxe.table.allTitle"):""+(u||"")},v),[(0,_vue.h)("span",{class:["vxe-checkbox--icon",d?getIcon().TABLE_CHECKBOX_INDETERMINATE:s?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})].concat(n||C?[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,p):C)]:[]))]:[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,p):C)]))},renderCheckboxCell(l){let{$table:r,row:e,column:t,isHidden:n}=l;var a=r.props.treeConfig,o=r.reactData.updateCheckboxFlag,{selectCheckboxMaps:s,treeIndeterminateRowMaps:d}=r.internalData,i=r.getComputeMaps().computeCheckboxOpts,{labelField:i,checkMethod:c,visibleMethod:u}=i.value,C=t.slots,v=C?C.default:null,C=C?C.checkbox:null;let p=!1,g=!1,h=!u||u({row:e}),_=!!c;var b,u={},o=(n||(b=(0,_util.getRowid)(r,e),g=!!o&&!!s[b],u.onClick=e=>{!_&&h&&r.triggerCheckRowEvent(e,l,!g)},c&&(_=!c({row:e})),a&&(p=!!d[b])),Object.assign(Object.assign({},l),{checked:g,disabled:_,visible:h,indeterminate:p}));return C?renderCellBaseVNs(l,r.callSlot(C,o)):(s=[],h&&s.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",p?getIcon().TABLE_CHECKBOX_INDETERMINATE:g?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),(v||i)&&s.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},v?r.callSlot(v,o):_xeUtils.default.get(e,i))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":g,"is--disabled":_,"is--indeterminate":p,"is--hidden":!h}]},u),s)]))},renderTreeSelectionCell(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCell(e))},renderCheckboxCellByProp(l){let{$table:r,row:e,column:t,isHidden:n}=l;var a=r.props.treeConfig,o=r.reactData.updateCheckboxFlag,s=r.internalData.treeIndeterminateRowMaps,d=r.getComputeMaps().computeCheckboxOpts,d=d.value,{labelField:i,checkField:c,checkMethod:u,visibleMethod:C}=d,d=d.indeterminateField||d.halfField,v=t.slots,p=v?v.default:null,v=v?v.checkbox:null;let g=!1,h=!1,_=!C||C({row:e}),b=!!u;var E,C={},o=(n||(E=(0,_util.getRowid)(r,e),h=!!o&&_xeUtils.default.get(e,c),C.onClick=e=>{!b&&_&&r.triggerCheckRowEvent(e,l,!h)},u&&(b=!u({row:e})),a&&(g=!!s[E])),Object.assign(Object.assign({},l),{checked:h,disabled:b,visible:_,indeterminate:g}));return v?renderCellBaseVNs(l,r.callSlot(v,o)):(c=[],_&&(c.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",g?getIcon().TABLE_CHECKBOX_INDETERMINATE:h?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),p||i)&&c.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},p?r.callSlot(p,o):_xeUtils.default.get(e,i))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":h,"is--disabled":b,"is--indeterminate":d&&!h?e[d]:g,"is--hidden":!_}]},C),c)]))},renderTreeSelectionCellByProp(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCellByProp(e))},renderExpandCell(l){let{$table:r,isHidden:e,row:t,column:n}=l;var{rowExpandedMaps:a,rowExpandLazyLoadedMaps:o}=r.internalData,s=r.getComputeMaps().computeExpandOpts,{lazy:s,labelField:d,iconLoaded:i,showIcon:c,iconOpen:u,iconClose:C,visibleMethod:v}=s.value,p=n.slots,g=p?p.default:null,p=p?p.icon:null;let h=!1,_=!1;return p?renderCellBaseVNs(l,r.callSlot(p,l)):(e||(p=(0,_util.getRowid)(r,t),h=!!a[p],s&&(_=!!o[p])),renderCellBaseVNs(l,[!c||v&&!v(l)?renderEmptyElement(r):(0,_vue.h)("span",{class:["vxe-table--expanded",{"is--active":h}],onMousedown(e){e.stopPropagation()},onClick(e){r.triggerRowExpandEvent(e,l)}},[(0,_vue.h)("i",{class:["vxe-table--expand-btn",_?i||getIcon().TABLE_EXPAND_LOADED:h?u||getIcon().TABLE_EXPAND_OPEN:C||getIcon().TABLE_EXPAND_CLOSE]})]),g||d?(0,_vue.h)("span",{class:"vxe-table--expand-label"},g?r.callSlot(g,l):_xeUtils.default.get(t,d)):renderEmptyElement(r)]))},renderExpandData(e){var{$table:l,column:r}=e,{slots:r,contentRender:t}=r,r=r?r.content:null;if(r)return l.callSlot(r,e);if(t){l=renderer.get(t.name);if(l){r=l.renderTableExpand||l.renderExpand;if(r)return(0,_vn.getSlotVNs)(r(t,e))}}return[]},renderHTMLCell(e){var{$table:l,column:r}=e,r=r.slots,r=r?r.default:null;return renderCellBaseVNs(e,r?l.callSlot(r,e):[(0,_vue.h)("span",{class:"vxe-cell--html",innerHTML:getDefaultCellLabel(e)})])},renderTreeHTMLCell(e){return Cell.renderTreeIcon(e,Cell.renderHTMLCell(e))},renderSortAndFilterHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e).concat(Cell.renderFilterIcon(e))))},renderSortHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e)))},renderSortIcon(e){let{$table:l,column:r}=e;var t=l.getComputeMaps().computeSortOpts,{showIcon:t,allowBtn:n,ascTitle:a,descTitle:o,iconLayout:s,iconAsc:d,iconDesc:i,iconVisibleMethod:c}=t.value,u=r.order;return!t||c&&!c(e)?[]:[(0,_vue.h)("span",{class:["vxe-cell--sort",`vxe-cell--sort-${s}-layout`]},[(0,_vue.h)("i",{class:["vxe-sort--asc-btn",d||getIcon().TABLE_SORT_ASC,{"sort--active":"asc"===u}],title:_xeUtils.default.eqNull(a)?getI18n("vxe.table.sortAsc"):""+(a||""),onClick:n?e=>{e.stopPropagation(),l.triggerSortEvent(e,r,"asc")}:void 0}),(0,_vue.h)("i",{class:["vxe-sort--desc-btn",i||getIcon().TABLE_SORT_DESC,{"sort--active":"desc"===u}],title:_xeUtils.default.eqNull(o)?getI18n("vxe.table.sortDesc"):""+(o||""),onClick:n?e=>{e.stopPropagation(),l.triggerSortEvent(e,r,"desc")}:void 0})])]},renderFilterHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderFilterIcon(e)))},renderFilterIcon(l){let{$table:r,column:e,hasFilter:t}=l;var n=r.reactData.filterStore,a=r.getComputeMaps().computeFilterOpts,{showIcon:a,iconNone:o,iconMatch:s,iconVisibleMethod:d}=a.value;return!a||d&&!d(l)?[]:[(0,_vue.h)("span",{class:["vxe-cell--filter",{"is--active":n.visible&&n.column===e}]},[(0,_vue.h)("i",{class:["vxe-filter--btn",t?s||getIcon().TABLE_FILTER_MATCH:o||getIcon().TABLE_FILTER_NONE],title:getI18n("vxe.table.filter"),onClick(e){r.triggerFilterEvent&&r.triggerFilterEvent(e,l.column,l)}})])]},renderEditHeader(e){var{$table:l,column:r}=e,t=l.props,n=l.getComputeMaps().computeEditOpts,{editConfig:t,editRules:a}=t,n=n.value,{sortable:o,filters:s,editRender:d}=r;let i=!1,c=(a&&(a=_xeUtils.default.get(a,r.field))&&(i=a.some(e=>e.required)),[]);return renderHeaderCellBaseVNs(e,(c=(0,_utils.isEnableConf)(t)?[i&&n.showAsterisk?(0,_vue.h)("i",{class:"vxe-cell--required-icon"}):renderEmptyElement(l),(0,_utils.isEnableConf)(d)&&n.showIcon?(0,_vue.h)("i",{class:["vxe-cell--edit-icon",n.icon||getIcon().TABLE_EDIT]}):renderEmptyElement(l)]:c).concat(Cell.renderHeaderTitle(e)).concat(o?Cell.renderSortIcon(e):[]).concat(s?Cell.renderFilterIcon(e):[]))},renderRowEdit(e){var{$table:l,column:r}=e,l=l.reactData.editStore,l=l.actived,r=r.editRender;return Cell.runRenderer(e,(0,_utils.isEnableConf)(r)&&l&&l.row===e.row)},renderTreeRowEdit(e){return Cell.renderTreeIcon(e,Cell.renderRowEdit(e))},renderCellEdit(e){var{$table:l,column:r}=e,l=l.reactData.editStore,l=l.actived,r=r.editRender;return Cell.runRenderer(e,(0,_utils.isEnableConf)(r)&&l&&l.row===e.row&&l.column===e.column)},renderTreeCellEdit(e){return Cell.renderTreeIcon(e,Cell.renderCellEdit(e))},runRenderer(e,l){var{$table:r,column:t}=e,{slots:t,editRender:n,formatter:a}=t,o=t?t.default:null,t=t?t.edit:null,s=renderer.get(n.name),s=s?s.renderTableEdit||s.renderEdit:null,d=Object.assign({$type:"",isEdit:l},e);return l?(d.$type="edit",t?r.callSlot(t,d):s?(0,_vn.getSlotVNs)(s(n,d)):[]):o?renderCellBaseVNs(e,r.callSlot(o,d)):a?renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},getDefaultCellLabel(d))]):Cell.renderDefaultCell(d)}};var _default=exports.default=Cell;
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Cell=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,getIcon,renderer,formats,renderEmptyElement}=_ui.VxeUI;function renderTitlePrefixIcon(l){let{$table:r,column:e}=l,t=e.titlePrefix||e.titleHelp;return t?(0,_vue.h)("i",{class:["vxe-cell-title-prefix-icon",t.icon||getIcon().TABLE_TITLE_PREFIX],onMouseenter(e){r.triggerHeaderTitleEvent(e,t,l)},onMouseleave(e){r.handleTargetLeaveEvent(e)}}):renderEmptyElement(r)}function renderTitleSuffixIcon(l){let{$table:r,column:e}=l,t=e.titleSuffix;return t?(0,_vue.h)("i",{class:["vxe-cell-title-suffix-icon",t.icon||getIcon().TABLE_TITLE_SUFFIX],onMouseenter(e){r.triggerHeaderTitleEvent(e,t,l)},onMouseleave(e){r.handleTargetLeaveEvent(e)}}):renderEmptyElement(r)}function renderCellDragIcon(l){let{$table:r,column:e}=l;var t=r.context,t=t.slots,n=e.slots,a=r.props.dragConfig,o=r.getComputeMaps().computeRowDragOpts,{icon:o,trigger:s,disabledMethod:d}=o.value,d=d||(a?a.rowDisabledMethod:null);let i=d&&d(l);d=(n?n.rowDragIcon||n["row-drag-icon"]:null)||t.rowDragIcon||t["row-drag-icon"],n={};return"cell"!==s&&(n.onMousedown=e=>{i||r.handleCellDragMousedownEvent(e,l)},n.onMouseup=r.handleCellDragMouseupEvent),(0,_vue.h)("span",Object.assign({key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":i}]},n),d?r.callSlot(d,l):[(0,_vue.h)("i",{class:o||(a?a.rowIcon:"")||getIcon().TABLE_DRAG_ROW})])}function renderCellBaseVNs(e,l){var{$table:r,column:t,level:n}=e,t=t.dragSort,{treeConfig:a,dragConfig:o}=r.props,{computeRowOpts:r,computeRowDragOpts:s,computeTreeOpts:d}=r.getComputeMaps(),r=r.value,s=s.value,d=d.value,{showIcon:s,isPeerDrag:i,isCrossDrag:c,visibleMethod:u}=s,u=u||(o?o.rowVisibleMethod:null),l=_xeUtils.default.isArray(l)?l:[l];return t&&r.drag&&(s||o&&o.showRowIcon)&&(!u||u(e))&&(!a||d.transform&&(i||c||!n))&&l.unshift(renderCellDragIcon(e)),l}function renderHeaderCellDragIcon(r){let{$table:t,column:e}=r;var n=t.context,n=n.slots,a=e.slots,{computeColumnOpts:o,computeColumnDragOpts:s}=t.getComputeMaps(),o=o.value,{showIcon:s,icon:d,trigger:i,isPeerDrag:l,isCrossDrag:c,visibleMethod:u,disabledMethod:C}=s.value;if(!o.drag||!s||u&&!u(r)||e.fixed||!l&&!c&&e.parentId)return renderEmptyElement(t);{let l=C&&C(r);o=(a?a.columnDragIcon||a["column-drag-icon"]:null)||n.columnDragIcon||n["column-drag-icon"],s={};return"cell"!==i&&(s.onMousedown=e=>{l||t.handleHeaderCellDragMousedownEvent(e,r)},s.onMouseup=t.handleHeaderCellDragMouseupEvent),(0,_vue.h)("span",Object.assign({key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":l}]},s),o?t.callSlot(o,r):[(0,_vue.h)("i",{class:d||getIcon().TABLE_DRAG_COLUMN})])}}function renderHeaderCellBaseVNs(e,l){return[renderTitlePrefixIcon(e),renderHeaderCellDragIcon(e),..._xeUtils.default.isArray(l)?l:[l],renderTitleSuffixIcon(e)]}function renderTitleContent(l,e){let{$table:r,column:t}=l;var n=r.props;let a=r.reactData;var o=r.getComputeMaps().computeTooltipOpts,n=n.showHeaderOverflow,{type:s,showHeaderOverflow:d}=t;let i=o.value.showAll;o=_xeUtils.default.isUndefined(d)||_xeUtils.default.isNull(d)?n:d;let c="title"===o,u=!0===o||"tooltip"===o;n={};return(c||u||i)&&(n.onMouseenter=e=>{a.isDragResize||(c?(0,_dom.updateCellTitle)(e.currentTarget,t):(u||i)&&r.triggerHeaderTooltipEvent(e,l))}),(u||i)&&(n.onMouseleave=e=>{a.isDragResize||(u||i)&&r.handleTargetLeaveEvent(e)}),["html"===s&&_xeUtils.default.isString(e)?(0,_vue.h)("span",Object.assign({class:"vxe-cell--title",innerHTML:e},n)):(0,_vue.h)("span",Object.assign({class:"vxe-cell--title"},n),(0,_vn.getSlotVNs)(e))]}function getFooterContent(e){var{$table:l,column:r,_columnIndex:t,items:n,row:a}=e,{slots:o,editRender:s,cellRender:d,footerFormatter:i}=r,s=s||d,d=o?o.footer:null;if(d)return l.callSlot(d,e);let c="";c=_xeUtils.default.isArray(n)?n[t]:_xeUtils.default.get(a,r.field);o=Object.assign(e,{itemValue:c});if(i)return _xeUtils.default.isFunction(i)?[(0,_vue.h)("span",{class:"vxe-cell--label"},""+i(o))]:(n=(d=(l=_xeUtils.default.isArray(i))?formats.get(i[0]):formats.get(i))?d.tableFooterCellFormatMethod:null)?[(0,_vue.h)("span",{class:"vxe-cell--label"},""+(l?n(o,...i.slice(1)):n(o)))]:[(0,_vue.h)("span",{class:"vxe-cell--label"},"")];if(s){t=renderer.get(s.name);if(t){a=t.renderTableFooter||t.renderFooter;if(a)return(0,_vn.getSlotVNs)(a(s,o))}}return[(0,_vue.h)("span",{class:"vxe-cell--label"},(0,_utils.formatText)(c,1))]}function getDefaultCellLabel(e){var{$table:e,row:l,column:r}=e;return(0,_utils.formatText)(e.getCellLabel(l,r),1)}function renderCellHandle(e){var{column:l,$table:r}=e,t=r.props.editConfig,{type:l,treeNode:n,editRender:a}=l,{computeEditOpts:r,computeCheckboxOpts:o}=r.getComputeMaps(),s=o.value,o=r.value;switch(l){case"seq":return n?Cell.renderTreeIndexCell(e):Cell.renderSeqCell(e);case"radio":return n?Cell.renderTreeRadioCell(e):Cell.renderRadioCell(e);case"checkbox":return s.checkField?n?Cell.renderTreeSelectionCellByProp(e):Cell.renderCheckboxCellByProp(e):n?Cell.renderTreeSelectionCell(e):Cell.renderCheckboxCell(e);case"expand":return Cell.renderExpandCell(e);case"html":return n?Cell.renderTreeHTMLCell(e):Cell.renderHTMLCell(e)}return(0,_utils.isEnableConf)(t)&&a?"cell"===o.mode?n?Cell.renderTreeCellEdit(e):Cell.renderCellEdit(e):n?Cell.renderTreeRowEdit(e):Cell.renderRowEdit(e):n?Cell.renderTreeCell(e):Cell.renderDefaultCell(e)}function renderHeaderHandle(e){var{column:l,$table:r}=e,r=r.props.editConfig,{type:l,filters:t,sortable:n,editRender:a}=l;switch(l){case"seq":return Cell.renderSeqHeader(e);case"radio":return Cell.renderRadioHeader(e);case"checkbox":return Cell.renderCheckboxHeader(e);case"html":if(t&&n)return Cell.renderSortAndFilterHeader(e);if(n)return Cell.renderSortHeader(e);if(t)return Cell.renderFilterHeader(e)}return r&&a?Cell.renderEditHeader(e):t&&n?Cell.renderSortAndFilterHeader(e):n?Cell.renderSortHeader(e):t?Cell.renderFilterHeader(e):Cell.renderDefaultHeader(e)}function renderFooterHandle(e){return Cell.renderDefaultFooter(e)}let Cell=exports.Cell={createColumn(e,l){var r=l.type,t={renderHeader:renderHeaderHandle,renderCell:renderCellHandle,renderFooter:renderFooterHandle};return"expand"===r&&(t.renderData=Cell.renderExpandData),(0,_util.createColumn)(e,l,t)},renderHeaderTitle(e){var{$table:l,column:r}=e,{slots:t,editRender:n,cellRender:a}=r,n=n||a,a=t?t.header:null;if(a)return renderTitleContent(e,l.callSlot(a,e));if(n){t=renderer.get(n.name);if(t){l=t.renderTableHeader||t.renderHeader;if(l)return renderTitleContent(e,(0,_vn.getSlotVNs)(l(n,e)))}}return renderTitleContent(e,(0,_utils.formatText)(r.getTitle(),1))},renderDefaultHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e))},renderDefaultCell(e){var{$table:l,row:r,column:t}=e,{slots:n,editRender:a,cellRender:o}=t,o=a||o,n=n?n.default:null;if(n)return renderCellBaseVNs(e,l.callSlot(n,e));if(o){n=renderer.get(o.name);if(n){var s=n.renderTableCell||n.renderCell,n=n.renderTableDefault||n.renderDefault,s=a?s:n;if(s)return renderCellBaseVNs(e,(0,_vn.getSlotVNs)(s(o,Object.assign({$type:a?"edit":"cell"},e))))}}n=l.getCellLabel(r,t),s=a?a.placeholder:"";return renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},[a&&(0,_utils.eqEmptyValue)(n)?(0,_vue.h)("span",{class:"vxe-cell--placeholder"},(0,_utils.formatText)((0,_utils.getFuncText)(s),1)):(0,_vue.h)("span",(0,_utils.formatText)(n,1))])])},renderTreeCell(e){return Cell.renderTreeIcon(e,Cell.renderDefaultCell(e))},renderDefaultFooter(e){return getFooterContent(e)},renderTreeIcon(l,e){let{$table:r,isHidden:t}=l;var n=r.reactData,a=r.internalData,o=r.getComputeMaps().computeTreeOpts,n=n.treeExpandedFlag,{fullAllDataRowIdData:a,treeExpandedMaps:s,treeExpandLazyLoadedMaps:d}=a,o=o.value,{row:i,column:c,level:u}=l,c=c.slots,{indent:C,lazy:v,trigger:p,iconLoaded:g,showIcon:h,iconOpen:_,iconClose:b}=o,E=o.children||o.childrenField,o=o.hasChild||o.hasChildField,E=i[E],E=E&&E.length,c=c?c.icon:null;let x=!1,f=!1,m=!1,T=!1;var I={};return c?r.callSlot(c,l):(t||(c=(0,_util.getRowid)(r,i),f=!!n&&!!s[c],v&&(n=a[c],m=!!d[c],x=i[o],T=!!n.treeLoaded)),p&&"default"!==p||(I.onClick=e=>{r.triggerTreeExpandEvent(e,l)}),[(0,_vue.h)("div",{class:["vxe-cell--tree-node",{"is--active":f}],style:{paddingLeft:u*C+"px"}},[h&&(!v||T?E:E||x)?[(0,_vue.h)("div",Object.assign({class:"vxe-tree--btn-wrapper"},I),[(0,_vue.h)("i",{class:["vxe-tree--node-btn",m?g||getIcon().TABLE_TREE_LOADED:f?_||getIcon().TABLE_TREE_OPEN:b||getIcon().TABLE_TREE_CLOSE]})])]:null,(0,_vue.h)("div",{class:"vxe-tree-cell"},e)])])},renderSeqHeader(e){var{$table:l,column:r}=e,t=r.slots,t=t?t.header:null;return renderHeaderCellBaseVNs(e,renderTitleContent(e,t?l.callSlot(t,e):(0,_utils.formatText)(r.getTitle(),1)))},renderSeqCell(e){var{$table:l,column:r}=e,t=l.props.treeConfig,n=l.getComputeMaps().computeSeqOpts,n=n.value,r=r.slots,r=r?r.default:null;return r?renderCellBaseVNs(e,l.callSlot(r,e)):(l=e.seq,r=n.seqMethod,renderCellBaseVNs(e,[(0,_vue.h)("span",""+(0,_utils.formatText)(r?r(e):t?l:(n.startIndex||0)+l,1))]))},renderTreeIndexCell(e){return Cell.renderTreeIcon(e,Cell.renderSeqCell(e))},renderRadioHeader(e){var{$table:l,column:r}=e,t=r.slots,n=t?t.header:null,t=t?t.title:null;return renderHeaderCellBaseVNs(e,renderTitleContent(e,n?l.callSlot(n,e):[(0,_vue.h)("span",{class:"vxe-radio--label"},t?l.callSlot(t,e):(0,_utils.formatText)(r.getTitle(),1))]))},renderRadioCell(l){let{$table:r,column:e,isHidden:t}=l;var n=r.reactData,a=r.getComputeMaps().computeRadioOpts,n=n.selectRadioRow,o=e.slots,{labelField:a,checkMethod:s,visibleMethod:d}=a.value,i=l.row,c=o?o.default:null,o=o?o.radio:null,n=r.eqRow(i,n);let u=!d||d({row:i}),C=!!s,v;t||(v={onClick(e){!C&&u&&r.triggerRadioRowEvent(e,l)}},s&&(C=!s({row:i})));d=Object.assign(Object.assign({},l),{checked:n,disabled:C,visible:u});return o?renderCellBaseVNs(l,r.callSlot(o,d)):(s=[],u&&s.push((0,_vue.h)("span",{class:["vxe-radio--icon",n?getIcon().TABLE_RADIO_CHECKED:getIcon().TABLE_RADIO_UNCHECKED]})),(c||a)&&s.push((0,_vue.h)("span",{class:"vxe-radio--label"},c?r.callSlot(c,d):_xeUtils.default.get(i,a))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--radio",{"is--checked":n,"is--disabled":C}]},v),s)]))},renderTreeRadioCell(e){return Cell.renderTreeIcon(e,Cell.renderRadioCell(e))},renderCheckboxHeader(e){let{$table:l,column:r,isHidden:t}=e;var n=l.reactData,{computeIsAllCheckboxDisabled:a,computeCheckboxOpts:o}=l.getComputeMaps();let{isAllSelected:s,isIndeterminate:d}=n,i=a.value;var n=r.slots,a=n?n.header:null,n=n?n.title:null,{checkStrictly:o,showHeader:c,headerTitle:u}=o.value,C=r.getTitle(),v={},p=(t||(v.onClick=e=>{i||l.triggerCheckAllEvent(e,!s)}),Object.assign(Object.assign({},e),{checked:s,disabled:i,indeterminate:d}));return renderHeaderCellBaseVNs(e,renderTitleContent(p,a?l.callSlot(a,p):(o?c:!1!==c)?[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":s,"is--disabled":i,"is--indeterminate":d}],title:_xeUtils.default.eqNull(u)?getI18n("vxe.table.allTitle"):""+(u||"")},v),[(0,_vue.h)("span",{class:["vxe-checkbox--icon",d?getIcon().TABLE_CHECKBOX_INDETERMINATE:s?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})].concat(n||C?[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,p):C)]:[]))]:[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,p):C)]))},renderCheckboxCell(l){let{$table:r,row:e,column:t,isHidden:n}=l;var a=r.props.treeConfig,o=r.reactData.updateCheckboxFlag,{selectCheckboxMaps:s,treeIndeterminateRowMaps:d}=r.internalData,i=r.getComputeMaps().computeCheckboxOpts,{labelField:i,checkMethod:c,visibleMethod:u}=i.value,C=t.slots,v=C?C.default:null,C=C?C.checkbox:null;let p=!1,g=!1,h=!u||u({row:e}),_=!!c;var b,u={},o=(n||(b=(0,_util.getRowid)(r,e),g=!!o&&!!s[b],u.onClick=e=>{!_&&h&&r.triggerCheckRowEvent(e,l,!g)},c&&(_=!c({row:e})),a&&(p=!!d[b])),Object.assign(Object.assign({},l),{checked:g,disabled:_,visible:h,indeterminate:p}));return C?renderCellBaseVNs(l,r.callSlot(C,o)):(s=[],h&&s.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",p?getIcon().TABLE_CHECKBOX_INDETERMINATE:g?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),(v||i)&&s.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},v?r.callSlot(v,o):_xeUtils.default.get(e,i))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":g,"is--disabled":_,"is--indeterminate":p,"is--hidden":!h}]},u),s)]))},renderTreeSelectionCell(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCell(e))},renderCheckboxCellByProp(l){let{$table:r,row:e,column:t,isHidden:n}=l;var a=r.props.treeConfig,o=r.reactData.updateCheckboxFlag,s=r.internalData.treeIndeterminateRowMaps,d=r.getComputeMaps().computeCheckboxOpts,d=d.value,{labelField:i,checkField:c,checkMethod:u,visibleMethod:C}=d,d=d.indeterminateField||d.halfField,v=t.slots,p=v?v.default:null,v=v?v.checkbox:null;let g=!1,h=!1,_=!C||C({row:e}),b=!!u;var E,C={},o=(n||(E=(0,_util.getRowid)(r,e),h=!!o&&_xeUtils.default.get(e,c),C.onClick=e=>{!b&&_&&r.triggerCheckRowEvent(e,l,!h)},u&&(b=!u({row:e})),a&&(g=!!s[E])),Object.assign(Object.assign({},l),{checked:h,disabled:b,visible:_,indeterminate:g}));return v?renderCellBaseVNs(l,r.callSlot(v,o)):(c=[],_&&(c.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",g?getIcon().TABLE_CHECKBOX_INDETERMINATE:h?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),p||i)&&c.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},p?r.callSlot(p,o):_xeUtils.default.get(e,i))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":h,"is--disabled":b,"is--indeterminate":d&&!h?e[d]:g,"is--hidden":!_}]},C),c)]))},renderTreeSelectionCellByProp(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCellByProp(e))},renderExpandCell(l){let{$table:r,isHidden:e,row:t,column:n}=l;var{rowExpandedMaps:a,rowExpandLazyLoadedMaps:o}=r.internalData,s=r.getComputeMaps().computeExpandOpts,{lazy:s,labelField:d,iconLoaded:i,showIcon:c,iconOpen:u,iconClose:C,visibleMethod:v}=s.value,p=n.slots,g=p?p.default:null,p=p?p.icon:null;let h=!1,_=!1;return p?renderCellBaseVNs(l,r.callSlot(p,l)):(e||(p=(0,_util.getRowid)(r,t),h=!!a[p],s&&(_=!!o[p])),renderCellBaseVNs(l,[!c||v&&!v(l)?renderEmptyElement(r):(0,_vue.h)("span",{class:["vxe-table--expanded",{"is--active":h}],onMousedown(e){e.stopPropagation()},onClick(e){r.triggerRowExpandEvent(e,l)}},[(0,_vue.h)("i",{class:["vxe-table--expand-btn",_?i||getIcon().TABLE_EXPAND_LOADED:h?u||getIcon().TABLE_EXPAND_OPEN:C||getIcon().TABLE_EXPAND_CLOSE]})]),g||d?(0,_vue.h)("span",{class:"vxe-table--expand-label"},g?r.callSlot(g,l):_xeUtils.default.get(t,d)):renderEmptyElement(r)]))},renderExpandData(e){var{$table:l,column:r}=e,{slots:r,contentRender:t}=r,r=r?r.content:null;if(r)return l.callSlot(r,e);if(t){l=renderer.get(t.name);if(l){r=l.renderTableExpand||l.renderExpand;if(r)return(0,_vn.getSlotVNs)(r(t,e))}}return[]},renderHTMLCell(e){var{$table:l,column:r}=e,r=r.slots,r=r?r.default:null;return renderCellBaseVNs(e,r?l.callSlot(r,e):[(0,_vue.h)("span",{class:"vxe-cell--html",innerHTML:getDefaultCellLabel(e)})])},renderTreeHTMLCell(e){return Cell.renderTreeIcon(e,Cell.renderHTMLCell(e))},renderSortAndFilterHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e).concat(Cell.renderFilterIcon(e))))},renderSortHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e)))},renderSortIcon(e){let{$table:l,column:r}=e;var t=l.getComputeMaps().computeSortOpts,{showIcon:t,allowBtn:n,ascTitle:a,descTitle:o,iconLayout:s,iconAsc:d,iconDesc:i,iconVisibleMethod:c}=t.value,u=r.order;return!t||c&&!c(e)?[]:[(0,_vue.h)("span",{class:["vxe-cell--sort",`vxe-cell--sort-${s}-layout`]},[(0,_vue.h)("i",{class:["vxe-sort--asc-btn",d||getIcon().TABLE_SORT_ASC,{"sort--active":"asc"===u}],title:_xeUtils.default.eqNull(a)?getI18n("vxe.table.sortAsc"):""+(a||""),onClick:n?e=>{e.stopPropagation(),l.triggerSortEvent(e,r,"asc")}:void 0}),(0,_vue.h)("i",{class:["vxe-sort--desc-btn",i||getIcon().TABLE_SORT_DESC,{"sort--active":"desc"===u}],title:_xeUtils.default.eqNull(o)?getI18n("vxe.table.sortDesc"):""+(o||""),onClick:n?e=>{e.stopPropagation(),l.triggerSortEvent(e,r,"desc")}:void 0})])]},renderFilterHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderFilterIcon(e)))},renderFilterIcon(l){let{$table:r,column:e,hasFilter:t}=l;var n=r.reactData.filterStore,a=r.getComputeMaps().computeFilterOpts,{showIcon:a,iconNone:o,iconMatch:s,iconVisibleMethod:d}=a.value;return!a||d&&!d(l)?[]:[(0,_vue.h)("span",{class:["vxe-cell--filter",{"is--active":n.visible&&n.column===e}],onClick(e){r.triggerFilterEvent&&r.triggerFilterEvent(e,l.column,l)}},[(0,_vue.h)("i",{class:["vxe-filter--btn",t?s||getIcon().TABLE_FILTER_MATCH:o||getIcon().TABLE_FILTER_NONE],title:getI18n("vxe.table.filter")})])]},renderEditHeader(e){var{$table:l,column:r}=e,t=l.props,n=l.getComputeMaps().computeEditOpts,{editConfig:t,editRules:a}=t,n=n.value,{sortable:o,filters:s,editRender:d}=r;let i=!1,c=(a&&(a=_xeUtils.default.get(a,r.field))&&(i=a.some(e=>e.required)),[]);return renderHeaderCellBaseVNs(e,(c=(0,_utils.isEnableConf)(t)?[i&&n.showAsterisk?(0,_vue.h)("i",{class:"vxe-cell--required-icon"}):renderEmptyElement(l),(0,_utils.isEnableConf)(d)&&n.showIcon?(0,_vue.h)("i",{class:["vxe-cell--edit-icon",n.icon||getIcon().TABLE_EDIT]}):renderEmptyElement(l)]:c).concat(Cell.renderHeaderTitle(e)).concat(o?Cell.renderSortIcon(e):[]).concat(s?Cell.renderFilterIcon(e):[]))},renderRowEdit(e){var{$table:l,column:r}=e,l=l.reactData.editStore,l=l.actived,r=r.editRender;return Cell.runRenderer(e,(0,_utils.isEnableConf)(r)&&l&&l.row===e.row)},renderTreeRowEdit(e){return Cell.renderTreeIcon(e,Cell.renderRowEdit(e))},renderCellEdit(e){var{$table:l,column:r}=e,l=l.reactData.editStore,l=l.actived,r=r.editRender;return Cell.runRenderer(e,(0,_utils.isEnableConf)(r)&&l&&l.row===e.row&&l.column===e.column)},renderTreeCellEdit(e){return Cell.renderTreeIcon(e,Cell.renderCellEdit(e))},runRenderer(e,l){var{$table:r,column:t}=e,{slots:t,editRender:n,formatter:a}=t,o=t?t.default:null,t=t?t.edit:null,s=renderer.get(n.name),s=s?s.renderTableEdit||s.renderEdit:null,d=Object.assign({$type:"",isEdit:l},e);return l?(d.$type="edit",t?r.callSlot(t,d):s?(0,_vn.getSlotVNs)(s(n,d)):[]):o?renderCellBaseVNs(e,r.callSlot(o,d)):a?renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},getDefaultCellLabel(d))]):Cell.renderDefaultCell(d)}};var _default=exports.default=Cell;
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.13.0-beta.2";
16
+ const version = exports.version = "4.13.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.13.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,minHeight:144,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0,isSyncAutoHeight:!0,isSyncAutoWidth:!0,minHeight:18},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:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{maxFixedSize:4},cellConfig:{padding:!0},headerCellConfig:{height:"unset"},footerCellConfig:{height:"unset"},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showFooter:!0,placement:"top-right",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:{showIcon:!0},treeConfig:{rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0},expandConfig:{showIcon:!0,mode:"fixed"},editConfig:{showIcon:!0,showAsterisk:!0,autoFocus:!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:{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:{enabled:!0,gt:28,preSize:1,oSize:0},virtualYConfig:{enabled:!0,gt:100,preSize:1,oSize:0},scrollbarConfig:{}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showResponseMsg:!0,showActiveMsg:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{}}),"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_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_CUSTOM_SORT:iconPrefix+"drag-handle",TABLE_MENU_OPTIONS:iconPrefix+"arrow-right",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_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",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+"custom-column",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,r){return _core.VxeUI.modal.alert(e,o,r)},confirm(e,o,r){return _core.VxeUI.modal.confirm(e,o,r)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,r){return _core.VxeUI.modal.notification(e,o,r)}});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.13.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,minHeight:144,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0,isSyncAutoHeight:!0,isSyncAutoWidth:!0,minHeight:18},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:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{maxFixedSize:4},cellConfig:{padding:!0},headerCellConfig:{height:"unset"},footerCellConfig:{height:"unset"},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showFooter:!0,placement:"top-right",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:{showIcon:!0},treeConfig:{rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0},expandConfig:{showIcon:!0,mode:"fixed"},editConfig:{showIcon:!0,showAsterisk:!0,autoFocus:!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:{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:{enabled:!0,gt:28,preSize:1,oSize:0},virtualYConfig:{enabled:!0,gt:100,preSize:1,oSize:0},scrollbarConfig:{}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showResponseMsg:!0,showActiveMsg:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{}}),"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_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_CUSTOM_SORT:iconPrefix+"drag-handle",TABLE_MENU_OPTIONS:iconPrefix+"arrow-right",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_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",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+"custom-column",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,r){return _core.VxeUI.modal.alert(e,o,r)},confirm(e,o,r){return _core.VxeUI.modal.confirm(e,o,r)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,r){return _core.VxeUI.modal.notification(e,o,r)}});var _default=exports.default=_core.VxeUI;
package/lib/ui/src/log.js CHANGED
@@ -8,6 +8,6 @@ var _core = require("@vxe-ui/core");
8
8
  const {
9
9
  log
10
10
  } = _core.VxeUI;
11
- const version = `table v${"4.13.0-beta.2"}`;
11
+ const version = `table v${"4.13.0-beta.3"}`;
12
12
  const warnLog = exports.warnLog = log.create('warn', version);
13
13
  const errLog = exports.errLog = log.create('error', version);
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,version="table v4.13.0-beta.2",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,version="table v4.13.0-beta.3",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "4.13.0-beta.2",
3
+ "version": "4.13.0-beta.3",
4
4
  "description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、拖拽排序,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -28,7 +28,7 @@
28
28
  "style": "lib/style.css",
29
29
  "typings": "types/index.d.ts",
30
30
  "dependencies": {
31
- "vxe-pc-ui": "^4.5.12"
31
+ "vxe-pc-ui": "^4.5.14"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/resize-observer-browser": "^0.1.11",
@@ -2,7 +2,7 @@ import { nextTick } from 'vue'
2
2
  import XEUtils from 'xe-utils'
3
3
  import { VxeUI } from '../../../ui'
4
4
  import { toFilters, handleFieldOrColumn, getRefElem } from '../../src/util'
5
- import { getDomNode, triggerEvent } from '../../../ui/src/dom'
5
+ import { toCssUnit, triggerEvent } from '../../../ui/src/dom'
6
6
  import { isEnableConf } from '../../../ui/src/utils'
7
7
 
8
8
  import type { TableFilterMethods, TableFilterPrivateMethods } from '../../../../types'
@@ -75,11 +75,9 @@ hooks.add('tableFilterModule', {
75
75
  if (filterStore.column === column && filterStore.visible) {
76
76
  filterStore.visible = false
77
77
  } else {
78
- const { clientY, pageX } = evnt
79
78
  const el = refElem.value
80
79
  const tableRect = el.getBoundingClientRect()
81
- const targetElem = evnt.target as HTMLDivElement
82
- const { visibleWidth } = getDomNode()
80
+ const btnElem = evnt.currentTarget as HTMLDivElement
83
81
  const { filters, filterMultiple, filterRender } = column
84
82
  const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null
85
83
  const frMethod = column.filterRecoverMethod || (compConf ? (compConf.tableFilterRecoverMethod || compConf.filterRecoverMethod) : null)
@@ -113,41 +111,19 @@ hooks.add('tableFilterModule', {
113
111
  if (!filterWrapperElem) {
114
112
  return
115
113
  }
114
+ const btnRect = btnElem.getBoundingClientRect()
116
115
  const filterWidth = filterWrapperElem.offsetWidth
117
116
  const filterHeadElem = filterWrapperElem.querySelector<HTMLDivElement>('.vxe-table--filter-header')
118
117
  const filterFootElem = filterWrapperElem.querySelector<HTMLDivElement>('.vxe-table--filter-footer')
119
118
  const centerWidth = filterWidth / 2
120
- const minMargin = 10
121
- const maxLeft = el.clientWidth - filterWidth - minMargin
122
- let left, right
123
- const thEl = targetElem.offsetParent as HTMLTableCellElement
124
- const trEl = thEl.offsetParent as HTMLTableCellElement
125
- const style: any = {
126
- top: `${targetElem.offsetTop + thEl.offsetTop + targetElem.offsetHeight}px`
127
- }
119
+ const left = btnRect.left - tableRect.left - centerWidth
120
+ const top = btnRect.top - tableRect.top + btnElem.clientHeight
128
121
  // 判断面板不能大于表格高度
129
- const maxHeight = Math.max(40, el.clientHeight - (clientY - tableRect.y) - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14)
130
- if (column.fixed === 'left') {
131
- left = targetElem.offsetLeft + thEl.offsetLeft - centerWidth
132
- } else if (column.fixed === 'right') {
133
- right = (thEl.offsetWidth - targetElem.offsetLeft) + (trEl.offsetWidth - trEl.offsetLeft) - column.renderWidth - centerWidth
134
- } else {
135
- left = targetElem.offsetLeft + thEl.offsetLeft - centerWidth - headerScrollElem.scrollLeft
136
- }
137
- if (left) {
138
- const overflowWidth = (pageX + filterWidth - centerWidth + minMargin) - visibleWidth
139
- if (overflowWidth > 0) {
140
- left -= overflowWidth
141
- }
142
- style.left = `${Math.min(maxLeft, Math.max(minMargin, left))}px`
143
- } else if (right) {
144
- const overflowWidth = (pageX + filterWidth - centerWidth + minMargin) - visibleWidth
145
- if (overflowWidth > 0) {
146
- right += overflowWidth
147
- }
148
- style.right = `${Math.max(minMargin, right)}px`
122
+ const maxHeight = Math.max(40, el.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14)
123
+ filterStore.style = {
124
+ top: toCssUnit(top),
125
+ left: toCssUnit(left)
149
126
  }
150
- filterStore.style = style
151
127
  filterStore.maxHeight = maxHeight
152
128
  })
153
129
  }
@@ -257,7 +233,7 @@ hooks.add('tableFilterModule', {
257
233
  return $xeTable.scrollToColumn(column).then(() => {
258
234
  const headerWrapperElem = getRefElem(elemStore[`${fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper'])
259
235
  if (headerWrapperElem) {
260
- const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-filter--btn`) as HTMLElement
236
+ const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-cell--filter`) as HTMLElement
261
237
  triggerEvent(filterBtnElem, 'click')
262
238
  }
263
239
  })
@@ -963,16 +963,16 @@ export const Cell = {
963
963
  h('span', {
964
964
  class: ['vxe-cell--filter', {
965
965
  'is--active': filterStore.visible && filterStore.column === column
966
- }]
966
+ }],
967
+ onClick (evnt) {
968
+ if ($table.triggerFilterEvent) {
969
+ $table.triggerFilterEvent(evnt, params.column, params)
970
+ }
971
+ }
967
972
  }, [
968
973
  h('i', {
969
974
  class: ['vxe-filter--btn', hasFilter ? (iconMatch || getIcon().TABLE_FILTER_MATCH) : (iconNone || getIcon().TABLE_FILTER_NONE)],
970
- title: getI18n('vxe.table.filter'),
971
- onClick (evnt) {
972
- if ($table.triggerFilterEvent) {
973
- $table.triggerFilterEvent(evnt, params.column, params)
974
- }
975
- }
975
+ title: getI18n('vxe.table.filter')
976
976
  })
977
977
  ])
978
978
  ]