@guiexpert/demo-table-models 1.0.24 → 1.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.cjs +1 -1
  2. package/index.js +14 -5
  3. package/package.json +2 -2
package/index.cjs CHANGED
@@ -239,7 +239,7 @@
239
239
  --ge-table-column-resize-handle-border: oklch(0% 0 0);
240
240
  --ge-table-dragged-col-div-bg: #2c2e33;
241
241
  --ge-table-drop-zone-bg: #758129;
242
- }`};let se=$;class ie{constructor(e,r=!0,a,t,n=0,m=!1,d=!1){this.data=e,this.expanded=r,this.children=a,this.parent=t,this.deep=n,this.checked=m,this.keep=d,this.type="TreeRow"}}class U{static buildTreeRows(e,r="children",a=12){const t=[];for(const n of e)t.push(U.buildTreeRow(n,r,void 0,0,a));return t}static buildTreeRow(e,r="children",a=new ie(e,!0,[],void 0,0),t=0,n=12){var d;if(t>n)return console.warn("Max deep limit reached: ",t),a;const m=e[r];if(m)for(const i of m){const u=new ie(i,!0,[],a,t+1);if((d=a.children)==null||d.push(u),U.buildTreeRow(i,r,u,t+1),t>n)return console.warn("Max deep limit reached: ",t),a}return a}}class R{constructor(e=34,r=34,a=34){this.header=e,this.body=r,this.footer=a}}class l{constructor(e=100,r="px"){this.value=e,this.unit=r}}const g=()=>!0,B=()=>!1;class y{constructor(e,r,a=new l(100,"px"),t=new C,n=new C,m=new l(100,"px"),d=new l(100,"px"),i,u,p,c,N,G,v,k,b=()=>this.visible){this.property=e,this.headerLabel=r,this.width=a,this.classes=t,this.rendererMap=n,this.minWidth=m,this.maxWidth=d,this.sortable=i,this.sortComparator=u,this.sortState=p,this.sortStatesOrder=c,this.sortIconVisible=N,this.editable=G,this.getEditRenderer=v,this.editInputPipe=k,this.isVisible=b,this.visible=!0,a.unit!=="px"&&(this.minWidth=new l(0,"px"),this.maxWidth=new l(1e5,"px"))}static bodyRenderer(e){return new C(void 0,e,void 0)}static create(e){const r=new C(e.headerRenderer,e.bodyRenderer,e.footerRenderer),a=new C(e.headerClasses,e.bodyClasses,e.footerClasses),t=e.sortIconVisible??e.sortable??B,n=e.editable??e.editable??B,m=e.isVisible??e.isVisible??g;return new y(e.property??"",e.headerLabel??"",e.width??new l(100,"px"),a,r,e.minWidth??new l(100,"px"),e.maxWidth??new l(100,"px"),e.sortable,e.sortComparator,e.sortState,e.sortStatesOrder,t,n,e.getEditRenderer,e.editInputPipe,m)}}const Qe=new l(300,"px"),er=new l(250,"px"),fe=new l(220,"px"),A=new l(200,"px"),rr=new l(160,"px"),Te=new l(150,"px"),re=new l(140,"px"),L=new l(120,"px"),T=new l(100,"px"),oe=new l(90,"px"),he=new l(80,"px"),ar=new l(70,"px"),x=new l(60,"px"),tr=new l(50,"px");class ae{constructor(e,r=[],a=-1){this.areaIdent=e,this.columnDefs=r,this.defaultRowHeight=a,this.rowSelectionModel=void 0,this.yPositions=[],this.cellRenderers=r.map(t=>t.rendererMap[e])}getTextValueAt(e,r){return""+this.getValueAt(e,r)}getTooltipAt(e,r){return""}getCellRenderer(e,r){if(r<this.cellRenderers.length)return this.cellRenderers[r]}getColspanAt(e,r){return 0}getCustomClassesAt(e,r){return[]}getCustomStyleAt(e,r){}getRowspanAt(e,r){return 0}getRowByIndex(e){}isRowCheckable(e){return!0}isRowChecked(e){var a;const r=this.getRowByIndex(e);return(a=this.rowSelectionModel)==null?void 0:a.isRowChecked(r)}setRowChecked(e,r){if(this.rowSelectionModel){const a=this.getRowByIndex(e);this.rowSelectionModel.checkRow(a,r)}}getMaxColspan(){return 31}getMaxRowspan(){return 31}getYPosByRowIndex(e){return this.defaultRowHeight>0?this.defaultRowHeight*e:this.yPositions[e]}init(){!this.yPositions.length&&this.getRowCount()!==void 0&&this.defaultRowHeight===-1&&this.calcYPositions()}isFilterable(){return this.areaIdent==="body"}doSort(e){return!1}isEditable(e,r){var t,n;const a=(t=this.columnDefs)==null?void 0:t[r];return((n=a==null?void 0:a.editable)==null?void 0:n.call(a))??!1}setValue(e,r,a){var d;const t=(d=this.columnDefs[r])==null?void 0:d.editInputPipe;t&&(a=t(a,e,r));const n=this.getRowByIndex(e),m=this.columnDefs[r].property;return m.includes(".")?this.setPropertyValue(n,m.split("."),a):(n[m]=a,!0)}isSelectable(e,r){return!0}changeColumnOrder(e,r){this.arrayMove(this.cellRenderers,e,r)}setPropertyValue(e,r,a){const t=r.shift();if(t){const n=e[t];return n&&r.length?this.setPropertyValue(n,r,a):(e[t]=a,!0)}return!1}arrayMove(e,r,a){const t=e.splice(r,1)[0];return e.splice(a,0,t),e}calcYPositions(){const e=this.getRowCount();this.yPositions=new Array(e+1),this.yPositions[0]=0;for(let r=0;r<e;r++)this.yPositions[r+1]=this.getRowHeight(r)+this.yPositions[r]}}class S extends ae{constructor(e,r,a,t=[]){super(e,t,a),this.areaIdent=e,this.arr=r,this.defaultRowHeight=a,this.columnDefs=t,this.filteredArr=[...r]}externalFilterChanged(e){this.filteredArr=this.arr?this.arr.filter(e):[]}getRowCount(){return this.filteredArr?this.filteredArr.length:0}getValueAt(e,r){return this.filteredArr[e][r]}setValue(e,r,a){var n;const t=(n=this.columnDefs[r])==null?void 0:n.editInputPipe;return t&&(a=t(a,e,r)),this.arr[e][r]=a,!0}getRowByIndex(e){return this.filteredArr[e]}getRowHeight(e){return this.defaultRowHeight}changeColumnOrder(e,r){this.filteredArr.forEach(a=>this.arrayMove(a,e,r)),super.changeColumnOrder(e,r)}}class Z{constructor(e="body"){this.areaIdent=e,this.rowSelectionModel=void 0}getRowCount(){return 0}getValueAt(e,r){return""}getTextValueAt(e,r){return""}getCellRenderer(e,r){}getRowHeight(e){return 0}getColspanAt(e,r){return 0}getCustomClassesAt(e,r){return[]}getCustomStyleAt(e,r){}getRowspanAt(e,r){return 0}getRowByIndex(e){}isRowCheckable(e){return!1}isRowChecked(e){}setRowChecked(e,r){}getTooltipAt(e,r){return""}getMaxColspan(){return 0}getMaxRowspan(){return 0}getYPosByRowIndex(e){return 0}init(){}externalFilterChanged(e){}isFilterable(){return!1}doSort(e){return!1}isEditable(e,r){return!1}setValue(e,r,a){return!1}isSelectable(e,r){return!1}changeColumnOrder(e,r){}}class nr{flattenTree(e,r=[]){var a;for(const t of e)this.isVisible(t)&&r.push(t),(a=t.children)!=null&&a.length&&this.flattenTree(t.children,r);return r}isVisible(e){return e.parent?e.parent.expanded?this.isVisible(e.parent):!1:!0}}class Se{genericSortComparator(e,r,a){if(typeof e=="number"&&typeof r=="number")return a*(e-r);if(typeof e=="string"&&typeof r=="string")return a*e.localeCompare(r);if(typeof e=="boolean"&&typeof r=="boolean")return a*((e?-1:1)-(r?-1:1));if(e instanceof Date&&r instanceof Date)return a*(e.getTime()-r.getTime());if(e instanceof Array&&r instanceof Array){const t=e,n=r;if(t.length&&n.length)return this.genericSortComparator(t[0],n[0],a)}return a*(""+e).localeCompare(""+r)}}class de extends ae{constructor(e,r,a,t=[]){super(e,t,a),this.areaIdent=e,this.rows=r,this.defaultRowHeight=a,this.columnDefs=t,this.type="AreaModelTree",this.sorterService=new Se,this.service=new nr,this.properties=t.map(n=>n.property),this.flattenRows=this.service.flattenTree(r),this.filteredFlattenRows=[...this.flattenRows]}changeColumnOrder(e,r){this.arrayMove(this.properties,e,r),super.changeColumnOrder(e,r)}recalcVisibleTreeRows(){this.filteredFlattenRows=this.service.flattenTree(this.rows)}getFilteredFlattenRows(){return this.filteredFlattenRows}getRowCount(){let e=0;for(const r of this.filteredFlattenRows)this.service.isVisible(r)&&e++;return e}getValueAt(e,r){const a=this.getRowByIndex(e);if(a){const t=this.properties[r];if(t)return t.includes(".")?this.getPropertyValue(a.data,t.split(".")):a.data[t]}return""}getRowHeight(e){return this.defaultRowHeight}getCustomClassesAt(e,r){return["ge-table-tree-cell","ge-table-tree-deep-"+this.filteredFlattenRows[e].deep]}getRowByIndex(e){return this.filteredFlattenRows[e]}getValueByT(e,r){return r.includes(".")?this.getPropertyValue(e,r.split(".")):e[r]}externalFilterChanged(e){this.lastPredictFn=e,this.doFiltering()}doSort(e){const{columnIndex:r,sortState:a}=e[e.length-1],t=a==="asc"?1:a==="desc"?-1:0,n=this.properties[r];return this.treeSort(this.rows,n,t),this.flattenRows=this.service.flattenTree(this.rows),this.filteredFlattenRows=[...this.flattenRows],!0}toggleExpandCollapseAll(e){this.expandAllRecursive(this.rows,e),this.flattenRows=this.service.flattenTree(this.rows),this.doFiltering()}setAllParentsOk(e){return e.parent&&(e.parent.keep=!0,this.setAllParentsOk(e.parent)),!1}setValue(e,r,a){var m;const t=(m=this.columnDefs[r])==null?void 0:m.editInputPipe;t&&(a=t(a,e,r));const n=this.getRowByIndex(e);if(n){const d=n.data,i=this.columnDefs[r].property;return i.includes(".")?this.setPropertyValue(d,i.split("."),a):(d[i]=a,!0)}return!1}genericTreeTableSortComparator(e,r){return(a,t)=>{const n=this.getValueByT(a.data,e),m=this.getValueByT(t.data,e);return this.sorterService.genericSortComparator(n,m,r)}}expandAllRecursive(e,r){for(const a of e)a.expanded=r,a.children&&this.expandAllRecursive(a.children,r)}doFiltering(){if(!this.lastPredictFn)this.filteredFlattenRows=[...this.flattenRows?this.flattenRows:[]];else{this.flattenRows||(this.flattenRows=[]);let e=0;this.flattenRows.forEach(a=>{e=Math.max(e,a.deep)});const r=this.flattenRows.filter((a,t,n)=>this.lastPredictFn(a,t,n));this.flattenRows.forEach(a=>a.keep=!1),this.flattenRows.forEach(a=>{r.includes(a)&&(a.keep=!0,this.setAllParentsOk(a))}),this.filteredFlattenRows=this.flattenRows.filter((a,t,n)=>a.keep)}}getPropertyValue(e,r){const a=r.shift();let t=e[a];return t&&r.length?this.getPropertyValue(t,r):t}treeSort(e,r,a){e.sort(this.genericTreeTableSortComparator(r,a));for(const t of e)t.children&&this.treeSort(t.children,r,a)}}class ye{constructor(e=[]){this.allRootNodes=e}checkRow(e,r){if(e.checked=r,e.children)for(const a of e.children)this.checkRow(a,r);this.autoCheckParent(e.parent)}checkAll(e){for(const r of this.allRootNodes)r.checked=!1,r.children&&this.checkAll(r.children)}getCheckedRows(){const e=[];return this.addSelectedRecursive(this.allRootNodes,e),e}isRowChecked(e){if(e.checked)return"full";const r=this.areAllChildrenChecked(e),a=this.areAllChildrenUnchecked(e);return!r&&!a?"semi":"none"}setCheckedRows(e){this.addCheckedRows(e)}addCheckedRows(e){for(const r of e)r.checked=!0}autoCheckParent(e){if(e){const r=this.areAllChildrenChecked(e),a=this.areAllChildrenUnchecked(e);r?e.checked=!0:e.checked=!1,this.autoCheckParent(e.parent)}}areAllChildrenChecked(e){var r,a;if((r=e.children)!=null&&r.length){for(const t of e.children)if(!t.checked||(a=t.children)!=null&&a.length&&!this.areAllChildrenChecked(t))return!1}return!0}areAllChildrenUnchecked(e){var r,a;if((r=e.children)!=null&&r.length){for(const t of e.children)if(t.checked||(a=t.children)!=null&&a.length&&!this.areAllChildrenUnchecked(t))return!1}return!0}addSelectedRecursive(e,r){for(const a of e)a.checked&&r.push(a),a.children&&this.addSelectedRecursive(a.children,r)}}class ue{constructor(e=0,r=0,a=0,t=0){this.top=e,this.right=r,this.bottom=a,this.left=t}}class mr{constructor(){this.checkedRows=[]}getCheckedRows(){return this.checkedRows}setCheckedRows(e){this.checkedRows=e}addCheckedRows(e){this.checkedRows||(this.checkedRows=[]);for(const r of e)this.checkedRows.includes(r)||this.checkedRows.push(r)}checkRow(e,r){this.checkedRows||(this.checkedRows=[]),r?this.checkedRows.includes(e)||this.checkedRows.push(e):this.removeSelectedRow(e)}isRowChecked(e){return this.checkedRows&&this.checkedRows.includes(e)?"full":"none"}checkAll(e){this.checkedRows=[]}removeSelectedRow(e){if(this.checkedRows){const r=this.checkedRows.indexOf(e);r>-1&&this.checkedRows.splice(r,1)}}}class W{constructor(e,r,a,t=0,n=0,m=!1,d=new R,i=[],u=[],p=-1,c=0,N=400,G=()=>{}){var v,k,b,F;this.headerAreaModel=e,this.bodyAreaModel=r,this.footerAreaModel=a,this.fixedLeftColumnCount=t,this.fixedRightColumnCount=n,this.rowCheckboxVisible=m,this.defaultRowHeights=d,this.columnDefs=i,this.columnSizes=u,this.overridingColumnWidth=p,this.columnCount=c,this.parentSize=N,this.getSelectionModel=G,this.rowCount=0,this.contentHeightInPx=0,this.contentWidthInPx=0,this.padding=new ue(0,0,0,0),this.xPositions=[],e.areaIdent="header",r.areaIdent="body",a.areaIdent="footer",this.columnCount||((v=this.columnDefs)!=null&&v.length?this.columnCount=this.columnDefs.length:(k=this.columnSizes)!=null&&k.length&&(this.columnCount=(b=this.columnSizes)==null?void 0:b.length)),(F=this.columnDefs)!=null&&F.length&&Fe(this.columnDefs[0])&&!r.rowSelectionModel&&(r.rowSelectionModel=new mr)}init(){this.recalcSize(this.parentSize),this.overridingColumnWidth===-1&&this.calcXPositions(),this.headerAreaModel&&this.headerAreaModel.init(),this.bodyAreaModel&&this.bodyAreaModel.init(),this.footerAreaModel&&this.footerAreaModel.init()}setParentWidth(e){this.parentSize=e}getColumnCount(){return this.columnCount}setColumnWidth(e,r){var a;r=Math.max(0,r),this.overridingColumnWidth!==-1&&(this.overridingColumnWidth=r),e>-1&&e<((a=this.columnSizes)==null?void 0:a.length)&&(this.columnSizes[e]=r),this.recalcContentWidthInPx()}getColumnWidth(e){var a;const r=this.getColumnDef(e);return r&&r.isVisible&&!r.isVisible()?0:this.overridingColumnWidth!==-1?this.overridingColumnWidth:e>-1&&e<((a=this.columnSizes)==null?void 0:a.length)?this.columnSizes[e]:0}getXPosByColumnIndex(e){return e===0?0:this.overridingColumnWidth>-1?this.overridingColumnWidth*e:this.xPositions[e]}recalcSize(e){this.recalcColumnWidths(e),this.recalcHeightAndPadding()}recalcHeightAndPadding(){const e=this.getAreaModel("body");this.rowCount=e.getRowCount(),this.contentHeightInPx=this.getAreaHeight("body"),this.recalcContentWidthInPx(),this.recalcPadding()}recalcPadding(){const e=this.getSideAreaWidth("west"),r=this.getSideAreaWidth("east"),a=this.getAreaHeight("header"),t=this.getAreaHeight("footer");this.padding=new ue(a,r,t,e)}getPadding(){return this.padding}getContentHeightInPixel(){return this.contentHeightInPx}getContentWidthInPixel(){return this.contentWidthInPx}getRowHeight(e,r){return this.getAreaModel(e).getRowHeight(r)}getModel(e){return this.getAreaModel(e)}getAreaHeight(e){const r=this.getModel(e),a=r.getRowCount();if(this.defaultRowHeights[e])return a*this.defaultRowHeights[e];let t=0;for(let n=0;n<a;n++)t=t+r.getRowHeight(n);return t}getSideAreaWidth(e){const[r,a]=this.getSideStartAndEndColumnIndex(e);let t=0;for(let n=r;n<=a;n++)t=t+this.getColumnWidth(n);return t}getSideStartAndEndColumnIndex(e){const r=this.getFixedLeftColumnCount(),a=this.getFixedRightColumnCount();let t=0,n=this.columnCount-1;return e==="west"?n=r-1:e==="east"?t=this.columnCount-a:(t=r,n=this.columnCount-a-1),[t,n]}getColumnDef(e){if(e<this.columnDefs.length)return this.columnDefs[e]}getFixedLeftColumnCount(){return this.fixedLeftColumnCount}getFixedRightColumnCount(){return this.fixedRightColumnCount}getAreaModel(e){if(e==="header")return this.headerAreaModel;if(e==="body")return this.bodyAreaModel;if(e==="footer")return this.footerAreaModel;throw new Error("Wrong ident.")}getBodyModel(){return this.bodyAreaModel}isFooterVisibe(){var e;return(((e=this.footerAreaModel)==null?void 0:e.getRowCount())??0)>0}isHeaderVisibe(){var e;return(((e=this.headerAreaModel)==null?void 0:e.getRowCount())??0)>0}isRowCheckboxVisible(){return this.rowCheckboxVisible}externalFilterChanged(e){this.getAreaModel("body").externalFilterChanged(e)}doSort(e){return this.getAreaModel("body").doSort(e)}getColumnDefs(){return this.columnDefs}getColumnProperty(e){return this.columnDefs?this.columnDefs[e].property:""}getBodyRowByIndex(e){return this.getBodyModel().getRowByIndex(e)}isSortable(e){var r;if(this.columnDefs&&e<this.columnDefs.length){const a=(r=this.columnDefs[e])==null?void 0:r.sortable;if(typeof a=="function")return a()}return!1}changeColumnOrder(e,r){var a,t,n;this.arrayMove(this.columnDefs,e,r),this.arrayMove(this.columnSizes,e,r),(a=this.headerAreaModel)==null||a.changeColumnOrder(e,r),(t=this.bodyAreaModel)==null||t.changeColumnOrder(e,r),(n=this.footerAreaModel)==null||n.changeColumnOrder(e,r),this.calcXPositions()}recalcColumnWidths(e){var r,a,t;if(!((r=this.columnDefs)!=null&&r.length)&&!((a=this.columnSizes)!=null&&a.length)&&(this.columnSizes=new Array(this.getColumnCount()).fill(this.overridingColumnWidth)),(t=this.columnDefs)!=null&&t.length){const n=this.columnDefs.filter(i=>{var u;return((u=i.width)==null?void 0:u.unit)==="weight"});this.columnSizes=this.columnDefs.map(i=>{if(i.width.unit==="%"&&e){let u=Math.floor(i.width.value*e/100);if(i.minWidth){const p=this.sizeToPixel(i.minWidth,e);u=Math.max(p,u)}if(i.maxWidth){const p=this.sizeToPixel(i.maxWidth,e);u=Math.min(p,u)}return u}else if(i.width.unit==="px"&&e)return i.width.value;return 0});const m=this.columnSizes.reduce((i,u)=>i+u),d=e-m;if(d>0&&n.length){const i=n.map(u=>u.width.value).reduce((u,p)=>u+p);for(let u=0;u<this.columnDefs.length;u++){const p=this.columnDefs[u];p.width.unit==="weight"&&(this.columnSizes[u]=p.width.value*d/i)}}}}sizeToPixel(e,r){return e.unit==="px"?e.value:e.unit==="%"?Math.floor(e.value*r/100):-1}arrayMove(e,r,a){const t=e.splice(r,1)[0];return e.splice(a,0,t),e}recalcContentWidthInPx(){this.contentWidthInPx=this.getSideAreaWidth("center")}calcXPositions(){const e=this.getColumnCount();this.xPositions=new Array(e+1),this.xPositions[0]=0;for(let r=0;r<e;r++)this.xPositions[r+1]=this.getColumnWidth(r)+this.xPositions[r]}}class sr extends ae{constructor(e,r,a,t=[]){super(e,t,a),this.areaIdent=e,this.rows=r,this.defaultRowHeight=a,this.columnDefs=t,this.sorterService=new Se,this.filteredRows=[...r],this.properties=t.map(n=>n.property)}setRows(e){this.rows=e,this.filteredRows=[...e]}getRowCount(){var e;return((e=this.filteredRows)==null?void 0:e.length)??0}getValueAt(e,r){const a=this.properties[r];let t=this.filteredRows[e];return X(t)&&(t=t.data),t?this.getValueByT(t,a):""}getFilteredRows(){return this.filteredRows}getAllRows(){return this.rows}getRowHeight(e){return this.defaultRowHeight}getRowByIndex(e){return this.filteredRows[e]}externalFilterChanged(e){this.filteredRows=this.rows?this.rows.filter(e):[]}doSort(e){for(const r of e){const{columnIndex:a,sortState:t}=r,n=t==="asc"?1:t==="desc"?-1:0,m=this.properties[a];this.filteredRows=this.filteredRows.sort(this.genericFlatTableSortComparator(m,n))}return!0}getValueByT(e,r){return r.includes(".")?this.getPropertyValue(e,r.split(".")):e[r]}changeColumnOrder(e,r){this.arrayMove(this.properties,e,r),super.changeColumnOrder(e,r)}genericFlatTableSortComparator(e,r){return(a,t)=>{const n=this.getValueByT(a,e),m=this.getValueByT(t,e);return this.sorterService.genericSortComparator(n,m,r)}}getPropertyValue(e,r){const a=r.shift(),t=e[a];return t&&r.length?this.getPropertyValue(t,r):t}}class I extends sr{constructor(e,r,a,t){super(e,r,t,a),this.areaIdent=e,this.rows=r,this.columnDefs=a,this.defaultRowHeight=t}}class f{static createTableModel(e){var r,a,t,n,m,d,i,u,p,c,N,G,v,k;if(e.defaultRowHeights===void 0)if((r=e.tableOptions)!=null&&r.defaultRowHeights)e.defaultRowHeights=e.tableOptions.defaultRowHeights;else{if(e.defaultRowHeights=new R,e.headerAreaModel&&"defaultRowHeight"in e.headerAreaModel){const b=e.headerAreaModel.defaultRowHeight;b>-1&&(e.defaultRowHeights.header=b)}if(e.bodyAreaModel&&"defaultRowHeight"in e.bodyAreaModel){const b=e.bodyAreaModel.defaultRowHeight;b>-1&&(e.defaultRowHeights.body=b)}if(e.footerAreaModel&&"defaultRowHeight"in e.footerAreaModel){const b=e.footerAreaModel.defaultRowHeight;b>-1&&(e.defaultRowHeights.footer=b)}}if(e.columnDefs===void 0&&((a=e.properties)!=null&&a.length?e.columnDefs=e.properties.map(b=>new y(b,b.toUpperCase(),A)):(t=e.rows)!=null&&t.length?e.columnDefs=Object.keys(e.rows[0]).map(b=>new y(b,b.toUpperCase(),A)):e.columnDefs=[]),e.columnCount===void 0&&((n=e.columnDefs)!=null&&n.length?e.columnCount=e.columnDefs.length:(m=e.headerData)!=null&&m.length?e.columnCount=e.headerData[0].length:(d=e.columnSizes)!=null&&d.length?e.columnCount=(i=e.columnSizes)==null?void 0:i.length:console.warn('Property "columnCount" is missing and cannot be derived from other properties.')),e.headerAreaModel||((u=e.headerData)!=null&&u.length?e.headerAreaModel=new S("header",e.headerData,e.defaultRowHeights.header,e.columnDefs):(p=e.columnDefs)!=null&&p.length?e.headerAreaModel=new S("header",[e.columnDefs.map(b=>b.headerLabel)],e.defaultRowHeights.header,e.columnDefs):e.headerAreaModel=new Z("header")),e.footerAreaModel||((c=e.footerData)!=null&&c.length?e.footerAreaModel=new S("footer",e.footerData,e.defaultRowHeights.footer,e.columnDefs):e.footerAreaModel=new Z("footer")),!e.bodyAreaModel)if(e.rows)if((N=e.rows)!=null&&N.length&&X(e.rows[0])){const b=e.rows;e.bodyAreaModel=new de("body",b,e.defaultRowHeights.body,e.columnDefs),(e.columnDefs[0].property==="CheckboxColumn"||(G=e.tableOptions)!=null&&G.showCheckboxWihoutExtraColumn)&&(e.bodyAreaModel.rowSelectionModel=new ye(b))}else e.bodyAreaModel=new I("body",e.rows,e.columnDefs,e.defaultRowHeights.body);else e.bodyData?e.bodyAreaModel=new S("body",e.bodyData,e.defaultRowHeights.body):e.bodyAreaModel=new Z("body");return e.fixedLeftColumnCount===void 0&&(e.fixedLeftColumnCount=0),e.fixedRightColumnCount===void 0&&(e.fixedRightColumnCount=0),e.rowCheckboxVisible===void 0&&(e.rowCheckboxVisible=!1),e.overridingColumnWidth===void 0&&(e.overridingColumnWidth=-1),!e.getSelectionModel&&((v=e.tableOptions)!=null&&v.getSelectionModel)&&(e.getSelectionModel=(k=e.tableOptions)==null?void 0:k.getSelectionModel),new W(e.headerAreaModel,e.bodyAreaModel,e.footerAreaModel,e.fixedLeftColumnCount,e.fixedRightColumnCount,e.rowCheckboxVisible,e.defaultRowHeights,e.columnDefs,e.columnSizes,e.overridingColumnWidth,e.columnCount,e.parentSize,e.getSelectionModel)}static buildByTypedRowsParam(e){return f.buildByTypedRows(e.rows??[],e.columnDefs,e.tableOptions??new z,e.fixedLeftColumnCount??0,e.fixedRightColumnCount??0)}static buildByTypedRows(e,r,a=new z,t=0,n=0){const m=a.defaultRowHeights,d=r[0].property==="CheckboxColumn";if(e!=null&&e.length&&X(e[0])){const i=e,u=new de("body",i,m.body,r);return(d||a.showCheckboxWihoutExtraColumn)&&(u.rowSelectionModel=new ye(i)),f.createByAreaModelsParam({headerAreaModel:new S("header",[r.map(p=>p.headerLabel)],m.header),bodyAreaModel:u,footerAreaModel:new S("footer",[],m.footer),columnDefs:r,fixedLeftColumnCount:t,fixedRightColumnCount:n,defaultRowHeights:a.defaultRowHeights,rowCheckboxVisible:!1,columnSizes:[],columnCount:r.length,overridingColumnWidth:-1})}return f.createByObjectArrayParam({rows:e,columnDefs:r,fixedLeftColumnCount:t,fixedRightColumnCount:n,defaultRowHeights:a.defaultRowHeights})}static createByObjectArrayParam(e){const r=e.rowCheckboxVisible!==void 0?e.rowCheckboxVisible:!1;return f.createByObjectArray(e.rows,e.header??[],e.footer??[],e.fixedLeftColumnCount??0,e.fixedRightColumnCount??0,r,e.defaultRowHeights??new R,e.columnDefs??[],e.columnSizes??[])}static createByAreaModels(e=new Z,r,a=new Z,t=0,n=0,m=!1,d=new R,i,u=[],p=-1,c){return new W(e,r,a,t,n,m,d,i,u,p,c)}static createByAreaModelsParam(e){return f.createByAreaModels(e.headerAreaModel??new Z,e.bodyAreaModel,e.footerAreaModel??new Z,e.fixedLeftColumnCount??0,e.fixedRightColumnCount??0,e.rowCheckboxVisible===void 0?!1:e.rowCheckboxVisible,e.defaultRowHeights,e.columnDefs??[],e.columnSizes??[],e.overridingColumnWidth??-1,e.columnCount??0)}static createByObjectArray(e,r=[],a=[],t=0,n=0,m=!1,d=new R,i,u=[]){let p;r!=null&&r.length?p=new S("header",r,d.header,i):i!=null&&i.length?p=new S("header",[i.map(G=>G.headerLabel)],d.header,i):p=new Z;const c=a?new S("footer",a,d.footer,i):new Z,N=new I("body",e,i,d.body);return new W(p,N,c,t,n,m,d,i,u)}}class H{constructor(e,r){this.tableModel=e,this.tableOptions=r}}class Y{constructor(e,r){this.value=e,this.label=r}}class ir{constructor(){this.autoRestoreSortingState=!1,this.autoRestoreCollapsedExpandedState=!1,this.autoRestoreScrollPosition=!1,this.autoRestoreCheckedState=!1,this.autoRestoreSelectedState=!1,this.getStorageKeyFn=void 0,this.isSame=(e,r,a)=>{if(e&&r&&a.getRowId){const t=a.getRowId(e),n=a.getRowId(r);return t===n}return!1},this.getRowId=e=>{if(e){for(const r of["id","uuid"]){const a=e[r];if(a!=null)return a}try{return JSON.stringify(e)}catch(r){console.error(r)}}return console.warn('One of following options set to true without a valid "getRowId()": autoRestoreExpandedState, autoRestoreCheckedState.'),-1}}}class dr{constructor(e,r,a,t=!1,n="normal",m=void 0){this.data=e,this.property=r,this.toggle=a,this.closed=t,this.visibility=n,this.children=m,this.impl="CellGroup"}}class yr extends dr{constructor(e,r=0,a=0,t){super(e.data,e.property,e.toggle,e.closed,e.visibility,e.children),this.rowIndex=r,this.childIndex=a,this.parent=t,this.impl="CellGroupExt",this.children=void 0,this.leftNeighbour=void 0,this.rightNeighbour=void 0}ownColumn(){return!!this.property}toString(){return this.data+""}getColumnIndex(){return this.parent?this.parent.getColumnIndex()+this.childIndex:(this.leftNeighbour,0)}isVisible(){return this.parent?this.visibility==="always"?this.parent.isVisible():this.visibility==="normal"||!this.visibility?this.parent.isVisible()&&!this.parent.closed:this.visibility==="inverted"?this.parent.isVisible()&&this.parent.closed:!0:!0}claimsSpace(){return this.isVisible()&&(this.ownColumn()||this.closed)}getColumnCount(e=this,r=0){var a;if(e!=null&&e.claimsSpace()&&r++,(a=e==null?void 0:e.children)!=null&&a.length)for(const t of e.children)r=this.getColumnCount(t,r);return r}getRowSpan(e=this,r){return e!=null&&e.claimsSpace()?r-this.getParentCount(e,0):1}getParentCount(e=this,r=0){return e.parent&&(r=r+1+this.getParentCount(e.parent,r)),r}log(e=10){const r=" ".substring(0,2*this.rowIndex),a=`${this.getColumnIndex()}`,t=`${this.getColumnCount(this)}`,n=`${this.getRowSpan(this,e)}`,m=`${this.getParentCount(this)}`,d=`${r+this.data}
242
+ }`};let se=$;class ie{constructor(e,r=!0,a,t,n=0,m=!1,d=!1){this.data=e,this.expanded=r,this.children=a,this.parent=t,this.deep=n,this.checked=m,this.keep=d,this.type="TreeRow"}}class U{static buildTreeRows(e,r="children",a=12){const t=[];for(const n of e)t.push(U.buildTreeRow(n,r,void 0,0,a));return t}static buildTreeRow(e,r="children",a=new ie(e,!0,[],void 0,0),t=0,n=12){var d;if(t>n)return console.warn("Max deep limit reached: ",t),a;const m=e[r];if(m)for(const i of m){const u=new ie(i,!0,[],a,t+1);if((d=a.children)==null||d.push(u),U.buildTreeRow(i,r,u,t+1),t>n)return console.warn("Max deep limit reached: ",t),a}return a}}class R{constructor(e=34,r=34,a=34){this.header=e,this.body=r,this.footer=a}}class l{constructor(e=100,r="px"){this.value=e,this.unit=r}}const g=()=>!0,B=()=>!1;class y{constructor(e,r,a=new l(100,"px"),t=new C,n=new C,m=new l(100,"px"),d=new l(100,"px"),i,u,p,c,N,G,v,k,b=()=>this.visible){this.property=e,this.headerLabel=r,this.width=a,this.classes=t,this.rendererMap=n,this.minWidth=m,this.maxWidth=d,this.sortable=i,this.sortComparator=u,this.sortState=p,this.sortStatesOrder=c,this.sortIconVisible=N,this.editable=G,this.getEditRenderer=v,this.editInputPipe=k,this.isVisible=b,this.visible=!0,a.unit!=="px"&&(this.minWidth=new l(0,"px"),this.maxWidth=new l(1e5,"px"))}static bodyRenderer(e){return new C(void 0,e,void 0)}static create(e){const r=new C(e.headerRenderer,e.bodyRenderer,e.footerRenderer),a=new C(e.headerClasses,e.bodyClasses,e.footerClasses),t=e.sortIconVisible??e.sortable??B,n=e.editable??e.editable??B,m=e.isVisible??e.isVisible??g;return new y(e.property??"",e.headerLabel??"",e.width??new l(100,"px"),a,r,e.minWidth??new l(100,"px"),e.maxWidth??new l(100,"px"),e.sortable,e.sortComparator,e.sortState,e.sortStatesOrder,t,n,e.getEditRenderer,e.editInputPipe,m)}}const Qe=new l(300,"px"),er=new l(250,"px"),fe=new l(220,"px"),A=new l(200,"px"),rr=new l(160,"px"),Te=new l(150,"px"),re=new l(140,"px"),L=new l(120,"px"),T=new l(100,"px"),oe=new l(90,"px"),he=new l(80,"px"),ar=new l(70,"px"),x=new l(60,"px"),tr=new l(50,"px");class ae{constructor(e,r=[],a=-1){this.areaIdent=e,this.columnDefs=r,this.defaultRowHeight=a,this.rowSelectionModel=void 0,this.yPositions=[],this.cellRenderers=r.map(t=>t.rendererMap[e])}getTextValueAt(e,r){return""+this.getValueAt(e,r)}getTooltipAt(e,r){return""}getCellRenderer(e,r){if(r<this.cellRenderers.length)return this.cellRenderers[r]}getColspanAt(e,r){return 0}getCustomClassesAt(e,r){return[]}getCustomStyleAt(e,r){}getRowspanAt(e,r){return 0}getRowByIndex(e){}isRowCheckable(e){return!0}isRowChecked(e){var a;const r=this.getRowByIndex(e);return(a=this.rowSelectionModel)==null?void 0:a.isRowChecked(r)}setRowChecked(e,r){if(this.rowSelectionModel){const a=this.getRowByIndex(e);this.rowSelectionModel.checkRow(a,r)}}getMaxColspan(){return 31}getMaxRowspan(){return 31}getYPosByRowIndex(e){return this.defaultRowHeight>0?this.defaultRowHeight*e:this.yPositions[e]}init(){!this.yPositions.length&&this.getRowCount()!==void 0&&this.defaultRowHeight===-1&&this.calcYPositions()}isFilterable(){return this.areaIdent==="body"}doSort(e){return!1}isEditable(e,r){var t,n;const a=(t=this.columnDefs)==null?void 0:t[r];return((n=a==null?void 0:a.editable)==null?void 0:n.call(a))??!1}setValue(e,r,a){var d;const t=(d=this.columnDefs[r])==null?void 0:d.editInputPipe;t&&(a=t(a,e,r));const n=this.getRowByIndex(e),m=this.columnDefs[r].property;return m.includes(".")?this.setPropertyValue(n,m.split("."),a):(n[m]=a,!0)}isSelectable(e,r){return!0}changeColumnOrder(e,r){this.arrayMove(this.cellRenderers,e,r)}setPropertyValue(e,r,a){const t=r.shift();if(t){const n=e[t];return n&&r.length?this.setPropertyValue(n,r,a):(e[t]=a,!0)}return!1}arrayMove(e,r,a){const t=e.splice(r,1)[0];return e.splice(a,0,t),e}calcYPositions(){const e=this.getRowCount();this.yPositions=new Array(e+1),this.yPositions[0]=0;for(let r=0;r<e;r++)this.yPositions[r+1]=this.getRowHeight(r)+this.yPositions[r]}}class S extends ae{constructor(e,r,a,t=[]){super(e,t,a),this.areaIdent=e,this.arr=r,this.defaultRowHeight=a,this.columnDefs=t,this.filteredArr=[...r]}externalFilterChanged(e){this.filteredArr=this.arr?this.arr.filter(e):[]}getRowCount(){return this.filteredArr?this.filteredArr.length:0}getValueAt(e,r){return this.filteredArr[e][r]}setValue(e,r,a){var n;const t=(n=this.columnDefs[r])==null?void 0:n.editInputPipe;return t&&(a=t(a,e,r)),this.arr[e][r]=a,!0}getRowByIndex(e){return this.filteredArr[e]}getRowHeight(e){return this.defaultRowHeight}changeColumnOrder(e,r){this.filteredArr.forEach(a=>this.arrayMove(a,e,r)),super.changeColumnOrder(e,r)}}class Z{constructor(e="body"){this.areaIdent=e,this.rowSelectionModel=void 0}getRowCount(){return 0}getValueAt(e,r){return""}getTextValueAt(e,r){return""}getCellRenderer(e,r){}getRowHeight(e){return 0}getColspanAt(e,r){return 0}getCustomClassesAt(e,r){return[]}getCustomStyleAt(e,r){}getRowspanAt(e,r){return 0}getRowByIndex(e){}isRowCheckable(e){return!1}isRowChecked(e){}setRowChecked(e,r){}getTooltipAt(e,r){return""}getMaxColspan(){return 0}getMaxRowspan(){return 0}getYPosByRowIndex(e){return 0}init(){}externalFilterChanged(e){}isFilterable(){return!1}doSort(e){return!1}isEditable(e,r){return!1}setValue(e,r,a){return!1}isSelectable(e,r){return!1}changeColumnOrder(e,r){}}class nr{flattenTree(e,r=[]){var a;for(const t of e)this.isVisible(t)&&r.push(t),(a=t.children)!=null&&a.length&&this.flattenTree(t.children,r);return r}isVisible(e){return e.parent?e.parent.expanded?this.isVisible(e.parent):!1:!0}}class Se{genericSortComparator(e,r,a){if(typeof e=="number"&&typeof r=="number")return a*(e-r);if(typeof e=="string"&&typeof r=="string")return a*e.localeCompare(r);if(typeof e=="boolean"&&typeof r=="boolean")return a*((e?-1:1)-(r?-1:1));if(e instanceof Date&&r instanceof Date)return a*(e.getTime()-r.getTime());if(e instanceof Array&&r instanceof Array){const t=e,n=r;if(t.length&&n.length)return this.genericSortComparator(t[0],n[0],a)}return a*(""+e).localeCompare(""+r)}}class de extends ae{constructor(e,r,a,t=[]){super(e,t,a),this.areaIdent=e,this.rows=r,this.defaultRowHeight=a,this.columnDefs=t,this.type="AreaModelTree",this.sorterService=new Se,this.service=new nr,this.properties=t.map(n=>n.property),this.flattenRows=this.service.flattenTree(r),this.filteredFlattenRows=[...this.flattenRows]}changeColumnOrder(e,r){this.arrayMove(this.properties,e,r),super.changeColumnOrder(e,r)}recalcVisibleTreeRows(){this.filteredFlattenRows=this.service.flattenTree(this.rows)}getFilteredFlattenRows(){return this.filteredFlattenRows}getRowCount(){let e=0;for(const r of this.filteredFlattenRows)this.service.isVisible(r)&&e++;return e}getValueAt(e,r){const a=this.getRowByIndex(e);if(a){const t=this.properties[r];if(t)return t.includes(".")?this.getPropertyValue(a.data,t.split(".")):a.data[t]}return""}getRowHeight(e){return this.defaultRowHeight}getCustomClassesAt(e,r){return["ge-table-tree-cell","ge-table-tree-deep-"+this.filteredFlattenRows[e].deep]}getRowByIndex(e){return this.filteredFlattenRows[e]}getValueByT(e,r){return r.includes(".")?this.getPropertyValue(e,r.split(".")):e[r]}externalFilterChanged(e){this.lastPredictFn=e,this.doFiltering()}doSort(e){const{columnIndex:r,sortState:a}=e[e.length-1],t=a==="asc"?1:a==="desc"?-1:0,n=this.properties[r];return this.treeSort(this.rows,n,t),this.flattenRows=this.service.flattenTree(this.rows),this.filteredFlattenRows=[...this.flattenRows],!0}toggleExpandCollapseAll(e){this.expandAllRecursive(this.rows,e),this.flattenRows=this.service.flattenTree(this.rows),this.doFiltering()}setAllParentsOk(e){return e.parent&&(e.parent.keep=!0,this.setAllParentsOk(e.parent)),!1}setValue(e,r,a){var m;const t=(m=this.columnDefs[r])==null?void 0:m.editInputPipe;t&&(a=t(a,e,r));const n=this.getRowByIndex(e);if(n){const d=n.data,i=this.columnDefs[r].property;return i.includes(".")?this.setPropertyValue(d,i.split("."),a):(d[i]=a,!0)}return!1}genericTreeTableSortComparator(e,r){return(a,t)=>{const n=this.getValueByT(a.data,e),m=this.getValueByT(t.data,e);return this.sorterService.genericSortComparator(n,m,r)}}expandAllRecursive(e,r){for(const a of e)a.expanded=r,a.children&&this.expandAllRecursive(a.children,r)}doFiltering(){if(!this.lastPredictFn)this.filteredFlattenRows=[...this.flattenRows?this.flattenRows:[]];else{this.flattenRows||(this.flattenRows=[]);let e=0;this.flattenRows.forEach(a=>{e=Math.max(e,a.deep)});const r=this.flattenRows.filter((a,t,n)=>this.lastPredictFn(a,t,n));this.flattenRows.forEach(a=>a.keep=!1),this.flattenRows.forEach(a=>{r.includes(a)&&(a.keep=!0,this.setAllParentsOk(a))}),this.filteredFlattenRows=this.flattenRows.filter((a,t,n)=>a.keep)}}getPropertyValue(e,r){const a=r.shift();let t=e[a];return t&&r.length?this.getPropertyValue(t,r):t}treeSort(e,r,a){e.sort(this.genericTreeTableSortComparator(r,a));for(const t of e)t.children&&this.treeSort(t.children,r,a)}}class ye{constructor(e=[]){this.allRootNodes=e}checkRow(e,r){if(e.checked=r,e.children)for(const a of e.children)this.checkRow(a,r);this.autoCheckParent(e.parent)}checkAll(e){for(const r of this.allRootNodes)r.checked=!1,r.children&&this.checkAll(r.children)}getCheckedRows(){const e=[];return this.addSelectedRecursive(this.allRootNodes,e),e}isRowChecked(e){if(e.checked)return"full";const r=this.areAllChildrenChecked(e),a=this.areAllChildrenUnchecked(e);return!r&&!a?"semi":"none"}setCheckedRows(e){this.addCheckedRows(e)}addCheckedRows(e){for(const r of e)r.checked=!0}autoCheckParent(e){if(e){const r=this.areAllChildrenChecked(e),a=this.areAllChildrenUnchecked(e);r?e.checked=!0:e.checked=!1,this.autoCheckParent(e.parent)}}areAllChildrenChecked(e){var r,a;if((r=e.children)!=null&&r.length){for(const t of e.children)if(!t.checked||(a=t.children)!=null&&a.length&&!this.areAllChildrenChecked(t))return!1}return!0}areAllChildrenUnchecked(e){var r,a;if((r=e.children)!=null&&r.length){for(const t of e.children)if(t.checked||(a=t.children)!=null&&a.length&&!this.areAllChildrenUnchecked(t))return!1}return!0}addSelectedRecursive(e,r){for(const a of e)a.checked&&r.push(a),a.children&&this.addSelectedRecursive(a.children,r)}}class ue{constructor(e=0,r=0,a=0,t=0){this.top=e,this.right=r,this.bottom=a,this.left=t}}class mr{constructor(){this.checkedRows=[]}getCheckedRows(){return this.checkedRows}setCheckedRows(e){this.checkedRows=e}addCheckedRows(e){this.checkedRows||(this.checkedRows=[]);for(const r of e)this.checkedRows.includes(r)||this.checkedRows.push(r)}checkRow(e,r){this.checkedRows||(this.checkedRows=[]),r?this.checkedRows.includes(e)||this.checkedRows.push(e):this.removeSelectedRow(e)}isRowChecked(e){return this.checkedRows&&this.checkedRows.includes(e)?"full":"none"}checkAll(e){this.checkedRows=[]}removeSelectedRow(e){if(this.checkedRows){const r=this.checkedRows.indexOf(e);r>-1&&this.checkedRows.splice(r,1)}}}class W{constructor(e,r,a,t=0,n=0,m=!1,d=new R,i=[],u=[],p=-1,c=0,N=400,G=()=>{}){var v,k,b,F;this.headerAreaModel=e,this.bodyAreaModel=r,this.footerAreaModel=a,this.fixedLeftColumnCount=t,this.fixedRightColumnCount=n,this.rowCheckboxVisible=m,this.defaultRowHeights=d,this.columnDefs=i,this.columnSizes=u,this.overridingColumnWidth=p,this.columnCount=c,this.parentSize=N,this.getSelectionModel=G,this.rowCount=0,this.contentHeightInPx=0,this.contentWidthInPx=0,this.padding=new ue(0,0,0,0),this.xPositions=[],e.areaIdent="header",r.areaIdent="body",a.areaIdent="footer",this.columnCount||((v=this.columnDefs)!=null&&v.length?this.columnCount=this.columnDefs.length:(k=this.columnSizes)!=null&&k.length&&(this.columnCount=(b=this.columnSizes)==null?void 0:b.length)),(F=this.columnDefs)!=null&&F.length&&Fe(this.columnDefs[0])&&!r.rowSelectionModel&&(r.rowSelectionModel=new mr)}init(){this.recalcSize(this.parentSize),this.overridingColumnWidth===-1&&this.calcXPositions(),this.headerAreaModel&&this.headerAreaModel.init(),this.bodyAreaModel&&this.bodyAreaModel.init(),this.footerAreaModel&&this.footerAreaModel.init()}setParentWidth(e){this.parentSize=e}getColumnCount(){return this.columnCount}setColumnWidth(e,r){var a;r=Math.max(0,r),this.overridingColumnWidth!==-1&&(this.overridingColumnWidth=r),e>-1&&e<((a=this.columnSizes)==null?void 0:a.length)&&(this.columnSizes[e]=r),this.recalcContentWidthInPx()}getColumnWidth(e){var a;const r=this.getColumnDef(e);return r&&r.isVisible&&!r.isVisible()?0:this.overridingColumnWidth!==-1?this.overridingColumnWidth:e>-1&&e<((a=this.columnSizes)==null?void 0:a.length)?this.columnSizes[e]:0}getXPosByColumnIndex(e){return e===0?0:this.overridingColumnWidth>-1?this.overridingColumnWidth*e:this.xPositions[e]}recalcSize(e){this.recalcColumnWidths(e),this.recalcHeightAndPadding()}recalcHeightAndPadding(){const e=this.getAreaModel("body");this.rowCount=e.getRowCount(),this.contentHeightInPx=this.getAreaHeight("body"),this.recalcContentWidthInPx(),this.recalcPadding()}recalcPadding(){const e=this.getSideAreaWidth("west"),r=this.getSideAreaWidth("east"),a=this.getAreaHeight("header"),t=this.getAreaHeight("footer");this.padding=new ue(a,r,t,e)}getPadding(){return this.padding}getContentHeightInPixel(){return this.contentHeightInPx}getContentWidthInPixel(){return this.contentWidthInPx}getRowHeight(e,r){return this.getAreaModel(e).getRowHeight(r)}getModel(e){return this.getAreaModel(e)}getAreaHeight(e){const r=this.getModel(e),a=r.getRowCount();if(this.defaultRowHeights[e])return a*this.defaultRowHeights[e];let t=0;for(let n=0;n<a;n++)t=t+r.getRowHeight(n);return t}getSideAreaWidth(e){const[r,a]=this.getSideStartAndEndColumnIndex(e);let t=0;for(let n=r;n<=a;n++)t=t+this.getColumnWidth(n);return t}getSideStartAndEndColumnIndex(e){const r=this.getFixedLeftColumnCount(),a=this.getFixedRightColumnCount();let t=0,n=this.columnCount-1;return e==="west"?n=r-1:e==="east"?t=this.columnCount-a:(t=r,n=this.columnCount-a-1),[t,n]}getColumnDef(e){if(e<this.columnDefs.length)return this.columnDefs[e]}getFixedLeftColumnCount(){return this.fixedLeftColumnCount}getFixedRightColumnCount(){return this.fixedRightColumnCount}getAreaModel(e){if(e==="header")return this.headerAreaModel;if(e==="body")return this.bodyAreaModel;if(e==="footer")return this.footerAreaModel;throw new Error("Wrong ident.")}getBodyModel(){return this.bodyAreaModel}isFooterVisibe(){var e;return(((e=this.footerAreaModel)==null?void 0:e.getRowCount())??0)>0}isHeaderVisibe(){var e;return(((e=this.headerAreaModel)==null?void 0:e.getRowCount())??0)>0}isRowCheckboxVisible(){return this.rowCheckboxVisible}externalFilterChanged(e){this.getAreaModel("body").externalFilterChanged(e)}doSort(e){return this.getAreaModel("body").doSort(e)}getColumnDefs(){return this.columnDefs}getColumnProperty(e){return this.columnDefs?this.columnDefs[e].property:""}getBodyRowByIndex(e){return this.getBodyModel().getRowByIndex(e)}isSortable(e){var r;if(this.columnDefs&&e<this.columnDefs.length){const a=(r=this.columnDefs[e])==null?void 0:r.sortable;if(typeof a=="function")return a()}return!1}changeColumnOrder(e,r){var a,t,n;this.arrayMove(this.columnDefs,e,r),this.arrayMove(this.columnSizes,e,r),(a=this.headerAreaModel)==null||a.changeColumnOrder(e,r),(t=this.bodyAreaModel)==null||t.changeColumnOrder(e,r),(n=this.footerAreaModel)==null||n.changeColumnOrder(e,r),this.calcXPositions()}recalcColumnWidths(e){var r,a,t;if(!((r=this.columnDefs)!=null&&r.length)&&!((a=this.columnSizes)!=null&&a.length)&&(this.columnSizes=new Array(this.getColumnCount()).fill(this.overridingColumnWidth)),(t=this.columnDefs)!=null&&t.length){const n=this.columnDefs.filter(i=>{var u;return((u=i.width)==null?void 0:u.unit)==="weight"});this.columnSizes=this.columnDefs.map(i=>{if(i.width.unit==="%"&&e){let u=Math.floor(i.width.value*e/100);if(i.minWidth){const p=this.sizeToPixel(i.minWidth,e);u=Math.max(p,u)}if(i.maxWidth){const p=this.sizeToPixel(i.maxWidth,e);u=Math.min(p,u)}return u}else if(i.width.unit==="px"&&e)return i.width.value;return 0});const m=this.columnSizes.reduce((i,u)=>i+u),d=e-m;if(d>0&&n.length){const i=n.map(u=>u.width.value).reduce((u,p)=>u+p);for(let u=0;u<this.columnDefs.length;u++){const p=this.columnDefs[u];p.width.unit==="weight"&&(this.columnSizes[u]=p.width.value*d/i)}}}}sizeToPixel(e,r){return e.unit==="px"?e.value:e.unit==="%"?Math.floor(e.value*r/100):-1}arrayMove(e,r,a){const t=e.splice(r,1)[0];return e.splice(a,0,t),e}recalcContentWidthInPx(){this.contentWidthInPx=this.getSideAreaWidth("center")}calcXPositions(){const e=this.getColumnCount();this.xPositions=new Array(e+1),this.xPositions[0]=0;for(let r=0;r<e;r++)this.xPositions[r+1]=this.getColumnWidth(r)+this.xPositions[r]}setTableScope(e){this.tableScope=e}getTableScope(){return this.tableScope}}class sr extends ae{constructor(e,r,a,t=[]){super(e,t,a),this.areaIdent=e,this.rows=r,this.defaultRowHeight=a,this.columnDefs=t,this.sorterService=new Se,this.filteredRows=[...r],this.properties=t.map(n=>n.property)}setRows(e){this.rows=e,this.filteredRows=[...e]}filterRowsByPredict(e){this.rows=this.rows.filter(e),this.filteredRows=this.filteredRows.filter(e)}getRowCount(){var e;return((e=this.filteredRows)==null?void 0:e.length)??0}getValueAt(e,r){const a=this.properties[r];let t=this.filteredRows[e];return X(t)&&(t=t.data),t?this.getValueByT(t,a):""}getFilteredRows(){return this.filteredRows}getAllRows(){return this.rows}getRowHeight(e){return this.defaultRowHeight}getRowByIndex(e){return this.filteredRows[e]}externalFilterChanged(e){this.filteredRows=this.rows?this.rows.filter(e):[]}doSort(e){for(const r of e){const{columnIndex:a,sortState:t}=r,n=t==="asc"?1:t==="desc"?-1:0,m=this.properties[a];this.filteredRows=this.filteredRows.sort(this.genericFlatTableSortComparator(m,n))}return!0}getValueByT(e,r){return r.includes(".")?this.getPropertyValue(e,r.split(".")):e[r]}changeColumnOrder(e,r){this.arrayMove(this.properties,e,r),super.changeColumnOrder(e,r)}genericFlatTableSortComparator(e,r){return(a,t)=>{const n=this.getValueByT(a,e),m=this.getValueByT(t,e);return this.sorterService.genericSortComparator(n,m,r)}}getPropertyValue(e,r){const a=r.shift(),t=e[a];return t&&r.length?this.getPropertyValue(t,r):t}}class I extends sr{constructor(e,r,a,t){super(e,r,t,a),this.areaIdent=e,this.rows=r,this.columnDefs=a,this.defaultRowHeight=t}}class f{static createTableModel(e){var r,a,t,n,m,d,i,u,p,c,N,G,v,k;if(e.defaultRowHeights===void 0)if((r=e.tableOptions)!=null&&r.defaultRowHeights)e.defaultRowHeights=e.tableOptions.defaultRowHeights;else{if(e.defaultRowHeights=new R,e.headerAreaModel&&"defaultRowHeight"in e.headerAreaModel){const b=e.headerAreaModel.defaultRowHeight;b>-1&&(e.defaultRowHeights.header=b)}if(e.bodyAreaModel&&"defaultRowHeight"in e.bodyAreaModel){const b=e.bodyAreaModel.defaultRowHeight;b>-1&&(e.defaultRowHeights.body=b)}if(e.footerAreaModel&&"defaultRowHeight"in e.footerAreaModel){const b=e.footerAreaModel.defaultRowHeight;b>-1&&(e.defaultRowHeights.footer=b)}}if(e.columnDefs===void 0&&((a=e.properties)!=null&&a.length?e.columnDefs=e.properties.map(b=>new y(b,b.toUpperCase(),A)):(t=e.rows)!=null&&t.length?e.columnDefs=Object.keys(e.rows[0]).map(b=>new y(b,b.toUpperCase(),A)):e.columnDefs=[]),e.columnCount===void 0&&((n=e.columnDefs)!=null&&n.length?e.columnCount=e.columnDefs.length:(m=e.headerData)!=null&&m.length?e.columnCount=e.headerData[0].length:(d=e.columnSizes)!=null&&d.length?e.columnCount=(i=e.columnSizes)==null?void 0:i.length:console.warn('Property "columnCount" is missing and cannot be derived from other properties.')),e.headerAreaModel||((u=e.headerData)!=null&&u.length?e.headerAreaModel=new S("header",e.headerData,e.defaultRowHeights.header,e.columnDefs):(p=e.columnDefs)!=null&&p.length?e.headerAreaModel=new S("header",[e.columnDefs.map(b=>b.headerLabel)],e.defaultRowHeights.header,e.columnDefs):e.headerAreaModel=new Z("header")),e.footerAreaModel||((c=e.footerData)!=null&&c.length?e.footerAreaModel=new S("footer",e.footerData,e.defaultRowHeights.footer,e.columnDefs):e.footerAreaModel=new Z("footer")),!e.bodyAreaModel)if(e.rows)if((N=e.rows)!=null&&N.length&&X(e.rows[0])){const b=e.rows;e.bodyAreaModel=new de("body",b,e.defaultRowHeights.body,e.columnDefs),(e.columnDefs[0].property==="CheckboxColumn"||(G=e.tableOptions)!=null&&G.showCheckboxWihoutExtraColumn)&&(e.bodyAreaModel.rowSelectionModel=new ye(b))}else e.bodyAreaModel=new I("body",e.rows,e.columnDefs,e.defaultRowHeights.body);else e.bodyData?e.bodyAreaModel=new S("body",e.bodyData,e.defaultRowHeights.body):e.bodyAreaModel=new Z("body");return e.fixedLeftColumnCount===void 0&&(e.fixedLeftColumnCount=0),e.fixedRightColumnCount===void 0&&(e.fixedRightColumnCount=0),e.rowCheckboxVisible===void 0&&(e.rowCheckboxVisible=!1),e.overridingColumnWidth===void 0&&(e.overridingColumnWidth=-1),!e.getSelectionModel&&((v=e.tableOptions)!=null&&v.getSelectionModel)&&(e.getSelectionModel=(k=e.tableOptions)==null?void 0:k.getSelectionModel),new W(e.headerAreaModel,e.bodyAreaModel,e.footerAreaModel,e.fixedLeftColumnCount,e.fixedRightColumnCount,e.rowCheckboxVisible,e.defaultRowHeights,e.columnDefs,e.columnSizes,e.overridingColumnWidth,e.columnCount,e.parentSize,e.getSelectionModel)}static buildByTypedRowsParam(e){return f.buildByTypedRows(e.rows??[],e.columnDefs,e.tableOptions??new z,e.fixedLeftColumnCount??0,e.fixedRightColumnCount??0)}static buildByTypedRows(e,r,a=new z,t=0,n=0){const m=a.defaultRowHeights,d=r[0].property==="CheckboxColumn";if(e!=null&&e.length&&X(e[0])){const u=e,p=new de("body",u,m.body,r);return(d||a.showCheckboxWihoutExtraColumn)&&(p.rowSelectionModel=new ye(u)),f.createByAreaModelsParam({headerAreaModel:new S("header",[r.map(c=>c.headerLabel)],m.header),bodyAreaModel:p,footerAreaModel:new S("footer",[],m.footer),columnDefs:r,fixedLeftColumnCount:t,fixedRightColumnCount:n,defaultRowHeights:a.defaultRowHeights,rowCheckboxVisible:!1,columnSizes:[],columnCount:r.length,overridingColumnWidth:-1})}return f.createByObjectArrayParam({rows:e,columnDefs:r,fixedLeftColumnCount:t,fixedRightColumnCount:n,defaultRowHeights:a.defaultRowHeights})}static createByObjectArrayParam(e){const r=e.rowCheckboxVisible!==void 0?e.rowCheckboxVisible:!1;return f.createByObjectArray(e.rows,e.header??[],e.footer??[],e.fixedLeftColumnCount??0,e.fixedRightColumnCount??0,r,e.defaultRowHeights??new R,e.columnDefs??[],e.columnSizes??[])}static createByAreaModels(e=new Z,r,a=new Z,t=0,n=0,m=!1,d=new R,i,u=[],p=-1,c){return new W(e,r,a,t,n,m,d,i,u,p,c)}static createByAreaModelsParam(e){return f.createByAreaModels(e.headerAreaModel??new Z,e.bodyAreaModel,e.footerAreaModel??new Z,e.fixedLeftColumnCount??0,e.fixedRightColumnCount??0,e.rowCheckboxVisible===void 0?!1:e.rowCheckboxVisible,e.defaultRowHeights,e.columnDefs??[],e.columnSizes??[],e.overridingColumnWidth??-1,e.columnCount??0)}static createByObjectArray(e,r=[],a=[],t=0,n=0,m=!1,d=new R,i,u=[]){let p;r!=null&&r.length?p=new S("header",r,d.header,i):i!=null&&i.length?p=new S("header",[i.map(G=>G.headerLabel)],d.header,i):p=new Z;const c=a?new S("footer",a,d.footer,i):new Z,N=new I("body",e,i,d.body);return new W(p,N,c,t,n,m,d,i,u)}}class H{constructor(e,r){this.tableModel=e,this.tableOptions=r}}class Y{constructor(e,r){this.value=e,this.label=r}}class ir{constructor(){this.autoRestoreSortingState=!1,this.autoRestoreCollapsedExpandedState=!1,this.autoRestoreScrollPosition=!1,this.autoRestoreCheckedState=!1,this.autoRestoreSelectedState=!1,this.getStorageKeyFn=void 0,this.isSame=(e,r,a)=>{if(e&&r&&a.getRowId){const t=a.getRowId(e),n=a.getRowId(r);return t===n}return!1},this.getRowId=e=>{if(e){for(const r of["id","uuid"]){const a=e[r];if(a!=null)return a}try{return JSON.stringify(e)}catch(r){console.error(r)}}return console.warn('One of following options set to true without a valid "getRowId()": autoRestoreExpandedState, autoRestoreCheckedState.'),-1}}}class dr{constructor(e,r,a,t=!1,n="normal",m=void 0){this.data=e,this.property=r,this.toggle=a,this.closed=t,this.visibility=n,this.children=m,this.impl="CellGroup"}}class yr extends dr{constructor(e,r=0,a=0,t){super(e.data,e.property,e.toggle,e.closed,e.visibility,e.children),this.rowIndex=r,this.childIndex=a,this.parent=t,this.impl="CellGroupExt",this.children=void 0,this.leftNeighbour=void 0,this.rightNeighbour=void 0}ownColumn(){return!!this.property}toString(){return this.data+""}getColumnIndex(){return this.parent?this.parent.getColumnIndex()+this.childIndex:(this.leftNeighbour,0)}isVisible(){return this.parent?this.visibility==="always"?this.parent.isVisible():this.visibility==="normal"||!this.visibility?this.parent.isVisible()&&!this.parent.closed:this.visibility==="inverted"?this.parent.isVisible()&&this.parent.closed:!0:!0}claimsSpace(){return this.isVisible()&&(this.ownColumn()||this.closed)}getColumnCount(e=this,r=0){var a;if(e!=null&&e.claimsSpace()&&r++,(a=e==null?void 0:e.children)!=null&&a.length)for(const t of e.children)r=this.getColumnCount(t,r);return r}getRowSpan(e=this,r){return e!=null&&e.claimsSpace()?r-this.getParentCount(e,0):1}getParentCount(e=this,r=0){return e.parent&&(r=r+1+this.getParentCount(e.parent,r)),r}log(e=10){const r=" ".substring(0,2*this.rowIndex),a=`${this.getColumnIndex()}`,t=`${this.getColumnCount(this)}`,n=`${this.getRowSpan(this,e)}`,m=`${this.getParentCount(this)}`,d=`${r+this.data}
243
243
  childIndex:${this.childIndex}
