@revolist/revogrid 4.10.2 → 4.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/cjs/{column.drag.plugin-08ca04f4.js → column.drag.plugin-1005d5e5.js} +3 -3
  2. package/dist/cjs/{column.drag.plugin-08ca04f4.js.map → column.drag.plugin-1005d5e5.js.map} +1 -1
  3. package/dist/cjs/{column.service-2670e6e7.js → column.service-07fca9ee.js} +13 -7
  4. package/dist/cjs/column.service-07fca9ee.js.map +1 -0
  5. package/dist/cjs/{header-cell-renderer-db089f54.js → header-cell-renderer-452be4b4.js} +2 -2
  6. package/dist/cjs/{header-cell-renderer-db089f54.js.map → header-cell-renderer-452be4b4.js.map} +1 -1
  7. package/dist/cjs/index.cjs.js +4 -3
  8. package/dist/cjs/index.cjs.js.map +1 -1
  9. package/dist/cjs/revo-grid.cjs.entry.js +9 -8
  10. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  11. package/dist/cjs/revogr-attribution_7.cjs.entry.js +1 -1
  12. package/dist/cjs/revogr-data_4.cjs.entry.js +17 -18
  13. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  14. package/dist/collection/components/data/cell-renderer.js +11 -9
  15. package/dist/collection/components/data/cell-renderer.js.map +1 -1
  16. package/dist/collection/components/data/column.service.js +5 -5
  17. package/dist/collection/components/data/column.service.js.map +1 -1
  18. package/dist/collection/components/data/revogr-data.js +10 -13
  19. package/dist/collection/components/data/revogr-data.js.map +1 -1
  20. package/dist/collection/components/revoGrid/revo-grid.js +3 -3
  21. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  22. package/dist/collection/plugins/sorting/sorting.plugin.js +7 -6
  23. package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
  24. package/dist/collection/serve/data.js +12 -9
  25. package/dist/collection/types/interfaces.js.map +1 -1
  26. package/dist/collection/utils/column.utils.js +7 -2
  27. package/dist/collection/utils/column.utils.js.map +1 -1
  28. package/dist/esm/{column.drag.plugin-b7bba0da.js → column.drag.plugin-8ea8fdab.js} +3 -3
  29. package/dist/esm/{column.drag.plugin-b7bba0da.js.map → column.drag.plugin-8ea8fdab.js.map} +1 -1
  30. package/dist/esm/{column.service-9b0603f4.js → column.service-5d1cf29d.js} +13 -8
  31. package/dist/esm/column.service-5d1cf29d.js.map +1 -0
  32. package/dist/esm/{header-cell-renderer-fce020c3.js → header-cell-renderer-49cd23aa.js} +2 -2
  33. package/dist/esm/{header-cell-renderer-fce020c3.js.map → header-cell-renderer-49cd23aa.js.map} +1 -1
  34. package/dist/esm/index.js +3 -3
  35. package/dist/esm/revo-grid.entry.js +9 -8
  36. package/dist/esm/revo-grid.entry.js.map +1 -1
  37. package/dist/esm/revogr-attribution_7.entry.js +1 -1
  38. package/dist/esm/revogr-data_4.entry.js +17 -18
  39. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  40. package/dist/revo-grid/{column.drag.plugin-b7bba0da.js → column.drag.plugin-8ea8fdab.js} +2 -2
  41. package/dist/revo-grid/column.service-5d1cf29d.js +5 -0
  42. package/dist/revo-grid/column.service-5d1cf29d.js.map +1 -0
  43. package/dist/revo-grid/{header-cell-renderer-fce020c3.js → header-cell-renderer-49cd23aa.js} +2 -2
  44. package/dist/revo-grid/index.esm.js +1 -1
  45. package/dist/revo-grid/index.esm.js.map +1 -1
  46. package/dist/revo-grid/revo-grid.entry.js +1 -1
  47. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  48. package/dist/revo-grid/revogr-attribution_7.entry.js +1 -1
  49. package/dist/revo-grid/revogr-data_4.entry.js +1 -1
  50. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  51. package/dist/types/components/data/cell-renderer.d.ts +2 -4
  52. package/dist/types/components/data/column.service.d.ts +2 -2
  53. package/dist/types/components/data/revogr-data.d.ts +4 -4
  54. package/dist/types/components/revoGrid/revo-grid.d.ts +3 -3
  55. package/dist/types/components.d.ts +16 -16
  56. package/dist/types/plugins/sorting/sorting.plugin.d.ts +3 -1
  57. package/dist/types/types/interfaces.d.ts +5 -5
  58. package/dist/types/utils/column.utils.d.ts +1 -0
  59. package/hydrate/index.js +35 -30
  60. package/hydrate/index.mjs +35 -30
  61. package/package.json +1 -1
  62. package/readme.md +3 -3
  63. package/standalone/column.service.js +12 -7
  64. package/standalone/column.service.js.map +1 -1
  65. package/standalone/index.js +1 -1
  66. package/standalone/revo-grid.js +7 -6
  67. package/standalone/revo-grid.js.map +1 -1
  68. package/standalone/revogr-data2.js +17 -18
  69. package/standalone/revogr-data2.js.map +1 -1
  70. package/standalone/revogr-header2.js +1 -1
  71. package/standalone/revogr-overlay-selection2.js +1 -1
  72. package/dist/cjs/column.service-2670e6e7.js.map +0 -1
  73. package/dist/esm/column.service-9b0603f4.js.map +0 -1
  74. package/dist/revo-grid/column.service-9b0603f4.js +0 -5
  75. package/dist/revo-grid/column.service-9b0603f4.js.map +0 -1
  76. /package/dist/revo-grid/{column.drag.plugin-b7bba0da.js.map → column.drag.plugin-8ea8fdab.js.map} +0 -0
  77. /package/dist/revo-grid/{header-cell-renderer-fce020c3.js.map → header-cell-renderer-49cd23aa.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import{r as t,m as i,e as s,o as e,p as n,d as o,h as r}from"./column.service-9b0603f4.js";import{W as c,w as h,i as l,X as a,Y as u,b as f,o as d,Z as p,_ as v,u as m,j as b}from"./index-b1e05212.js";import{f as g}from"./row-header-utils-7af8fcbf.js";import{h as y}from"./index-a61f225b.js";import{b as w,i as j}from"./filter.button-d40ab17b.js";import{d as O}from"./debounce-7b511afc.js";import{d as S,O as x}from"./header-cell-renderer-fce020c3.js";const E=t=>({set(i){switch(i){case"count":case"sizes":case"originItemSize":{let i=0;const s=t.store.get("count");for(let e=0;e<s;e++){i+=t.store.get("sizes")[e]||t.store.get("originItemSize")}t.setStore({realSize:i});break}}}});const z=t=>{let i=null;let s=null;return{set(e,n){switch(e){case"sizes":{if(i&&i===n){i=null;return}s=null;break}case"trimmed":{const e=n;if(!s){s=t.store.get("sizes")}i=C(s,e||{});t.setSizes(i);break}}}}};function C(t,i){const s={};const e=Object.keys(t||{}).map(Number).sort(((t,i)=>t-i));const n=e[e.length-1];let o=0;for(let e=0;e<=n;e++){if(i[e]!==undefined){o++;if(t[e]!==undefined){continue}}if(t[e]!==undefined){s[e-o]=t[e]}}return s}function k(){return{indexes:[],count:0,trimmed:null,sizes:{},positionIndexToItem:{},indexToItem:{},positionIndexes:[]}}function P(){return Object.assign(Object.assign({},k()),{realSize:0,originItemSize:0})}class I{constructor(t){this.type=t;this.store=c(P());this.store.use(z({store:this.store,setSizes:this.setDimensionSize.bind(this)}));this.store.use(E({store:this.store,setStore:this.setStore.bind(this)}))}getCurrentState(){const i=P();const s=Object.keys(i);return t(s,((t,i)=>{const s=this.store.get(i);t[i]=s;return t}),i)}dispose(){h(this.store,P())}setStore(t){h(this.store,t)}drop(){h(this.store,k())}setDimensionSize(t={}){const i=l(this.store.get("originItemSize"),t);h(this.store,Object.assign(Object.assign({},i),{sizes:t}))}updateSizesPositionByIndexes(t,i=[]){const s=Object.assign({},this.store.get("sizes"));if(!Object.keys(s).length){return}const e={};i.forEach(((t,i)=>{if(!e[t]){e[t]=[]}e[t].push(i)}));const n={};t.forEach(((t,i)=>{const o=e[t];if(o&&o.length>0){const t=o.shift();if(t!==undefined&&t!==i&&s[t]){n[i]=s[t];delete s[t]}}}));if(Object.keys(n).length){this.setDimensionSize(Object.assign(Object.assign({},s),n))}}}const N=["rowPinStart","rgRow","rowPinEnd"];const q=["colPinStart","rgCol","colPinEnd"];function F(t){return N.indexOf(t)>-1}class M{constructor(t,i){this.revogrid=t;this.providers=i;this.h=y;this.subscriptions={}}addEventListener(t,i){this.revogrid.addEventListener(t,i);this.subscriptions[t]=i}watch(t,i,{immediate:s}={immediate:false}){const e=Object.getOwnPropertyDescriptor(this.revogrid,t)||Object.getOwnPropertyDescriptor(this.revogrid.constructor.prototype,t);Object.defineProperty(this.revogrid,t,{set(t){var s;const n=i(t);if(n===false){return}return(s=e===null||e===void 0?void 0:e.set)===null||s===void 0?void 0:s.call(this,t)},get(){var t;return(t=e===null||e===void 0?void 0:e.get)===null||t===void 0?void 0:t.call(this)}});if(s){i(e===null||e===void 0?void 0:e.value)}}removeEventListener(t){this.revogrid.removeEventListener(t,this.subscriptions[t]);delete this.subscriptions[t]}emit(t,i){const s=new CustomEvent(t,{detail:i,cancelable:true});this.revogrid.dispatchEvent(s);return s}clearSubscriptions(){for(let t in this.subscriptions){this.removeEventListener(t)}}destroy(){this.clearSubscriptions()}}function D(t,i){var s=-1,e=t==null?0:t.length;while(++s<e){if(i(t[s],s,t)===false){break}}return t}function R(t){return typeof t=="function"?t:a}function $(t,s){var e=u(t)?D:i;return e(t,R(s))}const B=7;var A;(function(t){t["headerClickAutosize"]="headerClickAutoSize";t["autoSizeOnTextOverlap"]="autoSizeOnTextOverlap";t["autoSizeAll"]="autoSizeAll"})(A||(A={}));class T extends M{constructor(t,i,e){super(t,i);this.providers=i;this.config=e;this.autoSizeColumns=null;this.dataResolve=null;this.dataReject=null;this.letterBlockSize=(e===null||e===void 0?void 0:e.letterBlockSize)||B;if(e===null||e===void 0?void 0:e.preciseSize){this.precsizeCalculationArea=this.initiatePresizeElement();t.appendChild(this.precsizeCalculationArea)}const n=({detail:{source:t}})=>{this.setSource(t)};const o=({detail:t})=>{this.afteredit(t)};const r=({detail:t})=>{this.afterEditAll(t)};const c=({detail:{columns:t}})=>{this.columnSet(t)};const h=({detail:t})=>{const i=s(t.column);const e=this.getColumnSize(t.index,i);if(e){this.providers.dimension.setCustomSizes(i,{[t.index]:e},true)}};this.addEventListener("beforecolumnsset",c);switch(e===null||e===void 0?void 0:e.mode){case A.autoSizeOnTextOverlap:this.addEventListener("aftersourceset",n);this.addEventListener("afteredit",o);break;case A.autoSizeAll:this.addEventListener("aftersourceset",n);this.addEventListener("afteredit",r);break;default:this.addEventListener("headerdblclick",h);break}}async setSource(t){let i=this.autoSizeColumns;if(this.dataReject){this.dataReject();this.clearPromise()}if(!i){const t=new Promise(((t,i)=>{this.dataResolve=t;this.dataReject=i}));try{i=await t}catch(t){return}}$(i,((s,e)=>{const n={};$(i[e],(i=>{i.size=n[i.index]=t.reduce(((t,s)=>Math.max(t,this.getLength(s[i.prop]))),this.getLength(i.name||""))}));this.providers.dimension.setCustomSizes(e,n,true)}))}getLength(t){var i;const s=15;if(!t){return 0}try{const e=t.toString();if((i=this.config)===null||i===void 0?void 0:i.preciseSize){this.precsizeCalculationArea.innerText=e;return this.precsizeCalculationArea.scrollWidth+s*2}return e.length*this.letterBlockSize+s*2}catch(t){return 0}}afteredit(i){let s;if(this.isRangeEdit(i)){s=i.data}else{s={0:{[i.prop]:i.val}}}$(this.autoSizeColumns,((i,e)=>{const n={};$(i,(i=>{var e;const o=t(s,((t,s)=>{if(typeof s[i.prop]==="undefined"){return t}return Math.max(t||0,this.getLength(s[i.prop]))}),undefined);if(o&&((e=i.size)!==null&&e!==void 0?e:0)<o){i.size=n[i.index]=o}}));this.providers.dimension.setCustomSizes(e,n,true)}))}afterEditAll(t){const i={};if(this.isRangeEdit(t)){$(t.data,(t=>$(t,((t,s)=>i[s]=true))))}else{i[t.prop]=true}$(this.autoSizeColumns,((t,s)=>{const e={};$(t,(t=>{if(i[t.prop]){const i=this.getColumnSize(t.index,s);if(i){e[t.index]=i}}}));this.providers.dimension.setCustomSizes(s,e,true)}))}getColumnSize(i,s){var e,n;const o=(n=(e=this.autoSizeColumns)===null||e===void 0?void 0:e[s])===null||n===void 0?void 0:n[i];if(!o){return 0}return t(this.providers.data.stores,((i,s)=>{const e=t(s.store.get("items"),((t,i,e)=>{const n=f(s.store,e);return Math.max(t||0,this.getLength(n===null||n===void 0?void 0:n[o.prop]))}),0);return Math.max(i,e)}),o.size||0)}columnSet(t){var i;for(let s of q){const e=s;const n=t[e];for(let t in n){if(n[t].autoSize||((i=this.config)===null||i===void 0?void 0:i.allColumns)){if(!this.autoSizeColumns){this.autoSizeColumns={}}if(!this.autoSizeColumns[e]){this.autoSizeColumns[e]={}}this.autoSizeColumns[e][t]=Object.assign(Object.assign({},n[t]),{index:parseInt(t,10)})}}}if(this.dataResolve){this.dataResolve(this.autoSizeColumns||{});this.clearPromise()}}clearPromise(){this.dataResolve=null;this.dataReject=null}isRangeEdit(t){return!!t.data}initiatePresizeElement(){var t;const i={position:"absolute",fontSize:"14px",height:"0",width:"0",whiteSpace:"nowrap",top:"0",overflowX:"scroll"};const s=document.createElement("div");for(let e in i){s.style[e]=(t=i[e])!==null&&t!==void 0?t:""}s.classList.add("revo-test-container");return s}destroy(){var t;super.destroy();(t=this.precsizeCalculationArea)===null||t===void 0?void 0:t.remove()}}class J extends M{constructor(t,i){super(t,i);this.providers=i;this.stretchedColumn=null;this.scrollSize=d(document);const s=({detail:{columns:t}})=>this.applyStretch(t);this.addEventListener("beforecolumnapplied",s)}setScroll({type:t,hasScroll:i}){var s;if(t==="rgRow"&&this.stretchedColumn&&((s=this.stretchedColumn)===null||s===void 0?void 0:s.initialSize)===this.stretchedColumn.size){if(i){this.stretchedColumn.size-=this.scrollSize;this.apply();this.dropChanges()}}}activateChanges(){const t=({detail:t})=>this.setScroll(t);this.addEventListener("scrollchange",t)}dropChanges(){this.stretchedColumn=null;this.removeEventListener("scrollchange")}apply(){if(!this.stretchedColumn){return}const t="rgCol";const i=this.providers.dimension.stores[t].store.get("sizes");this.providers.dimension.setCustomSizes(t,Object.assign(Object.assign({},i),{[this.stretchedColumn.index]:this.stretchedColumn.size}),true)}applyStretch(t){this.dropChanges();let i=this.revogrid.clientWidth-1;$(t,((t,s)=>{const e=this.providers.dimension.stores[s].store.get("realSize");i-=e}));if(this.revogrid.rowHeaders){const t=this.providers.data.stores.rgRow.store.get("source").length;const s=this.revogrid.rowHeaders;const e=g(t,typeof s==="object"?s:undefined);if(e){i-=e}}if(i>0){const s=t.rgCol.length-1;const e=t.rgCol[s];const n=(e===null||e===void 0?void 0:e.size)||this.revogrid.colSize||0;const o=i+n-1;if(e&&!e.autoSize&&n<o){this.stretchedColumn={initialSize:o,index:s,size:o};this.apply();this.activateChanges()}}}}function H(t){return!!t.applyStretch}function L(t,i,s){if(t===t){if(s!==undefined){t=t<=s?t:s}if(i!==undefined){t=t>=i?t:i}}return t}var X=4294967295;function G(t){return t?L(p(t),0,X):0}function K(t,i,s,e){var n=t.length;s=p(s);if(s<0){s=-s>n?0:n+s}e=e===undefined||e>n?n:p(e);if(e<0){e+=n}e=s>e?0:G(e);while(s<e){t[s++]=i}return t}function U(t,i,s,e){var n=t==null?0:t.length;if(!n){return[]}if(s&&typeof s!="number"&&v(t,i,s)){s=0;e=n}return K(t,i,s,e)}const V={mime:"text/csv",fileKind:"csv",bom:true,columnDelimiter:",",rowDelimiter:"\r\n",encoding:""};const W=String.fromCharCode(13);const Y=String.fromCharCode(10);const Z=String.fromCharCode(34);const _=String.fromCharCode(65279);const Q=new RegExp('"',"g");class tt{constructor(t={}){this.options=Object.assign(Object.assign({},V),t)}doExport({data:t,headers:i,props:s}){let o=this.options.bom?_:"";if((i===null||i===void 0?void 0:i.length)>0){i.forEach((t=>{if(!t.length){return}o+=this.prepareHeader(t,this.options.columnDelimiter);o+=this.options.rowDelimiter}))}t.forEach(((t,i)=>{if(i>0){o+=this.options.rowDelimiter}if(e(t)){o+=this.parseCell(n(t),this.options.columnDelimiter);return}o+=s.map((i=>this.parseCell(t[i],this.options.columnDelimiter))).join(this.options.columnDelimiter)}));return o}prepareHeader(t,i){let s="";const e=t.map((t=>this.parseCell(t,i,true)));s+=e.join(i);return s}parseCell(t,i,s=false){let e=t;if(typeof t!=="string"){e=JSON.stringify(t)}const n=[W,Z,Y,i];if(typeof e==="undefined"){return""}if(e!==""&&(s||n.some((t=>e.indexOf(t)>=0)))){return`"${e.replace(Q,'""')}"`}return e}}var it;(function(t){t["csv"]="csv"})(it||(it={}));class st extends M{async exportString(t={},i=it.csv){const s=await this.beforeexport();if(!s){return null}return this.formatter(i,t).doExport(s)}async exportBlob(t={},i=it.csv){return await this.getBlob(this.formatter(i,t))}async exportFile(t={},i=it.csv){const s=this.formatter(i,t);const e=window.URL||window.webkitURL;const n=document.createElement("a");const{filename:o,fileKind:r}=s.options;const c=`${o}.${r}`;const h=await this.getBlob(s);const l=h?e.createObjectURL(h):"";n.style.display="none";n.setAttribute("href",l);n.setAttribute("download",c);this.revogrid.appendChild(n);n.dispatchEvent(new MouseEvent("click"));this.revogrid.removeChild(n);await m(120);e.revokeObjectURL(l)}async getBlob(t){const i=`${t.options.mime};charset=${t.options.encoding}`;if(typeof Blob!=="undefined"){const s=await this.beforeexport();if(!s){return null}return new Blob([t.doExport(s)],{type:i})}return null}async beforeexport(){let t=await this.getData();const i=this.emit("beforeexport",{data:t});if(i.defaultPrevented){return null}return i.detail.data}async getData(){const t=await this.getSource();const i=[];const s=[];q.forEach(((t,e)=>{s.push(this.getColPerSource(t).then((t=>i[e]=t)))}));await Promise.all(s);const e={headers:[],props:[]};for(let t of i){t.headers.forEach(((t,i)=>{if(!e.headers[i]){e.headers[i]=[]}e.headers[i].push(...t)}));e.props.push(...t.props)}return Object.assign({data:t},e)}async getColPerSource(t){const i=await this.revogrid.getColumnStore(t);const s=i.get("source");const e=i.get("items");const n=i.get("groupingDepth");const o=i.get("groups");const r=[];const c=[];const h=e.reduce(((t,i,e)=>{const n=s[i].prop;r.push(s[i].name||"");c.push(n);t[n]=e;return t}),{});const l=this.getGroupHeaders(n,o,e,h);l.push(r);return{headers:l,props:c}}getGroupHeaders(t,i,s,e){const n=[];const o=U(new Array(s.length),"");for(let s=0;s<t;s++){const t=[...o];n.push(t);if(!i[s]){continue}const r=i[s];r.forEach((i=>{const s=this.findGroupStartIndex(i.ids,e);if(typeof s==="number"){t[s]=i.name}}))}return n}findGroupStartIndex(t,i){let s;t.forEach((t=>{const e=i[t];if(typeof e==="number"){if(typeof s!=="number"||s>e){s=e}}}));return s}async getSource(){const t=[];const i=[];N.forEach((s=>{const e=[];t.push(e);const n=this.revogrid.getVisibleSource(s).then((t=>e.push(...t)));i.push(n)}));await Promise.all(i);return t.reduce(((t,i)=>{t.push(...i);return t}),[])}formatter(t,i={}){switch(t){case it.csv:return new tt(i);default:throw new Error("Unknown format")}}}const et=(t,i)=>{if(typeof t==="undefined"||t===null&&!i){return true}if(typeof t!=="string"){t=JSON.stringify(t)}const s=i===null||i===void 0?void 0:i.toString().toLocaleLowerCase();if((s===null||s===void 0?void 0:s.length)===0){return true}return t.toLocaleLowerCase()===s};const nt=(t,i)=>!et(t,i);nt.extra="input";et.extra="input";const ot=function(t,i){let s;if(typeof t==="number"&&typeof i!=="undefined"&&i!==null){s=parseFloat(i===null||i===void 0?void 0:i.toString());return t>s}return false};ot.extra="input";const rt=function(t,i){return et(t,i)||ot(t,i)};rt.extra="input";const ct=function(t,i){let s;if(typeof t==="number"&&typeof i!=="undefined"&&i!==null){s=parseFloat(i.toString());return t<s}else{return false}};ct.extra="input";const ht=function(t,i){return et(t,i)||ct(t,i)};ht.extra="input";const lt=t=>!(t===""||t===null||t===void 0);const at=t=>!lt(t);const ut=(t,i)=>{if(!t){return false}if(!i){return true}if(typeof t!=="string"){t=JSON.stringify(t)}if(typeof i!=="string"){i=JSON.stringify(i)}return t.toLocaleLowerCase().indexOf(i.toLocaleLowerCase())===0};ut.extra="input";const ft=(t,i)=>{if(!i){return true}if(!t){return false}if(i){if(typeof t!=="string"){t=JSON.stringify(t)}return t.toLocaleLowerCase().indexOf(i.toString().toLowerCase())>-1}return true};const dt=(t,i)=>!ft(t,i);dt.extra="input";ft.extra="input";const pt={none:()=>true,empty:at,notEmpty:lt,eq:et,notEq:nt,begins:ut,contains:ft,notContains:dt,eqN:et,neqN:nt,gt:ot,gte:rt,lt:ct,lte:ht};const vt={string:["notEmpty","empty","eq","notEq","begins","contains","notContains"],number:["notEmpty","empty","eqN","neqN","gt","gte","lt","lte"]};const mt={none:"None",empty:"Not set",notEmpty:"Set",eq:"Equal",notEq:"Not equal",begins:"Begins with",contains:"Contains",notContains:"Does not contain",eqN:"=",neqN:"!=",gt:">",gte:">=",lt:"<",lte:"<="};const bt="filter";const gt="filterconfigchanged";const yt="revogr-filter-panel";class wt extends M{constructor(t,i,s){var e;super(t,i);this.revogrid=t;this.filterCollection={};this.multiFilterItems={};this.filterByType=Object.assign({},vt);this.filterNameIndexByType=Object.assign({},mt);this.filterFunctionsIndexedByType=Object.assign({},pt);this.filterProp=w;if(s){this.initConfig(s)}const n=this.revogrid.registerVNode.filter((t=>typeof t==="object"&&t.t!==yt));this.revogrid.registerVNode=[...n,y("revogr-filter-panel",{filterItems:this.multiFilterItems,filterNames:this.filterNameIndexByType,filterEntities:this.filterFunctionsIndexedByType,filterCaptions:(e=s===null||s===void 0?void 0:s.localization)===null||e===void 0?void 0:e.captions,onFilterChange:t=>this.onFilterChange(t.detail),onResetChange:t=>this.onFilterReset(t.detail),disableDynamicFiltering:s===null||s===void 0?void 0:s.disableDynamicFiltering,ref:t=>this.pop=t}," ",this.extraContent())];const o=async()=>{const t=Object.keys(this.filterCollection);if(t.length>0){t.forEach(((t,i)=>{if(!this.multiFilterItems[t]){this.multiFilterItems[t]=[{id:i,type:this.filterCollection[t].type,value:this.filterCollection[t].value,relation:"and"}]}}))}if(Object.keys(this.multiFilterItems).length===0){return}await this.runFiltering(this.multiFilterItems)};this.addEventListener("headerclick",(t=>this.headerclick(t)));this.addEventListener(gt,(({detail:t})=>{if(!t){this.clearFiltering();return}if(typeof t==="object"){this.initConfig(t)}o()}));this.addEventListener("aftersourceset",o);this.addEventListener("filter",(({detail:t})=>this.onFilterChange(t)))}extraContent(){return null}initConfig(i){if(i.multiFilterItems){this.multiFilterItems=Object.assign({},i.multiFilterItems)}if(i.customFilters){for(let t in i.customFilters){const s=i.customFilters[t];if(!this.filterByType[s.columnFilterType]){this.filterByType[s.columnFilterType]=[]}this.filterByType[s.columnFilterType].push(t);this.filterFunctionsIndexedByType[t]=s.func;this.filterNameIndexByType[t]=s.name}}if(i.filterProp){this.filterProp=i.filterProp}const s=i.include;if(s){const t={};for(let i in this.filterByType){const e=this.filterByType[i].filter((t=>s.indexOf(t)>-1));if(e.length){t[i]=e}}if(Object.keys(t).length>0){this.filterByType=t}}if(i.collection){this.filterCollection=t(i.collection,((t,i,s)=>{if(this.filterFunctionsIndexedByType[i.type]){t[s]=i}else{console.warn(`${i.type} type is not found.`)}return t}),{})}if(i.localization){if(i.localization.filterNames){Object.entries(i.localization.filterNames).forEach((([t,i])=>{if(this.filterNameIndexByType[t]!=void 0){this.filterNameIndexByType[t]=i}}))}}}async headerclick(t){var i,s,e;const n=(i=t.detail.originalEvent)===null||i===void 0?void 0:i.target;if(!j(n)){return}t.preventDefault();const o=await((s=this.pop)===null||s===void 0?void 0:s.getChanges());if(o&&(o===null||o===void 0?void 0:o.prop)===t.detail.prop){(e=this.pop)===null||e===void 0?void 0:e.show();return}if(!this.pop){return}const r=this.revogrid.getBoundingClientRect();const c=n.getBoundingClientRect();const h=t.detail.prop;this.pop.show(Object.assign(Object.assign({},this.filterCollection[h]),{x:c.x-r.x,y:c.y-r.y+c.height,autoCorrect:true,prop:h,filterTypes:this.getColumnFilter(t.detail.filter)}))}getColumnFilter(t){let i="string";if(!t){return{[i]:this.filterByType[i]}}if(this.isValidType(t)){i=t}else if(typeof t==="object"&&t.length){return t.reduce(((t,i)=>{if(this.isValidType(i)){t[i]=this.filterByType[i]}return t}),{})}return{[i]:this.filterByType[i]}}isValidType(t){return!!(typeof t==="string"&&this.filterByType[t])}async onFilterChange(t){this.multiFilterItems=t;this.runFiltering(this.multiFilterItems)}onFilterReset(t){delete this.multiFilterItems[t!==null&&t!==void 0?t:""];this.onFilterChange(this.multiFilterItems)}async doFiltering(t,i,s,e){const n=[];const o={};s.forEach((t=>{const i=Object.assign({},t);const s=e[i.prop];o[i.prop]=i;if(i[this.filterProp]&&!s){delete i[this.filterProp];n.push(i)}if(!i[this.filterProp]&&s){n.push(i);i[this.filterProp]=true}}));const r=this.getRowFilter(i,e,o);const{defaultPrevented:c,detail:h}=this.emit("beforefiltertrimmed",{collection:t,itemsToFilter:r,source:i,filterItems:e});if(c){return}const l=await this.revogrid.addTrimmed(h.itemsToFilter,bt);if(l.defaultPrevented){return}this.providers.column.updateColumns(n);this.emit("afterfilterapply")}async clearFiltering(){this.multiFilterItems={};await this.runFiltering(this.multiFilterItems)}async runFiltering(t){const i={};const s=Object.keys(t);for(const e of s){if(t[e].length>0){const s=t[e][0];i[e]={filter:this.filterFunctionsIndexedByType[s.type],type:s.type,value:s.value}}}this.filterCollection=i;const e=this.providers.column.getColumns();const n=this.providers.data.stores["rgRow"].store.get("source");const{defaultPrevented:o,detail:r}=this.emit("beforefilterapply",{collection:this.filterCollection,source:n,columns:e,filterItems:this.multiFilterItems});if(o){return}this.doFiltering(r.collection,r.source,r.columns,r.filterItems)}getRowFilter(t,i,s){const e=Object.keys(i);const n={};let r=0;let c=[];t.forEach(((t,h)=>{for(const l of e){const e=i[l];r=0;c=[];for(const[i,n]of e.entries()){const h=this.filterFunctionsIndexedByType[n.type];const a=s[l];const u=a?o(t,s[l]):t[l];if(n.relation==="or"){c=[];if(h(u,n.value)){continue}r++}else{c.push(!h(u,n.value));const t=e[i+1];if(!t||t.relation!=="and"){if(c.indexOf(true)===-1){c=[];continue}r+=c.length;c=[]}}}if(r===e.length){n[h]=true}}}));return n}}const jt="column-drag-start";class Ot{constructor(){this.offset=0}renderAutoscroll(t,i){if(!i){return}this.autoscrollEl=document.createElement("div");this.autoscrollEl.classList.add("drag-auto-scroll-y");i.appendChild(this.autoscrollEl)}autoscroll(t,i,s="translateX"){if(!this.autoscrollEl){return}const e=10;const n=Math.min(t+e,i-3);this.autoscrollEl.style.transform=`${s}(${n}px)`;this.autoscrollEl.scrollIntoView({block:"nearest",inline:"nearest"})}start(t,{dataEl:i,gridRect:s,scrollEl:e,gridEl:n},o="left"){n.classList.add(jt);const r=e.getBoundingClientRect();if(r){this.offset=r[o]-s[o]}this.renderAutoscroll(t,i)}stop(t){var i;t.classList.remove(jt);if(this.element){this.element.hidden=true}this.offset=0;(i=this.autoscrollEl)===null||i===void 0?void 0:i.remove();this.autoscrollEl=undefined}showHandler(t,i,s="translateX"){if(!this.element){return}if(this.offset){t=Math.max(t,this.offset)}t=Math.min(t,i);this.element.style.transform=`${s}(${t}px)`;this.element.hidden=false}render(){const t=this.element=document.createElement("div");t.classList.add("drag-position-y");t.hidden=true;return t}}const St=x;const xt="columndragmousemove";const Et="columndragend";const zt="beforecolumndragend";const Ct="columndragstart";class kt extends M{constructor(t,i){super(t,i);this.revogrid=t;this.providers=i;this.moveFunc=O((t=>this.doMove(t)),5);this.staticDragData=null;this.dragData=null;this.localSubscriptions={};this.orderUi=new Ot;t.appendChild(this.orderUi.render());t.classList.add("column-draggable");this.localSubscriptions["mouseleave"]={target:document,callback:t=>this.onMouseOut(t)};this.localSubscriptions["mouseup"]={target:document,callback:t=>this.onMouseUp(t)};this.localSubscriptions["mousemove"]={target:document,callback:t=>this.move(t)};this.addEventListener(St,(({detail:t})=>this.dragStart(t)))}dragStart({event:t,data:i}){if(t.defaultPrevented){return}const{defaultPrevented:s}=S(this.revogrid,Ct,i);if(s){return}this.clearOrder();const{mouseleave:e,mouseup:n,mousemove:o}=this.localSubscriptions;e.target.addEventListener("mouseleave",e.callback);n.target.addEventListener("mouseup",n.callback);const c=t.target.closest("revogr-header");const h=t.target.closest("revogr-viewport-scroll");if(!c||!h){return}if(r(i)||i.providers.type==="rowHeaders"){return}const l=this.getDimension(i.pin||"rgCol");const a=this.revogrid.getBoundingClientRect();const u=c.getBoundingClientRect();const f=b(l,Pt(t.x,a.left,u.left-a.left));this.staticDragData={startPos:t.x,startItem:f,data:i,dataEl:c,scrollEl:h,gridEl:this.revogrid,cols:l};this.dragData=this.getData(this.staticDragData);o.target.addEventListener("mousemove",o.callback);this.orderUi.start(t,Object.assign(Object.assign({},this.dragData),this.staticDragData))}doMove(t){if(!this.staticDragData){return}const i=this.dragData=this.getData(this.staticDragData);if(!i){return}const s=this.staticDragData.startPos;if(Math.abs(s-t.x)>10){const s=Pt(t.x,this.dragData.gridRect.left,this.dragData.scrollOffset);const e=b(this.staticDragData.cols,s);this.orderUi.autoscroll(s,i.elRect.width);this.orderUi.showHandler(e.end+i.scrollOffset,i.gridRect.width)}}move(t){S(this.revogrid,xt,t);this.moveFunc(t)}onMouseOut(t){this.clearOrder()}onMouseUp(t){if(this.dragData&&this.staticDragData){let i=Pt(t.x,this.dragData.gridRect.left,this.dragData.scrollOffset);if(i<0){i=0}const s=b(this.staticDragData.cols,i);const e=this.providers.column.stores[this.dragData.type].store;const n=[...e.get("items")];const{defaultPrevented:o}=S(this.revogrid,zt,Object.assign(Object.assign({},this.staticDragData),{startPosition:this.staticDragData.startItem,newPosition:s,newItem:e.get("source")[n[this.staticDragData.startItem.itemIndex]]}));if(!o){const t=n.splice(this.staticDragData.startItem.itemIndex,1);n.splice(s.itemIndex,0,...t);e.set("items",n)}S(this.revogrid,Et,this.dragData)}this.clearOrder()}clearLocalSubscriptions(){$(this.localSubscriptions,(({target:t,callback:i},s)=>t.removeEventListener(s,i)))}clearOrder(){this.staticDragData=null;this.dragData=null;this.clearLocalSubscriptions();this.orderUi.stop(this.revogrid)}clearSubscriptions(){super.clearSubscriptions();this.clearLocalSubscriptions()}getData({gridEl:t,dataEl:i,data:s}){const e=t.getBoundingClientRect();const n=i.getBoundingClientRect();const o=n.left-e.left;return{elRect:n,gridRect:e,type:s.pin||"rgCol",scrollOffset:o}}getDimension(t){return this.providers.dimension.stores[t].getCurrentState()}}function Pt(t,i,s){return t-i-s}export{T as A,M as B,kt as C,I as D,st as E,bt as F,J as S,H as a,gt as b,q as c,yt as d,wt as e,pt as f,vt as g,mt as h,F as i,Pt as j,$ as k,N as r};
5
- //# sourceMappingURL=column.drag.plugin-b7bba0da.js.map
4
+ import{r as t,o as i,f as s,p as e,q as n,e as o,j as r}from"./column.service-5d1cf29d.js";import{W as c,w as h,i as l,X as a,Y as u,b as f,o as d,Z as p,_ as v,u as m,j as b}from"./index-b1e05212.js";import{f as g}from"./row-header-utils-7af8fcbf.js";import{h as y}from"./index-a61f225b.js";import{b as w,i as j}from"./filter.button-d40ab17b.js";import{d as O}from"./debounce-7b511afc.js";import{d as S,O as x}from"./header-cell-renderer-49cd23aa.js";const E=t=>({set(i){switch(i){case"count":case"sizes":case"originItemSize":{let i=0;const s=t.store.get("count");for(let e=0;e<s;e++){i+=t.store.get("sizes")[e]||t.store.get("originItemSize")}t.setStore({realSize:i});break}}}});const z=t=>{let i=null;let s=null;return{set(e,n){switch(e){case"sizes":{if(i&&i===n){i=null;return}s=null;break}case"trimmed":{const e=n;if(!s){s=t.store.get("sizes")}i=C(s,e||{});t.setSizes(i);break}}}}};function C(t,i){const s={};const e=Object.keys(t||{}).map(Number).sort(((t,i)=>t-i));const n=e[e.length-1];let o=0;for(let e=0;e<=n;e++){if(i[e]!==undefined){o++;if(t[e]!==undefined){continue}}if(t[e]!==undefined){s[e-o]=t[e]}}return s}function k(){return{indexes:[],count:0,trimmed:null,sizes:{},positionIndexToItem:{},indexToItem:{},positionIndexes:[]}}function P(){return Object.assign(Object.assign({},k()),{realSize:0,originItemSize:0})}class I{constructor(t){this.type=t;this.store=c(P());this.store.use(z({store:this.store,setSizes:this.setDimensionSize.bind(this)}));this.store.use(E({store:this.store,setStore:this.setStore.bind(this)}))}getCurrentState(){const i=P();const s=Object.keys(i);return t(s,((t,i)=>{const s=this.store.get(i);t[i]=s;return t}),i)}dispose(){h(this.store,P())}setStore(t){h(this.store,t)}drop(){h(this.store,k())}setDimensionSize(t={}){const i=l(this.store.get("originItemSize"),t);h(this.store,Object.assign(Object.assign({},i),{sizes:t}))}updateSizesPositionByIndexes(t,i=[]){const s=Object.assign({},this.store.get("sizes"));if(!Object.keys(s).length){return}const e={};i.forEach(((t,i)=>{if(!e[t]){e[t]=[]}e[t].push(i)}));const n={};t.forEach(((t,i)=>{const o=e[t];if(o&&o.length>0){const t=o.shift();if(t!==undefined&&t!==i&&s[t]){n[i]=s[t];delete s[t]}}}));if(Object.keys(n).length){this.setDimensionSize(Object.assign(Object.assign({},s),n))}}}const N=["rowPinStart","rgRow","rowPinEnd"];const q=["colPinStart","rgCol","colPinEnd"];function F(t){return N.indexOf(t)>-1}class M{constructor(t,i){this.revogrid=t;this.providers=i;this.h=y;this.subscriptions={}}addEventListener(t,i){this.revogrid.addEventListener(t,i);this.subscriptions[t]=i}watch(t,i,{immediate:s}={immediate:false}){const e=Object.getOwnPropertyDescriptor(this.revogrid,t)||Object.getOwnPropertyDescriptor(this.revogrid.constructor.prototype,t);Object.defineProperty(this.revogrid,t,{set(t){var s;const n=i(t);if(n===false){return}return(s=e===null||e===void 0?void 0:e.set)===null||s===void 0?void 0:s.call(this,t)},get(){var t;return(t=e===null||e===void 0?void 0:e.get)===null||t===void 0?void 0:t.call(this)}});if(s){i(e===null||e===void 0?void 0:e.value)}}removeEventListener(t){this.revogrid.removeEventListener(t,this.subscriptions[t]);delete this.subscriptions[t]}emit(t,i){const s=new CustomEvent(t,{detail:i,cancelable:true});this.revogrid.dispatchEvent(s);return s}clearSubscriptions(){for(let t in this.subscriptions){this.removeEventListener(t)}}destroy(){this.clearSubscriptions()}}function D(t,i){var s=-1,e=t==null?0:t.length;while(++s<e){if(i(t[s],s,t)===false){break}}return t}function R(t){return typeof t=="function"?t:a}function $(t,s){var e=u(t)?D:i;return e(t,R(s))}const B=7;var A;(function(t){t["headerClickAutosize"]="headerClickAutoSize";t["autoSizeOnTextOverlap"]="autoSizeOnTextOverlap";t["autoSizeAll"]="autoSizeAll"})(A||(A={}));class T extends M{constructor(t,i,e){super(t,i);this.providers=i;this.config=e;this.autoSizeColumns=null;this.dataResolve=null;this.dataReject=null;this.letterBlockSize=(e===null||e===void 0?void 0:e.letterBlockSize)||B;if(e===null||e===void 0?void 0:e.preciseSize){this.precsizeCalculationArea=this.initiatePresizeElement();t.appendChild(this.precsizeCalculationArea)}const n=({detail:{source:t}})=>{this.setSource(t)};const o=({detail:t})=>{this.afteredit(t)};const r=({detail:t})=>{this.afterEditAll(t)};const c=({detail:{columns:t}})=>{this.columnSet(t)};const h=({detail:t})=>{const i=s(t.column);const e=this.getColumnSize(t.index,i);if(e){this.providers.dimension.setCustomSizes(i,{[t.index]:e},true)}};this.addEventListener("beforecolumnsset",c);switch(e===null||e===void 0?void 0:e.mode){case A.autoSizeOnTextOverlap:this.addEventListener("aftersourceset",n);this.addEventListener("afteredit",o);break;case A.autoSizeAll:this.addEventListener("aftersourceset",n);this.addEventListener("afteredit",r);break;default:this.addEventListener("headerdblclick",h);break}}async setSource(t){let i=this.autoSizeColumns;if(this.dataReject){this.dataReject();this.clearPromise()}if(!i){const t=new Promise(((t,i)=>{this.dataResolve=t;this.dataReject=i}));try{i=await t}catch(t){return}}$(i,((s,e)=>{const n={};$(i[e],(i=>{i.size=n[i.index]=t.reduce(((t,s)=>Math.max(t,this.getLength(s[i.prop]))),this.getLength(i.name||""))}));this.providers.dimension.setCustomSizes(e,n,true)}))}getLength(t){var i;const s=15;if(!t){return 0}try{const e=t.toString();if((i=this.config)===null||i===void 0?void 0:i.preciseSize){this.precsizeCalculationArea.innerText=e;return this.precsizeCalculationArea.scrollWidth+s*2}return e.length*this.letterBlockSize+s*2}catch(t){return 0}}afteredit(i){let s;if(this.isRangeEdit(i)){s=i.data}else{s={0:{[i.prop]:i.val}}}$(this.autoSizeColumns,((i,e)=>{const n={};$(i,(i=>{var e;const o=t(s,((t,s)=>{if(typeof s[i.prop]==="undefined"){return t}return Math.max(t||0,this.getLength(s[i.prop]))}),undefined);if(o&&((e=i.size)!==null&&e!==void 0?e:0)<o){i.size=n[i.index]=o}}));this.providers.dimension.setCustomSizes(e,n,true)}))}afterEditAll(t){const i={};if(this.isRangeEdit(t)){$(t.data,(t=>$(t,((t,s)=>i[s]=true))))}else{i[t.prop]=true}$(this.autoSizeColumns,((t,s)=>{const e={};$(t,(t=>{if(i[t.prop]){const i=this.getColumnSize(t.index,s);if(i){e[t.index]=i}}}));this.providers.dimension.setCustomSizes(s,e,true)}))}getColumnSize(i,s){var e,n;const o=(n=(e=this.autoSizeColumns)===null||e===void 0?void 0:e[s])===null||n===void 0?void 0:n[i];if(!o){return 0}return t(this.providers.data.stores,((i,s)=>{const e=t(s.store.get("items"),((t,i,e)=>{const n=f(s.store,e);return Math.max(t||0,this.getLength(n===null||n===void 0?void 0:n[o.prop]))}),0);return Math.max(i,e)}),o.size||0)}columnSet(t){var i;for(let s of q){const e=s;const n=t[e];for(let t in n){if(n[t].autoSize||((i=this.config)===null||i===void 0?void 0:i.allColumns)){if(!this.autoSizeColumns){this.autoSizeColumns={}}if(!this.autoSizeColumns[e]){this.autoSizeColumns[e]={}}this.autoSizeColumns[e][t]=Object.assign(Object.assign({},n[t]),{index:parseInt(t,10)})}}}if(this.dataResolve){this.dataResolve(this.autoSizeColumns||{});this.clearPromise()}}clearPromise(){this.dataResolve=null;this.dataReject=null}isRangeEdit(t){return!!t.data}initiatePresizeElement(){var t;const i={position:"absolute",fontSize:"14px",height:"0",width:"0",whiteSpace:"nowrap",top:"0",overflowX:"scroll"};const s=document.createElement("div");for(let e in i){s.style[e]=(t=i[e])!==null&&t!==void 0?t:""}s.classList.add("revo-test-container");return s}destroy(){var t;super.destroy();(t=this.precsizeCalculationArea)===null||t===void 0?void 0:t.remove()}}class J extends M{constructor(t,i){super(t,i);this.providers=i;this.stretchedColumn=null;this.scrollSize=d(document);const s=({detail:{columns:t}})=>this.applyStretch(t);this.addEventListener("beforecolumnapplied",s)}setScroll({type:t,hasScroll:i}){var s;if(t==="rgRow"&&this.stretchedColumn&&((s=this.stretchedColumn)===null||s===void 0?void 0:s.initialSize)===this.stretchedColumn.size){if(i){this.stretchedColumn.size-=this.scrollSize;this.apply();this.dropChanges()}}}activateChanges(){const t=({detail:t})=>this.setScroll(t);this.addEventListener("scrollchange",t)}dropChanges(){this.stretchedColumn=null;this.removeEventListener("scrollchange")}apply(){if(!this.stretchedColumn){return}const t="rgCol";const i=this.providers.dimension.stores[t].store.get("sizes");this.providers.dimension.setCustomSizes(t,Object.assign(Object.assign({},i),{[this.stretchedColumn.index]:this.stretchedColumn.size}),true)}applyStretch(t){this.dropChanges();let i=this.revogrid.clientWidth-1;$(t,((t,s)=>{const e=this.providers.dimension.stores[s].store.get("realSize");i-=e}));if(this.revogrid.rowHeaders){const t=this.providers.data.stores.rgRow.store.get("source").length;const s=this.revogrid.rowHeaders;const e=g(t,typeof s==="object"?s:undefined);if(e){i-=e}}if(i>0){const s=t.rgCol.length-1;const e=t.rgCol[s];const n=(e===null||e===void 0?void 0:e.size)||this.revogrid.colSize||0;const o=i+n-1;if(e&&!e.autoSize&&n<o){this.stretchedColumn={initialSize:o,index:s,size:o};this.apply();this.activateChanges()}}}}function H(t){return!!t.applyStretch}function L(t,i,s){if(t===t){if(s!==undefined){t=t<=s?t:s}if(i!==undefined){t=t>=i?t:i}}return t}var X=4294967295;function G(t){return t?L(p(t),0,X):0}function K(t,i,s,e){var n=t.length;s=p(s);if(s<0){s=-s>n?0:n+s}e=e===undefined||e>n?n:p(e);if(e<0){e+=n}e=s>e?0:G(e);while(s<e){t[s++]=i}return t}function U(t,i,s,e){var n=t==null?0:t.length;if(!n){return[]}if(s&&typeof s!="number"&&v(t,i,s)){s=0;e=n}return K(t,i,s,e)}const V={mime:"text/csv",fileKind:"csv",bom:true,columnDelimiter:",",rowDelimiter:"\r\n",encoding:""};const W=String.fromCharCode(13);const Y=String.fromCharCode(10);const Z=String.fromCharCode(34);const _=String.fromCharCode(65279);const Q=new RegExp('"',"g");class tt{constructor(t={}){this.options=Object.assign(Object.assign({},V),t)}doExport({data:t,headers:i,props:s}){let o=this.options.bom?_:"";if((i===null||i===void 0?void 0:i.length)>0){i.forEach((t=>{if(!t.length){return}o+=this.prepareHeader(t,this.options.columnDelimiter);o+=this.options.rowDelimiter}))}t.forEach(((t,i)=>{if(i>0){o+=this.options.rowDelimiter}if(e(t)){o+=this.parseCell(n(t),this.options.columnDelimiter);return}o+=s.map((i=>this.parseCell(t[i],this.options.columnDelimiter))).join(this.options.columnDelimiter)}));return o}prepareHeader(t,i){let s="";const e=t.map((t=>this.parseCell(t,i,true)));s+=e.join(i);return s}parseCell(t,i,s=false){let e=t;if(typeof t!=="string"){e=JSON.stringify(t)}const n=[W,Z,Y,i];if(typeof e==="undefined"){return""}if(e!==""&&(s||n.some((t=>e.indexOf(t)>=0)))){return`"${e.replace(Q,'""')}"`}return e}}var it;(function(t){t["csv"]="csv"})(it||(it={}));class st extends M{async exportString(t={},i=it.csv){const s=await this.beforeexport();if(!s){return null}return this.formatter(i,t).doExport(s)}async exportBlob(t={},i=it.csv){return await this.getBlob(this.formatter(i,t))}async exportFile(t={},i=it.csv){const s=this.formatter(i,t);const e=window.URL||window.webkitURL;const n=document.createElement("a");const{filename:o,fileKind:r}=s.options;const c=`${o}.${r}`;const h=await this.getBlob(s);const l=h?e.createObjectURL(h):"";n.style.display="none";n.setAttribute("href",l);n.setAttribute("download",c);this.revogrid.appendChild(n);n.dispatchEvent(new MouseEvent("click"));this.revogrid.removeChild(n);await m(120);e.revokeObjectURL(l)}async getBlob(t){const i=`${t.options.mime};charset=${t.options.encoding}`;if(typeof Blob!=="undefined"){const s=await this.beforeexport();if(!s){return null}return new Blob([t.doExport(s)],{type:i})}return null}async beforeexport(){let t=await this.getData();const i=this.emit("beforeexport",{data:t});if(i.defaultPrevented){return null}return i.detail.data}async getData(){const t=await this.getSource();const i=[];const s=[];q.forEach(((t,e)=>{s.push(this.getColPerSource(t).then((t=>i[e]=t)))}));await Promise.all(s);const e={headers:[],props:[]};for(let t of i){t.headers.forEach(((t,i)=>{if(!e.headers[i]){e.headers[i]=[]}e.headers[i].push(...t)}));e.props.push(...t.props)}return Object.assign({data:t},e)}async getColPerSource(t){const i=await this.revogrid.getColumnStore(t);const s=i.get("source");const e=i.get("items");const n=i.get("groupingDepth");const o=i.get("groups");const r=[];const c=[];const h=e.reduce(((t,i,e)=>{const n=s[i].prop;r.push(s[i].name||"");c.push(n);t[n]=e;return t}),{});const l=this.getGroupHeaders(n,o,e,h);l.push(r);return{headers:l,props:c}}getGroupHeaders(t,i,s,e){const n=[];const o=U(new Array(s.length),"");for(let s=0;s<t;s++){const t=[...o];n.push(t);if(!i[s]){continue}const r=i[s];r.forEach((i=>{const s=this.findGroupStartIndex(i.ids,e);if(typeof s==="number"){t[s]=i.name}}))}return n}findGroupStartIndex(t,i){let s;t.forEach((t=>{const e=i[t];if(typeof e==="number"){if(typeof s!=="number"||s>e){s=e}}}));return s}async getSource(){const t=[];const i=[];N.forEach((s=>{const e=[];t.push(e);const n=this.revogrid.getVisibleSource(s).then((t=>e.push(...t)));i.push(n)}));await Promise.all(i);return t.reduce(((t,i)=>{t.push(...i);return t}),[])}formatter(t,i={}){switch(t){case it.csv:return new tt(i);default:throw new Error("Unknown format")}}}const et=(t,i)=>{if(typeof t==="undefined"||t===null&&!i){return true}if(typeof t!=="string"){t=JSON.stringify(t)}const s=i===null||i===void 0?void 0:i.toString().toLocaleLowerCase();if((s===null||s===void 0?void 0:s.length)===0){return true}return t.toLocaleLowerCase()===s};const nt=(t,i)=>!et(t,i);nt.extra="input";et.extra="input";const ot=function(t,i){let s;if(typeof t==="number"&&typeof i!=="undefined"&&i!==null){s=parseFloat(i===null||i===void 0?void 0:i.toString());return t>s}return false};ot.extra="input";const rt=function(t,i){return et(t,i)||ot(t,i)};rt.extra="input";const ct=function(t,i){let s;if(typeof t==="number"&&typeof i!=="undefined"&&i!==null){s=parseFloat(i.toString());return t<s}else{return false}};ct.extra="input";const ht=function(t,i){return et(t,i)||ct(t,i)};ht.extra="input";const lt=t=>!(t===""||t===null||t===void 0);const at=t=>!lt(t);const ut=(t,i)=>{if(!t){return false}if(!i){return true}if(typeof t!=="string"){t=JSON.stringify(t)}if(typeof i!=="string"){i=JSON.stringify(i)}return t.toLocaleLowerCase().indexOf(i.toLocaleLowerCase())===0};ut.extra="input";const ft=(t,i)=>{if(!i){return true}if(!t){return false}if(i){if(typeof t!=="string"){t=JSON.stringify(t)}return t.toLocaleLowerCase().indexOf(i.toString().toLowerCase())>-1}return true};const dt=(t,i)=>!ft(t,i);dt.extra="input";ft.extra="input";const pt={none:()=>true,empty:at,notEmpty:lt,eq:et,notEq:nt,begins:ut,contains:ft,notContains:dt,eqN:et,neqN:nt,gt:ot,gte:rt,lt:ct,lte:ht};const vt={string:["notEmpty","empty","eq","notEq","begins","contains","notContains"],number:["notEmpty","empty","eqN","neqN","gt","gte","lt","lte"]};const mt={none:"None",empty:"Not set",notEmpty:"Set",eq:"Equal",notEq:"Not equal",begins:"Begins with",contains:"Contains",notContains:"Does not contain",eqN:"=",neqN:"!=",gt:">",gte:">=",lt:"<",lte:"<="};const bt="filter";const gt="filterconfigchanged";const yt="revogr-filter-panel";class wt extends M{constructor(t,i,s){var e;super(t,i);this.revogrid=t;this.filterCollection={};this.multiFilterItems={};this.filterByType=Object.assign({},vt);this.filterNameIndexByType=Object.assign({},mt);this.filterFunctionsIndexedByType=Object.assign({},pt);this.filterProp=w;if(s){this.initConfig(s)}const n=this.revogrid.registerVNode.filter((t=>typeof t==="object"&&t.t!==yt));this.revogrid.registerVNode=[...n,y("revogr-filter-panel",{filterItems:this.multiFilterItems,filterNames:this.filterNameIndexByType,filterEntities:this.filterFunctionsIndexedByType,filterCaptions:(e=s===null||s===void 0?void 0:s.localization)===null||e===void 0?void 0:e.captions,onFilterChange:t=>this.onFilterChange(t.detail),onResetChange:t=>this.onFilterReset(t.detail),disableDynamicFiltering:s===null||s===void 0?void 0:s.disableDynamicFiltering,ref:t=>this.pop=t}," ",this.extraContent())];const o=async()=>{const t=Object.keys(this.filterCollection);if(t.length>0){t.forEach(((t,i)=>{if(!this.multiFilterItems[t]){this.multiFilterItems[t]=[{id:i,type:this.filterCollection[t].type,value:this.filterCollection[t].value,relation:"and"}]}}))}if(Object.keys(this.multiFilterItems).length===0){return}await this.runFiltering(this.multiFilterItems)};this.addEventListener("headerclick",(t=>this.headerclick(t)));this.addEventListener(gt,(({detail:t})=>{if(!t){this.clearFiltering();return}if(typeof t==="object"){this.initConfig(t)}o()}));this.addEventListener("aftersourceset",o);this.addEventListener("filter",(({detail:t})=>this.onFilterChange(t)))}extraContent(){return null}initConfig(i){if(i.multiFilterItems){this.multiFilterItems=Object.assign({},i.multiFilterItems)}if(i.customFilters){for(let t in i.customFilters){const s=i.customFilters[t];if(!this.filterByType[s.columnFilterType]){this.filterByType[s.columnFilterType]=[]}this.filterByType[s.columnFilterType].push(t);this.filterFunctionsIndexedByType[t]=s.func;this.filterNameIndexByType[t]=s.name}}if(i.filterProp){this.filterProp=i.filterProp}const s=i.include;if(s){const t={};for(let i in this.filterByType){const e=this.filterByType[i].filter((t=>s.indexOf(t)>-1));if(e.length){t[i]=e}}if(Object.keys(t).length>0){this.filterByType=t}}if(i.collection){this.filterCollection=t(i.collection,((t,i,s)=>{if(this.filterFunctionsIndexedByType[i.type]){t[s]=i}else{console.warn(`${i.type} type is not found.`)}return t}),{})}if(i.localization){if(i.localization.filterNames){Object.entries(i.localization.filterNames).forEach((([t,i])=>{if(this.filterNameIndexByType[t]!=void 0){this.filterNameIndexByType[t]=i}}))}}}async headerclick(t){var i,s,e;const n=(i=t.detail.originalEvent)===null||i===void 0?void 0:i.target;if(!j(n)){return}t.preventDefault();const o=await((s=this.pop)===null||s===void 0?void 0:s.getChanges());if(o&&(o===null||o===void 0?void 0:o.prop)===t.detail.prop){(e=this.pop)===null||e===void 0?void 0:e.show();return}if(!this.pop){return}const r=this.revogrid.getBoundingClientRect();const c=n.getBoundingClientRect();const h=t.detail.prop;this.pop.show(Object.assign(Object.assign({},this.filterCollection[h]),{x:c.x-r.x,y:c.y-r.y+c.height,autoCorrect:true,prop:h,filterTypes:this.getColumnFilter(t.detail.filter)}))}getColumnFilter(t){let i="string";if(!t){return{[i]:this.filterByType[i]}}if(this.isValidType(t)){i=t}else if(typeof t==="object"&&t.length){return t.reduce(((t,i)=>{if(this.isValidType(i)){t[i]=this.filterByType[i]}return t}),{})}return{[i]:this.filterByType[i]}}isValidType(t){return!!(typeof t==="string"&&this.filterByType[t])}async onFilterChange(t){this.multiFilterItems=t;this.runFiltering(this.multiFilterItems)}onFilterReset(t){delete this.multiFilterItems[t!==null&&t!==void 0?t:""];this.onFilterChange(this.multiFilterItems)}async doFiltering(t,i,s,e){const n=[];const o={};s.forEach((t=>{const i=Object.assign({},t);const s=e[i.prop];o[i.prop]=i;if(i[this.filterProp]&&!s){delete i[this.filterProp];n.push(i)}if(!i[this.filterProp]&&s){n.push(i);i[this.filterProp]=true}}));const r=this.getRowFilter(i,e,o);const{defaultPrevented:c,detail:h}=this.emit("beforefiltertrimmed",{collection:t,itemsToFilter:r,source:i,filterItems:e});if(c){return}const l=await this.revogrid.addTrimmed(h.itemsToFilter,bt);if(l.defaultPrevented){return}this.providers.column.updateColumns(n);this.emit("afterfilterapply")}async clearFiltering(){this.multiFilterItems={};await this.runFiltering(this.multiFilterItems)}async runFiltering(t){const i={};const s=Object.keys(t);for(const e of s){if(t[e].length>0){const s=t[e][0];i[e]={filter:this.filterFunctionsIndexedByType[s.type],type:s.type,value:s.value}}}this.filterCollection=i;const e=this.providers.column.getColumns();const n=this.providers.data.stores["rgRow"].store.get("source");const{defaultPrevented:o,detail:r}=this.emit("beforefilterapply",{collection:this.filterCollection,source:n,columns:e,filterItems:this.multiFilterItems});if(o){return}this.doFiltering(r.collection,r.source,r.columns,r.filterItems)}getRowFilter(t,i,s){const e=Object.keys(i);const n={};let r=0;let c=[];t.forEach(((t,h)=>{for(const l of e){const e=i[l];r=0;c=[];for(const[i,n]of e.entries()){const h=this.filterFunctionsIndexedByType[n.type];const a=s[l];const u=a?o(t,s[l]):t[l];if(n.relation==="or"){c=[];if(h(u,n.value)){continue}r++}else{c.push(!h(u,n.value));const t=e[i+1];if(!t||t.relation!=="and"){if(c.indexOf(true)===-1){c=[];continue}r+=c.length;c=[]}}}if(r===e.length){n[h]=true}}}));return n}}const jt="column-drag-start";class Ot{constructor(){this.offset=0}renderAutoscroll(t,i){if(!i){return}this.autoscrollEl=document.createElement("div");this.autoscrollEl.classList.add("drag-auto-scroll-y");i.appendChild(this.autoscrollEl)}autoscroll(t,i,s="translateX"){if(!this.autoscrollEl){return}const e=10;const n=Math.min(t+e,i-3);this.autoscrollEl.style.transform=`${s}(${n}px)`;this.autoscrollEl.scrollIntoView({block:"nearest",inline:"nearest"})}start(t,{dataEl:i,gridRect:s,scrollEl:e,gridEl:n},o="left"){n.classList.add(jt);const r=e.getBoundingClientRect();if(r){this.offset=r[o]-s[o]}this.renderAutoscroll(t,i)}stop(t){var i;t.classList.remove(jt);if(this.element){this.element.hidden=true}this.offset=0;(i=this.autoscrollEl)===null||i===void 0?void 0:i.remove();this.autoscrollEl=undefined}showHandler(t,i,s="translateX"){if(!this.element){return}if(this.offset){t=Math.max(t,this.offset)}t=Math.min(t,i);this.element.style.transform=`${s}(${t}px)`;this.element.hidden=false}render(){const t=this.element=document.createElement("div");t.classList.add("drag-position-y");t.hidden=true;return t}}const St=x;const xt="columndragmousemove";const Et="columndragend";const zt="beforecolumndragend";const Ct="columndragstart";class kt extends M{constructor(t,i){super(t,i);this.revogrid=t;this.providers=i;this.moveFunc=O((t=>this.doMove(t)),5);this.staticDragData=null;this.dragData=null;this.localSubscriptions={};this.orderUi=new Ot;t.appendChild(this.orderUi.render());t.classList.add("column-draggable");this.localSubscriptions["mouseleave"]={target:document,callback:t=>this.onMouseOut(t)};this.localSubscriptions["mouseup"]={target:document,callback:t=>this.onMouseUp(t)};this.localSubscriptions["mousemove"]={target:document,callback:t=>this.move(t)};this.addEventListener(St,(({detail:t})=>this.dragStart(t)))}dragStart({event:t,data:i}){if(t.defaultPrevented){return}const{defaultPrevented:s}=S(this.revogrid,Ct,i);if(s){return}this.clearOrder();const{mouseleave:e,mouseup:n,mousemove:o}=this.localSubscriptions;e.target.addEventListener("mouseleave",e.callback);n.target.addEventListener("mouseup",n.callback);const c=t.target.closest("revogr-header");const h=t.target.closest("revogr-viewport-scroll");if(!c||!h){return}if(r(i)||i.providers.type==="rowHeaders"){return}const l=this.getDimension(i.pin||"rgCol");const a=this.revogrid.getBoundingClientRect();const u=c.getBoundingClientRect();const f=b(l,Pt(t.x,a.left,u.left-a.left));this.staticDragData={startPos:t.x,startItem:f,data:i,dataEl:c,scrollEl:h,gridEl:this.revogrid,cols:l};this.dragData=this.getData(this.staticDragData);o.target.addEventListener("mousemove",o.callback);this.orderUi.start(t,Object.assign(Object.assign({},this.dragData),this.staticDragData))}doMove(t){if(!this.staticDragData){return}const i=this.dragData=this.getData(this.staticDragData);if(!i){return}const s=this.staticDragData.startPos;if(Math.abs(s-t.x)>10){const s=Pt(t.x,this.dragData.gridRect.left,this.dragData.scrollOffset);const e=b(this.staticDragData.cols,s);this.orderUi.autoscroll(s,i.elRect.width);this.orderUi.showHandler(e.end+i.scrollOffset,i.gridRect.width)}}move(t){S(this.revogrid,xt,t);this.moveFunc(t)}onMouseOut(t){this.clearOrder()}onMouseUp(t){if(this.dragData&&this.staticDragData){let i=Pt(t.x,this.dragData.gridRect.left,this.dragData.scrollOffset);if(i<0){i=0}const s=b(this.staticDragData.cols,i);const e=this.providers.column.stores[this.dragData.type].store;const n=[...e.get("items")];const{defaultPrevented:o}=S(this.revogrid,zt,Object.assign(Object.assign({},this.staticDragData),{startPosition:this.staticDragData.startItem,newPosition:s,newItem:e.get("source")[n[this.staticDragData.startItem.itemIndex]]}));if(!o){const t=n.splice(this.staticDragData.startItem.itemIndex,1);n.splice(s.itemIndex,0,...t);e.set("items",n)}S(this.revogrid,Et,this.dragData)}this.clearOrder()}clearLocalSubscriptions(){$(this.localSubscriptions,(({target:t,callback:i},s)=>t.removeEventListener(s,i)))}clearOrder(){this.staticDragData=null;this.dragData=null;this.clearLocalSubscriptions();this.orderUi.stop(this.revogrid)}clearSubscriptions(){super.clearSubscriptions();this.clearLocalSubscriptions()}getData({gridEl:t,dataEl:i,data:s}){const e=t.getBoundingClientRect();const n=i.getBoundingClientRect();const o=n.left-e.left;return{elRect:n,gridRect:e,type:s.pin||"rgCol",scrollOffset:o}}getDimension(t){return this.providers.dimension.stores[t].getCurrentState()}}function Pt(t,i,s){return t-i-s}export{T as A,M as B,kt as C,I as D,st as E,bt as F,J as S,H as a,gt as b,q as c,yt as d,wt as e,pt as f,vt as g,mt as h,F as i,Pt as j,$ as k,N as r};
5
+ //# sourceMappingURL=column.drag.plugin-8ea8fdab.js.map
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * Built by Revolist OU ❤️
3
+ */
4
+ import{$ as t,a0 as n,a1 as e,Y as s,W as i,w as o,P as r,_ as l,Z as u,a as c,C as f,z as a,b as h}from"./index-b1e05212.js";import"./index-a61f225b.js";function d(t,n,e,s){var i=-1,o=t==null?0:t.length;if(s&&o){e=t[++i]}while(++i<o){e=n(e,t[i],i,t)}return e}function p(t){return function(n,e,s){var i=-1,o=Object(n),r=s(n),l=r.length;while(l--){var u=r[t?l:++i];if(e(o[u],u,o)===false){break}}return n}}var v=p();const g=v;function y(n,e){return n&&g(n,e,t)}function b(t,e){return function(s,i){if(s==null){return s}if(!n(s)){return t(s,i)}var o=s.length,r=e?o:-1,l=Object(s);while(e?r--:++r<o){if(i(l[r],r,l)===false){break}}return s}}var m=b(y);const x=m;function j(t,n,e,s,i){i(t,(function(t,i,o){e=s?(s=false,t):n(e,t,i,o)}));return e}function O(t,n,i){var o=s(t)?d:j,r=arguments.length<3;return o(t,e(n),i,r,x)}function w(){return{range:null,tempRange:null,tempRangeType:null,focus:null,edit:null,lastCell:null,nextFocus:null}}class C{constructor(){this.unsubscribe=[];this.store=i(w());this.store.on("set",((t,n)=>{if(t==="tempRange"&&!n){this.store.set("tempRangeType",null)}}))}onChange(t,n){this.unsubscribe.push(this.store.onChange(t,n))}clearFocus(){o(this.store,{focus:null,range:null,edit:null,tempRange:null})}setFocus(t,n){if(!n){o(this.store,{focus:t})}else{o(this.store,{focus:t,range:P(t,n),edit:null,tempRange:null})}}setNextFocus(t){o(this.store,{nextFocus:t})}setTempArea(t){o(this.store,{tempRange:t===null||t===void 0?void 0:t.area,tempRangeType:t===null||t===void 0?void 0:t.type,edit:null})}clearTemp(){o(this.store,{tempRange:null})}setRangeArea(t){o(this.store,{range:t,edit:null,tempRange:null})}setRange(t,n){const e=P(t,n);this.setRangeArea(e)}setLastCell(t){o(this.store,{lastCell:t})}setEdit(t){const n=this.store.get("focus");if(n&&typeof t==="string"){o(this.store,{edit:{x:n.x,y:n.y,val:t}});return}o(this.store,{edit:null})}dispose(){this.unsubscribe.forEach((t=>t()));this.store.dispose()}}const R=-1;class I{constructor(){this.dirty=false;this.stores={};this.columnStores={};this.rowStores={};this.storesByType={};this.storesXToType={};this.storesYToType={};this.sections=[]}get focusedStore(){var t;for(let n in this.stores){for(let e in this.stores[n]){const s=(t=this.stores[n][e])===null||t===void 0?void 0:t.store.get("focus");if(s){return{entity:this.stores[n][e],cell:s,position:{x:parseInt(e,10),y:parseInt(n,10)}}}}}return null}get edit(){var t;return(t=this.focusedStore)===null||t===void 0?void 0:t.entity.store.get("edit")}get focused(){var t;return(t=this.focusedStore)===null||t===void 0?void 0:t.entity.store.get("focus")}get selectedRange(){var t;return(t=this.focusedStore)===null||t===void 0?void 0:t.entity.store.get("range")}registerSection(t){if(!t){this.sections.length=0;this.dirty=true;return}if(this.sections.indexOf(t)===-1){this.sections.push(t)}}beforeUpdate(){if(this.dirty){for(let t in this.stores){for(let n in this.stores[t]){this.stores[t][n].dispose()}}this.dirty=false}}registerColumn(t,n){if(S(t)){return new C}if(this.columnStores[t]){return this.columnStores[t]}this.columnStores[t]=new C;this.storesByType[n]=t;this.storesXToType[t]=n;return this.columnStores[t]}registerRow(t,n){if(S(t)){return new C}if(this.rowStores[t]){return this.rowStores[t]}this.rowStores[t]=new C;this.storesByType[n]=t;this.storesYToType[t]=n;return this.rowStores[t]}register({x:t,y:n}){var e,s;if(S(t)||S(n)){return new C}if(!this.stores[n]){this.stores[n]={}}if(this.stores[n][t]){return this.stores[n][t]}this.stores[n][t]=new C;(e=this.stores[n][t])===null||e===void 0?void 0:e.onChange("range",(e=>{this.columnStores[t].setRangeArea(e);this.rowStores[n].setRangeArea(e)}));(s=this.stores[n][t])===null||s===void 0?void 0:s.store.on("dispose",(()=>this.destroy(t,n)));return this.stores[n][t]}destroy(t,n){var e,s;(e=this.columnStores[t])===null||e===void 0?void 0:e.dispose();(s=this.rowStores[n])===null||s===void 0?void 0:s.dispose();delete this.rowStores[n];delete this.columnStores[t];if(this.storesXToType[t]){const n=this.storesXToType[t];delete this.storesXToType[t];delete this.storesByType[n]}if(this.storesYToType[n]){const t=this.storesYToType[n];delete this.storesYToType[n];delete this.storesByType[t]}if(this.stores[n]){delete this.stores[n][t]}if(!Object.keys(this.stores[n]||{}).length){delete this.stores[n]}}setEditByCell(t,n){this.focusByCell(t,n,n);this.setEdit("")}beforeNextFocusCell(t){var n;if(!this.focusedStore){return}const e=this.focusedStore.entity.store.get("lastCell");const s=e&&this.getNextStore(t,this.focusedStore.position,e);(n=s===null||s===void 0?void 0:s.store)===null||n===void 0?void 0:n.setNextFocus(Object.assign(Object.assign({},t),s.item))}focusByCell(t,n,e){const s=this.stores[t.y][t.x];this.focus(s,{focus:n,end:e})}focus(t,{focus:n,end:e}){const s=this.getCurrentStorePointer(t);if(!s){return null}const i=t.store.get("lastCell");const o=i&&this.getNextStore(n,s,i);if(o===null||o===void 0?void 0:o.store){const t=Object.assign(Object.assign({},n),o.item);this.focus(o.store,{focus:t,end:t});return null}if(i){n=A(n,i);e=A(e,i)}t.setFocus(n,e);return n}getCurrentStorePointer(t){let n;for(let e in this.stores){for(let s in this.stores[e]){const i=this.stores[e][s];if(i!==t){i.clearFocus()}else{n={x:parseInt(s,10),y:parseInt(e,10)}}}}return n}getNextStore(t,n,e){const s=T(t,e);let i;if(s){Object.entries(s).forEach((([t,e])=>{let o;switch(t){case"x":o=this.getXStores(n.y);break;case"y":o=this.getYStores(n.x);break}if(e>=0){i=o[++n[t]]}else{i=o[--n[t]];const r=i===null||i===void 0?void 0:i.store.get("lastCell");if(r){s[t]=r[t]+e}}}))}return{store:i,item:s}}clearAll(){var t;for(let n in this.stores){for(let e in this.stores[n]){(t=this.stores[n][e])===null||t===void 0?void 0:t.clearFocus()}}}setEdit(t){if(!this.focusedStore){return}this.focusedStore.entity.setEdit(t)}selectAll(){for(let t in this.stores){for(let n in this.stores[t]){const e=this.stores[t][n];if(!e){continue}const s=e.store.get("lastCell");if(s){e.setRange({x:0,y:0},{x:s.x-1,y:s.y-1})}}}}getXStores(t){return this.stores[t]}getYStores(t){const n={};for(let e in this.stores){n[e]=this.stores[e][t]}return n}}function S(t){return t===R}function T(t,n){const e={};let s=["x","y"];for(let n of s){if(t[n]<0){e[n]=t[n];return e}}for(let i of s){if(t[i]>=n[i]){e[i]=t[i]-n[i];return e}}return null}function A(t,n){const e=Object.assign({},t);const s=["x","y"];for(const i of s){if(t[i]<0){e[i]=0}else if(t[i]>=n[i]){e[i]=n[i]-1}}return e}function P(t,n){return t&&n?{x:Math.min(t.x,n.x),y:Math.min(t.y,n.y),x1:Math.max(t.x,n.x),y1:Math.max(t.y,n.y)}:null}function M(t){return t.x===t.x1&&t.y===t.y1}function E(t){if(typeof t==="undefined"||t===null){return""}return t}function $(t,n){if(n.cellParser){return n.cellParser(t,n)}return t[n.prop]}function k(t,n){return E($(t,n))}function D(t){if(t.pin){return t.pin}return"rgCol"}function F(t){const n={};for(const[e,s]of t.entries()){if(s.size){n[e]=s.size}}return n}function G(t){return!!t.children}function N(t,n=0,e){const s={columns:{rgCol:[],colPinStart:[],colPinEnd:[]},columnByProp:{},columnGrouping:{rgCol:[],colPinStart:[],colPinEnd:[]},maxLevel:n,sort:{}};return O(t,((t,s)=>{if(G(s)){return B(t,s,N(s.children,n+1,e),n)}const i=s.columnType&&(e===null||e===void 0?void 0:e[s.columnType]);const o=Object.assign(Object.assign({},i),s);if(!o.pin){t.columns.rgCol.push(o)}else{t.columns[o.pin].push(o)}if(o.order){t.sort[o.prop]=o}if(!t.columnByProp[o.prop]){t.columnByProp[o.prop]=[]}t.columnByProp[o.prop].push(o);o.beforeSetup&&o.beforeSetup(o);return t}),s)}function B(t,n,e,i=0){const o=Object.assign(Object.assign({},n),{level:i,ids:[]});for(let n in e.columns){const i=n;const r=t.columns[i];const l=e.columns[i];if(s(r)&&s(l)){r.push(...l);if(l.length){t.columnGrouping[i].push(Object.assign(Object.assign({},o),{ids:l.map((t=>t.prop))}))}}}for(let n in e.columnGrouping){const s=n;const i=e.columnGrouping[s];t.columnGrouping[s].push(...i)}t.maxLevel=Math.max(t.maxLevel,e.maxLevel);t.sort=Object.assign(Object.assign({},t.sort),e.sort);return t}function z(t,n){for(const e of t){if(G(e)){const t=z(e.children,n);if(t){return t}}else if(e.prop===n){return e}}return undefined}function J(t,n){return z(t,n)}const L=`${r}-depth`;const W=`${r}-name`;const Y=`${r}-id`;const q=`${r}-value`;const H=`${r}-column`;const U=`${r}-expanded`;const V=`${r}-original-index`;const X=`group-expand`;const Z=`groupexpandclick`;const _="rgRow";function K(t,n){return t[n]||null}function Q(t,n,{prevExpanded:e,expandedAll:s,getGroupValue:i=K}){const o=new Map;t.forEach(((t,e)=>{const s=n.map((n=>i(t,n)));const r=s.pop();let l=o;s.forEach((t=>{if(!l.has(t)){l.set(t,new Map)}l=l.get(t)}));if(!l.has(r)){l.set(r,[])}const u=l.get(r);u.push(Object.assign(Object.assign({},t),{[V]:e}))}));let r=-1;const l=n.length;const u={};const c={};const f={};const a=[];function h(t,n,i){const o=n.length;t.forEach(((t,l)=>{const d=[...n,l];const p=d.join(",");const v=i&&(!!s||!!(e===null||e===void 0?void 0:e[p]));a.push({[W]:l,[L]:o,[Y]:JSON.stringify(d),[q]:p,[U]:v});r+=1;if(!v&&o){u[r]=true}if(Array.isArray(t)){t.forEach((t=>{r+=1;if(!v){u[r]=true}c[t[V]]=r;const n=d.map(((t,n)=>d.slice(0,n+1).join(",")));n.forEach((t=>{if(!f[t]){f[t]=[]}f[t].push(r)}))}));a.push(...t)}else{h(t,d,v)}}))}h(o,[],true);return{sourceWithGroups:a,depth:l,trimmed:u,oldNewIndexMap:c,childrenByGroup:f}}function tt(t){return t&&t[W]}function nt(t){return typeof(t===null||t===void 0?void 0:t[W])!=="undefined"}function et(t){return t&&typeof t[H]!=="undefined"}function st(t,n){const e=t.length;let s=0;for(;s<e;s++){if(t[s]!==n[s]){return s}}return s}function it(t){const n=JSON.parse(t);if(!Array.isArray(n)){return null}return n}function ot(t,n,e){const s=it(e[Y]);if(!s){return false}const i=st(t,s);return n[L]<i}function rt(t,n,e){var s=-1,i=t.length;if(n<0){n=-n>i?0:i+n}e=e>i?i:e;if(e<0){e+=i}i=n>e?0:e-n>>>0;n>>>=0;var o=Array(i);while(++s<i){o[s]=t[s+n]}return o}function lt(t,n,e){var s=t==null?0:t.length;if(!s){return[]}if(e&&typeof e!="number"&&l(t,n,e)){n=0;e=s}else{n=n==null?0:u(n);e=e===undefined?s:u(e)}return rt(t,n,e)}class ut{get columns(){return c(this.source)}constructor(t,n){this.dataStore=t;this.source=n;this.unsubscribe=[];this.hasGrouping=false;this.unsubscribe.push(n.onChange("source",(t=>this.checkGrouping(t))));this.checkGrouping(n.get("source"));this.type=n.get("type")}checkGrouping(t){for(let n of t){if(et(n)){this.hasGrouping=true;return}this.hasGrouping=false}}isReadOnly(t,n){var e;const s=(e=this.columns[n])===null||e===void 0?void 0:e.readonly;if(typeof s==="function"){const e=this.rowDataModel(t,n);return s(e)}return!!s}mergeProperties(t,n,e,s){var i,o;const r=Object.assign({},e);r.class=Object.assign(Object.assign({},typeof r.class==="string"?{[r.class]:true}:r.class),{[f]:true,[a]:this.isReadOnly(t,n)});const l=(o=(i=s.column)===null||i===void 0?void 0:i.cellProperties)===null||o===void 0?void 0:o.call(i,s);if(!l){return r}return at(r,l)}getRowClass(t,n){const e=h(this.dataStore,t)||{};return e[n]||""}getCellData(t,n){const e=this.rowDataModel(t,n);return E(e.model[e.prop])}getSaveData(t,n,e){const s=this.rowDataModel(t,n);if(typeof e==="undefined"){e=E(s.model[s.prop])}return{prop:s.prop,rowIndex:t,colIndex:n,val:e,model:s.model,colType:this.type,type:this.dataStore.get("type")}}getCellEditor(t,n,e){var s;const i=(s=this.columns[n])===null||s===void 0?void 0:s.editor;if(!i){return undefined}if(typeof i==="string"){return e[i]}return i}rowDataModel(t,n){const e=this.columns[n];const s=e===null||e===void 0?void 0:e.prop;const i=h(this.dataStore,t)||{};const o=this.dataStore.get("type");return{prop:s,model:i,data:this.dataStore.get("source"),column:e,rowIndex:t,colIndex:n,colType:this.type,type:o,value:$(i,e)}}getRangeData(t,n){var e;const s={};const i=t.oldRange.x1-t.oldRange.x+1;const o=t.oldRange.y1-t.oldRange.y+1;const r={};for(let l=t.newRange.y,u=0;l<t.newRange.y1+1;l++,u++){const c=t.oldRange.y+u%o;const f=h(this.dataStore,c)||{};for(let o=t.newRange.x,u=0;o<t.newRange.x1+1;o++,u++){if(l>=t.oldRange.y&&l<=t.oldRange.y1&&o>=t.oldRange.x&&o<=t.oldRange.x1){continue}if(!this.columns[o]){continue}const a=(e=this.columns[o])===null||e===void 0?void 0:e.prop;const h=t.oldRange.x+u%i;const d=n[h].prop;if(!this.isReadOnly(l,o)){if(!s[l]){s[l]={}}s[l][a]=f[d];if(!r[l]){r[l]={}}r[l][a]={colIndex:h,colProp:d,rowIndex:c}}}}return{changed:s,mapping:r}}getTransformedDataToApply(t,n){const e={};const s=n.length;const i=this.columns.length;const o=this.dataStore.get("items").length;let r=t.y;let l=0;for(let u=0;r<o&&u<s;r++,u++){const o=n[u%s];const c=(o===null||o===void 0?void 0:o.length)||0;let f=t.x;for(let t=0;f<i&&t<c;f++,t++){const n=this.columns[f].prop;const s=t%i;if(!this.isReadOnly(r,f)){if(!e[r]){e[r]={}}e[r][n]=o[s]}}l=Math.max(l,f-1)}const u=P(t,{y:r-1,x:l});return{changed:e,range:u}}getRangeStaticData(t,n){const e={};for(let s=t.y,i=0;s<t.y1+1;s++,i++){for(let i=t.x,o=0;i<t.x1+1;i++,o++){if(!this.columns[i]){continue}const t=this.columns[i].prop;if(!this.isReadOnly(s,i)){if(!e[s]){e[s]={}}e[s][t]=n}}}return e}getRangeTransformedToProps(t,n){var e;const s=[];const i=this.dataStore.get("type");for(let o=t.y,r=0;o<t.y1+1;o++,r++){for(let r=t.x,l=0;r<t.x1+1;r++,l++){const t=(e=this.columns[r])===null||e===void 0?void 0:e.prop;s.push({prop:t,rowIndex:o,colIndex:r,model:h(n,o),type:i,colType:this.type})}}return s}copyRangeArray(t,n){const e=[...this.columns];const s=lt(e,t.x,t.x1+1).map((t=>t.prop));const i=[];const o={};for(let e=t.y;e<=t.y1;e++){const t=[];o[e]={};for(let i of s){const s=h(n,e);if(!s){continue}const r=s[i];t.push(r);o[e][i]=r}i.push(t)}return{data:i,mapping:o}}destroy(){this.unsubscribe.forEach((t=>t()))}}function ct(t,n){if(typeof t==="function"){return t(n)}return!!t}function ft(t={},n={}){if(typeof t==="string"){t={[t]:true}}if(typeof n==="string"){n={[n]:true}}return Object.assign(Object.assign({},t),n)}function at(t,n){if(n.className){n.class=ft(n.class,n.className);delete n.className}let e=Object.assign(Object.assign({},n),t);if(n.class){e.class=ft(e.class,n.class)}if(n.style){e.style=Object.assign(Object.assign({},n.style),e.style)}return e}export{Q as A,et as B,I as C,ut as D,R as E,X as F,U as G,W as H,ct as I,q as P,C as S,M as a,E as b,A as c,$ as d,k as e,D as f,P as g,F as h,S as i,G as j,N as k,B as l,J as m,T as n,x as o,nt as p,tt as q,O as r,at as s,it as t,ot as u,L as v,Y as w,_ as x,H as y,Z as z};
5
+ //# sourceMappingURL=column.service-5d1cf29d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["arrayReduce","array","iteratee","accumulator","initAccum","index","length","createBaseFor","fromRight","object","keysFunc","iterable","Object","props","key","baseFor","baseFor$1","baseForOwn","keys","createBaseEach","eachFunc","collection","isArrayLike","baseEach","baseEach$1","baseReduce","value","reduce","func","isArray","arguments","baseIteratee","defaultState","range","tempRange","tempRangeType","focus","edit","lastCell","nextFocus","SelectionStore","constructor","this","unsubscribe","store","createStore","on","newVal","set","onChange","propName","cb","push","clearFocus","setStore","setFocus","end","getRange","setNextFocus","setTempArea","area","type","clearTemp","setRangeArea","setRange","start","setLastCell","setEdit","val","get","x","y","dispose","forEach","f","EMPTY_INDEX","SelectionStoreConnector","dirty","stores","columnStores","rowStores","storesByType","storesXToType","storesYToType","sections","focusedStore","focused","_a","entity","cell","position","parseInt","selectedRange","registerSection","e","indexOf","beforeUpdate","registerColumn","isHiddenStore","registerRow","register","c","_b","destroy","setEditByCell","storePos","editCell","focusByCell","beforeNextFocusCell","next","getNextStore","assign","item","currentStorePointer","getCurrentStorePointer","cropCellToMax","s","nextItem","nextCell","nextStore","entries","nextItemCoord","getXStores","getYStores","nextLastCell","clearAll","selectAll","i","pos","types","t","croppedCell","cellCoordinates","coordinate","Math","min","x1","max","y1","isRangeSingleCell","a","getCellData","getCellRaw","model","column","cellParser","prop","getCellDataParsed","getColumnType","rgCol","pin","getColumnSizes","cols","res","size","isColGrouping","colData","children","getColumns","columns","level","colPinStart","colPinEnd","columnByProp","columnGrouping","maxLevel","sort","gatherGroup","columnDefinitionFromType","columnType","regularColumn","order","beforeSetup","group","ids","k","resultItem","collectionItem","map","findColumn","found","undefined","getColumnByProp","GROUP_DEPTH","GRID_INTERNALS","PSEUDO_GROUP_ITEM","PSEUDO_GROUP_ITEM_ID","PSEUDO_GROUP_ITEM_VALUE","PSEUDO_GROUP_COLUMN","GROUP_EXPANDED","GROUP_ORIGINAL_INDEX","GROUP_EXPAND_BTN","GROUP_EXPAND_EVENT","GROUPING_ROW_TYPE","getGroupValueDefault","gatherGrouping","groupIds","prevExpanded","expandedAll","getGroupValue","groupedItems","Map","originalIndex","groupLevelValues","groupId","lastLevelValue","pop","currentGroupLevel","has","lastLevelItems","itemIndex","groupingDepth","trimmed","oldNewIndexMap","pseudoGroupTest","sourceWithGroups","flattenGroupMaps","groupedValues","parentIds","isExpanded","depth","innerGroupedValues","levelIds","mergedIds","join","isGroupExpanded","JSON","stringify","Array","pseudoGroupTestIds","_value","slice","pseudoGroupTestId","childrenByGroup","getGroupingName","rgRow","isGrouping","isGroupingColumn","measureEqualDepth","groupA","groupB","ln","getParsedGroup","id","parseGroup","parse","isSameGroup","currentGroup","currentModel","nextModel","nextGroup","baseSlice","result","isIterateeCall","toInteger","ColumnService","getVisibleSourceItem","source","dataStore","hasGrouping","checkGrouping","isReadOnly","r","readOnly","readonly","data","rowDataModel","mergeProperties","defaultProps","schemaModel","class","CELL_CLASS","DISABLED_CLASS","extra","cellProperties","call","doPropMerge","getRowClass","getSourceItem","getSaveData","rowIndex","colIndex","colType","getCellEditor","_r","editors","editor","getRangeData","d","changed","copyColLength","oldRange","copyRowLength","mapping","newRange","oldRowIndex","copyRow","j","copyColIndex","copyColumnProp","colProp","getTransformedDataToApply","colLength","rowLength","maxCol","p","currentCol","getRangeStaticData","getRangeTransformedToProps","copyRangeArray","v","toCopy","isRowDragService","rowDrag","mergeClasses","class1","class2","existing","className","style"],"sources":["node_modules/lodash/_arrayReduce.js","node_modules/lodash/_createBaseFor.js","node_modules/lodash/_baseFor.js","node_modules/lodash/_baseForOwn.js","node_modules/lodash/_createBaseEach.js","node_modules/lodash/_baseEach.js","node_modules/lodash/_baseReduce.js","node_modules/lodash/reduce.js","src/store/selection/selection.store.ts","src/services/selection.store.connector.ts","src/store/selection/selection.helpers.ts","src/utils/column.utils.ts","src/plugins/groupingRow/grouping.const.ts","src/plugins/groupingRow/grouping.service.ts","node_modules/lodash/_baseSlice.js","node_modules/lodash/slice.js","src/components/data/column.service.ts"],"sourcesContent":["/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nexport default baseReduce;\n","import arrayReduce from './_arrayReduce.js';\nimport baseEach from './_baseEach.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nexport default reduce;\n","/**\n * Selection store\n */\n\nimport { setStore, Observable } from '../../utils/store.utils';\nimport { getRange } from '@store';\nimport { SelectionStoreState, Cell, TempRange, RangeArea, Nullable } from '@type';\nimport { createStore } from '@stencil/store';\n\nfunction defaultState(): SelectionStoreState {\n return {\n range: null,\n tempRange: null,\n tempRangeType: null,\n focus: null,\n edit: null,\n lastCell: null,\n nextFocus: null,\n };\n}\n\nexport class SelectionStore {\n readonly store: Observable<SelectionStoreState>;\n private unsubscribe: { (): void }[] = [];\n constructor() {\n this.store = createStore(defaultState());\n this.store.on('set', (key, newVal) => {\n if (key === 'tempRange' && !newVal) {\n this.store.set('tempRangeType', null);\n }\n });\n }\n\n onChange<Key extends keyof SelectionStoreState>(propName: Key, cb: (newValue: SelectionStoreState[Key]) => void) {\n this.unsubscribe.push(this.store.onChange(propName, cb));\n }\n\n clearFocus() {\n setStore(this.store, { focus: null, range: null, edit: null, tempRange: null });\n }\n\n setFocus(focus: Cell, end?: Cell) {\n if (!end) {\n setStore(this.store, { focus });\n } else {\n setStore(this.store, {\n focus,\n range: getRange(focus, end),\n edit: null,\n tempRange: null,\n });\n }\n }\n\n setNextFocus(focus: Cell) {\n setStore(this.store, { nextFocus: focus });\n }\n\n setTempArea(range: Nullable<TempRange> | null) {\n setStore(this.store, { tempRange: range?.area, tempRangeType: range?.type, edit: null });\n }\n\n clearTemp() {\n setStore(this.store, { tempRange: null });\n }\n\n /** Can be applied from selection change or from simple keyboard change clicks */\n setRangeArea(range: RangeArea | null) {\n setStore(this.store, { range, edit: null, tempRange: null });\n }\n setRange(start: Cell, end: Cell) {\n const range = getRange(start, end);\n this.setRangeArea(range);\n }\n\n setLastCell(lastCell: Cell) {\n setStore(this.store, { lastCell });\n }\n\n setEdit(val?: string | boolean) {\n const focus = this.store.get('focus');\n if (focus && typeof val === 'string') {\n setStore(this.store, {\n edit: { x: focus.x, y: focus.y, val },\n });\n return;\n }\n setStore(this.store, { edit: null });\n }\n\n dispose() {\n this.unsubscribe.forEach(f => f());\n this.store.dispose();\n }\n}\n","import { cropCellToMax, isHiddenStore, nextCell, SelectionStore } from '@store';\nimport type {\n MultiDimensionType,\n DimensionCols,\n DimensionRows,\n Cell,\n} from '@type';\n\ntype StoreByDimension = Record<number, SelectionStore>;\ntype FocusedStore = {\n entity: SelectionStore;\n cell: Cell;\n position: Cell;\n};\n\ntype StoresMapping<T> = { [xOrY: number]: Partial<T> };\n\nexport const EMPTY_INDEX = -1;\n\nexport default class SelectionStoreConnector {\n // dirty flag required to cleanup whole store in case visibility of panels changed\n private dirty = false;\n readonly stores: { [y: number]: { [x: number]: SelectionStore } } = {};\n\n readonly columnStores: StoreByDimension = {};\n readonly rowStores: { [y: number]: SelectionStore } = {};\n\n /**\n * Helpers for data conversion\n */\n readonly storesByType: Partial<Record<MultiDimensionType, number>> = {};\n readonly storesXToType: StoresMapping<DimensionCols> = {};\n readonly storesYToType: StoresMapping<DimensionRows> = {};\n\n get focusedStore(): FocusedStore | null {\n for (let y in this.stores) {\n for (let x in this.stores[y]) {\n const focused = this.stores[y][x]?.store.get('focus');\n if (focused) {\n return {\n entity: this.stores[y][x],\n cell: focused,\n position: {\n x: parseInt(x, 10),\n y: parseInt(y, 10),\n },\n };\n }\n }\n }\n return null;\n }\n\n get edit() {\n return this.focusedStore?.entity.store.get('edit');\n }\n\n get focused() {\n return this.focusedStore?.entity.store.get('focus');\n }\n\n get selectedRange() {\n return this.focusedStore?.entity.store.get('range');\n }\n\n private readonly sections: Element[] = [];\n\n registerSection(e?: Element) {\n if (!e) {\n this.sections.length = 0;\n // some elements removed, rebuild stores\n this.dirty = true;\n return;\n }\n if (this.sections.indexOf(e) === -1) {\n this.sections.push(e);\n }\n }\n\n // check if require to cleanup all stores\n beforeUpdate() {\n if (this.dirty) {\n for (let y in this.stores) {\n for (let x in this.stores[y]) {\n this.stores[y][x].dispose();\n }\n }\n this.dirty = false;\n }\n }\n\n registerColumn(x: number, type: DimensionCols): SelectionStore {\n // if hidden just create store but no operations needed\n if (isHiddenStore(x)) {\n return new SelectionStore();\n }\n if (this.columnStores[x]) {\n return this.columnStores[x];\n }\n this.columnStores[x] = new SelectionStore();\n // build cross-linking type to position\n this.storesByType[type] = x;\n this.storesXToType[x] = type;\n return this.columnStores[x];\n }\n\n registerRow(y: number, type: DimensionRows): SelectionStore {\n // if hidden just create store\n if (isHiddenStore(y)) {\n return new SelectionStore();\n }\n if (this.rowStores[y]) {\n return this.rowStores[y];\n }\n this.rowStores[y] = new SelectionStore();\n // build cross linking type to position\n this.storesByType[type] = y;\n this.storesYToType[y] = type;\n return this.rowStores[y];\n }\n\n /**\n * Cross store proxy, based on multiple dimensions\n */\n register({ x, y }: Cell): SelectionStore {\n // if hidden just create store\n if (isHiddenStore(x) || isHiddenStore(y)) {\n return new SelectionStore();\n }\n if (!this.stores[y]) {\n this.stores[y] = {};\n }\n if (this.stores[y][x]) {\n // Store already registered. Do not register twice\n return this.stores[y][x];\n }\n this.stores[y][x] = new SelectionStore();\n // proxy update, column store trigger only range area\n this.stores[y][x]?.onChange('range', c => {\n this.columnStores[x].setRangeArea(c);\n this.rowStores[y].setRangeArea(c);\n });\n // clean up on remove\n this.stores[y][x]?.store.on('dispose', () => this.destroy(x, y));\n return this.stores[y][x];\n }\n\n private destroy(x: number, y: number) {\n this.columnStores[x]?.dispose();\n this.rowStores[y]?.dispose();\n\n delete this.rowStores[y];\n delete this.columnStores[x];\n // clear x cross-link\n if (this.storesXToType[x]) {\n const type = this.storesXToType[x];\n delete this.storesXToType[x];\n delete this.storesByType[type];\n }\n // clear y cross-link\n if (this.storesYToType[y]) {\n const type = this.storesYToType[y];\n delete this.storesYToType[y];\n delete this.storesByType[type];\n }\n if (this.stores[y]) {\n delete this.stores[y][x];\n }\n // clear empty rows\n if (!Object.keys(this.stores[y] || {}).length) {\n delete this.stores[y];\n }\n }\n\n setEditByCell<T extends Cell>(storePos: T, editCell: T) {\n this.focusByCell(storePos, editCell, editCell);\n this.setEdit('');\n }\n\n /**\n * Sets the next focus cell before the current one.\n * \n * @param focus - The cell to set as the next focus.\n */\n beforeNextFocusCell(focus: Cell) {\n // If there is no focused store, return early.\n if (!this.focusedStore) {\n return;\n }\n\n // Get the next store based on the current focus and the last cell.\n const lastCell = this.focusedStore.entity.store.get('lastCell');\n const next = lastCell && this.getNextStore(focus, this.focusedStore.position, lastCell);\n\n // Set the next focus cell in the store.\n next?.store?.setNextFocus({ ...focus, ...next.item });\n }\n\n focusByCell<T extends Cell>(storePos: T, start: T, end: T) {\n const store = this.stores[storePos.y][storePos.x];\n this.focus(store, { focus: start, end });\n }\n\n focus(store: SelectionStore, { focus, end }: { focus: Cell; end: Cell }) {\n const currentStorePointer = this.getCurrentStorePointer(store);\n if (!currentStorePointer) {\n return null;\n }\n\n // check for the focus in nearby store/viewport\n const lastCell = store.store.get('lastCell');\n const next = lastCell && this.getNextStore(focus, currentStorePointer, lastCell);\n\n // if next store present - update\n if (next?.store) {\n const item = { ...focus, ...next.item };\n this.focus(next.store, { focus: item, end: item });\n return null;\n }\n\n if (lastCell) {\n focus = cropCellToMax(focus, lastCell);\n end = cropCellToMax(end, lastCell); \n }\n store.setFocus(focus, end);\n return focus;\n }\n\n /**\n * Retrieves the current store pointer based on the active store.\n * Clears focus from all stores except the active one.\n */\n getCurrentStorePointer(store: SelectionStore) {\n let currentStorePointer: Cell | undefined;\n\n // Iterate through all stores\n for (let y in this.stores) {\n for (let x in this.stores[y]) {\n const s = this.stores[y][x];\n\n // Clear focus from stores other than the active one\n if (s !== store) {\n s.clearFocus();\n } else {\n // Update the current store pointer with the active store coordinates\n currentStorePointer = { \n x: parseInt(x, 10), \n y: parseInt(y, 10) \n };\n }\n }\n }\n\n return currentStorePointer;\n }\n\n /**\n * Retrieves the next store based on the focus cell and current store pointer.\n * If the next store exists, returns an object with the next store and the item in the new store.\n * If the next store does not exist, returns null.\n */\n getNextStore(\n focus: Cell,\n currentStorePointer: Cell,\n lastCell: Cell,\n ) {\n // item in new store\n const nextItem: Partial<Cell> | null = nextCell(focus, lastCell);\n\n let nextStore: SelectionStore | undefined;\n if (nextItem) {\n Object.entries(nextItem).forEach(([type, nextItemCoord]: [keyof Cell, number]) => {\n let stores;\n switch (type) {\n case 'x':\n // Get the X stores for the current Y coordinate of the current store pointer\n stores = this.getXStores(currentStorePointer.y);\n break;\n case 'y':\n // Get the Y stores for the current X coordinate of the current store pointer\n stores = this.getYStores(currentStorePointer.x);\n break;\n }\n\n // Get the next store based on the item in the new store\n if (nextItemCoord >= 0) {\n nextStore = stores[++currentStorePointer[type]];\n } else {\n nextStore = stores[--currentStorePointer[type]];\n const nextLastCell = nextStore?.store.get('lastCell');\n if (nextLastCell) {\n nextItem[type] = nextLastCell[type] + nextItemCoord;\n }\n }\n });\n }\n return {\n store: nextStore,\n item: nextItem,\n };\n }\n\n clearAll() {\n for (let y in this.stores) {\n for (let x in this.stores[y]) {\n this.stores[y][x]?.clearFocus();\n }\n }\n }\n\n setEdit(val?: string | boolean) {\n if (!this.focusedStore) {\n return;\n }\n this.focusedStore.entity.setEdit(val);\n }\n\n /**\n * Select all cells across all stores\n */\n selectAll() {\n for (let y in this.stores) {\n for (let x in this.stores[y]) {\n const store = this.stores[y][x];\n if (!store) {\n continue;\n }\n const lastCell = store.store.get('lastCell');\n if (lastCell) {\n store.setRange(\n { x: 0, y: 0 },\n { x: lastCell.x - 1, y: lastCell.y - 1 },\n );\n }\n }\n }\n }\n\n private getXStores(y: number) {\n return this.stores[y];\n }\n\n private getYStores(x: number) {\n const stores: { [p: number]: SelectionStore } = {};\n for (let i in this.stores) {\n stores[i] = this.stores[i][x];\n }\n return stores;\n }\n}\n","import { EMPTY_INDEX } from '../../services/selection.store.connector';\nimport { Cell, RangeArea } from '@type';\n\nexport function isHiddenStore(pos: number) {\n return pos === EMPTY_INDEX;\n}\n\nexport function nextCell(cell: Cell, lastCell: Cell): Partial<Cell> | null {\n const nextItem: Partial<Cell> = {};\n let types: (keyof Cell)[] = ['x', 'y'];\n\n // previous item check\n for (let t of types) {\n if (cell[t] < 0) {\n nextItem[t] = cell[t];\n return nextItem;\n }\n }\n // next item check\n for (let t of types) {\n if (cell[t] >= lastCell[t]) {\n nextItem[t] = cell[t] - lastCell[t];\n return nextItem;\n }\n }\n return null;\n}\n\nexport function cropCellToMax(cell: Cell, lastCell: Cell): Cell {\n const croppedCell: Cell = { ...cell };\n const cellCoordinates: (keyof Cell)[] = ['x', 'y'];\n\n for (const coordinate of cellCoordinates) {\n if (cell[coordinate] < 0) {\n croppedCell[coordinate] = 0;\n } else if (cell[coordinate] >= lastCell[coordinate]) {\n croppedCell[coordinate] = lastCell[coordinate] - 1;\n }\n }\n\n return croppedCell;\n}\n\nexport function getRange(start?: Cell | null, end?: Cell | null): RangeArea | null {\n return start && end\n ? {\n x: Math.min(start.x, end.x),\n y: Math.min(start.y, end.y),\n x1: Math.max(start.x, end.x),\n y1: Math.max(start.y, end.y),\n }\n : null;\n}\n\nexport function isRangeSingleCell(a: RangeArea): boolean {\n return a.x === a.x1 && a.y === a.y1;\n}\n","import isArray from 'lodash/isArray';\nimport reduce from 'lodash/reduce';\n\nimport {\n ColumnData,\n ColumnGrouping,\n ColumnProp,\n ColumnRegular,\n ColumnTypes,\n DataType,\n DimensionCols,\n ViewSettingSizeProp,\n} from '@type';\nimport { Group as StoreGroup } from '@store';\n\nexport type ColumnItems = Record<DimensionCols, ColumnRegular[]>;\nexport interface ColumnGroup extends StoreGroup {\n level: number;\n}\nexport type ColumnGroupingCollection = Record<DimensionCols, ColumnGroup[]>;\n\nexport function getCellData(val?: any) {\n if (typeof val === 'undefined' || val === null) {\n return '';\n }\n return val;\n}\n\nexport function getCellRaw(model: DataType, column: ColumnRegular) {\n if (column.cellParser) {\n return column.cellParser(model, column);\n }\n return model[column.prop];\n}\n\nexport function getCellDataParsed(model: DataType, column: ColumnRegular) {\n return getCellData(getCellRaw(model, column));\n}\n\n/**\n * Column collection definition.\n * Used to access indexed data for columns.\n * Can be accessed via different events.\n */\nexport type ColumnCollection = {\n /**\n * Columns as they are in stores\n */\n columns: Record<DimensionCols, ColumnRegular[]>;\n /**\n * Columns indexed by prop for quick access, it's possible to have multiple columns with same prop but not recommended\n */\n columnByProp: Record<ColumnProp, ColumnRegular[]>;\n /**\n * Grouped columns\n */\n columnGrouping: ColumnGroupingCollection;\n /**\n * Max level of grouping\n */\n maxLevel: number;\n /**\n * Sorting\n */\n sort: Record<ColumnProp, ColumnRegular>;\n};\n\n/**\n * Get column type from column data\n */\nexport function getColumnType(rgCol: ColumnRegular): DimensionCols {\n if (rgCol.pin) {\n return rgCol.pin;\n }\n return 'rgCol';\n}\n\nexport function getColumnSizes(cols: ColumnRegular[]): ViewSettingSizeProp {\n const res: ViewSettingSizeProp = {};\n for (const [i, c] of cols.entries()) {\n if (c.size) {\n res[i] = c.size;\n }\n }\n return res;\n}\n\n\n/**\n * Check if column is grouping column\n */\nexport function isColGrouping(\n colData: ColumnGrouping | ColumnRegular,\n): colData is ColumnGrouping {\n return !!(colData as ColumnGrouping).children;\n}\n\n/**\n * This function is used to create a collection of columns.\n */\nexport function getColumns(\n columns: ColumnData,\n level = 0,\n types?: ColumnTypes,\n): ColumnCollection {\n const collection: ColumnCollection = {\n // columns as they are in stores per type\n columns: {\n rgCol: [],\n colPinStart: [],\n colPinEnd: [],\n },\n // columns indexed by prop for quick access\n columnByProp: {},\n // column grouping\n columnGrouping: {\n rgCol: [],\n colPinStart: [],\n colPinEnd: [],\n },\n // max depth level for column grouping\n maxLevel: level,\n // sorting\n sort: {},\n };\n\n return reduce(\n columns,\n (res: ColumnCollection, colData: ColumnGrouping | ColumnRegular) => {\n // Grouped column\n if (isColGrouping(colData)) {\n return gatherGroup(\n res,\n colData,\n getColumns(colData.children, level + 1, types),\n level,\n );\n }\n // Column type\n const columnDefinitionFromType = colData.columnType && types?.[colData.columnType];\n // Regular column\n const regularColumn = {\n ...columnDefinitionFromType,\n ...colData,\n };\n // Regular column, no Pin\n if (!regularColumn.pin) {\n res.columns.rgCol.push(regularColumn);\n // Pin\n } else {\n res.columns[regularColumn.pin].push(regularColumn);\n }\n if (regularColumn.order) {\n res.sort[regularColumn.prop] = regularColumn;\n }\n // it's possible that some columns have same prop, but better to avoid it\n if (!res.columnByProp[regularColumn.prop]) {\n res.columnByProp[regularColumn.prop] = [];\n }\n res.columnByProp[regularColumn.prop].push(regularColumn);\n\n // trigger setup hook if present\n regularColumn.beforeSetup && regularColumn.beforeSetup(regularColumn);\n return res;\n },\n collection,\n );\n}\n\nexport function gatherGroup<T extends ColumnCollection>(\n res: T,\n colData: ColumnGrouping,\n collection: T,\n level = 0,\n): T {\n // group template\n const group: ColumnGroup = {\n ...colData,\n level,\n ids: [],\n };\n\n // check columns for update\n for (let k in collection.columns) {\n const key = k as keyof ColumnCollection['columns'];\n const resultItem = res.columns[key];\n const collectionItem = collection.columns[key];\n\n // if column data\n if (isArray(resultItem) && isArray(collectionItem)) {\n // fill columns\n resultItem.push(...collectionItem);\n\n // fill grouping\n if (collectionItem.length) {\n res.columnGrouping[key].push({\n ...group,\n ids: collectionItem.map(item => item.prop),\n });\n }\n }\n }\n // merge column groupings\n for (let k in collection.columnGrouping) {\n const key = k as DimensionCols;\n const collectionItem = collection.columnGrouping[key];\n res.columnGrouping[key].push(...collectionItem);\n }\n res.maxLevel = Math.max(res.maxLevel, collection.maxLevel);\n res.sort = { ...res.sort, ...collection.sort };\n return res;\n}\n\nfunction findColumn(\n columns: ColumnData,\n prop: ColumnProp,\n): ColumnRegular | undefined {\n for (const c of columns) {\n if (isColGrouping(c)) {\n const found = findColumn(c.children, prop);\n if (found) {\n return found;\n }\n } else if (c.prop === prop) {\n return c;\n }\n }\n return undefined;\n}\n\nexport function getColumnByProp(\n columns: ColumnData,\n prop: ColumnProp,\n): ColumnRegular | undefined {\n return findColumn(columns, prop);\n}\n","import { GRID_INTERNALS } from '../../utils/consts';\n\nexport const GROUP_DEPTH = `${GRID_INTERNALS}-depth`;\nexport const PSEUDO_GROUP_ITEM = `${GRID_INTERNALS}-name`;\nexport const PSEUDO_GROUP_ITEM_ID = `${GRID_INTERNALS}-id`;\nexport const PSEUDO_GROUP_ITEM_VALUE = `${GRID_INTERNALS}-value`;\nexport const PSEUDO_GROUP_COLUMN = `${GRID_INTERNALS}-column`;\nexport const GROUP_EXPANDED = `${GRID_INTERNALS}-expanded`;\nexport const GROUP_ORIGINAL_INDEX = `${GRID_INTERNALS}-original-index`;\nexport const GROUP_EXPAND_BTN = `group-expand`;\nexport const GROUP_EXPAND_EVENT = `groupexpandclick`;\nexport const GROUPING_ROW_TYPE = 'rgRow';\n","import { DataType, ColumnProp, ColumnRegular } from '@type';\nimport {\n GROUP_DEPTH,\n GROUP_EXPANDED,\n PSEUDO_GROUP_COLUMN,\n PSEUDO_GROUP_ITEM,\n PSEUDO_GROUP_ITEM_ID,\n PSEUDO_GROUP_ITEM_VALUE,\n GROUP_ORIGINAL_INDEX,\n} from './grouping.const';\nimport { GroupLabelTemplateFunc } from './grouping.row.types';\n\nexport type ExpandedOptions = {\n prevExpanded?: Record<string, boolean>;\n expandedAll?: boolean; // skip trim\n\n getGroupValue?(item: DataType, prop: string | number): any;\n groupLabelTemplate?: GroupLabelTemplateFunc;\n};\n\ntype GroupedData = Map<string, GroupedData | DataType[]>;\n\nfunction getGroupValueDefault(item: DataType, prop: string | number) {\n return item[prop] || null;\n}\n\n/**\n * Gather data for grouping\n * @param array - flat data array\n * @param groupIds - ids of groups\n * @param expanded - potentially expanded items if present\n */\nexport function gatherGrouping(\n array: DataType[],\n groupIds: ColumnProp[],\n {\n prevExpanded,\n expandedAll,\n getGroupValue = getGroupValueDefault,\n }: ExpandedOptions,\n) {\n const groupedItems: GroupedData = new Map();\n array.forEach((item, originalIndex) => {\n const groupLevelValues = groupIds.map(groupId =>\n getGroupValue(item, groupId),\n );\n const lastLevelValue = groupLevelValues.pop();\n let currentGroupLevel = groupedItems;\n groupLevelValues.forEach(value => {\n if (!currentGroupLevel.has(value)) {\n currentGroupLevel.set(value, new Map());\n }\n currentGroupLevel = currentGroupLevel.get(value) as GroupedData;\n });\n if (!currentGroupLevel.has(lastLevelValue)) {\n currentGroupLevel.set(lastLevelValue, []);\n }\n const lastLevelItems = currentGroupLevel.get(lastLevelValue) as DataType[];\n lastLevelItems.push({\n ...item,\n [GROUP_ORIGINAL_INDEX]: originalIndex,\n });\n });\n\n let itemIndex = -1;\n const groupingDepth = groupIds.length;\n // collapse all groups in the beginning\n const trimmed: Record<number, boolean> = {};\n // index mapping\n const oldNewIndexMap: Record<number, number> = {};\n // check if group header exists\n const pseudoGroupTest: Record<string, number[]> = {};\n const sourceWithGroups: DataType[] = [];\n function flattenGroupMaps(\n groupedValues: GroupedData,\n parentIds: string[],\n isExpanded: boolean,\n ) {\n const depth = parentIds.length;\n groupedValues.forEach((innerGroupedValues, groupId) => {\n const levelIds = [...parentIds, groupId];\n const mergedIds = levelIds.join(',');\n const isGroupExpanded =\n isExpanded && (!!expandedAll || !!prevExpanded?.[mergedIds]);\n sourceWithGroups.push({\n [PSEUDO_GROUP_ITEM]: groupId,\n [GROUP_DEPTH]: depth,\n [PSEUDO_GROUP_ITEM_ID]: JSON.stringify(levelIds),\n [PSEUDO_GROUP_ITEM_VALUE]: mergedIds,\n [GROUP_EXPANDED]: isGroupExpanded,\n });\n itemIndex += 1;\n if (!isGroupExpanded && depth) {\n trimmed[itemIndex] = true;\n }\n if (Array.isArray(innerGroupedValues)) {\n innerGroupedValues.forEach(value => {\n itemIndex += 1;\n if (!isGroupExpanded) {\n trimmed[itemIndex] = true;\n }\n oldNewIndexMap[value[GROUP_ORIGINAL_INDEX]] = itemIndex;\n const pseudoGroupTestIds = levelIds.map((_value, index) =>\n levelIds.slice(0, index + 1).join(','),\n );\n pseudoGroupTestIds.forEach(pseudoGroupTestId => {\n if (!pseudoGroupTest[pseudoGroupTestId]) {\n pseudoGroupTest[pseudoGroupTestId] = [];\n }\n pseudoGroupTest[pseudoGroupTestId].push(itemIndex);\n });\n });\n sourceWithGroups.push(...innerGroupedValues);\n } else {\n flattenGroupMaps(innerGroupedValues, levelIds, isGroupExpanded);\n }\n });\n }\n flattenGroupMaps(groupedItems, [], true);\n\n return {\n sourceWithGroups, // updates source mirror\n depth: groupingDepth, // largest depth for grouping\n trimmed, // used for expand/collapse grouping values\n oldNewIndexMap, // used for mapping old values to new\n childrenByGroup: pseudoGroupTest, // used to get child items in group\n };\n}\n\nexport function getGroupingName(rgRow?: DataType) {\n return rgRow && rgRow[PSEUDO_GROUP_ITEM];\n}\n\ntype GroupingItem = {\n [PSEUDO_GROUP_ITEM]: string;\n [GROUP_EXPANDED]: boolean;\n [PSEUDO_GROUP_ITEM_VALUE]: string;\n [GROUP_DEPTH]: number;\n};\n\nexport function isGrouping(rgRow?: DataType): rgRow is GroupingItem {\n return typeof rgRow?.[PSEUDO_GROUP_ITEM] !== 'undefined';\n}\n\nexport function isGroupingColumn(column?: ColumnRegular) {\n return column && typeof column[PSEUDO_GROUP_COLUMN] !== 'undefined';\n}\n\nexport function measureEqualDepth<T>(groupA: T[], groupB: T[]) {\n const ln = groupA.length;\n let i = 0;\n for (; i < ln; i++) {\n if (groupA[i] !== groupB[i]) {\n return i;\n }\n }\n return i;\n}\n\nexport function getParsedGroup(id: string) {\n const parseGroup = JSON.parse(id);\n // extra precaution and type safeguard\n if (!Array.isArray(parseGroup)) {\n return null;\n }\n return parseGroup;\n}\n\n// check if items is child of current clicked group\nexport function isSameGroup(\n currentGroup: any[],\n currentModel: DataType,\n nextModel: DataType,\n) {\n const nextGroup = getParsedGroup(nextModel[PSEUDO_GROUP_ITEM_ID]);\n if (!nextGroup) {\n return false;\n }\n\n const depth = measureEqualDepth(currentGroup, nextGroup);\n return currentModel[GROUP_DEPTH] < depth;\n}\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n}\n\nexport default slice;\n","import { DSourceState, getSourceItem, getVisibleSourceItem } from '@store';\nimport {\n getCellData,\n Observable,\n CELL_CLASS,\n DISABLED_CLASS,\n getCellRaw,\n} from '../../utils';\nimport { getRange } from '@store';\n\nimport { isGroupingColumn } from '../../plugins/groupingRow/grouping.service';\nimport slice from 'lodash/slice';\nimport {\n DimensionCols,\n DimensionRows,\n RowDrag,\n ColumnRegular,\n DataType,\n CellProps,\n ColumnDataSchemaModel,\n ColumnProp,\n DataLookup,\n DataFormat,\n ChangedRange,\n OldNewRangeMapping,\n Cell,\n RangeArea,\n BeforeSaveDataDetails,\n EditorCtr,\n Editors,\n CellTemplateProp,\n} from '@type';\nimport { JSXBase } from '@stencil/core/internal';\n\nexport type ColumnStores = {\n [T in DimensionCols]: Observable<DSourceState<ColumnRegular, DimensionCols>>;\n};\nexport type RowStores = {\n [T in DimensionRows]: Observable<DSourceState<DataType, DimensionRows>>;\n};\n\nexport default class ColumnService {\n private unsubscribe: { (): void }[] = [];\n get columns(): ColumnRegular[] {\n return getVisibleSourceItem(this.source);\n }\n\n hasGrouping = false;\n type: DimensionCols;\n\n constructor(\n private dataStore: Observable<DSourceState<DataType, DimensionRows>>,\n private source: Observable<DSourceState<ColumnRegular, DimensionCols>>,\n ) {\n this.unsubscribe.push(\n source.onChange('source', s => this.checkGrouping(s)),\n );\n this.checkGrouping(source.get('source'));\n this.type = source.get('type');\n }\n\n private checkGrouping(cols: ColumnRegular[]) {\n for (let rgCol of cols) {\n if (isGroupingColumn(rgCol)) {\n this.hasGrouping = true;\n return;\n }\n this.hasGrouping = false;\n }\n }\n\n isReadOnly(r: number, c: number) {\n const readOnly = this.columns[c]?.readonly;\n if (typeof readOnly === 'function') {\n const data = this.rowDataModel(r, c);\n return readOnly(data);\n }\n return !!readOnly;\n }\n\n mergeProperties(\n r: number,\n c: number,\n defaultProps: CellProps,\n schemaModel: CellTemplateProp,\n ): CellProps {\n const props: CellProps = {\n ...defaultProps,\n };\n props.class = {\n ...(typeof props.class === 'string'\n ? { [props.class]: true }\n : props.class),\n [CELL_CLASS]: true,\n [DISABLED_CLASS]: this.isReadOnly(r, c),\n };\n\n const extra = schemaModel.column?.cellProperties?.(schemaModel);\n if (!extra) {\n return props;\n }\n return doPropMerge(props, extra);\n }\n\n getRowClass(r: number, prop: string): string {\n const model = getSourceItem(this.dataStore, r) || {};\n return model[prop] || '';\n }\n\n getCellData(r: number, c: number): string {\n const data = this.rowDataModel(r, c);\n return getCellData(data.model[data.prop as number]);\n }\n\n getSaveData(\n rowIndex: number,\n colIndex: number,\n val?: string,\n ): BeforeSaveDataDetails {\n const data = this.rowDataModel(rowIndex, colIndex);\n if (typeof val === 'undefined') {\n val = getCellData(data.model[data.prop as number]);\n }\n return {\n prop: data.prop,\n rowIndex,\n colIndex,\n val,\n model: data.model,\n colType: this.type,\n type: this.dataStore.get('type'),\n };\n }\n\n getCellEditor(\n _r: number,\n c: number,\n editors: Editors,\n ): EditorCtr | undefined {\n const editor = this.columns[c]?.editor;\n if (!editor) {\n return undefined;\n }\n // reference\n if (typeof editor === 'string') {\n return editors[editor];\n }\n return editor;\n }\n\n /**\n * Get cell data model for given rowIndex and colIndex\n * Used to pass data to editor/renderer\n */\n rowDataModel(rowIndex: number, colIndex: number): ColumnDataSchemaModel {\n const column = this.columns[colIndex];\n const prop: ColumnProp | undefined = column?.prop;\n const model = getSourceItem(this.dataStore, rowIndex) || {};\n const type = this.dataStore.get('type');\n return {\n prop,\n model,\n data: this.dataStore.get('source'),\n column,\n rowIndex,\n colIndex,\n colType: this.type,\n type,\n value: getCellRaw(model, column),\n };\n }\n\n getRangeData(\n d: ChangedRange,\n columns: ColumnRegular[],\n ): {\n changed: DataLookup;\n mapping: OldNewRangeMapping;\n } {\n const changed: DataLookup = {};\n\n // get original length sizes\n const copyColLength = d.oldRange.x1 - d.oldRange.x + 1;\n const copyRowLength = d.oldRange.y1 - d.oldRange.y + 1;\n const mapping: OldNewRangeMapping = {};\n\n // rows\n for (\n let rowIndex = d.newRange.y, i = 0;\n rowIndex < d.newRange.y1 + 1;\n rowIndex++, i++\n ) {\n // copy original data link\n const oldRowIndex = d.oldRange.y + (i % copyRowLength);\n const copyRow = getSourceItem(this.dataStore, oldRowIndex) || {};\n\n // columns\n for (\n let colIndex = d.newRange.x, j = 0;\n colIndex < d.newRange.x1 + 1;\n colIndex++, j++\n ) {\n // check if old range area\n if (\n rowIndex >= d.oldRange.y &&\n rowIndex <= d.oldRange.y1 &&\n colIndex >= d.oldRange.x &&\n colIndex <= d.oldRange.x1\n ) {\n continue;\n }\n\n // requested column beyond range\n if (!this.columns[colIndex]) {\n continue;\n }\n const prop = this.columns[colIndex]?.prop;\n const copyColIndex = d.oldRange.x + (j % copyColLength);\n const copyColumnProp = columns[copyColIndex].prop;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][prop] = copyRow[copyColumnProp];\n /** Generate mapping object */\n if (!mapping[rowIndex]) {\n mapping[rowIndex] = {};\n }\n mapping[rowIndex][prop] = {\n colIndex: copyColIndex,\n colProp: copyColumnProp,\n rowIndex: oldRowIndex,\n };\n }\n }\n }\n return {\n changed,\n mapping,\n };\n }\n\n getTransformedDataToApply(\n start: Cell,\n data: DataFormat[][],\n ): {\n changed: DataLookup;\n range: RangeArea | null;\n } {\n const changed: DataLookup = {};\n const copyRowLength = data.length;\n const colLength = this.columns.length;\n const rowLength = this.dataStore.get('items').length;\n // rows\n let rowIndex = start.y;\n let maxCol = 0;\n for (\n let i = 0;\n rowIndex < rowLength && i < copyRowLength;\n rowIndex++, i++\n ) {\n // copy original data link\n const copyRow = data[i % copyRowLength];\n const copyColLength = copyRow?.length || 0;\n // columns\n let colIndex = start.x;\n for (\n let j = 0;\n colIndex < colLength && j < copyColLength;\n colIndex++, j++\n ) {\n const p = this.columns[colIndex].prop;\n const currentCol = j % colLength;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][p] = copyRow[currentCol];\n }\n }\n maxCol = Math.max(maxCol, colIndex - 1);\n }\n const range = getRange(start, {\n y: rowIndex - 1,\n x: maxCol,\n });\n return {\n changed,\n range,\n };\n }\n\n getRangeStaticData(d: RangeArea, value: DataFormat): DataLookup {\n const changed: DataLookup = {};\n\n // rows\n for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {\n // columns\n for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {\n // requested column beyond range\n if (!this.columns[colIndex]) {\n continue;\n }\n const p = this.columns[colIndex].prop;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][p] = value;\n }\n }\n }\n return changed;\n }\n\n getRangeTransformedToProps(\n d: RangeArea,\n store: Observable<DSourceState<DataType, DimensionRows>>,\n ) {\n const area: {\n prop: ColumnProp;\n rowIndex: number;\n colIndex: number;\n model?: DataType;\n colType: DimensionCols;\n type: DimensionRows;\n }[] = [];\n\n const type = this.dataStore.get('type');\n // rows\n for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {\n // columns\n for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {\n const prop = this.columns[colIndex]?.prop;\n area.push({\n prop,\n rowIndex,\n colIndex,\n model: getSourceItem(store, rowIndex),\n type,\n colType: this.type,\n });\n }\n }\n return area;\n }\n\n copyRangeArray(\n range: RangeArea,\n store: Observable<DSourceState<DataType, DimensionRows>>,\n ) {\n const cols = [...this.columns];\n const props = slice(cols, range.x, range.x1 + 1).map(v => v.prop);\n const toCopy: DataFormat[][] = [];\n const mapping: { [rowIndex: number]: { [colProp: ColumnProp]: any } } = {};\n\n // rows indexes\n for (let i = range.y; i <= range.y1; i++) {\n const rgRow: DataFormat[] = [];\n mapping[i] = {};\n\n // columns indexes\n for (let prop of props) {\n const item = getSourceItem(store, i);\n\n // if no item - skip\n if (!item) {\n continue;\n }\n const val = item[prop];\n rgRow.push(val);\n mapping[i][prop] = val;\n }\n\n toCopy.push(rgRow);\n }\n return {\n data: toCopy,\n mapping,\n };\n }\n\n destroy() {\n this.unsubscribe.forEach(f => f());\n }\n}\n\n/**\n * Checks if the given rowDrag is a service for dragging rows.\n */\nexport function isRowDragService(\n rowDrag: RowDrag,\n model: ColumnDataSchemaModel,\n): boolean {\n if (typeof rowDrag === 'function') {\n return rowDrag(model);\n }\n return !!rowDrag;\n}\n\nfunction mergeClasses(\n class1: JSXBase.HTMLAttributes<HTMLElement>['class'] = {},\n class2: JSXBase.HTMLAttributes<HTMLElement>['class'] = {},\n) {\n if (typeof class1 === 'string') {\n class1 = { [class1]: true };\n }\n if (typeof class2 === 'string') {\n class2 = { [class2]: true };\n }\n return { ...class1, ...class2 };\n}\n\nexport function doPropMerge(existing: CellProps, extra: CellProps) {\n // if className is provided - remove it from props it messing with stencil\n if (extra.className) {\n extra.class = mergeClasses(extra.class, extra.className);\n delete extra.className;\n }\n let props: CellProps = { ...extra, ...existing };\n // extend existing props\n if (extra.class) {\n props.class = mergeClasses(props.class, extra.class);\n }\n if (extra.style) {\n props.style = { ...extra.style, ...props.style };\n }\n return props;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- import{h as t}from"./index-a61f225b.js";import{q as i}from"./column.service-9b0603f4.js";function s(t,i,s){const e=new CustomEvent(i,{detail:s,cancelable:true,bubbles:true});t===null||t===void 0?void 0:t.dispatchEvent(e);return e}function e(t,i,e){t.preventDefault();return s(t.target,i,e)}var h;(function(t){t["start"]="resize:start";t["move"]="resize:move";t["end"]="resize:end"})(h||(h={}));const o={"resizable-r":{bit:1,cursor:"ew-resize"},"resizable-rb":{bit:3,cursor:"se-resize"},"resizable-b":{bit:2,cursor:"s-resize"},"resizable-lb":{bit:6,cursor:"sw-resize"},"resizable-l":{bit:4,cursor:"w-resize"},"resizable-lt":{bit:12,cursor:"nw-resize"},"resizable-t":{bit:8,cursor:"n-resize"},"resizable-rt":{bit:9,cursor:"ne-resize"}};const n={l:1,t:2,w:4,h:8};const l=t=>Object.assign(Object.assign({},t),{fitParent:t.fitParent||false,active:t.active||[],disableAttributes:t.disableAttributes||[],minWidth:t.minWidth||0,minHeight:t.minHeight||0});class r{constructor(t,i){var s,e;this.initialProps=t;this.$event=i;this.mouseX=0;this.mouseY=0;this.width=0;this.height=0;this.changeX=0;this.changeY=0;this.disableCalcMap=15;this.props=l(t);this.mouseMoveFunc=this.handleMove.bind(this);this.mouseUpFunc=this.handleUp.bind(this);this.minW=this.props.minWidth;this.minH=this.props.minHeight;this.maxW=(s=this.props.maxWidth)!==null&&s!==void 0?s:0;this.maxH=(e=this.props.maxHeight)!==null&&e!==void 0?e:0;this.parent={width:0,height:0};this.resizeState=0}set(t){this.$el=t;this.props.disableAttributes.forEach((t=>{switch(t){case"l":this.disableCalcMap&=~n.l;break;case"t":this.disableCalcMap&=~n.t;break;case"w":this.disableCalcMap&=~n.w;break;case"h":this.disableCalcMap&=~n.h}}))}emitEvent(t,i){var s;if(!this.$event){return}const e=(s=this.activeResizer)===null||s===void 0?void 0:s.classList.contains("resizable-l");this.$event(Object.assign({eventName:t,width:this.width+this.changeX*(e?-1:1),height:this.height+this.changeY,changedX:this.changeX,changedY:this.changeY},i))}static isTouchEvent(t){var i;const s=t;return((i=s.touches)===null||i===void 0?void 0:i.length)>=0}handleMove(t){var i;if(!this.resizeState){return}let s,e;if(r.isTouchEvent(t)){s=t.touches[0].clientY;e=t.touches[0].clientX}else{s=t.clientY;e=t.clientX}let l=this.resizeState&o["resizable-r"].bit||this.resizeState&o["resizable-l"].bit;let c=this.resizeState&o["resizable-t"].bit||this.resizeState&o["resizable-b"].bit;if(c&&this.disableCalcMap&n.h){let t=s-this.mouseY;let i=this.changeY+t;const e=this.height+i;if(e<this.minH){i=-(this.height-this.minH)}if(this.maxH&&e>this.maxH){i=this.maxH-this.height}this.changeY=i;this.mouseY=s;if(this.activeResizer){this.activeResizer.style.bottom=`${-this.changeY}px`}}if(l&&this.disableCalcMap&n.w){const t=(i=this.activeResizer)===null||i===void 0?void 0:i.classList.contains("resizable-l");let s=e-this.mouseX;let h=this.changeX+s;const o=this.width+h*(t?-1:1);if(o<this.minW){h=-(this.width-this.minW)}if(this.maxW&&o>this.maxW){h=this.maxW-this.width}this.changeX=h;this.mouseX=e;if(this.activeResizer){if(!t){this.activeResizer.style.right=`${-this.changeX}px`}else{this.activeResizer.style.left=`${this.changeX}px`}}}this.emitEvent(h.move)}handleDown(t){if(t.defaultPrevented){return}t.preventDefault();this.dropInitial();for(let i in o){const s=t.target;if(this.$el.contains(s)&&(s===null||s===void 0?void 0:s.classList.contains(i))){document.body.style.cursor=o[i].cursor;if(r.isTouchEvent(t)){this.setInitials(t.touches[0],s)}else{t.preventDefault&&t.preventDefault();this.setInitials(t,s)}this.resizeState=o[i].bit;const e=h.start;this.emitEvent(e);break}}this.bindMove()}handleUp(t){t.preventDefault();if(this.resizeState!==0){this.resizeState=0;document.body.style.cursor="";const t=h.end;this.emitEvent(t)}this.dropInitial();this.unbindMove()}setInitials({clientX:t,clientY:i},s){var e,h,o,l;const r=getComputedStyle(this.$el);this.$el.classList.add("active");this.activeResizer=s;if(this.disableCalcMap&n.w){this.mouseX=t;this.width=this.$el.clientWidth;this.parent.width=(h=(e=this.$el.parentElement)===null||e===void 0?void 0:e.clientWidth)!==null&&h!==void 0?h:0;const i=parseFloat(r.paddingLeft)+parseFloat(r.paddingRight);this.minW=Math.max(i,this.initialProps.minWidth||0);if(this.initialProps.maxWidth){this.maxW=Math.max(this.width,this.initialProps.maxWidth)}}if(this.disableCalcMap&n.h){this.mouseY=i;this.height=this.$el.clientHeight;this.parent.height=(l=(o=this.$el.parentElement)===null||o===void 0?void 0:o.clientHeight)!==null&&l!==void 0?l:0;const t=parseFloat(r.paddingTop)+parseFloat(r.paddingBottom);this.minH=Math.max(t,this.initialProps.minHeight||0);if(this.initialProps.maxHeight){this.maxH=Math.max(this.height,this.initialProps.maxHeight)}}}dropInitial(){this.changeX=this.changeY=this.minW=this.minH;this.width=this.height=0;if(this.activeResizer){this.activeResizer.removeAttribute("style")}this.$el.classList.remove("active");this.activeResizer=undefined}bindMove(){document.documentElement.addEventListener("mouseup",this.mouseUpFunc,true);document.documentElement.addEventListener("touchend",this.mouseUpFunc,true);document.documentElement.addEventListener("mousemove",this.mouseMoveFunc,true);document.documentElement.addEventListener("touchmove",this.mouseMoveFunc,true);document.documentElement.addEventListener("mouseleave",this.mouseUpFunc)}unbindMove(){document.documentElement.removeEventListener("mouseup",this.mouseUpFunc,true);document.documentElement.removeEventListener("touchend",this.mouseUpFunc,true);document.documentElement.removeEventListener("mousemove",this.mouseMoveFunc,true);document.documentElement.removeEventListener("touchmove",this.mouseMoveFunc,true);document.documentElement.removeEventListener("mouseleave",this.mouseUpFunc)}}const c=(i,s)=>{const e=[];const o=i.canResize&&new r(i,(t=>{var s;if(t.eventName===h.end){(s=i.onResize)===null||s===void 0?void 0:s.call(i,t)}}))||null;if(i.active){if(i.canResize){for(let s in i.active){e.push(t("div",{onClick:t=>t.preventDefault(),onDblClick:t=>{var s;t.preventDefault();(s=i.onDblClick)===null||s===void 0?void 0:s.call(i,t)},onMouseDown:t=>o===null||o===void 0?void 0:o.handleDown(t),onTouchStart:t=>o===null||o===void 0?void 0:o.handleDown(t),class:`resizable resizable-${i.active[s]}`}))}}else{for(let s in i.active){e.push(t("div",{onClick:t=>t.preventDefault(),onTouchStart:t=>t.preventDefault(),onDblClick:t=>{var s;t.preventDefault();(s=i.onDblClick)===null||s===void 0?void 0:s.call(i,t)},class:`no-resize resizable resizable-${i.active[s]}`}))}}}return t("div",Object.assign({},i,{ref:t=>t&&(o===null||o===void 0?void 0:o.set(t))}),s,e)};const u="columnclick";const a=({data:e,props:h,additionalData:o},n)=>{let l=(e===null||e===void 0?void 0:e.name)||"";let r=h;if(e===null||e===void 0?void 0:e.columnTemplate){l=e.columnTemplate(t,e,o)}if(e===null||e===void 0?void 0:e.columnProperties){const t=e.columnProperties(e);if(t){r=i(h,t)}}const a=Object.assign(Object.assign({},r),{onMouseDown(t){s(t.currentTarget,u,{data:e,event:t})}});return t(c,Object.assign({},a),t("div",{class:"header-content"},l),n)};export{a as H,u as O,e as a,s as d};
5
- //# sourceMappingURL=header-cell-renderer-fce020c3.js.map
4
+ import{h as t}from"./index-a61f225b.js";import{s as i}from"./column.service-5d1cf29d.js";function s(t,i,s){const e=new CustomEvent(i,{detail:s,cancelable:true,bubbles:true});t===null||t===void 0?void 0:t.dispatchEvent(e);return e}function e(t,i,e){t.preventDefault();return s(t.target,i,e)}var h;(function(t){t["start"]="resize:start";t["move"]="resize:move";t["end"]="resize:end"})(h||(h={}));const o={"resizable-r":{bit:1,cursor:"ew-resize"},"resizable-rb":{bit:3,cursor:"se-resize"},"resizable-b":{bit:2,cursor:"s-resize"},"resizable-lb":{bit:6,cursor:"sw-resize"},"resizable-l":{bit:4,cursor:"w-resize"},"resizable-lt":{bit:12,cursor:"nw-resize"},"resizable-t":{bit:8,cursor:"n-resize"},"resizable-rt":{bit:9,cursor:"ne-resize"}};const n={l:1,t:2,w:4,h:8};const l=t=>Object.assign(Object.assign({},t),{fitParent:t.fitParent||false,active:t.active||[],disableAttributes:t.disableAttributes||[],minWidth:t.minWidth||0,minHeight:t.minHeight||0});class r{constructor(t,i){var s,e;this.initialProps=t;this.$event=i;this.mouseX=0;this.mouseY=0;this.width=0;this.height=0;this.changeX=0;this.changeY=0;this.disableCalcMap=15;this.props=l(t);this.mouseMoveFunc=this.handleMove.bind(this);this.mouseUpFunc=this.handleUp.bind(this);this.minW=this.props.minWidth;this.minH=this.props.minHeight;this.maxW=(s=this.props.maxWidth)!==null&&s!==void 0?s:0;this.maxH=(e=this.props.maxHeight)!==null&&e!==void 0?e:0;this.parent={width:0,height:0};this.resizeState=0}set(t){this.$el=t;this.props.disableAttributes.forEach((t=>{switch(t){case"l":this.disableCalcMap&=~n.l;break;case"t":this.disableCalcMap&=~n.t;break;case"w":this.disableCalcMap&=~n.w;break;case"h":this.disableCalcMap&=~n.h}}))}emitEvent(t,i){var s;if(!this.$event){return}const e=(s=this.activeResizer)===null||s===void 0?void 0:s.classList.contains("resizable-l");this.$event(Object.assign({eventName:t,width:this.width+this.changeX*(e?-1:1),height:this.height+this.changeY,changedX:this.changeX,changedY:this.changeY},i))}static isTouchEvent(t){var i;const s=t;return((i=s.touches)===null||i===void 0?void 0:i.length)>=0}handleMove(t){var i;if(!this.resizeState){return}let s,e;if(r.isTouchEvent(t)){s=t.touches[0].clientY;e=t.touches[0].clientX}else{s=t.clientY;e=t.clientX}let l=this.resizeState&o["resizable-r"].bit||this.resizeState&o["resizable-l"].bit;let c=this.resizeState&o["resizable-t"].bit||this.resizeState&o["resizable-b"].bit;if(c&&this.disableCalcMap&n.h){let t=s-this.mouseY;let i=this.changeY+t;const e=this.height+i;if(e<this.minH){i=-(this.height-this.minH)}if(this.maxH&&e>this.maxH){i=this.maxH-this.height}this.changeY=i;this.mouseY=s;if(this.activeResizer){this.activeResizer.style.bottom=`${-this.changeY}px`}}if(l&&this.disableCalcMap&n.w){const t=(i=this.activeResizer)===null||i===void 0?void 0:i.classList.contains("resizable-l");let s=e-this.mouseX;let h=this.changeX+s;const o=this.width+h*(t?-1:1);if(o<this.minW){h=-(this.width-this.minW)}if(this.maxW&&o>this.maxW){h=this.maxW-this.width}this.changeX=h;this.mouseX=e;if(this.activeResizer){if(!t){this.activeResizer.style.right=`${-this.changeX}px`}else{this.activeResizer.style.left=`${this.changeX}px`}}}this.emitEvent(h.move)}handleDown(t){if(t.defaultPrevented){return}t.preventDefault();this.dropInitial();for(let i in o){const s=t.target;if(this.$el.contains(s)&&(s===null||s===void 0?void 0:s.classList.contains(i))){document.body.style.cursor=o[i].cursor;if(r.isTouchEvent(t)){this.setInitials(t.touches[0],s)}else{t.preventDefault&&t.preventDefault();this.setInitials(t,s)}this.resizeState=o[i].bit;const e=h.start;this.emitEvent(e);break}}this.bindMove()}handleUp(t){t.preventDefault();if(this.resizeState!==0){this.resizeState=0;document.body.style.cursor="";const t=h.end;this.emitEvent(t)}this.dropInitial();this.unbindMove()}setInitials({clientX:t,clientY:i},s){var e,h,o,l;const r=getComputedStyle(this.$el);this.$el.classList.add("active");this.activeResizer=s;if(this.disableCalcMap&n.w){this.mouseX=t;this.width=this.$el.clientWidth;this.parent.width=(h=(e=this.$el.parentElement)===null||e===void 0?void 0:e.clientWidth)!==null&&h!==void 0?h:0;const i=parseFloat(r.paddingLeft)+parseFloat(r.paddingRight);this.minW=Math.max(i,this.initialProps.minWidth||0);if(this.initialProps.maxWidth){this.maxW=Math.max(this.width,this.initialProps.maxWidth)}}if(this.disableCalcMap&n.h){this.mouseY=i;this.height=this.$el.clientHeight;this.parent.height=(l=(o=this.$el.parentElement)===null||o===void 0?void 0:o.clientHeight)!==null&&l!==void 0?l:0;const t=parseFloat(r.paddingTop)+parseFloat(r.paddingBottom);this.minH=Math.max(t,this.initialProps.minHeight||0);if(this.initialProps.maxHeight){this.maxH=Math.max(this.height,this.initialProps.maxHeight)}}}dropInitial(){this.changeX=this.changeY=this.minW=this.minH;this.width=this.height=0;if(this.activeResizer){this.activeResizer.removeAttribute("style")}this.$el.classList.remove("active");this.activeResizer=undefined}bindMove(){document.documentElement.addEventListener("mouseup",this.mouseUpFunc,true);document.documentElement.addEventListener("touchend",this.mouseUpFunc,true);document.documentElement.addEventListener("mousemove",this.mouseMoveFunc,true);document.documentElement.addEventListener("touchmove",this.mouseMoveFunc,true);document.documentElement.addEventListener("mouseleave",this.mouseUpFunc)}unbindMove(){document.documentElement.removeEventListener("mouseup",this.mouseUpFunc,true);document.documentElement.removeEventListener("touchend",this.mouseUpFunc,true);document.documentElement.removeEventListener("mousemove",this.mouseMoveFunc,true);document.documentElement.removeEventListener("touchmove",this.mouseMoveFunc,true);document.documentElement.removeEventListener("mouseleave",this.mouseUpFunc)}}const c=(i,s)=>{const e=[];const o=i.canResize&&new r(i,(t=>{var s;if(t.eventName===h.end){(s=i.onResize)===null||s===void 0?void 0:s.call(i,t)}}))||null;if(i.active){if(i.canResize){for(let s in i.active){e.push(t("div",{onClick:t=>t.preventDefault(),onDblClick:t=>{var s;t.preventDefault();(s=i.onDblClick)===null||s===void 0?void 0:s.call(i,t)},onMouseDown:t=>o===null||o===void 0?void 0:o.handleDown(t),onTouchStart:t=>o===null||o===void 0?void 0:o.handleDown(t),class:`resizable resizable-${i.active[s]}`}))}}else{for(let s in i.active){e.push(t("div",{onClick:t=>t.preventDefault(),onTouchStart:t=>t.preventDefault(),onDblClick:t=>{var s;t.preventDefault();(s=i.onDblClick)===null||s===void 0?void 0:s.call(i,t)},class:`no-resize resizable resizable-${i.active[s]}`}))}}}return t("div",Object.assign({},i,{ref:t=>t&&(o===null||o===void 0?void 0:o.set(t))}),s,e)};const u="columnclick";const a=({data:e,props:h,additionalData:o},n)=>{let l=(e===null||e===void 0?void 0:e.name)||"";let r=h;if(e===null||e===void 0?void 0:e.columnTemplate){l=e.columnTemplate(t,e,o)}if(e===null||e===void 0?void 0:e.columnProperties){const t=e.columnProperties(e);if(t){r=i(h,t)}}const a=Object.assign(Object.assign({},r),{onMouseDown(t){s(t.currentTarget,u,{data:e,event:t})}});return t(c,Object.assign({},a),t("div",{class:"header-content"},l),n)};export{a as H,u as O,e as a,s as d};
5
+ //# sourceMappingURL=header-cell-renderer-49cd23aa.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
- export{B as BasePlugin,D as DimensionStore,b as FILTER_CONFIG_CHANGED_EVENT,F as FILTER_TRIMMED_TYPE,d as FILTE_PANEL,e as FilterPlugin,c as columnTypes,f as filterCoreFunctionsIndexedByType,h as filterNames,g as filterTypes,j as getLeftRelative,i as isRowType,a as isStretchPlugin,r as rowTypes}from"./column.drag.plugin-b7bba0da.js";export{d as dispatch,a as dispatchByEvent}from"./header-cell-renderer-fce020c3.js";export{h}from"./index-a61f225b.js";export{C as CELL_CLASS,L as CELL_HANDLER_CLASS,x as DATA_COL,y as DATA_ROW,z as DISABLED_CLASS,I as DRAGGABLE_CLASS,O as DRAGG_TEXT,G as DRAG_ICON_CLASS,D as DataStore,N as EDIT_INPUT_WR,J as FOCUS_CLASS,P as GRID_INTERNALS,F as HEADER_ACTUAL_ROW_CLASS,H as HEADER_CLASS,E as HEADER_ROW_CLASS,B as HEADER_SORTABLE_CLASS,M as MIN_COL_SIZE,K as MOBILE_CLASS,R as RESIZE_INTERVAL,Q as ROW_FOCUSED_CLASS,A as ROW_HEADER_TYPE,S as SELECTION_BORDER_CLASS,T as TMP_SELECTION_BG_CLASS,v as applyMixins,i as calculateDimensionData,U as codesLetter,l as findPositionInArray,h as gatherTrimmedItems,k as getItemByIndex,j as getItemByPosition,g as getPhysical,o as getScrollbarSize,b as getSourceItem,f as getSourceItemVirtualIndexByProp,c as getSourcePhysicalIndex,a as getVisibleSourceItem,V as keyValues,n as mergeSortedArray,p as proxyPlugin,m as pushSorted,r as range,q as scaleValue,e as setItems,d as setSourceByPhysicalIndex,s as setSourceByVirtualIndex,w as setStore,u as timeout,t as trimmedPlugin}from"./index-b1e05212.js";export{S as SelectionStore,c as cropCellToMax,k as gatherGroup,b as getCellData,d as getCellDataParsed,l as getColumnByProp,f as getColumnSizes,e as getColumnType,j as getColumns,g as getRange,h as isColGrouping,i as isHiddenStore,a as isRangeSingleCell,n as nextCell}from"./column.service-9b0603f4.js";export{S as SortingSign}from"./sorting.sign-1a675bf7.js";export{T as TextEditor}from"./text-editor-fb3f24fe.js";export{V as ViewportStore,a as addMissingItems,f as calculateRowHeaderSize,d as getFirstItem,b as getItems,e as getLastItem,g as getUpdatedItemsByPosition,i as isActiveRange,c as isActiveRangeOutsideLastItem,r as recombineByOffset,s as setItemSizes,u as updateMissingAndRange}from"./row-header-utils-7af8fcbf.js";export{A as AND_OR_BUTTON,e as AndOrButton,a as FILTER_BUTTON_ACTIVE,F as FILTER_BUTTON_CLASS,b as FILTER_PROP,c as FilterButton,T as TRASH_BUTTON,d as TrashButton,i as isFilterBtn}from"./filter.button-d40ab17b.js";export{k as isAll,c as isClear,h as isCopy,a as isCtrlKey,b as isCtrlMetaKey,g as isCut,f as isEnterKeyValue,i as isMetaKey,j as isPaste,d as isTab,e as isTabKeyValue}from"./key.utils-ea9aec31.js";import"./debounce-7b511afc.js";const _=new Map([["contentsizechanged","contentsizechanged"],["beforeedit","beforeedit"],["beforerangeedit","beforerangeedit"],["afteredit","afteredit"],["beforeautofill","beforeautofill"],["beforerange","beforerange"],["afterfocus","afterfocus"],["roworderchanged","roworderchanged"],["beforesortingapply","beforesortingapply"],["beforesorting","beforesorting"],["rowdragstart","rowdragstart"],["headerclick","headerclick"],["beforecellfocus","beforecellfocus"],["beforefocuslost","beforefocuslost"],["beforesourceset","beforesourceset"],["beforeanysource","beforeanysource"],["aftersourceset","aftersourceset"],["afteranysource","afteranysource"],["beforecolumnsset","beforecolumnsset"],["beforecolumnapplied","beforecolumnapplied"],["aftercolumnsset","aftercolumnsset"],["beforefilterapply","beforefilterapply"],["beforefiltertrimmed","beforefiltertrimmed"],["beforetrimmed","beforetrimmed"],["aftertrimmed","aftertrimmed"],["viewportscroll","viewportscroll"],["beforeexport","beforeexport"],["beforeeditstart","beforeeditstart"],["aftercolumnresize","aftercolumnresize"],["beforerowdefinition","beforerowdefinition"],["filterconfigchanged","filterconfigchanged"],["rowheaderschanged","rowheaderschanged"],["beforegridrender","beforegridrender"],["aftergridrender","aftergridrender"],["aftergridinit","aftergridinit"],["additionaldatachanged","additionaldatachanged"],["afterthemechanged","afterthemechanged"],["beforepaste","beforepaste"],["beforepasteapply","beforepasteapply"],["pasteregion","pasteregion"],["afterpasteapply","afterpasteapply"],["beforecut","beforecut"],["clearregion","clearregion"],["beforecopy","beforecopy"],["beforecopyapply","beforecopyapply"],["copyregion","copyregion"],["beforerowrender","beforerowrender"],["afterrender","afterrender"],["beforecellrender","beforecellrender"],["beforedatarender","beforedatarender"],["dragstartcell","dragstartcell"],["celledit","celledit"],["closeedit","closeedit"],["filterChange","filterChange"],["resetChange","resetChange"],["beforefocusrender","beforefocusrender"],["beforescrollintoview","beforescrollintoview"],["afterfocus","afterfocus"],["beforeheaderclick","beforeheaderclick"],["headerresize","headerresize"],["beforeheaderresize","beforeheaderresize"],["headerdblclick","headerdblclick"],["beforeheaderrender","beforeheaderrender"],["afterheaderrender","afterheaderrender"],["rowdragstartinit","rowdragstartinit"],["rowdragendinit","rowdragendinit"],["rowdragmoveinit","rowdragmoveinit"],["rowdragmousemove","rowdragmousemove"],["rowdropinit","rowdropinit"],["roworderchange","roworderchange"],["beforecopyregion","beforecopyregion"],["beforepasteregion","beforepasteregion"],["celleditapply","celleditapply"],["beforecellfocusinit","beforecellfocusinit"],["beforenextvpfocus","beforenextvpfocus"],["setedit","setedit"],["beforeapplyrange","beforeapplyrange"],["beforesetrange","beforesetrange"],["beforeeditrender","beforeeditrender"],["setrange","setrange"],["selectall","selectall"],["canceledit","canceledit"],["settemprange","settemprange"],["beforesettemprange","beforesettemprange"],["applyfocus","applyfocus"],["focuscell","focuscell"],["beforerangedataapply","beforerangedataapply"],["selectionchangeinit","selectionchangeinit"],["beforerangecopyapply","beforerangecopyapply"],["rangeeditapply","rangeeditapply"],["clipboardrangecopy","clipboardrangecopy"],["clipboardrangepaste","clipboardrangepaste"],["beforekeydown","beforekeydown"],["beforekeyup","beforekeyup"],["beforecellsave","beforecellsave"],["scrollview","scrollview"],["ref","ref"],["scrollvirtual","scrollvirtual"],["scrollviewport","scrollviewport"],["resizeviewport","resizeviewport"],["scrollchange","scrollchange"],["scrollviewportsilent","scrollviewportsilent"],["html","html"]]);export{_ as REVOGRID_EVENTS};
4
+ export{B as BasePlugin,D as DimensionStore,b as FILTER_CONFIG_CHANGED_EVENT,F as FILTER_TRIMMED_TYPE,d as FILTE_PANEL,e as FilterPlugin,c as columnTypes,f as filterCoreFunctionsIndexedByType,h as filterNames,g as filterTypes,j as getLeftRelative,i as isRowType,a as isStretchPlugin,r as rowTypes}from"./column.drag.plugin-8ea8fdab.js";export{d as dispatch,a as dispatchByEvent}from"./header-cell-renderer-49cd23aa.js";export{h}from"./index-a61f225b.js";export{C as CELL_CLASS,L as CELL_HANDLER_CLASS,x as DATA_COL,y as DATA_ROW,z as DISABLED_CLASS,I as DRAGGABLE_CLASS,O as DRAGG_TEXT,G as DRAG_ICON_CLASS,D as DataStore,N as EDIT_INPUT_WR,J as FOCUS_CLASS,P as GRID_INTERNALS,F as HEADER_ACTUAL_ROW_CLASS,H as HEADER_CLASS,E as HEADER_ROW_CLASS,B as HEADER_SORTABLE_CLASS,M as MIN_COL_SIZE,K as MOBILE_CLASS,R as RESIZE_INTERVAL,Q as ROW_FOCUSED_CLASS,A as ROW_HEADER_TYPE,S as SELECTION_BORDER_CLASS,T as TMP_SELECTION_BG_CLASS,v as applyMixins,i as calculateDimensionData,U as codesLetter,l as findPositionInArray,h as gatherTrimmedItems,k as getItemByIndex,j as getItemByPosition,g as getPhysical,o as getScrollbarSize,b as getSourceItem,f as getSourceItemVirtualIndexByProp,c as getSourcePhysicalIndex,a as getVisibleSourceItem,V as keyValues,n as mergeSortedArray,p as proxyPlugin,m as pushSorted,r as range,q as scaleValue,e as setItems,d as setSourceByPhysicalIndex,s as setSourceByVirtualIndex,w as setStore,u as timeout,t as trimmedPlugin}from"./index-b1e05212.js";export{S as SelectionStore,c as cropCellToMax,l as gatherGroup,b as getCellData,e as getCellDataParsed,d as getCellRaw,m as getColumnByProp,h as getColumnSizes,f as getColumnType,k as getColumns,g as getRange,j as isColGrouping,i as isHiddenStore,a as isRangeSingleCell,n as nextCell}from"./column.service-5d1cf29d.js";export{S as SortingSign}from"./sorting.sign-1a675bf7.js";export{T as TextEditor}from"./text-editor-fb3f24fe.js";export{V as ViewportStore,a as addMissingItems,f as calculateRowHeaderSize,d as getFirstItem,b as getItems,e as getLastItem,g as getUpdatedItemsByPosition,i as isActiveRange,c as isActiveRangeOutsideLastItem,r as recombineByOffset,s as setItemSizes,u as updateMissingAndRange}from"./row-header-utils-7af8fcbf.js";export{A as AND_OR_BUTTON,e as AndOrButton,a as FILTER_BUTTON_ACTIVE,F as FILTER_BUTTON_CLASS,b as FILTER_PROP,c as FilterButton,T as TRASH_BUTTON,d as TrashButton,i as isFilterBtn}from"./filter.button-d40ab17b.js";export{k as isAll,c as isClear,h as isCopy,a as isCtrlKey,b as isCtrlMetaKey,g as isCut,f as isEnterKeyValue,i as isMetaKey,j as isPaste,d as isTab,e as isTabKeyValue}from"./key.utils-ea9aec31.js";import"./debounce-7b511afc.js";const _=new Map([["contentsizechanged","contentsizechanged"],["beforeedit","beforeedit"],["beforerangeedit","beforerangeedit"],["afteredit","afteredit"],["beforeautofill","beforeautofill"],["beforerange","beforerange"],["afterfocus","afterfocus"],["roworderchanged","roworderchanged"],["beforesortingapply","beforesortingapply"],["beforesorting","beforesorting"],["rowdragstart","rowdragstart"],["headerclick","headerclick"],["beforecellfocus","beforecellfocus"],["beforefocuslost","beforefocuslost"],["beforesourceset","beforesourceset"],["beforeanysource","beforeanysource"],["aftersourceset","aftersourceset"],["afteranysource","afteranysource"],["beforecolumnsset","beforecolumnsset"],["beforecolumnapplied","beforecolumnapplied"],["aftercolumnsset","aftercolumnsset"],["beforefilterapply","beforefilterapply"],["beforefiltertrimmed","beforefiltertrimmed"],["beforetrimmed","beforetrimmed"],["aftertrimmed","aftertrimmed"],["viewportscroll","viewportscroll"],["beforeexport","beforeexport"],["beforeeditstart","beforeeditstart"],["aftercolumnresize","aftercolumnresize"],["beforerowdefinition","beforerowdefinition"],["filterconfigchanged","filterconfigchanged"],["rowheaderschanged","rowheaderschanged"],["beforegridrender","beforegridrender"],["aftergridrender","aftergridrender"],["aftergridinit","aftergridinit"],["additionaldatachanged","additionaldatachanged"],["afterthemechanged","afterthemechanged"],["beforepaste","beforepaste"],["beforepasteapply","beforepasteapply"],["pasteregion","pasteregion"],["afterpasteapply","afterpasteapply"],["beforecut","beforecut"],["clearregion","clearregion"],["beforecopy","beforecopy"],["beforecopyapply","beforecopyapply"],["copyregion","copyregion"],["beforerowrender","beforerowrender"],["afterrender","afterrender"],["beforecellrender","beforecellrender"],["beforedatarender","beforedatarender"],["dragstartcell","dragstartcell"],["celledit","celledit"],["closeedit","closeedit"],["filterChange","filterChange"],["resetChange","resetChange"],["beforefocusrender","beforefocusrender"],["beforescrollintoview","beforescrollintoview"],["afterfocus","afterfocus"],["beforeheaderclick","beforeheaderclick"],["headerresize","headerresize"],["beforeheaderresize","beforeheaderresize"],["headerdblclick","headerdblclick"],["beforeheaderrender","beforeheaderrender"],["afterheaderrender","afterheaderrender"],["rowdragstartinit","rowdragstartinit"],["rowdragendinit","rowdragendinit"],["rowdragmoveinit","rowdragmoveinit"],["rowdragmousemove","rowdragmousemove"],["rowdropinit","rowdropinit"],["roworderchange","roworderchange"],["beforecopyregion","beforecopyregion"],["beforepasteregion","beforepasteregion"],["celleditapply","celleditapply"],["beforecellfocusinit","beforecellfocusinit"],["beforenextvpfocus","beforenextvpfocus"],["setedit","setedit"],["beforeapplyrange","beforeapplyrange"],["beforesetrange","beforesetrange"],["beforeeditrender","beforeeditrender"],["setrange","setrange"],["selectall","selectall"],["canceledit","canceledit"],["settemprange","settemprange"],["beforesettemprange","beforesettemprange"],["applyfocus","applyfocus"],["focuscell","focuscell"],["beforerangedataapply","beforerangedataapply"],["selectionchangeinit","selectionchangeinit"],["beforerangecopyapply","beforerangecopyapply"],["rangeeditapply","rangeeditapply"],["clipboardrangecopy","clipboardrangecopy"],["clipboardrangepaste","clipboardrangepaste"],["beforekeydown","beforekeydown"],["beforekeyup","beforekeyup"],["beforecellsave","beforecellsave"],["scrollview","scrollview"],["ref","ref"],["scrollvirtual","scrollvirtual"],["scrollviewport","scrollviewport"],["resizeviewport","resizeviewport"],["scrollchange","scrollchange"],["scrollviewportsilent","scrollviewportsilent"],["html","html"]]);export{_ as REVOGRID_EVENTS};
5
5
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["REVOGRID_EVENTS","Map"],"sources":["src/types/events.ts"],"sourcesContent":["\nexport type RevogridEvents = 'contentsizechanged'|\n 'beforeedit'|\n 'beforerangeedit'|\n 'afteredit'|\n 'beforeautofill'|\n 'beforerange'|\n 'afterfocus'|\n 'roworderchanged'|\n 'beforesortingapply'|\n 'beforesorting'|\n 'rowdragstart'|\n 'headerclick'|\n 'beforecellfocus'|\n 'beforefocuslost'|\n 'beforesourceset'|\n 'beforeanysource'|\n 'aftersourceset'|\n 'afteranysource'|\n 'beforecolumnsset'|\n 'beforecolumnapplied'|\n 'aftercolumnsset'|\n 'beforefilterapply'|\n 'beforefiltertrimmed'|\n 'beforetrimmed'|\n 'aftertrimmed'|\n 'viewportscroll'|\n 'beforeexport'|\n 'beforeeditstart'|\n 'aftercolumnresize'|\n 'beforerowdefinition'|\n 'filterconfigchanged'|\n 'rowheaderschanged'|\n 'beforegridrender'|\n 'aftergridrender'|\n 'aftergridinit'|\n 'additionaldatachanged'|\n 'afterthemechanged'|\n 'beforepaste'|\n 'beforepasteapply'|\n 'pasteregion'|\n 'afterpasteapply'|\n 'beforecut'|\n 'clearregion'|\n 'beforecopy'|\n 'beforecopyapply'|\n 'copyregion'|\n 'beforerowrender'|\n 'afterrender'|\n 'beforecellrender'|\n 'beforedatarender'|\n 'dragstartcell'|\n 'celledit'|\n 'closeedit'|\n 'filterChange'|\n 'resetChange'|\n 'beforefocusrender'|\n 'beforescrollintoview'|\n 'afterfocus'|\n 'beforeheaderclick'|\n 'headerresize'|\n 'beforeheaderresize'|\n 'headerdblclick'|\n 'beforeheaderrender'|\n 'afterheaderrender'|\n 'rowdragstartinit'|\n 'rowdragendinit'|\n 'rowdragmoveinit'|\n 'rowdragmousemove'|\n 'rowdropinit'|\n 'roworderchange'|\n 'beforecopyregion'|\n 'beforepasteregion'|\n 'celleditapply'|\n 'beforecellfocusinit'|\n 'beforenextvpfocus'|\n 'setedit'|\n 'beforeapplyrange'|\n 'beforesetrange'|\n 'beforeeditrender'|\n 'setrange'|\n 'selectall'|\n 'canceledit'|\n 'settemprange'|\n 'beforesettemprange'|\n 'applyfocus'|\n 'focuscell'|\n 'beforerangedataapply'|\n 'selectionchangeinit'|\n 'beforerangecopyapply'|\n 'rangeeditapply'|\n 'clipboardrangecopy'|\n 'clipboardrangepaste'|\n 'beforekeydown'|\n 'beforekeyup'|\n 'beforecellsave'|\n 'scrollview'|\n 'ref'|\n 'scrollvirtual'|\n 'scrollviewport'|\n 'resizeviewport'|\n 'scrollchange'|\n 'scrollviewportsilent'|\n 'html'\nexport const REVOGRID_EVENTS = new Map<RevogridEvents, RevogridEvents>([\n ['contentsizechanged', 'contentsizechanged'],\n ['beforeedit', 'beforeedit'],\n ['beforerangeedit', 'beforerangeedit'],\n ['afteredit', 'afteredit'],\n ['beforeautofill', 'beforeautofill'],\n ['beforerange', 'beforerange'],\n ['afterfocus', 'afterfocus'],\n ['roworderchanged', 'roworderchanged'],\n ['beforesortingapply', 'beforesortingapply'],\n ['beforesorting', 'beforesorting'],\n ['rowdragstart', 'rowdragstart'],\n ['headerclick', 'headerclick'],\n ['beforecellfocus', 'beforecellfocus'],\n ['beforefocuslost', 'beforefocuslost'],\n ['beforesourceset', 'beforesourceset'],\n ['beforeanysource', 'beforeanysource'],\n ['aftersourceset', 'aftersourceset'],\n ['afteranysource', 'afteranysource'],\n ['beforecolumnsset', 'beforecolumnsset'],\n ['beforecolumnapplied', 'beforecolumnapplied'],\n ['aftercolumnsset', 'aftercolumnsset'],\n ['beforefilterapply', 'beforefilterapply'],\n ['beforefiltertrimmed', 'beforefiltertrimmed'],\n ['beforetrimmed', 'beforetrimmed'],\n ['aftertrimmed', 'aftertrimmed'],\n ['viewportscroll', 'viewportscroll'],\n ['beforeexport', 'beforeexport'],\n ['beforeeditstart', 'beforeeditstart'],\n ['aftercolumnresize', 'aftercolumnresize'],\n ['beforerowdefinition', 'beforerowdefinition'],\n ['filterconfigchanged', 'filterconfigchanged'],\n ['rowheaderschanged', 'rowheaderschanged'],\n ['beforegridrender', 'beforegridrender'],\n ['aftergridrender', 'aftergridrender'],\n ['aftergridinit', 'aftergridinit'],\n ['additionaldatachanged', 'additionaldatachanged'],\n ['afterthemechanged', 'afterthemechanged'],\n ['beforepaste', 'beforepaste'],\n ['beforepasteapply', 'beforepasteapply'],\n ['pasteregion', 'pasteregion'],\n ['afterpasteapply', 'afterpasteapply'],\n ['beforecut', 'beforecut'],\n ['clearregion', 'clearregion'],\n ['beforecopy', 'beforecopy'],\n ['beforecopyapply', 'beforecopyapply'],\n ['copyregion', 'copyregion'],\n ['beforerowrender', 'beforerowrender'],\n ['afterrender', 'afterrender'],\n ['beforecellrender', 'beforecellrender'],\n ['beforedatarender', 'beforedatarender'],\n ['dragstartcell', 'dragstartcell'],\n ['celledit', 'celledit'],\n ['closeedit', 'closeedit'],\n ['filterChange', 'filterChange'],\n ['resetChange', 'resetChange'],\n ['beforefocusrender', 'beforefocusrender'],\n ['beforescrollintoview', 'beforescrollintoview'],\n ['afterfocus', 'afterfocus'],\n ['beforeheaderclick', 'beforeheaderclick'],\n ['headerresize', 'headerresize'],\n ['beforeheaderresize', 'beforeheaderresize'],\n ['headerdblclick', 'headerdblclick'],\n ['beforeheaderrender', 'beforeheaderrender'],\n ['afterheaderrender', 'afterheaderrender'],\n ['rowdragstartinit', 'rowdragstartinit'],\n ['rowdragendinit', 'rowdragendinit'],\n ['rowdragmoveinit', 'rowdragmoveinit'],\n ['rowdragmousemove', 'rowdragmousemove'],\n ['rowdropinit', 'rowdropinit'],\n ['roworderchange', 'roworderchange'],\n ['beforecopyregion', 'beforecopyregion'],\n ['beforepasteregion', 'beforepasteregion'],\n ['celleditapply', 'celleditapply'],\n ['beforecellfocusinit', 'beforecellfocusinit'],\n ['beforenextvpfocus', 'beforenextvpfocus'],\n ['setedit', 'setedit'],\n ['beforeapplyrange', 'beforeapplyrange'],\n ['beforesetrange', 'beforesetrange'],\n ['beforeeditrender', 'beforeeditrender'],\n ['setrange', 'setrange'],\n ['selectall', 'selectall'],\n ['canceledit', 'canceledit'],\n ['settemprange', 'settemprange'],\n ['beforesettemprange', 'beforesettemprange'],\n ['applyfocus', 'applyfocus'],\n ['focuscell', 'focuscell'],\n ['beforerangedataapply', 'beforerangedataapply'],\n ['selectionchangeinit', 'selectionchangeinit'],\n ['beforerangecopyapply', 'beforerangecopyapply'],\n ['rangeeditapply', 'rangeeditapply'],\n ['clipboardrangecopy', 'clipboardrangecopy'],\n ['clipboardrangepaste', 'clipboardrangepaste'],\n ['beforekeydown', 'beforekeydown'],\n ['beforekeyup', 'beforekeyup'],\n ['beforecellsave', 'beforecellsave'],\n ['scrollview', 'scrollview'],\n ['ref', 'ref'],\n ['scrollvirtual', 'scrollvirtual'],\n ['scrollviewport', 'scrollviewport'],\n ['resizeviewport', 'resizeviewport'],\n ['scrollchange', 'scrollchange'],\n ['scrollviewportsilent', 'scrollviewportsilent'],\n ['html', 'html']\n]);"],"mappings":";;;4lFAwGaA,EAAkB,IAAIC,IAAoC,CACrE,CAAC,qBAAsB,sBACvB,CAAC,aAAc,cACf,CAAC,kBAAmB,mBACpB,CAAC,YAAa,aACd,CAAC,iBAAkB,kBACnB,CAAC,cAAe,eAChB,CAAC,aAAc,cACf,CAAC,kBAAmB,mBACpB,CAAC,qBAAsB,sBACvB,CAAC,gBAAiB,iBAClB,CAAC,eAAgB,gBACjB,CAAC,cAAe,eAChB,CAAC,kBAAmB,mBACpB,CAAC,kBAAmB,mBACpB,CAAC,kBAAmB,mBACpB,CAAC,kBAAmB,mBACpB,CAAC,iBAAkB,kBACnB,CAAC,iBAAkB,kBACnB,CAAC,mBAAoB,oBACrB,CAAC,sBAAuB,uBACxB,CAAC,kBAAmB,mBACpB,CAAC,oBAAqB,qBACtB,CAAC,sBAAuB,uBACxB,CAAC,gBAAiB,iBAClB,CAAC,eAAgB,gBACjB,CAAC,iBAAkB,kBACnB,CAAC,eAAgB,gBACjB,CAAC,kBAAmB,mBACpB,CAAC,oBAAqB,qBACtB,CAAC,sBAAuB,uBACxB,CAAC,sBAAuB,uBACxB,CAAC,oBAAqB,qBACtB,CAAC,mBAAoB,oBACrB,CAAC,kBAAmB,mBACpB,CAAC,gBAAiB,iBAClB,CAAC,wBAAyB,yBAC1B,CAAC,oBAAqB,qBACtB,CAAC,cAAe,eAChB,CAAC,mBAAoB,oBACrB,CAAC,cAAe,eAChB,CAAC,kBAAmB,mBACpB,CAAC,YAAa,aACd,CAAC,cAAe,eAChB,CAAC,aAAc,cACf,CAAC,kBAAmB,mBACpB,CAAC,aAAc,cACf,CAAC,kBAAmB,mBACpB,CAAC,cAAe,eAChB,CAAC,mBAAoB,oBACrB,CAAC,mBAAoB,oBACrB,CAAC,gBAAiB,iBAClB,CAAC,WAAY,YACb,CAAC,YAAa,aACd,CAAC,eAAgB,gBACjB,CAAC,cAAe,eAChB,CAAC,oBAAqB,qBACtB,CAAC,uBAAwB,wBACzB,CAAC,aAAc,cACf,CAAC,oBAAqB,qBACtB,CAAC,eAAgB,gBACjB,CAAC,qBAAsB,sBACvB,CAAC,iBAAkB,kBACnB,CAAC,qBAAsB,sBACvB,CAAC,oBAAqB,qBACtB,CAAC,mBAAoB,oBACrB,CAAC,iBAAkB,kBACnB,CAAC,kBAAmB,mBACpB,CAAC,mBAAoB,oBACrB,CAAC,cAAe,eAChB,CAAC,iBAAkB,kBACnB,CAAC,mBAAoB,oBACrB,CAAC,oBAAqB,qBACtB,CAAC,gBAAiB,iBAClB,CAAC,sBAAuB,uBACxB,CAAC,oBAAqB,qBACtB,CAAC,UAAW,WACZ,CAAC,mBAAoB,oBACrB,CAAC,iBAAkB,kBACnB,CAAC,mBAAoB,oBACrB,CAAC,WAAY,YACb,CAAC,YAAa,aACd,CAAC,aAAc,cACf,CAAC,eAAgB,gBACjB,CAAC,qBAAsB,sBACvB,CAAC,aAAc,cACf,CAAC,YAAa,aACd,CAAC,uBAAwB,wBACzB,CAAC,sBAAuB,uBACxB,CAAC,uBAAwB,wBACzB,CAAC,iBAAkB,kBACnB,CAAC,qBAAsB,sBACvB,CAAC,sBAAuB,uBACxB,CAAC,gBAAiB,iBAClB,CAAC,cAAe,eAChB,CAAC,iBAAkB,kBACnB,CAAC,aAAc,cACf,CAAC,MAAO,OACR,CAAC,gBAAiB,iBAClB,CAAC,iBAAkB,kBACnB,CAAC,iBAAkB,kBACnB,CAAC,eAAgB,gBACjB,CAAC,uBAAwB,wBACzB,CAAC,OAAQ,iB","ignoreList":[]}
1
+ {"version":3,"names":["REVOGRID_EVENTS","Map"],"sources":["src/types/events.ts"],"sourcesContent":["\nexport type RevogridEvents = 'contentsizechanged'|\n 'beforeedit'|\n 'beforerangeedit'|\n 'afteredit'|\n 'beforeautofill'|\n 'beforerange'|\n 'afterfocus'|\n 'roworderchanged'|\n 'beforesortingapply'|\n 'beforesorting'|\n 'rowdragstart'|\n 'headerclick'|\n 'beforecellfocus'|\n 'beforefocuslost'|\n 'beforesourceset'|\n 'beforeanysource'|\n 'aftersourceset'|\n 'afteranysource'|\n 'beforecolumnsset'|\n 'beforecolumnapplied'|\n 'aftercolumnsset'|\n 'beforefilterapply'|\n 'beforefiltertrimmed'|\n 'beforetrimmed'|\n 'aftertrimmed'|\n 'viewportscroll'|\n 'beforeexport'|\n 'beforeeditstart'|\n 'aftercolumnresize'|\n 'beforerowdefinition'|\n 'filterconfigchanged'|\n 'rowheaderschanged'|\n 'beforegridrender'|\n 'aftergridrender'|\n 'aftergridinit'|\n 'additionaldatachanged'|\n 'afterthemechanged'|\n 'beforepaste'|\n 'beforepasteapply'|\n 'pasteregion'|\n 'afterpasteapply'|\n 'beforecut'|\n 'clearregion'|\n 'beforecopy'|\n 'beforecopyapply'|\n 'copyregion'|\n 'beforerowrender'|\n 'afterrender'|\n 'beforecellrender'|\n 'beforedatarender'|\n 'dragstartcell'|\n 'celledit'|\n 'closeedit'|\n 'filterChange'|\n 'resetChange'|\n 'beforefocusrender'|\n 'beforescrollintoview'|\n 'afterfocus'|\n 'beforeheaderclick'|\n 'headerresize'|\n 'beforeheaderresize'|\n 'headerdblclick'|\n 'beforeheaderrender'|\n 'afterheaderrender'|\n 'rowdragstartinit'|\n 'rowdragendinit'|\n 'rowdragmoveinit'|\n 'rowdragmousemove'|\n 'rowdropinit'|\n 'roworderchange'|\n 'beforecopyregion'|\n 'beforepasteregion'|\n 'celleditapply'|\n 'beforecellfocusinit'|\n 'beforenextvpfocus'|\n 'setedit'|\n 'beforeapplyrange'|\n 'beforesetrange'|\n 'beforeeditrender'|\n 'setrange'|\n 'selectall'|\n 'canceledit'|\n 'settemprange'|\n 'beforesettemprange'|\n 'applyfocus'|\n 'focuscell'|\n 'beforerangedataapply'|\n 'selectionchangeinit'|\n 'beforerangecopyapply'|\n 'rangeeditapply'|\n 'clipboardrangecopy'|\n 'clipboardrangepaste'|\n 'beforekeydown'|\n 'beforekeyup'|\n 'beforecellsave'|\n 'scrollview'|\n 'ref'|\n 'scrollvirtual'|\n 'scrollviewport'|\n 'resizeviewport'|\n 'scrollchange'|\n 'scrollviewportsilent'|\n 'html'\nexport const REVOGRID_EVENTS = new Map<RevogridEvents, RevogridEvents>([\n ['contentsizechanged', 'contentsizechanged'],\n ['beforeedit', 'beforeedit'],\n ['beforerangeedit', 'beforerangeedit'],\n ['afteredit', 'afteredit'],\n ['beforeautofill', 'beforeautofill'],\n ['beforerange', 'beforerange'],\n ['afterfocus', 'afterfocus'],\n ['roworderchanged', 'roworderchanged'],\n ['beforesortingapply', 'beforesortingapply'],\n ['beforesorting', 'beforesorting'],\n ['rowdragstart', 'rowdragstart'],\n ['headerclick', 'headerclick'],\n ['beforecellfocus', 'beforecellfocus'],\n ['beforefocuslost', 'beforefocuslost'],\n ['beforesourceset', 'beforesourceset'],\n ['beforeanysource', 'beforeanysource'],\n ['aftersourceset', 'aftersourceset'],\n ['afteranysource', 'afteranysource'],\n ['beforecolumnsset', 'beforecolumnsset'],\n ['beforecolumnapplied', 'beforecolumnapplied'],\n ['aftercolumnsset', 'aftercolumnsset'],\n ['beforefilterapply', 'beforefilterapply'],\n ['beforefiltertrimmed', 'beforefiltertrimmed'],\n ['beforetrimmed', 'beforetrimmed'],\n ['aftertrimmed', 'aftertrimmed'],\n ['viewportscroll', 'viewportscroll'],\n ['beforeexport', 'beforeexport'],\n ['beforeeditstart', 'beforeeditstart'],\n ['aftercolumnresize', 'aftercolumnresize'],\n ['beforerowdefinition', 'beforerowdefinition'],\n ['filterconfigchanged', 'filterconfigchanged'],\n ['rowheaderschanged', 'rowheaderschanged'],\n ['beforegridrender', 'beforegridrender'],\n ['aftergridrender', 'aftergridrender'],\n ['aftergridinit', 'aftergridinit'],\n ['additionaldatachanged', 'additionaldatachanged'],\n ['afterthemechanged', 'afterthemechanged'],\n ['beforepaste', 'beforepaste'],\n ['beforepasteapply', 'beforepasteapply'],\n ['pasteregion', 'pasteregion'],\n ['afterpasteapply', 'afterpasteapply'],\n ['beforecut', 'beforecut'],\n ['clearregion', 'clearregion'],\n ['beforecopy', 'beforecopy'],\n ['beforecopyapply', 'beforecopyapply'],\n ['copyregion', 'copyregion'],\n ['beforerowrender', 'beforerowrender'],\n ['afterrender', 'afterrender'],\n ['beforecellrender', 'beforecellrender'],\n ['beforedatarender', 'beforedatarender'],\n ['dragstartcell', 'dragstartcell'],\n ['celledit', 'celledit'],\n ['closeedit', 'closeedit'],\n ['filterChange', 'filterChange'],\n ['resetChange', 'resetChange'],\n ['beforefocusrender', 'beforefocusrender'],\n ['beforescrollintoview', 'beforescrollintoview'],\n ['afterfocus', 'afterfocus'],\n ['beforeheaderclick', 'beforeheaderclick'],\n ['headerresize', 'headerresize'],\n ['beforeheaderresize', 'beforeheaderresize'],\n ['headerdblclick', 'headerdblclick'],\n ['beforeheaderrender', 'beforeheaderrender'],\n ['afterheaderrender', 'afterheaderrender'],\n ['rowdragstartinit', 'rowdragstartinit'],\n ['rowdragendinit', 'rowdragendinit'],\n ['rowdragmoveinit', 'rowdragmoveinit'],\n ['rowdragmousemove', 'rowdragmousemove'],\n ['rowdropinit', 'rowdropinit'],\n ['roworderchange', 'roworderchange'],\n ['beforecopyregion', 'beforecopyregion'],\n ['beforepasteregion', 'beforepasteregion'],\n ['celleditapply', 'celleditapply'],\n ['beforecellfocusinit', 'beforecellfocusinit'],\n ['beforenextvpfocus', 'beforenextvpfocus'],\n ['setedit', 'setedit'],\n ['beforeapplyrange', 'beforeapplyrange'],\n ['beforesetrange', 'beforesetrange'],\n ['beforeeditrender', 'beforeeditrender'],\n ['setrange', 'setrange'],\n ['selectall', 'selectall'],\n ['canceledit', 'canceledit'],\n ['settemprange', 'settemprange'],\n ['beforesettemprange', 'beforesettemprange'],\n ['applyfocus', 'applyfocus'],\n ['focuscell', 'focuscell'],\n ['beforerangedataapply', 'beforerangedataapply'],\n ['selectionchangeinit', 'selectionchangeinit'],\n ['beforerangecopyapply', 'beforerangecopyapply'],\n ['rangeeditapply', 'rangeeditapply'],\n ['clipboardrangecopy', 'clipboardrangecopy'],\n ['clipboardrangepaste', 'clipboardrangepaste'],\n ['beforekeydown', 'beforekeydown'],\n ['beforekeyup', 'beforekeyup'],\n ['beforecellsave', 'beforecellsave'],\n ['scrollview', 'scrollview'],\n ['ref', 'ref'],\n ['scrollvirtual', 'scrollvirtual'],\n ['scrollviewport', 'scrollviewport'],\n ['resizeviewport', 'resizeviewport'],\n ['scrollchange', 'scrollchange'],\n ['scrollviewportsilent', 'scrollviewportsilent'],\n ['html', 'html']\n]);"],"mappings":";;;4mFAwGaA,EAAkB,IAAIC,IAAoC,CACrE,CAAC,qBAAsB,sBACvB,CAAC,aAAc,cACf,CAAC,kBAAmB,mBACpB,CAAC,YAAa,aACd,CAAC,iBAAkB,kBACnB,CAAC,cAAe,eAChB,CAAC,aAAc,cACf,CAAC,kBAAmB,mBACpB,CAAC,qBAAsB,sBACvB,CAAC,gBAAiB,iBAClB,CAAC,eAAgB,gBACjB,CAAC,cAAe,eAChB,CAAC,kBAAmB,mBACpB,CAAC,kBAAmB,mBACpB,CAAC,kBAAmB,mBACpB,CAAC,kBAAmB,mBACpB,CAAC,iBAAkB,kBACnB,CAAC,iBAAkB,kBACnB,CAAC,mBAAoB,oBACrB,CAAC,sBAAuB,uBACxB,CAAC,kBAAmB,mBACpB,CAAC,oBAAqB,qBACtB,CAAC,sBAAuB,uBACxB,CAAC,gBAAiB,iBAClB,CAAC,eAAgB,gBACjB,CAAC,iBAAkB,kBACnB,CAAC,eAAgB,gBACjB,CAAC,kBAAmB,mBACpB,CAAC,oBAAqB,qBACtB,CAAC,sBAAuB,uBACxB,CAAC,sBAAuB,uBACxB,CAAC,oBAAqB,qBACtB,CAAC,mBAAoB,oBACrB,CAAC,kBAAmB,mBACpB,CAAC,gBAAiB,iBAClB,CAAC,wBAAyB,yBAC1B,CAAC,oBAAqB,qBACtB,CAAC,cAAe,eAChB,CAAC,mBAAoB,oBACrB,CAAC,cAAe,eAChB,CAAC,kBAAmB,mBACpB,CAAC,YAAa,aACd,CAAC,cAAe,eAChB,CAAC,aAAc,cACf,CAAC,kBAAmB,mBACpB,CAAC,aAAc,cACf,CAAC,kBAAmB,mBACpB,CAAC,cAAe,eAChB,CAAC,mBAAoB,oBACrB,CAAC,mBAAoB,oBACrB,CAAC,gBAAiB,iBAClB,CAAC,WAAY,YACb,CAAC,YAAa,aACd,CAAC,eAAgB,gBACjB,CAAC,cAAe,eAChB,CAAC,oBAAqB,qBACtB,CAAC,uBAAwB,wBACzB,CAAC,aAAc,cACf,CAAC,oBAAqB,qBACtB,CAAC,eAAgB,gBACjB,CAAC,qBAAsB,sBACvB,CAAC,iBAAkB,kBACnB,CAAC,qBAAsB,sBACvB,CAAC,oBAAqB,qBACtB,CAAC,mBAAoB,oBACrB,CAAC,iBAAkB,kBACnB,CAAC,kBAAmB,mBACpB,CAAC,mBAAoB,oBACrB,CAAC,cAAe,eAChB,CAAC,iBAAkB,kBACnB,CAAC,mBAAoB,oBACrB,CAAC,oBAAqB,qBACtB,CAAC,gBAAiB,iBAClB,CAAC,sBAAuB,uBACxB,CAAC,oBAAqB,qBACtB,CAAC,UAAW,WACZ,CAAC,mBAAoB,oBACrB,CAAC,iBAAkB,kBACnB,CAAC,mBAAoB,oBACrB,CAAC,WAAY,YACb,CAAC,YAAa,aACd,CAAC,aAAc,cACf,CAAC,eAAgB,gBACjB,CAAC,qBAAsB,sBACvB,CAAC,aAAc,cACf,CAAC,YAAa,aACd,CAAC,uBAAwB,wBACzB,CAAC,sBAAuB,uBACxB,CAAC,uBAAwB,wBACzB,CAAC,iBAAkB,kBACnB,CAAC,qBAAsB,sBACvB,CAAC,sBAAuB,uBACxB,CAAC,gBAAiB,iBAClB,CAAC,cAAe,eAChB,CAAC,iBAAkB,kBACnB,CAAC,aAAc,cACf,CAAC,MAAO,OACR,CAAC,gBAAiB,iBAClB,CAAC,iBAAkB,kBACnB,CAAC,iBAAkB,kBACnB,CAAC,eAAgB,gBACjB,CAAC,uBAAwB,wBACzB,CAAC,OAAQ,iB","ignoreList":[]}