@revolist/revogrid 4.11.2 → 4.11.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.
- package/dist/cjs/{column.drag.plugin-f617482a.js → column.drag.plugin-57f2d604.js} +3 -3
- package/dist/cjs/{column.drag.plugin-f617482a.js.map → column.drag.plugin-57f2d604.js.map} +1 -1
- package/dist/cjs/{column.service-0100bdd1.js → column.service-831e1c92.js} +4 -2
- package/dist/cjs/column.service-831e1c92.js.map +1 -0
- package/dist/cjs/{header-cell-renderer-08b05cc0.js → header-cell-renderer-53ecdcdb.js} +2 -2
- package/dist/cjs/{header-cell-renderer-08b05cc0.js.map → header-cell-renderer-53ecdcdb.js.map} +1 -1
- package/dist/cjs/index.cjs.js +3 -3
- package/dist/cjs/revo-grid.cjs.entry.js +3 -3
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +1 -1
- package/dist/cjs/revogr-data_4.cjs.entry.js +3 -3
- package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
- package/dist/collection/components/data/revogr-data-style.css +2 -0
- package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
- package/dist/collection/utils/column.utils.js +3 -1
- package/dist/collection/utils/column.utils.js.map +1 -1
- package/dist/esm/{column.drag.plugin-68f6280b.js → column.drag.plugin-8fdea9fa.js} +3 -3
- package/dist/esm/{column.drag.plugin-68f6280b.js.map → column.drag.plugin-8fdea9fa.js.map} +1 -1
- package/dist/esm/{column.service-adc73a28.js → column.service-a6a7c415.js} +4 -2
- package/dist/esm/column.service-a6a7c415.js.map +1 -0
- package/dist/esm/{header-cell-renderer-46df6d22.js → header-cell-renderer-36ecbdef.js} +2 -2
- package/dist/esm/{header-cell-renderer-46df6d22.js.map → header-cell-renderer-36ecbdef.js.map} +1 -1
- package/dist/esm/index.js +4 -4
- package/dist/esm/revo-grid.entry.js +3 -3
- package/dist/esm/revo-grid.entry.js.map +1 -1
- package/dist/esm/revogr-attribution_7.entry.js +1 -1
- package/dist/esm/revogr-data_4.entry.js +3 -3
- package/dist/esm/revogr-data_4.entry.js.map +1 -1
- package/dist/revo-grid/{column.drag.plugin-68f6280b.js → column.drag.plugin-8fdea9fa.js} +2 -2
- package/dist/revo-grid/column.service-a6a7c415.js +5 -0
- package/dist/revo-grid/column.service-a6a7c415.js.map +1 -0
- package/dist/revo-grid/{header-cell-renderer-46df6d22.js → header-cell-renderer-36ecbdef.js} +2 -2
- package/dist/revo-grid/index.esm.js +1 -1
- package/dist/revo-grid/revo-grid.entry.js +1 -1
- package/dist/revo-grid/revo-grid.entry.js.map +1 -1
- package/dist/revo-grid/revogr-attribution_7.entry.js +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
- package/dist/types/components/revoGrid/revo-grid.d.ts +2 -2
- package/hydrate/index.js +4 -2
- package/hydrate/index.mjs +4 -2
- package/package.json +1 -1
- package/standalone/column.service.js +3 -1
- package/standalone/column.service.js.map +1 -1
- package/standalone/revo-grid.js.map +1 -1
- package/standalone/revogr-data2.js +1 -1
- package/standalone/revogr-data2.js.map +1 -1
- package/dist/cjs/column.service-0100bdd1.js.map +0 -1
- package/dist/esm/column.service-adc73a28.js.map +0 -1
- package/dist/revo-grid/column.service-adc73a28.js +0 -5
- package/dist/revo-grid/column.service-adc73a28.js.map +0 -1
- /package/dist/revo-grid/{column.drag.plugin-68f6280b.js.map → column.drag.plugin-8fdea9fa.js.map} +0 -0
- /package/dist/revo-grid/{header-cell-renderer-46df6d22.js.map → header-cell-renderer-36ecbdef.js.map} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{x as t,y as s,r as i,h as e,f as n,q as o,G as r,k as c,P as h,l as u,z as l,A as a,w as f,p as d,B as v,b as p,C as m,e as b,j as g,d as y,t as j}from"./column.service-adc73a28.js";import{W as O,w,i as x,X as S,Y as E,b as C,o as I,Z as k,_ as z,u as N,$ as P,a0 as F,a1 as q,a2 as M,g as R,e as D,j as G}from"./dimension.helpers-d0d709c4.js";import{f as A}from"./viewport.store-afa8c4fe.js";import{h as B}from"./index-a61f225b.js";import{b as T,i as $}from"./filter.button-d40ab17b.js";import{i as J,b as H,d as L}from"./debounce-b3166f78.js";import{d as X,O as U}from"./header-cell-renderer-46df6d22.js";const W=t=>({set(s){switch(s){case"count":case"sizes":case"originItemSize":{let s=0;const i=t.store.get("count");for(let e=0;e<i;e++){s+=t.store.get("sizes")[e]||t.store.get("originItemSize")}t.setStore({realSize:s});break}}}});const K=t=>{let s=null;let i=null;return{set(e,n){switch(e){case"sizes":{if(s&&s===n){s=null;return}i=null;break}case"trimmed":{const e=n;if(!i){i=t.store.get("sizes")}s=V(i,e||{});t.setSizes(s);break}}}}};function V(t,s){const i={};const e=Object.keys(t||{}).map(Number).sort(((t,s)=>t-s));const n=e[e.length-1];let o=0;for(let e=0;e<=n;e++){if(s[e]!==undefined){o++;if(t[e]!==undefined){continue}}if(t[e]!==undefined){i[e-o]=t[e]}}return i}function Y(){return{indexes:[],count:0,trimmed:null,sizes:{},positionIndexToItem:{},indexToItem:{},positionIndexes:[]}}function Z(){return Object.assign(Object.assign({},Y()),{realSize:0,originItemSize:0})}class _{constructor(t){this.type=t;this.store=O(Z());this.store.use(K({store:this.store,setSizes:this.setDimensionSize.bind(this)}));this.store.use(W({store:this.store,setStore:this.setStore.bind(this)}))}getCurrentState(){const s=Z();const i=Object.keys(s);return t(i,((t,s)=>{const i=this.store.get(s);t[s]=i;return t}),s)}dispose(){w(this.store,Z())}setStore(t){w(this.store,t)}drop(){w(this.store,Y())}setDimensionSize(t={}){const s=x(this.store.get("originItemSize"),t);w(this.store,Object.assign(Object.assign({},s),{sizes:t}))}updateSizesPositionByIndexes(t,s=[]){const i=Object.assign({},this.store.get("sizes"));if(!Object.keys(i).length){return}const e={};s.forEach(((t,s)=>{if(!e[t]){e[t]=[]}e[t].push(s)}));const n={};t.forEach(((t,s)=>{const o=e[t];if(o&&o.length>0){const t=o.shift();if(t!==undefined&&t!==s&&i[t]){n[s]=i[t];delete i[t]}}}));if(Object.keys(n).length){this.setDimensionSize(Object.assign(Object.assign({},i),n))}}}const Q=["rowPinStart","rgRow","rowPinEnd"];const tt=["colPinStart","rgCol","colPinEnd"];function st(t){return Q.indexOf(t)>-1}class it{constructor(t,s){this.revogrid=t;this.providers=s;this.h=B;this.subscriptions={}}addEventListener(t,s){this.revogrid.addEventListener(t,s);this.subscriptions[t]=s}watch(t,s,{immediate:i}={immediate:false}){const e=Object.getOwnPropertyDescriptor(this.revogrid,t)||Object.getOwnPropertyDescriptor(this.revogrid.constructor.prototype,t);Object.defineProperty(this.revogrid,t,{set(t){var i;const n=s(t);if(n===false){return}return(i=e===null||e===void 0?void 0:e.set)===null||i===void 0?void 0:i.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(i){s(e===null||e===void 0?void 0:e.value)}}removeEventListener(t){this.revogrid.removeEventListener(t,this.subscriptions[t]);delete this.subscriptions[t]}emit(t,s){const i=new CustomEvent(t,{detail:s,cancelable:true});this.revogrid.dispatchEvent(i);return i}clearSubscriptions(){for(let t in this.subscriptions){this.removeEventListener(t)}}destroy(){this.clearSubscriptions()}}function et(t,s){var i=-1,e=t==null?0:t.length;while(++i<e){if(s(t[i],i,t)===false){break}}return t}function nt(t){return typeof t=="function"?t:S}function ot(t,i){var e=E(t)?et:s;return e(t,nt(i))}const rt=7;var ct;(function(t){t["headerClickAutosize"]="headerClickAutoSize";t["autoSizeOnTextOverlap"]="autoSizeOnTextOverlap";t["autoSizeAll"]="autoSizeAll"})(ct||(ct={}));class ht extends it{constructor(t,s,e){super(t,s);this.providers=s;this.config=e;this.autoSizeColumns=null;this.dataResolve=null;this.dataReject=null;this.letterBlockSize=(e===null||e===void 0?void 0:e.letterBlockSize)||rt;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 s=i(t.column);const e=this.getColumnSize(t.index,s);if(e){this.providers.dimension.setCustomSizes(s,{[t.index]:e},true)}};this.addEventListener("beforecolumnsset",c);switch(e===null||e===void 0?void 0:e.mode){case ct.autoSizeOnTextOverlap:this.addEventListener("aftersourceset",n);this.addEventListener("afteredit",o);break;case ct.autoSizeAll:this.addEventListener("aftersourceset",n);this.addEventListener("afteredit",r);break;default:this.addEventListener("headerdblclick",h);break}}async setSource(t){let s=this.autoSizeColumns;if(this.dataReject){this.dataReject();this.clearPromise()}if(!s){const t=new Promise(((t,s)=>{this.dataResolve=t;this.dataReject=s}));try{s=await t}catch(t){return}}ot(s,((i,e)=>{const n={};ot(s[e],(s=>{s.size=n[s.index]=t.reduce(((t,i)=>Math.max(t,this.getLength(i[s.prop]))),this.getLength(s.name||""))}));this.providers.dimension.setCustomSizes(e,n,true)}))}getLength(t){var s;const i=15;if(!t){return 0}try{const e=t.toString();if((s=this.config)===null||s===void 0?void 0:s.preciseSize){this.precsizeCalculationArea.innerText=e;return this.precsizeCalculationArea.scrollWidth+i*2}return e.length*this.letterBlockSize+i*2}catch(t){return 0}}afteredit(s){let i;if(this.isRangeEdit(s)){i=s.data}else{i={0:{[s.prop]:s.val}}}ot(this.autoSizeColumns,((s,e)=>{const n={};ot(s,(s=>{var e;const o=t(i,((t,i)=>{if(typeof i[s.prop]==="undefined"){return t}return Math.max(t||0,this.getLength(i[s.prop]))}),undefined);if(o&&((e=s.size)!==null&&e!==void 0?e:0)<o){s.size=n[s.index]=o}}));this.providers.dimension.setCustomSizes(e,n,true)}))}afterEditAll(t){const s={};if(this.isRangeEdit(t)){ot(t.data,(t=>ot(t,((t,i)=>s[i]=true))))}else{s[t.prop]=true}ot(this.autoSizeColumns,((t,i)=>{const e={};ot(t,(t=>{if(s[t.prop]){const s=this.getColumnSize(t.index,i);if(s){e[t.index]=s}}}));this.providers.dimension.setCustomSizes(i,e,true)}))}getColumnSize(s,i){var e,n;const o=(n=(e=this.autoSizeColumns)===null||e===void 0?void 0:e[i])===null||n===void 0?void 0:n[s];if(!o){return 0}return t(this.providers.data.stores,((s,i)=>{const e=t(i.store.get("items"),((t,s,e)=>{const n=C(i.store,e);return Math.max(t||0,this.getLength(n===null||n===void 0?void 0:n[o.prop]))}),0);return Math.max(s,e)}),o.size||0)}columnSet(t){var s;for(let i of tt){const e=i;const n=t[e];for(let t in n){if(n[t].autoSize||((s=this.config)===null||s===void 0?void 0:s.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 s={position:"absolute",fontSize:"14px",height:"0",width:"0",whiteSpace:"nowrap",top:"0",overflowX:"scroll"};const i=document.createElement("div");for(let e in s){i.style[e]=(t=s[e])!==null&&t!==void 0?t:""}i.classList.add("revo-test-container");return i}destroy(){var t;super.destroy();(t=this.precsizeCalculationArea)===null||t===void 0?void 0:t.remove()}}class ut extends it{constructor(t,s){super(t,s);this.providers=s;this.stretchedColumn=null;this.scrollSize=I(document);const i=({detail:{columns:t}})=>this.applyStretch(t);this.addEventListener("beforecolumnapplied",i)}setScroll({type:t,hasScroll:s}){var i;if(t==="rgRow"&&this.stretchedColumn&&((i=this.stretchedColumn)===null||i===void 0?void 0:i.initialSize)===this.stretchedColumn.size){if(s){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 s=this.providers.dimension.stores[t].store.get("sizes");this.providers.dimension.setCustomSizes(t,Object.assign(Object.assign({},s),{[this.stretchedColumn.index]:this.stretchedColumn.size}),true)}applyStretch(t){this.dropChanges();let s=this.revogrid.clientWidth-1;ot(t,((t,i)=>{const e=this.providers.dimension.stores[i].store.get("realSize");s-=e}));if(this.revogrid.rowHeaders){const t=this.providers.data.stores.rgRow.store.get("source").length;const i=this.revogrid.rowHeaders;const e=A(t,typeof i==="object"?i:undefined);if(e){s-=e}}if(s>0){const i=t.rgCol.length-1;const e=t.rgCol[i];const n=(e===null||e===void 0?void 0:e.size)||this.revogrid.colSize||0;const o=s+n-1;if(e&&!e.autoSize&&n<o){this.stretchedColumn={initialSize:o,index:i,size:o};this.apply();this.activateChanges()}}}}function lt(t){return!!t.applyStretch}function at(t,s,i){if(t===t){if(i!==undefined){t=t<=i?t:i}if(s!==undefined){t=t>=s?t:s}}return t}var ft=4294967295;function dt(t){return t?at(k(t),0,ft):0}function vt(t,s,i,e){var n=t.length;i=k(i);if(i<0){i=-i>n?0:n+i}e=e===undefined||e>n?n:k(e);if(e<0){e+=n}e=i>e?0:dt(e);while(i<e){t[i++]=s}return t}function pt(t,s,i,e){var n=t==null?0:t.length;if(!n){return[]}if(i&&typeof i!="number"&&z(t,s,i)){i=0;e=n}return vt(t,s,i,e)}const mt={mime:"text/csv",fileKind:"csv",bom:true,columnDelimiter:",",rowDelimiter:"\r\n",encoding:""};const bt=String.fromCharCode(13);const gt=String.fromCharCode(10);const yt=String.fromCharCode(34);const jt=String.fromCharCode(65279);const Ot=new RegExp('"',"g");class wt{constructor(t={}){this.options=Object.assign(Object.assign({},mt),t)}doExport({data:t,headers:s,props:i}){let o=this.options.bom?jt:"";if((s===null||s===void 0?void 0:s.length)>0){s.forEach((t=>{if(!t.length){return}o+=this.prepareHeader(t,this.options.columnDelimiter);o+=this.options.rowDelimiter}))}t.forEach(((t,s)=>{if(s>0){o+=this.options.rowDelimiter}if(e(t)){o+=this.parseCell(n(t),this.options.columnDelimiter);return}o+=i.map((s=>this.parseCell(t[s],this.options.columnDelimiter))).join(this.options.columnDelimiter)}));return o}prepareHeader(t,s){let i="";const e=t.map((t=>this.parseCell(t,s,true)));i+=e.join(s);return i}parseCell(t,s,i=false){let e=t;if(typeof t!=="string"){e=JSON.stringify(t)}const n=[bt,yt,gt,s];if(typeof e==="undefined"){return""}if(e!==""&&(i||n.some((t=>e.indexOf(t)>=0)))){return`"${e.replace(Ot,'""')}"`}return e}}var xt;(function(t){t["csv"]="csv"})(xt||(xt={}));class St extends it{async exportString(t={},s=xt.csv){const i=await this.beforeexport();if(!i){return null}return this.formatter(s,t).doExport(i)}async exportBlob(t={},s=xt.csv){return await this.getBlob(this.formatter(s,t))}async exportFile(t={},s=xt.csv){const i=this.formatter(s,t);const e=window.URL||window.webkitURL;const n=document.createElement("a");const{filename:o,fileKind:r}=i.options;const c=`${o}.${r}`;const h=await this.getBlob(i);const u=h?e.createObjectURL(h):"";n.style.display="none";n.setAttribute("href",u);n.setAttribute("download",c);this.revogrid.appendChild(n);n.dispatchEvent(new MouseEvent("click"));this.revogrid.removeChild(n);await N(120);e.revokeObjectURL(u)}async getBlob(t){const s=`${t.options.mime};charset=${t.options.encoding}`;if(typeof Blob!=="undefined"){const i=await this.beforeexport();if(!i){return null}return new Blob([t.doExport(i)],{type:s})}return null}async beforeexport(){let t=await this.getData();const s=this.emit("beforeexport",{data:t});if(s.defaultPrevented){return null}return s.detail.data}async getData(){const t=await this.getSource();const s=[];const i=[];tt.forEach(((t,e)=>{i.push(this.getColPerSource(t).then((t=>s[e]=t)))}));await Promise.all(i);const e={headers:[],props:[]};for(let t of s){t.headers.forEach(((t,s)=>{if(!e.headers[s]){e.headers[s]=[]}e.headers[s].push(...t)}));e.props.push(...t.props)}return Object.assign({data:t},e)}async getColPerSource(t){const s=await this.revogrid.getColumnStore(t);const i=s.get("source");const e=s.get("items");const n=s.get("groupingDepth");const o=s.get("groups");const r=[];const c=[];const h=e.reduce(((t,s,e)=>{const n=i[s].prop;r.push(i[s].name||"");c.push(n);t[n]=e;return t}),{});const u=this.getGroupHeaders(n,o,e,h);u.push(r);return{headers:u,props:c}}getGroupHeaders(t,s,i,e){const n=[];const o=pt(new Array(i.length),"");for(let i=0;i<t;i++){const t=[...o];n.push(t);if(!s[i]){continue}const r=s[i];r.forEach((s=>{const i=this.findGroupStartIndex(s.ids,e);if(typeof i==="number"){t[i]=s.name}}))}return n}findGroupStartIndex(t,s){let i;t.forEach((t=>{const e=s[t];if(typeof e==="number"){if(typeof i!=="number"||i>e){i=e}}}));return i}async getSource(){const t=[];const s=[];Q.forEach((i=>{const e=[];t.push(e);const n=this.revogrid.getVisibleSource(i).then((t=>e.push(...t)));s.push(n)}));await Promise.all(s);return t.reduce(((t,s)=>{t.push(...s);return t}),[])}formatter(t,s={}){switch(t){case xt.csv:return new wt(s);default:throw new Error("Unknown format")}}}const Et=(t,s)=>{if(typeof t==="undefined"||t===null&&!s){return true}if(typeof t!=="string"){t=JSON.stringify(t)}const i=s===null||s===void 0?void 0:s.toString().toLocaleLowerCase();if((i===null||i===void 0?void 0:i.length)===0){return true}return t.toLocaleLowerCase()===i};const Ct=(t,s)=>!Et(t,s);Ct.extra="input";Et.extra="input";const It=function(t,s){let i;if(typeof t==="number"&&typeof s!=="undefined"&&s!==null){i=parseFloat(s===null||s===void 0?void 0:s.toString());return t>i}return false};It.extra="input";const kt=function(t,s){return Et(t,s)||It(t,s)};kt.extra="input";const zt=function(t,s){let i;if(typeof t==="number"&&typeof s!=="undefined"&&s!==null){i=parseFloat(s.toString());return t<i}else{return false}};zt.extra="input";const Nt=function(t,s){return Et(t,s)||zt(t,s)};Nt.extra="input";const Pt=t=>!(t===""||t===null||t===void 0);const Ft=t=>!Pt(t);const qt=(t,s)=>{if(!t){return false}if(!s){return true}if(typeof t!=="string"){t=JSON.stringify(t)}if(typeof s!=="string"){s=JSON.stringify(s)}return t.toLocaleLowerCase().indexOf(s.toLocaleLowerCase())===0};qt.extra="input";const Mt=(t,s)=>{if(!s){return true}if(!t){return false}if(s){if(typeof t!=="string"){t=JSON.stringify(t)}return t.toLocaleLowerCase().indexOf(s.toString().toLowerCase())>-1}return true};const Rt=(t,s)=>!Mt(t,s);Rt.extra="input";Mt.extra="input";const Dt={none:()=>true,empty:Ft,notEmpty:Pt,eq:Et,notEq:Ct,begins:qt,contains:Mt,notContains:Rt,eqN:Et,neqN:Ct,gt:It,gte:kt,lt:zt,lte:Nt};const Gt={string:["notEmpty","empty","eq","notEq","begins","contains","notContains"],number:["notEmpty","empty","eqN","neqN","gt","gte","lt","lte"]};const At={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 Tt="filterconfigchanged";const $t="revogr-filter-panel";class Jt extends it{constructor(t,s,i){var e;super(t,s);this.revogrid=t;this.config=i;this.filterCollection={};this.multiFilterItems={};this.filterByType=Object.assign({},Gt);this.filterNameIndexByType=Object.assign({},At);this.filterFunctionsIndexedByType=Object.assign({},Dt);this.filterProp=T;if(i){this.initConfig(i)}const n=this.revogrid.registerVNode.filter((t=>typeof t==="object"&&t.t!==$t));this.revogrid.registerVNode=[...n,B("revogr-filter-panel",{filterNames:this.filterNameIndexByType,filterEntities:this.filterFunctionsIndexedByType,filterCaptions:(e=i===null||i===void 0?void 0:i.localization)===null||e===void 0?void 0:e.captions,onFilterChange:t=>this.onFilterChange(t.detail),onResetChange:t=>this.onFilterReset(t.detail),disableDynamicFiltering:i===null||i===void 0?void 0:i.disableDynamicFiltering,ref:t=>this.pop=t}," ",this.extraContent())];const o=async()=>{const t=Object.keys(this.filterCollection);if(t.length>0){t.forEach(((t,s)=>{if(!this.multiFilterItems[t]){this.multiFilterItems[t]=[{id:s,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(Tt,(({detail:t})=>{if(!t||typeof t==="object"&&(!t.multiFilterItems||!Object.keys(t.multiFilterItems).length)){this.clearFiltering();return}if(typeof t==="object"){this.initConfig(t)}o()}));this.addEventListener("aftersourceset",o);this.addEventListener("filter",(({detail:t})=>this.onFilterChange(t)))}beforeshow(t){}extraContent(){return null}initConfig(t){if(t.multiFilterItems){this.multiFilterItems=Object.assign({},t.multiFilterItems)}else{this.multiFilterItems={}}if(t.customFilters){for(let s in t.customFilters){const i=t.customFilters[s];if(!this.filterByType[i.columnFilterType]){this.filterByType[i.columnFilterType]=[]}this.filterByType[i.columnFilterType].push(s);this.filterFunctionsIndexedByType[s]=i.func;this.filterNameIndexByType[s]=i.name}}if(t.filterProp){this.filterProp=t.filterProp}const s=t.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(t.collection){const s=Object.entries(t.collection).filter((([,t])=>this.filterFunctionsIndexedByType[t.type]));this.filterCollection=Object.fromEntries(s)}else{this.filterCollection={}}if(t.localization){if(t.localization.filterNames){Object.entries(t.localization.filterNames).forEach((([t,s])=>{if(this.filterNameIndexByType[t]!=void 0){this.filterNameIndexByType[t]=s}}))}}}async headerclick(t){var s,i;const e=(s=t.detail.originalEvent)===null||s===void 0?void 0:s.target;if(!$(e)){return}t.preventDefault();if(!this.pop){return}const n=this.revogrid.getBoundingClientRect();const o=e.getBoundingClientRect();const r=t.detail.prop;const c=Object.assign(Object.assign(Object.assign({},t.detail),this.filterCollection[r]),{x:o.x-n.x,y:o.y-n.y+o.height,autoCorrect:true,filterTypes:this.getColumnFilter(t.detail.filter),filterItems:this.multiFilterItems,extraContent:this.extraHyperContent});(i=this.beforeshow)===null||i===void 0?void 0:i.call(this,c);this.pop.show(c)}getColumnFilter(t){let s="string";if(!t){return{[s]:this.filterByType[s]}}if(this.isValidType(t)){s=t}else if(typeof t==="object"&&t.length){return t.reduce(((t,s)=>{if(this.isValidType(s)){t[s]=this.filterByType[s]}return t}),{})}return{[s]:this.filterByType[s]}}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,s,i,e){const n=[];const o={};i.forEach((t=>{const s=Object.assign({},t);const i=e[s.prop];o[s.prop]=s;if(s[this.filterProp]&&!i){delete s[this.filterProp];n.push(s)}if(!s[this.filterProp]&&i){n.push(s);s[this.filterProp]=true}}));const r=this.getRowFilter(s,e,o);const{defaultPrevented:c,detail:h}=this.emit("beforefiltertrimmed",{collection:t,itemsToFilter:r,source:s,filterItems:e});if(c){return}const u=await this.revogrid.addTrimmed(h.itemsToFilter,Bt);if(u.defaultPrevented){return}this.providers.column.updateColumns(n);this.emit("afterfilterapply",{multiFilterItems:e,source:s,collection:t})}async clearFiltering(){this.multiFilterItems={};await this.runFiltering(this.multiFilterItems)}async runFiltering(t){const s={};const i=Object.keys(t);for(const e of i){if(t[e].length>0){const i=t[e][0];s[e]={type:i.type,value:i.value}}}this.filterCollection=s;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,s,i){const e=Object.keys(s);const n={};for(let o=0;o<t.length;o++){for(const r of e){if(this.shouldTrimRow(s[r],r,i[r],t[o])){n[o]=true}}}return n}shouldTrimRow(t,s,i,e={}){let n=0;let r=[];for(const[c,h]of t.entries()){const u=this.filterFunctionsIndexedByType[h.type];const l=i?o(e,i):e[s];if(h.relation==="or"){r=[];if(u(l,h.value)){continue}n++}else{r.push(!u(l,h.value));if(Ht(c,t)){if(Lt(r)){r=[];continue}n+=r.length;r=[]}}}return n===t.length}}function Ht(t,s){const i=s[t+1];return!i||!!i.relation&&i.relation!=="and"}function Lt(t){return!t.includes(true)}function Xt(t,s){const i=s[t];const n=i[a];const o={};let c=t+1;const h=s.length;while(c<h){const t=s[c];if(e(t)){const s=t[a];if(!s.length||!s.startsWith(n+",")){break}t[r]=false}o[c++]=true}i[r]=false;return{trimmed:o}}function Ut(t,s,i){const n=i[t];const o=s[n];const a=c(o[h]);const f={};if(!a){return{trimmed:f}}const d=[];o[r]=true;let v=n+1;const p=s.length;let m=0;while(v<p){const t=s[v];const i=e(t);if(i){if(!u(a,o,t)){break}else if(!m){m=t[l]}}if(!m||i&&m===t[l]){f[v]=false;d.push(v)}v++}const b={trimmed:f};if(d.length){const s=[...i];s.splice(t+1,0,...d);b.items=s}return b}const Wt="grouping";function Kt(t,s,i){const e={};for(let n in t){if(n===Wt){continue}const o=t[n];const r={};for(let t in o){let c=s[t];if(i){c=i[c]}if(o[t]){r[c]=true;if(c!==parseInt(t,10)){e[n]=r}}}}return e}var Vt="[object String]";function Yt(t){return typeof t=="string"||!E(t)&&J(t)&&H(t)==Vt}var Zt=P("length");const _t=Zt;var Qt="\\ud800-\\udfff",ts="\\u0300-\\u036f",ss="\\ufe20-\\ufe2f",is="\\u20d0-\\u20ff",es=ts+ss+is,ns="\\ufe0e\\ufe0f";var os="\\u200d";var rs=RegExp("["+os+Qt+es+ns+"]");function cs(t){return rs.test(t)}var hs="\\ud800-\\udfff",us="\\u0300-\\u036f",ls="\\ufe20-\\ufe2f",as="\\u20d0-\\u20ff",fs=us+ls+as,ds="\\ufe0e\\ufe0f";var vs="["+hs+"]",ps="["+fs+"]",ms="\\ud83c[\\udffb-\\udfff]",bs="(?:"+ps+"|"+ms+")",gs="[^"+hs+"]",ys="(?:\\ud83c[\\udde6-\\uddff]){2}",js="[\\ud800-\\udbff][\\udc00-\\udfff]",Os="\\u200d";var ws=bs+"?",xs="["+ds+"]?",Ss="(?:"+Os+"(?:"+[gs,ys,js].join("|")+")"+xs+ws+")*",Es=xs+ws+Ss,Cs="(?:"+[gs+ps+"?",ps,ys,js,vs].join("|")+")";var Is=RegExp(ms+"(?="+ms+")|"+Cs+Es,"g");function ks(t){var s=Is.lastIndex=0;while(Is.test(t)){++s}return s}function zs(t){return cs(t)?ks(t):_t(t)}var Ns="[object Map]",Ps="[object Set]";function Fs(t){if(t==null){return 0}if(F(t)){return Yt(t)?zs(t):t.length}var s=q(t);if(s==Ns||s==Ps){return t.size}return M(t).length}function qs(t,s,i={}){if(Object.entries(i).length===0){return[...Array(t.length).keys()]}return t.sort(((t,n)=>{const o=s[t];const r=s[n];for(const[t,s]of Object.entries(i)){if(e(o)){if(o["__rvgr-prop"]!==t){return 0}}if(e(r)){if(r["__rvgr-prop"]!==t){return 0}}const i=s===null||s===void 0?void 0:s(t,o,r);if(i){return i}}return 0}))}class Ms extends it{runSorting(t,s,i){var e;this.sort(t,s,undefined,i);(e=this.sortingPromise)===null||e===void 0?void 0:e.call(this);this.sortingPromise=null}constructor(t,s,i){super(t,s);this.revogrid=t;this.sortingPromise=null;this.postponeSort=L(((t,s,i)=>this.runSorting(t,s,i)),50);const e=t=>{var s;if(t){const i={};const e={};(s=t.columns)===null||s===void 0?void 0:s.forEach((t=>{i[t.prop]=this.getComparer(t,t.order);e[t.prop]=t.order}));this.sorting=e;this.sortingFunc=i}};e(i);this.addEventListener("sortingconfigchanged",(({detail:t})=>{i=t;e(t);this.startSorting(this.sorting,this.sortingFunc)}));this.addEventListener("beforeanysource",(({detail:{type:t}})=>{if(!!this.sorting&&this.sortingFunc){const s=this.emit("beforesorting",{type:t});if(s.defaultPrevented){return}this.startSorting(this.sorting,this.sortingFunc)}}));this.addEventListener("aftercolumnsset",(({detail:{order:t}})=>{if(i){return}const s=this.providers.column.getColumns();const e={};for(let i in t){const n=this.getComparer(f(s,i),t[i]);e[i]=n}this.sorting=t;this.sortingFunc=t&&e}));this.addEventListener("beforeheaderclick",(t=>{var s,i,e,n;if(t.defaultPrevented){return}if(!((i=(s=t.detail)===null||s===void 0?void 0:s.column)===null||i===void 0?void 0:i.sortable)){return}this.headerclick(t.detail.column,t.detail.index,(n=(e=t.detail)===null||e===void 0?void 0:e.originalEvent)===null||n===void 0?void 0:n.shiftKey)}))}startSorting(t,s,i){if(!this.sortingPromise){this.revogrid.jobsBeforeRender.push(new Promise((t=>{this.sortingPromise=t})))}this.postponeSort(t,s,i)}getComparer(t,s){var i,e;const n=((i=t===null||t===void 0?void 0:t.cellCompare)===null||i===void 0?void 0:i.bind({order:s}))||((e=this.defaultCellCompare)===null||e===void 0?void 0:e.bind({column:t,order:s}));if(s=="asc"){return n}if(s=="desc"){return this.descCellCompare(n)}return undefined}headerclick(t,s,i){var e,n;let o=this.getNextOrder(t.order);const r=this.emit("beforesorting",{column:t,order:o,additive:i});if(r.defaultPrevented){return}o=r.detail.order;const c=this.providers.column.updateColumnSorting(r.detail.column,s,o,i);const h=this.emit("beforesortingapply",{column:c,order:o,additive:i});if(h.defaultPrevented){return}const u=this.getComparer(h.detail.column,h.detail.order);if(h.detail.additive&&this.sorting){const s={};const i={};this.sorting=Object.assign(Object.assign({},this.sorting),s);this.sortingFunc=Object.assign(Object.assign({},this.sortingFunc),i);if(t.prop in s&&Fs(s)>1&&o===undefined){delete s[t.prop];delete i[t.prop]}else{s[t.prop]=o;i[t.prop]=u}}else{if(o){this.sorting={[t.prop]:o};this.sortingFunc={[t.prop]:u}}else{(e=this.sorting)===null||e===void 0?true:delete e[t.prop];(n=this.sortingFunc)===null||n===void 0?true:delete n[t.prop]}}this.startSorting(this.sorting,this.sortingFunc)}sort(t,s,i=Q,e=false){if(!Object.keys(t||{}).length){for(let t of i){const s=this.providers.data.stores[t];const i=s.store.get("source");const e=s.store.get("proxyItems");const n=Array.from({length:i.length},((t,s)=>s));this.providers.dimension.updateSizesPositionByNewDataIndexes(t,n,e);s.setData({proxyItems:n,source:[...i]})}}else{for(let t of i){const i=this.providers.data.stores[t];const n=i.store.get("source");const o=i.store.get("proxyItems");const r=qs([...o],n,s);const c=i.store.get("items");i.setData({proxyItems:r,source:[...n]});const h=i.store.get("items");if(!e){this.providers.dimension.updateSizesPositionByNewDataIndexes(t,h,c)}}}this.emit("aftersortingapply")}defaultCellCompare(t,s,i){const e=this.column?d(s,this.column):s===null||s===void 0?void 0:s[t];const n=this.column?d(i,this.column):i===null||i===void 0?void 0:i[t];const o=e===null||e===void 0?void 0:e.toString().toLowerCase();const r=n===null||n===void 0?void 0:n.toString().toLowerCase();return o==r?0:o>r?1:-1}descCellCompare(t){return(s,i,e)=>-1*t(s,i,e)}getNextOrder(t){switch(t){case undefined:return"asc";case"asc":return"desc";case"desc":return undefined}}}class Rs extends it{getStore(t=v){return this.providers.data.stores[t].store}constructor(t,s){super(t,s);this.revogrid=t;this.providers=s}onFocus(t){if(e(t.detail.model)){t.preventDefault()}}onExpand({virtualIndex:t}){const{source:s}=p(this.getStore().get("source"),this.getStore().get("proxyItems"));let i=this.getStore().get("trimmed")[Wt];let e=R(this.getStore(),t);const n=y(s[e]);if(!n){const{trimmed:e,items:n}=Ut(t,s,this.getStore().get("items"));i=Object.assign(Object.assign({},i),e);if(n){D(this.getStore(),n)}}else{const{trimmed:t}=Xt(e,s);i=Object.assign(Object.assign({},i),t);this.revogrid.clearFocus()}this.getStore().set("source",s);this.revogrid.addTrimmed(i,Wt)}setColumnGrouping(t){if(t===null||t===void 0?void 0:t.length){t[0][m]=true;return true}return false}setColumns({columns:t}){for(let s of tt){if(this.setColumnGrouping(t[s])){break}}}onDrag(t){const{from:s,to:i}=t.detail;const n=i-s>=0;const{source:o}=p(this.getStore().get("source"),this.getStore().get("proxyItems"));const r=this.getStore().get("items");let c=n?s:i;const h=n?i:s;for(;c<h;c++){const s=o[r[c]];const i=e(s);if(i){t.preventDefault();return}}}beforeTrimmedApply(t,s){if(s===Bt){const s=this.getStore().get("source");for(let i in t){if(t[i]&&e(s[i])){t[i]=false}}}}isSortingRunning(){const t=this.providers.plugins.getByClass(Ms);return!!(t===null||t===void 0?void 0:t.sortingPromise)}subscribe(){this.addEventListener("beforesourceset",(({detail:t})=>{var s,i,e;if(!(((i=(s=this.options)===null||s===void 0?void 0:s.props)===null||i===void 0?void 0:i.length)&&((e=t===null||t===void 0?void 0:t.source)===null||e===void 0?void 0:e.length))){return}if(this.isSortingRunning()){return}this.onDataSet(t)}));this.addEventListener("beforecolumnsset",(({detail:t})=>{this.setColumns(t)}));this.addEventListener("beforetrimmed",(({detail:{trimmed:t,trimmedType:s}})=>this.beforeTrimmedApply(t,s)));this.addEventListener("aftersortingapply",(()=>{var t,s;if(!((s=(t=this.options)===null||t===void 0?void 0:t.props)===null||s===void 0?void 0:s.length)){return}this.doSourceUpdate(Object.assign({},this.options))}));this.addEventListener("beforecellfocus",(t=>this.onFocus(t)));this.addEventListener("roworderchanged",(t=>this.onDrag(t)));this.addEventListener("groupexpandclick",(t=>this.onExpand(t.detail)))}doSourceUpdate(t){var s;const{source:i,prevExpanded:e,oldNewIndexes:n}=p(this.getStore().get("source"),this.getStore().get("proxyItems"),true);const o=Object.assign({prevExpanded:e},t);const{sourceWithGroups:r,depth:c,trimmed:h,oldNewIndexMap:u,childrenByGroup:l}=b(i,((s=this.options)===null||s===void 0?void 0:s.props)||[],o);const a=t===null||t===void 0?void 0:t.groupLabelTemplate;this.providers.data.setData(r,v,this.revogrid.disableVirtualY,{depth:c,customRenderer:a},true);this.updateTrimmed(h,l,n!==null&&n!==void 0?n:{},u)}onDataSet(t){var s,i;let n={};if(((s=this.options)===null||s===void 0?void 0:s.preserveGroupingOnUpdate)!==false){let{prevExpanded:t}=p(this.getStore().get("source"),this.getStore().get("proxyItems"),true);n=t}const o=t.source.filter((t=>!e(t)));const r=Object.assign(Object.assign({},this.revogrid.grouping||{}),{prevExpanded:n});const{sourceWithGroups:c,depth:h,trimmed:u,oldNewIndexMap:l,childrenByGroup:a}=b(o,((i=this.options)===null||i===void 0?void 0:i.props)||[],r);t.source=c;this.providers.data.setGrouping({depth:h});this.updateTrimmed(u,a,l)}setGrouping(t){var s,i;this.clearSubscriptions();this.options=t;if(!((i=(s=this.options)===null||s===void 0?void 0:s.props)===null||i===void 0?void 0:i.length)){this.clearGrouping();return}const{source:e}=p(this.getStore().get("source"),this.getStore().get("proxyItems"));if(e.length){this.doSourceUpdate(Object.assign({},t))}for(let t of tt){if(this.setColumnGrouping(this.providers.column.getColumns(t))){this.providers.column.refreshByType(t);break}}this.subscribe()}clearGrouping(){tt.forEach((t=>{const s=this.providers.column.getColumns(t);let i=false;s.forEach((t=>{if(g(t)){delete t[m];i=true}}));if(i){this.providers.column.refreshByType(t)}}));const{source:t,oldNewIndexes:s}=p(this.getStore().get("source"),this.getStore().get("proxyItems"),true);this.providers.data.setData(t,v,this.revogrid.disableVirtualY,undefined,true);this.updateTrimmed(undefined,undefined,s)}updateTrimmed(t={},s={},i={},e){const n=Kt(this.getStore().get("trimmed"),i,e);for(let t in n){this.revogrid.addTrimmed(n[t],t)}this.revogrid.addTrimmed(Object.assign({},t),Wt)}}const Ds="column-drag-start";class Gs{constructor(){this.offset=0}renderAutoscroll(t,s){if(!s){return}this.autoscrollEl=document.createElement("div");this.autoscrollEl.classList.add("drag-auto-scroll-y");s.appendChild(this.autoscrollEl)}autoscroll(t,s,i="translateX"){if(!this.autoscrollEl){return}const e=10;const n=Math.min(t+e,s-3);this.autoscrollEl.style.transform=`${i}(${n}px)`;this.autoscrollEl.scrollIntoView({block:"nearest",inline:"nearest"})}start(t,{dataEl:s,gridRect:i,scrollEl:e,gridEl:n},o="left"){n.classList.add(Ds);const r=e.getBoundingClientRect();if(r){this.offset=r[o]-i[o]}this.renderAutoscroll(t,s)}stop(t){var s;t.classList.remove(Ds);if(this.element){this.element.hidden=true}this.offset=0;(s=this.autoscrollEl)===null||s===void 0?void 0:s.remove();this.autoscrollEl=undefined}showHandler(t,s,i="translateX"){if(!this.element){return}if(this.offset){t=Math.max(t,this.offset)}t=Math.min(t,s);this.element.style.transform=`${i}(${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 As=U;const Bs="columndragmousemove";const Ts="columndragend";const $s="beforecolumndragend";const Js="columndragstart";class Hs extends it{constructor(t,s){super(t,s);this.revogrid=t;this.providers=s;this.moveFunc=L((t=>this.doMove(t)),5);this.staticDragData=null;this.dragData=null;this.localSubscriptions={};this.orderUi=new Gs;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(As,(({detail:t})=>this.dragStart(t)))}dragStart({event:t,data:s}){if(t.defaultPrevented){return}const{defaultPrevented:i}=X(this.revogrid,Js,s);if(i){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 r=t.target.closest("revogr-header");const c=t.target.closest("revogr-viewport-scroll");if(!r||!c){return}if(j(s)||s.providers.type==="rowHeaders"){return}const h=this.getDimension(s.pin||"rgCol");const u=this.revogrid.getBoundingClientRect();const l=r.getBoundingClientRect();const a=G(h,Ls(t.x,u.left,l.left-u.left));this.staticDragData={startPos:t.x,startItem:a,data:s,dataEl:r,scrollEl:c,gridEl:this.revogrid,cols:h};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 s=this.dragData=this.getData(this.staticDragData);if(!s){return}const i=this.staticDragData.startPos;if(Math.abs(i-t.x)>10){const i=Ls(t.x,this.dragData.gridRect.left,this.dragData.scrollOffset);const e=G(this.staticDragData.cols,i);this.orderUi.autoscroll(i,s.elRect.width);if(e.itemIndex>=this.staticDragData.cols.count){return}this.orderUi.showHandler(e.end+s.scrollOffset,s.gridRect.width)}}move(t){X(this.revogrid,Bs,t);this.moveFunc(t)}onMouseOut(t){this.clearOrder()}onMouseUp(t){if(this.dragData&&this.staticDragData){let s=Ls(t.x,this.dragData.gridRect.left,this.dragData.scrollOffset);if(s<0){s=0}const i=G(this.staticDragData.cols,s);const e=this.providers.column.stores[this.dragData.type].store;const n=[...e.get("items")];const{defaultPrevented:o}=X(this.revogrid,$s,Object.assign(Object.assign({},this.staticDragData),{startPosition:this.staticDragData.startItem,newPosition:i,newItem:e.get("source")[n[this.staticDragData.startItem.itemIndex]]}));if(!o){const t=[...n];const s=n.splice(this.staticDragData.startItem.itemIndex,1);n.splice(i.itemIndex,0,...s);e.set("items",n);this.providers.dimension.updateSizesPositionByNewDataIndexes(this.dragData.type,n,t)}X(this.revogrid,Ts,this.dragData)}this.clearOrder()}clearLocalSubscriptions(){ot(this.localSubscriptions,(({target:t,callback:s},i)=>t.removeEventListener(i,s)))}clearOrder(){this.staticDragData=null;this.dragData=null;this.clearLocalSubscriptions();this.orderUi.stop(this.revogrid)}clearSubscriptions(){super.clearSubscriptions();this.clearLocalSubscriptions()}getData({gridEl:t,dataEl:s,data:i}){const e=t.getBoundingClientRect();const n=s.getBoundingClientRect();const o=n.left-e.left;return{elRect:n,gridRect:e,type:i.pin||"rgCol",scrollOffset:o}}getDimension(t){return this.providers.dimension.stores[t].getCurrentState()}}function Ls(t,s,i){return t-s-i}export{ht as A,it as B,Hs as C,_ as D,St as E,Bt as F,Rs as G,ut as S,lt as a,wt as b,tt as c,Tt as d,$t as e,Jt as f,Dt as g,Gt as h,st as i,At as j,Ls as k,Ms as l,ot as m,Q as r};
|
|
5
|
-
//# sourceMappingURL=column.drag.plugin-
|
|
4
|
+
import{x as t,y as s,r as i,h as e,f as n,q as o,G as r,k as c,P as h,l as u,z as l,A as a,w as f,p as d,B as v,b as p,C as m,e as b,j as g,d as y,t as j}from"./column.service-a6a7c415.js";import{W as O,w,i as x,X as S,Y as E,b as C,o as I,Z as k,_ as z,u as N,$ as P,a0 as F,a1 as q,a2 as M,g as R,e as D,j as G}from"./dimension.helpers-d0d709c4.js";import{f as A}from"./viewport.store-afa8c4fe.js";import{h as B}from"./index-a61f225b.js";import{b as T,i as $}from"./filter.button-d40ab17b.js";import{i as J,b as H,d as L}from"./debounce-b3166f78.js";import{d as X,O as U}from"./header-cell-renderer-36ecbdef.js";const W=t=>({set(s){switch(s){case"count":case"sizes":case"originItemSize":{let s=0;const i=t.store.get("count");for(let e=0;e<i;e++){s+=t.store.get("sizes")[e]||t.store.get("originItemSize")}t.setStore({realSize:s});break}}}});const K=t=>{let s=null;let i=null;return{set(e,n){switch(e){case"sizes":{if(s&&s===n){s=null;return}i=null;break}case"trimmed":{const e=n;if(!i){i=t.store.get("sizes")}s=V(i,e||{});t.setSizes(s);break}}}}};function V(t,s){const i={};const e=Object.keys(t||{}).map(Number).sort(((t,s)=>t-s));const n=e[e.length-1];let o=0;for(let e=0;e<=n;e++){if(s[e]!==undefined){o++;if(t[e]!==undefined){continue}}if(t[e]!==undefined){i[e-o]=t[e]}}return i}function Y(){return{indexes:[],count:0,trimmed:null,sizes:{},positionIndexToItem:{},indexToItem:{},positionIndexes:[]}}function Z(){return Object.assign(Object.assign({},Y()),{realSize:0,originItemSize:0})}class _{constructor(t){this.type=t;this.store=O(Z());this.store.use(K({store:this.store,setSizes:this.setDimensionSize.bind(this)}));this.store.use(W({store:this.store,setStore:this.setStore.bind(this)}))}getCurrentState(){const s=Z();const i=Object.keys(s);return t(i,((t,s)=>{const i=this.store.get(s);t[s]=i;return t}),s)}dispose(){w(this.store,Z())}setStore(t){w(this.store,t)}drop(){w(this.store,Y())}setDimensionSize(t={}){const s=x(this.store.get("originItemSize"),t);w(this.store,Object.assign(Object.assign({},s),{sizes:t}))}updateSizesPositionByIndexes(t,s=[]){const i=Object.assign({},this.store.get("sizes"));if(!Object.keys(i).length){return}const e={};s.forEach(((t,s)=>{if(!e[t]){e[t]=[]}e[t].push(s)}));const n={};t.forEach(((t,s)=>{const o=e[t];if(o&&o.length>0){const t=o.shift();if(t!==undefined&&t!==s&&i[t]){n[s]=i[t];delete i[t]}}}));if(Object.keys(n).length){this.setDimensionSize(Object.assign(Object.assign({},i),n))}}}const Q=["rowPinStart","rgRow","rowPinEnd"];const tt=["colPinStart","rgCol","colPinEnd"];function st(t){return Q.indexOf(t)>-1}class it{constructor(t,s){this.revogrid=t;this.providers=s;this.h=B;this.subscriptions={}}addEventListener(t,s){this.revogrid.addEventListener(t,s);this.subscriptions[t]=s}watch(t,s,{immediate:i}={immediate:false}){const e=Object.getOwnPropertyDescriptor(this.revogrid,t)||Object.getOwnPropertyDescriptor(this.revogrid.constructor.prototype,t);Object.defineProperty(this.revogrid,t,{set(t){var i;const n=s(t);if(n===false){return}return(i=e===null||e===void 0?void 0:e.set)===null||i===void 0?void 0:i.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(i){s(e===null||e===void 0?void 0:e.value)}}removeEventListener(t){this.revogrid.removeEventListener(t,this.subscriptions[t]);delete this.subscriptions[t]}emit(t,s){const i=new CustomEvent(t,{detail:s,cancelable:true});this.revogrid.dispatchEvent(i);return i}clearSubscriptions(){for(let t in this.subscriptions){this.removeEventListener(t)}}destroy(){this.clearSubscriptions()}}function et(t,s){var i=-1,e=t==null?0:t.length;while(++i<e){if(s(t[i],i,t)===false){break}}return t}function nt(t){return typeof t=="function"?t:S}function ot(t,i){var e=E(t)?et:s;return e(t,nt(i))}const rt=7;var ct;(function(t){t["headerClickAutosize"]="headerClickAutoSize";t["autoSizeOnTextOverlap"]="autoSizeOnTextOverlap";t["autoSizeAll"]="autoSizeAll"})(ct||(ct={}));class ht extends it{constructor(t,s,e){super(t,s);this.providers=s;this.config=e;this.autoSizeColumns=null;this.dataResolve=null;this.dataReject=null;this.letterBlockSize=(e===null||e===void 0?void 0:e.letterBlockSize)||rt;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 s=i(t.column);const e=this.getColumnSize(t.index,s);if(e){this.providers.dimension.setCustomSizes(s,{[t.index]:e},true)}};this.addEventListener("beforecolumnsset",c);switch(e===null||e===void 0?void 0:e.mode){case ct.autoSizeOnTextOverlap:this.addEventListener("aftersourceset",n);this.addEventListener("afteredit",o);break;case ct.autoSizeAll:this.addEventListener("aftersourceset",n);this.addEventListener("afteredit",r);break;default:this.addEventListener("headerdblclick",h);break}}async setSource(t){let s=this.autoSizeColumns;if(this.dataReject){this.dataReject();this.clearPromise()}if(!s){const t=new Promise(((t,s)=>{this.dataResolve=t;this.dataReject=s}));try{s=await t}catch(t){return}}ot(s,((i,e)=>{const n={};ot(s[e],(s=>{s.size=n[s.index]=t.reduce(((t,i)=>Math.max(t,this.getLength(i[s.prop]))),this.getLength(s.name||""))}));this.providers.dimension.setCustomSizes(e,n,true)}))}getLength(t){var s;const i=15;if(!t){return 0}try{const e=t.toString();if((s=this.config)===null||s===void 0?void 0:s.preciseSize){this.precsizeCalculationArea.innerText=e;return this.precsizeCalculationArea.scrollWidth+i*2}return e.length*this.letterBlockSize+i*2}catch(t){return 0}}afteredit(s){let i;if(this.isRangeEdit(s)){i=s.data}else{i={0:{[s.prop]:s.val}}}ot(this.autoSizeColumns,((s,e)=>{const n={};ot(s,(s=>{var e;const o=t(i,((t,i)=>{if(typeof i[s.prop]==="undefined"){return t}return Math.max(t||0,this.getLength(i[s.prop]))}),undefined);if(o&&((e=s.size)!==null&&e!==void 0?e:0)<o){s.size=n[s.index]=o}}));this.providers.dimension.setCustomSizes(e,n,true)}))}afterEditAll(t){const s={};if(this.isRangeEdit(t)){ot(t.data,(t=>ot(t,((t,i)=>s[i]=true))))}else{s[t.prop]=true}ot(this.autoSizeColumns,((t,i)=>{const e={};ot(t,(t=>{if(s[t.prop]){const s=this.getColumnSize(t.index,i);if(s){e[t.index]=s}}}));this.providers.dimension.setCustomSizes(i,e,true)}))}getColumnSize(s,i){var e,n;const o=(n=(e=this.autoSizeColumns)===null||e===void 0?void 0:e[i])===null||n===void 0?void 0:n[s];if(!o){return 0}return t(this.providers.data.stores,((s,i)=>{const e=t(i.store.get("items"),((t,s,e)=>{const n=C(i.store,e);return Math.max(t||0,this.getLength(n===null||n===void 0?void 0:n[o.prop]))}),0);return Math.max(s,e)}),o.size||0)}columnSet(t){var s;for(let i of tt){const e=i;const n=t[e];for(let t in n){if(n[t].autoSize||((s=this.config)===null||s===void 0?void 0:s.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 s={position:"absolute",fontSize:"14px",height:"0",width:"0",whiteSpace:"nowrap",top:"0",overflowX:"scroll"};const i=document.createElement("div");for(let e in s){i.style[e]=(t=s[e])!==null&&t!==void 0?t:""}i.classList.add("revo-test-container");return i}destroy(){var t;super.destroy();(t=this.precsizeCalculationArea)===null||t===void 0?void 0:t.remove()}}class ut extends it{constructor(t,s){super(t,s);this.providers=s;this.stretchedColumn=null;this.scrollSize=I(document);const i=({detail:{columns:t}})=>this.applyStretch(t);this.addEventListener("beforecolumnapplied",i)}setScroll({type:t,hasScroll:s}){var i;if(t==="rgRow"&&this.stretchedColumn&&((i=this.stretchedColumn)===null||i===void 0?void 0:i.initialSize)===this.stretchedColumn.size){if(s){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 s=this.providers.dimension.stores[t].store.get("sizes");this.providers.dimension.setCustomSizes(t,Object.assign(Object.assign({},s),{[this.stretchedColumn.index]:this.stretchedColumn.size}),true)}applyStretch(t){this.dropChanges();let s=this.revogrid.clientWidth-1;ot(t,((t,i)=>{const e=this.providers.dimension.stores[i].store.get("realSize");s-=e}));if(this.revogrid.rowHeaders){const t=this.providers.data.stores.rgRow.store.get("source").length;const i=this.revogrid.rowHeaders;const e=A(t,typeof i==="object"?i:undefined);if(e){s-=e}}if(s>0){const i=t.rgCol.length-1;const e=t.rgCol[i];const n=(e===null||e===void 0?void 0:e.size)||this.revogrid.colSize||0;const o=s+n-1;if(e&&!e.autoSize&&n<o){this.stretchedColumn={initialSize:o,index:i,size:o};this.apply();this.activateChanges()}}}}function lt(t){return!!t.applyStretch}function at(t,s,i){if(t===t){if(i!==undefined){t=t<=i?t:i}if(s!==undefined){t=t>=s?t:s}}return t}var ft=4294967295;function dt(t){return t?at(k(t),0,ft):0}function vt(t,s,i,e){var n=t.length;i=k(i);if(i<0){i=-i>n?0:n+i}e=e===undefined||e>n?n:k(e);if(e<0){e+=n}e=i>e?0:dt(e);while(i<e){t[i++]=s}return t}function pt(t,s,i,e){var n=t==null?0:t.length;if(!n){return[]}if(i&&typeof i!="number"&&z(t,s,i)){i=0;e=n}return vt(t,s,i,e)}const mt={mime:"text/csv",fileKind:"csv",bom:true,columnDelimiter:",",rowDelimiter:"\r\n",encoding:""};const bt=String.fromCharCode(13);const gt=String.fromCharCode(10);const yt=String.fromCharCode(34);const jt=String.fromCharCode(65279);const Ot=new RegExp('"',"g");class wt{constructor(t={}){this.options=Object.assign(Object.assign({},mt),t)}doExport({data:t,headers:s,props:i}){let o=this.options.bom?jt:"";if((s===null||s===void 0?void 0:s.length)>0){s.forEach((t=>{if(!t.length){return}o+=this.prepareHeader(t,this.options.columnDelimiter);o+=this.options.rowDelimiter}))}t.forEach(((t,s)=>{if(s>0){o+=this.options.rowDelimiter}if(e(t)){o+=this.parseCell(n(t),this.options.columnDelimiter);return}o+=i.map((s=>this.parseCell(t[s],this.options.columnDelimiter))).join(this.options.columnDelimiter)}));return o}prepareHeader(t,s){let i="";const e=t.map((t=>this.parseCell(t,s,true)));i+=e.join(s);return i}parseCell(t,s,i=false){let e=t;if(typeof t!=="string"){e=JSON.stringify(t)}const n=[bt,yt,gt,s];if(typeof e==="undefined"){return""}if(e!==""&&(i||n.some((t=>e.indexOf(t)>=0)))){return`"${e.replace(Ot,'""')}"`}return e}}var xt;(function(t){t["csv"]="csv"})(xt||(xt={}));class St extends it{async exportString(t={},s=xt.csv){const i=await this.beforeexport();if(!i){return null}return this.formatter(s,t).doExport(i)}async exportBlob(t={},s=xt.csv){return await this.getBlob(this.formatter(s,t))}async exportFile(t={},s=xt.csv){const i=this.formatter(s,t);const e=window.URL||window.webkitURL;const n=document.createElement("a");const{filename:o,fileKind:r}=i.options;const c=`${o}.${r}`;const h=await this.getBlob(i);const u=h?e.createObjectURL(h):"";n.style.display="none";n.setAttribute("href",u);n.setAttribute("download",c);this.revogrid.appendChild(n);n.dispatchEvent(new MouseEvent("click"));this.revogrid.removeChild(n);await N(120);e.revokeObjectURL(u)}async getBlob(t){const s=`${t.options.mime};charset=${t.options.encoding}`;if(typeof Blob!=="undefined"){const i=await this.beforeexport();if(!i){return null}return new Blob([t.doExport(i)],{type:s})}return null}async beforeexport(){let t=await this.getData();const s=this.emit("beforeexport",{data:t});if(s.defaultPrevented){return null}return s.detail.data}async getData(){const t=await this.getSource();const s=[];const i=[];tt.forEach(((t,e)=>{i.push(this.getColPerSource(t).then((t=>s[e]=t)))}));await Promise.all(i);const e={headers:[],props:[]};for(let t of s){t.headers.forEach(((t,s)=>{if(!e.headers[s]){e.headers[s]=[]}e.headers[s].push(...t)}));e.props.push(...t.props)}return Object.assign({data:t},e)}async getColPerSource(t){const s=await this.revogrid.getColumnStore(t);const i=s.get("source");const e=s.get("items");const n=s.get("groupingDepth");const o=s.get("groups");const r=[];const c=[];const h=e.reduce(((t,s,e)=>{const n=i[s].prop;r.push(i[s].name||"");c.push(n);t[n]=e;return t}),{});const u=this.getGroupHeaders(n,o,e,h);u.push(r);return{headers:u,props:c}}getGroupHeaders(t,s,i,e){const n=[];const o=pt(new Array(i.length),"");for(let i=0;i<t;i++){const t=[...o];n.push(t);if(!s[i]){continue}const r=s[i];r.forEach((s=>{const i=this.findGroupStartIndex(s.ids,e);if(typeof i==="number"){t[i]=s.name}}))}return n}findGroupStartIndex(t,s){let i;t.forEach((t=>{const e=s[t];if(typeof e==="number"){if(typeof i!=="number"||i>e){i=e}}}));return i}async getSource(){const t=[];const s=[];Q.forEach((i=>{const e=[];t.push(e);const n=this.revogrid.getVisibleSource(i).then((t=>e.push(...t)));s.push(n)}));await Promise.all(s);return t.reduce(((t,s)=>{t.push(...s);return t}),[])}formatter(t,s={}){switch(t){case xt.csv:return new wt(s);default:throw new Error("Unknown format")}}}const Et=(t,s)=>{if(typeof t==="undefined"||t===null&&!s){return true}if(typeof t!=="string"){t=JSON.stringify(t)}const i=s===null||s===void 0?void 0:s.toString().toLocaleLowerCase();if((i===null||i===void 0?void 0:i.length)===0){return true}return t.toLocaleLowerCase()===i};const Ct=(t,s)=>!Et(t,s);Ct.extra="input";Et.extra="input";const It=function(t,s){let i;if(typeof t==="number"&&typeof s!=="undefined"&&s!==null){i=parseFloat(s===null||s===void 0?void 0:s.toString());return t>i}return false};It.extra="input";const kt=function(t,s){return Et(t,s)||It(t,s)};kt.extra="input";const zt=function(t,s){let i;if(typeof t==="number"&&typeof s!=="undefined"&&s!==null){i=parseFloat(s.toString());return t<i}else{return false}};zt.extra="input";const Nt=function(t,s){return Et(t,s)||zt(t,s)};Nt.extra="input";const Pt=t=>!(t===""||t===null||t===void 0);const Ft=t=>!Pt(t);const qt=(t,s)=>{if(!t){return false}if(!s){return true}if(typeof t!=="string"){t=JSON.stringify(t)}if(typeof s!=="string"){s=JSON.stringify(s)}return t.toLocaleLowerCase().indexOf(s.toLocaleLowerCase())===0};qt.extra="input";const Mt=(t,s)=>{if(!s){return true}if(!t){return false}if(s){if(typeof t!=="string"){t=JSON.stringify(t)}return t.toLocaleLowerCase().indexOf(s.toString().toLowerCase())>-1}return true};const Rt=(t,s)=>!Mt(t,s);Rt.extra="input";Mt.extra="input";const Dt={none:()=>true,empty:Ft,notEmpty:Pt,eq:Et,notEq:Ct,begins:qt,contains:Mt,notContains:Rt,eqN:Et,neqN:Ct,gt:It,gte:kt,lt:zt,lte:Nt};const Gt={string:["notEmpty","empty","eq","notEq","begins","contains","notContains"],number:["notEmpty","empty","eqN","neqN","gt","gte","lt","lte"]};const At={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 Tt="filterconfigchanged";const $t="revogr-filter-panel";class Jt extends it{constructor(t,s,i){var e;super(t,s);this.revogrid=t;this.config=i;this.filterCollection={};this.multiFilterItems={};this.filterByType=Object.assign({},Gt);this.filterNameIndexByType=Object.assign({},At);this.filterFunctionsIndexedByType=Object.assign({},Dt);this.filterProp=T;if(i){this.initConfig(i)}const n=this.revogrid.registerVNode.filter((t=>typeof t==="object"&&t.t!==$t));this.revogrid.registerVNode=[...n,B("revogr-filter-panel",{filterNames:this.filterNameIndexByType,filterEntities:this.filterFunctionsIndexedByType,filterCaptions:(e=i===null||i===void 0?void 0:i.localization)===null||e===void 0?void 0:e.captions,onFilterChange:t=>this.onFilterChange(t.detail),onResetChange:t=>this.onFilterReset(t.detail),disableDynamicFiltering:i===null||i===void 0?void 0:i.disableDynamicFiltering,ref:t=>this.pop=t}," ",this.extraContent())];const o=async()=>{const t=Object.keys(this.filterCollection);if(t.length>0){t.forEach(((t,s)=>{if(!this.multiFilterItems[t]){this.multiFilterItems[t]=[{id:s,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(Tt,(({detail:t})=>{if(!t||typeof t==="object"&&(!t.multiFilterItems||!Object.keys(t.multiFilterItems).length)){this.clearFiltering();return}if(typeof t==="object"){this.initConfig(t)}o()}));this.addEventListener("aftersourceset",o);this.addEventListener("filter",(({detail:t})=>this.onFilterChange(t)))}beforeshow(t){}extraContent(){return null}initConfig(t){if(t.multiFilterItems){this.multiFilterItems=Object.assign({},t.multiFilterItems)}else{this.multiFilterItems={}}if(t.customFilters){for(let s in t.customFilters){const i=t.customFilters[s];if(!this.filterByType[i.columnFilterType]){this.filterByType[i.columnFilterType]=[]}this.filterByType[i.columnFilterType].push(s);this.filterFunctionsIndexedByType[s]=i.func;this.filterNameIndexByType[s]=i.name}}if(t.filterProp){this.filterProp=t.filterProp}const s=t.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(t.collection){const s=Object.entries(t.collection).filter((([,t])=>this.filterFunctionsIndexedByType[t.type]));this.filterCollection=Object.fromEntries(s)}else{this.filterCollection={}}if(t.localization){if(t.localization.filterNames){Object.entries(t.localization.filterNames).forEach((([t,s])=>{if(this.filterNameIndexByType[t]!=void 0){this.filterNameIndexByType[t]=s}}))}}}async headerclick(t){var s,i;const e=(s=t.detail.originalEvent)===null||s===void 0?void 0:s.target;if(!$(e)){return}t.preventDefault();if(!this.pop){return}const n=this.revogrid.getBoundingClientRect();const o=e.getBoundingClientRect();const r=t.detail.prop;const c=Object.assign(Object.assign(Object.assign({},t.detail),this.filterCollection[r]),{x:o.x-n.x,y:o.y-n.y+o.height,autoCorrect:true,filterTypes:this.getColumnFilter(t.detail.filter),filterItems:this.multiFilterItems,extraContent:this.extraHyperContent});(i=this.beforeshow)===null||i===void 0?void 0:i.call(this,c);this.pop.show(c)}getColumnFilter(t){let s="string";if(!t){return{[s]:this.filterByType[s]}}if(this.isValidType(t)){s=t}else if(typeof t==="object"&&t.length){return t.reduce(((t,s)=>{if(this.isValidType(s)){t[s]=this.filterByType[s]}return t}),{})}return{[s]:this.filterByType[s]}}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,s,i,e){const n=[];const o={};i.forEach((t=>{const s=Object.assign({},t);const i=e[s.prop];o[s.prop]=s;if(s[this.filterProp]&&!i){delete s[this.filterProp];n.push(s)}if(!s[this.filterProp]&&i){n.push(s);s[this.filterProp]=true}}));const r=this.getRowFilter(s,e,o);const{defaultPrevented:c,detail:h}=this.emit("beforefiltertrimmed",{collection:t,itemsToFilter:r,source:s,filterItems:e});if(c){return}const u=await this.revogrid.addTrimmed(h.itemsToFilter,Bt);if(u.defaultPrevented){return}this.providers.column.updateColumns(n);this.emit("afterfilterapply",{multiFilterItems:e,source:s,collection:t})}async clearFiltering(){this.multiFilterItems={};await this.runFiltering(this.multiFilterItems)}async runFiltering(t){const s={};const i=Object.keys(t);for(const e of i){if(t[e].length>0){const i=t[e][0];s[e]={type:i.type,value:i.value}}}this.filterCollection=s;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,s,i){const e=Object.keys(s);const n={};for(let o=0;o<t.length;o++){for(const r of e){if(this.shouldTrimRow(s[r],r,i[r],t[o])){n[o]=true}}}return n}shouldTrimRow(t,s,i,e={}){let n=0;let r=[];for(const[c,h]of t.entries()){const u=this.filterFunctionsIndexedByType[h.type];const l=i?o(e,i):e[s];if(h.relation==="or"){r=[];if(u(l,h.value)){continue}n++}else{r.push(!u(l,h.value));if(Ht(c,t)){if(Lt(r)){r=[];continue}n+=r.length;r=[]}}}return n===t.length}}function Ht(t,s){const i=s[t+1];return!i||!!i.relation&&i.relation!=="and"}function Lt(t){return!t.includes(true)}function Xt(t,s){const i=s[t];const n=i[a];const o={};let c=t+1;const h=s.length;while(c<h){const t=s[c];if(e(t)){const s=t[a];if(!s.length||!s.startsWith(n+",")){break}t[r]=false}o[c++]=true}i[r]=false;return{trimmed:o}}function Ut(t,s,i){const n=i[t];const o=s[n];const a=c(o[h]);const f={};if(!a){return{trimmed:f}}const d=[];o[r]=true;let v=n+1;const p=s.length;let m=0;while(v<p){const t=s[v];const i=e(t);if(i){if(!u(a,o,t)){break}else if(!m){m=t[l]}}if(!m||i&&m===t[l]){f[v]=false;d.push(v)}v++}const b={trimmed:f};if(d.length){const s=[...i];s.splice(t+1,0,...d);b.items=s}return b}const Wt="grouping";function Kt(t,s,i){const e={};for(let n in t){if(n===Wt){continue}const o=t[n];const r={};for(let t in o){let c=s[t];if(i){c=i[c]}if(o[t]){r[c]=true;if(c!==parseInt(t,10)){e[n]=r}}}}return e}var Vt="[object String]";function Yt(t){return typeof t=="string"||!E(t)&&J(t)&&H(t)==Vt}var Zt=P("length");const _t=Zt;var Qt="\\ud800-\\udfff",ts="\\u0300-\\u036f",ss="\\ufe20-\\ufe2f",is="\\u20d0-\\u20ff",es=ts+ss+is,ns="\\ufe0e\\ufe0f";var os="\\u200d";var rs=RegExp("["+os+Qt+es+ns+"]");function cs(t){return rs.test(t)}var hs="\\ud800-\\udfff",us="\\u0300-\\u036f",ls="\\ufe20-\\ufe2f",as="\\u20d0-\\u20ff",fs=us+ls+as,ds="\\ufe0e\\ufe0f";var vs="["+hs+"]",ps="["+fs+"]",ms="\\ud83c[\\udffb-\\udfff]",bs="(?:"+ps+"|"+ms+")",gs="[^"+hs+"]",ys="(?:\\ud83c[\\udde6-\\uddff]){2}",js="[\\ud800-\\udbff][\\udc00-\\udfff]",Os="\\u200d";var ws=bs+"?",xs="["+ds+"]?",Ss="(?:"+Os+"(?:"+[gs,ys,js].join("|")+")"+xs+ws+")*",Es=xs+ws+Ss,Cs="(?:"+[gs+ps+"?",ps,ys,js,vs].join("|")+")";var Is=RegExp(ms+"(?="+ms+")|"+Cs+Es,"g");function ks(t){var s=Is.lastIndex=0;while(Is.test(t)){++s}return s}function zs(t){return cs(t)?ks(t):_t(t)}var Ns="[object Map]",Ps="[object Set]";function Fs(t){if(t==null){return 0}if(F(t)){return Yt(t)?zs(t):t.length}var s=q(t);if(s==Ns||s==Ps){return t.size}return M(t).length}function qs(t,s,i={}){if(Object.entries(i).length===0){return[...Array(t.length).keys()]}return t.sort(((t,n)=>{const o=s[t];const r=s[n];for(const[t,s]of Object.entries(i)){if(e(o)){if(o["__rvgr-prop"]!==t){return 0}}if(e(r)){if(r["__rvgr-prop"]!==t){return 0}}const i=s===null||s===void 0?void 0:s(t,o,r);if(i){return i}}return 0}))}class Ms extends it{runSorting(t,s,i){var e;this.sort(t,s,undefined,i);(e=this.sortingPromise)===null||e===void 0?void 0:e.call(this);this.sortingPromise=null}constructor(t,s,i){super(t,s);this.revogrid=t;this.sortingPromise=null;this.postponeSort=L(((t,s,i)=>this.runSorting(t,s,i)),50);const e=t=>{var s;if(t){const i={};const e={};(s=t.columns)===null||s===void 0?void 0:s.forEach((t=>{i[t.prop]=this.getComparer(t,t.order);e[t.prop]=t.order}));this.sorting=e;this.sortingFunc=i}};e(i);this.addEventListener("sortingconfigchanged",(({detail:t})=>{i=t;e(t);this.startSorting(this.sorting,this.sortingFunc)}));this.addEventListener("beforeanysource",(({detail:{type:t}})=>{if(!!this.sorting&&this.sortingFunc){const s=this.emit("beforesorting",{type:t});if(s.defaultPrevented){return}this.startSorting(this.sorting,this.sortingFunc)}}));this.addEventListener("aftercolumnsset",(({detail:{order:t}})=>{if(i){return}const s=this.providers.column.getColumns();const e={};for(let i in t){const n=this.getComparer(f(s,i),t[i]);e[i]=n}this.sorting=t;this.sortingFunc=t&&e}));this.addEventListener("beforeheaderclick",(t=>{var s,i,e,n;if(t.defaultPrevented){return}if(!((i=(s=t.detail)===null||s===void 0?void 0:s.column)===null||i===void 0?void 0:i.sortable)){return}this.headerclick(t.detail.column,t.detail.index,(n=(e=t.detail)===null||e===void 0?void 0:e.originalEvent)===null||n===void 0?void 0:n.shiftKey)}))}startSorting(t,s,i){if(!this.sortingPromise){this.revogrid.jobsBeforeRender.push(new Promise((t=>{this.sortingPromise=t})))}this.postponeSort(t,s,i)}getComparer(t,s){var i,e;const n=((i=t===null||t===void 0?void 0:t.cellCompare)===null||i===void 0?void 0:i.bind({order:s}))||((e=this.defaultCellCompare)===null||e===void 0?void 0:e.bind({column:t,order:s}));if(s=="asc"){return n}if(s=="desc"){return this.descCellCompare(n)}return undefined}headerclick(t,s,i){var e,n;let o=this.getNextOrder(t.order);const r=this.emit("beforesorting",{column:t,order:o,additive:i});if(r.defaultPrevented){return}o=r.detail.order;const c=this.providers.column.updateColumnSorting(r.detail.column,s,o,i);const h=this.emit("beforesortingapply",{column:c,order:o,additive:i});if(h.defaultPrevented){return}const u=this.getComparer(h.detail.column,h.detail.order);if(h.detail.additive&&this.sorting){const s={};const i={};this.sorting=Object.assign(Object.assign({},this.sorting),s);this.sortingFunc=Object.assign(Object.assign({},this.sortingFunc),i);if(t.prop in s&&Fs(s)>1&&o===undefined){delete s[t.prop];delete i[t.prop]}else{s[t.prop]=o;i[t.prop]=u}}else{if(o){this.sorting={[t.prop]:o};this.sortingFunc={[t.prop]:u}}else{(e=this.sorting)===null||e===void 0?true:delete e[t.prop];(n=this.sortingFunc)===null||n===void 0?true:delete n[t.prop]}}this.startSorting(this.sorting,this.sortingFunc)}sort(t,s,i=Q,e=false){if(!Object.keys(t||{}).length){for(let t of i){const s=this.providers.data.stores[t];const i=s.store.get("source");const e=s.store.get("proxyItems");const n=Array.from({length:i.length},((t,s)=>s));this.providers.dimension.updateSizesPositionByNewDataIndexes(t,n,e);s.setData({proxyItems:n,source:[...i]})}}else{for(let t of i){const i=this.providers.data.stores[t];const n=i.store.get("source");const o=i.store.get("proxyItems");const r=qs([...o],n,s);const c=i.store.get("items");i.setData({proxyItems:r,source:[...n]});const h=i.store.get("items");if(!e){this.providers.dimension.updateSizesPositionByNewDataIndexes(t,h,c)}}}this.emit("aftersortingapply")}defaultCellCompare(t,s,i){const e=this.column?d(s,this.column):s===null||s===void 0?void 0:s[t];const n=this.column?d(i,this.column):i===null||i===void 0?void 0:i[t];const o=e===null||e===void 0?void 0:e.toString().toLowerCase();const r=n===null||n===void 0?void 0:n.toString().toLowerCase();return o==r?0:o>r?1:-1}descCellCompare(t){return(s,i,e)=>-1*t(s,i,e)}getNextOrder(t){switch(t){case undefined:return"asc";case"asc":return"desc";case"desc":return undefined}}}class Rs extends it{getStore(t=v){return this.providers.data.stores[t].store}constructor(t,s){super(t,s);this.revogrid=t;this.providers=s}onFocus(t){if(e(t.detail.model)){t.preventDefault()}}onExpand({virtualIndex:t}){const{source:s}=p(this.getStore().get("source"),this.getStore().get("proxyItems"));let i=this.getStore().get("trimmed")[Wt];let e=R(this.getStore(),t);const n=y(s[e]);if(!n){const{trimmed:e,items:n}=Ut(t,s,this.getStore().get("items"));i=Object.assign(Object.assign({},i),e);if(n){D(this.getStore(),n)}}else{const{trimmed:t}=Xt(e,s);i=Object.assign(Object.assign({},i),t);this.revogrid.clearFocus()}this.getStore().set("source",s);this.revogrid.addTrimmed(i,Wt)}setColumnGrouping(t){if(t===null||t===void 0?void 0:t.length){t[0][m]=true;return true}return false}setColumns({columns:t}){for(let s of tt){if(this.setColumnGrouping(t[s])){break}}}onDrag(t){const{from:s,to:i}=t.detail;const n=i-s>=0;const{source:o}=p(this.getStore().get("source"),this.getStore().get("proxyItems"));const r=this.getStore().get("items");let c=n?s:i;const h=n?i:s;for(;c<h;c++){const s=o[r[c]];const i=e(s);if(i){t.preventDefault();return}}}beforeTrimmedApply(t,s){if(s===Bt){const s=this.getStore().get("source");for(let i in t){if(t[i]&&e(s[i])){t[i]=false}}}}isSortingRunning(){const t=this.providers.plugins.getByClass(Ms);return!!(t===null||t===void 0?void 0:t.sortingPromise)}subscribe(){this.addEventListener("beforesourceset",(({detail:t})=>{var s,i,e;if(!(((i=(s=this.options)===null||s===void 0?void 0:s.props)===null||i===void 0?void 0:i.length)&&((e=t===null||t===void 0?void 0:t.source)===null||e===void 0?void 0:e.length))){return}if(this.isSortingRunning()){return}this.onDataSet(t)}));this.addEventListener("beforecolumnsset",(({detail:t})=>{this.setColumns(t)}));this.addEventListener("beforetrimmed",(({detail:{trimmed:t,trimmedType:s}})=>this.beforeTrimmedApply(t,s)));this.addEventListener("aftersortingapply",(()=>{var t,s;if(!((s=(t=this.options)===null||t===void 0?void 0:t.props)===null||s===void 0?void 0:s.length)){return}this.doSourceUpdate(Object.assign({},this.options))}));this.addEventListener("beforecellfocus",(t=>this.onFocus(t)));this.addEventListener("roworderchanged",(t=>this.onDrag(t)));this.addEventListener("groupexpandclick",(t=>this.onExpand(t.detail)))}doSourceUpdate(t){var s;const{source:i,prevExpanded:e,oldNewIndexes:n}=p(this.getStore().get("source"),this.getStore().get("proxyItems"),true);const o=Object.assign({prevExpanded:e},t);const{sourceWithGroups:r,depth:c,trimmed:h,oldNewIndexMap:u,childrenByGroup:l}=b(i,((s=this.options)===null||s===void 0?void 0:s.props)||[],o);const a=t===null||t===void 0?void 0:t.groupLabelTemplate;this.providers.data.setData(r,v,this.revogrid.disableVirtualY,{depth:c,customRenderer:a},true);this.updateTrimmed(h,l,n!==null&&n!==void 0?n:{},u)}onDataSet(t){var s,i;let n={};if(((s=this.options)===null||s===void 0?void 0:s.preserveGroupingOnUpdate)!==false){let{prevExpanded:t}=p(this.getStore().get("source"),this.getStore().get("proxyItems"),true);n=t}const o=t.source.filter((t=>!e(t)));const r=Object.assign(Object.assign({},this.revogrid.grouping||{}),{prevExpanded:n});const{sourceWithGroups:c,depth:h,trimmed:u,oldNewIndexMap:l,childrenByGroup:a}=b(o,((i=this.options)===null||i===void 0?void 0:i.props)||[],r);t.source=c;this.providers.data.setGrouping({depth:h});this.updateTrimmed(u,a,l)}setGrouping(t){var s,i;this.clearSubscriptions();this.options=t;if(!((i=(s=this.options)===null||s===void 0?void 0:s.props)===null||i===void 0?void 0:i.length)){this.clearGrouping();return}const{source:e}=p(this.getStore().get("source"),this.getStore().get("proxyItems"));if(e.length){this.doSourceUpdate(Object.assign({},t))}for(let t of tt){if(this.setColumnGrouping(this.providers.column.getColumns(t))){this.providers.column.refreshByType(t);break}}this.subscribe()}clearGrouping(){tt.forEach((t=>{const s=this.providers.column.getColumns(t);let i=false;s.forEach((t=>{if(g(t)){delete t[m];i=true}}));if(i){this.providers.column.refreshByType(t)}}));const{source:t,oldNewIndexes:s}=p(this.getStore().get("source"),this.getStore().get("proxyItems"),true);this.providers.data.setData(t,v,this.revogrid.disableVirtualY,undefined,true);this.updateTrimmed(undefined,undefined,s)}updateTrimmed(t={},s={},i={},e){const n=Kt(this.getStore().get("trimmed"),i,e);for(let t in n){this.revogrid.addTrimmed(n[t],t)}this.revogrid.addTrimmed(Object.assign({},t),Wt)}}const Ds="column-drag-start";class Gs{constructor(){this.offset=0}renderAutoscroll(t,s){if(!s){return}this.autoscrollEl=document.createElement("div");this.autoscrollEl.classList.add("drag-auto-scroll-y");s.appendChild(this.autoscrollEl)}autoscroll(t,s,i="translateX"){if(!this.autoscrollEl){return}const e=10;const n=Math.min(t+e,s-3);this.autoscrollEl.style.transform=`${i}(${n}px)`;this.autoscrollEl.scrollIntoView({block:"nearest",inline:"nearest"})}start(t,{dataEl:s,gridRect:i,scrollEl:e,gridEl:n},o="left"){n.classList.add(Ds);const r=e.getBoundingClientRect();if(r){this.offset=r[o]-i[o]}this.renderAutoscroll(t,s)}stop(t){var s;t.classList.remove(Ds);if(this.element){this.element.hidden=true}this.offset=0;(s=this.autoscrollEl)===null||s===void 0?void 0:s.remove();this.autoscrollEl=undefined}showHandler(t,s,i="translateX"){if(!this.element){return}if(this.offset){t=Math.max(t,this.offset)}t=Math.min(t,s);this.element.style.transform=`${i}(${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 As=U;const Bs="columndragmousemove";const Ts="columndragend";const $s="beforecolumndragend";const Js="columndragstart";class Hs extends it{constructor(t,s){super(t,s);this.revogrid=t;this.providers=s;this.moveFunc=L((t=>this.doMove(t)),5);this.staticDragData=null;this.dragData=null;this.localSubscriptions={};this.orderUi=new Gs;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(As,(({detail:t})=>this.dragStart(t)))}dragStart({event:t,data:s}){if(t.defaultPrevented){return}const{defaultPrevented:i}=X(this.revogrid,Js,s);if(i){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 r=t.target.closest("revogr-header");const c=t.target.closest("revogr-viewport-scroll");if(!r||!c){return}if(j(s)||s.providers.type==="rowHeaders"){return}const h=this.getDimension(s.pin||"rgCol");const u=this.revogrid.getBoundingClientRect();const l=r.getBoundingClientRect();const a=G(h,Ls(t.x,u.left,l.left-u.left));this.staticDragData={startPos:t.x,startItem:a,data:s,dataEl:r,scrollEl:c,gridEl:this.revogrid,cols:h};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 s=this.dragData=this.getData(this.staticDragData);if(!s){return}const i=this.staticDragData.startPos;if(Math.abs(i-t.x)>10){const i=Ls(t.x,this.dragData.gridRect.left,this.dragData.scrollOffset);const e=G(this.staticDragData.cols,i);this.orderUi.autoscroll(i,s.elRect.width);if(e.itemIndex>=this.staticDragData.cols.count){return}this.orderUi.showHandler(e.end+s.scrollOffset,s.gridRect.width)}}move(t){X(this.revogrid,Bs,t);this.moveFunc(t)}onMouseOut(t){this.clearOrder()}onMouseUp(t){if(this.dragData&&this.staticDragData){let s=Ls(t.x,this.dragData.gridRect.left,this.dragData.scrollOffset);if(s<0){s=0}const i=G(this.staticDragData.cols,s);const e=this.providers.column.stores[this.dragData.type].store;const n=[...e.get("items")];const{defaultPrevented:o}=X(this.revogrid,$s,Object.assign(Object.assign({},this.staticDragData),{startPosition:this.staticDragData.startItem,newPosition:i,newItem:e.get("source")[n[this.staticDragData.startItem.itemIndex]]}));if(!o){const t=[...n];const s=n.splice(this.staticDragData.startItem.itemIndex,1);n.splice(i.itemIndex,0,...s);e.set("items",n);this.providers.dimension.updateSizesPositionByNewDataIndexes(this.dragData.type,n,t)}X(this.revogrid,Ts,this.dragData)}this.clearOrder()}clearLocalSubscriptions(){ot(this.localSubscriptions,(({target:t,callback:s},i)=>t.removeEventListener(i,s)))}clearOrder(){this.staticDragData=null;this.dragData=null;this.clearLocalSubscriptions();this.orderUi.stop(this.revogrid)}clearSubscriptions(){super.clearSubscriptions();this.clearLocalSubscriptions()}getData({gridEl:t,dataEl:s,data:i}){const e=t.getBoundingClientRect();const n=s.getBoundingClientRect();const o=n.left-e.left;return{elRect:n,gridRect:e,type:i.pin||"rgCol",scrollOffset:o}}getDimension(t){return this.providers.dimension.stores[t].getCurrentState()}}function Ls(t,s,i){return t-s-i}export{ht as A,it as B,Hs as C,_ as D,St as E,Bt as F,Rs as G,ut as S,lt as a,wt as b,tt as c,Tt as d,$t as e,Jt as f,Dt as g,Gt as h,st as i,At as j,Ls as k,Ms as l,ot as m,Q as r};
|
|
5
|
+
//# sourceMappingURL=column.drag.plugin-8fdea9fa.js.map
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Revolist OU ❤️
|
|
3
|
+
*/
|
|
4
|
+
import{a3 as t,a0 as e,a4 as n,Y as s,W as i,w as r,P as o,_ as l,Z as u,a as c,C as f,z as a,b as h}from"./dimension.helpers-d0d709c4.js";import"./index-a61f225b.js";function d(t,e,n,s){var i=-1,r=t==null?0:t.length;if(s&&r){n=t[++i]}while(++i<r){n=e(n,t[i],i,t)}return n}function v(t){return function(e,n,s){var i=-1,r=Object(e),o=s(e),l=o.length;while(l--){var u=o[t?l:++i];if(n(r[u],u,r)===false){break}}return e}}var p=v();const g=p;function y(e,n){return e&&g(e,n,t)}function b(t,n){return function(s,i){if(s==null){return s}if(!e(s)){return t(s,i)}var r=s.length,o=n?r:-1,l=Object(s);while(n?o--:++o<r){if(i(l[o],o,l)===false){break}}return s}}var m=b(y);const j=m;function x(t,e,n,s,i){i(t,(function(t,i,r){n=s?(s=false,t):e(n,t,i,r)}));return n}function O(t,e,i){var r=s(t)?d:x,o=arguments.length<3;return r(t,n(e),i,o,j)}function w(t){if(typeof t==="undefined"||t===null){return""}return t}function R(t,e){if(!e){return}if(e.cellParser){return e.cellParser(t,e)}return t[e.prop]}function C(t,e){return w(R(t,e))}function I(t){if(t.pin){return t.pin}return"rgCol"}function S(t){const e={};for(const[n,s]of t.entries()){if(s.size){e[n]=s.size}}return e}function A(t){return!!t.children}function P(t,e=0,n){const s={columns:{rgCol:[],colPinStart:[],colPinEnd:[]},columnByProp:{},columnGrouping:{rgCol:[],colPinStart:[],colPinEnd:[]},maxLevel:e,sort:{}};return O(t,((t,s)=>{if(A(s)){t=T(t,s,P(s.children,e+1,n),e);return t}const i=s.columnType&&(n===null||n===void 0?void 0:n[s.columnType]);const r=Object.assign(Object.assign({},i),s);if(!r.pin){t.columns.rgCol.push(r)}else{t.columns[r.pin].push(r)}if(r.order){t.sort[r.prop]=r}if(!t.columnByProp[r.prop]){t.columnByProp[r.prop]=[]}t.columnByProp[r.prop].push(r);r.beforeSetup&&r.beforeSetup(r);return t}),s)}function T(t,e,n,i=0){const r=Object.assign(Object.assign({},e),{level:i,ids:[]});for(let e in n.columns){const i=e;const o=t.columns[i];const l=n.columns[i];if(s(o)&&s(l)){o.push(...l);if(l.length){t.columnGrouping[i].push(Object.assign(Object.assign({},r),{ids:l.map((t=>t.prop))}))}}}for(let e in n.columnGrouping){const s=e;const i=n.columnGrouping[s];t.columnGrouping[s].push(...i)}t.maxLevel=Math.max(t.maxLevel,n.maxLevel);t.sort=Object.assign(Object.assign({},t.sort),n.sort);t.columnByProp=Object.assign(Object.assign({},t.columnByProp),n.columnByProp);return t}function M(t,e){for(const n of t){if(A(n)){const t=M(n.children,e);if(t){return t}}else if(n.prop===e){return n}}return undefined}function E(t,e){return M(t,e)}function $(){return{range:null,tempRange:null,tempRangeType:null,focus:null,edit:null,lastCell:null,nextFocus:null}}class F{constructor(){this.unsubscribe=[];this.store=i($());this.store.on("set",((t,e)=>{if(t==="tempRange"&&!e){this.store.set("tempRangeType",null)}}))}onChange(t,e){this.unsubscribe.push(this.store.onChange(t,e))}clearFocus(){r(this.store,{focus:null,range:null,edit:null,tempRange:null})}setFocus(t,e){if(!e){r(this.store,{focus:t})}else{r(this.store,{focus:t,range:J(t,e),edit:null,tempRange:null})}}setNextFocus(t){r(this.store,{nextFocus:t})}setTempArea(t){r(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(){r(this.store,{tempRange:null})}setRangeArea(t){r(this.store,{range:t,edit:null,tempRange:null})}setRange(t,e){const n=J(t,e);this.setRangeArea(n)}setLastCell(t){r(this.store,{lastCell:t})}setEdit(t){const e=this.store.get("focus");if(e&&typeof t==="string"){r(this.store,{edit:{x:e.x,y:e.y,val:t}});return}r(this.store,{edit:null})}dispose(){this.unsubscribe.forEach((t=>t()));this.store.dispose()}}const N=-1;class k{constructor(){this.dirty=false;this.stores={};this.columnStores={};this.rowStores={};this.storesByType={};this.storesXToType={};this.storesYToType={};this.sections=[]}get focusedStore(){var t;for(let e in this.stores){for(let n in this.stores[e]){const s=(t=this.stores[e][n])===null||t===void 0?void 0:t.store.get("focus");if(s){return{entity:this.stores[e][n],cell:s,position:{x:parseInt(n,10),y:parseInt(e,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 e in this.stores[t]){this.stores[t][e].dispose()}}this.dirty=false}}registerColumn(t,e){if(D(t)){return new F}if(this.columnStores[t]){return this.columnStores[t]}this.columnStores[t]=new F;this.storesByType[e]=t;this.storesXToType[t]=e;return this.columnStores[t]}registerRow(t,e){if(D(t)){return new F}if(this.rowStores[t]){return this.rowStores[t]}this.rowStores[t]=new F;this.storesByType[e]=t;this.storesYToType[t]=e;return this.rowStores[t]}register({x:t,y:e}){var n,s;if(D(t)||D(e)){return new F}if(!this.stores[e]){this.stores[e]={}}if(this.stores[e][t]){return this.stores[e][t]}this.stores[e][t]=new F;(n=this.stores[e][t])===null||n===void 0?void 0:n.onChange("range",(n=>{this.columnStores[t].setRangeArea(n);this.rowStores[e].setRangeArea(n)}));(s=this.stores[e][t])===null||s===void 0?void 0:s.store.on("dispose",(()=>this.destroy(t,e)));return this.stores[e][t]}destroy(t,e){var n,s;(n=this.columnStores[t])===null||n===void 0?void 0:n.dispose();(s=this.rowStores[e])===null||s===void 0?void 0:s.dispose();delete this.rowStores[e];delete this.columnStores[t];if(this.storesXToType[t]){const e=this.storesXToType[t];delete this.storesXToType[t];delete this.storesByType[e]}if(this.storesYToType[e]){const t=this.storesYToType[e];delete this.storesYToType[e];delete this.storesByType[t]}if(this.stores[e]){delete this.stores[e][t]}if(!Object.keys(this.stores[e]||{}).length){delete this.stores[e]}}setEditByCell(t,e){this.focusByCell(t,e,e);this.setEdit("")}beforeNextFocusCell(t){var e;if(!this.focusedStore){return}const n=this.focusedStore.entity.store.get("lastCell");const s=n&&this.getNextStore(t,this.focusedStore.position,n);(e=s===null||s===void 0?void 0:s.store)===null||e===void 0?void 0:e.setNextFocus(Object.assign(Object.assign({},t),s.item))}focusByCell(t,e,n){const s=this.stores[t.y][t.x];this.focus(s,{focus:e,end:n})}focus(t,{focus:e,end:n}){const s=this.getCurrentStorePointer(t);if(!s){return null}const i=t.store.get("lastCell");const r=i&&this.getNextStore(e,s,i);if(r===null||r===void 0?void 0:r.store){const t=Object.assign(Object.assign({},e),r.item);this.focus(r.store,{focus:t,end:t});return null}if(i){e=B(e,i);n=B(n,i)}t.setFocus(e,n);return e}getCurrentStorePointer(t){let e;for(let n in this.stores){for(let s in this.stores[n]){const i=this.stores[n][s];if(i!==t){i.clearFocus()}else{e={x:parseInt(s,10),y:parseInt(n,10)}}}}return e}getNextStore(t,e,n){const s=G(t,n);let i;if(s){Object.entries(s).forEach((([t,n])=>{let r;switch(t){case"x":r=this.getXStores(e.y);break;case"y":r=this.getYStores(e.x);break}if(n>=0){i=r[++e[t]]}else{i=r[--e[t]];const o=i===null||i===void 0?void 0:i.store.get("lastCell");if(o){s[t]=o[t]+n}}}))}return{store:i,item:s}}clearAll(){var t;for(let e in this.stores){for(let n in this.stores[e]){(t=this.stores[e][n])===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 e in this.stores[t]){const n=this.stores[t][e];if(!n){continue}const s=n.store.get("lastCell");if(s){n.setRange({x:0,y:0},{x:s.x-1,y:s.y-1})}}}}getXStores(t){return this.stores[t]}getYStores(t){const e={};for(let n in this.stores){e[n]=this.stores[n][t]}return e}}function D(t){return t===N}function G(t,e){const n={};let s=["x","y"];for(let e of s){if(t[e]<0){n[e]=t[e];return n}}for(let i of s){if(t[i]>=e[i]){n[i]=t[i]-e[i];return n}}return null}function B(t,e){const n=Object.assign({},t);const s=["x","y"];for(const i of s){if(t[i]<0){n[i]=0}else if(t[i]>=e[i]){n[i]=e[i]-1}}return n}function J(t,e){return t&&e?{x:Math.min(t.x,e.x),y:Math.min(t.y,e.y),x1:Math.max(t.x,e.x),y1:Math.max(t.y,e.y)}:null}function z(t){return t.x===t.x1&&t.y===t.y1}const L=`${o}-depth`;const W=`${o}-name`;const Y=`${o}-id`;const q=`${o}-value`;const H=`${o}-column`;const K=`${o}-expanded`;const U=`${o}-prop`;const V=`${o}-original-index`;const X=`group-expand`;const Z="rgRow";function _(t,e){return t[e]||null}function Q(t,e,n=false){let s=0;const i={source:[],prevExpanded:{},oldNewIndexes:{}};e.forEach((e=>{const r=t[e];if(!n){i.source.push(r);return}if(st(r)){if(tt(r)){i.prevExpanded[r[q]]=true}}else{i.source.push(r);i.oldNewIndexes[e]=s;s++}}));return i}function tt(t={}){return t[K]}function et(t,e,{prevExpanded:n,expandedAll:s,getGroupValue:i=_}){const r=new Map;t.forEach(((t,n)=>{const s=e.map((e=>i(t,e)));const o=s.pop();let l=r;s.forEach((t=>{if(!l.has(t)){l.set(t,new Map)}l=l.get(t)}));if(!l.has(o)){l.set(o,[])}const u=l.get(o);u.push(Object.assign(Object.assign({},t),{[V]:n}))}));let o=-1;const l=e.length;const u={};const c={};const f={};const a=[];function h(t,i,r){const l=i.length;t.forEach(((t,d)=>{const v=[...i,d];const p=v.join(",");const g=r&&(!!s||!!(n===null||n===void 0?void 0:n[p]));a.push({[W]:d,[L]:l,[Y]:JSON.stringify(v),[q]:p,[K]:g,[U]:e[l],[e[l]]:d});o+=1;if(!g&&l){u[o]=true}if(Array.isArray(t)){t.forEach((t=>{o+=1;if(!g){u[o]=true}c[t[V]]=o;const e=v.map(((t,e)=>v.slice(0,e+1).join(",")));e.forEach((t=>{if(!f[t]){f[t]=[]}f[t].push(o)}))}));a.push(...t)}else{h(t,v,g)}}))}h(r,[],true);return{sourceWithGroups:a,depth:l,trimmed:u,oldNewIndexMap:c,childrenByGroup:f}}function nt(t){return t&&t[W]}function st(t){return typeof(t===null||t===void 0?void 0:t[W])!=="undefined"}function it(t){return typeof(t===null||t===void 0?void 0:t[H])!=="undefined"}function rt(t,e){const n=t.length;let s=0;for(;s<n;s++){if(t[s]!==e[s]){return s}}return s}function ot(t){const e=JSON.parse(t);if(!Array.isArray(e)){return null}return e}function lt(t,e,n){const s=ot(n[Y]);if(!s){return false}const i=rt(t,s);return e[L]<i}function ut(t,e,n){var s=-1,i=t.length;if(e<0){e=-e>i?0:i+e}n=n>i?i:n;if(n<0){n+=i}i=e>n?0:n-e>>>0;e>>>=0;var r=Array(i);while(++s<i){r[s]=t[s+e]}return r}function ct(t,e,n){var s=t==null?0:t.length;if(!s){return[]}if(n&&typeof n!="number"&&l(t,e,n)){e=0;n=s}else{e=e==null?0:u(e);n=n===undefined?s:u(n)}return ut(t,e,n)}class ft{get columns(){return c(this.source)}constructor(t,e){this.dataStore=t;this.source=e;this.unsubscribe=[];this.hasGrouping=false;this.unsubscribe.push(e.onChange("source",(t=>this.checkGrouping(t))));this.checkGrouping(e.get("source"));this.type=e.get("type")}checkGrouping(t){for(let e of t){if(it(e)){this.hasGrouping=true;return}this.hasGrouping=false}}isReadOnly(t,e){var n;const s=(n=this.columns[e])===null||n===void 0?void 0:n.readonly;if(typeof s==="function"){const n=this.rowDataModel(t,e);return s(n)}return!!s}mergeProperties(t,e,n,s){var i,r;const o=Object.assign({},n);o.class=Object.assign(Object.assign({},typeof o.class==="string"?{[o.class]:true}:o.class),{[f]:true,[a]:this.isReadOnly(t,e)});const l=(r=(i=s.column)===null||i===void 0?void 0:i.cellProperties)===null||r===void 0?void 0:r.call(i,s);if(!l){return o}return dt(o,l)}getRowClass(t,e){const n=h(this.dataStore,t)||{};return n[e]||""}getSaveData(t,e,n){const s=this.rowDataModel(t,e);if(typeof n==="undefined"){n=w(s.value)}return Object.assign(Object.assign({},s),{val:n})}getCellEditor(t,e,n){var s;const i=(s=this.columns[e])===null||s===void 0?void 0:s.editor;if(!i){return undefined}if(typeof i==="string"){return n[i]}return i}rowDataModel(t,e){const n=this.columns[e];const s=n===null||n===void 0?void 0:n.prop;const i=h(this.dataStore,t)||{};const r=this.dataStore.get("type");return{prop:s,model:i,data:this.dataStore.get("source"),column:n,rowIndex:t,colIndex:e,colType:this.type,type:r,value:R(i,n)}}getRangeData(t,e){var n;const s={};const i=t.oldRange.x1-t.oldRange.x+1;const r=t.oldRange.y1-t.oldRange.y+1;const o={};for(let l=t.newRange.y,u=0;l<t.newRange.y1+1;l++,u++){const c=t.oldRange.y+u%r;const f=h(this.dataStore,c)||{};for(let r=t.newRange.x,u=0;r<t.newRange.x1+1;r++,u++){if(l>=t.oldRange.y&&l<=t.oldRange.y1&&r>=t.oldRange.x&&r<=t.oldRange.x1){continue}if(!this.columns[r]){continue}const a=(n=this.columns[r])===null||n===void 0?void 0:n.prop;const h=t.oldRange.x+u%i;const d=e[h].prop;if(!this.isReadOnly(l,r)){if(!s[l]){s[l]={}}s[l][a]=f[d];if(!o[l]){o[l]={}}o[l][a]={colIndex:h,colProp:d,rowIndex:c}}}}return{changed:s,mapping:o}}getTransformedDataToApply(t,e){const n={};const s=e.length;const i=this.columns.length;const r=this.dataStore.get("items").length;let o=t.y;let l=0;for(let u=0;o<r&&u<s;o++,u++){const r=e[u%s];const c=(r===null||r===void 0?void 0:r.length)||0;let f=t.x;for(let t=0;f<i&&t<c;f++,t++){const e=this.columns[f].prop;const s=t%i;if(!this.isReadOnly(o,f)){if(!n[o]){n[o]={}}n[o][e]=r[s]}}l=Math.max(l,f-1)}const u=J(t,{y:o-1,x:l});return{changed:n,range:u}}getRangeStaticData(t,e){const n={};for(let s=t.y,i=0;s<t.y1+1;s++,i++){for(let i=t.x,r=0;i<t.x1+1;i++,r++){if(!this.columns[i]){continue}const t=this.columns[i].prop;if(!this.isReadOnly(s,i)){if(!n[s]){n[s]={}}n[s][t]=e}}}return n}getRangeTransformedToProps(t,e){var n;const s=[];const i=this.dataStore.get("type");for(let r=t.y,o=0;r<t.y1+1;r++,o++){for(let o=t.x,l=0;o<t.x1+1;o++,l++){const t=(n=this.columns[o])===null||n===void 0?void 0:n.prop;s.push({prop:t,rowIndex:r,colIndex:o,model:h(e,r),type:i,colType:this.type})}}return s}copyRangeArray(t,e){const n=[...this.columns];const s=ct(n,t.x,t.x1+1).map((t=>t.prop));const i=[];const r={};for(let n=t.y;n<=t.y1;n++){const t=[];r[n]={};for(let i of s){const s=h(e,n);if(!s){continue}const o=s[i];t.push(o);r[n][i]=o}i.push(t)}return{data:i,mapping:r}}destroy(){this.unsubscribe.forEach((t=>t()))}}function at(t,e){if(typeof t==="function"){return t(e)}return!!t}function ht(t={},e={}){if(typeof t==="string"){t={[t]:true}}if(typeof e==="string"){e={[e]:true}}return Object.assign(Object.assign({},t),e)}function dt(t,e){if(e.className){e.class=ht(e.class,e.className);delete e.className}let n=Object.assign(Object.assign({},e),t);if(e.class){n.class=ht(n.class,e.class)}if(e.style){n.style=Object.assign(Object.assign({},e.style),n.style)}return n}export{q as A,Z as B,H as C,dt as D,N as E,k as F,K as G,ft as H,X as I,W as J,at as K,Y as P,F as S,z as a,Q as b,B as c,tt as d,et as e,nt as f,J as g,st as h,D as i,it as j,ot as k,lt as l,rt as m,G as n,w as o,R as p,C as q,I as r,S as s,A as t,P as u,T as v,E as w,O as x,j as y,L as z};
|
|
5
|
+
//# sourceMappingURL=column.service-a6a7c415.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","getCellData","val","getCellRaw","model","column","cellParser","prop","getCellDataParsed","getColumnType","rgCol","pin","getColumnSizes","cols","res","i","c","entries","size","isColGrouping","colData","children","getColumns","columns","level","types","colPinStart","colPinEnd","columnByProp","columnGrouping","maxLevel","sort","gatherGroup","columnDefinitionFromType","columnType","regularColumn","assign","push","order","beforeSetup","group","ids","k","resultItem","collectionItem","map","item","Math","max","findColumn","found","undefined","getColumnByProp","defaultState","range","tempRange","tempRangeType","focus","edit","lastCell","nextFocus","SelectionStore","constructor","this","unsubscribe","store","createStore","on","newVal","set","onChange","propName","cb","clearFocus","setStore","setFocus","end","getRange","setNextFocus","setTempArea","area","type","clearTemp","setRangeArea","setRange","start","setLastCell","setEdit","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","_b","destroy","setEditByCell","storePos","editCell","focusByCell","beforeNextFocusCell","next","getNextStore","currentStorePointer","getCurrentStorePointer","cropCellToMax","s","nextItem","nextCell","nextStore","nextItemCoord","getXStores","getYStores","nextLastCell","clearAll","selectAll","pos","t","croppedCell","cellCoordinates","coordinate","min","x1","y1","isRangeSingleCell","a","GROUP_DEPTH","GRID_INTERNALS","PSEUDO_GROUP_ITEM","PSEUDO_GROUP_ITEM_ID","PSEUDO_GROUP_ITEM_VALUE","PSEUDO_GROUP_COLUMN","GROUP_EXPANDED","GROUP_COLUMN_PROP","GROUP_ORIGINAL_INDEX","GROUP_EXPAND_BTN","GROUPING_ROW_TYPE","getGroupValueDefault","getSource","source","items","withoutGrouping","result","prevExpanded","oldNewIndexes","isGrouping","getExpanded","gatherGrouping","columnProps","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","isGroupingColumn","measureEqualDepth","groupA","groupB","ln","getParsedGroup","id","parseGroup","parse","isSameGroup","currentGroup","currentModel","nextModel","nextGroup","baseSlice","isIterateeCall","toInteger","ColumnService","getVisibleSourceItem","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","getCellEditor","_r","editors","editor","colType","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/utils/column.utils.ts","src/store/selection/selection.store.ts","src/services/selection.store.connector.ts","src/store/selection/selection.helpers.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","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) {\n return;\n }\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 res = gatherGroup(\n res,\n colData,\n getColumns(colData.children, level + 1, types),\n level,\n );\n return res;\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 res.columnByProp = {\n ...res.columnByProp,\n ...collection.columnByProp,\n };\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","/**\n * Selection store\n */\n\nimport { setStore, Observable } from '../../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 EditCellStore,\n RangeArea,\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 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(): EditCellStore | null | undefined {\n return this.focusedStore?.entity.store.get('edit');\n }\n\n get focused(): Cell | null | undefined {\n return this.focusedStore?.entity.store.get('focus');\n }\n\n get selectedRange(): RangeArea | null | undefined {\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 { DimensionRows } from '@type';\nimport { 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_COLUMN_PROP = `${GRID_INTERNALS}-prop`;\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: DimensionRows = 'rgRow';\n","import type { 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 GROUP_COLUMN_PROP,\n} from './grouping.const';\nimport type { ExpandedOptions, SourceGather } from './grouping.row.types';\n\n\ntype GroupedData = Map<string, GroupedData | DataType[]>;\n\nfunction getGroupValueDefault(item: DataType, prop: string | number) {\n return item[prop] || null;\n}\n\n// get source based on proxy item collection to preserve rgRow order\nexport function getSource(\n source: DataType[],\n items: number[],\n withoutGrouping = false,\n) {\n let index = 0;\n const result: Required<SourceGather> = {\n source: [],\n prevExpanded: {},\n oldNewIndexes: {},\n };\n // order important here, expected parent is first, then others\n items.forEach(i => {\n const model = source[i];\n if (!withoutGrouping) {\n result.source.push(model);\n return;\n }\n\n // grouping filter\n if (isGrouping(model)) {\n if (getExpanded(model)) {\n result.prevExpanded[model[PSEUDO_GROUP_ITEM_VALUE]] = true;\n }\n } else {\n result.source.push(model);\n result.oldNewIndexes[i] = index;\n index++;\n }\n });\n return result;\n}\n\nexport function getExpanded(model: DataType = {}) {\n return model[GROUP_EXPANDED];\n}\n\n/**\n * Gather data for grouping\n * @param array - flat data array\n * @param columnProps - ids of groups\n * @param expanded - potentially expanded items if present\n */\nexport function gatherGrouping(\n array: DataType[],\n columnProps: 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 = columnProps.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 = columnProps.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 [GROUP_COLUMN_PROP]: columnProps[depth],\n [columnProps[depth]]: groupId,\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 [GROUP_COLUMN_PROP]: ColumnProp;\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 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 Observable,\n CELL_CLASS,\n DISABLED_CLASS,\n getCellRaw,\n getCellData,\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 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.value);\n }\n return {\n ...data,\n val,\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 = 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":[]}
|
package/dist/revo-grid/{header-cell-renderer-46df6d22.js → header-cell-renderer-36ecbdef.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{h as t}from"./index-a61f225b.js";import{D as i}from"./column.service-
|
|
5
|
-
//# sourceMappingURL=header-cell-renderer-
|
|
4
|
+
import{h as t}from"./index-a61f225b.js";import{D as i}from"./column.service-a6a7c415.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 a="columnclick";const u=({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 u=Object.assign(Object.assign({},r),{onMouseDown(t){s(t.currentTarget,a,{data:e,event:t})}});return t(c,Object.assign({},u),t("div",{class:"header-content"},l),n)};export{u as H,a as O,e as a,s as d};
|
|
5
|
+
//# sourceMappingURL=header-cell-renderer-36ecbdef.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{B as _}from"./column.drag.plugin-
|
|
4
|
+
import{B as _}from"./column.drag.plugin-8fdea9fa.js";export{A as AutoSizeColumnPlugin,B as BasePlugin,C as ColumnMovePlugin,D as DimensionStore,b as ExportCsv,E as ExportFilePlugin,d as FILTER_CONFIG_CHANGED_EVENT,F as FILTER_TRIMMED_TYPE,e as FILTE_PANEL,f as FilterPlugin,G as GroupingRowPlugin,l as SortingPlugin,S as StretchColumn,c as columnTypes,g as filterCoreFunctionsIndexedByType,j as filterNames,h as filterTypes,k as getLeftRelative,i as isRowType,a as isStretchPlugin,r as rowTypes}from"./column.drag.plugin-8fdea9fa.js";export{d as dispatch,a as dispatchByEvent}from"./header-cell-renderer-36ecbdef.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"./dimension.helpers-d0d709c4.js";export{S as SelectionStore,c as cropCellToMax,v as gatherGroup,e as gatherGrouping,o as getCellData,q as getCellDataParsed,p as getCellRaw,w as getColumnByProp,s as getColumnSizes,r as getColumnType,u as getColumns,d as getExpanded,f as getGroupingName,k as getParsedGroup,g as getRange,b as getSource,t as isColGrouping,h as isGrouping,j as isGroupingColumn,i as isHiddenStore,a as isRangeSingleCell,l as isSameGroup,m as measureEqualDepth,n as nextCell}from"./column.service-a6a7c415.js";export{S as SortingSign}from"./sorting.sign-1a675bf7.js";export{T as TextEditor}from"./text-editor-148a17c1.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"./viewport.store-afa8c4fe.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-7c3218d4.js";import"./debounce-b3166f78.js";const W=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"],["sortingconfigchanged","sortingconfigchanged"],["rowheaderschanged","rowheaderschanged"],["beforegridrender","beforegridrender"],["aftergridrender","aftergridrender"],["aftergridinit","aftergridinit"],["additionaldatachanged","additionaldatachanged"],["afterthemechanged","afterthemechanged"],["created","created"],["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"],["setrange","setrange"],["beforeeditrender","beforeeditrender"],["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"]]);class Y extends _{constructor(e,r){super(e,r);this.addEventListener("beforepasteapply",(e=>this.handleBeforePasteApply(e)))}handleBeforePasteApply(e){const r=this.providers.selection.focused;const a=this.providers.selection.edit!=null;if(!r||a){return}const s=this.providers.data.stores.rgRow.store.get("items").length;const o=r.y+e.detail.parsed.length;if(s<o){const e=o-s;const r=Array.from({length:e},((e,r)=>({index:s+r,data:{}})));const a=this.emit("newRows",{newRows:r});if(a.defaultPrevented){return}const t=[...this.providers.data.stores.rgRow.store.get("source"),...a.detail.newRows.map((e=>e.data))];this.providers.data.setData(t)}}}export{Y as AutoAddRowsPlugin,W as REVOGRID_EVENTS};
|
|
5
5
|
//# sourceMappingURL=index.esm.js.map
|