smart-webcomponents-angular
Version:
[](https://jqwidgets.com/license/)
6 lines (4 loc) • 5.84 kB
JavaScript
/* Smart UI v20.0.2 (2024-09-06)
Copyright (c) 2011-2024 jQWidgets.
License: https://htmlelements.com/license/ */ //
Smart.Utilities.Assign("Grid.Export",class{exportData(t,e,o){const a=this,r=new Smart.Utilities.DataExporter({exportHeader:a.dataExport.header}),n=[];r.expandChar=a.dataExport.expandChar,r.collapseChar=a.dataExport.collapseChar,r.pageOrientation=a.dataExport.pageOrientation,r.style=a.dataExport.style,r.filterBy=a.dataExport.filterBy,r.groupBy=a.dataExport.groupBy;const l=a.columns.toArray().slice(0).filter((t=>!1!==t.allowExport));if(r.header={columns:l,columngroups:a.columnGroups.slice(0)},!a.dataExport.style){const e=window.getComputedStyle(a),o=window.getComputedStyle(a.columns.length>0&&a.columns[0].element?a.columns[0].element:a.$.columnHeader),l=window.getComputedStyle(a.$.columnHeader);if(0!==a.offsetWidth&&0!==a.offsetHeight){const i=t=>{const e=t.fontSize,o=t.borderRightColor,a=t.backgroundColor,r=t.color,n=new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");function l(t){return(t=t.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/))?"#"+i(t[1])+i(t[2])+i(t[3]).toUpperCase():"#ffffff"}function i(t){return isNaN(t)?"00":n[(t-t%16)/16]+n[t%16]}return{borderColor:l(o),fontSize:e,fontFamily:"Helvetica",color:l(r),backgroundColor:l(a)}},d=i(e),c=i(o),s=i(l),p={height:a.$.columnHeader.offsetHeight+"px",border:"1px solid "+d.borderColor,fontFamily:s.fontFamily,fontSize:s.fontSize,color:s.color,backgroundColor:c.backgroundColor,fontWeight:"400"},f={border:"1px solid "+d.borderColor,fontFamily:d.fontFamily,fontSize:d.fontSize},u={height:a.rowMinHeight+"px"};for(let e=0;e<a.columns.length;e++){const o=a.columns[e];if(!o.allowExport)continue;if(!o.visible)continue;p[o.dataField]={textAlign:o.align,width:o.computedWidth+"px",format:o.cellsFormat||""};let r=o.cellsFormat||"";r||("date"===o.dataType?r="d":"dateTime"===o.dataType?r="D":"time"===o.dataType&&(r="t")),a.locale&&r&&r.indexOf("c")>=0&&"xlsx"===t&&""!==a.locale&&"en"!==a.locale&&(r=a._getCurrencyByLocale(a.locale)+"x"+r);const l={textAlign:o.cellsAlign,format:r};if(f[o.dataField]=l,a.dataExport.view&&-1!==["html","jpeg","pdf","png"].indexOf(t)&&(o.template||o.formatFunction))for(let t=0;t<a.rows.length;t++){const e=a.rows[t];let r=a.rows[t]["column_"+o.dataField];if(a.dataExport.viewStart&&t<a.dataExport.viewStart||a.dataExport.viewEnd&&t>a.dataExport.viewEnd)continue;if(!r||e&&e.element&&e.element.classList.contains("smart-hidden")){const t=a._rowElements[0];if(!t)continue;if(e.element=t,e.grid=a,e.render(),r=e["column_"+o.dataField],!r)continue}const i={};i.border=r.borderColor,i.background=r.background,i.color=r.color;const d=void 0!==a.dataExport.viewStart?t-a.dataExport.viewStart:t;n[t]=Object.assign({},e.data),n[t][o.dataField]=r.element.textContent,l[d]=i}}a.appearance.alternationCount>0&&(u.alternationCount=a.appearance.alternationCount,u.alternationStart=a.appearance.alternationStart,u.alternationEnd=a.appearance.alternationEnd,u.alternationIndex0Color=d.color,u.alternationIndex0BackgroundColor=d.backgroundColor,u.alternationIndex1Color=d.color,u.alternationIndex1BackgroundColor="#F5F5F5"),r.style={border:"1px solid "+d.borderColor,borderCollapse:"collapse",header:p,columns:f,rows:u}}}const i=!a.rowHierarchy||a.grouping.enabled?a.rows.toArray():a.rowHierarchy,d=a.dataExport.rowIds,c=null!==d;let s=[];if(a.dataExport.view)a._recyclingRows.forEach(((t,e)=>{if(a.dataExport.viewStart&&e<a.dataExport.viewStart||a.dataExport.viewEnd&&e>a.dataExport.viewEnd)return!0;n[e]?s.push(n[e]):s.push(t.data)}));else{for(let e=0;e<i.length;e++){const o=i[e];if(o.visible&&(!1!==o.filtered||void 0===o.filtered)){if(c&&-1===d.indexOf(o.id))continue;const e={};for(let r=0;r<a.columns.length;r++){const n=a.columns[r];if(!n.allowExport)continue;const l=n.dataField;let i=o.data[l];if("taskChecklist"===l)if(i){const t=i.map((t=>{let e=t.text;return t.completed?e="✓ "+e:e+="X "+e,e}));i=t.toString()}else i="";if("taskUserId"===l){const t=a.users.find((t=>t.id===parseInt(i)||parseInt(t.id)===parseInt(i)));t&&(i=t.name)}if(void 0===i)if("createdBy"===n.template){const t=a.users.find((t=>t.id===o.createdBy));if(t){const o=t,a="string"==typeof o?o:o.name;e[l]=a}else e[l]=""}else if("createdTime"===n.template){const t=o.getCell(l).getFormattedValue(o.createdTime,"d")+" "+o.getCell(l).getFormattedValue(o.createdTime,"t");e[l]=t}else if("modifiedBy"===n.template){const t=a.users.find((t=>t.id===o.modifiedBy));if(t){const o=t,a="string"==typeof o?o:o.name;e[l]=a}else e[l]=""}else if("modifiedTime"===n.template){const t=o.getCell(l).getFormattedValue(o.modifiedTime,"d")+" "+o.getCell(l).getFormattedValue(o.modifiedTime,"t");e[l]=t}else e[l]="";else if(i&&i.indexOf&&(i.indexOf("{")>=0||"[]"===i)){const t=i.indexOf("{")>=0||"[]"===i?JSON.parse(i):i.split(", "),o=[];for(let e=0;e<t.length;e++)"string"==typeof t[e]?o.push(t[e]):o.push(t[e].label);e[l]=o.join(",")}else if("csv"===t||"tsv"===t)if(n.cellsFormat){const t=o.getCell(l).getFormattedValue(i,n.cellsFormat);e[l]=t}else e[l]=i;else e[l]=i}s.push(e)}}i!==a.rowHierarchy||c||(s=a.dataSource.boundHierarchy,r.hierarchical=!0)}if(!a.dataExport.groupBy&&a.grouping.enabled&&a.dataSource&&a.dataSource.groupBy&&(r.groupBy=a.dataSource.groupBy&&a.dataSource.groupBy.toArray?a.dataSource.groupBy.toArray():null),a.checkLicense(!0),o){const e=o(s,r,t);e&&(s=e)}const p=r.exportData(s,t,a.dataExport.fileName,e);return a.dataExport.view&&a._recycle(!1),p}print(){const t=this,e=t.dataExport.fileName;t.dataExport.fileName=null;const o=t.exportData("html"),a=window.open("","","width=800,height=500"),r=a.document.open(),n='<!DOCTYPE html><html><head><meta charset="utf-8" /><title>'+e+"</title></head><body>"+o+"</body></html>";try{r.write(n),r.close(),setTimeout((function(){a.print(),a.close()}),100)}catch(t){}t.dataExport.fileName=e}});