@mhmdaljefri/revogrid
Version:
Virtual reactive data grid component - RevoGrid.
1 lines • 965 B
JavaScript
import{r as t,c as r}from"./index-a7f99799.js";const s=class{constructor(s){t(this,s),this.copyRegion=r(this,"copyRegion",3),this.pasteRegion=r(this,"pasteRegion",3)}onPaste(t){const r=this.getData(t),s=r.types.indexOf("text/html")>-1,o=r.getData(s?"text/html":"text"),e=s?this.htmlParse(o):this.textParse(o);this.pasteRegion.emit(e),t.preventDefault()}copyStarted(t){this.copyRegion.emit(this.getData(t)),t.preventDefault()}async doCopy(t,r){t.setData("text/plain",r?this.parserCopy(r):"")}parserCopy(t){return t.map((t=>t.join("\t"))).join("\n")}textParse(t){const r=[],s=t.split(/\r\n|\n|\r/);for(let t in s)r.push(s[t].split("\t"));return r}htmlParse(t){const r=[],s=document.createRange().createContextualFragment(t).querySelector("table");for(const t of Array.from(s.rows))r.push(Array.from(t.cells).map((t=>t.innerText)));return r}getData(t){var r;return t.clipboardData||(null===(r=window)||void 0===r?void 0:r.clipboardData)}};export{s as revogr_clipboard}