UNPKG

@progress/kendo-react-excel-export

Version:

React Excel export helps you export and save data to Excel files and customize or filter the output. KendoReact Excel Export package

16 lines (15 loc) 6.52 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ /** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types"),require("@progress/kendo-file-saver"),require("@progress/kendo-ooxml"),require("react-dom/server"),require("@progress/kendo-react-common")):"function"==typeof define&&define.amd?define(["exports","react","prop-types","@progress/kendo-file-saver","@progress/kendo-ooxml","react-dom/server","@progress/kendo-react-common"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoReactExcel={},e.React,e.PropTypes,e.KendoFileSaver,e.KendoOoxml,e.ReactDOMServer,e.KendoReactCommon)}(this,(function(e,t,o,r,l,s,i){"use strict";function n(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(o){if("default"!==o){var r=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,r.get?r:{enumerable:!0,get:function(){return e[o]}})}})),t.default=e,Object.freeze(t)}var a=n(t),p=n(l),d=n(s);const c=(e,t,o)=>r=>{o(t,r);const l=d.renderToStaticMarkup(a.createElement(e,{...t})),s=Number(l);return isNaN(s)?l:s},h=(e,t)=>{e.$implicit=e.group=t,e.field=t.field,e.value=t.value,e.aggregates=t.aggregates},u=(e,t)=>{e.group=t.group,e.$implicit=e.aggregates=t},m=(e,t)=>{};class g{constructor(e,t){this.columns=null,this.title=e.title,this.field=e.field,this.hidden=e.hidden,this.locked=e.locked,this.width=e.width,this.headerCellOptions=e.headerCellOptions,this.cellOptions=e.cellOptions,this.groupHeaderCellOptions=e.groupHeaderCellOptions,this.groupFooterCellOptions=e.groupFooterCellOptions,this.footerCellOptions=e.footerCellOptions,e.footer&&(this.footerTemplate=c(e.footer,{$implicit:e,column:e,columnIndex:t},m)),e.groupFooter&&(this.groupFooterTemplate=c(e.groupFooter,{column:e,field:e.field},u)),e.groupHeader&&(this.groupHeaderTemplate=c(e.groupHeader,{},h))}}const f=e=>Math.max(...e.map((e=>e.level)))+1,y=e=>{const t=(e=>{const t=[];let o=0;const r=(e,t,l)=>{e.forEach((e=>{if(e.level===l){const s=new g(e,o);if(t.push(s),e.children&&e.children.length>1){const t=s.columns=[];r(e.children,t,l+1)}else o++}}))};return r(e,t,0),t})(e.columns),o=new l.ExcelExporter({columns:t,data:e.data,filterable:e.filterable,groups:e.group,paddingCellOptions:e.paddingCellOptions,headerPaddingCellOptions:e.headerPaddingCellOptions,hierarchy:e.hierarchy?{depth:f(e.data),itemLevel:e=>e.level}:null,collapsible:e.collapsible}).workbook();return o.creator=e.creator,o.date=e.date,o.rtl="rtl"===e.dir,o},x=e=>new l.Workbook(e).toDataURL(),O=e=>e&&e.sheets,b={name:"@progress/kendo-react-excel-export",productName:"KendoReact",productCode:"KENDOUIREACT",productCodes:["KENDOUIREACT"],publishDate:0,version:"11.2.0",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"},C=class extends a.Component{constructor(e){super(e),this.showLicenseWatermark=!1,this.saveFile=e=>{r.saveAs(e,this.props.fileName,{forceProxy:this.props.forceProxy,proxyURL:this.props.proxyURL})},this.extractColumns=(e,t=0)=>Array.isArray(e)?e.map((e=>this.extractChild(e,t))):[e,this.extractChild(e,t)],this.extractChild=(e,t=0)=>a.isValidElement(e)?{...e.props,width:e.props.width&&parseInt(`${e.props.width}`,10),level:t,children:e.props.children&&this.extractColumns(e.props.children,t+1)}:{...e,level:t,children:e.children&&this.extractColumns(e.children,t+1)},this.getExportData=e=>{let t;return t=e?Array.isArray(e)?{data:e}:e:{data:this.props.data,group:this.props.group},t},this.showLicenseWatermark=!i.validatePackage(b,{component:"ExcelExport"}),this.save=this.save.bind(this),this.toDataURL=this.toDataURL.bind(this),this.workbookOptions=this.workbookOptions.bind(this)}save(e,t){this.toDataURL(e,t).then(((...e)=>{this.props.onExportComplete&&this.props.onExportComplete.call(void 0,{target:this}),this.saveFile(...e)}))}toDataURL(e,t){const o=O(e)?e:this.workbookOptions(e,t);return x(o)}workbookOptions(e,t){const o=this.getExportData(e),r=this.props.children,l=r&&r.type&&"KendoReactGrid"===r.type.displayName&&r.props&&a.Children.toArray(r.props.children),s=this.extractColumns(l||t||this.props.columns||a.Children.toArray(r));return y({columns:s,data:o.data,group:o.group,filterable:this.props.filterable,creator:this.props.creator,date:this.props.date,dir:this.props.dir,hierarchy:this.props.hierarchy,paddingCellOptions:this.props.paddingCellOptions,headerPaddingCellOptions:this.props.headerPaddingCellOptions,collapsible:this.props.collapsible})}render(){return a.createElement(a.Fragment,null,this.props.children||null,this.showLicenseWatermark&&a.createElement(i.WatermarkOverlay,null))}};C.propTypes={children:o.any,columns:o.arrayOf(o.any),creator:o.string,data:o.any,date:o.any,filterable:o.bool,fileName:o.string,forceProxy:o.bool,group:o.any,headerPaddingCellOptions:o.any,paddingCellOptions:o.any,proxyURL:o.string,dir:o.string,hierarchy:o.bool,collapsible:o.bool},C.defaultProps={fileName:"Export.xlsx",forceProxy:!1,collapsible:!1};let k=C;const E=e=>null;E.propTypes={cellOptions:o.any,field:o.string,footerCellOptions:o.any,footer:o.oneOfType([o.func,o.element]),groupFooterCellOptions:o.any,groupFooter:o.oneOfType([o.func,o.element]),groupHeaderCellOptions:o.any,groupHeader:o.oneOfType([o.func,o.element]),headerCellOptions:o.any,hidden:o.bool,level:o.number,locked:o.bool,title:o.string,width:o.number};const v=e=>null;v.propTypes={children:o.oneOfType([o.arrayOf(o.element),o.element]),headerCellOptions:o.any,hidden:o.bool,level:o.number,locked:o.bool,title:o.string,width:o.number};class w extends a.PureComponent{}let R=class extends a.PureComponent{};class P extends a.PureComponent{}e.KendoOoxml=p,e.ExcelExport=k,e.ExcelExportColumn=E,e.ExcelExportColumnGroup=v,e.ExcelExportFooter=w,e.ExcelExportGroupFooter=R,e.ExcelExportGroupHeader=P,e.isWorkbookOptions=O,e.toDataURL=x,e.workbookOptions=y}));