@progress/kendo-react-data-tools
Version:
Includes React Pager & React Filter component, an intuitive interface to create complex filter descriptions. KendoReact Data Tools package
14 lines (13 loc) • 3.23 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("@progress/kendo-react-common");var b=(t=>(t.copy="copy",t.cut="cut",t.paste="paste",t))(b||{});const C=(t,n,e,a)=>{const s=g.getter(a),l=t.data.findIndex(i=>s(i)===s(n[0].dataItem))||0,o=n.length<2?e:n.length;return t.data.filter((i,c)=>c>=l&&c<l+o)||[]},x=t=>(t==null?void 0:t.map(e=>e.fields.map(a=>e.dataItem[a].toString())))||[],w=(t,n)=>{var i,c;const{event:e}=t,a=n.includes(`
`)?`
`:null,s=(i=e.cellDelimiter)!=null?i:" ",l=(c=e.newLineDelimiter)!=null?c:`\r
`,o=n.includes(l)?l:a;return(o?n.split(o):[n]).map(r=>r.includes(s)?r.split(s):[r])},S=(t,n)=>{var e;return((e=t.event.nativeEvent)==null?void 0:e.type)==="paste"?w(t,n):x(t.previousCopiedItems)},v=(t,n)=>{var u,y,h;const{event:e}=t,a=e.dataItem,s=(y=(u=t.dataItemKey)!=null?u:e.dataItemKey)!=null?y:"",l=g.getter(s),o=a&&!a.selected&&e.field?[{dataItem:e.dataItem,fields:[e.field]}]:D(t),d=o.length?o[0].fields[0]:(h=e.columns[0].field)!=null?h:"",i=e.columns.map(I=>{var f;return(f=I.field)!=null?f:""}),c=i.indexOf(d),r=S(t,n),p=C(t,o,r.length,s);return r.slice(0,p.length).map((I,f)=>{const F=c+I.length,P=i.slice(c,F),T={[s]:l(p[f])};return P.forEach((R,$)=>T[R]=I[$]),{dataItem:T,fields:P}})},L=(t,n)=>{if(!n.length)return null;let e="";return n.forEach((a,s,l)=>e+=`${t[a]}${s<l.length-1?" ":""}`),e},E=(t,n,e)=>{var o,d;const a=(o=e.cellDelimiter)!=null?o:" ",s=(d=e.newLineDelimiter)!=null?d:`\r
`;return`${n.join(a)}${s}${t}`},D=t=>{var i,c;const{event:n,selectedState:e,data:a}=t,s=(c=(i=t.dataItemKey)!=null?i:n.dataItemKey)!=null?c:"",l=g.getter(s),o={},d=[];return Object.entries(e).forEach(([r,p])=>{o[r]=g.isArray(p)?p.map(m=>n.columns[m]).filter(m=>!m.declarationIndex||m.declarationIndex>=0):n.columns.filter(m=>!m.declarationIndex||m.declarationIndex>=0)}),a==null||a.map(r=>{const p=l(r)||"";return o[p]&&d.push({dataItem:r,fields:o[p].map(m=>{var u;return(u=m.field)!=null?u:""})}),r}),d},K=(t,n)=>{var s,l;const e=(s=n.newLineDelimiter)!=null?s:`\r
`,a=t.map((o,d)=>{var c;let i=(c=L(o.dataItem,o.fields))!=null?c:"";return n.copyHeaders&&d===0&&(i=E(i,o.fields,n)),i?[i]:[]}).join(e);return(l=navigator.clipboard)==null||l.writeText(a),a},O=(t,n)=>{let e="";if(t.type==="paste"){const a=t.nativeEvent?t.nativeEvent.clipboardData:"";e=a?a.getData("text").trim():""}else e=K(n,t);return e},j=t=>{const{event:n}=t,e=D(t)||[],a=O(n,e)||"",s=n.type==="paste"?v(t,a)||[]:[];return{copiedItems:e,pastedItems:s,clipboardData:a}};exports.ClipboardActionType=b;exports.addHeaders=E;exports.getClipboardData=O;exports.getClipboardItemsToPaste=w;exports.getClipboardText=K;exports.getItemsToPaste=S;exports.getItemsToUpdateOnPaste=C;exports.getPastedItems=v;exports.getPreviouslyCopiedItemsData=x;exports.getSelectedItems=D;exports.itemToString=L;exports.populateClipboardData=j;