244
244
  row:${this.rowIndex}
245
245
  col:${a}
package/index.js CHANGED
@@ -1453,6 +1453,12 @@ class W {
1453
1453
  for (let r = 0; r < e; r++)
1454
1454
  this.xPositions[r + 1] = this.getColumnWidth(r) + this.xPositions[r];
1455
1455
  }
1456
+ setTableScope(e) {
1457
+ this.tableScope = e;
1458
+ }
1459
+ getTableScope() {
1460
+ return this.tableScope;
1461
+ }
1456
1462
  }
1457
1463
  class Ee extends ae {
1458
1464
  constructor(e, r, a, t = []) {
@@ -1461,6 +1467,9 @@ class Ee extends ae {
1461
1467
  setRows(e) {
1462
1468
  this.rows = e, this.filteredRows = [...e];
1463
1469
  }
1470
+ filterRowsByPredict(e) {
1471
+ this.rows = this.rows.filter(e), this.filteredRows = this.filteredRows.filter(e);
1472
+ }
1464
1473
  getRowCount() {
1465
1474
  var e;
1466
1475
  return ((e = this.filteredRows) == null ? void 0 : e.length) ?? 0;
@@ -1694,15 +1703,15 @@ class f {
1694
1703
  static buildByTypedRows(e, r, a = new z(), t = 0, n = 0) {
1695
1704
  const m = a.defaultRowHeights, d = r[0].property === "CheckboxColumn";
1696
1705
  if (e != null && e.length && X(e[0])) {
1697
- const i = e, u = new de(
1706
+ const u = e, p = new de(
1698
1707
  "body",
1699
- i,
1708
+ u,
1700
1709
  m.body,
1701
1710
  r
1702
1711
  );
1703
- return (d || a.showCheckboxWihoutExtraColumn) && (u.rowSelectionModel = new ye(i)), f.createByAreaModelsParam({
1704
- headerAreaModel: new S("header", [r.map((p) => p.headerLabel)], m.header),
1705
- bodyAreaModel: u,
1712
+ return (d || a.showCheckboxWihoutExtraColumn) && (p.rowSelectionModel = new ye(u)), f.createByAreaModelsParam({
1713
+ headerAreaModel: new S("header", [r.map((c) => c.headerLabel)], m.header),
1714
+ bodyAreaModel: p,
1706
1715
  footerAreaModel: new S("footer", [], m.footer),
1707
1716
  columnDefs: r,
1708
1717
  fixedLeftColumnCount: t,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guiexpert/demo-table-models",
3
- "version": "1.0.24",
3
+ "version": "1.0.35",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",
@@ -18,7 +18,7 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "tslib": "^2.3.0",
21
- "@guiexpert/table": "^1.1.31"
21
+ "@guiexpert/table": "^1.1.36"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^20.11.17",