@hpcc-js/dgrid 3.5.9 → 3.6.0

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.
@@ -1,3 +1,3 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@hpcc-js/common"),require("@hpcc-js/util")):"function"==typeof define&&define.amd?define(["exports","@hpcc-js/common","@hpcc-js/util"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@hpcc-js/dgrid"]={},t["@hpcc-js/common"],t["@hpcc-js/util"])}(this,function(t,e,s){"use strict";var r=Object.defineProperty,i=(t,e)=>r(t,"name",{value:e,configurable:!0});globalThis["@hpcc-js/dgrid-shim"]||console.error('dgrid-shim not loaded, please add `<script src="https://cdn.jsdelivr.net/npm/@hpcc-js/dgrid-shim/dist/index.min.js"><\/script>` or similar to your HTML file');const o=globalThis["@hpcc-js/dgrid-shim"].Deferred,n=globalThis["@hpcc-js/dgrid-shim"].Memory,l=globalThis["@hpcc-js/dgrid-shim"].QueryResults,a=globalThis["@hpcc-js/dgrid-shim"].Grid,h=globalThis["@hpcc-js/dgrid-shim"].PagingGrid,c=globalThis["@hpcc-js/dgrid-shim"].domConstruct;function d(t){return String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function u(t){switch(Object.prototype.toString.call(t)){case"[object Undefined]":case"[object Boolean]":case"[object Number]":return t;case"[object String]":return d(t);default:console.warn("Unknown cell type: "+Object.prototype.toString.call(t))}return t}function p(t){return t instanceof Array}i(d,"entitiesEncode"),i(u,"safeEncode"),i(p,"isArray");const _=class _RowFormatter{constructor(t,e){this._renderHtml=e,this._columns=t,this.flattenColumns(t)}_columns;_flattenedColumns=[];_columnIdx={};_formattedRow={};flattenColumns(t){for(const e of t)this.flattenColumn(e)}flattenColumn(t){if(t.children)for(const e of t.children)this.flattenColumn(e);else this._columnIdx[t.field]=this._flattenedColumns.length,this._flattenedColumns.push(t.field)}format(t){return this._formattedRow={},this.formatRow(this._columns,t),this.row()}calcDepth(t,e){let s=1;for(const r of t)if(r.children&&e[r.leafID]){let t=0,i=[];p(e[r.leafID])?i=e[r.leafID]:p(e[r.leafID].Row)&&(i=e[r.leafID].Row);for(const e of i)t+=this.calcDepth(r.children,e);s=Math.max(s,t)}return s}formatCell(t,e,s){if(t.children){let s=0;p(e)||(e=p(e.Row)?e.Row:[e]);for(const r of e)s=Math.max(s,this.formatRow(t.children,r))}else if(t.isSet&&(e=JSON.stringify(e.Item)),void 0===this._formattedRow[t.field]?this._formattedRow[t.field]=""+(void 0===e?"":this._renderHtml?e:u(e)):(this._formattedRow[t.field]+="<br><hr class='dgrid-fakeline'>",this._formattedRow[t.field]+=""+(void 0===e?"":this._renderHtml?e:u(e))),s>1){const e=[];e.length=s;const r=e.join("<br><hr class='dgrid-fakeline' style='visibility: hidden'>");this._formattedRow[t.field]+=r}}formatRow(t,e=[],s=0){const r=this.calcDepth(t,e);for(const i of t)this.formatCell(i,e[i.leafID],r);return r}row(){const t={};for(const e of this._flattenedColumns)t[e]=this._formattedRow[e];return t}};i(_,"RowFormatter");let m=_;const f=class _DBStore{_db;Model;idProperty;constructor(t){this._db=t}_renderHtml=!0;renderHtml(t){this._renderHtml=t}db2Columns(t,e,s="",r,i){return e?e.map((e,o)=>{const n={label:e.label(),leafID:""+o,field:s+o,idx:o,className:"resultGridCell",sortable:t,isSet:!1};if("nested"===e.type())n.children=this.db2Columns(!1,e.children(),s+o+"_",r),n.sortable=!1;else n.formatter=r,n.renderCell=i;return n}):[]}columns(t,e,s){return this.db2Columns(t,this._db.fields(),"",e,s)}getIdentity(t){return t.__hpcc_id}get(t){return this._db.row(t+1)}_fetchRange(t){const e=new m(this.columns(!1),this._renderHtml);return this._db.data().slice(t.start,t.end).map((s,r)=>({...e.format(s),__hpcc_id:t.start+r,__origRow:s}))}fetchRange(t){const e=this._fetchRange(t),s=new o;return s.totalLength=new o,s.resolve(e),s.totalLength.resolve(this._db.length()-1),s}sort(t){return this._db.data().sort((e,s)=>{for(const r of t){const t=r.property;if(void 0===e[t]&&void 0!==s[t]||e[t]<s[t])return r.descending?1:-1;if(void 0!==e[t]&&void 0===s[t]||e[t]>s[t])return r.descending?-1:1}return 0}),this}};i(f,"DBStore");let g=f;const b=class _Common extends e.HTMLWidget{_columns=[];_store=new g(this._db);_dgridDiv;_dgrid;_prevPaging;_prevSortBy;_prevSortByDescending;_prevMultiSelect;constructor(){super(),this._tag="div"}formatSortBy(){const t=this.columns().indexOf(this.sortBy());return t>=0?[{property:t.toString(),descending:this.sortByDescending()}]:void 0}_supressEvents;selection(t){if(!arguments.length){const t=[];for(const e in this._dgrid.selection)if(this._dgrid.selection[e]){const s=this._store.get(+e);t.push(this.rowToObj(s))}return t}this._supressEvents=!0,this._dgrid?.clearSelection();let e=!0;this.data().forEach((s,r)=>{if(t.indexOf(s)>=0){const t=this._dgrid?.row(r);t.element&&e&&(e=!1,t.element.scrollIntoView()),this._dgrid?.select(r)}}),this._supressEvents=!1}enter(t,e){super.enter(t,e),this._dgridDiv=e.append("div").attr("class","flat")}update(t,e){super.update(t,e),this._store.renderHtml(this.renderHtml()),this._dgrid&&this._prevPaging===this.pagination()&&this._prevSortBy===this.sortBy()&&this._prevSortByDescending===this.sortByDescending()&&this._prevMultiSelect===this.multiSelect()||(this._prevPaging=this.pagination(),this._prevSortBy=this.sortBy(),this._prevSortByDescending=this.sortByDescending(),this._prevMultiSelect=this.multiSelect(),this._dgrid&&(this._dgrid.destroy(),this._dgridDiv=e.append("div").attr("class","flat")),this._dgrid=new(this._prevPaging?h:a)({columns:this._columns,collection:this._store,sort:this.formatSortBy(),selectionMode:this.multiSelect()?"extended":"single",deselectOnRefresh:!0,cellNavigation:!1,pagingLinks:1,pagingTextBox:!0,previousNextArrows:!0,firstLastArrows:!0,rowsPerPage:this.pageSize(),pageSizeOptions:[1,10,25,50,100,1e3]},this._dgridDiv.node()),this._dgrid.on("dgrid-select",t=>{this._supressEvents||t.rows&&t.rows.length&&t.rows[0].data&&this.click(this.rowToObj(t.rows[0].data.__origRow),"",!0,{selection:this.selection()})}),this._dgrid.on("dgrid-deselect",t=>{this._supressEvents||t.rows&&t.rows.length&&t.rows[0].data&&this.click(this.rowToObj(t.rows[0].data.__origRow),"",!1,{selection:this.selection()})}),this._dgrid.refresh({})),this._dgrid.noDataMessage=`<span class='dojoxGridNoData'>${this.noDataMessage()}</span>`,this._dgrid.loadingMessage=`<span class='dojoxGridNoData'>${this.loadingMessage()}</span>`,this._dgridDiv.style("width",this.width()+"px").style("height",this.height()-2+"px"),this._dgrid.resize()}exit(t,e){delete this._prevPaging,this._dgrid&&(this._dgrid.destroy(),delete this._dgrid),super.exit(t,e)}click(t,e,s,r){}};i(b,"Common");let y=b;y.prototype._class+=" dgrid_Common",y.prototype.publish("noDataMessage","...empty...","string","No Data Message"),y.prototype.publish("loadingMessage","loading...","string","Loading Message"),y.prototype.publish("pagination",!1,"boolean","Enable paging"),y.prototype.publish("pageSize",25,"number","Page size"),y.prototype.publish("sortable",!1,"boolean","Enable sorting by column"),y.prototype.publish("sortBy",null,"set","Default 'sort by' Column ID",function(){return this.columns()},{optional:!0}),y.prototype.publish("sortByDescending",!1,"boolean","Default 'sort by' descending",void 0,{disable:i(t=>!t.sortBy(),"disable")}),y.prototype.publish("multiSelect",!1,"boolean","Multiple Selection"),y.prototype.publish("renderHtml",!0,"boolean","Render HTML");const w=class _DatasourceCache{_datasource;_prevHash;_fetchCache={};constructor(t){this._datasource=t}validateCache(){const t=this.hash();this._prevHash!==t&&(this._prevHash=t,this._fetchCache={})}id(){return this._datasource.id()}hash(){return this._datasource.hash()}label(){return this._datasource.label()}outFields(){return this._datasource.outFields()}total(){return this._datasource.total()}fetch(t,e){this.validateCache();const s=`${t}->${e}`;let r=this._fetchCache[s];return r||(r=this._datasource.fetch(t,e),this._fetchCache[s]=r),r}};i(w,"DatasourceCache");let v=w;const D=class _DatasourceStore{_datasource;_columnsIdx={};_columns;rowFormatter;constructor(t,e){this._datasource=new v(t),this._columnsIdx={},this._columns=this.db2Columns(this._datasource.outFields()).map((t,e)=>(this._columnsIdx[t.field]=e,t)),this.rowFormatter=new m(this._columns,e)}columns(){return this._columns}db2Columns(t,e=""){return t?t.map((t,s)=>{const r={field:e+t.id,leafID:t.id,label:t.id,idx:s,className:"resultGridCell",sortable:!0,isSet:!1};return"dataset"===t.type?r.children=this.db2Columns(t.children,e+t.id+"_"):r.formatter=(t,e)=>"string"==typeof t?t.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;"):t,r}):[]}getIdentity(t){return t.__hpcc_id}_request(t,e){if(!this._datasource)return Promise.resolve({totalLength:0,data:[]});return this._datasource.fetch(t,e-t).then(e=>({totalLength:this._datasource.total(),data:e.map((e,s)=>{const r=this.rowFormatter.format(e);return r.__hpcc_id=t+s,r.__origRow=e,r})}))}fetchRange(t){const e=new o;return this._request(t.start,t.end).then(t=>e.resolve(t)),new l(e.then(t=>t.data),{totalLength:e.then(t=>t.totalLength)})}};i(D,"DatasourceStore");let C=D;const R=class _DatasourceTable extends y{_prevDatasource;constructor(){super()}invalidate(){return delete this._prevDatasource,this}enter(t,e){super.enter(t,e)}update(t,e){super.update(t,e)}render(t){return super.render(e=>{if(this._prevDatasource!==this.datasource())if(this._dgrid.set("collection",new n),this._dgrid.set("columns",[]),this._prevDatasource=this.datasource(),this._prevDatasource){const s=new C(this._prevDatasource,this.renderHtml());this._dgrid.set("columns",s.columns()),this._dgrid.set("collection",s),t&&t(e)}else t&&t(e);else t&&t(e)})}click(t,e,s){}};i(R,"DatasourceTable");let x=R;x.prototype._class+=" dgrid_DatasourceTable",x.prototype.publish("datasource",null,"object","Datasource");const S=class _ColumnFormat extends e.PropertyExt{_owner;constructor(){super()}owner(t){return arguments.length?(this._owner=t,this):this._owner}valid(){return!!this.column()}formatterFunc(){const t=this._owner.formatterFunc();if(this.valid()&&this.format()){const s=e.format(this.format());return function(e,r){return"number"==typeof e?s(e):t.call(this,e,r)}}return t}renderCellFunc(){const t=this._owner.renderCellFunc(),s=this.formatterFunc();if(this.valid()&&this.paletteID()){const r=this._owner.columns(),i=e.Palette.rainbow(this.paletteID()),o=this.min(),n=this.max(),l=this.valueColumn()?r.indexOf(this.valueColumn()):void 0;return function(r,a,h){t&&t.call(this,r,a,h);const c=l?r.__origRow[l]:a,d=i(c,o,n),u=s.call(this,a,r);e.select(h).style("background",d).style("color",d&&e.Palette.textColor(d)).text(u?.html??u??a)}}return t}};i(S,"ColumnFormat");let j=S;j.prototype._class+=" dgrid_Table.ColumnFormat",j.prototype.publish("column",null,"set","Column",function(){return this._owner.columns()},{optional:!0}),j.prototype.publish("width",null,"number","Width",null,{optional:!0}),j.prototype.publish("format",null,"string","Format (d3-format)",null,{optional:!0}),j.prototype.publish("paletteID",null,"set","Color palette for this widget",["",...e.Palette.rainbow("default").switch()],{optional:!0}),j.prototype.publish("min",0,"number","Min Value",null,{disable:i(t=>!t.paletteID(),"disable")}),j.prototype.publish("max",100,"number","Max Value",null,{disable:i(t=>!t.paletteID(),"disable")}),j.prototype.publish("valueColumn",null,"set","Column",function(){return this._owner.columns()},{optional:!0,disable:i(t=>!t.paletteID(),"disable")});const F=class _Table extends y{_prevColsHash;_prevFieldsHash;_colsRefresh=!1;_dataRefresh=!1;constructor(){super()}fields(t){const e=super.fields.apply(this,arguments);if(arguments.length){const e=s.hashSum({_:t});this._prevFieldsHash!==e&&(this._prevFieldsHash=e,this._colsRefresh=!0)}return e}columns(t,e){const r=super.columns.apply(this,arguments);if(arguments.length){const e=s.hashSum({_:t});this._prevColsHash!==e&&(this._prevColsHash=e,this._colsRefresh=!0)}return r}data(t){const e=super.data.apply(this,arguments);return arguments.length&&(this._dataRefresh=!0),e}enter(t,e){super.enter(t,e)}guessWidth(t,e){const s=this.sortable()?12:0;for(const r of t)if(r.children){let t=[];for(let s=0;s<Math.min(3,e.length);++s)t=t.concat(e[s][r.idx]);this.guessWidth(r.children,t)}else r.width=e.reduce((t,e)=>{const s=(""+e[r.idx]).trim();return Math.max(t,this.textSize(s).width)},this.textSize(""+r.label,void 0,void 0,!0).width+s)+8}_prevHash;update(t,e){super.update(t,e);const s=this.hashSum();if(this._prevHash!==s&&(this._prevHash=s,this._colsRefresh=!0),this._colsRefresh){if(this._columns=this._store.columns(this.sortable(),this.formatterFunc(),this.renderCellFunc()),"auto"===this.columnWidth()){const t=this.data().filter((t,e)=>e<10);this.guessWidth(this._columns,t)}const t=this.columns();for(const e of this.columnFormats())if(e.valid()){const s=t.indexOf(e.column());this._columns[s]&&(this._columns[s].hidden=0===e.width(),this._columns[s].width=e.width()||this._columns[s].width,this._columns[s].formatter=e.formatterFunc(),this._columns[s].renderCell=e.renderCellFunc())}this._dgrid.set("columns",this._columns.filter(t=>!t.hidden)),this._colsRefresh=!1}(this._colsRefresh||this._dataRefresh)&&(this._colsRefresh?this._dgrid.refresh({}):this._dgrid.refresh(),this._colsRefresh=!1,this._dataRefresh=!1)}exit(t,e){delete this._prevColsHash,delete this._prevFieldsHash,super.exit(t,e)}formatterFunc(){return function(t,e){switch(typeof t){case"string":return{html:t.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;").trim()};case"undefined":return""}return t}}renderCellFunc(){}click(t,e,s){}};i(F,"Table");let H=F;H.prototype._class+=" dgrid_Table",H.prototype.publish("columnWidth","auto","set","Default column width",["auto","none"]),H.prototype.publish("columnFormats",[],"propertyArray","Source Columns",null,{autoExpand:j}),t.BUILD_VERSION="3.19.3",t.ColumnFormat=j,t.Common=y,t.DBStore=g,t.DatasourceCache=v,t.DatasourceStore=C,t.DatasourceTable=x,t.Deferred=o,t.Grid=a,t.Memory=n,t.PKG_NAME="@hpcc-js/dgrid",t.PKG_VERSION="3.5.9",t.PagingGrid=h,t.QueryResults=l,t.RowFormatter=m,t.Table=H,t.domConstruct=c,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})});
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@hpcc-js/common"),require("@hpcc-js/util")):"function"==typeof define&&define.amd?define(["exports","@hpcc-js/common","@hpcc-js/util"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["@hpcc-js/dgrid"]={},t["@hpcc-js/common"],t["@hpcc-js/util"])}(this,function(t,e,s){"use strict";var r=Object.defineProperty,o=(t,e)=>r(t,"name",{value:e,configurable:!0});globalThis["@hpcc-js/dgrid-shim"]||console.error('dgrid-shim not loaded, please add `<script src="https://cdn.jsdelivr.net/npm/@hpcc-js/dgrid-shim/dist/index.min.js"><\/script>` or similar to your HTML file');const i=globalThis["@hpcc-js/dgrid-shim"].Deferred,n=globalThis["@hpcc-js/dgrid-shim"].Memory,l=globalThis["@hpcc-js/dgrid-shim"].QueryResults,a=globalThis["@hpcc-js/dgrid-shim"].Grid,h=globalThis["@hpcc-js/dgrid-shim"].PagingGrid,c=globalThis["@hpcc-js/dgrid-shim"].domConstruct;function d(t){return String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function u(t){switch(Object.prototype.toString.call(t)){case"[object Undefined]":case"[object Boolean]":case"[object Number]":return t;case"[object String]":return d(t);default:console.warn("Unknown cell type: "+Object.prototype.toString.call(t))}return t}function p(t){return t instanceof Array}o(d,"entitiesEncode"),o(u,"safeEncode"),o(p,"isArray");const m=class _RowFormatter{constructor(t,e){this._renderHtml=e,this._columns=t,this.flattenColumns(t)}_columns;_flattenedColumns=[];_columnIdx={};_formattedRow={};flattenColumns(t){for(const e of t)this.flattenColumn(e)}flattenColumn(t){if(t.children)for(const e of t.children)this.flattenColumn(e);else this._columnIdx[t.field]=this._flattenedColumns.length,this._flattenedColumns.push(t.field)}format(t){return this._formattedRow={},this.formatRow(this._columns,t),this.row()}calcDepth(t,e){let s=1;for(const r of t)if(r.children&&e[r.leafID]){let t=0,o=[];p(e[r.leafID])?o=e[r.leafID]:p(e[r.leafID].Row)&&(o=e[r.leafID].Row);for(const e of o)t+=this.calcDepth(r.children,e);s=Math.max(s,t)}return s}formatCell(t,e,s){if(t.children){let s=0;p(e)||(e=p(e.Row)?e.Row:[e]);for(const r of e)s=Math.max(s,this.formatRow(t.children,r))}else if(t.isSet&&(e=JSON.stringify(e.Item)),void 0===this._formattedRow[t.field]?this._formattedRow[t.field]=""+(void 0===e?"":this._renderHtml?e:u(e)):(this._formattedRow[t.field]+="<br><hr class='dgrid-fakeline'>",this._formattedRow[t.field]+=""+(void 0===e?"":this._renderHtml?e:u(e))),s>1){const e=[];e.length=s;const r=e.join("<br><hr class='dgrid-fakeline' style='visibility: hidden'>");this._formattedRow[t.field]+=r}}formatRow(t,e=[],s=0){const r=this.calcDepth(t,e);for(const o of t)this.formatCell(o,e[o.leafID],r);return r}row(){const t={};for(const e of this._flattenedColumns)t[e]=this._formattedRow[e];return t}};o(m,"RowFormatter");let _=m;const f=class _DBStore{_db;Model;idProperty;constructor(t){this._db=t}_renderHtml=!0;renderHtml(t){this._renderHtml=t}db2Columns(t,e,s="",r,o){return e?e.map((e,i)=>{const n={label:e.label(),leafID:""+i,field:s+i,idx:i,className:"resultGridCell",sortable:t,isSet:!1};if("nested"===e.type())n.children=this.db2Columns(!1,e.children(),s+i+"_",r),n.sortable=!1;else n.formatter=r,n.renderCell=o;return n}):[]}columns(t,e,s){return this.db2Columns(t,this._db.fields(),"",e,s)}getIdentity(t){return t.__hpcc_id}get(t){return this._db.row(t+1)}_fetchRange(t){const e=new _(this.columns(!1),this._renderHtml);return this._db.data().slice(t.start,t.end).map((s,r)=>({...e.format(s),__hpcc_id:t.start+r,__origRow:s}))}fetchRange(t){const e=this._fetchRange(t),s=new i;return s.totalLength=new i,s.resolve(e),s.totalLength.resolve(this._db.length()-1),s}sort(t){return this._db.data().sort((e,s)=>{for(const r of t){const t=r.property;if(void 0===e[t]&&void 0!==s[t]||e[t]<s[t])return r.descending?1:-1;if(void 0!==e[t]&&void 0===s[t]||e[t]>s[t])return r.descending?-1:1}return 0}),this}};o(f,"DBStore");let g=f;const b=class _Common extends e.HTMLWidget{_columns=[];_store=new g(this._db);_dgridDiv;_dgrid;_prevPaging;_prevSortBy;_prevSortByDescending;_prevMultiSelect;constructor(){super(),this._tag="div"}formatSortBy(){const t=this.columns().indexOf(this.sortBy());return t>=0?[{property:t.toString(),descending:this.sortByDescending()}]:void 0}_supressEvents;selection(t){if(!arguments.length){const t=[];for(const e in this._dgrid.selection)if(this._dgrid.selection[e]){const s=this._store.get(+e);t.push(this.rowToObj(s))}return t}this._supressEvents=!0,this._dgrid?.clearSelection();let e=!0;this.data().forEach((s,r)=>{if(t.indexOf(s)>=0){const t=this._dgrid?.row(r);t.element&&e&&(e=!1,t.element.scrollIntoView()),this._dgrid?.select(r)}}),this._supressEvents=!1}enter(t,e){super.enter(t,e),this._dgridDiv=e.append("div").attr("class","flat")}update(t,e){super.update(t,e),this._store.renderHtml(this.renderHtml()),this._dgrid&&this._prevPaging===this.pagination()&&this._prevSortBy===this.sortBy()&&this._prevSortByDescending===this.sortByDescending()&&this._prevMultiSelect===this.multiSelect()||(this._prevPaging=this.pagination(),this._prevSortBy=this.sortBy(),this._prevSortByDescending=this.sortByDescending(),this._prevMultiSelect=this.multiSelect(),this._dgrid&&(this._dgrid.destroy(),this._dgridDiv=e.append("div").attr("class","flat")),this._dgrid=new(this._prevPaging?h:a)({columns:this._columns,collection:this._store,sort:this.formatSortBy(),selectionMode:this.multiSelect()?"extended":"single",deselectOnRefresh:!0,cellNavigation:!1,pagingLinks:1,pagingTextBox:!0,previousNextArrows:!0,firstLastArrows:!0,rowsPerPage:this.pageSize(),pageSizeOptions:[1,10,25,50,100,1e3]},this._dgridDiv.node()),this._dgrid.on("dgrid-select",t=>{this._supressEvents||t.rows&&t.rows.length&&t.rows[0].data&&this.click(this.rowToObj(t.rows[0].data.__origRow),"",!0,{selection:this.selection()})}),this._dgrid.on("dgrid-deselect",t=>{this._supressEvents||t.rows&&t.rows.length&&t.rows[0].data&&this.click(this.rowToObj(t.rows[0].data.__origRow),"",!1,{selection:this.selection()})}),this._dgrid.refresh({})),this._dgrid.noDataMessage=`<span class='dojoxGridNoData'>${this.noDataMessage()}</span>`,this._dgrid.loadingMessage=`<span class='dojoxGridNoData'>${this.loadingMessage()}</span>`,this._dgridDiv.style("width",this.width()+"px").style("height",this.height()-2+"px"),this._dgrid.resize()}exit(t,e){delete this._prevPaging,this._dgrid&&(this._dgrid.destroy(),delete this._dgrid),super.exit(t,e)}click(t,e,s,r){}};o(b,"Common");let y=b;y.prototype._class+=" dgrid_Common",y.prototype.publish("noDataMessage","...empty...","string","No Data Message"),y.prototype.publish("loadingMessage","loading...","string","Loading Message"),y.prototype.publish("pagination",!1,"boolean","Enable paging"),y.prototype.publish("pageSize",25,"number","Page size"),y.prototype.publish("sortable",!1,"boolean","Enable sorting by column"),y.prototype.publish("sortBy",null,"set","Default 'sort by' Column ID",function(){return this.columns()},{optional:!0}),y.prototype.publish("sortByDescending",!1,"boolean","Default 'sort by' descending",void 0,{disable:o(t=>!t.sortBy(),"disable")}),y.prototype.publish("multiSelect",!1,"boolean","Multiple Selection"),y.prototype.publish("renderHtml",!0,"boolean","Render HTML");const w=class _DatasourceCache{_datasource;_prevHash;_fetchCache={};constructor(t){this._datasource=t}validateCache(){const t=this.hash();this._prevHash!==t&&(this._prevHash=t,this._fetchCache={})}id(){return this._datasource.id()}hash(){return this._datasource.hash()}label(){return this._datasource.label()}outFields(){return this._datasource.outFields()}total(){return this._datasource.total()}fetch(t,e){this.validateCache();const s=`${t}->${e}`;let r=this._fetchCache[s];return r||(r=this._datasource.fetch(t,e),this._fetchCache[s]=r),r}};o(w,"DatasourceCache");let v=w;const D=class _DatasourceStore{_datasource;_columnsIdx={};_columns;rowFormatter;constructor(t,e){this._datasource=new v(t),this._columnsIdx={},this._columns=this.db2Columns(this._datasource.outFields()).map((t,e)=>(this._columnsIdx[t.field]=e,t)),this.rowFormatter=new _(this._columns,e)}columns(){return this._columns}db2Columns(t,e=""){return t?t.map((t,s)=>{const r={field:e+t.id,leafID:t.id,label:t.id,idx:s,className:"resultGridCell",sortable:!0,isSet:!1};return"dataset"===t.type?r.children=this.db2Columns(t.children,e+t.id+"_"):r.formatter=(t,e)=>"string"==typeof t?t.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;"):t,r}):[]}getIdentity(t){return t.__hpcc_id}_request(t,e){if(!this._datasource)return Promise.resolve({totalLength:0,data:[]});return this._datasource.fetch(t,e-t).then(e=>({totalLength:this._datasource.total(),data:e.map((e,s)=>{const r=this.rowFormatter.format(e);return r.__hpcc_id=t+s,r.__origRow=e,r})}))}fetchRange(t){const e=new i;return this._request(t.start,t.end).then(t=>e.resolve(t)),new l(e.then(t=>t.data),{totalLength:e.then(t=>t.totalLength)})}};o(D,"DatasourceStore");let C=D;const S=class _DatasourceTable extends y{_prevDatasource;constructor(){super()}invalidate(){return delete this._prevDatasource,this}enter(t,e){super.enter(t,e)}update(t,e){super.update(t,e)}render(t){return super.render(e=>{if(this._prevDatasource!==this.datasource())if(this._dgrid.set("collection",new n),this._dgrid.set("columns",[]),this._prevDatasource=this.datasource(),this._prevDatasource){const s=new C(this._prevDatasource,this.renderHtml());this._dgrid.set("columns",s.columns()),this._dgrid.set("collection",s),t&&t(e)}else t&&t(e);else t&&t(e)})}click(t,e,s){}};o(S,"DatasourceTable");let R=S;R.prototype._class+=" dgrid_DatasourceTable",R.prototype.publish("datasource",null,"object","Datasource");const x=class _ColumnFormat extends e.PropertyExt{_owner;constructor(){super()}owner(t){return arguments.length?(this._owner=t,this):this._owner}valid(){return!!this.column()}formatterFunc(){const t=this._owner.formatterFunc();if(this.valid()&&this.format()){const s=e.format(this.format());return function(e,r){return"number"==typeof e?s(e):t.call(this,e,r)}}return t}renderCellFunc(){const t=this._owner.renderCellFunc(),s=this.formatterFunc();if(this.valid()&&this.paletteID()){const r=this._owner.columns(),o=e.Palette.rainbow(this.paletteID()),i=this.min(),n=this.max(),l=this.valueColumn()?r.indexOf(this.valueColumn()):void 0;return function(r,a,h){t&&t.call(this,r,a,h);const c=l?r.__origRow[l]:a,d=o(c,i,n),u=s.call(this,a,r);e.select(h).style("background",d).style("color",d&&e.Palette.textColor(d)).text(u?.html??u??a)}}return t}};o(x,"ColumnFormat");let F=x;F.prototype._class+=" dgrid_Table.ColumnFormat",F.prototype.publish("column",null,"set","Column",function(){return this._owner.columns()},{optional:!0}),F.prototype.publish("width",null,"number","Width",null,{optional:!0}),F.prototype.publish("format",null,"string","Format (d3-format)",null,{optional:!0}),F.prototype.publish("paletteID",null,"set","Color palette for this widget",["",...e.Palette.rainbow("default").switch()],{optional:!0}),F.prototype.publish("min",0,"number","Min Value",null,{disable:o(t=>!t.paletteID(),"disable")}),F.prototype.publish("max",100,"number","Max Value",null,{disable:o(t=>!t.paletteID(),"disable")}),F.prototype.publish("valueColumn",null,"set","Column",function(){return this._owner.columns()},{optional:!0,disable:o(t=>!t.paletteID(),"disable")});const j=class _Table extends y{_prevColsHash;_prevFieldsHash;_colsRefresh=!1;_dataRefresh=!1;constructor(){super()}fields(t){const e=super.fields.apply(this,arguments);if(arguments.length){const e=s.hashSum({_:t});this._prevFieldsHash!==e&&(this._prevFieldsHash=e,this._colsRefresh=!0)}return e}columns(t,e){const r=super.columns.apply(this,arguments);if(arguments.length){const e=s.hashSum({_:t});this._prevColsHash!==e&&(this._prevColsHash=e,this._colsRefresh=!0)}return r}data(t){const e=super.data.apply(this,arguments);return arguments.length&&(this._dataRefresh=!0),e}enter(t,e){super.enter(t,e)}guessWidth(t,s){const r=this.sortable()?12:0;for(const o of t)if(o.children){let t=[];for(let e=0;e<Math.min(3,s.length);++e)t=t.concat(s[e][o.idx]);this.guessWidth(o.children,t)}else o.width=s.reduce((t,s)=>{let r=(""+s[o.idx]).trim();return this.renderHtml()&&"<"===r[0]&&(r=e.Utility.removeHTMLFromString(r)),Math.max(t,this.textSize(r,this.columnWidthAutoFontName(),this.columnWidthAutoFontSize()).width)},this.textSize(""+o.label,this.columnWidthAutoFontName(),this.columnWidthAutoFontSize(),!0).width+r)+8}_prevHash;update(t,e){super.update(t,e);const s=this.hashSum();if(this._prevHash!==s&&(this._prevHash=s,this._colsRefresh=!0),this._colsRefresh){if(this._columns=this._store.columns(this.sortable(),this.formatterFunc(),this.renderCellFunc()),"auto"===this.columnWidth()){const t=this.data().filter((t,e)=>e<this.columnWidthAutoSampleSize());this.guessWidth(this._columns,t)}const t=this.columns();for(const e of this.columnFormats())if(e.valid()){const s=t.indexOf(e.column());this._columns[s]&&(this._columns[s].hidden=0===e.width(),this._columns[s].width=e.width()||this._columns[s].width,this._columns[s].formatter=e.formatterFunc(),this._columns[s].renderCell=e.renderCellFunc())}this._dgrid.set("columns",this._columns.filter(t=>!t.hidden)),this._colsRefresh=!1}(this._colsRefresh||this._dataRefresh)&&(this._colsRefresh?this._dgrid.refresh({}):this._dgrid.refresh(),this._colsRefresh=!1,this._dataRefresh=!1)}exit(t,e){delete this._prevColsHash,delete this._prevFieldsHash,super.exit(t,e)}formatterFunc(){return function(t,e){switch(typeof t){case"string":return{html:t.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;").trim()};case"undefined":return""}return t}}renderCellFunc(){}click(t,e,s){}};o(j,"Table");let H=j;H.prototype._class+=" dgrid_Table",H.prototype.publish("columnWidth","auto","set","Default column width",["auto","none"]),H.prototype.publish("columnWidthAutoSampleSize",10,"number","Number of rows to sample for auto column width"),H.prototype.publish("columnWidthAutoFontName","Verdana","string","Font name for auto column width calculation"),H.prototype.publish("columnWidthAutoFontSize",12,"number","Font size for auto column width calculation"),H.prototype.publish("columnFormats",[],"propertyArray","Source Columns",null,{autoExpand:F}),t.BUILD_VERSION="3.20.0",t.ColumnFormat=F,t.Common=y,t.DBStore=g,t.DatasourceCache=v,t.DatasourceStore=C,t.DatasourceTable=R,t.Deferred=i,t.Grid=a,t.Memory=n,t.PKG_NAME="@hpcc-js/dgrid",t.PKG_VERSION="3.6.0",t.PagingGrid=h,t.QueryResults=l,t.RowFormatter=_,t.Table=H,t.domConstruct=c,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=index.umd.cjs.map
3
3
  !function(){"use strict";try{if("undefined"!=typeof document){var i=document.createElement("style");i.appendChild(document.createTextNode(".dijitTooltip{position:absolute;z-index:2000;display:block;left:0;top:-10000px;overflow:visible;font-family:Verdana,Geneva,sans-serif;font-size:12px}.dijitTooltipContainer{border:solid black 2px;background:#b8b5b5;color:#000;font-size:small}.dijitTooltipFocusNode{padding:2px}.dijitTooltipConnector{position:absolute}.dj_a11y .dijitTooltipConnector,.dijitTooltipData{display:none}.dijitTooltip{background:transparent}.dijitTooltipContainer{background-color:#424242;opacity:1;-ms-filter:none;filter:none;padding:4px 8px;border-radius:3px}.dijitTooltip .dijitTooltipContainer{color:#fff;border:0 none}.dijitTooltipConnector{z-index:2;width:auto;height:auto;opacity:1;-ms-filter:none;filter:none}.dijitTooltipABRight .dijitTooltipConnector{left:auto!important;right:8px}.dijitTooltipBelow{padding-top:4px}.dijitTooltipBelow .dijitTooltipConnector{top:0;left:8px;border-bottom:4px solid #424242;border-left:4px solid transparent;border-right:4px solid transparent;border-top:0}.dijitTooltipAbove{padding-bottom:4px}.dijitTooltipAbove .dijitTooltipConnector{bottom:0;left:8px;border-top:4px solid #424242;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:0}.dijitTooltipLeft{padding-right:4px}.dijitTooltipLeft .dijitTooltipConnector{right:0;border-left:4px solid #424242;border-bottom:4px solid transparent;border-top:4px solid transparent;border-right:0}.dijitTooltipRight{padding-left:4px}.dijitTooltipRight .dijitTooltipConnector{left:0;border-bottom:4px solid transparent;border-top:4px solid transparent;border-right:4px solid #424242}.dgrid{position:relative;overflow:hidden;border:1px solid #ddd;height:30em;display:block}.dgrid-header{background-color:#eee}.dgrid-header-row{position:absolute;right:17px;left:0}.dgrid-header-scroll{position:absolute;top:0;right:0}.dgrid-footer{position:absolute;bottom:0;width:100%}.dgrid-header-hidden{font-size:0;height:0!important;border-top:none!important;border-bottom:none!important;margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important}.dgrid-footer-hidden{display:none}.dgrid-sortable{cursor:pointer}.dgrid-header,.dgrid-header-row,.dgrid-footer{overflow:hidden;background-color:#eee}.dgrid-row-table{border-collapse:collapse;border:none;table-layout:fixed;empty-cells:show;width:100%;height:100%}.dgrid-cell{padding:3px;text-align:left;overflow:hidden;vertical-align:top;border:1px solid #ddd;border-top-style:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap}.dgrid-content{position:relative;height:99%}.dgrid-scroller{overflow-x:auto;overflow-y:scroll;position:absolute;top:0;margin-top:25px;bottom:0;width:100%}.dgrid-preload{font-size:0;line-height:0}.dgrid-loading{position:relative;height:100%}.dgrid-above{position:absolute;bottom:0}.ui-icon{width:12px;height:16px;background-image:url(data:image/png;base64,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)}.dgrid-sort-arrow{background-position:-64px -16px;display:block;float:right;margin:0 4px 0 5px;height:12px}.dgrid-sort-up .dgrid-sort-arrow{background-position:0px -16px}.dgrid-selected{background-color:#bbb}.dgrid-input{width:99%}html.has-mozilla .dgrid .dgrid-row:focus,html.has-mozilla .dgrid .dgrid-cell:focus{outline:1px dotted}html.has-mozilla .dgrid-focus{outline-offset:-1px}.dgrid-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}.dgrid-autoheight{height:auto}.dgrid-autoheight .dgrid-scroller{position:relative;overflow-y:hidden}.dgrid-autoheight .dgrid-header-scroll{display:none}.dgrid-autoheight .dgrid-header{right:0}.dgrid-column-set{overflow:hidden;width:100%;position:relative;height:100%;-ms-touch-action:pan-y;touch-action:pan-y}.dgrid-column-set-cell{vertical-align:top;height:100%}.dgrid-column-set-scroller-container{font-size:0;position:absolute;bottom:0}.dgrid-autoheight .dgrid-column-set-scroller-container{position:relative}.dgrid-column-set-scroller{display:inline-block;overflow-x:auto;overflow-y:hidden}.dgrid-column-set-scroller-content{height:1px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.dgrid-expando-icon{width:16px;height:16px}.dgrid-tree-container{-webkit-transition-duration:.3s;-moz-transition-duration:.3s;-o-transition-duration:.3s;-ms-transition-duration:.3s;transition-duration:.3s;overflow:hidden}.dgrid-tree-container.dgrid-tree-resetting{-webkit-transition-duration:0;-moz-transition-duration:0;-o-transition-duration:0;-ms-transition-duration:0;transition-duration:0}.dgrid-hider-toggle{background-position:0 -192px;background-color:transparent;border:none;cursor:pointer;position:absolute;right:0;top:0}.dgrid-rtl-swap .dgrid-hider-toggle{right:auto;left:0}.dgrid-hider-menu{position:absolute;top:0;right:17px;width:184px;background-color:#fff;border:1px solid #000;z-index:99999;padding:4px;overflow-x:hidden;overflow-y:auto}.dgrid-rtl-swap .dgrid-hider-menu{right:auto;left:17px}.dgrid-hider-menu-row{position:relative;padding:2px}.dgrid-hider-menu-check{position:absolute;top:2px;left:2px;padding:0}.dgrid-hider-menu-label{display:block;padding-left:20px}.dgrid-header .dojoDndTarget .dgrid-cell{display:table-cell}.dgrid-header .dojoDndItemBefore{border-left:2px dotted #000!important}.dgrid-header .dojoDndItemAfter{border-right:2px dotted #000!important}.dgrid-column-resizer{cursor:col-resize;position:absolute;width:2px;background-color:#666;z-index:1000}.dgrid-resize-handle{height:100px;width:0;position:absolute;right:-4px;top:-4px;cursor:col-resize;z-index:999;border-left:5px solid transparent;outline:none}.dgrid-resize-header-container{height:100%}.dgrid-resize-guard{cursor:col-resize;position:absolute;inset:0}html.has-touch .dgrid-resize-handle{border-left:20px solid transparent}html.has-touch .dgrid-column-resizer{width:2px}.dgrid-resize-header-container{position:relative}.dgrid-header .dgrid-cell{overflow:hidden}.dgrid-spacer-row{height:0}.dgrid-spacer-row th{padding-top:0;padding-bottom:0;border-top:none;border-bottom:none}.dgrid-status{padding:2px}.dgrid-pagination .dgrid-status{float:left}.dgrid-pagination .dgrid-navigation,.dgrid-pagination .dgrid-page-size{float:right}.dgrid-navigation .dgrid-page-link{cursor:pointer;font-weight:700;text-decoration:none;color:inherit;padding:0 4px}.dgrid-first,.dgrid-last,.dgrid-next,.dgrid-previous{font-size:130%}.dgrid-pagination .dgrid-page-disabled{color:#aaa;cursor:default}.dgrid-page-input{margin-top:1px;width:2em;text-align:center}.dgrid-page-size{margin:1px 4px 0}.dgrid-rtl-swap .dgrid-header-row{right:0;left:17px}.dgrid-rtl-swap .dgrid-header-scroll{left:0;right:auto}.dgrid-rtl .dgrid-cell{text-align:right}.dgrid-rtl .dgrid-sort-arrow{float:left;margin:0 5px 0 4px}.dgrid-rtl .ui-icon-triangle-1-e{background-position:-96px -16px}.dgrid-rtl .ui-icon-triangle-1-se{background-position:-80px -16px}.dgrid-rtl .dgrid-pagination .dgrid-status,.dgrid-rtl .dgrid-pagination .dgrid-page-size{float:right}.dgrid-rtl .dgrid-pagination .dgrid-navigation{float:left}.dgrid-rtl.dgrid-autoheight .dgrid-header{left:0}.dgrid_Table .placeholder{border:none;padding:0;overflow:hidden}.dgrid_Table .dgrid-fakeline{border:0px;border-bottom:1px solid rgb(221,221,221);margin:2px -3px}.dgrid_Table .dgrid-sortable .dgrid-sort-arrow.ui-icon{margin:0}")),document.head.appendChild(i)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}}();
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.cjs","sources":["../src/dgrid-shim.ts","../src/RowFormatter.ts","../src/DBStore.ts","../src/Common.ts","../src/DatasourceStore.ts","../src/DatasourceTable.ts","../src/Table.ts","../src/__package__.ts"],"sourcesContent":["import * as dgrid_shim from \"@hpcc-js/dgrid-shim\";\r\n\r\nif (!globalThis[\"@hpcc-js/dgrid-shim\"]) {\r\n console.error(\"dgrid-shim not loaded, please add `<script src=\\\"https://cdn.jsdelivr.net/npm/@hpcc-js/dgrid-shim/dist/index.min.js\\\"></script>` or similar to your HTML file\");\r\n}\r\n\r\nexport const Deferred = globalThis[\"@hpcc-js/dgrid-shim\"].Deferred as typeof dgrid_shim.Deferred;\r\nexport const Memory = globalThis[\"@hpcc-js/dgrid-shim\"].Memory as typeof dgrid_shim.Memory;\r\nexport const QueryResults = globalThis[\"@hpcc-js/dgrid-shim\"].QueryResults as typeof dgrid_shim.QueryResults;\r\nexport const Grid = globalThis[\"@hpcc-js/dgrid-shim\"].Grid as typeof dgrid_shim.Grid;\r\nexport const PagingGrid = globalThis[\"@hpcc-js/dgrid-shim\"].PagingGrid as typeof dgrid_shim.PagingGrid;\r\nexport const domConstruct = globalThis[\"@hpcc-js/dgrid-shim\"].domConstruct as typeof dgrid_shim.domConstruct;\r\n","function entitiesEncode(str) {\r\n return String(str).replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\");\r\n}\r\n\r\nfunction safeEncode(item) {\r\n switch (Object.prototype.toString.call(item)) {\r\n case \"[object Undefined]\":\r\n case \"[object Boolean]\":\r\n case \"[object Number]\":\r\n return item;\r\n case \"[object String]\":\r\n return entitiesEncode(item);\r\n default:\r\n console.warn(\"Unknown cell type: \" + Object.prototype.toString.call(item));\r\n }\r\n return item;\r\n}\r\n\r\nfunction isArray(obj: any): obj is any[] {\r\n return obj instanceof Array;\r\n}\r\n\r\nconst LINE_SPLITTER = \"<br><hr class='dgrid-fakeline'>\";\r\nconst LINE_SPLITTER2 = \"<br><hr class='dgrid-fakeline' style='visibility: hidden'>\";\r\n\r\nexport interface ColumnType {\r\n field: string;\r\n leafID: string;\r\n label: string;\r\n idx: number;\r\n className: string;\r\n sortable: boolean;\r\n isSet: boolean;\r\n width?: number;\r\n formatter?: CellFormatter;\r\n renderCell?: CellRenderer;\r\n children?: ColumnType[];\r\n}\r\nexport interface RowType {\r\n __hpcc_id: number;\r\n __origRow: any[];\r\n [colIdx: number]: any;\r\n}\r\nexport type CellFormatter = (this: ColumnType, cell: any, row: RowType) => string;\r\nexport type CellRenderer = (this: ColumnType, row: RowType, cell: any, cellElement: HTMLElement) => HTMLElement | void;\r\n\r\nexport class RowFormatter {\r\n private _columns: ColumnType[];\r\n private _flattenedColumns = [];\r\n private _columnIdx = {};\r\n private _formattedRow = {};\r\n\r\n constructor(columns: ColumnType[], protected _renderHtml) {\r\n this._columns = columns;\r\n this.flattenColumns(columns);\r\n }\r\n\r\n flattenColumns(columns: ColumnType[]) {\r\n for (const column of columns) {\r\n this.flattenColumn(column);\r\n }\r\n }\r\n\r\n flattenColumn(column: ColumnType) {\r\n if (column.children) {\r\n for (const childColumn of column.children) this.flattenColumn(childColumn);\r\n } else {\r\n this._columnIdx[column.field] = this._flattenedColumns.length;\r\n this._flattenedColumns.push(column.field);\r\n }\r\n }\r\n\r\n format(row) {\r\n this._formattedRow = {};\r\n this.formatRow(this._columns, row);\r\n return this.row();\r\n }\r\n\r\n calcDepth(columns: ColumnType[], row) {\r\n let maxChildDepth = 1;\r\n for (const column of columns) {\r\n if (column.children && row[column.leafID]) {\r\n let childDepth = 0;\r\n let childRows = [];\r\n if (isArray(row[column.leafID])) {\r\n childRows = row[column.leafID];\r\n } else if (isArray(row[column.leafID].Row)) {\r\n childRows = row[column.leafID].Row;\r\n }\r\n for (const childRow of childRows) {\r\n childDepth += this.calcDepth(column.children, childRow);\r\n }\r\n maxChildDepth = Math.max(maxChildDepth, childDepth);\r\n }\r\n }\r\n return maxChildDepth;\r\n }\r\n\r\n formatCell(column: ColumnType, cell, maxChildDepth) {\r\n if (column.children) {\r\n let childDepth = 0;\r\n if (!isArray(cell)) {\r\n if (isArray(cell.Row)) {\r\n cell = cell.Row;\r\n } else {\r\n cell = [cell];\r\n }\r\n }\r\n for (const row of cell) {\r\n childDepth = Math.max(childDepth, this.formatRow(column.children, row));\r\n }\r\n } else {\r\n if (column.isSet) {\r\n cell = JSON.stringify(cell.Item);\r\n }\r\n if (this._formattedRow[column.field] === undefined) {\r\n this._formattedRow[column.field] = \"\" + (cell === undefined ? \"\" : (this._renderHtml ? cell : safeEncode(cell)));\r\n } else {\r\n this._formattedRow[column.field] += LINE_SPLITTER;\r\n this._formattedRow[column.field] += \"\" + (cell === undefined ? \"\" : (this._renderHtml ? cell : safeEncode(cell)));\r\n }\r\n if (maxChildDepth > 1) {\r\n const paddingArr = [];\r\n paddingArr.length = maxChildDepth;\r\n const padding = paddingArr.join(LINE_SPLITTER2);\r\n this._formattedRow[column.field] += padding;\r\n }\r\n }\r\n }\r\n\r\n formatRow(columns: ColumnType[], row: { [key: string]: any } = [], rowIdx: number = 0) {\r\n const maxChildDepth = this.calcDepth(columns, row);\r\n for (const column of columns) {\r\n this.formatCell(column, row[column.leafID], maxChildDepth);\r\n }\r\n return maxChildDepth;\r\n }\r\n\r\n row() {\r\n const retVal = {};\r\n for (const column of this._flattenedColumns) {\r\n retVal[column] = this._formattedRow[column];\r\n }\r\n return retVal;\r\n }\r\n}\r\n","import { Database } from \"@hpcc-js/common\";\r\nimport { Deferred } from \"./dgrid-shim.ts\";\r\nimport { CellFormatter, CellRenderer, ColumnType, RowFormatter } from \"./RowFormatter.ts\";\r\n\r\nexport class DBStore {\r\n private _db: Database.Grid;\r\n\r\n Model: null;\r\n idProperty: \"__hpcc_id\";\r\n\r\n constructor(db: Database.Grid) {\r\n this._db = db;\r\n }\r\n\r\n protected _renderHtml = true;\r\n renderHtml(_: boolean) {\r\n this._renderHtml = _;\r\n }\r\n\r\n db2Columns(sortable: boolean, fields: Database.Field[], prefix = \"\", formatter?: CellFormatter, renderCell?: CellRenderer): ColumnType[] {\r\n if (!fields) return [];\r\n return fields.map((field, idx) => {\r\n const label = field.label();\r\n const column: ColumnType = {\r\n label,\r\n leafID: \"\" + idx,\r\n field: prefix + idx,\r\n idx,\r\n className: \"resultGridCell\",\r\n sortable,\r\n isSet: false\r\n };\r\n switch (field.type()) {\r\n case \"nested\":\r\n column.children = this.db2Columns(false, field.children(), prefix + idx + \"_\", formatter);\r\n column.sortable = false;\r\n break;\r\n default:\r\n column.formatter = formatter;\r\n column.renderCell = renderCell;\r\n }\r\n return column;\r\n });\r\n }\r\n\r\n columns(sortable: boolean, formatter?: CellFormatter, renderCell?: CellRenderer) {\r\n return this.db2Columns(sortable, this._db.fields(), \"\", formatter, renderCell);\r\n }\r\n\r\n getIdentity(object) {\r\n return object.__hpcc_id;\r\n }\r\n\r\n get(row: number) {\r\n return this._db.row(row + 1);\r\n }\r\n\r\n _fetchRange(opts: { start: number, end: number }): object[] {\r\n const rowFormatter = new RowFormatter(this.columns(false), this._renderHtml);\r\n return this._db.data().slice(opts.start, opts.end).map((row, idx) => {\r\n const formattedRow: any = rowFormatter.format(row);\r\n return {\r\n ...formattedRow,\r\n __hpcc_id: opts.start + idx,\r\n __origRow: row\r\n };\r\n });\r\n }\r\n\r\n fetchRange(opts: { start: number, end: number }): Promise<object[]> {\r\n const data = this._fetchRange(opts);\r\n const retVal: any = new Deferred();\r\n retVal.totalLength = new Deferred();\r\n retVal.resolve(data);\r\n retVal.totalLength.resolve(this._db.length() - 1);\r\n return retVal;\r\n }\r\n\r\n sort(opts) {\r\n this._db.data().sort((l, r) => {\r\n for (const item of opts) {\r\n const idx = item.property;\r\n if ((l[idx] === undefined && r[idx] !== undefined) || l[idx] < r[idx]) return item.descending ? 1 : -1;\r\n if ((l[idx] !== undefined && r[idx] === undefined) || l[idx] > r[idx]) return item.descending ? -1 : 1;\r\n }\r\n return 0;\r\n });\r\n return this;\r\n }\r\n}\r\n","import { HTMLWidget } from \"@hpcc-js/common\";\r\nimport { Grid, PagingGrid } from \"./dgrid-shim.ts\";\r\nimport { DBStore } from \"./DBStore.ts\";\r\n\r\nimport \"../src/Common.css\";\r\n\r\nexport class Common extends HTMLWidget {\r\n protected _columns = [];\r\n protected _store = new DBStore(this._db);\r\n protected _dgridDiv;\r\n protected _dgrid;\r\n protected _prevPaging;\r\n private _prevSortBy: string;\r\n private _prevSortByDescending: boolean;\r\n private _prevMultiSelect: boolean;\r\n\r\n constructor() {\r\n super();\r\n this._tag = \"div\";\r\n }\r\n\r\n protected formatSortBy(): [{ property: string, descending: boolean }] | undefined {\r\n const idx = this.columns().indexOf(this.sortBy());\r\n return idx >= 0 ? [{ property: idx.toString(), descending: this.sortByDescending() }] : undefined;\r\n }\r\n\r\n protected _supressEvents;\r\n selection(): any[];\r\n selection(_: any[]): this;\r\n selection(_?: any[]): any[] | this {\r\n if (!arguments.length) {\r\n const retVal = [];\r\n for (const id in this._dgrid.selection) {\r\n if (this._dgrid.selection[id]) {\r\n const storeItem = this._store.get(+id);\r\n retVal.push(this.rowToObj(storeItem));\r\n }\r\n }\r\n return retVal;\r\n }\r\n this._supressEvents = true;\r\n this._dgrid?.clearSelection();\r\n let first = true;\r\n this.data().forEach((row, idx) => {\r\n if (_.indexOf(row) >= 0) {\r\n const row = this._dgrid?.row(idx);\r\n if (row.element && first) {\r\n first = false;\r\n row.element.scrollIntoView();\r\n }\r\n this._dgrid?.select(idx);\r\n }\r\n });\r\n this._supressEvents = false;\r\n }\r\n\r\n enter(domNode, element) {\r\n super.enter(domNode, element);\r\n this._dgridDiv = element.append(\"div\")\r\n .attr(\"class\", \"flat\")\r\n ;\r\n }\r\n\r\n update(domNode, element) {\r\n super.update(domNode, element);\r\n\r\n this._store.renderHtml(this.renderHtml());\r\n\r\n if (!this._dgrid || this._prevPaging !== this.pagination() ||\r\n this._prevSortBy !== this.sortBy() ||\r\n this._prevSortByDescending !== this.sortByDescending() ||\r\n this._prevMultiSelect !== this.multiSelect()) {\r\n\r\n this._prevPaging = this.pagination();\r\n this._prevSortBy = this.sortBy();\r\n this._prevSortByDescending = this.sortByDescending();\r\n this._prevMultiSelect = this.multiSelect();\r\n if (this._dgrid) {\r\n this._dgrid.destroy();\r\n this._dgridDiv = element.append(\"div\")\r\n .attr(\"class\", \"flat\")\r\n ;\r\n }\r\n this._dgrid = new (this._prevPaging ? PagingGrid : Grid)({\r\n columns: this._columns,\r\n collection: this._store,\r\n sort: this.formatSortBy(),\r\n selectionMode: this.multiSelect() ? \"extended\" : \"single\",\r\n deselectOnRefresh: true,\r\n cellNavigation: false,\r\n pagingLinks: 1,\r\n pagingTextBox: true,\r\n previousNextArrows: true,\r\n firstLastArrows: true,\r\n rowsPerPage: this.pageSize(),\r\n pageSizeOptions: [1, 10, 25, 50, 100, 1000]\r\n }, this._dgridDiv.node());\r\n this._dgrid.on(\"dgrid-select\", (evt) => {\r\n if (this._supressEvents) return;\r\n if (evt.rows && evt.rows.length && evt.rows[0].data) {\r\n this.click(this.rowToObj(evt.rows[0].data.__origRow), \"\", true, { selection: this.selection() });\r\n }\r\n });\r\n this._dgrid.on(\"dgrid-deselect\", (evt) => {\r\n if (this._supressEvents) return;\r\n if (evt.rows && evt.rows.length && evt.rows[0].data) {\r\n this.click(this.rowToObj(evt.rows[0].data.__origRow), \"\", false, { selection: this.selection() });\r\n }\r\n });\r\n this._dgrid.refresh({});\r\n }\r\n this._dgrid.noDataMessage = `<span class='dojoxGridNoData'>${this.noDataMessage()}</span>`;\r\n this._dgrid.loadingMessage = `<span class='dojoxGridNoData'>${this.loadingMessage()}</span>`;\r\n\r\n this._dgridDiv\r\n .style(\"width\", this.width() + \"px\")\r\n .style(\"height\", this.height() - 2 + \"px\")\r\n ;\r\n this._dgrid.resize();\r\n }\r\n\r\n exit(domNode, element) {\r\n delete this._prevPaging;\r\n if (this._dgrid) {\r\n this._dgrid.destroy();\r\n delete this._dgrid;\r\n }\r\n super.exit(domNode, element);\r\n }\r\n\r\n click(row, col, sel, more) {\r\n }\r\n}\r\nCommon.prototype._class += \" dgrid_Common\";\r\n\r\nexport interface Common {\r\n noDataMessage(): string;\r\n noDataMessage(_: string): this;\r\n loadingMessage(): string;\r\n loadingMessage(_: string): this;\r\n pagination(): boolean;\r\n pagination(_: boolean): this;\r\n pageSize(): number;\r\n pageSize(_: number): this;\r\n sortable(): boolean;\r\n sortable(_: boolean): this;\r\n sortBy(): string;\r\n sortBy(_: string): this;\r\n sortByDescending(): boolean;\r\n sortByDescending(_: boolean): this;\r\n multiSelect(): boolean;\r\n multiSelect(_: boolean): this;\r\n renderHtml(): boolean;\r\n renderHtml(_: boolean): this;\r\n}\r\n\r\nCommon.prototype.publish(\"noDataMessage\", \"...empty...\", \"string\", \"No Data Message\");\r\nCommon.prototype.publish(\"loadingMessage\", \"loading...\", \"string\", \"Loading Message\");\r\nCommon.prototype.publish(\"pagination\", false, \"boolean\", \"Enable paging\");\r\nCommon.prototype.publish(\"pageSize\", 25, \"number\", \"Page size\");\r\nCommon.prototype.publish(\"sortable\", false, \"boolean\", \"Enable sorting by column\");\r\nCommon.prototype.publish(\"sortBy\", null, \"set\", \"Default 'sort by' Column ID\", function (this: Common) { return this.columns(); }, { optional: true });\r\nCommon.prototype.publish(\"sortByDescending\", false, \"boolean\", \"Default 'sort by' descending\", undefined, { disable: self => !self.sortBy() });\r\nCommon.prototype.publish(\"multiSelect\", false, \"boolean\", \"Multiple Selection\");\r\nCommon.prototype.publish(\"renderHtml\", true, \"boolean\", \"Render HTML\");\r\n\r\n","import type { DDL2 } from \"@hpcc-js/ddl-shim\";\r\nimport { Deferred, QueryResults } from \"./dgrid-shim.ts\";\r\nimport { ColumnType, RowFormatter } from \"./RowFormatter.ts\";\r\n\r\nexport interface IDatasource {\r\n id: () => string;\r\n hash: () => string;\r\n label: () => string;\r\n\r\n outFields: () => DDL2.IField[];\r\n total: () => number;\r\n fetch: (from: number, count: number) => Promise<ReadonlyArray<object>>;\r\n}\r\n\r\nexport class DatasourceCache implements IDatasource {\r\n protected _datasource: IDatasource;\r\n _prevHash: string;\r\n _fetchCache: { [key: string]: Promise<ReadonlyArray<object>> } = {};\r\n\r\n constructor(datasource: IDatasource) {\r\n this._datasource = datasource;\r\n }\r\n\r\n validateCache() {\r\n const hash = this.hash();\r\n if (this._prevHash !== hash) {\r\n this._prevHash = hash;\r\n this._fetchCache = {};\r\n }\r\n }\r\n\r\n id() { return this._datasource.id(); }\r\n hash() { return this._datasource.hash(); }\r\n label() { return this._datasource.label(); }\r\n\r\n outFields() { return this._datasource.outFields(); }\r\n total() { return this._datasource.total(); }\r\n fetch(from: number, count: number): Promise<ReadonlyArray<object>> {\r\n this.validateCache();\r\n const cacheID = `${from}->${count}`;\r\n let retVal = this._fetchCache[cacheID];\r\n if (!retVal) {\r\n retVal = this._datasource.fetch(from, count);\r\n this._fetchCache[cacheID] = retVal;\r\n }\r\n return retVal;\r\n }\r\n}\r\n\r\nexport class DatasourceStore {\r\n _datasource: DatasourceCache;\r\n _columnsIdx: { [key: string]: number } = {};\r\n _columns;\r\n\r\n private rowFormatter: RowFormatter;\r\n\r\n constructor(datasource: IDatasource, renderHtml: boolean) {\r\n this._datasource = new DatasourceCache(datasource);\r\n\r\n this._columnsIdx = {};\r\n this._columns = this.db2Columns(this._datasource.outFields()).map((column, idx) => {\r\n this._columnsIdx[column.field] = idx;\r\n return column;\r\n });\r\n this.rowFormatter = new RowFormatter(this._columns, renderHtml);\r\n }\r\n\r\n columns() {\r\n return this._columns;\r\n }\r\n\r\n db2Columns(fields: DDL2.IField[], prefix = \"\"): ColumnType[] {\r\n if (!fields) return [];\r\n return fields.map((field, idx) => {\r\n const column: ColumnType = {\r\n field: prefix + field.id,\r\n leafID: field.id,\r\n label: field.id,\r\n idx,\r\n className: \"resultGridCell\",\r\n sortable: true,\r\n isSet: false\r\n };\r\n if (field.type === \"dataset\") {\r\n column.children = this.db2Columns(field.children, prefix + field.id + \"_\");\r\n } else {\r\n column.formatter = (cell, row) => {\r\n switch (typeof cell) {\r\n case \"string\":\r\n return cell.replace(/\\t/g, \"&nbsp;&nbsp;&nbsp;&nbsp;\");\r\n }\r\n return cell;\r\n };\r\n }\r\n return column;\r\n });\r\n }\r\n\r\n getIdentity(row) {\r\n return row.__hpcc_id;\r\n }\r\n\r\n _request(start, end): Promise<{ totalLength: number, data: any[] }> {\r\n if (!this._datasource) return Promise.resolve({ totalLength: 0, data: [] });\r\n const retVal = this._datasource.fetch(start, end - start).then(response => {\r\n return {\r\n totalLength: this._datasource.total(),\r\n data: response.map((row, idx) => {\r\n const formattedRow: any = this.rowFormatter.format(row);\r\n formattedRow.__hpcc_id = start + idx;\r\n formattedRow.__origRow = row;\r\n return formattedRow;\r\n })\r\n };\r\n });\r\n return retVal;\r\n }\r\n\r\n fetchRange(options): Promise<any[]> {\r\n const retVal = new Deferred();\r\n this._request(options.start, options.end).then(response => retVal.resolve(response));\r\n return new QueryResults(retVal.then(response => response.data), {\r\n totalLength: retVal.then(response => response.totalLength)\r\n });\r\n }\r\n}\r\n","import { Widget } from \"@hpcc-js/common\";\r\nimport { Memory } from \"./dgrid-shim.ts\";\r\nimport { Common } from \"./Common.ts\";\r\nimport { DatasourceStore, IDatasource } from \"./DatasourceStore.ts\";\r\n\r\nexport class DatasourceTable extends Common {\r\n _prevDatasource?: IDatasource;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n invalidate(): this {\r\n delete this._prevDatasource;\r\n return this;\r\n }\r\n\r\n enter(domNode, element) {\r\n super.enter(domNode, element);\r\n }\r\n\r\n update(domNode, element) {\r\n super.update(domNode, element);\r\n }\r\n render(callback?: (w: Widget) => void): this {\r\n return super.render(w => {\r\n if (this._prevDatasource !== this.datasource()) {\r\n this._dgrid.set(\"collection\", new Memory());\r\n this._dgrid.set(\"columns\", []);\r\n this._prevDatasource = this.datasource();\r\n if (this._prevDatasource) {\r\n const store = new DatasourceStore(this._prevDatasource, this.renderHtml());\r\n this._dgrid.set(\"columns\", store.columns());\r\n this._dgrid.set(\"collection\", store);\r\n if (callback) {\r\n callback(w);\r\n }\r\n } else {\r\n if (callback) {\r\n callback(w);\r\n }\r\n }\r\n } else {\r\n if (callback) {\r\n callback(w);\r\n }\r\n }\r\n });\r\n }\r\n\r\n click(row, col, sel) {\r\n }\r\n}\r\nDatasourceTable.prototype._class += \" dgrid_DatasourceTable\";\r\n\r\nexport interface DatasourceTable {\r\n datasource(): IDatasource;\r\n datasource(_: IDatasource): this;\r\n}\r\n\r\nDatasourceTable.prototype.publish(\"datasource\", null, \"object\", \"Datasource\");\r\n\r\n","import { Palette, PropertyExt, Field } from \"@hpcc-js/common\";\r\nimport { hashSum } from \"@hpcc-js/util\";\r\nimport { format as d3Format } from \"d3-format\";\r\nimport { select as d3Select } from \"d3-selection\";\r\nimport { Common } from \"./Common.ts\";\r\nimport { CellFormatter, CellRenderer, ColumnType, RowType } from \"./RowFormatter.ts\";\r\n\r\n// ColumnPalette ---\r\nexport class ColumnFormat extends PropertyExt {\r\n _owner: Table;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n owner(): Table;\r\n owner(_: Table): this;\r\n owner(_?: Table): Table | this {\r\n if (!arguments.length) return this._owner;\r\n this._owner = _;\r\n return this;\r\n }\r\n\r\n valid(): boolean {\r\n return !!this.column();\r\n }\r\n\r\n formatterFunc(): CellFormatter | undefined {\r\n const defaultFormatter = this._owner.formatterFunc();\r\n if (this.valid() && this.format()) {\r\n const numberFormatter = d3Format(this.format());\r\n\r\n return function (this: ColumnType, cell: any, row: RowType): string {\r\n if (typeof cell === \"number\")\r\n return numberFormatter(cell);\r\n return defaultFormatter.call(this, cell, row);\r\n };\r\n }\r\n return defaultFormatter;\r\n }\r\n\r\n renderCellFunc(): CellRenderer | undefined {\r\n const defaultRenderCell = this._owner.renderCellFunc();\r\n const defaultFormatter = this.formatterFunc();\r\n if (this.valid() && this.paletteID()) {\r\n const columns = this._owner.columns();\r\n const palette = Palette.rainbow(this.paletteID());\r\n const min = this.min();\r\n const max = this.max();\r\n const valueColIdx = this.valueColumn() ? columns.indexOf(this.valueColumn()) : undefined;\r\n return function (this: ColumnType, row: RowType, cell: any, cellElement: HTMLElement): HTMLElement | void {\r\n if (defaultRenderCell) {\r\n defaultRenderCell.call(this, row, cell, cellElement);\r\n }\r\n const value = valueColIdx ? row.__origRow[valueColIdx] : cell;\r\n const background = palette(value, min, max);\r\n const cellText: any = defaultFormatter.call(this, cell, row);\r\n d3Select(cellElement)\r\n .style(\"background\", background)\r\n .style(\"color\", background && Palette.textColor(background))\r\n .text(cellText?.html ?? cellText ?? cell)\r\n ;\r\n };\r\n }\r\n return defaultRenderCell;\r\n }\r\n}\r\nColumnFormat.prototype._class += \" dgrid_Table.ColumnFormat\";\r\n\r\nexport interface ColumnFormat {\r\n column(): string;\r\n column(_: string): this;\r\n width(): number;\r\n width(_: number): this;\r\n format(): string;\r\n format(_: string): this;\r\n paletteID(): string;\r\n paletteID(_: string): this;\r\n min(): number;\r\n min(_: number): this;\r\n max(): number;\r\n max(_: number): this;\r\n valueColumn(): string;\r\n valueColumn(_: string): this;\r\n}\r\nColumnFormat.prototype.publish(\"column\", null, \"set\", \"Column\", function (this: ColumnFormat) { return this._owner.columns(); }, { optional: true });\r\nColumnFormat.prototype.publish(\"width\", null, \"number\", \"Width\", null, { optional: true });\r\nColumnFormat.prototype.publish(\"format\", null, \"string\", \"Format (d3-format)\", null, { optional: true });\r\nColumnFormat.prototype.publish(\"paletteID\", null, \"set\", \"Color palette for this widget\", [\"\", ...Palette.rainbow(\"default\").switch()], { optional: true });\r\nColumnFormat.prototype.publish(\"min\", 0, \"number\", \"Min Value\", null, { disable: (cf: ColumnFormat) => !cf.paletteID() });\r\nColumnFormat.prototype.publish(\"max\", 100, \"number\", \"Max Value\", null, { disable: (cf: ColumnFormat) => !cf.paletteID() });\r\nColumnFormat.prototype.publish(\"valueColumn\", null, \"set\", \"Column\", function (this: ColumnFormat) { return this._owner.columns(); }, { optional: true, disable: (cf: ColumnFormat) => !cf.paletteID() });\r\n\r\n// Table ---\r\nexport class Table extends Common {\r\n private _prevColsHash;\r\n private _prevFieldsHash;\r\n _colsRefresh = false;\r\n _dataRefresh = false;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n fields(): Field[];\r\n fields(_: Field[]): this;\r\n fields(_?: Field[]): Field[] | this {\r\n const retVal = super.fields.apply(this, arguments as any);\r\n if (arguments.length) {\r\n const hash = hashSum({ _ });\r\n if (this._prevFieldsHash !== hash) {\r\n this._prevFieldsHash = hash;\r\n this._colsRefresh = true;\r\n }\r\n }\r\n return retVal;\r\n }\r\n\r\n columns(): string[];\r\n columns(_: string[], asDefault?: boolean): this;\r\n columns(_?: string[], asDefault?: boolean): string[] | this {\r\n const retVal = super.columns.apply(this, arguments as any);\r\n if (arguments.length) {\r\n const hash = hashSum({ _ });\r\n if (this._prevColsHash !== hash) {\r\n this._prevColsHash = hash;\r\n this._colsRefresh = true;\r\n }\r\n }\r\n return retVal;\r\n }\r\n\r\n data(): any;\r\n data(_: any): this;\r\n data(_?: any): any | this {\r\n const retVal = super.data.apply(this, arguments as any);\r\n if (arguments.length) {\r\n this._dataRefresh = true;\r\n }\r\n return retVal;\r\n }\r\n\r\n enter(domNode, element) {\r\n super.enter(domNode, element);\r\n }\r\n\r\n guessWidth(columns, data) {\r\n const sortablePadding = this.sortable() ? 12 : 0;\r\n for (const column of columns) {\r\n if (column.children) {\r\n let sampleData = [];\r\n for (let i = 0; i < Math.min(3, data.length); ++i) {\r\n sampleData = sampleData.concat(data[i][column.idx]);\r\n }\r\n this.guessWidth(column.children, sampleData);\r\n } else {\r\n column.width = data.reduce((prevVal: number, row) => {\r\n const cell = (\"\" + row[column.idx]).trim();\r\n return Math.max(prevVal, this.textSize(cell).width);\r\n }, this.textSize(\"\" + column.label, undefined, undefined, true).width + sortablePadding) + 8; // +12 for the sort icon, +8 for the cell padding.\r\n }\r\n }\r\n }\r\n\r\n _prevHash;\r\n update(domNode, element) {\r\n super.update(domNode, element);\r\n const hash = this.hashSum();\r\n if (this._prevHash !== hash) {\r\n this._prevHash = hash;\r\n this._colsRefresh = true;\r\n }\r\n if (this._colsRefresh) {\r\n this._columns = this._store.columns(this.sortable(), this.formatterFunc(), this.renderCellFunc());\r\n switch (this.columnWidth()) {\r\n case \"auto\":\r\n const tenRows = this.data().filter((row, idx) => idx < 10);\r\n this.guessWidth(this._columns, tenRows);\r\n break;\r\n }\r\n const columns = this.columns();\r\n for (const columnFormat of this.columnFormats()) {\r\n if (columnFormat.valid()) {\r\n const colIdx = columns.indexOf(columnFormat.column());\r\n if (this._columns[colIdx]) {\r\n this._columns[colIdx].hidden = columnFormat.width() === 0;\r\n this._columns[colIdx].width = columnFormat.width() || this._columns[colIdx].width;\r\n this._columns[colIdx].formatter = columnFormat.formatterFunc();\r\n this._columns[colIdx].renderCell = columnFormat.renderCellFunc();\r\n }\r\n }\r\n }\r\n this._dgrid.set(\"columns\", this._columns.filter(col => !col.hidden));\r\n this._colsRefresh = false;\r\n }\r\n if (this._colsRefresh || this._dataRefresh) {\r\n if (this._colsRefresh) {\r\n this._dgrid.refresh({});\r\n } else {\r\n this._dgrid.refresh();\r\n }\r\n this._colsRefresh = false;\r\n this._dataRefresh = false;\r\n }\r\n }\r\n\r\n exit(domNode, element) {\r\n delete this._prevColsHash;\r\n delete this._prevFieldsHash;\r\n super.exit(domNode, element);\r\n }\r\n\r\n // Cell ---\r\n formatterFunc(): CellFormatter | undefined {\r\n return function (this: ColumnType, cell: any, row: RowType): string | any {\r\n switch (typeof cell) {\r\n case \"string\":\r\n return {\r\n html: cell.replace(/\\t/g, \"&nbsp;&nbsp;&nbsp;&nbsp;\").trim()\r\n };\r\n case \"undefined\":\r\n return \"\";\r\n }\r\n return cell;\r\n };\r\n }\r\n\r\n renderCellFunc(): CellRenderer | undefined {\r\n return undefined; // Undefined will defualt to formatter ---\r\n }\r\n\r\n // Events ---\r\n click(row, col, sel) {\r\n }\r\n}\r\nTable.prototype._class += \" dgrid_Table\";\r\n\r\nexport interface Table {\r\n columnWidth(): \"auto\" | \"none\";\r\n columnWidth(_: \"auto\" | \"none\"): this;\r\n columnFormats(): ColumnFormat[];\r\n columnFormats(_: ColumnFormat[]): this;\r\n}\r\n\r\nTable.prototype.publish(\"columnWidth\", \"auto\", \"set\", \"Default column width\", [\"auto\", \"none\"]);\r\nTable.prototype.publish(\"columnFormats\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: ColumnFormat });\r\n","export const PKG_NAME = \"__PACKAGE_NAME__\";\r\nexport const PKG_VERSION = \"__PACKAGE_VERSION__\";\r\nexport const BUILD_VERSION = \"__BUILD_VERSION__\";\r\n"],"names":["globalThis","console","error","Deferred","Memory","QueryResults","Grid","PagingGrid","domConstruct","entitiesEncode","str","String","replace","safeEncode","item","Object","prototype","toString","call","warn","isArray","obj","Array","__name","_RowFormatter","constructor","columns","_renderHtml","this","_columns","flattenColumns","_flattenedColumns","_columnIdx","_formattedRow","column","flattenColumn","children","childColumn","field","length","push","format","row","formatRow","calcDepth","maxChildDepth","leafID","childDepth","childRows","Row","childRow","Math","max","formatCell","cell","isSet","JSON","stringify","Item","paddingArr","padding","join","rowIdx","retVal","RowFormatter","_DBStore","_db","Model","idProperty","db","renderHtml","_","db2Columns","sortable","fields","prefix","formatter","renderCell","map","idx","label","className","type","getIdentity","object","__hpcc_id","get","_fetchRange","opts","rowFormatter","data","slice","start","end","__origRow","fetchRange","totalLength","resolve","sort","l","r","property","descending","DBStore","_Common","HTMLWidget","_store","_dgridDiv","_dgrid","_prevPaging","_prevSortBy","_prevSortByDescending","_prevMultiSelect","super","_tag","formatSortBy","indexOf","sortBy","sortByDescending","_supressEvents","selection","arguments","id","storeItem","rowToObj","clearSelection","first","forEach","element","scrollIntoView","select","enter","domNode","append","attr","update","pagination","multiSelect","destroy","collection","selectionMode","deselectOnRefresh","cellNavigation","pagingLinks","pagingTextBox","previousNextArrows","firstLastArrows","rowsPerPage","pageSize","pageSizeOptions","node","on","evt","rows","click","refresh","noDataMessage","loadingMessage","style","width","height","resize","exit","col","sel","more","Common","_class","publish","optional","disable","self","_DatasourceCache","_datasource","_prevHash","_fetchCache","datasource","validateCache","hash","outFields","total","fetch","from","count","cacheID","DatasourceCache","_DatasourceStore","_columnsIdx","_request","Promise","then","response","formattedRow","options","DatasourceStore","_DatasourceTable","_prevDatasource","invalidate","render","callback","w","set","store","DatasourceTable","_ColumnFormat","PropertyExt","_owner","owner","valid","formatterFunc","defaultFormatter","numberFormatter","d3Format","renderCellFunc","defaultRenderCell","paletteID","palette","Palette","rainbow","min","valueColIdx","valueColumn","cellElement","value","background","cellText","d3Select","textColor","text","html","ColumnFormat","switch","cf","_Table","_prevColsHash","_prevFieldsHash","_colsRefresh","_dataRefresh","apply","hashSum","asDefault","guessWidth","sortablePadding","sampleData","i","concat","reduce","prevVal","trim","textSize","columnWidth","tenRows","filter","columnFormat","columnFormats","colIdx","hidden","Table","autoExpand"],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.cjs","sources":["../src/dgrid-shim.ts","../src/RowFormatter.ts","../src/DBStore.ts","../src/Common.ts","../src/DatasourceStore.ts","../src/DatasourceTable.ts","../src/Table.ts","../src/__package__.ts"],"sourcesContent":["import * as dgrid_shim from \"@hpcc-js/dgrid-shim\";\n\nif (!globalThis[\"@hpcc-js/dgrid-shim\"]) {\n console.error(\"dgrid-shim not loaded, please add `<script src=\\\"https://cdn.jsdelivr.net/npm/@hpcc-js/dgrid-shim/dist/index.min.js\\\"></script>` or similar to your HTML file\");\n}\n\nexport const Deferred = globalThis[\"@hpcc-js/dgrid-shim\"].Deferred as typeof dgrid_shim.Deferred;\nexport const Memory = globalThis[\"@hpcc-js/dgrid-shim\"].Memory as typeof dgrid_shim.Memory;\nexport const QueryResults = globalThis[\"@hpcc-js/dgrid-shim\"].QueryResults as typeof dgrid_shim.QueryResults;\nexport const Grid = globalThis[\"@hpcc-js/dgrid-shim\"].Grid as typeof dgrid_shim.Grid;\nexport const PagingGrid = globalThis[\"@hpcc-js/dgrid-shim\"].PagingGrid as typeof dgrid_shim.PagingGrid;\nexport const domConstruct = globalThis[\"@hpcc-js/dgrid-shim\"].domConstruct as typeof dgrid_shim.domConstruct;\n","function entitiesEncode(str) {\n return String(str).replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\");\n}\n\nfunction safeEncode(item) {\n switch (Object.prototype.toString.call(item)) {\n case \"[object Undefined]\":\n case \"[object Boolean]\":\n case \"[object Number]\":\n return item;\n case \"[object String]\":\n return entitiesEncode(item);\n default:\n console.warn(\"Unknown cell type: \" + Object.prototype.toString.call(item));\n }\n return item;\n}\n\nfunction isArray(obj: any): obj is any[] {\n return obj instanceof Array;\n}\n\nconst LINE_SPLITTER = \"<br><hr class='dgrid-fakeline'>\";\nconst LINE_SPLITTER2 = \"<br><hr class='dgrid-fakeline' style='visibility: hidden'>\";\n\nexport interface ColumnType {\n field: string;\n leafID: string;\n label: string;\n idx: number;\n className: string;\n sortable: boolean;\n isSet: boolean;\n width?: number;\n formatter?: CellFormatter;\n renderCell?: CellRenderer;\n children?: ColumnType[];\n}\nexport interface RowType {\n __hpcc_id: number;\n __origRow: any[];\n [colIdx: number]: any;\n}\nexport type CellFormatter = (this: ColumnType, cell: any, row: RowType) => string;\nexport type CellRenderer = (this: ColumnType, row: RowType, cell: any, cellElement: HTMLElement) => HTMLElement | void;\n\nexport class RowFormatter {\n private _columns: ColumnType[];\n private _flattenedColumns = [];\n private _columnIdx = {};\n private _formattedRow = {};\n\n constructor(columns: ColumnType[], protected _renderHtml) {\n this._columns = columns;\n this.flattenColumns(columns);\n }\n\n flattenColumns(columns: ColumnType[]) {\n for (const column of columns) {\n this.flattenColumn(column);\n }\n }\n\n flattenColumn(column: ColumnType) {\n if (column.children) {\n for (const childColumn of column.children) this.flattenColumn(childColumn);\n } else {\n this._columnIdx[column.field] = this._flattenedColumns.length;\n this._flattenedColumns.push(column.field);\n }\n }\n\n format(row) {\n this._formattedRow = {};\n this.formatRow(this._columns, row);\n return this.row();\n }\n\n calcDepth(columns: ColumnType[], row) {\n let maxChildDepth = 1;\n for (const column of columns) {\n if (column.children && row[column.leafID]) {\n let childDepth = 0;\n let childRows = [];\n if (isArray(row[column.leafID])) {\n childRows = row[column.leafID];\n } else if (isArray(row[column.leafID].Row)) {\n childRows = row[column.leafID].Row;\n }\n for (const childRow of childRows) {\n childDepth += this.calcDepth(column.children, childRow);\n }\n maxChildDepth = Math.max(maxChildDepth, childDepth);\n }\n }\n return maxChildDepth;\n }\n\n formatCell(column: ColumnType, cell, maxChildDepth) {\n if (column.children) {\n let childDepth = 0;\n if (!isArray(cell)) {\n if (isArray(cell.Row)) {\n cell = cell.Row;\n } else {\n cell = [cell];\n }\n }\n for (const row of cell) {\n childDepth = Math.max(childDepth, this.formatRow(column.children, row));\n }\n } else {\n if (column.isSet) {\n cell = JSON.stringify(cell.Item);\n }\n if (this._formattedRow[column.field] === undefined) {\n this._formattedRow[column.field] = \"\" + (cell === undefined ? \"\" : (this._renderHtml ? cell : safeEncode(cell)));\n } else {\n this._formattedRow[column.field] += LINE_SPLITTER;\n this._formattedRow[column.field] += \"\" + (cell === undefined ? \"\" : (this._renderHtml ? cell : safeEncode(cell)));\n }\n if (maxChildDepth > 1) {\n const paddingArr = [];\n paddingArr.length = maxChildDepth;\n const padding = paddingArr.join(LINE_SPLITTER2);\n this._formattedRow[column.field] += padding;\n }\n }\n }\n\n formatRow(columns: ColumnType[], row: { [key: string]: any } = [], rowIdx: number = 0) {\n const maxChildDepth = this.calcDepth(columns, row);\n for (const column of columns) {\n this.formatCell(column, row[column.leafID], maxChildDepth);\n }\n return maxChildDepth;\n }\n\n row() {\n const retVal = {};\n for (const column of this._flattenedColumns) {\n retVal[column] = this._formattedRow[column];\n }\n return retVal;\n }\n}\n","import { Database } from \"@hpcc-js/common\";\nimport { Deferred } from \"./dgrid-shim.ts\";\nimport { CellFormatter, CellRenderer, ColumnType, RowFormatter } from \"./RowFormatter.ts\";\n\nexport class DBStore {\n private _db: Database.Grid;\n\n Model: null;\n idProperty: \"__hpcc_id\";\n\n constructor(db: Database.Grid) {\n this._db = db;\n }\n\n protected _renderHtml = true;\n renderHtml(_: boolean) {\n this._renderHtml = _;\n }\n\n db2Columns(sortable: boolean, fields: Database.Field[], prefix = \"\", formatter?: CellFormatter, renderCell?: CellRenderer): ColumnType[] {\n if (!fields) return [];\n return fields.map((field, idx) => {\n const label = field.label();\n const column: ColumnType = {\n label,\n leafID: \"\" + idx,\n field: prefix + idx,\n idx,\n className: \"resultGridCell\",\n sortable,\n isSet: false\n };\n switch (field.type()) {\n case \"nested\":\n column.children = this.db2Columns(false, field.children(), prefix + idx + \"_\", formatter);\n column.sortable = false;\n break;\n default:\n column.formatter = formatter;\n column.renderCell = renderCell;\n }\n return column;\n });\n }\n\n columns(sortable: boolean, formatter?: CellFormatter, renderCell?: CellRenderer) {\n return this.db2Columns(sortable, this._db.fields(), \"\", formatter, renderCell);\n }\n\n getIdentity(object) {\n return object.__hpcc_id;\n }\n\n get(row: number) {\n return this._db.row(row + 1);\n }\n\n _fetchRange(opts: { start: number, end: number }): object[] {\n const rowFormatter = new RowFormatter(this.columns(false), this._renderHtml);\n return this._db.data().slice(opts.start, opts.end).map((row, idx) => {\n const formattedRow: any = rowFormatter.format(row);\n return {\n ...formattedRow,\n __hpcc_id: opts.start + idx,\n __origRow: row\n };\n });\n }\n\n fetchRange(opts: { start: number, end: number }): Promise<object[]> {\n const data = this._fetchRange(opts);\n const retVal: any = new Deferred();\n retVal.totalLength = new Deferred();\n retVal.resolve(data);\n retVal.totalLength.resolve(this._db.length() - 1);\n return retVal;\n }\n\n sort(opts) {\n this._db.data().sort((l, r) => {\n for (const item of opts) {\n const idx = item.property;\n if ((l[idx] === undefined && r[idx] !== undefined) || l[idx] < r[idx]) return item.descending ? 1 : -1;\n if ((l[idx] !== undefined && r[idx] === undefined) || l[idx] > r[idx]) return item.descending ? -1 : 1;\n }\n return 0;\n });\n return this;\n }\n}\n","import { HTMLWidget } from \"@hpcc-js/common\";\nimport { Grid, PagingGrid } from \"./dgrid-shim.ts\";\nimport { DBStore } from \"./DBStore.ts\";\n\nimport \"../src/Common.css\";\n\nexport class Common extends HTMLWidget {\n protected _columns = [];\n protected _store = new DBStore(this._db);\n protected _dgridDiv;\n protected _dgrid;\n protected _prevPaging;\n private _prevSortBy: string;\n private _prevSortByDescending: boolean;\n private _prevMultiSelect: boolean;\n\n constructor() {\n super();\n this._tag = \"div\";\n }\n\n protected formatSortBy(): [{ property: string, descending: boolean }] | undefined {\n const idx = this.columns().indexOf(this.sortBy());\n return idx >= 0 ? [{ property: idx.toString(), descending: this.sortByDescending() }] : undefined;\n }\n\n protected _supressEvents;\n selection(): any[];\n selection(_: any[]): this;\n selection(_?: any[]): any[] | this {\n if (!arguments.length) {\n const retVal = [];\n for (const id in this._dgrid.selection) {\n if (this._dgrid.selection[id]) {\n const storeItem = this._store.get(+id);\n retVal.push(this.rowToObj(storeItem));\n }\n }\n return retVal;\n }\n this._supressEvents = true;\n this._dgrid?.clearSelection();\n let first = true;\n this.data().forEach((row, idx) => {\n if (_.indexOf(row) >= 0) {\n const row = this._dgrid?.row(idx);\n if (row.element && first) {\n first = false;\n row.element.scrollIntoView();\n }\n this._dgrid?.select(idx);\n }\n });\n this._supressEvents = false;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this._dgridDiv = element.append(\"div\")\n .attr(\"class\", \"flat\")\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n\n this._store.renderHtml(this.renderHtml());\n\n if (!this._dgrid || this._prevPaging !== this.pagination() ||\n this._prevSortBy !== this.sortBy() ||\n this._prevSortByDescending !== this.sortByDescending() ||\n this._prevMultiSelect !== this.multiSelect()) {\n\n this._prevPaging = this.pagination();\n this._prevSortBy = this.sortBy();\n this._prevSortByDescending = this.sortByDescending();\n this._prevMultiSelect = this.multiSelect();\n if (this._dgrid) {\n this._dgrid.destroy();\n this._dgridDiv = element.append(\"div\")\n .attr(\"class\", \"flat\")\n ;\n }\n this._dgrid = new (this._prevPaging ? PagingGrid : Grid)({\n columns: this._columns,\n collection: this._store,\n sort: this.formatSortBy(),\n selectionMode: this.multiSelect() ? \"extended\" : \"single\",\n deselectOnRefresh: true,\n cellNavigation: false,\n pagingLinks: 1,\n pagingTextBox: true,\n previousNextArrows: true,\n firstLastArrows: true,\n rowsPerPage: this.pageSize(),\n pageSizeOptions: [1, 10, 25, 50, 100, 1000]\n }, this._dgridDiv.node());\n this._dgrid.on(\"dgrid-select\", (evt) => {\n if (this._supressEvents) return;\n if (evt.rows && evt.rows.length && evt.rows[0].data) {\n this.click(this.rowToObj(evt.rows[0].data.__origRow), \"\", true, { selection: this.selection() });\n }\n });\n this._dgrid.on(\"dgrid-deselect\", (evt) => {\n if (this._supressEvents) return;\n if (evt.rows && evt.rows.length && evt.rows[0].data) {\n this.click(this.rowToObj(evt.rows[0].data.__origRow), \"\", false, { selection: this.selection() });\n }\n });\n this._dgrid.refresh({});\n }\n this._dgrid.noDataMessage = `<span class='dojoxGridNoData'>${this.noDataMessage()}</span>`;\n this._dgrid.loadingMessage = `<span class='dojoxGridNoData'>${this.loadingMessage()}</span>`;\n\n this._dgridDiv\n .style(\"width\", this.width() + \"px\")\n .style(\"height\", this.height() - 2 + \"px\")\n ;\n this._dgrid.resize();\n }\n\n exit(domNode, element) {\n delete this._prevPaging;\n if (this._dgrid) {\n this._dgrid.destroy();\n delete this._dgrid;\n }\n super.exit(domNode, element);\n }\n\n click(row, col, sel, more) {\n }\n}\nCommon.prototype._class += \" dgrid_Common\";\n\nexport interface Common {\n noDataMessage(): string;\n noDataMessage(_: string): this;\n loadingMessage(): string;\n loadingMessage(_: string): this;\n pagination(): boolean;\n pagination(_: boolean): this;\n pageSize(): number;\n pageSize(_: number): this;\n sortable(): boolean;\n sortable(_: boolean): this;\n sortBy(): string;\n sortBy(_: string): this;\n sortByDescending(): boolean;\n sortByDescending(_: boolean): this;\n multiSelect(): boolean;\n multiSelect(_: boolean): this;\n renderHtml(): boolean;\n renderHtml(_: boolean): this;\n}\n\nCommon.prototype.publish(\"noDataMessage\", \"...empty...\", \"string\", \"No Data Message\");\nCommon.prototype.publish(\"loadingMessage\", \"loading...\", \"string\", \"Loading Message\");\nCommon.prototype.publish(\"pagination\", false, \"boolean\", \"Enable paging\");\nCommon.prototype.publish(\"pageSize\", 25, \"number\", \"Page size\");\nCommon.prototype.publish(\"sortable\", false, \"boolean\", \"Enable sorting by column\");\nCommon.prototype.publish(\"sortBy\", null, \"set\", \"Default 'sort by' Column ID\", function (this: Common) { return this.columns(); }, { optional: true });\nCommon.prototype.publish(\"sortByDescending\", false, \"boolean\", \"Default 'sort by' descending\", undefined, { disable: self => !self.sortBy() });\nCommon.prototype.publish(\"multiSelect\", false, \"boolean\", \"Multiple Selection\");\nCommon.prototype.publish(\"renderHtml\", true, \"boolean\", \"Render HTML\");\n\n","import type { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { Deferred, QueryResults } from \"./dgrid-shim.ts\";\nimport { ColumnType, RowFormatter } from \"./RowFormatter.ts\";\n\nexport interface IDatasource {\n id: () => string;\n hash: () => string;\n label: () => string;\n\n outFields: () => DDL2.IField[];\n total: () => number;\n fetch: (from: number, count: number) => Promise<ReadonlyArray<object>>;\n}\n\nexport class DatasourceCache implements IDatasource {\n protected _datasource: IDatasource;\n _prevHash: string;\n _fetchCache: { [key: string]: Promise<ReadonlyArray<object>> } = {};\n\n constructor(datasource: IDatasource) {\n this._datasource = datasource;\n }\n\n validateCache() {\n const hash = this.hash();\n if (this._prevHash !== hash) {\n this._prevHash = hash;\n this._fetchCache = {};\n }\n }\n\n id() { return this._datasource.id(); }\n hash() { return this._datasource.hash(); }\n label() { return this._datasource.label(); }\n\n outFields() { return this._datasource.outFields(); }\n total() { return this._datasource.total(); }\n fetch(from: number, count: number): Promise<ReadonlyArray<object>> {\n this.validateCache();\n const cacheID = `${from}->${count}`;\n let retVal = this._fetchCache[cacheID];\n if (!retVal) {\n retVal = this._datasource.fetch(from, count);\n this._fetchCache[cacheID] = retVal;\n }\n return retVal;\n }\n}\n\nexport class DatasourceStore {\n _datasource: DatasourceCache;\n _columnsIdx: { [key: string]: number } = {};\n _columns;\n\n private rowFormatter: RowFormatter;\n\n constructor(datasource: IDatasource, renderHtml: boolean) {\n this._datasource = new DatasourceCache(datasource);\n\n this._columnsIdx = {};\n this._columns = this.db2Columns(this._datasource.outFields()).map((column, idx) => {\n this._columnsIdx[column.field] = idx;\n return column;\n });\n this.rowFormatter = new RowFormatter(this._columns, renderHtml);\n }\n\n columns() {\n return this._columns;\n }\n\n db2Columns(fields: DDL2.IField[], prefix = \"\"): ColumnType[] {\n if (!fields) return [];\n return fields.map((field, idx) => {\n const column: ColumnType = {\n field: prefix + field.id,\n leafID: field.id,\n label: field.id,\n idx,\n className: \"resultGridCell\",\n sortable: true,\n isSet: false\n };\n if (field.type === \"dataset\") {\n column.children = this.db2Columns(field.children, prefix + field.id + \"_\");\n } else {\n column.formatter = (cell, row) => {\n switch (typeof cell) {\n case \"string\":\n return cell.replace(/\\t/g, \"&nbsp;&nbsp;&nbsp;&nbsp;\");\n }\n return cell;\n };\n }\n return column;\n });\n }\n\n getIdentity(row) {\n return row.__hpcc_id;\n }\n\n _request(start, end): Promise<{ totalLength: number, data: any[] }> {\n if (!this._datasource) return Promise.resolve({ totalLength: 0, data: [] });\n const retVal = this._datasource.fetch(start, end - start).then(response => {\n return {\n totalLength: this._datasource.total(),\n data: response.map((row, idx) => {\n const formattedRow: any = this.rowFormatter.format(row);\n formattedRow.__hpcc_id = start + idx;\n formattedRow.__origRow = row;\n return formattedRow;\n })\n };\n });\n return retVal;\n }\n\n fetchRange(options): Promise<any[]> {\n const retVal = new Deferred();\n this._request(options.start, options.end).then(response => retVal.resolve(response));\n return new QueryResults(retVal.then(response => response.data), {\n totalLength: retVal.then(response => response.totalLength)\n });\n }\n}\n","import { Widget } from \"@hpcc-js/common\";\nimport { Memory } from \"./dgrid-shim.ts\";\nimport { Common } from \"./Common.ts\";\nimport { DatasourceStore, IDatasource } from \"./DatasourceStore.ts\";\n\nexport class DatasourceTable extends Common {\n _prevDatasource?: IDatasource;\n\n constructor() {\n super();\n }\n\n invalidate(): this {\n delete this._prevDatasource;\n return this;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n }\n render(callback?: (w: Widget) => void): this {\n return super.render(w => {\n if (this._prevDatasource !== this.datasource()) {\n this._dgrid.set(\"collection\", new Memory());\n this._dgrid.set(\"columns\", []);\n this._prevDatasource = this.datasource();\n if (this._prevDatasource) {\n const store = new DatasourceStore(this._prevDatasource, this.renderHtml());\n this._dgrid.set(\"columns\", store.columns());\n this._dgrid.set(\"collection\", store);\n if (callback) {\n callback(w);\n }\n } else {\n if (callback) {\n callback(w);\n }\n }\n } else {\n if (callback) {\n callback(w);\n }\n }\n });\n }\n\n click(row, col, sel) {\n }\n}\nDatasourceTable.prototype._class += \" dgrid_DatasourceTable\";\n\nexport interface DatasourceTable {\n datasource(): IDatasource;\n datasource(_: IDatasource): this;\n}\n\nDatasourceTable.prototype.publish(\"datasource\", null, \"object\", \"Datasource\");\n\n","import { Palette, PropertyExt, Field, Utility } from \"@hpcc-js/common\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { format as d3Format } from \"d3-format\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Common } from \"./Common.ts\";\nimport { CellFormatter, CellRenderer, ColumnType, RowType } from \"./RowFormatter.ts\";\n\n// ColumnPalette ---\nexport class ColumnFormat extends PropertyExt {\n _owner: Table;\n\n constructor() {\n super();\n }\n\n owner(): Table;\n owner(_: Table): this;\n owner(_?: Table): Table | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.column();\n }\n\n formatterFunc(): CellFormatter | undefined {\n const defaultFormatter = this._owner.formatterFunc();\n if (this.valid() && this.format()) {\n const numberFormatter = d3Format(this.format());\n\n return function (this: ColumnType, cell: any, row: RowType): string {\n if (typeof cell === \"number\")\n return numberFormatter(cell);\n return defaultFormatter.call(this, cell, row);\n };\n }\n return defaultFormatter;\n }\n\n renderCellFunc(): CellRenderer | undefined {\n const defaultRenderCell = this._owner.renderCellFunc();\n const defaultFormatter = this.formatterFunc();\n if (this.valid() && this.paletteID()) {\n const columns = this._owner.columns();\n const palette = Palette.rainbow(this.paletteID());\n const min = this.min();\n const max = this.max();\n const valueColIdx = this.valueColumn() ? columns.indexOf(this.valueColumn()) : undefined;\n return function (this: ColumnType, row: RowType, cell: any, cellElement: HTMLElement): HTMLElement | void {\n if (defaultRenderCell) {\n defaultRenderCell.call(this, row, cell, cellElement);\n }\n const value = valueColIdx ? row.__origRow[valueColIdx] : cell;\n const background = palette(value, min, max);\n const cellText: any = defaultFormatter.call(this, cell, row);\n d3Select(cellElement)\n .style(\"background\", background)\n .style(\"color\", background && Palette.textColor(background))\n .text(cellText?.html ?? cellText ?? cell)\n ;\n };\n }\n return defaultRenderCell;\n }\n}\nColumnFormat.prototype._class += \" dgrid_Table.ColumnFormat\";\n\nexport interface ColumnFormat {\n column(): string;\n column(_: string): this;\n width(): number;\n width(_: number): this;\n format(): string;\n format(_: string): this;\n paletteID(): string;\n paletteID(_: string): this;\n min(): number;\n min(_: number): this;\n max(): number;\n max(_: number): this;\n valueColumn(): string;\n valueColumn(_: string): this;\n}\nColumnFormat.prototype.publish(\"column\", null, \"set\", \"Column\", function (this: ColumnFormat) { return this._owner.columns(); }, { optional: true });\nColumnFormat.prototype.publish(\"width\", null, \"number\", \"Width\", null, { optional: true });\nColumnFormat.prototype.publish(\"format\", null, \"string\", \"Format (d3-format)\", null, { optional: true });\nColumnFormat.prototype.publish(\"paletteID\", null, \"set\", \"Color palette for this widget\", [\"\", ...Palette.rainbow(\"default\").switch()], { optional: true });\nColumnFormat.prototype.publish(\"min\", 0, \"number\", \"Min Value\", null, { disable: (cf: ColumnFormat) => !cf.paletteID() });\nColumnFormat.prototype.publish(\"max\", 100, \"number\", \"Max Value\", null, { disable: (cf: ColumnFormat) => !cf.paletteID() });\nColumnFormat.prototype.publish(\"valueColumn\", null, \"set\", \"Column\", function (this: ColumnFormat) { return this._owner.columns(); }, { optional: true, disable: (cf: ColumnFormat) => !cf.paletteID() });\n\n// Table ---\nexport class Table extends Common {\n private _prevColsHash;\n private _prevFieldsHash;\n _colsRefresh = false;\n _dataRefresh = false;\n\n constructor() {\n super();\n }\n\n fields(): Field[];\n fields(_: Field[]): this;\n fields(_?: Field[]): Field[] | this {\n const retVal = super.fields.apply(this, arguments as any);\n if (arguments.length) {\n const hash = hashSum({ _ });\n if (this._prevFieldsHash !== hash) {\n this._prevFieldsHash = hash;\n this._colsRefresh = true;\n }\n }\n return retVal;\n }\n\n columns(): string[];\n columns(_: string[], asDefault?: boolean): this;\n columns(_?: string[], asDefault?: boolean): string[] | this {\n const retVal = super.columns.apply(this, arguments as any);\n if (arguments.length) {\n const hash = hashSum({ _ });\n if (this._prevColsHash !== hash) {\n this._prevColsHash = hash;\n this._colsRefresh = true;\n }\n }\n return retVal;\n }\n\n data(): any;\n data(_: any): this;\n data(_?: any): any | this {\n const retVal = super.data.apply(this, arguments as any);\n if (arguments.length) {\n this._dataRefresh = true;\n }\n return retVal;\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n }\n\n guessWidth(columns, data) {\n const sortablePadding = this.sortable() ? 12 : 0;\n for (const column of columns) {\n if (column.children) {\n let sampleData = [];\n for (let i = 0; i < Math.min(3, data.length); ++i) {\n sampleData = sampleData.concat(data[i][column.idx]);\n }\n this.guessWidth(column.children, sampleData);\n } else {\n column.width = data.reduce((prevVal: number, row) => {\n let cell = (\"\" + row[column.idx]).trim();\n if (this.renderHtml() && cell[0] === \"<\") {\n cell = Utility.removeHTMLFromString(cell);\n }\n return Math.max(prevVal, this.textSize(cell, this.columnWidthAutoFontName(), this.columnWidthAutoFontSize()).width);\n }, this.textSize(\"\" + column.label, this.columnWidthAutoFontName(), this.columnWidthAutoFontSize(), true).width + sortablePadding) + 8; // +12 for the sort icon, +8 for the cell padding.\n }\n }\n }\n\n _prevHash;\n update(domNode, element) {\n super.update(domNode, element);\n const hash = this.hashSum();\n if (this._prevHash !== hash) {\n this._prevHash = hash;\n this._colsRefresh = true;\n }\n if (this._colsRefresh) {\n this._columns = this._store.columns(this.sortable(), this.formatterFunc(), this.renderCellFunc());\n switch (this.columnWidth()) {\n case \"auto\":\n const sampleRows = this.data().filter((row, idx) => idx < this.columnWidthAutoSampleSize());\n this.guessWidth(this._columns, sampleRows);\n break;\n }\n const columns = this.columns();\n for (const columnFormat of this.columnFormats()) {\n if (columnFormat.valid()) {\n const colIdx = columns.indexOf(columnFormat.column());\n if (this._columns[colIdx]) {\n this._columns[colIdx].hidden = columnFormat.width() === 0;\n this._columns[colIdx].width = columnFormat.width() || this._columns[colIdx].width;\n this._columns[colIdx].formatter = columnFormat.formatterFunc();\n this._columns[colIdx].renderCell = columnFormat.renderCellFunc();\n }\n }\n }\n this._dgrid.set(\"columns\", this._columns.filter(col => !col.hidden));\n this._colsRefresh = false;\n }\n if (this._colsRefresh || this._dataRefresh) {\n if (this._colsRefresh) {\n this._dgrid.refresh({});\n } else {\n this._dgrid.refresh();\n }\n this._colsRefresh = false;\n this._dataRefresh = false;\n }\n }\n\n exit(domNode, element) {\n delete this._prevColsHash;\n delete this._prevFieldsHash;\n super.exit(domNode, element);\n }\n\n // Cell ---\n formatterFunc(): CellFormatter | undefined {\n return function (this: ColumnType, cell: any, row: RowType): string | any {\n switch (typeof cell) {\n case \"string\":\n return {\n html: cell.replace(/\\t/g, \"&nbsp;&nbsp;&nbsp;&nbsp;\").trim()\n };\n case \"undefined\":\n return \"\";\n }\n return cell;\n };\n }\n\n renderCellFunc(): CellRenderer | undefined {\n return undefined; // Undefined will defualt to formatter ---\n }\n\n // Events ---\n click(row, col, sel) {\n }\n}\nTable.prototype._class += \" dgrid_Table\";\n\nexport interface Table {\n columnWidth(): \"auto\" | \"none\";\n columnWidth(_: \"auto\" | \"none\"): this;\n columnWidthAutoSampleSize(): number;\n columnWidthAutoSampleSize(_: number): this;\n columnWidthAutoFontName(): string;\n columnWidthAutoFontName(_: string): this;\n columnWidthAutoFontSize(): number;\n columnWidthAutoFontSize(_: number): this;\n columnFormats(): ColumnFormat[];\n columnFormats(_: ColumnFormat[]): this;\n}\n\nTable.prototype.publish(\"columnWidth\", \"auto\", \"set\", \"Default column width\", [\"auto\", \"none\"]);\nTable.prototype.publish(\"columnWidthAutoSampleSize\", 10, \"number\", \"Number of rows to sample for auto column width\");\nTable.prototype.publish(\"columnWidthAutoFontName\", \"Verdana\", \"string\", \"Font name for auto column width calculation\");\nTable.prototype.publish(\"columnWidthAutoFontSize\", 12, \"number\", \"Font size for auto column width calculation\");\nTable.prototype.publish(\"columnFormats\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: ColumnFormat });\n","export const PKG_NAME = \"__PACKAGE_NAME__\";\nexport const PKG_VERSION = \"__PACKAGE_VERSION__\";\nexport const BUILD_VERSION = \"__BUILD_VERSION__\";\n"],"names":["globalThis","console","error","Deferred","Memory","QueryResults","Grid","PagingGrid","domConstruct","entitiesEncode","str","String","replace","safeEncode","item","Object","prototype","toString","call","warn","isArray","obj","Array","__name","_RowFormatter","constructor","columns","_renderHtml","this","_columns","flattenColumns","_flattenedColumns","_columnIdx","_formattedRow","column","flattenColumn","children","childColumn","field","length","push","format","row","formatRow","calcDepth","maxChildDepth","leafID","childDepth","childRows","Row","childRow","Math","max","formatCell","cell","isSet","JSON","stringify","Item","paddingArr","padding","join","rowIdx","retVal","RowFormatter","_DBStore","_db","Model","idProperty","db","renderHtml","_","db2Columns","sortable","fields","prefix","formatter","renderCell","map","idx","label","className","type","getIdentity","object","__hpcc_id","get","_fetchRange","opts","rowFormatter","data","slice","start","end","__origRow","fetchRange","totalLength","resolve","sort","l","r","property","descending","DBStore","_Common","HTMLWidget","_store","_dgridDiv","_dgrid","_prevPaging","_prevSortBy","_prevSortByDescending","_prevMultiSelect","super","_tag","formatSortBy","indexOf","sortBy","sortByDescending","_supressEvents","selection","arguments","id","storeItem","rowToObj","clearSelection","first","forEach","element","scrollIntoView","select","enter","domNode","append","attr","update","pagination","multiSelect","destroy","collection","selectionMode","deselectOnRefresh","cellNavigation","pagingLinks","pagingTextBox","previousNextArrows","firstLastArrows","rowsPerPage","pageSize","pageSizeOptions","node","on","evt","rows","click","refresh","noDataMessage","loadingMessage","style","width","height","resize","exit","col","sel","more","Common","_class","publish","optional","disable","self","_DatasourceCache","_datasource","_prevHash","_fetchCache","datasource","validateCache","hash","outFields","total","fetch","from","count","cacheID","DatasourceCache","_DatasourceStore","_columnsIdx","_request","Promise","then","response","formattedRow","options","DatasourceStore","_DatasourceTable","_prevDatasource","invalidate","render","callback","w","set","store","DatasourceTable","_ColumnFormat","PropertyExt","_owner","owner","valid","formatterFunc","defaultFormatter","numberFormatter","d3Format","renderCellFunc","defaultRenderCell","paletteID","palette","Palette","rainbow","min","valueColIdx","valueColumn","cellElement","value","background","cellText","d3Select","textColor","text","html","ColumnFormat","switch","cf","_Table","_prevColsHash","_prevFieldsHash","_colsRefresh","_dataRefresh","apply","hashSum","asDefault","guessWidth","sortablePadding","sampleData","i","concat","reduce","prevVal","trim","Utility","removeHTMLFromString","textSize","columnWidthAutoFontName","columnWidthAutoFontSize","columnWidth","sampleRows","filter","columnWidthAutoSampleSize","columnFormat","columnFormats","colIdx","hidden","Table","autoExpand"],"mappings":"qcAEKA,WAAW,wBACZC,QAAQC,MAAM,gKAGX,MAAMC,EAAWH,WAAW,uBAAuBG,SAC7CC,EAASJ,WAAW,uBAAuBI,OAC3CC,EAAeL,WAAW,uBAAuBK,aACjDC,EAAON,WAAW,uBAAuBM,KACzCC,EAAaP,WAAW,uBAAuBO,WAC/CC,EAAeR,WAAW,uBAAuBQ,aCX9D,SAASC,EAAeC,GACpB,OAAOC,OAAOD,GAAKE,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,SACxG,CAEA,SAASC,EAAWC,GAChB,OAAQC,OAAOC,UAAUC,SAASC,KAAKJ,IACnC,IAAK,qBACL,IAAK,mBACL,IAAK,kBACD,OAAOA,EACX,IAAK,kBACD,OAAOL,EAAeK,GAC1B,QACIb,QAAQkB,KAAK,uBAAyBJ,OAAOC,UAAUC,SAASC,KAAKJ,IAE7E,OAAOA,CACX,CAEA,SAASM,EAAQC,GACb,OAAOA,aAAeC,KAC1B,CApBSC,EAAAd,EAAA,kBAIAc,EAAAV,EAAA,cAcAU,EAAAH,EAAA,WAIT,MAwBaI,EAAN,MAAMA,cAMT,WAAAC,CAAYC,EAAiCC,GAAAC,KAAAD,YAAAA,EACzCC,KAAKC,SAAWH,EAChBE,KAAKE,eAAeJ,EACxB,CARQG,SACAE,kBAAoB,GACpBC,WAAa,CAAA,EACbC,cAAgB,CAAA,EAOxB,cAAAH,CAAeJ,GACX,IAAA,MAAWQ,KAAUR,EACjBE,KAAKO,cAAcD,EAE3B,CAEA,aAAAC,CAAcD,GACV,GAAIA,EAAOE,SACP,IAAA,MAAWC,KAAeH,EAAOE,SAAUR,KAAKO,cAAcE,QAE9DT,KAAKI,WAAWE,EAAOI,OAASV,KAAKG,kBAAkBQ,OACvDX,KAAKG,kBAAkBS,KAAKN,EAAOI,MAE3C,CAEA,MAAAG,CAAOC,GAGH,OAFAd,KAAKK,cAAgB,CAAA,EACrBL,KAAKe,UAAUf,KAAKC,SAAUa,GACvBd,KAAKc,KAChB,CAEA,SAAAE,CAAUlB,EAAuBgB,GAC7B,IAAIG,EAAgB,EACpB,IAAA,MAAWX,KAAUR,EACjB,GAAIQ,EAAOE,UAAYM,EAAIR,EAAOY,QAAS,CACvC,IAAIC,EAAa,EACbC,EAAY,GACZ5B,EAAQsB,EAAIR,EAAOY,SACnBE,EAAYN,EAAIR,EAAOY,QAChB1B,EAAQsB,EAAIR,EAAOY,QAAQG,OAClCD,EAAYN,EAAIR,EAAOY,QAAQG,KAEnC,IAAA,MAAWC,KAAYF,EACnBD,GAAcnB,KAAKgB,UAAUV,EAAOE,SAAUc,GAElDL,EAAgBM,KAAKC,IAAIP,EAAeE,EAC5C,CAEJ,OAAOF,CACX,CAEA,UAAAQ,CAAWnB,EAAoBoB,EAAMT,GACjC,GAAIX,EAAOE,SAAU,CACjB,IAAIW,EAAa,EACZ3B,EAAQkC,KAELA,EADAlC,EAAQkC,EAAKL,KACNK,EAAKL,IAEL,CAACK,IAGhB,IAAA,MAAWZ,KAAOY,EACdP,EAAaI,KAAKC,IAAIL,EAAYnB,KAAKe,UAAUT,EAAOE,SAAUM,GAE1E,MAUI,GATIR,EAAOqB,QACPD,EAAOE,KAAKC,UAAUH,EAAKI,YAEU,IAArC9B,KAAKK,cAAcC,EAAOI,OAC1BV,KAAKK,cAAcC,EAAOI,OAAS,SAAe,IAATgB,EAAqB,GAAM1B,KAAKD,YAAc2B,EAAOzC,EAAWyC,KAEzG1B,KAAKK,cAAcC,EAAOI,QAhGpB,kCAiGNV,KAAKK,cAAcC,EAAOI,QAAU,SAAe,IAATgB,EAAqB,GAAM1B,KAAKD,YAAc2B,EAAOzC,EAAWyC,KAE1GT,EAAgB,EAAG,CACnB,MAAMc,EAAa,GACnBA,EAAWpB,OAASM,EACpB,MAAMe,EAAUD,EAAWE,KArGpB,8DAsGPjC,KAAKK,cAAcC,EAAOI,QAAUsB,CACxC,CAER,CAEA,SAAAjB,CAAUjB,EAAuBgB,EAA8B,GAAIoB,EAAiB,GAChF,MAAMjB,EAAgBjB,KAAKgB,UAAUlB,EAASgB,GAC9C,IAAA,MAAWR,KAAUR,EACjBE,KAAKyB,WAAWnB,EAAQQ,EAAIR,EAAOY,QAASD,GAEhD,OAAOA,CACX,CAEA,GAAAH,GACI,MAAMqB,EAAS,CAAA,EACf,IAAA,MAAW7B,KAAUN,KAAKG,kBACtBgC,EAAO7B,GAAUN,KAAKK,cAAcC,GAExC,OAAO6B,CACX,GAlGsBxC,EAAAC,EAAA,gBAAnB,IAAMwC,EAANxC,EC1CA,MAAMyC,EAAN,MAAMA,SACDC,IAERC,MACAC,WAEA,WAAA3C,CAAY4C,GACRzC,KAAKsC,IAAMG,CACf,CAEU1C,aAAc,EACxB,UAAA2C,CAAWC,GACP3C,KAAKD,YAAc4C,CACvB,CAEA,UAAAC,CAAWC,EAAmBC,EAA0BC,EAAS,GAAIC,EAA2BC,GAC5F,OAAKH,EACEA,EAAOI,IAAI,CAACxC,EAAOyC,KACtB,MACM7C,EAAqB,CACvB8C,MAFU1C,EAAM0C,QAGhBlC,OAAQ,GAAKiC,EACbzC,MAAOqC,EAASI,EAChBA,MACAE,UAAW,iBACXR,WACAlB,OAAO,GAEX,GACS,WADDjB,EAAM4C,OAENhD,EAAOE,SAAWR,KAAK4C,YAAW,EAAOlC,EAAMF,WAAYuC,EAASI,EAAM,IAAKH,GAC/E1C,EAAOuC,UAAW,OAGlBvC,EAAO0C,UAAYA,EACnB1C,EAAO2C,WAAaA,EAE5B,OAAO3C,IArBS,EAuBxB,CAEA,OAAAR,CAAQ+C,EAAmBG,EAA2BC,GAClD,OAAOjD,KAAK4C,WAAWC,EAAU7C,KAAKsC,IAAIQ,SAAU,GAAIE,EAAWC,EACvE,CAEA,WAAAM,CAAYC,GACR,OAAOA,EAAOC,SAClB,CAEA,GAAAC,CAAI5C,GACA,OAAOd,KAAKsC,IAAIxB,IAAIA,EAAM,EAC9B,CAEA,WAAA6C,CAAYC,GACR,MAAMC,EAAe,IAAIzB,EAAapC,KAAKF,SAAQ,GAAQE,KAAKD,aAChE,OAAOC,KAAKsC,IAAIwB,OAAOC,MAAMH,EAAKI,MAAOJ,EAAKK,KAAKf,IAAI,CAACpC,EAAKqC,KAElD,IADmBU,EAAahD,OAAOC,GAG1C2C,UAAWG,EAAKI,MAAQb,EACxBe,UAAWpD,IAGvB,CAEA,UAAAqD,CAAWP,GACP,MAAME,EAAO9D,KAAK2D,YAAYC,GACxBzB,EAAc,IAAI5D,EAIxB,OAHA4D,EAAOiC,YAAc,IAAI7F,EACzB4D,EAAOkC,QAAQP,GACf3B,EAAOiC,YAAYC,QAAQrE,KAAKsC,IAAI3B,SAAW,GACxCwB,CACX,CAEA,IAAAmC,CAAKV,GASD,OARA5D,KAAKsC,IAAIwB,OAAOQ,KAAK,CAACC,EAAGC,KACrB,IAAA,MAAWtF,KAAQ0E,EAAM,CACrB,MAAMT,EAAMjE,EAAKuF,SACjB,QAAgB,IAAXF,EAAEpB,SAAiC,IAAXqB,EAAErB,IAAuBoB,EAAEpB,GAAOqB,EAAErB,GAAM,OAAOjE,EAAKwF,WAAa,GAAI,EACpG,QAAgB,IAAXH,EAAEpB,SAAiC,IAAXqB,EAAErB,IAAuBoB,EAAEpB,GAAOqB,EAAErB,GAAM,OAAOjE,EAAKwF,YAAa,EAAK,CACzG,CACA,OAAO,IAEJ1E,IACX,GApFiBL,EAAA0C,EAAA,WAAd,IAAMsC,EAANtC,ECEA,MAAMuC,EAAN,MAAMA,gBAAeC,EAAAA,WACd5E,SAAW,GACX6E,OAAS,IAAIH,EAAQ3E,KAAKsC,KAC1ByC,UACAC,OACAC,YACFC,YACAC,sBACAC,iBAER,WAAAvF,GACIwF,QACArF,KAAKsF,KAAO,KAChB,CAEU,YAAAC,GACN,MAAMpC,EAAMnD,KAAKF,UAAU0F,QAAQxF,KAAKyF,UACxC,OAAOtC,GAAO,EAAI,CAAC,CAAEsB,SAAUtB,EAAI9D,WAAYqF,WAAY1E,KAAK0F,0BAAwB,CAC5F,CAEUC,eAGV,SAAAC,CAAUjD,GACN,IAAKkD,UAAUlF,OAAQ,CACnB,MAAMwB,EAAS,GACf,IAAA,MAAW2D,KAAM9F,KAAKgF,OAAOY,UACzB,GAAI5F,KAAKgF,OAAOY,UAAUE,GAAK,CAC3B,MAAMC,EAAY/F,KAAK8E,OAAOpB,KAAKoC,GACnC3D,EAAOvB,KAAKZ,KAAKgG,SAASD,GAC9B,CAEJ,OAAO5D,CACX,CACAnC,KAAK2F,gBAAiB,EACtB3F,KAAKgF,QAAQiB,iBACb,IAAIC,GAAQ,EACZlG,KAAK8D,OAAOqC,QAAQ,CAACrF,EAAKqC,KACtB,GAAIR,EAAE6C,QAAQ1E,IAAQ,EAAG,CACrB,MAAMA,EAAMd,KAAKgF,QAAQlE,IAAIqC,GACzBrC,EAAIsF,SAAWF,IACfA,GAAQ,EACRpF,EAAIsF,QAAQC,kBAEhBrG,KAAKgF,QAAQsB,OAAOnD,EACxB,IAEJnD,KAAK2F,gBAAiB,CAC1B,CAEA,KAAAY,CAAMC,EAASJ,GACXf,MAAMkB,MAAMC,EAASJ,GACrBpG,KAAK+E,UAAYqB,EAAQK,OAAO,OAC3BC,KAAK,QAAS,OAEvB,CAEA,MAAAC,CAAOH,EAASJ,GACZf,MAAMsB,OAAOH,EAASJ,GAEtBpG,KAAK8E,OAAOpC,WAAW1C,KAAK0C,cAEvB1C,KAAKgF,QAAUhF,KAAKiF,cAAgBjF,KAAK4G,cAC1C5G,KAAKkF,cAAgBlF,KAAKyF,UAC1BzF,KAAKmF,wBAA0BnF,KAAK0F,oBACpC1F,KAAKoF,mBAAqBpF,KAAK6G,gBAE/B7G,KAAKiF,YAAcjF,KAAK4G,aACxB5G,KAAKkF,YAAclF,KAAKyF,SACxBzF,KAAKmF,sBAAwBnF,KAAK0F,mBAClC1F,KAAKoF,iBAAmBpF,KAAK6G,cACzB7G,KAAKgF,SACLhF,KAAKgF,OAAO8B,UACZ9G,KAAK+E,UAAYqB,EAAQK,OAAO,OAC3BC,KAAK,QAAS,SAGvB1G,KAAKgF,OAAS,IAAKhF,KAAKiF,YAActG,EAAaD,GAAM,CACrDoB,QAASE,KAAKC,SACd8G,WAAY/G,KAAK8E,OACjBR,KAAMtE,KAAKuF,eACXyB,cAAehH,KAAK6G,cAAgB,WAAa,SACjDI,mBAAmB,EACnBC,gBAAgB,EAChBC,YAAa,EACbC,eAAe,EACfC,oBAAoB,EACpBC,iBAAiB,EACjBC,YAAavH,KAAKwH,WAClBC,gBAAiB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,MACvCzH,KAAK+E,UAAU2C,QAClB1H,KAAKgF,OAAO2C,GAAG,eAAiBC,IACxB5H,KAAK2F,gBACLiC,EAAIC,MAAQD,EAAIC,KAAKlH,QAAUiH,EAAIC,KAAK,GAAG/D,MAC3C9D,KAAK8H,MAAM9H,KAAKgG,SAAS4B,EAAIC,KAAK,GAAG/D,KAAKI,WAAY,IAAI,EAAM,CAAE0B,UAAW5F,KAAK4F,gBAG1F5F,KAAKgF,OAAO2C,GAAG,iBAAmBC,IAC1B5H,KAAK2F,gBACLiC,EAAIC,MAAQD,EAAIC,KAAKlH,QAAUiH,EAAIC,KAAK,GAAG/D,MAC3C9D,KAAK8H,MAAM9H,KAAKgG,SAAS4B,EAAIC,KAAK,GAAG/D,KAAKI,WAAY,IAAI,EAAO,CAAE0B,UAAW5F,KAAK4F,gBAG3F5F,KAAKgF,OAAO+C,QAAQ,KAExB/H,KAAKgF,OAAOgD,cAAgB,iCAAiChI,KAAKgI,yBAClEhI,KAAKgF,OAAOiD,eAAiB,iCAAiCjI,KAAKiI,0BAEnEjI,KAAK+E,UACAmD,MAAM,QAASlI,KAAKmI,QAAU,MAC9BD,MAAM,SAAUlI,KAAKoI,SAAW,EAAI,MAEzCpI,KAAKgF,OAAOqD,QAChB,CAEA,IAAAC,CAAK9B,EAASJ,UACHpG,KAAKiF,YACRjF,KAAKgF,SACLhF,KAAKgF,OAAO8B,iBACL9G,KAAKgF,QAEhBK,MAAMiD,KAAK9B,EAASJ,EACxB,CAEA,KAAA0B,CAAMhH,EAAKyH,EAAKC,EAAKC,GACrB,GA7HmC9I,EAAAiF,EAAA,UAAhC,IAAM8D,EAAN9D,EA+HP8D,EAAOtJ,UAAUuJ,QAAU,gBAuB3BD,EAAOtJ,UAAUwJ,QAAQ,gBAAiB,cAAe,SAAU,mBACnEF,EAAOtJ,UAAUwJ,QAAQ,iBAAkB,aAAc,SAAU,mBACnEF,EAAOtJ,UAAUwJ,QAAQ,cAAc,EAAO,UAAW,iBACzDF,EAAOtJ,UAAUwJ,QAAQ,WAAY,GAAI,SAAU,aACnDF,EAAOtJ,UAAUwJ,QAAQ,YAAY,EAAO,UAAW,4BACvDF,EAAOtJ,UAAUwJ,QAAQ,SAAU,KAAM,MAAO,8BAA+B,WAA0B,OAAO5I,KAAKF,SAAW,EAAG,CAAE+I,UAAU,IAC/IH,EAAOtJ,UAAUwJ,QAAQ,oBAAoB,EAAO,UAAW,oCAAgC,EAAW,CAAEE,QAASnJ,EAAAoJ,IAASA,EAAKtD,SAAd,aACrHiD,EAAOtJ,UAAUwJ,QAAQ,eAAe,EAAO,UAAW,sBAC1DF,EAAOtJ,UAAUwJ,QAAQ,cAAc,EAAM,UAAW,eCtJjD,MAAMI,EAAN,MAAMA,iBACCC,YACVC,UACAC,YAAiE,CAAA,EAEjE,WAAAtJ,CAAYuJ,GACRpJ,KAAKiJ,YAAcG,CACvB,CAEA,aAAAC,GACI,MAAMC,EAAOtJ,KAAKsJ,OACdtJ,KAAKkJ,YAAcI,IACnBtJ,KAAKkJ,UAAYI,EACjBtJ,KAAKmJ,YAAc,CAAA,EAE3B,CAEA,EAAArD,GAAO,OAAO9F,KAAKiJ,YAAYnD,IAAM,CACrC,IAAAwD,GAAS,OAAOtJ,KAAKiJ,YAAYK,MAAQ,CACzC,KAAAlG,GAAU,OAAOpD,KAAKiJ,YAAY7F,OAAS,CAE3C,SAAAmG,GAAc,OAAOvJ,KAAKiJ,YAAYM,WAAa,CACnD,KAAAC,GAAU,OAAOxJ,KAAKiJ,YAAYO,OAAS,CAC3C,KAAAC,CAAMC,EAAcC,GAChB3J,KAAKqJ,gBACL,MAAMO,EAAU,GAAGF,MAASC,IAC5B,IAAIxH,EAASnC,KAAKmJ,YAAYS,GAK9B,OAJKzH,IACDA,EAASnC,KAAKiJ,YAAYQ,MAAMC,EAAMC,GACtC3J,KAAKmJ,YAAYS,GAAWzH,GAEzBA,CACX,GAhCgDxC,EAAAqJ,EAAA,mBAA7C,IAAMa,EAANb,EAmCA,MAAMc,EAAN,MAAMA,iBACTb,YACAc,YAAyC,CAAA,EACzC9J,SAEQ4D,aAER,WAAAhE,CAAYuJ,EAAyB1G,GACjC1C,KAAKiJ,YAAc,IAAIY,EAAgBT,GAEvCpJ,KAAK+J,YAAc,CAAA,EACnB/J,KAAKC,SAAWD,KAAK4C,WAAW5C,KAAKiJ,YAAYM,aAAarG,IAAI,CAAC5C,EAAQ6C,KACvEnD,KAAK+J,YAAYzJ,EAAOI,OAASyC,EAC1B7C,IAEXN,KAAK6D,aAAe,IAAIzB,EAAapC,KAAKC,SAAUyC,EACxD,CAEA,OAAA5C,GACI,OAAOE,KAAKC,QAChB,CAEA,UAAA2C,CAAWE,EAAuBC,EAAS,IACvC,OAAKD,EACEA,EAAOI,IAAI,CAACxC,EAAOyC,KACtB,MAAM7C,EAAqB,CACvBI,MAAOqC,EAASrC,EAAMoF,GACtB5E,OAAQR,EAAMoF,GACd1C,MAAO1C,EAAMoF,GACb3C,MACAE,UAAW,iBACXR,UAAU,EACVlB,OAAO,GAaX,MAXmB,YAAfjB,EAAM4C,KACNhD,EAAOE,SAAWR,KAAK4C,WAAWlC,EAAMF,SAAUuC,EAASrC,EAAMoF,GAAK,KAEtExF,EAAO0C,UAAY,CAACtB,EAAMZ,IAEb,iBADMY,EAEAA,EAAK1C,QAAQ,MAAO,4BAE5B0C,EAGRpB,IAtBS,EAwBxB,CAEA,WAAAiD,CAAYzC,GACR,OAAOA,EAAI2C,SACf,CAEA,QAAAuG,CAAShG,EAAOC,GACZ,IAAKjE,KAAKiJ,YAAa,OAAOgB,QAAQ5F,QAAQ,CAAED,YAAa,EAAGN,KAAM,KAYtE,OAXe9D,KAAKiJ,YAAYQ,MAAMzF,EAAOC,EAAMD,GAAOkG,KAAKC,IACpD,CACH/F,YAAapE,KAAKiJ,YAAYO,QAC9B1F,KAAMqG,EAASjH,IAAI,CAACpC,EAAKqC,KACrB,MAAMiH,EAAoBpK,KAAK6D,aAAahD,OAAOC,GAGnD,OAFAsJ,EAAa3G,UAAYO,EAAQb,EACjCiH,EAAalG,UAAYpD,EAClBsJ,MAKvB,CAEA,UAAAjG,CAAWkG,GACP,MAAMlI,EAAS,IAAI5D,EAEnB,OADAyB,KAAKgK,SAASK,EAAQrG,MAAOqG,EAAQpG,KAAKiG,KAAKC,GAAYhI,EAAOkC,QAAQ8F,IACnE,IAAI1L,EAAa0D,EAAO+H,KAAKC,GAAYA,EAASrG,MAAO,CAC5DM,YAAajC,EAAO+H,KAAKC,GAAYA,EAAS/F,cAEtD,GA3EyBzE,EAAAmK,EAAA,mBAAtB,IAAMQ,EAANR,EC5CA,MAAMS,EAAN,MAAMA,yBAAwB7B,EACjC8B,gBAEA,WAAA3K,GACIwF,OACJ,CAEA,UAAAoF,GAEI,cADOzK,KAAKwK,gBACLxK,IACX,CAEA,KAAAuG,CAAMC,EAASJ,GACXf,MAAMkB,MAAMC,EAASJ,EACzB,CAEA,MAAAO,CAAOH,EAASJ,GACZf,MAAMsB,OAAOH,EAASJ,EAC1B,CACA,MAAAsE,CAAOC,GACH,OAAOtF,MAAMqF,OAAOE,IAChB,GAAI5K,KAAKwK,kBAAoBxK,KAAKoJ,aAI9B,GAHApJ,KAAKgF,OAAO6F,IAAI,aAAc,IAAIrM,GAClCwB,KAAKgF,OAAO6F,IAAI,UAAW,IAC3B7K,KAAKwK,gBAAkBxK,KAAKoJ,aACxBpJ,KAAKwK,gBAAiB,CACtB,MAAMM,EAAQ,IAAIR,EAAgBtK,KAAKwK,gBAAiBxK,KAAK0C,cAC7D1C,KAAKgF,OAAO6F,IAAI,UAAWC,EAAMhL,WACjCE,KAAKgF,OAAO6F,IAAI,aAAcC,GAC1BH,GACAA,EAASC,EAEjB,MACQD,GACAA,EAASC,QAIbD,GACAA,EAASC,IAIzB,CAEA,KAAA9C,CAAMhH,EAAKyH,EAAKC,GAChB,GA9CwC7I,EAAA4K,EAAA,mBAArC,IAAMQ,EAANR,EAgDPQ,EAAgB3L,UAAUuJ,QAAU,yBAOpCoC,EAAgB3L,UAAUwJ,QAAQ,aAAc,KAAM,SAAU,cCpDzD,MAAMoC,EAAN,MAAMA,sBAAqBC,EAAAA,YAC9BC,OAEA,WAAArL,GACIwF,OACJ,CAIA,KAAA8F,CAAMxI,GACF,OAAKkD,UAAUlF,QACfX,KAAKkL,OAASvI,EACP3C,MAFuBA,KAAKkL,MAGvC,CAEA,KAAAE,GACI,QAASpL,KAAKM,QAClB,CAEA,aAAA+K,GACI,MAAMC,EAAmBtL,KAAKkL,OAAOG,gBACrC,GAAIrL,KAAKoL,SAAWpL,KAAKa,SAAU,CAC/B,MAAM0K,EAAkBC,EAAAA,OAASxL,KAAKa,UAEtC,OAAO,SAA4Ba,EAAWZ,GAC1C,MAAoB,iBAATY,EACA6J,EAAgB7J,GACpB4J,EAAiBhM,KAAKU,KAAM0B,EAAMZ,EAC7C,CACJ,CACA,OAAOwK,CACX,CAEA,cAAAG,GACI,MAAMC,EAAoB1L,KAAKkL,OAAOO,iBAChCH,EAAmBtL,KAAKqL,gBAC9B,GAAIrL,KAAKoL,SAAWpL,KAAK2L,YAAa,CAClC,MAAM7L,EAAUE,KAAKkL,OAAOpL,UACtB8L,EAAUC,EAAAA,QAAQC,QAAQ9L,KAAK2L,aAC/BI,EAAM/L,KAAK+L,MACXvK,EAAMxB,KAAKwB,MACXwK,EAAchM,KAAKiM,cAAgBnM,EAAQ0F,QAAQxF,KAAKiM,oBAAiB,EAC/E,OAAO,SAA4BnL,EAAcY,EAAWwK,GACpDR,GACAA,EAAkBpM,KAAKU,KAAMc,EAAKY,EAAMwK,GAE5C,MAAMC,EAAQH,EAAclL,EAAIoD,UAAU8H,GAAetK,EACnD0K,EAAaR,EAAQO,EAAOJ,EAAKvK,GACjC6K,EAAgBf,EAAiBhM,KAAKU,KAAM0B,EAAMZ,GACxDwL,EAAAA,OAASJ,GACJhE,MAAM,aAAckE,GACpBlE,MAAM,QAASkE,GAAcP,EAAAA,QAAQU,UAAUH,IAC/CI,KAAKH,GAAUI,MAAQJ,GAAY3K,EAE5C,CACJ,CACA,OAAOgK,CACX,GAzD0C/L,EAAAqL,EAAA,gBAAvC,IAAM0B,EAAN1B,EA2DP0B,EAAatN,UAAUuJ,QAAU,4BAkBjC+D,EAAatN,UAAUwJ,QAAQ,SAAU,KAAM,MAAO,SAAU,WAAgC,OAAO5I,KAAKkL,OAAOpL,SAAW,EAAG,CAAE+I,UAAU,IAC7I6D,EAAatN,UAAUwJ,QAAQ,QAAS,KAAM,SAAU,QAAS,KAAM,CAAEC,UAAU,IACnF6D,EAAatN,UAAUwJ,QAAQ,SAAU,KAAM,SAAU,qBAAsB,KAAM,CAAEC,UAAU,IACjG6D,EAAatN,UAAUwJ,QAAQ,YAAa,KAAM,MAAO,gCAAiC,CAAC,MAAOiD,EAAAA,QAAQC,QAAQ,WAAWa,UAAW,CAAE9D,UAAU,IACpJ6D,EAAatN,UAAUwJ,QAAQ,MAAO,EAAG,SAAU,YAAa,KAAM,CAAEE,QAASnJ,EAACiN,IAAsBA,EAAGjB,YAA1B,aACjFe,EAAatN,UAAUwJ,QAAQ,MAAO,IAAK,SAAU,YAAa,KAAM,CAAEE,QAASnJ,EAACiN,IAAsBA,EAAGjB,YAA1B,aACnFe,EAAatN,UAAUwJ,QAAQ,cAAe,KAAM,MAAO,SAAU,WAAgC,OAAO5I,KAAKkL,OAAOpL,SAAW,EAAG,CAAE+I,UAAU,EAAMC,QAASnJ,EAACiN,IAAsBA,EAAGjB,YAA1B,aAG1J,MAAMkB,EAAN,MAAMA,eAAcnE,EACfoE,cACAC,gBACRC,cAAe,EACfC,cAAe,EAEf,WAAApN,GACIwF,OACJ,CAIA,MAAAvC,CAAOH,GACH,MAAMR,EAASkD,MAAMvC,OAAOoK,MAAMlN,KAAM6F,WACxC,GAAIA,UAAUlF,OAAQ,CAClB,MAAM2I,EAAO6D,EAAAA,QAAQ,CAAExK,MACnB3C,KAAK+M,kBAAoBzD,IACzBtJ,KAAK+M,gBAAkBzD,EACvBtJ,KAAKgN,cAAe,EAE5B,CACA,OAAO7K,CACX,CAIA,OAAArC,CAAQ6C,EAAcyK,GAClB,MAAMjL,EAASkD,MAAMvF,QAAQoN,MAAMlN,KAAM6F,WACzC,GAAIA,UAAUlF,OAAQ,CAClB,MAAM2I,EAAO6D,EAAAA,QAAQ,CAAExK,MACnB3C,KAAK8M,gBAAkBxD,IACvBtJ,KAAK8M,cAAgBxD,EACrBtJ,KAAKgN,cAAe,EAE5B,CACA,OAAO7K,CACX,CAIA,IAAA2B,CAAKnB,GACD,MAAMR,EAASkD,MAAMvB,KAAKoJ,MAAMlN,KAAM6F,WAItC,OAHIA,UAAUlF,SACVX,KAAKiN,cAAe,GAEjB9K,CACX,CAEA,KAAAoE,CAAMC,EAASJ,GACXf,MAAMkB,MAAMC,EAASJ,EACzB,CAEA,UAAAiH,CAAWvN,EAASgE,GAChB,MAAMwJ,EAAkBtN,KAAK6C,WAAa,GAAK,EAC/C,IAAA,MAAWvC,KAAUR,EACjB,GAAIQ,EAAOE,SAAU,CACjB,IAAI+M,EAAa,GACjB,IAAA,IAASC,EAAI,EAAGA,EAAIjM,KAAKwK,IAAI,EAAGjI,EAAKnD,UAAW6M,EAC5CD,EAAaA,EAAWE,OAAO3J,EAAK0J,GAAGlN,EAAO6C,MAElDnD,KAAKqN,WAAW/M,EAAOE,SAAU+M,EACrC,MACIjN,EAAO6H,MAAQrE,EAAK4J,OAAO,CAACC,EAAiB7M,KACzC,IAAIY,GAAQ,GAAKZ,EAAIR,EAAO6C,MAAMyK,OAIlC,OAHI5N,KAAK0C,cAA4B,MAAZhB,EAAK,KAC1BA,EAAOmM,EAAAA,QAAQC,qBAAqBpM,IAEjCH,KAAKC,IAAImM,EAAS3N,KAAK+N,SAASrM,EAAM1B,KAAKgO,0BAA2BhO,KAAKiO,2BAA2B9F,QAC9GnI,KAAK+N,SAAS,GAAKzN,EAAO8C,MAAOpD,KAAKgO,0BAA2BhO,KAAKiO,2BAA2B,GAAM9F,MAAQmF,GAAmB,CAGjJ,CAEApE,UACA,MAAAvC,CAAOH,EAASJ,GACZf,MAAMsB,OAAOH,EAASJ,GACtB,MAAMkD,EAAOtJ,KAAKmN,UAKlB,GAJInN,KAAKkJ,YAAcI,IACnBtJ,KAAKkJ,UAAYI,EACjBtJ,KAAKgN,cAAe,GAEpBhN,KAAKgN,aAAc,CAEnB,GADAhN,KAAKC,SAAWD,KAAK8E,OAAOhF,QAAQE,KAAK6C,WAAY7C,KAAKqL,gBAAiBrL,KAAKyL,kBAEvE,SADDzL,KAAKkO,cACT,CACI,MAAMC,EAAanO,KAAK8D,OAAOsK,OAAO,CAACtN,EAAKqC,IAAQA,EAAMnD,KAAKqO,6BAC/DrO,KAAKqN,WAAWrN,KAAKC,SAAUkO,EAC/B,CAER,MAAMrO,EAAUE,KAAKF,UACrB,IAAA,MAAWwO,KAAgBtO,KAAKuO,gBAC5B,GAAID,EAAalD,QAAS,CACtB,MAAMoD,EAAS1O,EAAQ0F,QAAQ8I,EAAahO,UACxCN,KAAKC,SAASuO,KACdxO,KAAKC,SAASuO,GAAQC,OAAkC,IAAzBH,EAAanG,QAC5CnI,KAAKC,SAASuO,GAAQrG,MAAQmG,EAAanG,SAAWnI,KAAKC,SAASuO,GAAQrG,MAC5EnI,KAAKC,SAASuO,GAAQxL,UAAYsL,EAAajD,gBAC/CrL,KAAKC,SAASuO,GAAQvL,WAAaqL,EAAa7C,iBAExD,CAEJzL,KAAKgF,OAAO6F,IAAI,UAAW7K,KAAKC,SAASmO,OAAO7F,IAAQA,EAAIkG,SAC5DzO,KAAKgN,cAAe,CACxB,EACIhN,KAAKgN,cAAgBhN,KAAKiN,gBACtBjN,KAAKgN,aACLhN,KAAKgF,OAAO+C,QAAQ,IAEpB/H,KAAKgF,OAAO+C,UAEhB/H,KAAKgN,cAAe,EACpBhN,KAAKiN,cAAe,EAE5B,CAEA,IAAA3E,CAAK9B,EAASJ,UACHpG,KAAK8M,qBACL9M,KAAK+M,gBACZ1H,MAAMiD,KAAK9B,EAASJ,EACxB,CAGA,aAAAiF,GACI,OAAO,SAA4B3J,EAAWZ,GAC1C,cAAeY,GACX,IAAK,SACD,MAAO,CACH+K,KAAM/K,EAAK1C,QAAQ,MAAO,4BAA4B4O,QAE9D,IAAK,YACD,MAAO,GAEf,OAAOlM,CACX,CACJ,CAEA,cAAA+J,GAEA,CAGA,KAAA3D,CAAMhH,EAAKyH,EAAKC,GAChB,GA9I8B7I,EAAAkN,EAAA,SAA3B,IAAM6B,EAAN7B,EAgJP6B,EAAMtP,UAAUuJ,QAAU,eAe1B+F,EAAMtP,UAAUwJ,QAAQ,cAAe,OAAQ,MAAO,uBAAwB,CAAC,OAAQ,SACvF8F,EAAMtP,UAAUwJ,QAAQ,4BAA6B,GAAI,SAAU,kDACnE8F,EAAMtP,UAAUwJ,QAAQ,0BAA2B,UAAW,SAAU,+CACxE8F,EAAMtP,UAAUwJ,QAAQ,0BAA2B,GAAI,SAAU,+CACjE8F,EAAMtP,UAAUwJ,QAAQ,gBAAiB,GAAI,gBAAiB,iBAAkB,KAAM,CAAE+F,WAAYjC,oBC/PvE,yJAFL,+BACG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hpcc-js/dgrid",
3
- "version": "3.5.9",
3
+ "version": "3.6.0",
4
4
  "description": "hpcc-js - Viz DGrid",
5
5
  "type": "module",
6
6
  "main": "./dist/index.umd.cjs",
@@ -37,7 +37,7 @@
37
37
  "update-major": "npx --yes npm-check-updates -u"
38
38
  },
39
39
  "dependencies": {
40
- "@hpcc-js/common": "^3.6.5",
40
+ "@hpcc-js/common": "^3.7.0",
41
41
  "@hpcc-js/util": "^3.4.8"
42
42
  },
43
43
  "peerDependencies": {
@@ -61,5 +61,5 @@
61
61
  "url": "https://github.com/hpcc-systems/Visualization/issues"
62
62
  },
63
63
  "homepage": "https://github.com/hpcc-systems/Visualization",
64
- "gitHead": "34c404f172efc43a9caf59e8e463d1f07d469578"
64
+ "gitHead": "0c1e3df0f2ae628352200f8f8fd6b91b976f69c3"
65
65
  }