renderer.min.js 12 KB

1
  1. "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.renderer=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_tools=require("../../tools");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var defaultCompProps={transfer:!0},componentDefaultModelProp="value";function isEmptyValue(e){return null==e||""===e}function getChangeEvent(e){switch(e.name){case"input":case"textarea":case"$input":case"$textarea":return"input"}return"change"}function parseDate(e,t){return e&&t.valueFormat?_xeUtils.default.toStringDate(e,t.valueFormat):e}function getFormatDate(e,t,n){var r=t.dateConfig,r=void 0===r?{}:r;return _xeUtils.default.toDateString(parseDate(e,t),r.labelFormat||n)}function getLabelFormatDate(e,t){return getFormatDate(e,t,_conf.default.i18n("vxe.input.date.labelFormat.".concat(t.type)))}function getDefaultComponentName(e){e=e.name;return"vxe-".concat(e.replace("$",""))}function handleConfirmFilter(e,t,n){e.$panel.changeOption({},t,n)}function getNativeAttrs(e){var t=e.name,e=e.attrs;return e="input"===t?Object.assign({type:"text"},e):e}function getInputImmediateModel(e){var t=e.name,n=e.immediate,e=e.props;if(n)return n;if("$input"!==t)return"input"!==t&&"textarea"!==t&&"$textarea"!==t;e=(e||{}).type;return!(!e||"text"===e||"number"===e||"integer"===e||"float"===e)}function isImmediateCell(e,t){return"cell"===t.$type||getInputImmediateModel(e)}function getCellEditProps(e,t,n,r){t=t.$table.vSize;return _xeUtils.default.assign({immediate:getInputImmediateModel(e)},t?{size:t}:{},defaultCompProps,r,e.props,_defineProperty({},componentDefaultModelProp,n))}function getFilterProps(e,t,n,r){t=t.$table.vSize;return _xeUtils.default.assign(t?{size:t}:{},defaultCompProps,r,e.props,_defineProperty({},componentDefaultModelProp,n))}function getItemProps(e,t,n,r){t=t.$form.vSize;return _xeUtils.default.assign(t?{size:t}:{},defaultCompProps,r,e.props,_defineProperty({},componentDefaultModelProp,n))}function getCellLabelVNs(e,t,n,r){t=t.placeholder;return[e("span",{class:"vxe-cell--label"},t&&isEmptyValue(r)?[e("span",{class:"vxe-cell--placeholder"},_tools.UtilTools.formatText(_tools.UtilTools.getFuncText(t),1))]:_tools.UtilTools.formatText(r,1))]}function getNativeOns(e,o){var e=e.nativeEvents,t={};return _xeUtils.default.objectEach(e,function(r,e){t[e]=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];r.apply(void 0,[o].concat(t))}}),t}function getOns(e,o,t,r){var n=e.name,a=e.events,l="input",i=getChangeEvent(e),u=i===l,d={};return _xeUtils.default.objectEach(a,function(r,e){d[e]=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];r.apply(void 0,[o].concat(t))}}),t&&(d[l]=function(e){t("$input"===n||"$textarea"===n?e.value:e),a&&a[l]&&a[l](o,e),u&&r&&r(e)}),!u&&r&&(d[i]=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];r.apply(void 0,t),a&&a[i]&&a[i].apply(a,[o].concat(t))}),d}function getEditOns(e,t){var n=t.$table,r=t.row,o=t.column,a=e.name,l=o.model,i=isImmediateCell(e,t);return getOns(e,t,function(e){i?_tools.UtilTools.setCellValue(r,o,e):(l.update=!0,l.value=e)},function(e){i||"$input"!==a&&"$textarea"!==a?n.updateStatus(t):n.updateStatus(t,e.value)})}function getFilterOns(e,t,n){return getOns(e,t,function(e){n.data=e},function(){handleConfirmFilter(t,!_xeUtils.default.eqNull(n.data),n)})}function getItemOns(e,t){var n=t.$form,r=t.data,o=t.property;return getOns(e,t,function(e){_xeUtils.default.set(r,o,e)},function(){n.updateStatus(t)})}function getNativeEditOns(t,n){var r=n.$table,o=n.row,a=n.column,l=a.model;return getOns(t,n,function(e){e=e.target.value;isImmediateCell(t,n)?_tools.UtilTools.setCellValue(o,a,e):(l.update=!0,l.value=e)},function(e){e=e.target.value;r.updateStatus(n,e)})}function getNativeFilterOns(e,t,n){return getOns(e,t,function(e){n.data=e.target.value},function(){handleConfirmFilter(t,!_xeUtils.default.eqNull(n.data),n)})}function getNativeItemOns(e,t){var n=t.$form,r=t.data,o=t.property;return getOns(e,t,function(e){e=e.target.value;_xeUtils.default.set(r,o,e)},function(){n.updateStatus(t)})}function nativeEditRender(e,t,n){var r=n.row,o=n.column,a=t.name,l=getNativeAttrs(t),o=isImmediateCell(t,n)?_tools.UtilTools.getCellValue(r,o):o.model.value;return[e(a,{class:"vxe-default-".concat(a),attrs:l,domProps:{value:o},on:getNativeEditOns(t,n)})]}function defaultEditRender(e,t,n){var r=n.row,o=n.column,o=_tools.UtilTools.getCellValue(r,o);return[e(getDefaultComponentName(t),{props:getCellEditProps(t,n,o),on:getEditOns(t,n),nativeOn:getNativeOns(t,n)})]}function defaultButtonEditRender(e,t,n){return[e("vxe-button",{props:getCellEditProps(t,n),on:getOns(t,n),nativeOn:getNativeOns(t,n)})]}function defaultButtonsEditRender(t,e,n){return e.children.map(function(e){return defaultButtonEditRender(t,e,n)[0]})}function renderNativeOptgroups(n,r,o,a){var e=r.optionGroups,t=r.optionGroupProps,t=void 0===t?{}:t,l=t.options||"options",i=t.label||"label";return e.map(function(e,t){return n("optgroup",{key:t,domProps:{label:e[i]}},a(n,e[l],r,o))})}function renderNativeOptions(n,e,t,r){var o=t.optionProps,a=void 0===o?{}:o,l=r.row,o=r.column,i=a.label||"label",u=a.value||"value",d=a.disabled||"disabled",s=isImmediateCell(t,r)?_tools.UtilTools.getCellValue(l,o):o.model.value;return e.map(function(e,t){return n("option",{key:t,attrs:{value:e[u],disabled:e[d]},domProps:{selected:e[u]==s}},e[i])})}function nativeFilterRender(n,r,o){var e=o.column,a=r.name,l=getNativeAttrs(r);return e.filters.map(function(e,t){return n(a,{key:t,class:"vxe-default-".concat(a),attrs:l,domProps:{value:e.data},on:getNativeFilterOns(r,o,e)})})}function defaultFilterRender(r,o,a){return a.column.filters.map(function(e,t){var n=e.data;return r(getDefaultComponentName(o),{key:t,props:getFilterProps(o,o,n),on:getFilterOns(o,a,e)})})}function handleFilterMethod(e){var t=e.option,n=e.row,e=e.column,t=t.data;return _xeUtils.default.get(n,e.property)==t}function nativeSelectEditRender(e,t,n){return[e("select",{class:"vxe-default-select",attrs:getNativeAttrs(t),on:getNativeEditOns(t,n)},t.optionGroups?renderNativeOptgroups(e,t,n,renderNativeOptions):renderNativeOptions(e,t.options,t,n))]}function defaultSelectEditRender(e,t,n){var r=n.row,o=n.column,a=t.options,l=t.optionProps,i=t.optionGroups,u=t.optionGroupProps,o=_tools.UtilTools.getCellValue(r,o);return[e(getDefaultComponentName(t),{props:getCellEditProps(t,n,o,{options:a,optionProps:l,optionGroups:i,optionGroupProps:u}),on:getEditOns(t,n)})]}function getSelectCellValue(e,t){var r,n=t.row,o=t.column,a=e.props,t=void 0===a?{}:a,l=e.options,i=e.optionGroups,a=e.optionProps,a=void 0===a?{}:a,e=e.optionGroupProps,u=void 0===e?{}:e,o=_xeUtils.default.get(n,o.property),d=a.label||"label",s=a.value||"value";return isEmptyValue(o)?null:_xeUtils.default.map(t.multiple?o:[o],i?function(t){for(var e=u.options||"options",n=0;n<i.length&&!(r=_xeUtils.default.find(i[n][e],function(e){return e[s]==t}));n++);return r?r[d]:t}:function(t){return(r=_xeUtils.default.find(l,function(e){return e[s]==t}))?r[d]:t}).join(", ")}function nativeItemRender(e,t,n){var r=n.data,o=n.property,a=t.name,l=getNativeAttrs(t),o=_xeUtils.default.get(r,o);return[e(a,{class:"vxe-default-".concat(a),attrs:l,domProps:!l||"input"!==a||"submit"!==l.type&&"reset"!==l.type?{value:o}:null,on:getNativeItemOns(t,n)})]}function defaultItemRender(e,t,n){var r=n.data,o=n.property,o=_xeUtils.default.get(r,o);return[e(getDefaultComponentName(t),{props:getItemProps(t,n,o),on:getItemOns(t,n),nativeOn:getNativeOns(t,n)})]}function defaultButtonItemRender(e,t,n){return[e("vxe-button",{props:getItemProps(t,n),on:getOns(t,n),nativeOn:getNativeOns(t,n)})]}function defaultButtonsItemRender(t,e,n){return e.children.map(function(e){return defaultButtonItemRender(t,e,n)[0]})}function renderNativeFormOptions(n,e,t,r){var o=r.data,r=r.property,t=t.optionProps,t=void 0===t?{}:t,a=t.label||"label",l=t.value||"value",i=t.disabled||"disabled",u=_xeUtils.default.get(o,r);return e.map(function(e,t){return n("option",{key:t,attrs:{value:e[l],disabled:e[i]},domProps:{selected:e[l]==u}},e[a])})}function handleExportSelectMethod(e){var t=e.row,n=e.column;return e.options.original?_tools.UtilTools.getCellValue(t,n):getSelectCellValue(n.editRender||n.cellRender,e)}function defaultFormItemRadioAndCheckboxRender(n,e,t){var r=e.options,o=e.optionProps,a=void 0===o?{}:o,l=t.data,o=t.property,i=a.label||"label",u=a.value||"value",d=a.disabled||"disabled",o=_xeUtils.default.get(l,o),s=getDefaultComponentName(e);return[n("".concat(s,"-group"),{props:getItemProps(e,t,o),on:getItemOns(e,t),nativeOn:getNativeOns(e,t)},r.map(function(e,t){return n(s,{key:t,props:{label:e[u],content:e[i],disabled:e[d]}})}))]}var renderMap={input:{autofocus:"input",renderEdit:nativeEditRender,renderDefault:nativeEditRender,renderFilter:nativeFilterRender,filterMethod:handleFilterMethod,renderItemContent:nativeItemRender},textarea:{autofocus:"textarea",renderEdit:nativeEditRender,renderItemContent:nativeItemRender},select:{renderEdit:nativeSelectEditRender,renderDefault:nativeSelectEditRender,renderCell:function(e,t,n){return getCellLabelVNs(e,t,n,getSelectCellValue(t,n))},renderFilter:function(n,r,o){return o.column.filters.map(function(e,t){return n("select",{key:t,class:"vxe-default-select",attrs:getNativeAttrs(r),on:getNativeFilterOns(r,o,e)},r.optionGroups?renderNativeOptgroups(n,r,o,renderNativeOptions):renderNativeOptions(n,r.options,r,o))})},filterMethod:handleFilterMethod,renderItemContent:function(e,t,n){return[e("select",{class:"vxe-default-select",attrs:getNativeAttrs(t),on:getNativeItemOns(t,n)},t.optionGroups?renderNativeOptgroups(e,t,n,renderNativeFormOptions):renderNativeFormOptions(e,t.options,t,n))]},cellExportMethod:handleExportSelectMethod},$input:{autofocus:".vxe-input--inner",renderEdit:defaultEditRender,renderCell:function(e,t,n){var r=t.props,o=void 0===r?{}:r,a=n.row,r=n.column,l=o.digits||_conf.default.input.digits,i=_xeUtils.default.get(a,r.property);if(i)switch(o.type){case"date":case"week":case"month":case"year":i=getLabelFormatDate(i,o);break;case"float":i=_xeUtils.default.toFixed(_xeUtils.default.floor(i,l),l)}return getCellLabelVNs(e,t,n,i)},renderDefault:defaultEditRender,renderFilter:defaultFilterRender,filterMethod:handleFilterMethod,renderItemContent:defaultItemRender},$textarea:{autofocus:".vxe-textarea--inner",renderItemContent:defaultItemRender},$button:{renderDefault:defaultButtonEditRender,renderItemContent:defaultButtonItemRender},$buttons:{renderDefault:defaultButtonsEditRender,renderItemContent:defaultButtonsItemRender},$select:{autofocus:".vxe-input--inner",renderEdit:defaultSelectEditRender,renderDefault:defaultSelectEditRender,renderCell:function(e,t,n){return getCellLabelVNs(e,t,n,getSelectCellValue(t,n))},renderFilter:function(r,o,a){var e=a.column,l=o.options,i=o.optionProps,u=o.optionGroups,d=o.optionGroupProps,s=getNativeOns(o,a);return e.filters.map(function(e,t){var n=e.data;return r(getDefaultComponentName(o),{key:t,props:getFilterProps(o,a,n,{options:l,optionProps:i,optionGroups:u,optionGroupProps:d}),on:getFilterOns(o,a,e),nativeOn:s})})},filterMethod:handleFilterMethod,renderItemContent:function(e,t,n){var r=n.data,o=n.property,a=t.options,l=t.optionProps,i=t.optionGroups,u=t.optionGroupProps,o=_xeUtils.default.get(r,o);return[e(getDefaultComponentName(t),{props:getItemProps(t,n,o,{options:a,optionProps:l,optionGroups:i,optionGroupProps:u}),on:getItemOns(t,n),nativeOn:getNativeOns(t,n)})]},cellExportMethod:handleExportSelectMethod},$radio:{autofocus:".vxe-radio--input",renderItemContent:defaultFormItemRadioAndCheckboxRender},$checkbox:{autofocus:".vxe-checkbox--input",renderItemContent:defaultFormItemRadioAndCheckboxRender},$switch:{autofocus:".vxe-switch--button",renderEdit:defaultEditRender,renderDefault:defaultEditRender,renderItemContent:defaultItemRender}},renderer={mixin:function(e){return _xeUtils.default.each(e,function(e,t){return renderer.add(t,e)}),renderer},get:function(e){return renderMap[e]||null},add:function(n,e){var r;return n&&e&&((r=renderMap[n])?("development"===process.env.NODE_ENV&&_xeUtils.default.each(e,function(e,t){_xeUtils.default.eqNull(r[t])||r[t]===e||_tools.UtilTools.warn("vxe.error.coverProp",["Renderer.".concat(n),t])}),Object.assign(r,e)):renderMap[n]=e),renderer},delete:function(e){return delete renderMap[e],renderer}};exports.renderer=renderer;