"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Renderer=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils/methods/xe-utils")),_tools=require("../../tools");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function getAttrs(e){var t=e.name,r=e.attrs;return"input"===t&&(r=Object.assign({type:"text"},r)),r}function isSyncCell(e,t,r){return e.immediate||"visible"===e.type||"cell"===r.$type}function defaultEditRender(e,t,r,n){var l=r.row,o=r.column,u=t.name,i=getAttrs(t),a=isSyncCell(t,r,n)?_tools.UtilTools.getCellValue(l,o):o.model.value;return[e(u,{class:"plx-default-".concat(u),attrs:i,domProps:{value:a},on:getEvents(t,r,n)})]}function getEvents(r,n,l){var e=r.name,o=r.events,u=n.$table,i=n.row,a=n.column,d=a.model,s="select"===e?"change":"input",t=_defineProperty({},s,function(e){var t=e.target.value;isSyncCell(r,n,l)?_tools.UtilTools.setCellValue(i,a,t):(d.update=!0,d.value=t),u.updateStatus(n,t),o&&o[s]&&o[s](n,e)});return o?_xeUtils.default.assign({},_xeUtils.default.objectMap(o,function(e){return function(){e.apply(null,[n].concat.apply(n,arguments))}}),t):t}function renderOptgroups(r,n,l,o){var e=n.optionGroups,t=n.optionGroupProps,u=void 0===t?{}:t,i=u.options||"options",a=u.label||"label";return e.map(function(e,t){return r("optgroup",{domProps:{label:e[a]},key:t},renderOptions(r,e[i],n,l,o))})}function renderOptions(r,e,t,n,l){var o=t.optionProps,u=void 0===o?{}:o,i=n.row,a=n.column,d=u.label||"label",s=u.value||"value",p=u.disabled||"disabled",f=isSyncCell(t,n,l)?_tools.UtilTools.getCellValue(i,a):a.model.value;return e.map(function(e,t){return r("option",{attrs:{value:e[s],disabled:e[p]},domProps:{selected:e[s]===f},key:t},e[d])})}function getFilterEvents(t,e,r,n){var l=r.column,o=e.events,u="select"===name?"change":"input",i=_defineProperty({},u,function(e){t.data=e.target.value,handleConfirmFilter(n,l,!!t.data,t),o&&o[u]&&o[u](Object.assign({context:n},r),e)});return o?_xeUtils.default.assign({},_xeUtils.default.objectMap(o,function(e){return function(){r=Object.assign({context:n},r),e.apply(null,[r].concat.apply(r,arguments))}}),i):i}function defaultFilterRender(t,r,n,l){var e=n.column,o=r.name,u=getAttrs(r);return e.filters.map(function(e){return t(o,{class:"plx-default-".concat(o),attrs:u,domProps:{value:e.data},on:getFilterEvents(e,r,n,l)})})}function handleConfirmFilter(e,t,r,n){e[t.filterMultiple?"changeMultipleOption":"changeRadioOption"]({},r,n)}function defaultFilterMethod(e){var t=e.option,r=e.row,n=e.column,l=t.data;return _xeUtils.default.get(r,n.property)==l}function renderSelectEdit(e,t,r,n){return[e("select",{class:"plx-default-select",attrs:getAttrs(t),on:getEvents(t,r,n)},t.optionGroups?renderOptgroups(e,t,r,n):renderOptions(e,t.options,t,r,n))]}var renderMap={input:{autofocus:"input",renderEdit:defaultEditRender,renderDefault:defaultEditRender,renderFilter:defaultFilterRender,filterMethod:defaultFilterMethod},textarea:{autofocus:"textarea",renderEdit:defaultEditRender,renderDefault:defaultEditRender,renderFilter:defaultFilterRender,filterMethod:defaultFilterMethod},select:{renderEdit:renderSelectEdit,renderDefault:renderSelectEdit,renderCell:function(e,t,r){var n,l=t.options,o=t.optionGroups,u=t.optionProps,i=void 0===u?{}:u,a=t.optionGroupProps,d=void 0===a?{}:a,s=r.row,p=r.column,f=_xeUtils.default.get(s,p.property),c=i.label||"label",v=i.value||"value";if(o){for(var g=d.options||"options",m=0;m<o.length&&!(n=_xeUtils.default.find(o[m][g],function(e){return e[v]===f}));m++);return n?n[c]:f}return(n=_xeUtils.default.find(l,function(e){return e[v]===f}))?n[c]:f},renderFilter:function(t,r,n,l){return n.column.filters.map(function(e){return t("select",{class:"plx-default-select",attrs:getAttrs(r),on:getFilterEvents(e,r,n,l)},r.optionGroups?renderOptgroups(t,r,n):renderOptions(t,r.options,r,n,l))})},filterMethod:defaultFilterMethod}},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(e,t){if(e&&t){var r=renderMap[e];r?Object.assign(r,t):renderMap[e]=t}return Renderer},delete:function(e){return delete renderMap[e],Renderer}},_default=exports.Renderer=Renderer;exports.default=_default;