vxe-table-select-area
Version:
一个基于 vxe-table 的可区域选中复制、粘贴的组件
1 lines • 16.6 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Cell=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_vXETable=_interopRequireDefault(require("../../v-x-e-table")),_dom=_interopRequireDefault(require("../../tools/dom")),_utils=_interopRequireWildcard(require("../../tools/utils")),_util=require("./util"),_vn=require("../../tools/vn");function _getRequireWildcardCache(e){var t,r;return"function"!=typeof WeakMap?null:(t=new WeakMap,r=new WeakMap,(_getRequireWildcardCache=function(e){return e?r:t})(e))}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==_typeof(e)&&"function"!=typeof e)return{default:e};t=_getRequireWildcardCache(t);if(t&&t.has(e))return t.get(e);var r,l,n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&((l=o?Object.getOwnPropertyDescriptor(e,r):null)&&(l.get||l.set)?Object.defineProperty(n,r,l):n[r]=e[r]);return n.default=e,t&&t.set(e,n),n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ownKeys(t,e){var r,l=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),l.push.apply(l,r)),l}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(r),!0).forEach(function(e){_defineProperty(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function _defineProperty(e,t,r){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"===_typeof(e)?e:String(e)}function _toPrimitive(e,t){if("object"!==_typeof(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);r=r.call(e,t||"default");if("object"!==_typeof(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}function renderHelpIcon(e,t){var r=t.$table,l=t.column,l=l.titlePrefix||l.titleHelp;return l?[e("i",{class:["vxe-cell-help-icon",l.icon||_conf.default.icon.TABLE_HELP],on:{mouseenter:function(e){r.triggerHeaderHelpEvent(e,t)},mouseleave:function(e){r.handleTargetLeaveEvent(e)}}})]:[]}function renderTitleContent(e,t,r){var l=t.$table,n=t.column,o=n.type,i=n.showHeaderOverflow,a=l.showHeaderOverflow,d=l.tooltipOpts,c=d.showAll||d.enabled,d=_xeUtils.default.isUndefined(i)||_xeUtils.default.isNull(i)?a:i,s="title"===d,u=!0===d||"tooltip"===d,a={};return(s||u||c)&&(a.mouseenter=function(e){l._isResize||(s?_dom.default.updateCellTitle(e.currentTarget,n):(u||c)&&l.triggerHeaderTooltipEvent(e,t))}),(u||c)&&(a.mouseleave=function(e){l._isResize||(u||c)&&l.handleTargetLeaveEvent(e)}),["html"===o&&_xeUtils.default.isString(r)?e("span",{class:"vxe-cell--title",domProps:{innerHTML:r},on:a}):e("span",{class:"vxe-cell--title",on:a},(0,_vn.getSlotVNs)(r))]}function getFooterContent(e,t){var r=t.$table,l=t.column,n=t._columnIndex,o=t.items,i=l.slots,a=l.editRender,l=l.cellRender,a=a||l;if(i&&i.footer)return r.callSlot(i.footer,t,e);if(a){l=_vXETable.default.renderer.get(a.name);if(l&&l.renderFooter)return(0,_vn.getSlotVNs)(l.renderFooter.call(r,e,a,t))}return[_utils.default.formatText(o[n],1)]}function getDefaultCellLabel(e){var t=e.$table,r=e.row,e=e.column;return _utils.default.formatText(t.getCellLabel(r,e),1)}var Cell={createColumn:function(e,t){var r=t.type,l=t.sortable,n=t.remoteSort,o=t.filters,i=t.editRender,a=t.treeNode,d=e.editConfig,c=e.editOpts,s=e.checkboxOpts,u={renderHeader:this.renderDefaultHeader,renderCell:a?this.renderTreeCell:this.renderDefaultCell,renderFooter:this.renderDefaultFooter};switch(r){case"seq":u.renderHeader=this.renderSeqHeader,u.renderCell=a?this.renderTreeIndexCell:this.renderSeqCell;break;case"radio":u.renderHeader=this.renderRadioHeader,u.renderCell=a?this.renderTreeRadioCell:this.renderRadioCell;break;case"checkbox":u.renderHeader=this.renderCheckboxHeader,u.renderCell=s.checkField?a?this.renderTreeSelectionCellByProp:this.renderCheckboxCellByProp:a?this.renderTreeSelectionCell:this.renderCheckboxCell;break;case"expand":u.renderCell=this.renderExpandCell,u.renderData=this.renderExpandData;break;case"html":u.renderCell=a?this.renderTreeHTMLCell:this.renderHTMLCell,o&&(l||n)?u.renderHeader=this.renderSortAndFilterHeader:l||n?u.renderHeader=this.renderSortHeader:o&&(u.renderHeader=this.renderFilterHeader);break;default:d&&i?(u.renderHeader=this.renderEditHeader,u.renderCell="cell"===c.mode?a?this.renderTreeCellEdit:this.renderCellEdit:a?this.renderTreeRowEdit:this.renderRowEdit):o&&(l||n)?u.renderHeader=this.renderSortAndFilterHeader:l||n?u.renderHeader=this.renderSortHeader:o&&(u.renderHeader=this.renderFilterHeader)}return(0,_util.getColumnConfig)(e,t,u)},renderHeaderTitle:function(e,t){var r=t.$table,l=t.column,n=l.slots,o=l.editRender,i=l.cellRender,o=o||i;if(n&&n.header)return renderTitleContent(e,t,r.callSlot(n.header,t,e));if(o){i=_vXETable.default.renderer.get(o.name);if(i&&i.renderHeader)return(0,_vn.getSlotVNs)(renderTitleContent(e,t,i.renderHeader.call(r,e,o,t)))}return renderTitleContent(e,t,_utils.default.formatText(l.getTitle(),1))},renderDefaultHeader:function(e,t){return renderHelpIcon(e,t).concat(Cell.renderHeaderTitle(e,t))},renderDefaultCell:function(e,t){var r=t.$table,l=t.row,n=t.column,o=n.slots,i=n.editRender,a=n.cellRender,a=i||a;if(o&&o.default)return r.callSlot(o.default,t,e);if(a){var o=i?"renderCell":"renderDefault",d=_vXETable.default.renderer.get(a.name);if(d&&d[o])return(0,_vn.getSlotVNs)(d[o].call(r,e,a,Object.assign({$type:i?"edit":"cell"},t)))}d=r.getCellLabel(l,n),o=i?i.placeholder:"";return[e("span",{class:"vxe-cell--label"},i&&(0,_utils.eqEmptyValue)(d)?[e("span",{class:"vxe-cell--placeholder"},_utils.default.formatText((0,_utils.getFuncText)(o),1))]:_utils.default.formatText(d,1))]},renderTreeCell:function(e,t){return Cell.renderTreeIcon(e,t,Cell.renderDefaultCell.call(this,e,t))},renderDefaultFooter:function(e,t){return[e("span",{class:"vxe-cell--item"},getFooterContent(e,t))]},renderTreeIcon:function(e,t,r){var l=t.$table,n=t.isHidden,o=l.treeOpts,i=l.treeExpandeds,a=l.treeLazyLoadeds,d=t.row,c=t.column,s=t.level,c=c.slots,u=o.children,f=o.hasChild,C=o.indent,b=o.lazy,p=o.trigger,_=o.iconLoaded,v=o.showIcon,h=o.iconOpen,o=o.iconClose,u=d[u],E=!1,x=!1,T=!1,m={};return c&&c.icon?l.callSlot(c.icon,t,e,r):(n||(x=-1<l.findRowIndexOf(i,d),b&&(T=-1<l.findRowIndexOf(a,d),E=d[f])),p&&"default"!==p||(m.click=function(e){return l.triggerTreeExpandEvent(e,t)}),[e("div",{class:["vxe-cell--tree-node",{"is--active":x}],style:{paddingLeft:"".concat(s*C,"px")}},[v&&(u&&u.length||E)?[e("div",{class:"vxe-tree--btn-wrapper",on:m},[e("i",{class:["vxe-tree--node-btn",T?_||_conf.default.icon.TABLE_TREE_LOADED:x?h||_conf.default.icon.TABLE_TREE_OPEN:o||_conf.default.icon.TABLE_TREE_CLOSE]})])]:null,e("div",{class:"vxe-tree-cell"},r)])])},renderSeqHeader:function(e,t){var r=t.$table,l=t.column,n=l.slots;return renderTitleContent(e,t,n&&n.header?r.callSlot(n.header,t,e):_utils.default.formatText(l.getTitle(),1))},renderSeqCell:function(e,t){var r=t.$table,l=t.column,n=r.treeConfig,o=r.seqOpts,l=l.slots;return l&&l.default?r.callSlot(l.default,t,e):(r=t.seq,l=o.seqMethod,[_utils.default.formatText(l?l(t):n?r:(o.startIndex||0)+r,1)])},renderTreeIndexCell:function(e,t){return Cell.renderTreeIcon(e,t,Cell.renderSeqCell(e,t))},renderRadioHeader:function(e,t){var r=t.$table,l=t.column,n=l.slots,o=n?n.header:null,n=n?n.title:null;return renderTitleContent(e,t,o?r.callSlot(o,t,e):[e("span",{class:"vxe-radio--label"},n?r.callSlot(n,t,e):_utils.default.formatText(l.getTitle(),1))])},renderRadioCell:function(e,t){var r,l=t.$table,n=t.column,o=t.isHidden,i=l.radioOpts,a=l.selectRow,n=n.slots,d=i.labelField,c=i.checkMethod,i=i.visibleMethod,s=t.row,u=n?n.default:null,n=n?n.radio:null,a=s===a,f=!i||i({row:s}),C=!!c,i=(o||(r={click:function(e){!C&&f&&l.triggerRadioRowEvent(e,t)}},c&&(C=!c({row:s}))),_objectSpread(_objectSpread({},t),{},{checked:a,disabled:C,visible:f}));return n?l.callSlot(n,i,e):(o=[],f&&o.push(e("span",{class:["vxe-radio--icon",a?_conf.default.icon.TABLE_RADIO_CHECKED:_conf.default.icon.TABLE_RADIO_UNCHECKED]})),(u||d)&&o.push(e("span",{class:"vxe-radio--label"},u?l.callSlot(u,i,e):_xeUtils.default.get(s,d))),[e("span",{class:["vxe-cell--radio",{"is--checked":a,"is--disabled":C}],on:r},o)])},renderTreeRadioCell:function(e,t){return Cell.renderTreeIcon(e,t,Cell.renderRadioCell(e,t))},renderCheckboxHeader:function(e,t){var r,l=t.$table,n=t.column,o=t.isHidden,i=l.isAllSelected,a=l.isIndeterminate,d=l.isAllCheckboxDisabled,c=n.slots,s=c?c.header:null,c=c?c.title:null,u=l.checkboxOpts,n=n.getTitle(),o=(o||(r={click:function(e){d||l.triggerCheckAllEvent(e,!i)}}),_objectSpread(_objectSpread({},t),{},{checked:i,disabled:d,indeterminate:a}));return s?renderTitleContent(e,o,l.callSlot(s,o,e)):(u.checkStrictly?u.showHeader:!1!==u.showHeader)?renderTitleContent(e,o,[e("span",{class:["vxe-cell--checkbox",{"is--checked":i,"is--disabled":d,"is--indeterminate":a}],attrs:{title:_conf.default.i18n("vxe.table.allTitle")},on:r},[e("span",{class:["vxe-checkbox--icon",a?_conf.default.icon.TABLE_CHECKBOX_INDETERMINATE:i?_conf.default.icon.TABLE_CHECKBOX_CHECKED:_conf.default.icon.TABLE_CHECKBOX_UNCHECKED]})].concat(c||n?[e("span",{class:"vxe-checkbox--label"},c?l.callSlot(c,o,e):n)]:[]))]):renderTitleContent(e,o,[e("span",{class:"vxe-checkbox--label"},c?l.callSlot(c,o,e):n)])},renderCheckboxCell:function(e,t){var r,l=t.$table,n=t.row,o=t.column,i=t.isHidden,a=l.treeConfig,d=l.treeIndeterminates,c=l.selection,s=l.checkboxOpts,u=s.labelField,f=s.checkMethod,s=s.visibleMethod,o=o.slots,C=o?o.default:null,o=o?o.checkbox:null,b=!1,p=!1,_=!s||s({row:n}),v=!!f,s=(i||(p=-1<l.findRowIndexOf(c,n),r={click:function(e){!v&&_&&l.triggerCheckRowEvent(e,t,!p)}},f&&(v=!f({row:n})),a&&(b=-1<l.findRowIndexOf(d,n))),_objectSpread(_objectSpread({},t),{},{checked:p,disabled:v,visible:_,indeterminate:b}));return o?l.callSlot(o,s,e):(i=[],_&&i.push(e("span",{class:["vxe-checkbox--icon",b?_conf.default.icon.TABLE_CHECKBOX_INDETERMINATE:p?_conf.default.icon.TABLE_CHECKBOX_CHECKED:_conf.default.icon.TABLE_CHECKBOX_UNCHECKED]})),(C||u)&&i.push(e("span",{class:"vxe-checkbox--label"},C?l.callSlot(C,s,e):_xeUtils.default.get(n,u))),[e("span",{class:["vxe-cell--checkbox",{"is--checked":p,"is--disabled":v,"is--indeterminate":b}],on:r},i)])},renderTreeSelectionCell:function(e,t){return Cell.renderTreeIcon(e,t,Cell.renderCheckboxCell(e,t))},renderCheckboxCellByProp:function(e,t){var r,l=t.$table,n=t.row,o=t.column,i=t.isHidden,a=l.treeConfig,d=l.treeIndeterminates,c=l.checkboxOpts,s=c.labelField,u=c.checkField,f=c.halfField,C=c.checkMethod,c=c.visibleMethod,o=o.slots,b=o?o.default:null,o=o?o.checkbox:null,p=!1,_=!1,v=!c||c({row:n}),h=!!C,c=(i||(_=_xeUtils.default.get(n,u),r={click:function(e){!h&&v&&l.triggerCheckRowEvent(e,t,!_)}},C&&(h=!C({row:n})),a&&(p=-1<l.findRowIndexOf(d,n))),_objectSpread(_objectSpread({},t),{},{checked:_,disabled:h,visible:v,indeterminate:p}));return o?l.callSlot(o,c,e):(i=[],v&&i.push(e("span",{class:["vxe-checkbox--icon",p?_conf.default.icon.TABLE_CHECKBOX_INDETERMINATE:_?_conf.default.icon.TABLE_CHECKBOX_CHECKED:_conf.default.icon.TABLE_CHECKBOX_UNCHECKED]})),(b||s)&&i.push(e("span",{class:"vxe-checkbox--label"},b?l.callSlot(b,c,e):_xeUtils.default.get(n,s))),[e("span",{class:["vxe-cell--checkbox",{"is--checked":_,"is--disabled":h,"is--indeterminate":f&&!_?n[f]:p}],on:r},i)])},renderTreeSelectionCellByProp:function(e,t){return Cell.renderTreeIcon(e,t,Cell.renderCheckboxCellByProp(e,t))},renderExpandCell:function(e,t){var r=t.$table,l=t.isHidden,n=t.row,o=t.column,i=r.expandOpts,a=r.rowExpandeds,d=r.expandLazyLoadeds,c=i.lazy,s=i.labelField,u=i.iconLoaded,f=i.showIcon,C=i.iconOpen,b=i.iconClose,i=i.visibleMethod,o=o.slots,p=o?o.default:null,_=!1,v=!1;return o&&o.icon?r.callSlot(o.icon,t,e):(l||(_=-1<r.findRowIndexOf(a,t.row),c&&(v=-1<r.findRowIndexOf(d,n))),[!f||i&&!i(t)?null:e("span",{class:["vxe-table--expanded",{"is--active":_}],on:{click:function(e){r.triggerRowExpandEvent(e,t)}}},[e("i",{class:["vxe-table--expand-btn",v?u||_conf.default.icon.TABLE_EXPAND_LOADED:_?C||_conf.default.icon.TABLE_EXPAND_OPEN:b||_conf.default.icon.TABLE_EXPAND_CLOSE]})]),p||s?e("span",{class:"vxe-table--expand-label"},p?r.callSlot(p,t,e):_xeUtils.default.get(n,s)):null])},renderExpandData:function(e,t){var r=t.$table,l=t.column,n=l.slots,l=l.contentRender;if(n&&n.content)return r.callSlot(n.content,t,e);if(l){n=_vXETable.default.renderer.get(l.name);if(n&&n.renderExpand)return(0,_vn.getSlotVNs)(n.renderExpand.call(r,e,l,t))}return[]},renderHTMLCell:function(e,t){var r=t.$table,l=t.column.slots;return l&&l.default?r.callSlot(l.default,t,e):[e("span",{class:"vxe-cell--html",domProps:{innerHTML:getDefaultCellLabel(t)}})]},renderTreeHTMLCell:function(e,t){return Cell.renderTreeIcon(e,t,Cell.renderHTMLCell(e,t))},renderSortAndFilterHeader:function(e,t){return Cell.renderDefaultHeader(e,t).concat(Cell.renderSortIcon(e,t)).concat(Cell.renderFilterIcon(e,t))},renderSortHeader:function(e,t){return Cell.renderDefaultHeader(e,t).concat(Cell.renderSortIcon(e,t))},renderSortIcon:function(e,t){var r=t.$table,l=t.column,t=r.sortOpts,n=t.showIcon,o=t.iconAsc,t=t.iconDesc;return n?[e("span",{class:"vxe-cell--sort"},[e("i",{class:["vxe-sort--asc-btn",o||_conf.default.icon.TABLE_SORT_ASC,{"sort--active":"asc"===l.order}],attrs:{title:_conf.default.i18n("vxe.table.sortAsc")},on:{click:function(e){r.triggerSortEvent(e,l,"asc")}}}),e("i",{class:["vxe-sort--desc-btn",t||_conf.default.icon.TABLE_SORT_DESC,{"sort--active":"desc"===l.order}],attrs:{title:_conf.default.i18n("vxe.table.sortDesc")},on:{click:function(e){r.triggerSortEvent(e,l,"desc")}}})])]:[]},renderFilterHeader:function(e,t){return Cell.renderDefaultHeader(e,t).concat(Cell.renderFilterIcon(e,t))},renderFilterIcon:function(e,t){var r=t.$table,l=t.column,n=t.hasFilter,o=r.filterStore,i=r.filterOpts,a=i.showIcon,d=i.iconNone,i=i.iconMatch;return a?[e("span",{class:["vxe-cell--filter",{"is--active":o.visible&&o.column===l}]},[e("i",{class:["vxe-filter--btn",n?i||_conf.default.icon.TABLE_FILTER_MATCH:d||_conf.default.icon.TABLE_FILTER_NONE],attrs:{title:_conf.default.i18n("vxe.table.filter")},on:{click:function(e){r.triggerFilterEvent(e,t.column,t)}}})])]:[]},renderEditHeader:function(e,t){var r=t.$table,l=t.column,n=r.editConfig,o=r.editRules,r=r.editOpts,i=l.sortable,a=l.remoteSort,d=l.filters,c=l.editRender,s=!1;return o&&(o=_xeUtils.default.get(o,l.field))&&(s=o.some(function(e){return e.required})),((0,_utils.isEnableConf)(n)?[s&&r.showAsterisk?e("i",{class:"vxe-cell--required-icon"}):null,(0,_utils.isEnableConf)(c)&&r.showIcon?e("i",{class:["vxe-cell--edit-icon",r.icon||_conf.default.icon.TABLE_EDIT]}):null]:[]).concat(Cell.renderDefaultHeader(e,t)).concat(i||a?Cell.renderSortIcon(e,t):[]).concat(d?Cell.renderFilterIcon(e,t):[])},renderRowEdit:function(e,t){var r=t.$table,l=t.column.editRender,r=r.editStore.actived;return Cell.runRenderer(e,t,this,(0,_utils.isEnableConf)(l)&&r&&r.row===t.row)},renderTreeRowEdit:function(e,t){return Cell.renderTreeIcon(e,t,Cell.renderRowEdit(e,t))},renderCellEdit:function(e,t){var r=t.$table,l=t.column.editRender,r=r.editStore.actived;return Cell.runRenderer(e,t,this,(0,_utils.isEnableConf)(l)&&r&&r.row===t.row&&r.column===t.column)},renderTreeCellEdit:function(e,t){return Cell.renderTreeIcon(e,t,Cell.renderCellEdit(e,t))},runRenderer:function(e,t,r,l){var n=t.$table,o=t.column,i=o.slots,a=o.editRender,o=o.formatter,d=_vXETable.default.renderer.get(a.name);return l?i&&i.edit?n.callSlot(i.edit,t,e):d&&d.renderEdit?(0,_vn.getSlotVNs)(d.renderEdit.call(n,e,a,Object.assign({$type:"edit"},t))):[]:i&&i.default?n.callSlot(i.default,t,e):o?[e("span",{class:"vxe-cell--label"},[getDefaultCellLabel(t)])]:Cell.renderDefaultCell.call(r,e,t)}},_default=exports.Cell=Cell;exports.default=_default;