angular-ui-grid
Version:
A data grid for Angular
2 lines • 17.6 kB
JavaScript
/*! For license information please see ui-grid.exporter.min.js.LICENSE.txt */
(()=>{var e={553:e=>{e.exports='<span\n class="ui-grid-exporter-csv-link-span">\n <a\n href="data:text/csv;charset=UTF-8,CSV_CONTENT"\n download="FILE_NAME">\n LINK_LABEL\n </a>\n</span>\n'},120:()=>{!function(){"use strict";var e=angular.module("ui.grid.exporter",["ui.grid"]);e.constant("uiGridExporterConstants",{featureName:"exporter",rowHeaderColName:"treeBaseRowHeaderCol",selectionRowHeaderColName:"selectionRowHeaderCol",ALL:"all",VISIBLE:"visible",SELECTED:"selected",CSV_CONTENT:"CSV_CONTENT",BUTTON_LABEL:"BUTTON_LABEL",FILE_NAME:"FILE_NAME"}),e.service("uiGridExporterService",["$filter","$q","uiGridExporterConstants","gridUtil","$compile","$interval","i18nService",function(e,t,r,o,n,i,a){var l={delay:100,type:null,initializeGrid:function(e){e.exporter={},this.defaultGridOptions(e.options);var t={events:{exporter:{}},methods:{exporter:{csvExport:function(t,r){l.csvExport(e,t,r)},pdfExport:function(t,r){l.pdfExport(e,t,r)},excelExport:function(t,r){l.excelExport(e,t,r)}}}};e.api.registerEventsFromObject(t.events),e.api.registerMethodsFromObject(t.methods),e.api.core.addToGridMenu?l.addToMenu(e):i((function(){e.api.core.addToGridMenu&&l.addToMenu(e)}),this.delay,1)},defaultGridOptions:function(e){e.exporterSuppressMenu=!0===e.exporterSuppressMenu,e.exporterMenuLabel=e.exporterMenuLabel?e.exporterMenuLabel:"Export",e.exporterSuppressColumns=e.exporterSuppressColumns?e.exporterSuppressColumns:[],e.exporterCsvColumnSeparator=e.exporterCsvColumnSeparator?e.exporterCsvColumnSeparator:",",e.exporterCsvFilename=e.exporterCsvFilename?e.exporterCsvFilename:"download.csv",e.exporterPdfFilename=e.exporterPdfFilename?e.exporterPdfFilename:"download.pdf",e.exporterExcelFilename=e.exporterExcelFilename?e.exporterExcelFilename:"download.xlsx",e.exporterExcelSheetName=e.exporterExcelSheetName?e.exporterExcelSheetName:"Sheet1",e.exporterOlderExcelCompatibility=!0===e.exporterOlderExcelCompatibility,e.exporterIsExcelCompatible=!0===e.exporterIsExcelCompatible,e.exporterMenuItemOrder=e.exporterMenuItemOrder?e.exporterMenuItemOrder:200,e.exporterPdfDefaultStyle=e.exporterPdfDefaultStyle?e.exporterPdfDefaultStyle:{fontSize:11},e.exporterPdfTableStyle=e.exporterPdfTableStyle?e.exporterPdfTableStyle:{margin:[0,5,0,15]},e.exporterPdfTableHeaderStyle=e.exporterPdfTableHeaderStyle?e.exporterPdfTableHeaderStyle:{bold:!0,fontSize:12,color:"black"},e.exporterPdfHeader=e.exporterPdfHeader?e.exporterPdfHeader:null,e.exporterPdfFooter=e.exporterPdfFooter?e.exporterPdfFooter:null,e.exporterPdfOrientation=e.exporterPdfOrientation?e.exporterPdfOrientation:"landscape",e.exporterPdfPageSize=e.exporterPdfPageSize?e.exporterPdfPageSize:"A4",e.exporterPdfMaxGridWidth=e.exporterPdfMaxGridWidth?e.exporterPdfMaxGridWidth:720,e.exporterMenuAllData=void 0===e.exporterMenuAllData||e.exporterMenuAllData,e.exporterMenuVisibleData=void 0===e.exporterMenuVisibleData||e.exporterMenuVisibleData,e.exporterMenuSelectedData=void 0===e.exporterMenuSelectedData||e.exporterMenuSelectedData,e.exporterMenuCsv=void 0===e.exporterMenuCsv||e.exporterMenuCsv,e.exporterMenuPdf=void 0===e.exporterMenuPdf||e.exporterMenuPdf,e.exporterMenuExcel=void 0===e.exporterMenuExcel||e.exporterMenuExcel,e.exporterPdfCustomFormatter=e.exporterPdfCustomFormatter&&"function"==typeof e.exporterPdfCustomFormatter?e.exporterPdfCustomFormatter:function(e){return e},e.exporterHeaderFilterUseName=!0===e.exporterHeaderFilterUseName,e.exporterFieldCallback=e.exporterFieldCallback?e.exporterFieldCallback:s,e.exporterFieldFormatCallback=e.exporterFieldFormatCallback?e.exporterFieldFormatCallback:function(e,t,r,o){return null},e.exporterExcelCustomFormatters=e.exporterExcelCustomFormatters?e.exporterExcelCustomFormatters:function(e,t,r){return r},e.exporterExcelHeader=e.exporterExcelHeader?e.exporterExcelHeader:function(e,t,r,o){return null},e.exporterColumnScaleFactor=e.exporterColumnScaleFactor?e.exporterColumnScaleFactor:3.5,e.exporterFieldApplyFilters=!0===e.exporterFieldApplyFilters,e.exporterAllDataFn=e.exporterAllDataFn?e.exporterAllDataFn:null,null===e.exporterAllDataFn&&e.exporterAllDataPromise&&(e.exporterAllDataFn=e.exporterAllDataPromise)},addToMenu:function(e){e.api.core.addToGridMenu(e,[{title:a.getSafeText("gridMenu.exporterAllAsCsv"),action:function(){e.api.exporter.csvExport(r.ALL,r.ALL)},shown:function(){return e.options.exporterMenuCsv&&e.options.exporterMenuAllData},order:e.options.exporterMenuItemOrder},{title:a.getSafeText("gridMenu.exporterVisibleAsCsv"),action:function(){e.api.exporter.csvExport(r.VISIBLE,r.VISIBLE)},shown:function(){return e.options.exporterMenuCsv&&e.options.exporterMenuVisibleData},order:e.options.exporterMenuItemOrder+1},{title:a.getSafeText("gridMenu.exporterSelectedAsCsv"),action:function(){e.api.exporter.csvExport(r.SELECTED,r.VISIBLE)},shown:function(){return e.options.exporterMenuCsv&&e.options.exporterMenuSelectedData&&e.api.selection&&e.api.selection.getSelectedRows().length>0},order:e.options.exporterMenuItemOrder+2},{title:a.getSafeText("gridMenu.exporterAllAsPdf"),action:function(){e.api.exporter.pdfExport(r.ALL,r.ALL)},shown:function(){return e.options.exporterMenuPdf&&e.options.exporterMenuAllData},order:e.options.exporterMenuItemOrder+3},{title:a.getSafeText("gridMenu.exporterVisibleAsPdf"),action:function(){e.api.exporter.pdfExport(r.VISIBLE,r.VISIBLE)},shown:function(){return e.options.exporterMenuPdf&&e.options.exporterMenuVisibleData},order:e.options.exporterMenuItemOrder+4},{title:a.getSafeText("gridMenu.exporterSelectedAsPdf"),action:function(){e.api.exporter.pdfExport(r.SELECTED,r.VISIBLE)},shown:function(){return e.options.exporterMenuPdf&&e.options.exporterMenuSelectedData&&e.api.selection&&e.api.selection.getSelectedRows().length>0},order:e.options.exporterMenuItemOrder+5},{title:a.getSafeText("gridMenu.exporterAllAsExcel"),action:function(){e.api.exporter.excelExport(r.ALL,r.ALL)},shown:function(){return e.options.exporterMenuExcel&&e.options.exporterMenuAllData},order:e.options.exporterMenuItemOrder+6},{title:a.getSafeText("gridMenu.exporterVisibleAsExcel"),action:function(){e.api.exporter.excelExport(r.VISIBLE,r.VISIBLE)},shown:function(){return e.options.exporterMenuExcel&&e.options.exporterMenuVisibleData},order:e.options.exporterMenuItemOrder+7},{title:a.getSafeText("gridMenu.exporterSelectedAsExcel"),action:function(){e.api.exporter.excelExport(r.SELECTED,r.VISIBLE)},shown:function(){return e.options.exporterMenuExcel&&e.options.exporterMenuSelectedData&&e.api.selection&&e.api.selection.getSelectedRows().length>0},order:e.options.exporterMenuItemOrder+8}])},csvExport:function(e,t,r){var o=this;o.type="csv",this.loadAllDataIfNeeded(e,t,r).then((function(){var n=e.options.showHeader?o.getColumnHeaders(e,r):[],i=o.getData(e,t,r),a=o.formatAsCsv(n,i,e.options.exporterCsvColumnSeparator),l=angular.isFunction(e.options.exporterCsvFilename)?e.options.exporterCsvFilename(e,t,r):e.options.exporterCsvFilename;o.downloadFile(l,a,e.options.exporterCsvColumnSeparator,e.options.exporterOlderExcelCompatibility,e.options.exporterIsExcelCompatible)}))},loadAllDataIfNeeded:function(e,o,n){if(o===r.ALL&&e.rows.length!==e.options.totalItems&&e.options.exporterAllDataFn)return e.options.exporterAllDataFn().then((function(t){e.modifyRows(t)}));var i=t.defer();return i.resolve(),i.promise},getColumnHeaders:function(e,t){var o,n=[];if(t===r.ALL)o=e.columns;else{var i=e.renderContainers.left?e.renderContainers.left.visibleColumnCache.filter((function(e){return e.visible})):[],a=e.renderContainers.body?e.renderContainers.body.visibleColumnCache.filter((function(e){return e.visible})):[],l=e.renderContainers.right?e.renderContainers.right.visibleColumnCache.filter((function(e){return e.visible})):[];o=i.concat(a,l)}return o.forEach((function(t){if(!0!==t.colDef.exporterSuppressExport&&"$$hashKey"!==t.field&&-1===e.options.exporterSuppressColumns.indexOf(t.name)){var r={name:t.field,displayName:p(e,t),width:t.drawnWidth?t.drawnWidth:t.width,align:t.colDef.align?t.colDef.align:"number"===t.colDef.type?"right":"left"};n.push(r)}})),n},getRowsFromNode:function(e){var t=[],r=e?Object.keys(e):["children"];if((r.length>1||"children"!=r[0])&&t.push(e),e&&e.children&&e.children.length>0)for(var o=0;o<e.children.length;o++)t=t.concat(this.getRowsFromNode(e.children[o]));return t},getDataSorted:function(e){if(!e.treeBase||0===e.treeBase.numberLevels)return e.rows;for(var t=[],r=0;r<e.treeBase.tree.length;r++)for(var o=this.getRowsFromNode(e.treeBase.tree[r]),n=0;n<o.length;n++)t.push(o[n].row);return t},getData:function(e,t,n,i){var a,p,s=[];switch(t){case r.ALL:a=this.getDataSorted(e,t,n,i);break;case r.VISIBLE:a=e.getVisibleRows();break;case r.SELECTED:e.api.selection?a=e.api.selection.getSelectedGridRows():o.logError("selection feature must be enabled to allow selected rows to be exported")}if(n===r.ALL)p=e.columns;else{var d=e.renderContainers.left?e.renderContainers.left.visibleColumnCache.filter((function(e){return e.visible})):[],u=e.renderContainers.body?e.renderContainers.body.visibleColumnCache.filter((function(e){return e.visible})):[],c=e.renderContainers.right?e.renderContainers.right.visibleColumnCache.filter((function(e){return e.visible})):[];p=d.concat(u,c)}return a.forEach((function(t){if(!1!==t.exporterEnableExporting){var o=[];p.forEach((function(a){if((a.visible||n===r.ALL)&&!0!==a.colDef.exporterSuppressExport&&"$$hashKey"!==a.field&&-1===e.options.exporterSuppressColumns.indexOf(a.name)){var p=i?e.getCellDisplayValue(t,a):e.getCellValue(t,a),s={value:e.options.exporterFieldCallback(e,t,a,p,l.type)},d=e.options.exporterFieldFormatCallback(e,t,a,p,l.type);d&&Object.assign(s,d),a.colDef.exporterPdfAlign&&(s.alignment=a.colDef.exporterPdfAlign),o.push(s)}})),s.push(o)}})),s},formatAsCsv:function(e,t,r){var o=e.map((function(e){return{value:e.displayName}})),n=o.length>0?this.formatRowAsCsv(this,r)(o)+"\n":"";return n+=t.map(this.formatRowAsCsv(this,r)).join("\n")},formatRowAsCsv:function(e,t){return function(r){return r.map(e.formatFieldAsCsv).join(t)}},formatFieldAsCsv:function(e){return null==e.value?"":"number"==typeof e.value?e.value:"boolean"==typeof e.value?e.value?"TRUE":"FALSE":"string"==typeof e.value?'"'+e.value.replace(/"/g,'""')+'"':"object"!=typeof e.value||e.value instanceof Date?JSON.stringify(e.value):'"'+JSON.stringify(e.value).replace(/"/g,'""')+'"'},isIE:function(){var e=!1;return-1!==navigator.userAgent.search(/(?:Edge|MSIE|Trident\/.*; rv:)/)&&(e=!0),e},downloadFile:function(e,t,r,o,n){var i,a=document,l=a.createElement("a"),p="application/octet-stream;charset=utf-8",s=this.isIE();if(n&&(t="sep="+r+"\r\n"+t),navigator.msSaveBlob)return navigator.msSaveOrOpenBlob(new Blob([o?"\ufeff":"",t],{type:p}),e);if(s){var d=a.createElement("iframe");return document.body.appendChild(d),d.contentWindow.document.open("text/html","replace"),d.contentWindow.document.write(t),d.contentWindow.document.close(),d.contentWindow.focus(),d.contentWindow.document.execCommand("SaveAs",!0,e),document.body.removeChild(d),!0}if("download"in l){var u=new Blob([o?"\ufeff":"",t],{type:p});i=URL.createObjectURL(u),l.setAttribute("download",e)}else i="data: "+p+","+encodeURIComponent(t),l.setAttribute("target","_blank");l.href=i,l.setAttribute("style","display:none;"),a.body.appendChild(l),setTimeout((function(){if(l.click)l.click();else if(document.createEvent){var e=document.createEvent("MouseEvents");e.initEvent("click",!0,!0),l.dispatchEvent(e)}a.body.removeChild(l)}),this.delay)},pdfExport:function(e,t,r){var o=this;o.type="pdf",this.loadAllDataIfNeeded(e,t,r).then((function(){var n=o.getColumnHeaders(e,r),i=o.getData(e,t,r),a=o.prepareAsPdf(e,n,i);if(o.isIE()||-1!==navigator.appVersion.indexOf("Edge")){var l=angular.isFunction(e.options.exporterPdfFilename)?e.options.exporterPdfFilename(e,t,r):e.options.exporterPdfFilename;o.downloadPDF(l,a)}else pdfMake.createPdf(a).open()}))},downloadPDF:function(e,t){var r,o,n=document;n.createElement("a");r=this.isIE(),pdfMake.createPdf(t).getBuffer((function(t){if(o=new Blob([t]),navigator.msSaveBlob)return navigator.msSaveBlob(o,e);if(r){var i=n.createElement("iframe");return document.body.appendChild(i),i.contentWindow.document.open("text/html","replace"),i.contentWindow.document.write(o),i.contentWindow.document.close(),i.contentWindow.focus(),i.contentWindow.document.execCommand("SaveAs",!0,e),document.body.removeChild(i),!0}}))},prepareAsPdf:function(e,t,r){var o=this.calculatePdfHeaderWidths(e,t),n=t.map((function(e){return{text:e.displayName,style:"tableHeader"}})),i=r.map(this.formatRowAsPdf(this)),a=[n].concat(i),l={pageOrientation:e.options.exporterPdfOrientation,pageSize:e.options.exporterPdfPageSize,content:[{style:"tableStyle",table:{headerRows:1,widths:o,body:a}}],styles:{tableStyle:e.options.exporterPdfTableStyle,tableHeader:e.options.exporterPdfTableHeaderStyle},defaultStyle:e.options.exporterPdfDefaultStyle};return e.options.exporterPdfLayout&&(l.layout=e.options.exporterPdfLayout),e.options.exporterPdfHeader&&(l.header=e.options.exporterPdfHeader),e.options.exporterPdfFooter&&(l.footer=e.options.exporterPdfFooter),e.options.exporterPdfCustomFormatter&&(l=e.options.exporterPdfCustomFormatter(l)),l},calculatePdfHeaderWidths:function(e,t){var r=0;t.forEach((function(e){"number"==typeof e.width&&(r+=e.width)}));var o=0;t.forEach((function(e){if("*"===e.width&&(o+=100),"string"==typeof e.width&&e.width.match(/(\d)*%/)){var t=parseInt(e.width.match(/(\d)*%/)[0]);e.width=r*t/100,o+=e.width}}));var n=r+o;return t.map((function(t){return"*"===t.width?t.width:t.width*e.options.exporterPdfMaxGridWidth/n}))},formatRowAsPdf:function(e){return function(t){return t.map(e.formatFieldAsPdfString)}},formatFieldAsPdfString:function(e){var t;return t=null==e.value?"":"number"==typeof e.value?e.value.toString():"boolean"==typeof e.value?e.value?"TRUE":"FALSE":"string"==typeof e.value?e.value.replace(/"/g,'""'):e.value instanceof Date?JSON.stringify(e.value).replace(/^"/,"").replace(/"$/,""):"object"==typeof e.value?e.value:JSON.stringify(e.value).replace(/^"/,"").replace(/"$/,""),e.alignment&&"string"==typeof e.alignment&&(t={text:t,alignment:e.alignment}),t},formatAsExcel:function(e,t,r,o,n){for(var i=e.map((function(e){return{value:e.displayName}})),a=[],l=[],p=0;p<i.length;p++){var s="header";switch(e[p].align){case"center":s="headerCenter";break;case"right":s="headerRight"}var d=n.styles&&n.styles[s]?{style:n.styles[s].id}:null;l.push({value:i[p].value,metadata:d})}a.push(l);for(var u=t.map(this.formatRowAsExcel(this,r,o)),c=0;c<u.length;c++)a.push(u[c]);return a},formatRowAsExcel:function(e,t,r){return function(o){for(var n=[],i=0;i<o.length;i++){var a=e.formatFieldAsExcel(o[i],t,r);n.push({value:a,metadata:o[i].metadata})}return n}},formatFieldAsExcel:function(e,t,r,o){return null==e.value?"":"number"==typeof e.value||"string"==typeof e.value?e.value:"boolean"==typeof e.value?e.value?"TRUE":"FALSE":JSON.stringify(e.value)},prepareAsExcel:function(e,t,r){var o={styles:{}};if(e.options.exporterExcelCustomFormatters&&(o=e.options.exporterExcelCustomFormatters(e,t,o)),e.options.exporterExcelHeader)if(angular.isFunction(e.options.exporterExcelHeader))e.options.exporterExcelHeader(e,t,r,o);else{var n=e.options.exporterExcelHeader.text,i=e.options.exporterExcelHeader.style;r.data.push([{value:n,metadata:{style:o.styles[i].id}}])}return o},excelExport:function(e,t,o){var n=this;n.type="excel",this.loadAllDataIfNeeded(e,t,o).then((function(){var i=e.options.showHeader?n.getColumnHeaders(e,o):[],a="Sheet1";e.options.exporterExcelSheetName&&(a=angular.isFunction(e.options.exporterExcelSheetName)?e.options.exporterExcelSheetName(e,t,o):e.options.exporterExcelSheetName);var l=new ExcelBuilder.Worksheet({name:a}),p=new ExcelBuilder.Workbook;p.addWorksheet(l);for(var s=n.prepareAsExcel(e,p,l),d=[],u=e.treeBase?e.treeBase.numberLevels:e.enableRowSelection?1:0;u<e.columns.length;u++)e.columns[u].field!==r.rowHeaderColName&&e.columns[u].field!==r.selectionRowHeaderColName&&d.push({width:e.columns[u].drawnWidth/e.options.exporterColumnScaleFactor});l.setColumns(d);var c=n.getData(e,t,o,e.options.exporterFieldApplyFilters),x=n.formatAsExcel(i,c,p,l,s);l.setData(l.data.concat(x)),ExcelBuilder.Builder.createFile(p,{type:"blob"}).then((function(r){var i=angular.isFunction(e.options.exporterExcelFilename)?e.options.exporterExcelFilename(e,t,o):e.options.exporterExcelFilename;n.downloadFile(i,r,e.options.exporterCsvColumnSeparator,e.options.exporterOlderExcelCompatibility)}))}))}};function p(t,r){return t.options.exporterHeaderFilter?t.options.exporterHeaderFilterUseName?t.options.exporterHeaderFilter(r.name):t.options.exporterHeaderFilter(r.displayName):r.headerCellFilter?e(r.headerCellFilter)(r.displayName):r.displayName}function s(t,r,o,n){var i,a,l,p;return o.cellFilter?(a=(i=o.cellFilter.match(/(?:[^:"]+|"[^"]*")+/g))[0]?i[0].replace(/[\'\"\s]/g,""):null,l=i[1]?i[1].replace(/[\'\"]/g,"").trim():null,p=i[2]?i[2].replace(/[\'\"\s]/g,""):null,e(a)(n,l,p)):n}return l}]),e.directive("uiGridExporter",["uiGridExporterConstants","uiGridExporterService","gridUtil","$compile",function(e,t,r,o){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(e,r,o,n){t.initializeGrid(n.grid),n.grid.exporter.$scope=e}}}])}()},561:(e,t,r)=>{angular.module("ui.grid.exporter").run(["$templateCache",function(e){"use strict";e.put("ui-grid/csvLink",r(553))}])}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,r),i.exports}r(120),r(561)})();