UNPKG

@progress/kendo-vue-grid

Version:
9 lines (8 loc) 2.51 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("vue"),g=require("@progress/kendo-csv"),b=require("@progress/kendo-file-saver"),m=require("@progress/kendo-data-query"),i=require("./utils/dataProcessing.js"),f=e=>e&&typeof e=="object"&&"items"in e&&"field"in e,S=e=>e&&typeof e=="object"&&"data"in e?e.data||[]:Array.isArray(e)?e:[],C=(e,t)=>{const u=[],a=[];return e.length>0?e.forEach(({field:n,title:o})=>{u.push(n),a.push(o)}):t.length>0&&!Array.isArray(t[0])&&!f(t[0])&&Object.keys(t[0]).forEach(n=>{u.push(n),a.push(n)}),{autoKeys:u,autoNames:a}},A=(e,t,u)=>{const a=u.allPages!==!1,n=i.normalizeAutoProcessData(t.autoProcessData);if(n)return i.processData(e,{autoProcessData:n,group:t.group,defaultGroup:t.defaultGroup,sort:t.sort,defaultSort:t.defaultSort,filter:t.filter,defaultFilter:t.defaultFilter,search:t.search,pageable:t.pageable,take:t.take,skip:t.skip,includePaging:!a}).data;const o=t.group||t.defaultGroup;return o&&o.length>0?m.process(e,{group:o}).data:e},x=(e,t,u)=>{var o,s;let a=(o=e.keys)!=null?o:void 0,n=(s=e.names)!=null?s:void 0;if(!a||!n){const{autoKeys:l,autoNames:c}=C(t,u);a||a!=null||(a=l.length?l:void 0),n||n!=null||(n=c.length?c:void 0)}return{keys:a,names:n}},j=p.defineComponent({name:"BaseCSVExport",props:{gridProps:{type:Object,required:!0},csv:{type:[Boolean,Object],default:void 0},fileName:{type:String,default:"grid-export.csv"},onCsvexport:{type:Function,default:void 0},columnsState:{type:Array,default:void 0}},setup(e,{expose:t}){const u=()=>{const n=typeof e.csv=="object"&&e.csv!==null?e.csv:{},o=n.data||e.gridProps.dataItems||[];let s=S(o);const l=e.onCsvexport;l&&(s=l(s)),s=A(s,e.gridProps,n);const c=(e.columnsState||[]).filter(r=>r.field&&!r.hidden&&r.show!==!1).map(r=>({field:r.field,title:r.title||r.field})),{keys:d,names:v}=x(n,c,s),y=s.length>0&&f(s[0])?{data:s,total:s.length}:s,h={...n,data:y,keys:d,names:v};return g.toCSVBlob(h)};return t({save:()=>{const n=typeof e.csv=="object"&&e.csv!==null?e.csv:{},o=u(),s=n.fileName||e.fileName||"grid-export.csv";b.saveAs(o,s)},getBlob:u}),()=>null}});exports.BaseCSVExport=j;