@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
6 lines • 6.68 kB
JavaScript
/* @license */
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`kendo.core.min.js`),require(`kendo.data.min.js`)):typeof define==`function`&&define.amd?define([`exports`,`kendo.core.min`,`kendo.data.min`],t):(e=typeof globalThis<`u`?globalThis:e||self,t((e.kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Csv={}),e.kendo._globals.Core,e.kendo._globals.Data))})(this,function(e,t,n){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function r(e,t){let n=(e??``).split(`.`),r=t;for(let e of n){if(e===`__proto__`||e===`constructor`||e===`prototype`)return;r=r?r[e]:void 0}return r}function i(e,t,n=`,`,r){let i=e.data;if(i.length>0&&typeof i[0]==`object`&&`field`in i[0]&&`value`in i[0]&&`items`in i[0]){let e=[];return{rows:c(i,t,0,e,[],n,r),groupedFields:e}}return{rows:i,groupedFields:[]}}function a(e){return typeof e==`object`&&`field`in e&&`items`in e}function o(e,t,n,r,i){let a={},o=i?i(t,e):t.join(`/`);if(i&&typeof o==`string`&&o.includes(r))throw Error(`groupValueFormatter returned a string containing the CSV delimiter '${r}'. Formatted value: "${o}"`);a.__group__=o;for(let e of n)a[e]=``;return a}function s(e,t){if(t&&typeof e==`object`&&!Array.isArray(e)){let t={...e};return t.__group__=``,t}return e}function c(e,t,n=0,r=[],i=[],l=`,`,u){let d=[];for(let f of e){n===r.length&&r.push(f.field);let e=[...i,f.value];if(f.items.length>0){let i=f.items[0];a(i)?d.push(...c(f.items,t,n+1,r,e,l,u)):(t&&d.push(o(r,e,t,l,u)),f.items.forEach(e=>{d.push(s(e,t))}))}}return d}function l(e,t,n,r,i){let a=e.map(e=>{let r=n.indexOf(e);return r>=0?t[r]:e}),o=i?i(a):a.join(`/`);if(i&&o.includes(r))throw Error(`groupHeaderFormatter returned a string containing the CSV delimiter '${r}'. Formatted value: "${o}"`);return[o,...t]}function u({data:e,names:t=null,keys:n=t,delimiter:a=`,`,lineSeparator:o=`\r
`,preventFormulaInjection:s=!0,maxCellLength:c=32767,maxRows:u=1e6,maxColumns:d=1e3,includeUTF8BOM:f=!1,groupHeaderFormatter:p,groupValueFormatter:m}){let h,g=t,_=n;if((!a||/[\r\n]/.test(a)||a.length>1&&a!==` `)&&(a=`,`),e&&typeof e==`object`&&`data`in e&&`total`in e){let t=i(e,n,a,m);h=t.rows,t.groupedFields.length>0&&n&&(g&&=l(t.groupedFields,g,n,a,p),_=[`__group__`,...n])}else h=e;if(n&&!Array.isArray(n))throw Error(`toCSV: keys must be an array`);_&&_.length>d&&(_=_.slice(0,d),g&&g.length>d&&(g=g.slice(0,d))),h.length>u&&(h=h.slice(0,u));let v=f?``:``;return g&&y(g),h.forEach(y),v;function y(e){if(Array.isArray(e))v+=e.map(b).join(a);else{if(!_)throw Error("toCSV: `keys` argument is mandatory for non-array data rows");e instanceof Map?v+=_.map(t=>b(e.get(t))).join(a):v+=_.map(t=>b(r(t,e))).join(a)}v+=o}function b(e){if(e==null)return``;if(e instanceof Date)return e.toISOString();let t=String(e);return s&&(/^\s*[=+\-@\t\r]/.test(t)||/[\n\r]\s*[=+\-@\t\r]/.test(t))&&(typeof e==`number`||(t=`'`+t)),t.length>c&&(t=t.substring(0,c)),[a,`
`,`\r`,`"`].some(e=>t.includes(e))&&(t=`"${t.replace(/"/g,`""`)}"`),t}}function d(e){let t=`text/csv; charset=UTF-8`;return e.names&&(t+=`; header=present`),t}function f(e){let t=u(e);return new Blob([t],{type:d(e)})}(function(e,t){let n=e.extend;t.CSVDataProvider=t.Class.extend({init:function(e){this.options=e;let r=e.dataSource;if(r instanceof t.data.DataSource){r.filter()||(r.options.filter=void 0),this.dataSource=new r.constructor(n({},r.options,{page:e.allPages?0:r.page(),filter:r.filter(),pageSize:e.allPages?r.total():r.pageSize()||r.total(),sort:r.sort(),group:r.group(),aggregate:r.aggregate()}));let t=r.data();if(t.length>0){this.dataSource._data=t;let e=this.dataSource.transport;r._isServerGrouped&&r._isServerGrouped()&&e.options&&e.options.data&&(e.options.data=null)}}else this.dataSource=t.data.DataSource.create(r)},export:function(){return e.Deferred((function(e){this.dataSource.fetch().then((function(){let t=this.dataSource.view();t.length&&t[0]&&t[0].field!==void 0&&t[0].items!==void 0&&(t={data:t,total:t.length}),e.resolve(t)}).bind(this))}).bind(this)).promise()}})})(kendo.jQuery,kendo),(function(e,t){function n(e){let t=[];for(let r=0;r<e.length;r++)e[r].columns?.length?t=t.concat(n(e[r].columns)):t.push(e[r]);return t}t.CSVMixin={extend:function(t){t.events.push(`csvExport`),t.options.csv=e.extend(t.options.csv,this.options),t.saveAsCSV=this.saveAsCSV,t.toCSVString=this.toCSVString,t._renderCSVData=this._renderCSVData,t._saveCSVData=this._saveCSVData,t._saveCSVToFile=this._saveCSVToFile,t._getCSVColumnsInfo=this._getCSVColumnsInfo},options:{proxyURL:``,allPages:!1,filterable:!1,fileName:`Export.csv`,delimiter:`,`,lineSeparator:`\r
`,preventFormulaInjection:!0,maxCellLength:32767,maxRows:1e6,maxColumns:1e3,includeUTF8BOM:!1},_getCSVColumnsInfo:function(){let e=this.options.csv||{},t=n(this.columns||[]).filter(function(e){return!e.hidden&&!(e.exportable===!1||e.exportable?.csv===!1)});return{keys:e.keys||t.map(function(e){return e.field||``}),names:e.names||t.map(function(e){return e.title||e.field||``})}},_saveCSVToFile:function(e,n){let r=this.options.csv||{},i=new Blob([e],{type:t.csv.getCSVMimeType({names:n})}),a=new FileReader;a.onload=function(){t.saveAs({dataURI:a.result,fileName:r.fileName,proxyURL:r.proxyURL,forceProxy:r.forceProxy})},a.readAsDataURL(i)},_renderCSVData:function(e,n){let r=this.options.csv||{},i=this._getCSVColumnsInfo(),a=n===!1?void 0:i.names,o=typeof r.data==`function`?r.data(e):e;return{csvString:t.csv.toCSV({data:o,keys:i.keys,names:a,delimiter:r.delimiter,lineSeparator:r.lineSeparator,preventFormulaInjection:r.preventFormulaInjection,maxCellLength:r.maxCellLength,maxRows:r.maxRows,maxColumns:r.maxColumns,includeUTF8BOM:r.includeUTF8BOM,groupHeaderFormatter:r.groupHeaderFormatter,groupValueFormatter:r.groupValueFormatter}),names:a||[]}},_saveCSVData:function(e,t){let n=this._renderCSVData(e,t);return this._saveCSVToFile(n.csvString,n.names),n.csvString},saveAsCSV:function(){let e=this,n=this.options.csv||{};return new t.CSVDataProvider({dataSource:this.dataSource,allPages:n.allPages,filterable:n.filterable}).export().then(function(t){return e._saveCSVData(t)})},toCSVString:function(){let n=this.options.csv||{},r=e.Deferred(),i=this;return new t.CSVDataProvider({dataSource:this.dataSource,allPages:n.allPages,filterable:n.filterable}).export().then(function(e){r.resolve(i._renderCSVData(e).csvString)}),r.promise()}}})(kendo.jQuery,kendo),(function(e){window.kendo.csv=window.kendo.csv||{},window.kendo.csv.toCSV=u,window.kendo.csv.toCSVBlob=f,window.kendo.csv.getCSVMimeType=d})(window.kendo.jQuery),e.__meta__={id:`csv`,name:`CSV generation`,category:`framework`,advanced:!0,mixin:!0,depends:[`core`]}});
//# sourceMappingURL=kendo.csv.min.js.map