ngx-deebodata 0.5.1 → 0.5.2

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.
@@ -385,6 +385,8 @@ class DataTableService {
385
385
  tblLeft = 0;
386
386
  tblRight = 0;
387
387
  dpLim = 1000;
388
+ currPage = 1;
389
+ rowsPerPage = 25;
388
390
  currFilData = [];
389
391
  currMapping = {};
390
392
  mapperWorkerId = 1;
@@ -425,6 +427,8 @@ class DataTableService {
425
427
  groupedBoundsChange = new Subject();
426
428
  mouseupWhileGrouped = new Subject();
427
429
  setIdealColumnWidth = new Subject();
430
+ renderEvent = new Subject();
431
+ forcePageOne = new Subject();
428
432
  currSelRows = []; //just be an index of mainData
429
433
  displayOnlySelRows = false;
430
434
  noDataMsg = "Loading...";
@@ -4890,6 +4894,157 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
4890
4894
  args: ["chartContain", { static: true }]
4891
4895
  }] } });
4892
4896
 
4897
+ class RealPaginator {
4898
+ dataTableService;
4899
+ tblDragService;
4900
+ common;
4901
+ lastPage = signal(100, /* @ts-ignore */
4902
+ ...(ngDevMode ? [{ debugName: "lastPage" }] : /* istanbul ignore next */ []));
4903
+ // skipDDs: any[] = []
4904
+ pageChange = new EventEmitter();
4905
+ btnPageFirst;
4906
+ btnPageBack;
4907
+ btnPageForward;
4908
+ btnPageLast;
4909
+ // @ViewChild("skipTo", { static: true }) skipTo!: ElementRef<HTMLElement>;
4910
+ // @ViewChild("skipToOptions", { static: true }) skipToOptions!: ElementRef<HTMLElement>;
4911
+ paginatorTracker;
4912
+ totalRows;
4913
+ currPage;
4914
+ constructor(dataTableService, tblDragService, common) {
4915
+ this.dataTableService = dataTableService;
4916
+ this.tblDragService = tblDragService;
4917
+ this.common = common;
4918
+ }
4919
+ ngOnInit() {
4920
+ this.setPagi(1);
4921
+ this.dataTableService.renderEvent.subscribe(d => this.setPagi(this.dataTableService.currPage));
4922
+ this.dataTableService.forcePageOne.subscribe(d => this.btnPageFirst.nativeElement.click());
4923
+ }
4924
+ setPagi(page) {
4925
+ const r = (this.dataTableService.currPage - 1) * this.dataTableService.rowsPerPage;
4926
+ this.setPageTracker(Math.min(r + this.dataTableService.rowsPerPage, this.dataTableService.currFilData.length));
4927
+ const pMax = Math.ceil(this.dataTableService.currFilData.length / this.dataTableService.rowsPerPage);
4928
+ this.currPage.nativeElement.textContent = ("Page " + page.toLocaleString(undefined, { maximumFractionDigits: 0 }) + "/" +
4929
+ pMax.toLocaleString(undefined, { maximumFractionDigits: 0 }));
4930
+ // this.skipTo.nativeElement.setAttribute("max", pMax.toString())
4931
+ this.lastPage.set(Math.ceil(this.dataTableService.currFilData?.length / this.dataTableService.rowsPerPage));
4932
+ }
4933
+ // handleRowsPerPageChange(event: any) {//Only for non server side
4934
+ // if(event.target.value && !isNaN(parseInt(event.target.value))){
4935
+ // this.dataTableService.rowsPerPage = parseInt(event.target.value)
4936
+ // dataUpload.methods.renderCurrData()
4937
+ // dataUpload.methods.handleSkipToDD(this.dataTableService.currPage)
4938
+ // const max = Math.ceil(this.dataTableService.currFilData.length/this.rowsPerPage)
4939
+ // document.getElementById("currPage").textContent = "Page " + (this.dataTableService.currPage?.toLocaleString(undefined, { maximumFractionDigits: 0 })) +
4940
+ // ("/" + max.toLocaleString(undefined, { maximumFractionDigits: 0 }))
4941
+ // document.getElementById("skipTo").setAttribute("max", max)
4942
+ // }
4943
+ // }
4944
+ // handleSkipToPage(event) {
4945
+ // if(event && event.type === "blur" && ((event.relatedTarget && /skip-to-options/g.test(event.relatedTarget.className)) ||
4946
+ // (event.relatedTarget && event.relatedTarget.parentElement && /skip-to-options/g.test(event.relatedTarget.parentElement.className)))) return;
4947
+ // if(event.target.value && !isNaN(parseInt(event.target.value))){
4948
+ // let uVal = parseInt(event.target.value)
4949
+ // if(uVal === this.dataTableService.currPage)
4950
+ // return
4951
+ // const max = Math.ceil(this.dataTableService.currFilData.length/this.dataTableService.rowsPerPage)
4952
+ // if(uVal < 1){
4953
+ // uVal = 1
4954
+ // event.target.value = 1
4955
+ // }
4956
+ // if(uVal > max){
4957
+ // uVal = max
4958
+ // event.target.value = max
4959
+ // }
4960
+ // this.dataTableService.currPage = uVal
4961
+ // dataUpload.methods.renderCurrData()
4962
+ // const maxStr = max.toLocaleString(undefined, { maximumFractionDigits: 0 })
4963
+ // document.getElementById("currPage").textContent = ("Page " + (this.dataTableService.currPage?.
4964
+ // toLocaleString(undefined, { maximumFractionDigits: 0 })) + "/" + maxStr)
4965
+ // document.getElementById("btnReset").disabled = false
4966
+ // document.getElementById("skipTo").setAttribute("max", max)
4967
+ // document.getElementById("skipToOptions").className = "skip-to-options-hide"
4968
+ // }
4969
+ // }
4970
+ // setUpHandleSkipToPage(e) {//mock option click
4971
+ // const val = e.target.getAttribute("data-value")
4972
+ // if(val){
4973
+ // const max = Math.ceil(this.dataTableService.currFilData.length/this.dataTableService.rowsPerPage)
4974
+ // const useVal = Math.min(val, max)
4975
+ // document.getElementById("skipTo").value = useVal
4976
+ // dataUpload.methods.handleSkipToPage({ target: { value: useVal } })
4977
+ // } else {
4978
+ // document.getElementById("skipToOptions").className = "skip-to-options-hide"
4979
+ // }
4980
+ // }
4981
+ // setUpHandleSkipToPageOnEnter(e) {
4982
+ // if(common.controller.isEnterKey(e))
4983
+ // dataUpload.methods.setUpHandleSkipToPage(e)
4984
+ // }
4985
+ // handleSkipToPageOnKeyup(e) {
4986
+ // if(common.controller.isEnterKey(e))
4987
+ // dataUpload.methods.handleSkipToPage(e)
4988
+ // }
4989
+ // showSkipToOptions() {
4990
+ // const len = document.getElementsByClassName("skip-to-options").length
4991
+ // if(!len){
4992
+ // document.getElementById("skipToOptions").classList.add("skip-to-options")
4993
+ // setTimeout( function() { window.addEventListener("click", dataUpload.methods.closeSkipOpts) })
4994
+ // }
4995
+ // }
4996
+ // closeSkipOpts(e) {
4997
+ // if(e && e.target && (/skip/g.test(e.target.className) || /skip/g.test(e.target.id)))
4998
+ // return
4999
+ // document.getElementById("skipToOptions").className = "skip-to-options-hide"
5000
+ // window.removeEventListener("click", dataUpload.methods.closeSkipOpts)
5001
+ // }
5002
+ handlePaginatorChange(page) {
5003
+ const max = Math.ceil(this.dataTableService.currFilData.length / this.dataTableService.rowsPerPage);
5004
+ this.dataTableService.currPage = Math.max(1, Math.min(page, max));
5005
+ this.pageChange.emit(this.dataTableService.currPage);
5006
+ // document.getElementById("skipTo").value = this.dataTableService.currPage
5007
+ // document.getElementById("skipTo").setAttribute("max", max)
5008
+ // document.getElementById("btnReset").disabled = false
5009
+ }
5010
+ setPageTracker(len) {
5011
+ const start = ((this.dataTableService.currPage - 1) * (Math.min(this.dataTableService.rowsPerPage, this.dataTableService.currFilData.length))) + 1;
5012
+ this.paginatorTracker.nativeElement.textContent = (start?.toLocaleString(undefined, { maximumFractionDigits: 0 }) + "-" +
5013
+ Math.min(len, (start + (this.dataTableService.rowsPerPage - 1))).toLocaleString(undefined, { maximumFractionDigits: 0 }));
5014
+ this.totalRows.nativeElement.textContent = this.dataTableService.currFilData.length.toLocaleString(undefined, { maximumFractionDigits: 0 });
5015
+ }
5016
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: RealPaginator, deps: [{ token: DataTableService }, { token: TableDragService }, { token: CommonService }], target: i0.ɵɵFactoryTarget.Component });
5017
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: RealPaginator, isStandalone: true, selector: "lib-real-paginator", outputs: { pageChange: "pageChange" }, viewQueries: [{ propertyName: "btnPageFirst", first: true, predicate: ["btnPageFirst"], descendants: true, static: true }, { propertyName: "btnPageBack", first: true, predicate: ["btnPageBack"], descendants: true, static: true }, { propertyName: "btnPageForward", first: true, predicate: ["btnPageForward"], descendants: true, static: true }, { propertyName: "btnPageLast", first: true, predicate: ["btnPageLast"], descendants: true, static: true }, { propertyName: "paginatorTracker", first: true, predicate: ["paginatorTracker"], descendants: true, static: true }, { propertyName: "totalRows", first: true, predicate: ["totalRows"], descendants: true, static: true }, { propertyName: "currPage", first: true, predicate: ["currPage"], descendants: true, static: true }], ngImport: i0, template: "<div id=\"tableFooter\" class=\"data-table-footer\" (mousemove)=\"tblDragService.checkPaginatorBorderCursor($event)\" \r\n(mousemove)=\"tblDragService.handleTableHeightAdjust($event)\" (mousedown)=\"tblDragService.handleTableHeightAdjust($event)\" \r\n(mouseup)=\"tblDragService.handleColResMouseUp($event)\">\r\n <div class=\"right paginator\">\r\n <div class=\"three-qtr-wid\">\r\n @if(!common.goodLs()){<span class=\"v-mid error-message lg-text\">{{\"Invalid License Key\"}} </span>}\r\n <!-- <label for=\"paginator\">Rows per page</label>&nbsp;\r\n <select name=\"paginator\" id=\"paginator\" (change)=\"handleRowsPerPageChange($event)\">\r\n <option value=\"25\" selected>25</option>\r\n <option value=\"50\">50</option>\r\n <option value=\"100\">100</option>\r\n </select>&nbsp;&nbsp;&bull;&nbsp;&nbsp;--><span #paginatorTracker>1-25</span> of <span #totalRows class=\"heavy\"></span>&nbsp;&nbsp;&nbsp; \r\n </div><div class=\"qtr-wid right\">\r\n <button type=\"button\" #btnPageFirst class=\"no-btn btn-page-first\" (click)=\"handlePaginatorChange(1)\" [disabled]=\"dataTableService.currPage <= 1\"><i class=\"material-icons\" aria-hidden=\"false\">first_page</i></button>&nbsp;\r\n <button type=\"button\" #btnPageBack class=\"no-btn btn-page-back\" (click)=\"handlePaginatorChange(dataTableService.currPage-1)\" [disabled]=\"dataTableService.currPage <= 1\"><i class=\"material-icons\" aria-hidden=\"false\">arrow_back_ios</i></button>&nbsp;<span #currPage>\r\n Page {{dataTableService.currPage | number}}</span>&nbsp;<button type=\"button\" #btnPageForward class=\"no-btn btn-page-forward\" [disabled]=\"dataTableService.currPage >= lastPage()\" (click)=\"handlePaginatorChange(dataTableService.currPage+1)\"><i class=\"material-icons\" aria-hidden=\"false\">arrow_forward_ios</i></button>\r\n &nbsp;<button type=\"button\" #btnPageLast class=\"no-btn btn-page-last\" [disabled]=\"dataTableService.currPage >= lastPage()\" (click)=\"handlePaginatorChange(lastPage())\"><i class=\"material-icons\" aria-hidden=\"false\">last_page</i></button>\r\n <!-- &nbsp;&nbsp;<label class=\"skip-lbl\" for=\"skipTo\">Skip To</label>&nbsp;&nbsp;<div class=\"skip-to-contain\"><input type=\"number\" min=\"1\" \r\n name=\"skipTo\" #skipTo placeholder=\"Skip to\" (blur)=\"handleSkipToPage($even.target.value)\" (input)=\"handleSkipToPage($even.target.value)\" \r\n (keyup)=\"handleSkipToPageOnKeyup($even.target.value)\" (focus)=\"showSkipToOptions()\" (click)=\"showSkipToOptions()\"/><div #skipToOptions class=\"skip-to-options-hide\">\r\n <div tabindex=\"0\" [attr.data-value]=\"1\" (click)=\"setUpHandleSkipToPage()\" (keyup)=\"setUpHandleSkipToPageOnEnter()\">1st page</div>\r\n @for(dd of skipDDs; track $index){\r\n <div tabindex=\"0\" [attr.data-value]=\"($index+1)\" (click)=\"setUpHandleSkipToPage()\" (keyup)=\"setUpHandleSkipToPageOnEnter()\">\r\n {{($index+1) + \" out of \" + lastPage()}}\r\n </div>\r\n }\r\n <div tabindex=\"0\" [attr.data-value]=\"lastPage()\" (click)=\"setUpHandleSkipToPage()\" (keyup)=\"setUpHandleSkipToPageOnEnter()\">Last page</div>\r\n </div></div> -->\r\n </div>\r\n </div>\r\n</div>", styles: [".data-table-footer{padding:15px;border-bottom-left-radius:7px;border-bottom-right-radius:7px;box-shadow:0 1px 3px 1px var(--grid-color);-moz-box-shadow:0 1px 3px 1px var(--grid-color);-webkit-box-shadow:0 1px 3px 1px var(--grid-color)}.btn-page-back,.btn-page-forward,.btn-page-first,.btn-page-last{padding:0;width:24px;height:24px;border-radius:50%;vertical-align:middle;color:var(--accent-color)}.btn-page-back,.btn-page-forward{margin:0 3px}.btn-page-first{margin:0 3px 0 0}.btn-page-last{margin:0 7px 0 3px}.btn-page-back:hover,.btn-page-forward:hover,.btn-page-first:hover,.btn-page-last:hover{box-shadow:0 0 3px 2px var(--grid-color);-moz-box-shadow:0 0 3px 2px var(--grid-color);-webkit-box-shadow:0 0 3px 2px var(--grid-color)}.btn-page-back{position:relative}.btn-page-back .material-icons{top:0;left:5px;position:absolute}@media screen and (min-width:860px){.btn-page-back,.btn-page-forward{margin:0 7px}.btn-page-first{margin:0 7px 0 0}.btn-page-last{margin:0 15px 0 7px}}\n", "@charset \"UTF-8\";@font-face{font-family:Roboto Condensed;src:url(https://d2ffvluimla00s.cloudfront.net/RobotoCondensed-VariableFont_wght.ttf) format(\"ttf\")}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://d2ffvluimla00s.cloudfront.net/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format(\"woff2\")}.deebo-data-grid-section{font-family:Roboto Condensed,Arial,Helvetica,sans-serif}:host{--accent-color:rgb(50, 50, 50);--grid-color:rgb(199, 199, 199);--pad-left-base: 33px;--row-num-width: 75px;--reg-font-size: 17px }.relly{position:relative}.hide{display:none!important;max-height:0;max-width:0;top:0;left:0;opacity:0}.ovy{overflow:auto}.no-ovy-y{overflow-y:hidden!important}.pad-top-sm{padding-top:4px!important}.pad-top-ten{padding-top:10px!important}.pad-top-teen{padding-top:17px}.pad-top-thirty,.pad-top-trey{padding-top:33px}.pad-top-much{padding-top:75px}.o-visible{overflow:visible}.dontwrap{white-space:nowrap}.inline-b{display:inline-block}.inline{display:inline}.half-wid{width:50%;vertical-align:top;display:inline-block}.qtr-wid{width:25%;vertical-align:top;display:inline-block}.third-wid{width:33.3%;vertical-align:top;display:inline-block}.two-third-wid{width:66.6%;vertical-align:top;display:inline-block}.three-qtr-wid{width:75%;vertical-align:top;display:inline-block}.v-top{vertical-align:top!important}.v-mid{vertical-align:middle!important}.v-bot{vertical-align:bottom!important}.lg-text{font-size:larger}.xlg-text{font-size:x-large!important}.md-text{font-size:var(--reg-font-size)!important}.small-text{font-size:small}.tiny-text{font-size:x-small}.invisible{visibility:hidden}.flex-center{display:flex;justify-content:center;align-items:center}.flex-item{flex:1 1 auto}.o-x-hidden{overflow-x:hidden!important}.no-weight{font-weight:400!important}.semi-heavy{font-weight:500!important}.heavy{font-weight:700!important}.marauto{margin:0 auto}.center{text-align:center}.left{text-align:left}.right{text-align:right}.btn-reset{border:none;color:#fff;padding:7px 11px;background:maroon}.error-message{color:maroon;font-weight:500}.success{color:green;font-weight:500}.neutral{color:var(--accent-color)}input,select{border:none;padding:4px;border-radius:3px;box-sizing:border-box;font-family:Roboto Condensed,Arial,Helvetica,sans-serif;box-shadow:0 0 1px 1px #afafaf;-moz-box-shadow:0 0 1px 1px #afafaf;-webkit-box-shadow:0 0 1px 1px #afafaf}input[type=radio],input[type=checkbox]{cursor:pointer;box-shadow:none!important;-moz-box-shadow:none!important;-webkit-box-shadow:none!important}button{cursor:pointer}button:focus,input:focus,select:focus,textarea:focus,a:focus{outline-width:0}button:disabled,input:disabled,select:disabled{opacity:.5;cursor:not-allowed}.prevent{opacity:.5;cursor:not-allowed;pointer-events:none}.controls{text-align:right;padding:16px 11px 6px 1px;max-width:100%;clear:both;overflow-x:auto;white-space:nowrap}.controls button{font-size:var(--reg-font-size);margin-right:31px;vertical-align:middle}.controls button span{vertical-align:middle}.controls button:last-of-type{margin-right:0}.data-table{margin-top:11px;overflow:hidden;box-shadow:0 -1px 3px 1px var(--grid-color);-moz-box-shadow:0 -1px 3px 1px var(--grid-color);-webkit-box-shadow:0 -1px 3px 1px var(--grid-color)}.sel-rows-checked{color:#00a8f399!important}.save-hilite{padding:2px 4px;border-radius:3px;background:#ebebeb;box-shadow:0 0 3px 1px var(--accent-color);-moz-box-shadow:0 0px 3px 1px var(--accent-color);-webkit-box-shadow:0 0px 3px 1px var(--accent-color)}.btn-ctrl-sel-rows,.btn-export-or-print{border:none;padding:3px 4px;border-radius:3px;background:#f5f5f5;vertical-align:middle;box-shadow:0 0 2px 1px var(--accent-color);-moz-box-shadow:0 0 2px 1px var(--accent-color);-webkit-box-shadow:0 0 2px 1px var(--accent-color)}.deebo-dd-contain-div:last-of-type{margin-right:0!important}.btn-export{width:100%;text-transform:uppercase}.btn-export:hover{text-decoration:underline}.btn-ctrl-sel-rows:hover,.btn-export-or-print:hover{background:#ebebeb;box-shadow:0 0 6px 2px gray;-moz-box-shadow:0 0 6px 2px gray;-webkit-box-shadow:0 0 6px 2px gray}.btn-center-selected{padding:2px 4px;border-radius:5px;background:#f5f5f5;box-shadow:0 0 6px 2px gray;-moz-box-shadow:0 0 6px 2px gray;-webkit-box-shadow:0 0 6px 2px gray}.btn-ctrl-sel-rows .material-icons{font-size:18px;font-weight:600;vertical-align:middle}.btn-ctrl-sel-rows .material-icons:not(.error-message){color:var(--accent-color)}.data-table-headers{cursor:pointer;white-space:nowrap;border-bottom:1px solid var(--grid-color)}.data-table-row{white-space:nowrap}.data-table-row:hover,.data-table-row .col-item-freeze:hover{background:#f3f3f3}.data-row-selected{background:#d6d6d6!important}.table-working{opacity:.1;pointer-events:none}.select-row-check{left:9px;z-index:10;cursor:pointer;margin:0;position:absolute;padding:0!important}.gb-row-num{left:2px;z-index:10;cursor:pointer;margin:0;font-size:x-small;position:absolute;padding:0!important}.mock-html{width:50%;height:18px;margin:0 auto;border-radius:11px;background:var(--grid-color)}.abs-right{top:7px;right:7px;position:absolute}.has-symbol:after{content:attr(data-symbol);padding-left:3px}.has-symbol-b:before{content:attr(data-symbol);padding-right:3px}.data-table-row-no-data{font-size:xx-large;color:gray;font-weight:500;text-shadow:-1px -1px var(--accent-color)}.data-row-selected .col-item-freeze,.data-row-selected .data-cell,.data-row-selected:hover,.data-row-selected .col-item-freeze:hover,.data-row-selected .data-cell:hover{background:#d6d6d6!important}.data-table-headers .col-item-freeze:first-of-type{border-bottom:1px solid var(--grid-color)}.col-header{z-index:2;width:125px;overflow:auto;cursor:grab;padding:7px 3px;text-align:center;position:relative;box-sizing:border-box;display:inline-block;vertical-align:top;white-space:pre-wrap;word-wrap:break-word;background:#fafafa;border-right:1px solid var(--grid-color)}.col-header button,.col-header span,.col-header select{cursor:pointer;vertical-align:middle}.col-header input{vertical-align:middle}.col-header-img-container{overflow-y:hidden;text-align:center;display:inline-block;vertical-align:middle;background-size:cover;background-position:center;background-repeat:no-repeat}.col-header-minimized{width:0!important;height:0!important;padding:0!important;overflow:hidden!important;border-bottom:none!important;border-right:none!important;transition:width .3s ease}.btn-maximize-col{border:none;border-radius:5px;background:#f5f5f5;box-shadow:0 0 3px 2px gray;font-size:var(--reg-font-size);margin-right:27px;padding:4px}.no-btn{border:none;background:none}.col-item-freeze{left:0;z-index:3;position:sticky;background:#fff;box-shadow:2px 0 3px 0 var(--grid-color);-moz-box-shadow:2px 0px 3px 0px var(--grid-color);-webkit-box-shadow:2px 0px 3px 0px var(--grid-color)}.col-header input,.select-filter{width:40%;margin:11px 0 1px}.sel-fil-container{z-index:5}.edit-input-option-cont{left:0;right:0}.edit-input-opt button{width:100%;font-size:15px;padding:11px 0 11px 17px;text-align:left!important}.selfil-opt-contain,.edit-input-option-cont{overflow:auto;max-height:240px;border-radius:5px;position:absolute;background:#fff;box-shadow:0 1px 3px 1px var(--grid-color);-moz-box-shadow:0 1px 3px 1px var(--grid-color);-webkit-box-shadow:0 1px 3px 1px var(--grid-color)}.selfil-div,.edit-input-opt{cursor:pointer;text-align:left;border-bottom:1px solid var(--grid-color)}.selfil-div:hover,.edit-input-opt:hover{background:#ebebeb}.selfil-div:last-of-type,.edit-input-opt:last-of-type{border-bottom:none}.selfil-div label{width:calc(100% - 22px);font-size:15px;cursor:pointer;padding:11px;display:inline-block}.selfil-div label input[type=checkbox]{margin-right:11px;vertical-align:middle}.select-filter-comparator{width:36px;z-index:3;opacity:0;position:relative;margin:11px 0 1px 15px}.btn-fil-comp{top:2px;left:-36px;border:none;position:absolute;background:#fafafa}.btn-fil-comp i{color:var(--accent-color)}@media screen and (min-width:960px){.col-header input,.select-filter,.select-filter-comparator{margin-top:7px;margin-bottom:1px}}.data-cell{width:125px;padding:11px 6px 11px 17px;overflow:auto;font-size:15px;word-wrap:break-word;white-space:pre-line;vertical-align:top;box-sizing:border-box;display:inline-flex;align-items:center;border-right:1px solid var(--grid-color);border-bottom:1px solid var(--grid-color)}input.edit-input{border-radius:0}.data-cell:focus,input.edit-input:focus{outline:1px solid #00a8f3}.dragger-cell-focused{background:#00a8f333;border-left:1px solid #00a8f3;border-right:1px solid #00a8f3!important}.focused-cell-dragger{width:9px;height:9px;cursor:crosshair;position:absolute;background:#00a8f3;box-shadow:0 0 1px 1px var(--accent-color);-moz-box-shadow:0 0 1px 1px var(--accent-color);-webkit-box-shadow:0 0 1px 1px var(--accent-color)}.holding-check{padding-left:44px}.data-cell-riiight{padding:11px 17px 11px 6px;justify-content:right}.data-cell-ceeenter{padding:11px 6px;justify-content:center!important}.cell-og-link{line-height:0;visibility:hidden}.cell-og-link:before{visibility:visible;content:attr(data-title)}.moveable-col{cursor:col-resize!important}.moveable-row{cursor:row-resize!important}.data-sort-arr{cursor:pointer;margin-left:11px;border:none;background:none;padding:0 0 0 2px;color:var(--accent-color)}.data-sort-arr .material-icons{font-size:20px}.data-col-info{left:10px;top:12px;padding:0;border:none;cursor:pointer;background:none;position:absolute;color:var(--accent-color)}.data-col-info .material-icons{font-size:16px}.sort-order-indicator{font-weight:600;vertical-align:middle;font-size:16px}.btn-min-col{cursor:pointer;top:0;right:2px;font-size:20px;border:none;background:none;position:absolute;padding:0 2px 5px 0;color:var(--accent-color)}.btn-min-col-hide{z-index:0;visibility:hidden;pointer-events:none}.btn-freeze-col{float:left;border:none;cursor:pointer;background:none}.btn-freeze-col .material-icons{font-size:16px;color:var(--accent-color)}.hidden-cols{max-width:100%;overflow-x:auto;clear:both;white-space:nowrap;padding:17px 15px 5px 4px}.hidden-cols button:first-of-type:before{content:\"Hidden Columns\";font-size:12px;font-weight:600;padding-right:11px;vertical-align:middle}.col-header span{word-wrap:break-word;vertical-align:middle;font-size:var(--reg-font-size)}.o-ins-div span,.o-ins-div i{vertical-align:middle;font-size:16px}.aux-chip{text-align:center;padding-bottom:33px;word-wrap:break-word;white-space:pre-wrap}.insights{padding:17px 15px}.insight-field{min-height:100px;padding:21px 0;font-size:large;white-space:pre-wrap;word-wrap:break-word;border-bottom:1px solid lightgray}@media screen and (max-width:760px){.insight-field:first-of-type{padding-top:7px}}@media screen and (min-width:760px){.insight-field-row{border-bottom:1px solid lightgray}.insight-field,.aux-chip{width:50%;vertical-align:top;display:inline-block;border-bottom:none}}@media screen and (min-width:1024px){.insight-field,.aux-chip{width:33%}}.chart-label-cont{padding-top:10px;text-align:center}.pie-piece-label{padding-top:5px;margin-right:27px;display:inline-block}.pie-piece-label-sq{width:11px;height:11px;margin:0 0 0 2px;display:inline-block;vertical-align:middle}.pie-piece-label span{font-size:small}.pie-piece-label span:before{font-size:smaller;padding-right:4px;font-weight:600;content:attr(data-percent)}.pie-layover{border-radius:50%;background:#fff;position:absolute;padding:5px!important;display:flex;font-size:17px;align-items:center;overflow:hidden;box-sizing:border-box;justify-content:center;color:var(--accent-color)}.pie-layover div{font-weight:500;padding:0!important}.ins-even-dist-ct{font-size:24px;font-weight:500}.line-graph-container{padding:11px 0 33px 7px!important;box-sizing:border-box;margin-left:11px}.lg-title-cont{padding:0!important;text-align:center;margin:17px 11px}.lg-n-marker-cont{width:60px;position:relative;padding:0!important;box-sizing:border-box;display:inline-block;vertical-align:top}.lg-n-marker-cont:before{top:45%;left:-37px;display:block;position:absolute;white-space:nowrap;color:var(--grid-color);content:attr(data-column);transform:rotate(-90deg)}.lg-n-marker,.lg-n-marker-h{padding:0 11px 0 0!important;font-size:small;position:relative;text-align:right;white-space:nowrap;box-sizing:border-box}.line-graph{width:calc(92% - 60px);position:relative;box-sizing:border-box;display:inline-block;vertical-align:top;padding:0!important;border-left:1px solid var(--accent-color);border-bottom:1px solid var(--accent-color)}.lg-lbl-x{left:0;right:0;bottom:-45px;font-size:small;font-weight:500;text-align:center;position:absolute;padding:0!important}.btn-line-graph-opts{margin:0;padding:4px;background:none;border-top:1px solid var(--accent-color);border-left:1px solid var(--accent-color);border-bottom:1px solid var(--accent-color)}.sp-line-graph-title{margin-top:7px;font-size:large;text-decoration:underline}.lg-dt-marker,.lg-dt-marker-h,.vd-n-marker,.vd-n-marker-h{bottom:-22px;font-size:small;position:absolute;text-align:center;padding:0!important;display:inline-block;box-sizing:border-box}.lg-dt-marker-h,.vd-n-marker-h{visibility:hidden}.lg-dt-marker.visible-marker{margin-left:21px}.lg-n-marker-h{height:0;visibility:hidden}.visible-marker{z-index:2;font-weight:600;background:#fff;height:unset!important;padding:1px 2px!important;visibility:visible!important;box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.visible-marker:before{font-weight:600}.lg-dt-marker:before{top:-15px;left:0;content:\"|\";position:absolute}.vd-n-marker:before{top:-15px;left:50%;content:\"|\";left:calc(50% - 2px);position:absolute}.lg-n-marker:before{top:-4px;right:-3px;content:\"-\";font-weight:600;font-size:large;position:absolute;background:#fff}.btn-line-graph-opts:hover{background:#d6d6d6;transition:background .3s ease}.btn-line-graph-opts:last-of-type{border-right:1px solid var(--accent-color)}.btn-lg-sel{color:#fff!important;background:var(--accent-color);box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.btn-lg-sel:hover{background:var(--accent-color)}.lg-plot{height:8px;width:8px;opacity:.3;cursor:pointer;border-radius:50%;position:absolute;padding:0!important;background:var(--accent-color)}.lg-plot:hover{z-index:100;opacity:1!important}.lg-plot:hover:after{padding:3px;display:inline-block;font-size:small;border-radius:5px;margin:0 0 0 25px;font-weight:700;content:attr(data-number);background:#fff!important;box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.lg-plot-opq{opacity:0;background:#fff}.lg-plot-opq:hover{opacity:1!important;background:var(--grid-color);transition:opacity .2s ease}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:\"liga\";-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }] });
5018
+ }
5019
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: RealPaginator, decorators: [{
5020
+ type: Component,
5021
+ args: [{ selector: 'lib-real-paginator', imports: [CommonModule, DecimalPipe], template: "<div id=\"tableFooter\" class=\"data-table-footer\" (mousemove)=\"tblDragService.checkPaginatorBorderCursor($event)\" \r\n(mousemove)=\"tblDragService.handleTableHeightAdjust($event)\" (mousedown)=\"tblDragService.handleTableHeightAdjust($event)\" \r\n(mouseup)=\"tblDragService.handleColResMouseUp($event)\">\r\n <div class=\"right paginator\">\r\n <div class=\"three-qtr-wid\">\r\n @if(!common.goodLs()){<span class=\"v-mid error-message lg-text\">{{\"Invalid License Key\"}} </span>}\r\n <!-- <label for=\"paginator\">Rows per page</label>&nbsp;\r\n <select name=\"paginator\" id=\"paginator\" (change)=\"handleRowsPerPageChange($event)\">\r\n <option value=\"25\" selected>25</option>\r\n <option value=\"50\">50</option>\r\n <option value=\"100\">100</option>\r\n </select>&nbsp;&nbsp;&bull;&nbsp;&nbsp;--><span #paginatorTracker>1-25</span> of <span #totalRows class=\"heavy\"></span>&nbsp;&nbsp;&nbsp; \r\n </div><div class=\"qtr-wid right\">\r\n <button type=\"button\" #btnPageFirst class=\"no-btn btn-page-first\" (click)=\"handlePaginatorChange(1)\" [disabled]=\"dataTableService.currPage <= 1\"><i class=\"material-icons\" aria-hidden=\"false\">first_page</i></button>&nbsp;\r\n <button type=\"button\" #btnPageBack class=\"no-btn btn-page-back\" (click)=\"handlePaginatorChange(dataTableService.currPage-1)\" [disabled]=\"dataTableService.currPage <= 1\"><i class=\"material-icons\" aria-hidden=\"false\">arrow_back_ios</i></button>&nbsp;<span #currPage>\r\n Page {{dataTableService.currPage | number}}</span>&nbsp;<button type=\"button\" #btnPageForward class=\"no-btn btn-page-forward\" [disabled]=\"dataTableService.currPage >= lastPage()\" (click)=\"handlePaginatorChange(dataTableService.currPage+1)\"><i class=\"material-icons\" aria-hidden=\"false\">arrow_forward_ios</i></button>\r\n &nbsp;<button type=\"button\" #btnPageLast class=\"no-btn btn-page-last\" [disabled]=\"dataTableService.currPage >= lastPage()\" (click)=\"handlePaginatorChange(lastPage())\"><i class=\"material-icons\" aria-hidden=\"false\">last_page</i></button>\r\n <!-- &nbsp;&nbsp;<label class=\"skip-lbl\" for=\"skipTo\">Skip To</label>&nbsp;&nbsp;<div class=\"skip-to-contain\"><input type=\"number\" min=\"1\" \r\n name=\"skipTo\" #skipTo placeholder=\"Skip to\" (blur)=\"handleSkipToPage($even.target.value)\" (input)=\"handleSkipToPage($even.target.value)\" \r\n (keyup)=\"handleSkipToPageOnKeyup($even.target.value)\" (focus)=\"showSkipToOptions()\" (click)=\"showSkipToOptions()\"/><div #skipToOptions class=\"skip-to-options-hide\">\r\n <div tabindex=\"0\" [attr.data-value]=\"1\" (click)=\"setUpHandleSkipToPage()\" (keyup)=\"setUpHandleSkipToPageOnEnter()\">1st page</div>\r\n @for(dd of skipDDs; track $index){\r\n <div tabindex=\"0\" [attr.data-value]=\"($index+1)\" (click)=\"setUpHandleSkipToPage()\" (keyup)=\"setUpHandleSkipToPageOnEnter()\">\r\n {{($index+1) + \" out of \" + lastPage()}}\r\n </div>\r\n }\r\n <div tabindex=\"0\" [attr.data-value]=\"lastPage()\" (click)=\"setUpHandleSkipToPage()\" (keyup)=\"setUpHandleSkipToPageOnEnter()\">Last page</div>\r\n </div></div> -->\r\n </div>\r\n </div>\r\n</div>", styles: [".data-table-footer{padding:15px;border-bottom-left-radius:7px;border-bottom-right-radius:7px;box-shadow:0 1px 3px 1px var(--grid-color);-moz-box-shadow:0 1px 3px 1px var(--grid-color);-webkit-box-shadow:0 1px 3px 1px var(--grid-color)}.btn-page-back,.btn-page-forward,.btn-page-first,.btn-page-last{padding:0;width:24px;height:24px;border-radius:50%;vertical-align:middle;color:var(--accent-color)}.btn-page-back,.btn-page-forward{margin:0 3px}.btn-page-first{margin:0 3px 0 0}.btn-page-last{margin:0 7px 0 3px}.btn-page-back:hover,.btn-page-forward:hover,.btn-page-first:hover,.btn-page-last:hover{box-shadow:0 0 3px 2px var(--grid-color);-moz-box-shadow:0 0 3px 2px var(--grid-color);-webkit-box-shadow:0 0 3px 2px var(--grid-color)}.btn-page-back{position:relative}.btn-page-back .material-icons{top:0;left:5px;position:absolute}@media screen and (min-width:860px){.btn-page-back,.btn-page-forward{margin:0 7px}.btn-page-first{margin:0 7px 0 0}.btn-page-last{margin:0 15px 0 7px}}\n", "@charset \"UTF-8\";@font-face{font-family:Roboto Condensed;src:url(https://d2ffvluimla00s.cloudfront.net/RobotoCondensed-VariableFont_wght.ttf) format(\"ttf\")}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://d2ffvluimla00s.cloudfront.net/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format(\"woff2\")}.deebo-data-grid-section{font-family:Roboto Condensed,Arial,Helvetica,sans-serif}:host{--accent-color:rgb(50, 50, 50);--grid-color:rgb(199, 199, 199);--pad-left-base: 33px;--row-num-width: 75px;--reg-font-size: 17px }.relly{position:relative}.hide{display:none!important;max-height:0;max-width:0;top:0;left:0;opacity:0}.ovy{overflow:auto}.no-ovy-y{overflow-y:hidden!important}.pad-top-sm{padding-top:4px!important}.pad-top-ten{padding-top:10px!important}.pad-top-teen{padding-top:17px}.pad-top-thirty,.pad-top-trey{padding-top:33px}.pad-top-much{padding-top:75px}.o-visible{overflow:visible}.dontwrap{white-space:nowrap}.inline-b{display:inline-block}.inline{display:inline}.half-wid{width:50%;vertical-align:top;display:inline-block}.qtr-wid{width:25%;vertical-align:top;display:inline-block}.third-wid{width:33.3%;vertical-align:top;display:inline-block}.two-third-wid{width:66.6%;vertical-align:top;display:inline-block}.three-qtr-wid{width:75%;vertical-align:top;display:inline-block}.v-top{vertical-align:top!important}.v-mid{vertical-align:middle!important}.v-bot{vertical-align:bottom!important}.lg-text{font-size:larger}.xlg-text{font-size:x-large!important}.md-text{font-size:var(--reg-font-size)!important}.small-text{font-size:small}.tiny-text{font-size:x-small}.invisible{visibility:hidden}.flex-center{display:flex;justify-content:center;align-items:center}.flex-item{flex:1 1 auto}.o-x-hidden{overflow-x:hidden!important}.no-weight{font-weight:400!important}.semi-heavy{font-weight:500!important}.heavy{font-weight:700!important}.marauto{margin:0 auto}.center{text-align:center}.left{text-align:left}.right{text-align:right}.btn-reset{border:none;color:#fff;padding:7px 11px;background:maroon}.error-message{color:maroon;font-weight:500}.success{color:green;font-weight:500}.neutral{color:var(--accent-color)}input,select{border:none;padding:4px;border-radius:3px;box-sizing:border-box;font-family:Roboto Condensed,Arial,Helvetica,sans-serif;box-shadow:0 0 1px 1px #afafaf;-moz-box-shadow:0 0 1px 1px #afafaf;-webkit-box-shadow:0 0 1px 1px #afafaf}input[type=radio],input[type=checkbox]{cursor:pointer;box-shadow:none!important;-moz-box-shadow:none!important;-webkit-box-shadow:none!important}button{cursor:pointer}button:focus,input:focus,select:focus,textarea:focus,a:focus{outline-width:0}button:disabled,input:disabled,select:disabled{opacity:.5;cursor:not-allowed}.prevent{opacity:.5;cursor:not-allowed;pointer-events:none}.controls{text-align:right;padding:16px 11px 6px 1px;max-width:100%;clear:both;overflow-x:auto;white-space:nowrap}.controls button{font-size:var(--reg-font-size);margin-right:31px;vertical-align:middle}.controls button span{vertical-align:middle}.controls button:last-of-type{margin-right:0}.data-table{margin-top:11px;overflow:hidden;box-shadow:0 -1px 3px 1px var(--grid-color);-moz-box-shadow:0 -1px 3px 1px var(--grid-color);-webkit-box-shadow:0 -1px 3px 1px var(--grid-color)}.sel-rows-checked{color:#00a8f399!important}.save-hilite{padding:2px 4px;border-radius:3px;background:#ebebeb;box-shadow:0 0 3px 1px var(--accent-color);-moz-box-shadow:0 0px 3px 1px var(--accent-color);-webkit-box-shadow:0 0px 3px 1px var(--accent-color)}.btn-ctrl-sel-rows,.btn-export-or-print{border:none;padding:3px 4px;border-radius:3px;background:#f5f5f5;vertical-align:middle;box-shadow:0 0 2px 1px var(--accent-color);-moz-box-shadow:0 0 2px 1px var(--accent-color);-webkit-box-shadow:0 0 2px 1px var(--accent-color)}.deebo-dd-contain-div:last-of-type{margin-right:0!important}.btn-export{width:100%;text-transform:uppercase}.btn-export:hover{text-decoration:underline}.btn-ctrl-sel-rows:hover,.btn-export-or-print:hover{background:#ebebeb;box-shadow:0 0 6px 2px gray;-moz-box-shadow:0 0 6px 2px gray;-webkit-box-shadow:0 0 6px 2px gray}.btn-center-selected{padding:2px 4px;border-radius:5px;background:#f5f5f5;box-shadow:0 0 6px 2px gray;-moz-box-shadow:0 0 6px 2px gray;-webkit-box-shadow:0 0 6px 2px gray}.btn-ctrl-sel-rows .material-icons{font-size:18px;font-weight:600;vertical-align:middle}.btn-ctrl-sel-rows .material-icons:not(.error-message){color:var(--accent-color)}.data-table-headers{cursor:pointer;white-space:nowrap;border-bottom:1px solid var(--grid-color)}.data-table-row{white-space:nowrap}.data-table-row:hover,.data-table-row .col-item-freeze:hover{background:#f3f3f3}.data-row-selected{background:#d6d6d6!important}.table-working{opacity:.1;pointer-events:none}.select-row-check{left:9px;z-index:10;cursor:pointer;margin:0;position:absolute;padding:0!important}.gb-row-num{left:2px;z-index:10;cursor:pointer;margin:0;font-size:x-small;position:absolute;padding:0!important}.mock-html{width:50%;height:18px;margin:0 auto;border-radius:11px;background:var(--grid-color)}.abs-right{top:7px;right:7px;position:absolute}.has-symbol:after{content:attr(data-symbol);padding-left:3px}.has-symbol-b:before{content:attr(data-symbol);padding-right:3px}.data-table-row-no-data{font-size:xx-large;color:gray;font-weight:500;text-shadow:-1px -1px var(--accent-color)}.data-row-selected .col-item-freeze,.data-row-selected .data-cell,.data-row-selected:hover,.data-row-selected .col-item-freeze:hover,.data-row-selected .data-cell:hover{background:#d6d6d6!important}.data-table-headers .col-item-freeze:first-of-type{border-bottom:1px solid var(--grid-color)}.col-header{z-index:2;width:125px;overflow:auto;cursor:grab;padding:7px 3px;text-align:center;position:relative;box-sizing:border-box;display:inline-block;vertical-align:top;white-space:pre-wrap;word-wrap:break-word;background:#fafafa;border-right:1px solid var(--grid-color)}.col-header button,.col-header span,.col-header select{cursor:pointer;vertical-align:middle}.col-header input{vertical-align:middle}.col-header-img-container{overflow-y:hidden;text-align:center;display:inline-block;vertical-align:middle;background-size:cover;background-position:center;background-repeat:no-repeat}.col-header-minimized{width:0!important;height:0!important;padding:0!important;overflow:hidden!important;border-bottom:none!important;border-right:none!important;transition:width .3s ease}.btn-maximize-col{border:none;border-radius:5px;background:#f5f5f5;box-shadow:0 0 3px 2px gray;font-size:var(--reg-font-size);margin-right:27px;padding:4px}.no-btn{border:none;background:none}.col-item-freeze{left:0;z-index:3;position:sticky;background:#fff;box-shadow:2px 0 3px 0 var(--grid-color);-moz-box-shadow:2px 0px 3px 0px var(--grid-color);-webkit-box-shadow:2px 0px 3px 0px var(--grid-color)}.col-header input,.select-filter{width:40%;margin:11px 0 1px}.sel-fil-container{z-index:5}.edit-input-option-cont{left:0;right:0}.edit-input-opt button{width:100%;font-size:15px;padding:11px 0 11px 17px;text-align:left!important}.selfil-opt-contain,.edit-input-option-cont{overflow:auto;max-height:240px;border-radius:5px;position:absolute;background:#fff;box-shadow:0 1px 3px 1px var(--grid-color);-moz-box-shadow:0 1px 3px 1px var(--grid-color);-webkit-box-shadow:0 1px 3px 1px var(--grid-color)}.selfil-div,.edit-input-opt{cursor:pointer;text-align:left;border-bottom:1px solid var(--grid-color)}.selfil-div:hover,.edit-input-opt:hover{background:#ebebeb}.selfil-div:last-of-type,.edit-input-opt:last-of-type{border-bottom:none}.selfil-div label{width:calc(100% - 22px);font-size:15px;cursor:pointer;padding:11px;display:inline-block}.selfil-div label input[type=checkbox]{margin-right:11px;vertical-align:middle}.select-filter-comparator{width:36px;z-index:3;opacity:0;position:relative;margin:11px 0 1px 15px}.btn-fil-comp{top:2px;left:-36px;border:none;position:absolute;background:#fafafa}.btn-fil-comp i{color:var(--accent-color)}@media screen and (min-width:960px){.col-header input,.select-filter,.select-filter-comparator{margin-top:7px;margin-bottom:1px}}.data-cell{width:125px;padding:11px 6px 11px 17px;overflow:auto;font-size:15px;word-wrap:break-word;white-space:pre-line;vertical-align:top;box-sizing:border-box;display:inline-flex;align-items:center;border-right:1px solid var(--grid-color);border-bottom:1px solid var(--grid-color)}input.edit-input{border-radius:0}.data-cell:focus,input.edit-input:focus{outline:1px solid #00a8f3}.dragger-cell-focused{background:#00a8f333;border-left:1px solid #00a8f3;border-right:1px solid #00a8f3!important}.focused-cell-dragger{width:9px;height:9px;cursor:crosshair;position:absolute;background:#00a8f3;box-shadow:0 0 1px 1px var(--accent-color);-moz-box-shadow:0 0 1px 1px var(--accent-color);-webkit-box-shadow:0 0 1px 1px var(--accent-color)}.holding-check{padding-left:44px}.data-cell-riiight{padding:11px 17px 11px 6px;justify-content:right}.data-cell-ceeenter{padding:11px 6px;justify-content:center!important}.cell-og-link{line-height:0;visibility:hidden}.cell-og-link:before{visibility:visible;content:attr(data-title)}.moveable-col{cursor:col-resize!important}.moveable-row{cursor:row-resize!important}.data-sort-arr{cursor:pointer;margin-left:11px;border:none;background:none;padding:0 0 0 2px;color:var(--accent-color)}.data-sort-arr .material-icons{font-size:20px}.data-col-info{left:10px;top:12px;padding:0;border:none;cursor:pointer;background:none;position:absolute;color:var(--accent-color)}.data-col-info .material-icons{font-size:16px}.sort-order-indicator{font-weight:600;vertical-align:middle;font-size:16px}.btn-min-col{cursor:pointer;top:0;right:2px;font-size:20px;border:none;background:none;position:absolute;padding:0 2px 5px 0;color:var(--accent-color)}.btn-min-col-hide{z-index:0;visibility:hidden;pointer-events:none}.btn-freeze-col{float:left;border:none;cursor:pointer;background:none}.btn-freeze-col .material-icons{font-size:16px;color:var(--accent-color)}.hidden-cols{max-width:100%;overflow-x:auto;clear:both;white-space:nowrap;padding:17px 15px 5px 4px}.hidden-cols button:first-of-type:before{content:\"Hidden Columns\";font-size:12px;font-weight:600;padding-right:11px;vertical-align:middle}.col-header span{word-wrap:break-word;vertical-align:middle;font-size:var(--reg-font-size)}.o-ins-div span,.o-ins-div i{vertical-align:middle;font-size:16px}.aux-chip{text-align:center;padding-bottom:33px;word-wrap:break-word;white-space:pre-wrap}.insights{padding:17px 15px}.insight-field{min-height:100px;padding:21px 0;font-size:large;white-space:pre-wrap;word-wrap:break-word;border-bottom:1px solid lightgray}@media screen and (max-width:760px){.insight-field:first-of-type{padding-top:7px}}@media screen and (min-width:760px){.insight-field-row{border-bottom:1px solid lightgray}.insight-field,.aux-chip{width:50%;vertical-align:top;display:inline-block;border-bottom:none}}@media screen and (min-width:1024px){.insight-field,.aux-chip{width:33%}}.chart-label-cont{padding-top:10px;text-align:center}.pie-piece-label{padding-top:5px;margin-right:27px;display:inline-block}.pie-piece-label-sq{width:11px;height:11px;margin:0 0 0 2px;display:inline-block;vertical-align:middle}.pie-piece-label span{font-size:small}.pie-piece-label span:before{font-size:smaller;padding-right:4px;font-weight:600;content:attr(data-percent)}.pie-layover{border-radius:50%;background:#fff;position:absolute;padding:5px!important;display:flex;font-size:17px;align-items:center;overflow:hidden;box-sizing:border-box;justify-content:center;color:var(--accent-color)}.pie-layover div{font-weight:500;padding:0!important}.ins-even-dist-ct{font-size:24px;font-weight:500}.line-graph-container{padding:11px 0 33px 7px!important;box-sizing:border-box;margin-left:11px}.lg-title-cont{padding:0!important;text-align:center;margin:17px 11px}.lg-n-marker-cont{width:60px;position:relative;padding:0!important;box-sizing:border-box;display:inline-block;vertical-align:top}.lg-n-marker-cont:before{top:45%;left:-37px;display:block;position:absolute;white-space:nowrap;color:var(--grid-color);content:attr(data-column);transform:rotate(-90deg)}.lg-n-marker,.lg-n-marker-h{padding:0 11px 0 0!important;font-size:small;position:relative;text-align:right;white-space:nowrap;box-sizing:border-box}.line-graph{width:calc(92% - 60px);position:relative;box-sizing:border-box;display:inline-block;vertical-align:top;padding:0!important;border-left:1px solid var(--accent-color);border-bottom:1px solid var(--accent-color)}.lg-lbl-x{left:0;right:0;bottom:-45px;font-size:small;font-weight:500;text-align:center;position:absolute;padding:0!important}.btn-line-graph-opts{margin:0;padding:4px;background:none;border-top:1px solid var(--accent-color);border-left:1px solid var(--accent-color);border-bottom:1px solid var(--accent-color)}.sp-line-graph-title{margin-top:7px;font-size:large;text-decoration:underline}.lg-dt-marker,.lg-dt-marker-h,.vd-n-marker,.vd-n-marker-h{bottom:-22px;font-size:small;position:absolute;text-align:center;padding:0!important;display:inline-block;box-sizing:border-box}.lg-dt-marker-h,.vd-n-marker-h{visibility:hidden}.lg-dt-marker.visible-marker{margin-left:21px}.lg-n-marker-h{height:0;visibility:hidden}.visible-marker{z-index:2;font-weight:600;background:#fff;height:unset!important;padding:1px 2px!important;visibility:visible!important;box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.visible-marker:before{font-weight:600}.lg-dt-marker:before{top:-15px;left:0;content:\"|\";position:absolute}.vd-n-marker:before{top:-15px;left:50%;content:\"|\";left:calc(50% - 2px);position:absolute}.lg-n-marker:before{top:-4px;right:-3px;content:\"-\";font-weight:600;font-size:large;position:absolute;background:#fff}.btn-line-graph-opts:hover{background:#d6d6d6;transition:background .3s ease}.btn-line-graph-opts:last-of-type{border-right:1px solid var(--accent-color)}.btn-lg-sel{color:#fff!important;background:var(--accent-color);box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.btn-lg-sel:hover{background:var(--accent-color)}.lg-plot{height:8px;width:8px;opacity:.3;cursor:pointer;border-radius:50%;position:absolute;padding:0!important;background:var(--accent-color)}.lg-plot:hover{z-index:100;opacity:1!important}.lg-plot:hover:after{padding:3px;display:inline-block;font-size:small;border-radius:5px;margin:0 0 0 25px;font-weight:700;content:attr(data-number);background:#fff!important;box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.lg-plot-opq{opacity:0;background:#fff}.lg-plot-opq:hover{opacity:1!important;background:var(--grid-color);transition:opacity .2s ease}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:\"liga\";-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}\n"] }]
5022
+ }], ctorParameters: () => [{ type: DataTableService }, { type: TableDragService }, { type: CommonService }], propDecorators: { pageChange: [{
5023
+ type: Output,
5024
+ args: ["pageChange"]
5025
+ }], btnPageFirst: [{
5026
+ type: ViewChild,
5027
+ args: ["btnPageFirst", { static: true }]
5028
+ }], btnPageBack: [{
5029
+ type: ViewChild,
5030
+ args: ["btnPageBack", { static: true }]
5031
+ }], btnPageForward: [{
5032
+ type: ViewChild,
5033
+ args: ["btnPageForward", { static: true }]
5034
+ }], btnPageLast: [{
5035
+ type: ViewChild,
5036
+ args: ["btnPageLast", { static: true }]
5037
+ }], paginatorTracker: [{
5038
+ type: ViewChild,
5039
+ args: ["paginatorTracker", { static: true }]
5040
+ }], totalRows: [{
5041
+ type: ViewChild,
5042
+ args: ["totalRows", { static: true }]
5043
+ }], currPage: [{
5044
+ type: ViewChild,
5045
+ args: ["currPage", { static: true }]
5046
+ }] } });
5047
+
4893
5048
  class NgxDeebodata {
4894
5049
  dataTableService;
4895
5050
  tblDragService;
@@ -4940,7 +5095,8 @@ class NgxDeebodata {
4940
5095
  this.handleDraggerMU(e);
4941
5096
  if (this.currGroupValues().length)
4942
5097
  return this.dataTableService.mouseupWhileGrouped.next(e);
4943
- this.handleScrlBarDrag();
5098
+ if (!this.paginate)
5099
+ this.handleScrlBarDrag();
4944
5100
  }
4945
5101
  onWindowMouseDown(e) {
4946
5102
  this.dataTableService.mouseIsDown = true;
@@ -5054,6 +5210,10 @@ class NgxDeebodata {
5054
5210
  editable = true;
5055
5211
  rowNumbers = true;
5056
5212
  forceGrouping = [];
5213
+ paginate = false;
5214
+ rowsPerPage = 25;
5215
+ // @Input() serverSideTotal: number = 0;
5216
+ // @Output("pageChange") pageChange: EventEmitter<CellEdit> = new EventEmitter()
5057
5217
  cellEdit = new EventEmitter();
5058
5218
  dataTable;
5059
5219
  dataTableBody;
@@ -5081,6 +5241,10 @@ class NgxDeebodata {
5081
5241
  }
5082
5242
  if (this.defGridHgt)
5083
5243
  this.dataTableService.dTblHeight.set(this.defGridHgt);
5244
+ if (this.paginate && this.rowsPerPage) {
5245
+ this.dataTableService.rowsPerPage = Math.min(250, Math.ceil(this.rowsPerPage));
5246
+ this.rowNumbers = false; //no row numbers with pagination
5247
+ }
5084
5248
  if (this.myColumnSymbols)
5085
5249
  this.dataTableService.columnSymbols = [...this.myColumnSymbols];
5086
5250
  if (this.myColumnStyles)
@@ -5620,6 +5784,8 @@ class NgxDeebodata {
5620
5784
  }
5621
5785
  rowNTO = null;
5622
5786
  setRowNumbers() {
5787
+ if (this.paginate)
5788
+ return;
5623
5789
  const rlen = this.rows.length;
5624
5790
  if (this.rowNumbers && rlen) {
5625
5791
  const hasHgt = this.rowNos.filter(r => r.height);
@@ -5800,7 +5966,7 @@ class NgxDeebodata {
5800
5966
  this.dtChecks.push(indx);
5801
5967
  };
5802
5968
  this.useRowWid = this.getAllColWidth(colLen) + "px";
5803
- const limit = Math.min(init, len);
5969
+ const limit = this.paginate ? Math.min(this.dataTableService.rowsPerPage, len) : Math.min(init, len);
5804
5970
  let localRows = [];
5805
5971
  for (n; n < limit; n++) {
5806
5972
  const row = { id: "dataTableRow" + n, index: n, width: this.useRowWid, cells: [], height: this.dataTableService.defltRHgt };
@@ -5811,7 +5977,8 @@ class NgxDeebodata {
5811
5977
  this.dataTableService.currMapping[n] = n;
5812
5978
  }
5813
5979
  this.rows = [...localRows];
5814
- this.setLastRowIndex();
5980
+ if (!this.paginate)
5981
+ this.setLastRowIndex();
5815
5982
  this.paginatorReady = true;
5816
5983
  this.handleTheme(color1, color2);
5817
5984
  this.handleColAnyDDFilters(data, cols);
@@ -5825,7 +5992,7 @@ class NgxDeebodata {
5825
5992
  });
5826
5993
  timer(250).subscribe(() => {
5827
5994
  this.dataTableService.setIdealColumnWidth.next(true);
5828
- if (len > init) {
5995
+ if (!this.paginate && len > init) {
5829
5996
  let total = 0;
5830
5997
  let z = this.lastElRowIndex + 1;
5831
5998
  for (z; z < len; z++) {
@@ -6105,7 +6272,7 @@ class NgxDeebodata {
6105
6272
  this.execHorizScroll(left);
6106
6273
  /*horiz scroll*/
6107
6274
  /*vert scroll*/
6108
- if (top === this.verticalRest || this.lockVScroll || !this.dataTableService.listenForScroll()) {
6275
+ if (this.paginate || top === this.verticalRest || this.lockVScroll || !this.dataTableService.listenForScroll()) {
6109
6276
  if (!this.dataTableService.autoScrollOnEdit)
6110
6277
  this.clearValidatedEdit();
6111
6278
  return this.setRowSelChecksPlacement();
@@ -6161,7 +6328,8 @@ class NgxDeebodata {
6161
6328
  this.setRowSelChecksPlacement();
6162
6329
  if (this.listenToCellDraggerMouseMove)
6163
6330
  this.settleCellDragger();
6164
- timer(0).subscribe(() => { this.cleanUpPossibles(); });
6331
+ if (!this.paginate)
6332
+ timer(0).subscribe(() => { this.cleanUpPossibles(); });
6165
6333
  });
6166
6334
  }
6167
6335
  addCell(text, prop, visible) {
@@ -6963,7 +7131,7 @@ class NgxDeebodata {
6963
7131
  let rule7;
6964
7132
  if (co1) {
6965
7133
  this.dataTableService.themeColor1 = co1;
6966
- rule1 = ".col-header span, .col-header sup, .col-header button .material-icons, " +
7134
+ rule1 = ".col-header span, .col-header sup, .col-header button .material-icons, .paginator button .material-icons, .paginator label, " +
6967
7135
  ".row-group-panel button span, .row-group-panel button i, .data-table-footer div, .btn-fil-comp i{color: " + co1 + " !important}";
6968
7136
  rule1a = ".col-header select, .col-header input:not(input[type=file]), #skipTo{box-shadow:0 0 1px 1px " + co1 + ";" +
6969
7137
  "-webkit-box-shadow:0 0 1px 1px " + co1 + "}";
@@ -7066,10 +7234,10 @@ class NgxDeebodata {
7066
7234
  this.horizRest.set(0);
7067
7235
  }
7068
7236
  this.lastElRowIndex = 0;
7069
- let n = 0;
7237
+ let n = this.paginate ? ((this.dataTableService.currPage - 1) * this.dataTableService.rowsPerPage) : 0;
7070
7238
  const defNum = this.dataTableService.defltRHgtNum;
7071
7239
  const init = Math.ceil(this.dataTableService.dTblHeight() / defNum) + this.rowElsPad;
7072
- const len = this.dataTableService.currFilData.length;
7240
+ const len = this.paginate ? Math.min(n + this.dataTableService.rowsPerPage, this.dataTableService.currFilData.length) : this.dataTableService.currFilData.length;
7073
7241
  if (!len) { //always just add 1
7074
7242
  this.allFilSortInfo.set(this.dataTableService.getAllFilSrtInfo());
7075
7243
  return setTimeout(() => { this.styleEmptyFilDataRow(tbody, tbodyX); });
@@ -7116,7 +7284,7 @@ class NgxDeebodata {
7116
7284
  }
7117
7285
  };
7118
7286
  this.useRowWid = this.getAllColWidth(colLen - this.getMiniColCount()) + "px";
7119
- const limit = Math.min(init, len);
7287
+ const limit = this.paginate ? len : Math.min(init, len);
7120
7288
  this.maxCols = this.setMaxCols();
7121
7289
  let horizLim = Math.min(this.maxCols, colLen);
7122
7290
  if (field && field !== "topLevelDataFilter") {
@@ -7148,11 +7316,17 @@ class NgxDeebodata {
7148
7316
  }
7149
7317
  }
7150
7318
  this.rows = [...localRows];
7151
- this.setLastRowIndex();
7319
+ if (!this.paginate)
7320
+ this.setLastRowIndex();
7152
7321
  this.allFilSortInfo.set(this.dataTableService.getAllFilSrtInfo());
7153
7322
  this.dataTableService.mapperWorkerId += 1; //a reset but needs to incr so prev don't affect mapping
7323
+ if (this.paginate) {
7324
+ this.dataTableService.renderEvent.next(true);
7325
+ if (n > len && this.dataTableService.currFilData.length)
7326
+ this.dataTableService.forcePageOne.next(true);
7327
+ }
7154
7328
  if (len) {
7155
- if (len > init) {
7329
+ if (!this.paginate && len > init) {
7156
7330
  let total = 0;
7157
7331
  let z = this.lastElRowIndex + 1;
7158
7332
  for (z; z < len; z++) {
@@ -7351,7 +7525,7 @@ class NgxDeebodata {
7351
7525
  this.validationSub.unsubscribe();
7352
7526
  }
7353
7527
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NgxDeebodata, deps: [{ token: DataTableService }, { token: TableDragService }, { token: CommonService }], target: i0.ɵɵFactoryTarget.Component });
7354
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: NgxDeebodata, isStandalone: true, selector: "ngx-deebodata", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, licenseKey: { classPropertyName: "licenseKey", publicName: "licenseKey", isSignal: false, isRequired: false, transformFunction: null }, color1: { classPropertyName: "color1", publicName: "color1", isSignal: false, isRequired: false, transformFunction: null }, color2: { classPropertyName: "color2", publicName: "color2", isSignal: false, isRequired: false, transformFunction: null }, primaryKey: { classPropertyName: "primaryKey", publicName: "primaryKey", isSignal: false, isRequired: false, transformFunction: null }, defRowHgt: { classPropertyName: "defRowHgt", publicName: "defRowHgt", isSignal: false, isRequired: false, transformFunction: null }, defGridHgt: { classPropertyName: "defGridHgt", publicName: "defGridHgt", isSignal: false, isRequired: false, transformFunction: null }, altRowColor: { classPropertyName: "altRowColor", publicName: "altRowColor", isSignal: false, isRequired: false, transformFunction: null }, myColumnSymbols: { classPropertyName: "myColumnSymbols", publicName: "myColumnSymbols", isSignal: false, isRequired: false, transformFunction: null }, myColumnStyles: { classPropertyName: "myColumnStyles", publicName: "myColumnStyles", isSignal: false, isRequired: false, transformFunction: null }, myColumnValueColors: { classPropertyName: "myColumnValueColors", publicName: "myColumnValueColors", isSignal: false, isRequired: false, transformFunction: null }, pieGraphColors: { classPropertyName: "pieGraphColors", publicName: "pieGraphColors", isSignal: false, isRequired: false, transformFunction: null }, removePieCovers: { classPropertyName: "removePieCovers", publicName: "removePieCovers", isSignal: false, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: false, isRequired: false, transformFunction: null }, rowNumbers: { classPropertyName: "rowNumbers", publicName: "rowNumbers", isSignal: false, isRequired: false, transformFunction: null }, forceGrouping: { classPropertyName: "forceGrouping", publicName: "forceGrouping", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { cellEdit: "cellEdit" }, host: { listeners: { "window:click": "onWindowClick($event)", "window:mouseup": "onWindowMouseUp($event)", "window:mousedown": "onWindowMouseDown($event)", "window:mousemove": "onWindowMouseMove($event)", "window:selectstart": "onWindowSelectStart($event)", "window:resize": "onWindowResize($event)", "window:scroll": "onWindowScroll($event)", "window:keydown.shift": "onWindowShiftKeydown($event)", "window:keyup.shift": "onWindowShiftKeyup($event)" } }, viewQueries: [{ propertyName: "dataTable", first: true, predicate: ["dataTable"], descendants: true, static: true }, { propertyName: "dataTableBody", first: true, predicate: ["dataTableBody"], descendants: true, static: true }, { propertyName: "aboveArea", first: true, predicate: ["aboveArea"], descendants: true, static: true }, { propertyName: "belowArea", first: true, predicate: ["belowArea"], descendants: true, static: true }, { propertyName: "validatedEdit", first: true, predicate: ["validatedEdit"], descendants: true, static: true }, { propertyName: "rowNumHeader", first: true, predicate: ["rowNumHeader"], descendants: true, static: true }, { propertyName: "fCellDragger", first: true, predicate: ["fCellDragger"], descendants: true, static: true }, { propertyName: "selFilContainer", first: true, predicate: ["selFilContainer"], descendants: true, static: true }, { propertyName: "btnTogSelRows", first: true, predicate: ["btnTogSelRows"], descendants: true, static: true }, { propertyName: "dataTableHeaders", first: true, predicate: ["dataTableHeaders"], descendants: true, static: true }, { propertyName: "topLevelDataFilter", first: true, predicate: ["topLevelDataFilter"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"deebo-data-grid-section\">\r\n <div class=\"hidden-cols\">\r\n @for (hcol of hiddenCols; track hcol) {\r\n <button type=\"button\" class=\"btn-maximize-col\" (click)=\"maximizeColCells(hcol)\">{{hcol}}</button>\r\n }\r\n </div>\r\n <div class=\"controls\" >\r\n <input type=\"text\" #topLevelDataFilter autocomplete=\"off\" name=\"topLevelDataFilter\" placeholder=\"Filter any column...\" \r\n (input)=\"topFilterOnKeyUp($event)\" (keyup)=\"topFilterOnKeyUp($event)\" maxlength=\"255\" [(ngModel)]=\"topLevelFilter\" \r\n [disabled]=\"dataTableService.showCharts() || !dataTableService.mainData.length || handlingSelRows\" autocomplete=\"off\" />\r\n @if(currGroupValues().length){\r\n <button type=\"button\" class=\"no-btn btn-clear-grp\" (click)=\"processGrouping(null)\">\r\n <i class=\"material-icons error-message heavy v-mid\" aria-hidden=\"false\">close</i>&nbsp;<span class=\"md-text v-mid\">Grouping</span>\r\n </button>\r\n }\r\n <button type=\"button\" class=\"no-btn btn-chart\" (click)=\"openCharts()\" [disabled]=\"dataTableService.showCharts() || !dataTableService.currFilData.length || handlingSelRows || !common.goodLs()\">\r\n <i class=\"material-icons v-mid\" aria-hidden=\"false\">bar_chart</i>&nbsp;<span class=\"v-mid\">Insights</span>\r\n </button>\r\n <button type=\"button\" [disabled]=\"!dataTableService.currSelRows.length || handlingSelRows\" (click)=\"clearSelectedRows()\" class=\"btn-ctrl-sel-rows\">Deselect Rows</button>\r\n <button #btnTogSelRows type=\"button\" [disabled]=\"!dataTableService.currSelRows.length || handlingSelRows\" (click)=\"toggleSelectedRows()\" class=\"btn-ctrl-sel-rows\">\r\n <i class=\"material-icons\" aria-hidden=\"false\">check_box_outline_blank</i>&nbsp;<span>{{togSelRows}}</span>\r\n </button>\r\n <button [disabled]=\"!topLevelFilter && dataTableService.arefilSrtTrkPropsDefault()\" \r\n class=\"btn-reset\" (click)=\"resetCurrentData()\" >Reset</button>\r\n </div>\r\n @if (!isScrolling){\r\n <div class=\"relly\" [ngClass]=\"{'dt-checks': rowNumbers, 'hide' : isMultiFiltering() || dataTableService.isFiltering() || \r\n dataTableService.isSorting() || currGroupValues().length || currSelEditOpts.length }\">\r\n @for (chk of dtChecks; track $index) {\r\n <input [id]=\"'checkDataTableRow' + chk\" class=\"select-row-check invisible\" \r\n [checked]=\"dataTableService.currSelRows.indexOf(chk) > -1\" type=\"checkbox\" [name]=\"'checkDataTableRow' + chk\"\r\n (click)=\"toggleSingleRowSelected(chk)\" (keyup.enter)=\"toggleSingleRowSelected(chk)\" [value]=\"'dataTableRow' + chk\" >\r\n }\r\n </div>\r\n }\r\n <div #selFilContainer class=\"relly sel-fil-container\">\r\n <div class=\"selfil-opt-contain\" [ngStyle]=\"ddFilStyle\">\r\n @for (opt of currFilOpts; track opt; let i = $index) {\r\n <div class=\"selfil-div\">\r\n <label [for]=\"'selfilOpt' + currDDFilter + i\" class=\"'selfil-lbl-' + currDDFilter\"><input [id]=\"'selfilOpt' + currDDFilter + i\" \r\n [class]=\"'selfil-opt-' + currDDFilter\" (input)=\"handleMultiSelFilter(currDDFilter, opt.value, $event.target.checked)\" \r\n (click)=\"handleMultiSelFilter(currDDFilter, opt.value, $event.target.checked)\" [name]=\"'selfilOpt' + currDDFilter + i\" \r\n [checked]=\"opt.checked\" [value]=\"opt.value\" [disabled]=\"isMultiFiltering()\" type=\"checkbox\" />{{opt.value || \"(Blank)\"}}</label>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div #validatedEdit class=\"relly special-edit-container invisible\">\r\n @if (validatedEditType === 'date'){\r\n <input id=\"selEditDate\" name=\"selEditDate\" type=\"date\" class=\"edit-input\" \r\n (change)=\"execCellEdit($event, true)\" (input)=\"execCellEdit($event, true)\" (blur)=\"execCellEdit($event)\" />\r\n }\r\n @if (validatedEditType === 'number'){\r\n <input id=\"selEditNum\" name=\"selEditNum\" type=\"number\" class=\"edit-input\" \r\n (keyup)=\"execCellEdit($event, true)\" (input)=\"execCellEdit($event, true)\" (blur)=\"execCellEdit($event)\" (keyup.enter)=\"execCellEdit($event)\" />\r\n }\r\n @if (validatedEditType === 'text'){\r\n <div class=\"relly edit-input\">\r\n <div class=\"edit-input-option-cont\">\r\n <div class=\"edit-input-opt\"><button type=\"button\" class=\"no-btn\" (click)=\"execCellEdit($event, false, null)\">-</button></div>\r\n @for (opt of currSelEditOpts; track opt.value) {\r\n <div class=\"edit-input-opt\"><button type=\"button\" class=\"no-btn\" \r\n (click)=\"execCellEdit($event, false, opt.value)\">{{opt.value || \"(Blank)\"}}</button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"relly\" style=\"z-index: 6;\">\r\n <div #fCellDragger tabindex=\"0\" id=\"fCellDragger\" (focus)=\"focusCellDragger()\" (blur)=\"execValClear(true)\"\r\n (mousedown)=\"focusCellDraggerFromMouseDown()\" (keydown)=\"handleFDragTab($event)\" (keydown)=\"handleDraggerKD($event)\"\r\n [ngClass]=\"{'hide': dataTableService.currEditIndex < 0, 'focused-cell-dragger': dataTableService.currEditIndex > -1 }\"></div>\r\n </div>\r\n @if(dataTableService.showCharts() && common.goodLs()){\r\n <app-charts-and-graphs \r\n [height]=\"chartHgt\"\r\n [state]=\"chartState\"\r\n [chartColumns]=\"columnsForCharts\"\r\n (close)=\"closeCharts($event)\"\r\n ></app-charts-and-graphs>\r\n }\r\n <div [ngClass]=\"{'row-numbers': rowNumbers && !dataTableService.showCharts() && !currGroupValues().length, 'hide': !rowNumbers || dataTableService.showCharts() || currGroupValues().length}\" >\r\n <div #rowNumHeader class=\"row-num-header flex-center\"><div class=\"semi-heavy\">No.</div></div>\r\n <div style=\"overflow: hidden;\" [style.height]=\"dataTableService.dTblHeight() + 'px'\">\r\n <div [ngStyle]=\"{'overflow': 'auto', 'marginTop': rnBTop() + 'px' }\">\r\n @for (num of rowNos; track num.number) {\r\n <div [id]=\"'rn' + num.number\" class=\"flex-center num-row\" [style.height]=\"num.height || dataTableService.defltRHgt\">\r\n <div class=\"small-text\">{{num.number | number}}</div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div><div #dataTable class=\"data-table\" [class.inline-table]=\"rowNumbers && !dataTableService.showCharts() && !currGroupValues().length\">\r\n <div #dataTableHeaders class=\"data-table-headers\">\r\n @for (col of columnHeaders; track col.column; let i = $index) {\r\n <app-data-table-header\r\n [columnHeader]=\"col\"\r\n [colWid]=\"dataTableService.useColWid\"\r\n [hideMinCol]=\"col.hideMinCol\"\r\n [canFreeze]=\"i === 0 ? true : false\"\r\n (reset)=\"resetCurrentData($event)\"\r\n (freeze)=\"freezeColCells($event)\"\r\n (minimize)=\"minimizeColEls($event)\"\r\n (filFocus)=\"handleFilFocus($event)\"\r\n (scrollOnFocus)=\"checkTabHorizScroll($event)\"\r\n (emitCompFocus)=\"killSelFilOpts(true)\"\r\n (filSelClick)=\"handleWinClickOnSelFil()\"\r\n (height)=\"setHeaderHeight($event, true)\"\r\n (render)=\"renderCurrData(false, $event.field)\"\r\n (width)=\"handleSingleColResize($event.value, $event.column)\"\r\n ></app-data-table-header>\r\n }\r\n </div>\r\n <div #dataTableBody id=\"dataTableBody\" [ngStyle]=\"{ 'overflowY': 'auto', 'overflowX': currGroupValues().length ? 'hidden' : 'auto' }\" \r\n [style.height]=\"dataTableService.dTblHeight() + 'px'\" (scroll)=\"handleScroll($event)\" (scrollend)=\"handleScrollEnd()\"\r\n [class.table-working]=\"isMultiFiltering() || dataTableService.isFiltering() || dataTableService.isSorting()\" >\r\n <div #aboveArea [ngStyle]=\"{'height': aboveHgt() + 'px', 'width': useRowWid}\"></div>\r\n <div [style.transform]=\"'translateY('+transY()+'px)'\">\r\n @for(row of rows; track $index){\r\n <div [id]=\"row.id\" class=\"data-table-row\" [attr.data-index]=\"row.index\"\r\n [class.data-row-selected]=\"!dataTableService.displayOnlySelRows && dataTableService.currSelRows.indexOf(row.index) > -1\"\r\n [ngStyle]=\"{'width': row.width, 'height': row.height}\" >\r\n @for(cell of row.cells; track cell.column){\r\n <app-data-cell [cell]=\"cell\" \r\n [rowId]=\"row.id\" \r\n [text]=\"cell.text || ''\"\r\n [html]=\"cell.html || ''\"\r\n [rawText]=\"cell.rawText\"\r\n [minimized]=\"cell.minimized\"\r\n [rowHeight]=\"row.height || ''\"\r\n (edit)=\"execCellEdit($event)\"\r\n (mousedown)=\"checkCellEditOnClick()\"\r\n [columnValClass]=\"cell.specialColClass\"\r\n (dragListen)=\"listenToCellDraggerMouseMove = $event\"\r\n [colWid]=\"cell.width || dataTableService.useColWid\"\r\n (width)=\"handleSingleColResize($event)\"\r\n (height)=\"setSingleRowHgt($event, row.id, true)\"\r\n (clearVEditFocus)=\"validatedEditType = $event\"\r\n (validateEditFocus)=\"handleValidatedCellEditFocus($event)\"\r\n ></app-data-cell>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <div #belowArea [ngStyle]=\"{'height': belowHgt() + 'px', 'width': useRowWid}\"></div>\r\n @for(group of currGroupValues(); track group){\r\n <app-row-group-panel\r\n [groupValue]=\"group.value\"\r\n [maxCols]=\"maxCols\"\r\n [useRowWid]=\"useRowWid\"\r\n [editable]=\"editable\"\r\n [horizRest]=\"horizRest()\"\r\n [columns]=\"columnNames\"\r\n [showRowNumbers]=\"rowNumbers\"\r\n [colOfInt]=\"columnOfInterest()\"\r\n (horizPos)=\"setHorizPos($event)\"\r\n (cellEdit)=\"execCellEdit($event)\"\r\n (openEvt)=\"scrollToRowGroup($event)\"\r\n ></app-row-group-panel>\r\n }\r\n @if(!dataTableService.currFilData.length && !currGroupValues().length){\r\n <div [style.height]=\"dataTableService.dTblHeight() + 'px'\" class=\"data-table-row flex-center data-table-row-no-data\" style=\"width: 100%; white-space: normal;\">\r\n <div class=\"center\">{{dataTableService.noDataMsg}}</div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if(paginatorReady){\r\n <app-data-table-paginator\r\n [filSortStr]=\"allFilSortInfo()\"\r\n (jumpTo)=\"jumpToRow($event)\"\r\n [totalRows]=\"dataTableService.currFilData.length\"\r\n [disableJump]=\"dataTableService.showCharts() || currGroupValues().length > 0 || !dataTableService.currFilData.length || handlingSelRows\"\r\n ></app-data-table-paginator><!--not an actual paginator-->\r\n }\r\n <div class=\"pad-top-thirty right\">\r\n <div class=\"inline-b deebo-dd-contain-div\">\r\n @if(canGroupBy().length > 0){\r\n <app-row-group-menu\r\n [groups]=\"canGroupBy()\"\r\n [disableGB]=\"dataTableService.showCharts()\"\r\n [enableClear]=\"currGroupValues().length ? true : false\"\r\n ></app-row-group-menu>\r\n }\r\n </div><div class=\"inline-b deebo-dd-contain-div\">\r\n @if(dataTableService.currFilData.length > 0){\r\n <app-export-component\r\n [columns]=\"columnHeaders\"\r\n [disableExport]=\"dataTableService.showCharts()\"\r\n [count]=\"dataTableService.currFilData.length\">\r\n </app-export-component>\r\n }\r\n </div>\r\n </div>\r\n</div>", styles: [":host{--accent-color:rgb(50, 50, 50);--grid-color:rgb(199, 199, 199);--pad-left-base: 33px;--row-num-width: 75px;--reg-font-size: 17px }input[name=topLevelDataFilter]{float:left;padding:7px 5px;vertical-align:middle;box-shadow:0 0 1px 1px var(--grid-color);-moz-box-shadow:0 0 1px 1px var(--grid-color);-webkit-box-shadow:0 0 1px 1px var(--grid-color)}.deebo-dd-contain-div{margin:0 31px}.btn-chart,.btn-clear-grp{border-radius:3px}.btn-chart i{font-size:28px;vertical-align:middle;color:var(--accent-color)}.btn-chart:hover,.btn-clear-grp:hover{background:#e9e9e9;transition:background .5s ease}.dt-checks{margin-left:var(--row-num-width)}.row-numbers{margin-top:11px;display:inline-block;width:var(--row-num-width)}.row-num-header{background:#e9e9e9;box-sizing:border-box;border-bottom:1px solid var(--accent-color);border-right:1px solid var(--accent-color);box-shadow:0 -1px 3px 1px var(--grid-color);-moz-box-shadow:0 -1px 3px 1px var(--grid-color);-webkit-box-shadow:0 -1px 3px 1px var(--grid-color)}.num-row{white-space:nowrap;box-sizing:border-box;border-left:1px solid var(--grid-color);border-bottom:1px solid var(--grid-color)}.inline-table{display:inline-block;width:calc(100% - var(--row-num-width))}.special-edit-container{z-index:5;width:0!important;height:0!important}.edit-input{border:none;font-size:15px;box-shadow:none;position:absolute;background:#fff;-moz-box-shadow:none;-webkit-box-shadow:none;box-sizing:border-box}.edit-input[type=number]{text-align:right}.edit-input[type=date]{padding-left:17px}\n", "@charset \"UTF-8\";@font-face{font-family:Roboto Condensed;src:url(https://d2ffvluimla00s.cloudfront.net/RobotoCondensed-VariableFont_wght.ttf) format(\"ttf\")}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://d2ffvluimla00s.cloudfront.net/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format(\"woff2\")}.deebo-data-grid-section{font-family:Roboto Condensed,Arial,Helvetica,sans-serif}:host{--accent-color:rgb(50, 50, 50);--grid-color:rgb(199, 199, 199);--pad-left-base: 33px;--row-num-width: 75px;--reg-font-size: 17px }.relly{position:relative}.hide{display:none!important;max-height:0;max-width:0;top:0;left:0;opacity:0}.ovy{overflow:auto}.no-ovy-y{overflow-y:hidden!important}.pad-top-sm{padding-top:4px!important}.pad-top-ten{padding-top:10px!important}.pad-top-teen{padding-top:17px}.pad-top-thirty,.pad-top-trey{padding-top:33px}.pad-top-much{padding-top:75px}.o-visible{overflow:visible}.dontwrap{white-space:nowrap}.inline-b{display:inline-block}.inline{display:inline}.half-wid{width:50%;vertical-align:top;display:inline-block}.qtr-wid{width:25%;vertical-align:top;display:inline-block}.third-wid{width:33.3%;vertical-align:top;display:inline-block}.two-third-wid{width:66.6%;vertical-align:top;display:inline-block}.three-qtr-wid{width:75%;vertical-align:top;display:inline-block}.v-top{vertical-align:top!important}.v-mid{vertical-align:middle!important}.v-bot{vertical-align:bottom!important}.lg-text{font-size:larger}.xlg-text{font-size:x-large!important}.md-text{font-size:var(--reg-font-size)!important}.small-text{font-size:small}.tiny-text{font-size:x-small}.invisible{visibility:hidden}.flex-center{display:flex;justify-content:center;align-items:center}.flex-item{flex:1 1 auto}.o-x-hidden{overflow-x:hidden!important}.no-weight{font-weight:400!important}.semi-heavy{font-weight:500!important}.heavy{font-weight:700!important}.marauto{margin:0 auto}.center{text-align:center}.left{text-align:left}.right{text-align:right}.btn-reset{border:none;color:#fff;padding:7px 11px;background:maroon}.error-message{color:maroon;font-weight:500}.success{color:green;font-weight:500}.neutral{color:var(--accent-color)}input,select{border:none;padding:4px;border-radius:3px;box-sizing:border-box;font-family:Roboto Condensed,Arial,Helvetica,sans-serif;box-shadow:0 0 1px 1px #afafaf;-moz-box-shadow:0 0 1px 1px #afafaf;-webkit-box-shadow:0 0 1px 1px #afafaf}input[type=radio],input[type=checkbox]{cursor:pointer;box-shadow:none!important;-moz-box-shadow:none!important;-webkit-box-shadow:none!important}button{cursor:pointer}button:focus,input:focus,select:focus,textarea:focus,a:focus{outline-width:0}button:disabled,input:disabled,select:disabled{opacity:.5;cursor:not-allowed}.prevent{opacity:.5;cursor:not-allowed;pointer-events:none}.controls{text-align:right;padding:16px 11px 6px 1px;max-width:100%;clear:both;overflow-x:auto;white-space:nowrap}.controls button{font-size:var(--reg-font-size);margin-right:31px;vertical-align:middle}.controls button span{vertical-align:middle}.controls button:last-of-type{margin-right:0}.data-table{margin-top:11px;overflow:hidden;box-shadow:0 -1px 3px 1px var(--grid-color);-moz-box-shadow:0 -1px 3px 1px var(--grid-color);-webkit-box-shadow:0 -1px 3px 1px var(--grid-color)}.sel-rows-checked{color:#00a8f399!important}.save-hilite{padding:2px 4px;border-radius:3px;background:#ebebeb;box-shadow:0 0 3px 1px var(--accent-color);-moz-box-shadow:0 0px 3px 1px var(--accent-color);-webkit-box-shadow:0 0px 3px 1px var(--accent-color)}.btn-ctrl-sel-rows,.btn-export-or-print{border:none;padding:3px 4px;border-radius:3px;background:#f5f5f5;vertical-align:middle;box-shadow:0 0 2px 1px var(--accent-color);-moz-box-shadow:0 0 2px 1px var(--accent-color);-webkit-box-shadow:0 0 2px 1px var(--accent-color)}.deebo-dd-contain-div:last-of-type{margin-right:0!important}.btn-export{width:100%;text-transform:uppercase}.btn-export:hover{text-decoration:underline}.btn-ctrl-sel-rows:hover,.btn-export-or-print:hover{background:#ebebeb;box-shadow:0 0 6px 2px gray;-moz-box-shadow:0 0 6px 2px gray;-webkit-box-shadow:0 0 6px 2px gray}.btn-center-selected{padding:2px 4px;border-radius:5px;background:#f5f5f5;box-shadow:0 0 6px 2px gray;-moz-box-shadow:0 0 6px 2px gray;-webkit-box-shadow:0 0 6px 2px gray}.btn-ctrl-sel-rows .material-icons{font-size:18px;font-weight:600;vertical-align:middle}.btn-ctrl-sel-rows .material-icons:not(.error-message){color:var(--accent-color)}.data-table-headers{cursor:pointer;white-space:nowrap;border-bottom:1px solid var(--grid-color)}.data-table-row{white-space:nowrap}.data-table-row:hover,.data-table-row .col-item-freeze:hover{background:#f3f3f3}.data-row-selected{background:#d6d6d6!important}.table-working{opacity:.1;pointer-events:none}.select-row-check{left:9px;z-index:10;cursor:pointer;margin:0;position:absolute;padding:0!important}.gb-row-num{left:2px;z-index:10;cursor:pointer;margin:0;font-size:x-small;position:absolute;padding:0!important}.mock-html{width:50%;height:18px;margin:0 auto;border-radius:11px;background:var(--grid-color)}.abs-right{top:7px;right:7px;position:absolute}.has-symbol:after{content:attr(data-symbol);padding-left:3px}.has-symbol-b:before{content:attr(data-symbol);padding-right:3px}.data-table-row-no-data{font-size:xx-large;color:gray;font-weight:500;text-shadow:-1px -1px var(--accent-color)}.data-row-selected .col-item-freeze,.data-row-selected .data-cell,.data-row-selected:hover,.data-row-selected .col-item-freeze:hover,.data-row-selected .data-cell:hover{background:#d6d6d6!important}.data-table-headers .col-item-freeze:first-of-type{border-bottom:1px solid var(--grid-color)}.col-header{z-index:2;width:125px;overflow:auto;cursor:grab;padding:7px 3px;text-align:center;position:relative;box-sizing:border-box;display:inline-block;vertical-align:top;white-space:pre-wrap;word-wrap:break-word;background:#fafafa;border-right:1px solid var(--grid-color)}.col-header button,.col-header span,.col-header select{cursor:pointer;vertical-align:middle}.col-header input{vertical-align:middle}.col-header-img-container{overflow-y:hidden;text-align:center;display:inline-block;vertical-align:middle;background-size:cover;background-position:center;background-repeat:no-repeat}.col-header-minimized{width:0!important;height:0!important;padding:0!important;overflow:hidden!important;border-bottom:none!important;border-right:none!important;transition:width .3s ease}.btn-maximize-col{border:none;border-radius:5px;background:#f5f5f5;box-shadow:0 0 3px 2px gray;font-size:var(--reg-font-size);margin-right:27px;padding:4px}.no-btn{border:none;background:none}.col-item-freeze{left:0;z-index:3;position:sticky;background:#fff;box-shadow:2px 0 3px 0 var(--grid-color);-moz-box-shadow:2px 0px 3px 0px var(--grid-color);-webkit-box-shadow:2px 0px 3px 0px var(--grid-color)}.col-header input,.select-filter{width:40%;margin:11px 0 1px}.sel-fil-container{z-index:5}.edit-input-option-cont{left:0;right:0}.edit-input-opt button{width:100%;font-size:15px;padding:11px 0 11px 17px;text-align:left!important}.selfil-opt-contain,.edit-input-option-cont{overflow:auto;max-height:240px;border-radius:5px;position:absolute;background:#fff;box-shadow:0 1px 3px 1px var(--grid-color);-moz-box-shadow:0 1px 3px 1px var(--grid-color);-webkit-box-shadow:0 1px 3px 1px var(--grid-color)}.selfil-div,.edit-input-opt{cursor:pointer;text-align:left;border-bottom:1px solid var(--grid-color)}.selfil-div:hover,.edit-input-opt:hover{background:#ebebeb}.selfil-div:last-of-type,.edit-input-opt:last-of-type{border-bottom:none}.selfil-div label{width:calc(100% - 22px);font-size:15px;cursor:pointer;padding:11px;display:inline-block}.selfil-div label input[type=checkbox]{margin-right:11px;vertical-align:middle}.select-filter-comparator{width:36px;z-index:3;opacity:0;position:relative;margin:11px 0 1px 15px}.btn-fil-comp{top:2px;left:-36px;border:none;position:absolute;background:#fafafa}.btn-fil-comp i{color:var(--accent-color)}@media screen and (min-width:960px){.col-header input,.select-filter,.select-filter-comparator{margin-top:7px;margin-bottom:1px}}.data-cell{width:125px;padding:11px 6px 11px 17px;overflow:auto;font-size:15px;word-wrap:break-word;white-space:pre-line;vertical-align:top;box-sizing:border-box;display:inline-flex;align-items:center;border-right:1px solid var(--grid-color);border-bottom:1px solid var(--grid-color)}input.edit-input{border-radius:0}.data-cell:focus,input.edit-input:focus{outline:1px solid #00a8f3}.dragger-cell-focused{background:#00a8f333;border-left:1px solid #00a8f3;border-right:1px solid #00a8f3!important}.focused-cell-dragger{width:9px;height:9px;cursor:crosshair;position:absolute;background:#00a8f3;box-shadow:0 0 1px 1px var(--accent-color);-moz-box-shadow:0 0 1px 1px var(--accent-color);-webkit-box-shadow:0 0 1px 1px var(--accent-color)}.holding-check{padding-left:44px}.data-cell-riiight{padding:11px 17px 11px 6px;justify-content:right}.data-cell-ceeenter{padding:11px 6px;justify-content:center!important}.cell-og-link{line-height:0;visibility:hidden}.cell-og-link:before{visibility:visible;content:attr(data-title)}.moveable-col{cursor:col-resize!important}.moveable-row{cursor:row-resize!important}.data-sort-arr{cursor:pointer;margin-left:11px;border:none;background:none;padding:0 0 0 2px;color:var(--accent-color)}.data-sort-arr .material-icons{font-size:20px}.data-col-info{left:10px;top:12px;padding:0;border:none;cursor:pointer;background:none;position:absolute;color:var(--accent-color)}.data-col-info .material-icons{font-size:16px}.sort-order-indicator{font-weight:600;vertical-align:middle;font-size:16px}.btn-min-col{cursor:pointer;top:0;right:2px;font-size:20px;border:none;background:none;position:absolute;padding:0 2px 5px 0;color:var(--accent-color)}.btn-min-col-hide{z-index:0;visibility:hidden;pointer-events:none}.btn-freeze-col{float:left;border:none;cursor:pointer;background:none}.btn-freeze-col .material-icons{font-size:16px;color:var(--accent-color)}.hidden-cols{max-width:100%;overflow-x:auto;clear:both;white-space:nowrap;padding:17px 15px 5px 4px}.hidden-cols button:first-of-type:before{content:\"Hidden Columns\";font-size:12px;font-weight:600;padding-right:11px;vertical-align:middle}.col-header span{word-wrap:break-word;vertical-align:middle;font-size:var(--reg-font-size)}.o-ins-div span,.o-ins-div i{vertical-align:middle;font-size:16px}.aux-chip{text-align:center;padding-bottom:33px;word-wrap:break-word;white-space:pre-wrap}.insights{padding:17px 15px}.insight-field{min-height:100px;padding:21px 0;font-size:large;white-space:pre-wrap;word-wrap:break-word;border-bottom:1px solid lightgray}@media screen and (max-width:760px){.insight-field:first-of-type{padding-top:7px}}@media screen and (min-width:760px){.insight-field-row{border-bottom:1px solid lightgray}.insight-field,.aux-chip{width:50%;vertical-align:top;display:inline-block;border-bottom:none}}@media screen and (min-width:1024px){.insight-field,.aux-chip{width:33%}}.chart-label-cont{padding-top:10px;text-align:center}.pie-piece-label{padding-top:5px;margin-right:27px;display:inline-block}.pie-piece-label-sq{width:11px;height:11px;margin:0 0 0 2px;display:inline-block;vertical-align:middle}.pie-piece-label span{font-size:small}.pie-piece-label span:before{font-size:smaller;padding-right:4px;font-weight:600;content:attr(data-percent)}.pie-layover{border-radius:50%;background:#fff;position:absolute;padding:5px!important;display:flex;font-size:17px;align-items:center;overflow:hidden;box-sizing:border-box;justify-content:center;color:var(--accent-color)}.pie-layover div{font-weight:500;padding:0!important}.ins-even-dist-ct{font-size:24px;font-weight:500}.line-graph-container{padding:11px 0 33px 7px!important;box-sizing:border-box;margin-left:11px}.lg-title-cont{padding:0!important;text-align:center;margin:17px 11px}.lg-n-marker-cont{width:60px;position:relative;padding:0!important;box-sizing:border-box;display:inline-block;vertical-align:top}.lg-n-marker-cont:before{top:45%;left:-37px;display:block;position:absolute;white-space:nowrap;color:var(--grid-color);content:attr(data-column);transform:rotate(-90deg)}.lg-n-marker,.lg-n-marker-h{padding:0 11px 0 0!important;font-size:small;position:relative;text-align:right;white-space:nowrap;box-sizing:border-box}.line-graph{width:calc(92% - 60px);position:relative;box-sizing:border-box;display:inline-block;vertical-align:top;padding:0!important;border-left:1px solid var(--accent-color);border-bottom:1px solid var(--accent-color)}.lg-lbl-x{left:0;right:0;bottom:-45px;font-size:small;font-weight:500;text-align:center;position:absolute;padding:0!important}.btn-line-graph-opts{margin:0;padding:4px;background:none;border-top:1px solid var(--accent-color);border-left:1px solid var(--accent-color);border-bottom:1px solid var(--accent-color)}.sp-line-graph-title{margin-top:7px;font-size:large;text-decoration:underline}.lg-dt-marker,.lg-dt-marker-h,.vd-n-marker,.vd-n-marker-h{bottom:-22px;font-size:small;position:absolute;text-align:center;padding:0!important;display:inline-block;box-sizing:border-box}.lg-dt-marker-h,.vd-n-marker-h{visibility:hidden}.lg-dt-marker.visible-marker{margin-left:21px}.lg-n-marker-h{height:0;visibility:hidden}.visible-marker{z-index:2;font-weight:600;background:#fff;height:unset!important;padding:1px 2px!important;visibility:visible!important;box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.visible-marker:before{font-weight:600}.lg-dt-marker:before{top:-15px;left:0;content:\"|\";position:absolute}.vd-n-marker:before{top:-15px;left:50%;content:\"|\";left:calc(50% - 2px);position:absolute}.lg-n-marker:before{top:-4px;right:-3px;content:\"-\";font-weight:600;font-size:large;position:absolute;background:#fff}.btn-line-graph-opts:hover{background:#d6d6d6;transition:background .3s ease}.btn-line-graph-opts:last-of-type{border-right:1px solid var(--accent-color)}.btn-lg-sel{color:#fff!important;background:var(--accent-color);box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.btn-lg-sel:hover{background:var(--accent-color)}.lg-plot{height:8px;width:8px;opacity:.3;cursor:pointer;border-radius:50%;position:absolute;padding:0!important;background:var(--accent-color)}.lg-plot:hover{z-index:100;opacity:1!important}.lg-plot:hover:after{padding:3px;display:inline-block;font-size:small;border-radius:5px;margin:0 0 0 25px;font-weight:700;content:attr(data-number);background:#fff!important;box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.lg-plot-opq{opacity:0;background:#fff}.lg-plot-opq:hover{opacity:1!important;background:var(--grid-color);transition:opacity .2s ease}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:\"liga\";-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}\n"], dependencies: [{ kind: "component", type: DataTableHeader, selector: "app-data-table-header", inputs: ["colWid", "canFreeze", "hideMinCol", "columnHeader"], outputs: ["sort", "render", "width", "height", "reset", "freeze", "filFocus", "filSelClick", "minimize", "emitCompFocus", "scrollOnFocus"] }, { kind: "component", type: DataCellComponent, selector: "app-data-cell", inputs: ["text", "html", "minimized", "rawText", "cell", "rowId", "colWid", "rowHeight", "noColResize", "columnValClass"], outputs: ["width", "height", "edit", "dragListen", "validateEditFocus", "clearVEditFocus"] }, { kind: "component", type: DataTablePaginator, selector: "app-data-table-paginator", inputs: ["totalRows", "filSortStr", "disableJump"], outputs: ["jumpTo"] }, { kind: "component", type: ChartsAndGraphs, selector: "app-charts-and-graphs", inputs: ["height", "state", "chartColumns"], outputs: ["close"] }, { kind: "component", type: RowGroupMenu, selector: "app-row-group-menu", inputs: ["groups", "disableGB", "enableClear"] }, { kind: "component", type: RowGroupPanel, selector: "app-row-group-panel", inputs: ["horizRest", "colOfInt", "groupValue", "useRowWid", "maxCols", "editable", "columns", "showRowNumbers"], outputs: ["openEvt", "horizPos", "cellEdit"] }, { kind: "component", type: ExportComponent, selector: "app-export-component", inputs: ["disableExport", "count", "columns"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4$1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
7528
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: NgxDeebodata, isStandalone: true, selector: "ngx-deebodata", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, licenseKey: { classPropertyName: "licenseKey", publicName: "licenseKey", isSignal: false, isRequired: false, transformFunction: null }, color1: { classPropertyName: "color1", publicName: "color1", isSignal: false, isRequired: false, transformFunction: null }, color2: { classPropertyName: "color2", publicName: "color2", isSignal: false, isRequired: false, transformFunction: null }, primaryKey: { classPropertyName: "primaryKey", publicName: "primaryKey", isSignal: false, isRequired: false, transformFunction: null }, defRowHgt: { classPropertyName: "defRowHgt", publicName: "defRowHgt", isSignal: false, isRequired: false, transformFunction: null }, defGridHgt: { classPropertyName: "defGridHgt", publicName: "defGridHgt", isSignal: false, isRequired: false, transformFunction: null }, altRowColor: { classPropertyName: "altRowColor", publicName: "altRowColor", isSignal: false, isRequired: false, transformFunction: null }, myColumnSymbols: { classPropertyName: "myColumnSymbols", publicName: "myColumnSymbols", isSignal: false, isRequired: false, transformFunction: null }, myColumnStyles: { classPropertyName: "myColumnStyles", publicName: "myColumnStyles", isSignal: false, isRequired: false, transformFunction: null }, myColumnValueColors: { classPropertyName: "myColumnValueColors", publicName: "myColumnValueColors", isSignal: false, isRequired: false, transformFunction: null }, pieGraphColors: { classPropertyName: "pieGraphColors", publicName: "pieGraphColors", isSignal: false, isRequired: false, transformFunction: null }, removePieCovers: { classPropertyName: "removePieCovers", publicName: "removePieCovers", isSignal: false, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: false, isRequired: false, transformFunction: null }, rowNumbers: { classPropertyName: "rowNumbers", publicName: "rowNumbers", isSignal: false, isRequired: false, transformFunction: null }, forceGrouping: { classPropertyName: "forceGrouping", publicName: "forceGrouping", isSignal: false, isRequired: false, transformFunction: null }, paginate: { classPropertyName: "paginate", publicName: "paginate", isSignal: false, isRequired: false, transformFunction: null }, rowsPerPage: { classPropertyName: "rowsPerPage", publicName: "rowsPerPage", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { cellEdit: "cellEdit" }, host: { listeners: { "window:click": "onWindowClick($event)", "window:mouseup": "onWindowMouseUp($event)", "window:mousedown": "onWindowMouseDown($event)", "window:mousemove": "onWindowMouseMove($event)", "window:selectstart": "onWindowSelectStart($event)", "window:resize": "onWindowResize($event)", "window:scroll": "onWindowScroll($event)", "window:keydown.shift": "onWindowShiftKeydown($event)", "window:keyup.shift": "onWindowShiftKeyup($event)" } }, viewQueries: [{ propertyName: "dataTable", first: true, predicate: ["dataTable"], descendants: true, static: true }, { propertyName: "dataTableBody", first: true, predicate: ["dataTableBody"], descendants: true, static: true }, { propertyName: "aboveArea", first: true, predicate: ["aboveArea"], descendants: true, static: true }, { propertyName: "belowArea", first: true, predicate: ["belowArea"], descendants: true, static: true }, { propertyName: "validatedEdit", first: true, predicate: ["validatedEdit"], descendants: true, static: true }, { propertyName: "rowNumHeader", first: true, predicate: ["rowNumHeader"], descendants: true, static: true }, { propertyName: "fCellDragger", first: true, predicate: ["fCellDragger"], descendants: true, static: true }, { propertyName: "selFilContainer", first: true, predicate: ["selFilContainer"], descendants: true, static: true }, { propertyName: "btnTogSelRows", first: true, predicate: ["btnTogSelRows"], descendants: true, static: true }, { propertyName: "dataTableHeaders", first: true, predicate: ["dataTableHeaders"], descendants: true, static: true }, { propertyName: "topLevelDataFilter", first: true, predicate: ["topLevelDataFilter"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"deebo-data-grid-section\">\r\n <div class=\"hidden-cols\">\r\n @for (hcol of hiddenCols; track hcol) {\r\n <button type=\"button\" class=\"btn-maximize-col\" (click)=\"maximizeColCells(hcol)\">{{hcol}}</button>\r\n }\r\n </div>\r\n <div class=\"controls\" >\r\n <input type=\"text\" #topLevelDataFilter autocomplete=\"off\" name=\"topLevelDataFilter\" placeholder=\"Filter any column...\" \r\n (input)=\"topFilterOnKeyUp($event)\" (keyup)=\"topFilterOnKeyUp($event)\" maxlength=\"255\" [(ngModel)]=\"topLevelFilter\" \r\n [disabled]=\"dataTableService.showCharts() || !dataTableService.mainData.length || handlingSelRows\" autocomplete=\"off\" />\r\n @if(currGroupValues().length){\r\n <button type=\"button\" class=\"no-btn btn-clear-grp\" (click)=\"processGrouping(null)\">\r\n <i class=\"material-icons error-message heavy v-mid\" aria-hidden=\"false\">close</i>&nbsp;<span class=\"md-text v-mid\">Grouping</span>\r\n </button>\r\n }\r\n <button type=\"button\" class=\"no-btn btn-chart\" (click)=\"openCharts()\" [disabled]=\"dataTableService.showCharts() || !dataTableService.currFilData.length || handlingSelRows || !common.goodLs()\">\r\n <i class=\"material-icons v-mid\" aria-hidden=\"false\">bar_chart</i>&nbsp;<span class=\"v-mid\">Insights</span>\r\n </button>\r\n <button type=\"button\" [disabled]=\"!dataTableService.currSelRows.length || handlingSelRows\" (click)=\"clearSelectedRows()\" class=\"btn-ctrl-sel-rows\">Deselect Rows</button>\r\n <button #btnTogSelRows type=\"button\" [disabled]=\"!dataTableService.currSelRows.length || handlingSelRows\" (click)=\"toggleSelectedRows()\" class=\"btn-ctrl-sel-rows\">\r\n <i class=\"material-icons\" aria-hidden=\"false\">check_box_outline_blank</i>&nbsp;<span>{{togSelRows}}</span>\r\n </button>\r\n <button [disabled]=\"!topLevelFilter && dataTableService.arefilSrtTrkPropsDefault()\" \r\n class=\"btn-reset\" (click)=\"resetCurrentData()\" >Reset</button>\r\n </div>\r\n @if (!isScrolling){\r\n <div class=\"relly\" [ngClass]=\"{'dt-checks': rowNumbers, 'hide' : isMultiFiltering() || dataTableService.isFiltering() || \r\n dataTableService.isSorting() || currGroupValues().length || currSelEditOpts.length }\">\r\n @for (chk of dtChecks; track $index) {\r\n <input [id]=\"'checkDataTableRow' + chk\" class=\"select-row-check invisible\" \r\n [checked]=\"dataTableService.currSelRows.indexOf(chk) > -1\" type=\"checkbox\" [name]=\"'checkDataTableRow' + chk\"\r\n (click)=\"toggleSingleRowSelected(chk)\" (keyup.enter)=\"toggleSingleRowSelected(chk)\" [value]=\"'dataTableRow' + chk\" >\r\n }\r\n </div>\r\n }\r\n <div #selFilContainer class=\"relly sel-fil-container\">\r\n <div class=\"selfil-opt-contain\" [ngStyle]=\"ddFilStyle\">\r\n @for (opt of currFilOpts; track opt; let i = $index) {\r\n <div class=\"selfil-div\">\r\n <label [for]=\"'selfilOpt' + currDDFilter + i\" class=\"'selfil-lbl-' + currDDFilter\"><input [id]=\"'selfilOpt' + currDDFilter + i\" \r\n [class]=\"'selfil-opt-' + currDDFilter\" (input)=\"handleMultiSelFilter(currDDFilter, opt.value, $event.target.checked)\" \r\n (click)=\"handleMultiSelFilter(currDDFilter, opt.value, $event.target.checked)\" [name]=\"'selfilOpt' + currDDFilter + i\" \r\n [checked]=\"opt.checked\" [value]=\"opt.value\" [disabled]=\"isMultiFiltering()\" type=\"checkbox\" />{{opt.value || \"(Blank)\"}}</label>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div #validatedEdit class=\"relly special-edit-container invisible\">\r\n @if (validatedEditType === 'date'){\r\n <input id=\"selEditDate\" name=\"selEditDate\" type=\"date\" class=\"edit-input\" \r\n (change)=\"execCellEdit($event, true)\" (input)=\"execCellEdit($event, true)\" (blur)=\"execCellEdit($event)\" />\r\n }\r\n @if (validatedEditType === 'number'){\r\n <input id=\"selEditNum\" name=\"selEditNum\" type=\"number\" class=\"edit-input\" \r\n (keyup)=\"execCellEdit($event, true)\" (input)=\"execCellEdit($event, true)\" (blur)=\"execCellEdit($event)\" (keyup.enter)=\"execCellEdit($event)\" />\r\n }\r\n @if (validatedEditType === 'text'){\r\n <div class=\"relly edit-input\">\r\n <div class=\"edit-input-option-cont\">\r\n <div class=\"edit-input-opt\"><button type=\"button\" class=\"no-btn\" (click)=\"execCellEdit($event, false, null)\">-</button></div>\r\n @for (opt of currSelEditOpts; track opt.value) {\r\n <div class=\"edit-input-opt\"><button type=\"button\" class=\"no-btn\" \r\n (click)=\"execCellEdit($event, false, opt.value)\">{{opt.value || \"(Blank)\"}}</button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"relly\" style=\"z-index: 6;\">\r\n <div #fCellDragger tabindex=\"0\" id=\"fCellDragger\" (focus)=\"focusCellDragger()\" (blur)=\"execValClear(true)\"\r\n (mousedown)=\"focusCellDraggerFromMouseDown()\" (keydown)=\"handleFDragTab($event)\" (keydown)=\"handleDraggerKD($event)\"\r\n [ngClass]=\"{'hide': dataTableService.currEditIndex < 0, 'focused-cell-dragger': dataTableService.currEditIndex > -1 }\"></div>\r\n </div>\r\n @if(dataTableService.showCharts() && common.goodLs()){\r\n <app-charts-and-graphs \r\n [height]=\"chartHgt\"\r\n [state]=\"chartState\"\r\n [chartColumns]=\"columnsForCharts\"\r\n (close)=\"closeCharts($event)\"\r\n ></app-charts-and-graphs>\r\n }\r\n <div [ngClass]=\"{'row-numbers': rowNumbers && !dataTableService.showCharts() && !currGroupValues().length, 'hide': !rowNumbers || dataTableService.showCharts() || currGroupValues().length}\" >\r\n <div #rowNumHeader class=\"row-num-header flex-center\"><div class=\"semi-heavy\">No.</div></div>\r\n <div style=\"overflow: hidden;\" [style.height]=\"dataTableService.dTblHeight() + 'px'\">\r\n <div [ngStyle]=\"{'overflow': 'auto', 'marginTop': rnBTop() + 'px' }\">\r\n @for (num of rowNos; track num.number) {\r\n <div [id]=\"'rn' + num.number\" class=\"flex-center num-row\" [style.height]=\"num.height || dataTableService.defltRHgt\">\r\n <div class=\"small-text\">{{num.number | number}}</div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div><div #dataTable class=\"data-table\" [class.inline-table]=\"rowNumbers && !dataTableService.showCharts() && !currGroupValues().length\">\r\n <div #dataTableHeaders class=\"data-table-headers\">\r\n @for (col of columnHeaders; track col.column; let i = $index) {\r\n <app-data-table-header\r\n [columnHeader]=\"col\"\r\n [colWid]=\"dataTableService.useColWid\"\r\n [hideMinCol]=\"col.hideMinCol\"\r\n [canFreeze]=\"i === 0 ? true : false\"\r\n (reset)=\"resetCurrentData($event)\"\r\n (freeze)=\"freezeColCells($event)\"\r\n (minimize)=\"minimizeColEls($event)\"\r\n (filFocus)=\"handleFilFocus($event)\"\r\n (scrollOnFocus)=\"checkTabHorizScroll($event)\"\r\n (emitCompFocus)=\"killSelFilOpts(true)\"\r\n (filSelClick)=\"handleWinClickOnSelFil()\"\r\n (height)=\"setHeaderHeight($event, true)\"\r\n (render)=\"renderCurrData(false, $event.field)\"\r\n (width)=\"handleSingleColResize($event.value, $event.column)\"\r\n ></app-data-table-header>\r\n }\r\n </div>\r\n <div #dataTableBody id=\"dataTableBody\" [ngStyle]=\"{ 'overflowY': 'auto', 'overflowX': currGroupValues().length ? 'hidden' : 'auto' }\" \r\n [style.height]=\"dataTableService.dTblHeight() + 'px'\" (scroll)=\"handleScroll($event)\" (scrollend)=\"handleScrollEnd()\"\r\n [class.table-working]=\"isMultiFiltering() || dataTableService.isFiltering() || dataTableService.isSorting()\" >\r\n <div #aboveArea [ngStyle]=\"{'height': aboveHgt() + 'px', 'width': useRowWid}\"></div>\r\n <div [style.transform]=\"'translateY('+transY()+'px)'\">\r\n @for(row of rows; track $index){\r\n <div [id]=\"row.id\" class=\"data-table-row\" [attr.data-index]=\"row.index\"\r\n [class.data-row-selected]=\"!dataTableService.displayOnlySelRows && dataTableService.currSelRows.indexOf(row.index) > -1\"\r\n [ngStyle]=\"{'width': row.width, 'height': row.height}\" >\r\n @for(cell of row.cells; track cell.column){\r\n <app-data-cell [cell]=\"cell\" \r\n [rowId]=\"row.id\" \r\n [text]=\"cell.text || ''\"\r\n [html]=\"cell.html || ''\"\r\n [rawText]=\"cell.rawText\"\r\n [minimized]=\"cell.minimized\"\r\n [rowHeight]=\"row.height || ''\"\r\n (edit)=\"execCellEdit($event)\"\r\n (mousedown)=\"checkCellEditOnClick()\"\r\n [columnValClass]=\"cell.specialColClass\"\r\n (dragListen)=\"listenToCellDraggerMouseMove = $event\"\r\n [colWid]=\"cell.width || dataTableService.useColWid\"\r\n (width)=\"handleSingleColResize($event)\"\r\n (height)=\"setSingleRowHgt($event, row.id, true)\"\r\n (clearVEditFocus)=\"validatedEditType = $event\"\r\n (validateEditFocus)=\"handleValidatedCellEditFocus($event)\"\r\n ></app-data-cell>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <div #belowArea [ngStyle]=\"{'height': belowHgt() + 'px', 'width': useRowWid}\"></div>\r\n @for(group of currGroupValues(); track group){\r\n <app-row-group-panel\r\n [groupValue]=\"group.value\"\r\n [maxCols]=\"maxCols\"\r\n [useRowWid]=\"useRowWid\"\r\n [editable]=\"editable\"\r\n [horizRest]=\"horizRest()\"\r\n [columns]=\"columnNames\"\r\n [showRowNumbers]=\"rowNumbers\"\r\n [colOfInt]=\"columnOfInterest()\"\r\n (horizPos)=\"setHorizPos($event)\"\r\n (cellEdit)=\"execCellEdit($event)\"\r\n (openEvt)=\"scrollToRowGroup($event)\"\r\n ></app-row-group-panel>\r\n }\r\n @if(!dataTableService.currFilData.length && !currGroupValues().length){\r\n <div [style.height]=\"dataTableService.dTblHeight() + 'px'\" class=\"data-table-row flex-center data-table-row-no-data\" style=\"width: 100%; white-space: normal;\">\r\n <div class=\"center\">{{dataTableService.noDataMsg}}</div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if(paginatorReady){\r\n @if(paginate){\r\n <lib-real-paginator\r\n (pageChange)=\"renderCurrData(false)\"\r\n ></lib-real-paginator>\r\n } @else {\r\n <app-data-table-paginator\r\n [filSortStr]=\"allFilSortInfo()\"\r\n (jumpTo)=\"jumpToRow($event)\"\r\n [totalRows]=\"dataTableService.currFilData.length\"\r\n [disableJump]=\"dataTableService.showCharts() || currGroupValues().length > 0 || !dataTableService.currFilData.length || handlingSelRows\"\r\n ></app-data-table-paginator><!--not an actual paginator-->\r\n }\r\n }\r\n <div class=\"pad-top-thirty right\">\r\n <div class=\"inline-b deebo-dd-contain-div\">\r\n @if(!paginate && canGroupBy().length > 0){\r\n <app-row-group-menu\r\n [groups]=\"canGroupBy()\"\r\n [disableGB]=\"dataTableService.showCharts()\"\r\n [enableClear]=\"currGroupValues().length ? true : false\"\r\n ></app-row-group-menu>\r\n }\r\n </div><div class=\"inline-b deebo-dd-contain-div\">\r\n @if(dataTableService.currFilData.length > 0){\r\n <app-export-component\r\n [columns]=\"columnHeaders\"\r\n [disableExport]=\"dataTableService.showCharts()\"\r\n [count]=\"dataTableService.currFilData.length\">\r\n </app-export-component>\r\n }\r\n </div>\r\n </div>\r\n</div>", styles: [":host{--accent-color:rgb(50, 50, 50);--grid-color:rgb(199, 199, 199);--pad-left-base: 33px;--row-num-width: 75px;--reg-font-size: 17px }input[name=topLevelDataFilter]{float:left;padding:7px 5px;vertical-align:middle;box-shadow:0 0 1px 1px var(--grid-color);-moz-box-shadow:0 0 1px 1px var(--grid-color);-webkit-box-shadow:0 0 1px 1px var(--grid-color)}.deebo-dd-contain-div{margin:0 31px}.btn-chart,.btn-clear-grp{border-radius:3px}.btn-chart i{font-size:28px;vertical-align:middle;color:var(--accent-color)}.btn-chart:hover,.btn-clear-grp:hover{background:#e9e9e9;transition:background .5s ease}.dt-checks{margin-left:var(--row-num-width)}.row-numbers{margin-top:11px;display:inline-block;width:var(--row-num-width)}.row-num-header{background:#e9e9e9;box-sizing:border-box;border-bottom:1px solid var(--accent-color);border-right:1px solid var(--accent-color);box-shadow:0 -1px 3px 1px var(--grid-color);-moz-box-shadow:0 -1px 3px 1px var(--grid-color);-webkit-box-shadow:0 -1px 3px 1px var(--grid-color)}.num-row{white-space:nowrap;box-sizing:border-box;border-left:1px solid var(--grid-color);border-bottom:1px solid var(--grid-color)}.inline-table{display:inline-block;width:calc(100% - var(--row-num-width))}.special-edit-container{z-index:5;width:0!important;height:0!important}.edit-input{border:none;font-size:15px;box-shadow:none;position:absolute;background:#fff;-moz-box-shadow:none;-webkit-box-shadow:none;box-sizing:border-box}.edit-input[type=number]{text-align:right}.edit-input[type=date]{padding-left:17px}\n", "@charset \"UTF-8\";@font-face{font-family:Roboto Condensed;src:url(https://d2ffvluimla00s.cloudfront.net/RobotoCondensed-VariableFont_wght.ttf) format(\"ttf\")}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://d2ffvluimla00s.cloudfront.net/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format(\"woff2\")}.deebo-data-grid-section{font-family:Roboto Condensed,Arial,Helvetica,sans-serif}:host{--accent-color:rgb(50, 50, 50);--grid-color:rgb(199, 199, 199);--pad-left-base: 33px;--row-num-width: 75px;--reg-font-size: 17px }.relly{position:relative}.hide{display:none!important;max-height:0;max-width:0;top:0;left:0;opacity:0}.ovy{overflow:auto}.no-ovy-y{overflow-y:hidden!important}.pad-top-sm{padding-top:4px!important}.pad-top-ten{padding-top:10px!important}.pad-top-teen{padding-top:17px}.pad-top-thirty,.pad-top-trey{padding-top:33px}.pad-top-much{padding-top:75px}.o-visible{overflow:visible}.dontwrap{white-space:nowrap}.inline-b{display:inline-block}.inline{display:inline}.half-wid{width:50%;vertical-align:top;display:inline-block}.qtr-wid{width:25%;vertical-align:top;display:inline-block}.third-wid{width:33.3%;vertical-align:top;display:inline-block}.two-third-wid{width:66.6%;vertical-align:top;display:inline-block}.three-qtr-wid{width:75%;vertical-align:top;display:inline-block}.v-top{vertical-align:top!important}.v-mid{vertical-align:middle!important}.v-bot{vertical-align:bottom!important}.lg-text{font-size:larger}.xlg-text{font-size:x-large!important}.md-text{font-size:var(--reg-font-size)!important}.small-text{font-size:small}.tiny-text{font-size:x-small}.invisible{visibility:hidden}.flex-center{display:flex;justify-content:center;align-items:center}.flex-item{flex:1 1 auto}.o-x-hidden{overflow-x:hidden!important}.no-weight{font-weight:400!important}.semi-heavy{font-weight:500!important}.heavy{font-weight:700!important}.marauto{margin:0 auto}.center{text-align:center}.left{text-align:left}.right{text-align:right}.btn-reset{border:none;color:#fff;padding:7px 11px;background:maroon}.error-message{color:maroon;font-weight:500}.success{color:green;font-weight:500}.neutral{color:var(--accent-color)}input,select{border:none;padding:4px;border-radius:3px;box-sizing:border-box;font-family:Roboto Condensed,Arial,Helvetica,sans-serif;box-shadow:0 0 1px 1px #afafaf;-moz-box-shadow:0 0 1px 1px #afafaf;-webkit-box-shadow:0 0 1px 1px #afafaf}input[type=radio],input[type=checkbox]{cursor:pointer;box-shadow:none!important;-moz-box-shadow:none!important;-webkit-box-shadow:none!important}button{cursor:pointer}button:focus,input:focus,select:focus,textarea:focus,a:focus{outline-width:0}button:disabled,input:disabled,select:disabled{opacity:.5;cursor:not-allowed}.prevent{opacity:.5;cursor:not-allowed;pointer-events:none}.controls{text-align:right;padding:16px 11px 6px 1px;max-width:100%;clear:both;overflow-x:auto;white-space:nowrap}.controls button{font-size:var(--reg-font-size);margin-right:31px;vertical-align:middle}.controls button span{vertical-align:middle}.controls button:last-of-type{margin-right:0}.data-table{margin-top:11px;overflow:hidden;box-shadow:0 -1px 3px 1px var(--grid-color);-moz-box-shadow:0 -1px 3px 1px var(--grid-color);-webkit-box-shadow:0 -1px 3px 1px var(--grid-color)}.sel-rows-checked{color:#00a8f399!important}.save-hilite{padding:2px 4px;border-radius:3px;background:#ebebeb;box-shadow:0 0 3px 1px var(--accent-color);-moz-box-shadow:0 0px 3px 1px var(--accent-color);-webkit-box-shadow:0 0px 3px 1px var(--accent-color)}.btn-ctrl-sel-rows,.btn-export-or-print{border:none;padding:3px 4px;border-radius:3px;background:#f5f5f5;vertical-align:middle;box-shadow:0 0 2px 1px var(--accent-color);-moz-box-shadow:0 0 2px 1px var(--accent-color);-webkit-box-shadow:0 0 2px 1px var(--accent-color)}.deebo-dd-contain-div:last-of-type{margin-right:0!important}.btn-export{width:100%;text-transform:uppercase}.btn-export:hover{text-decoration:underline}.btn-ctrl-sel-rows:hover,.btn-export-or-print:hover{background:#ebebeb;box-shadow:0 0 6px 2px gray;-moz-box-shadow:0 0 6px 2px gray;-webkit-box-shadow:0 0 6px 2px gray}.btn-center-selected{padding:2px 4px;border-radius:5px;background:#f5f5f5;box-shadow:0 0 6px 2px gray;-moz-box-shadow:0 0 6px 2px gray;-webkit-box-shadow:0 0 6px 2px gray}.btn-ctrl-sel-rows .material-icons{font-size:18px;font-weight:600;vertical-align:middle}.btn-ctrl-sel-rows .material-icons:not(.error-message){color:var(--accent-color)}.data-table-headers{cursor:pointer;white-space:nowrap;border-bottom:1px solid var(--grid-color)}.data-table-row{white-space:nowrap}.data-table-row:hover,.data-table-row .col-item-freeze:hover{background:#f3f3f3}.data-row-selected{background:#d6d6d6!important}.table-working{opacity:.1;pointer-events:none}.select-row-check{left:9px;z-index:10;cursor:pointer;margin:0;position:absolute;padding:0!important}.gb-row-num{left:2px;z-index:10;cursor:pointer;margin:0;font-size:x-small;position:absolute;padding:0!important}.mock-html{width:50%;height:18px;margin:0 auto;border-radius:11px;background:var(--grid-color)}.abs-right{top:7px;right:7px;position:absolute}.has-symbol:after{content:attr(data-symbol);padding-left:3px}.has-symbol-b:before{content:attr(data-symbol);padding-right:3px}.data-table-row-no-data{font-size:xx-large;color:gray;font-weight:500;text-shadow:-1px -1px var(--accent-color)}.data-row-selected .col-item-freeze,.data-row-selected .data-cell,.data-row-selected:hover,.data-row-selected .col-item-freeze:hover,.data-row-selected .data-cell:hover{background:#d6d6d6!important}.data-table-headers .col-item-freeze:first-of-type{border-bottom:1px solid var(--grid-color)}.col-header{z-index:2;width:125px;overflow:auto;cursor:grab;padding:7px 3px;text-align:center;position:relative;box-sizing:border-box;display:inline-block;vertical-align:top;white-space:pre-wrap;word-wrap:break-word;background:#fafafa;border-right:1px solid var(--grid-color)}.col-header button,.col-header span,.col-header select{cursor:pointer;vertical-align:middle}.col-header input{vertical-align:middle}.col-header-img-container{overflow-y:hidden;text-align:center;display:inline-block;vertical-align:middle;background-size:cover;background-position:center;background-repeat:no-repeat}.col-header-minimized{width:0!important;height:0!important;padding:0!important;overflow:hidden!important;border-bottom:none!important;border-right:none!important;transition:width .3s ease}.btn-maximize-col{border:none;border-radius:5px;background:#f5f5f5;box-shadow:0 0 3px 2px gray;font-size:var(--reg-font-size);margin-right:27px;padding:4px}.no-btn{border:none;background:none}.col-item-freeze{left:0;z-index:3;position:sticky;background:#fff;box-shadow:2px 0 3px 0 var(--grid-color);-moz-box-shadow:2px 0px 3px 0px var(--grid-color);-webkit-box-shadow:2px 0px 3px 0px var(--grid-color)}.col-header input,.select-filter{width:40%;margin:11px 0 1px}.sel-fil-container{z-index:5}.edit-input-option-cont{left:0;right:0}.edit-input-opt button{width:100%;font-size:15px;padding:11px 0 11px 17px;text-align:left!important}.selfil-opt-contain,.edit-input-option-cont{overflow:auto;max-height:240px;border-radius:5px;position:absolute;background:#fff;box-shadow:0 1px 3px 1px var(--grid-color);-moz-box-shadow:0 1px 3px 1px var(--grid-color);-webkit-box-shadow:0 1px 3px 1px var(--grid-color)}.selfil-div,.edit-input-opt{cursor:pointer;text-align:left;border-bottom:1px solid var(--grid-color)}.selfil-div:hover,.edit-input-opt:hover{background:#ebebeb}.selfil-div:last-of-type,.edit-input-opt:last-of-type{border-bottom:none}.selfil-div label{width:calc(100% - 22px);font-size:15px;cursor:pointer;padding:11px;display:inline-block}.selfil-div label input[type=checkbox]{margin-right:11px;vertical-align:middle}.select-filter-comparator{width:36px;z-index:3;opacity:0;position:relative;margin:11px 0 1px 15px}.btn-fil-comp{top:2px;left:-36px;border:none;position:absolute;background:#fafafa}.btn-fil-comp i{color:var(--accent-color)}@media screen and (min-width:960px){.col-header input,.select-filter,.select-filter-comparator{margin-top:7px;margin-bottom:1px}}.data-cell{width:125px;padding:11px 6px 11px 17px;overflow:auto;font-size:15px;word-wrap:break-word;white-space:pre-line;vertical-align:top;box-sizing:border-box;display:inline-flex;align-items:center;border-right:1px solid var(--grid-color);border-bottom:1px solid var(--grid-color)}input.edit-input{border-radius:0}.data-cell:focus,input.edit-input:focus{outline:1px solid #00a8f3}.dragger-cell-focused{background:#00a8f333;border-left:1px solid #00a8f3;border-right:1px solid #00a8f3!important}.focused-cell-dragger{width:9px;height:9px;cursor:crosshair;position:absolute;background:#00a8f3;box-shadow:0 0 1px 1px var(--accent-color);-moz-box-shadow:0 0 1px 1px var(--accent-color);-webkit-box-shadow:0 0 1px 1px var(--accent-color)}.holding-check{padding-left:44px}.data-cell-riiight{padding:11px 17px 11px 6px;justify-content:right}.data-cell-ceeenter{padding:11px 6px;justify-content:center!important}.cell-og-link{line-height:0;visibility:hidden}.cell-og-link:before{visibility:visible;content:attr(data-title)}.moveable-col{cursor:col-resize!important}.moveable-row{cursor:row-resize!important}.data-sort-arr{cursor:pointer;margin-left:11px;border:none;background:none;padding:0 0 0 2px;color:var(--accent-color)}.data-sort-arr .material-icons{font-size:20px}.data-col-info{left:10px;top:12px;padding:0;border:none;cursor:pointer;background:none;position:absolute;color:var(--accent-color)}.data-col-info .material-icons{font-size:16px}.sort-order-indicator{font-weight:600;vertical-align:middle;font-size:16px}.btn-min-col{cursor:pointer;top:0;right:2px;font-size:20px;border:none;background:none;position:absolute;padding:0 2px 5px 0;color:var(--accent-color)}.btn-min-col-hide{z-index:0;visibility:hidden;pointer-events:none}.btn-freeze-col{float:left;border:none;cursor:pointer;background:none}.btn-freeze-col .material-icons{font-size:16px;color:var(--accent-color)}.hidden-cols{max-width:100%;overflow-x:auto;clear:both;white-space:nowrap;padding:17px 15px 5px 4px}.hidden-cols button:first-of-type:before{content:\"Hidden Columns\";font-size:12px;font-weight:600;padding-right:11px;vertical-align:middle}.col-header span{word-wrap:break-word;vertical-align:middle;font-size:var(--reg-font-size)}.o-ins-div span,.o-ins-div i{vertical-align:middle;font-size:16px}.aux-chip{text-align:center;padding-bottom:33px;word-wrap:break-word;white-space:pre-wrap}.insights{padding:17px 15px}.insight-field{min-height:100px;padding:21px 0;font-size:large;white-space:pre-wrap;word-wrap:break-word;border-bottom:1px solid lightgray}@media screen and (max-width:760px){.insight-field:first-of-type{padding-top:7px}}@media screen and (min-width:760px){.insight-field-row{border-bottom:1px solid lightgray}.insight-field,.aux-chip{width:50%;vertical-align:top;display:inline-block;border-bottom:none}}@media screen and (min-width:1024px){.insight-field,.aux-chip{width:33%}}.chart-label-cont{padding-top:10px;text-align:center}.pie-piece-label{padding-top:5px;margin-right:27px;display:inline-block}.pie-piece-label-sq{width:11px;height:11px;margin:0 0 0 2px;display:inline-block;vertical-align:middle}.pie-piece-label span{font-size:small}.pie-piece-label span:before{font-size:smaller;padding-right:4px;font-weight:600;content:attr(data-percent)}.pie-layover{border-radius:50%;background:#fff;position:absolute;padding:5px!important;display:flex;font-size:17px;align-items:center;overflow:hidden;box-sizing:border-box;justify-content:center;color:var(--accent-color)}.pie-layover div{font-weight:500;padding:0!important}.ins-even-dist-ct{font-size:24px;font-weight:500}.line-graph-container{padding:11px 0 33px 7px!important;box-sizing:border-box;margin-left:11px}.lg-title-cont{padding:0!important;text-align:center;margin:17px 11px}.lg-n-marker-cont{width:60px;position:relative;padding:0!important;box-sizing:border-box;display:inline-block;vertical-align:top}.lg-n-marker-cont:before{top:45%;left:-37px;display:block;position:absolute;white-space:nowrap;color:var(--grid-color);content:attr(data-column);transform:rotate(-90deg)}.lg-n-marker,.lg-n-marker-h{padding:0 11px 0 0!important;font-size:small;position:relative;text-align:right;white-space:nowrap;box-sizing:border-box}.line-graph{width:calc(92% - 60px);position:relative;box-sizing:border-box;display:inline-block;vertical-align:top;padding:0!important;border-left:1px solid var(--accent-color);border-bottom:1px solid var(--accent-color)}.lg-lbl-x{left:0;right:0;bottom:-45px;font-size:small;font-weight:500;text-align:center;position:absolute;padding:0!important}.btn-line-graph-opts{margin:0;padding:4px;background:none;border-top:1px solid var(--accent-color);border-left:1px solid var(--accent-color);border-bottom:1px solid var(--accent-color)}.sp-line-graph-title{margin-top:7px;font-size:large;text-decoration:underline}.lg-dt-marker,.lg-dt-marker-h,.vd-n-marker,.vd-n-marker-h{bottom:-22px;font-size:small;position:absolute;text-align:center;padding:0!important;display:inline-block;box-sizing:border-box}.lg-dt-marker-h,.vd-n-marker-h{visibility:hidden}.lg-dt-marker.visible-marker{margin-left:21px}.lg-n-marker-h{height:0;visibility:hidden}.visible-marker{z-index:2;font-weight:600;background:#fff;height:unset!important;padding:1px 2px!important;visibility:visible!important;box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.visible-marker:before{font-weight:600}.lg-dt-marker:before{top:-15px;left:0;content:\"|\";position:absolute}.vd-n-marker:before{top:-15px;left:50%;content:\"|\";left:calc(50% - 2px);position:absolute}.lg-n-marker:before{top:-4px;right:-3px;content:\"-\";font-weight:600;font-size:large;position:absolute;background:#fff}.btn-line-graph-opts:hover{background:#d6d6d6;transition:background .3s ease}.btn-line-graph-opts:last-of-type{border-right:1px solid var(--accent-color)}.btn-lg-sel{color:#fff!important;background:var(--accent-color);box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.btn-lg-sel:hover{background:var(--accent-color)}.lg-plot{height:8px;width:8px;opacity:.3;cursor:pointer;border-radius:50%;position:absolute;padding:0!important;background:var(--accent-color)}.lg-plot:hover{z-index:100;opacity:1!important}.lg-plot:hover:after{padding:3px;display:inline-block;font-size:small;border-radius:5px;margin:0 0 0 25px;font-weight:700;content:attr(data-number);background:#fff!important;box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.lg-plot-opq{opacity:0;background:#fff}.lg-plot-opq:hover{opacity:1!important;background:var(--grid-color);transition:opacity .2s ease}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:\"liga\";-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}\n"], dependencies: [{ kind: "component", type: DataTableHeader, selector: "app-data-table-header", inputs: ["colWid", "canFreeze", "hideMinCol", "columnHeader"], outputs: ["sort", "render", "width", "height", "reset", "freeze", "filFocus", "filSelClick", "minimize", "emitCompFocus", "scrollOnFocus"] }, { kind: "component", type: DataCellComponent, selector: "app-data-cell", inputs: ["text", "html", "minimized", "rawText", "cell", "rowId", "colWid", "rowHeight", "noColResize", "columnValClass"], outputs: ["width", "height", "edit", "dragListen", "validateEditFocus", "clearVEditFocus"] }, { kind: "component", type: DataTablePaginator, selector: "app-data-table-paginator", inputs: ["totalRows", "filSortStr", "disableJump"], outputs: ["jumpTo"] }, { kind: "component", type: ChartsAndGraphs, selector: "app-charts-and-graphs", inputs: ["height", "state", "chartColumns"], outputs: ["close"] }, { kind: "component", type: RowGroupMenu, selector: "app-row-group-menu", inputs: ["groups", "disableGB", "enableClear"] }, { kind: "component", type: RowGroupPanel, selector: "app-row-group-panel", inputs: ["horizRest", "colOfInt", "groupValue", "useRowWid", "maxCols", "editable", "columns", "showRowNumbers"], outputs: ["openEvt", "horizPos", "cellEdit"] }, { kind: "component", type: ExportComponent, selector: "app-export-component", inputs: ["disableExport", "count", "columns"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4$1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: RealPaginator, selector: "lib-real-paginator", outputs: ["pageChange"] }, { kind: "pipe", type: DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
7355
7529
  }
7356
7530
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NgxDeebodata, decorators: [{
7357
7531
  type: Component,
@@ -7366,7 +7540,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
7366
7540
  FormsModule,
7367
7541
  DecimalPipe,
7368
7542
  CommonModule,
7369
- ], changeDetection: ChangeDetectionStrategy.Eager, template: "<div class=\"deebo-data-grid-section\">\r\n <div class=\"hidden-cols\">\r\n @for (hcol of hiddenCols; track hcol) {\r\n <button type=\"button\" class=\"btn-maximize-col\" (click)=\"maximizeColCells(hcol)\">{{hcol}}</button>\r\n }\r\n </div>\r\n <div class=\"controls\" >\r\n <input type=\"text\" #topLevelDataFilter autocomplete=\"off\" name=\"topLevelDataFilter\" placeholder=\"Filter any column...\" \r\n (input)=\"topFilterOnKeyUp($event)\" (keyup)=\"topFilterOnKeyUp($event)\" maxlength=\"255\" [(ngModel)]=\"topLevelFilter\" \r\n [disabled]=\"dataTableService.showCharts() || !dataTableService.mainData.length || handlingSelRows\" autocomplete=\"off\" />\r\n @if(currGroupValues().length){\r\n <button type=\"button\" class=\"no-btn btn-clear-grp\" (click)=\"processGrouping(null)\">\r\n <i class=\"material-icons error-message heavy v-mid\" aria-hidden=\"false\">close</i>&nbsp;<span class=\"md-text v-mid\">Grouping</span>\r\n </button>\r\n }\r\n <button type=\"button\" class=\"no-btn btn-chart\" (click)=\"openCharts()\" [disabled]=\"dataTableService.showCharts() || !dataTableService.currFilData.length || handlingSelRows || !common.goodLs()\">\r\n <i class=\"material-icons v-mid\" aria-hidden=\"false\">bar_chart</i>&nbsp;<span class=\"v-mid\">Insights</span>\r\n </button>\r\n <button type=\"button\" [disabled]=\"!dataTableService.currSelRows.length || handlingSelRows\" (click)=\"clearSelectedRows()\" class=\"btn-ctrl-sel-rows\">Deselect Rows</button>\r\n <button #btnTogSelRows type=\"button\" [disabled]=\"!dataTableService.currSelRows.length || handlingSelRows\" (click)=\"toggleSelectedRows()\" class=\"btn-ctrl-sel-rows\">\r\n <i class=\"material-icons\" aria-hidden=\"false\">check_box_outline_blank</i>&nbsp;<span>{{togSelRows}}</span>\r\n </button>\r\n <button [disabled]=\"!topLevelFilter && dataTableService.arefilSrtTrkPropsDefault()\" \r\n class=\"btn-reset\" (click)=\"resetCurrentData()\" >Reset</button>\r\n </div>\r\n @if (!isScrolling){\r\n <div class=\"relly\" [ngClass]=\"{'dt-checks': rowNumbers, 'hide' : isMultiFiltering() || dataTableService.isFiltering() || \r\n dataTableService.isSorting() || currGroupValues().length || currSelEditOpts.length }\">\r\n @for (chk of dtChecks; track $index) {\r\n <input [id]=\"'checkDataTableRow' + chk\" class=\"select-row-check invisible\" \r\n [checked]=\"dataTableService.currSelRows.indexOf(chk) > -1\" type=\"checkbox\" [name]=\"'checkDataTableRow' + chk\"\r\n (click)=\"toggleSingleRowSelected(chk)\" (keyup.enter)=\"toggleSingleRowSelected(chk)\" [value]=\"'dataTableRow' + chk\" >\r\n }\r\n </div>\r\n }\r\n <div #selFilContainer class=\"relly sel-fil-container\">\r\n <div class=\"selfil-opt-contain\" [ngStyle]=\"ddFilStyle\">\r\n @for (opt of currFilOpts; track opt; let i = $index) {\r\n <div class=\"selfil-div\">\r\n <label [for]=\"'selfilOpt' + currDDFilter + i\" class=\"'selfil-lbl-' + currDDFilter\"><input [id]=\"'selfilOpt' + currDDFilter + i\" \r\n [class]=\"'selfil-opt-' + currDDFilter\" (input)=\"handleMultiSelFilter(currDDFilter, opt.value, $event.target.checked)\" \r\n (click)=\"handleMultiSelFilter(currDDFilter, opt.value, $event.target.checked)\" [name]=\"'selfilOpt' + currDDFilter + i\" \r\n [checked]=\"opt.checked\" [value]=\"opt.value\" [disabled]=\"isMultiFiltering()\" type=\"checkbox\" />{{opt.value || \"(Blank)\"}}</label>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div #validatedEdit class=\"relly special-edit-container invisible\">\r\n @if (validatedEditType === 'date'){\r\n <input id=\"selEditDate\" name=\"selEditDate\" type=\"date\" class=\"edit-input\" \r\n (change)=\"execCellEdit($event, true)\" (input)=\"execCellEdit($event, true)\" (blur)=\"execCellEdit($event)\" />\r\n }\r\n @if (validatedEditType === 'number'){\r\n <input id=\"selEditNum\" name=\"selEditNum\" type=\"number\" class=\"edit-input\" \r\n (keyup)=\"execCellEdit($event, true)\" (input)=\"execCellEdit($event, true)\" (blur)=\"execCellEdit($event)\" (keyup.enter)=\"execCellEdit($event)\" />\r\n }\r\n @if (validatedEditType === 'text'){\r\n <div class=\"relly edit-input\">\r\n <div class=\"edit-input-option-cont\">\r\n <div class=\"edit-input-opt\"><button type=\"button\" class=\"no-btn\" (click)=\"execCellEdit($event, false, null)\">-</button></div>\r\n @for (opt of currSelEditOpts; track opt.value) {\r\n <div class=\"edit-input-opt\"><button type=\"button\" class=\"no-btn\" \r\n (click)=\"execCellEdit($event, false, opt.value)\">{{opt.value || \"(Blank)\"}}</button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"relly\" style=\"z-index: 6;\">\r\n <div #fCellDragger tabindex=\"0\" id=\"fCellDragger\" (focus)=\"focusCellDragger()\" (blur)=\"execValClear(true)\"\r\n (mousedown)=\"focusCellDraggerFromMouseDown()\" (keydown)=\"handleFDragTab($event)\" (keydown)=\"handleDraggerKD($event)\"\r\n [ngClass]=\"{'hide': dataTableService.currEditIndex < 0, 'focused-cell-dragger': dataTableService.currEditIndex > -1 }\"></div>\r\n </div>\r\n @if(dataTableService.showCharts() && common.goodLs()){\r\n <app-charts-and-graphs \r\n [height]=\"chartHgt\"\r\n [state]=\"chartState\"\r\n [chartColumns]=\"columnsForCharts\"\r\n (close)=\"closeCharts($event)\"\r\n ></app-charts-and-graphs>\r\n }\r\n <div [ngClass]=\"{'row-numbers': rowNumbers && !dataTableService.showCharts() && !currGroupValues().length, 'hide': !rowNumbers || dataTableService.showCharts() || currGroupValues().length}\" >\r\n <div #rowNumHeader class=\"row-num-header flex-center\"><div class=\"semi-heavy\">No.</div></div>\r\n <div style=\"overflow: hidden;\" [style.height]=\"dataTableService.dTblHeight() + 'px'\">\r\n <div [ngStyle]=\"{'overflow': 'auto', 'marginTop': rnBTop() + 'px' }\">\r\n @for (num of rowNos; track num.number) {\r\n <div [id]=\"'rn' + num.number\" class=\"flex-center num-row\" [style.height]=\"num.height || dataTableService.defltRHgt\">\r\n <div class=\"small-text\">{{num.number | number}}</div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div><div #dataTable class=\"data-table\" [class.inline-table]=\"rowNumbers && !dataTableService.showCharts() && !currGroupValues().length\">\r\n <div #dataTableHeaders class=\"data-table-headers\">\r\n @for (col of columnHeaders; track col.column; let i = $index) {\r\n <app-data-table-header\r\n [columnHeader]=\"col\"\r\n [colWid]=\"dataTableService.useColWid\"\r\n [hideMinCol]=\"col.hideMinCol\"\r\n [canFreeze]=\"i === 0 ? true : false\"\r\n (reset)=\"resetCurrentData($event)\"\r\n (freeze)=\"freezeColCells($event)\"\r\n (minimize)=\"minimizeColEls($event)\"\r\n (filFocus)=\"handleFilFocus($event)\"\r\n (scrollOnFocus)=\"checkTabHorizScroll($event)\"\r\n (emitCompFocus)=\"killSelFilOpts(true)\"\r\n (filSelClick)=\"handleWinClickOnSelFil()\"\r\n (height)=\"setHeaderHeight($event, true)\"\r\n (render)=\"renderCurrData(false, $event.field)\"\r\n (width)=\"handleSingleColResize($event.value, $event.column)\"\r\n ></app-data-table-header>\r\n }\r\n </div>\r\n <div #dataTableBody id=\"dataTableBody\" [ngStyle]=\"{ 'overflowY': 'auto', 'overflowX': currGroupValues().length ? 'hidden' : 'auto' }\" \r\n [style.height]=\"dataTableService.dTblHeight() + 'px'\" (scroll)=\"handleScroll($event)\" (scrollend)=\"handleScrollEnd()\"\r\n [class.table-working]=\"isMultiFiltering() || dataTableService.isFiltering() || dataTableService.isSorting()\" >\r\n <div #aboveArea [ngStyle]=\"{'height': aboveHgt() + 'px', 'width': useRowWid}\"></div>\r\n <div [style.transform]=\"'translateY('+transY()+'px)'\">\r\n @for(row of rows; track $index){\r\n <div [id]=\"row.id\" class=\"data-table-row\" [attr.data-index]=\"row.index\"\r\n [class.data-row-selected]=\"!dataTableService.displayOnlySelRows && dataTableService.currSelRows.indexOf(row.index) > -1\"\r\n [ngStyle]=\"{'width': row.width, 'height': row.height}\" >\r\n @for(cell of row.cells; track cell.column){\r\n <app-data-cell [cell]=\"cell\" \r\n [rowId]=\"row.id\" \r\n [text]=\"cell.text || ''\"\r\n [html]=\"cell.html || ''\"\r\n [rawText]=\"cell.rawText\"\r\n [minimized]=\"cell.minimized\"\r\n [rowHeight]=\"row.height || ''\"\r\n (edit)=\"execCellEdit($event)\"\r\n (mousedown)=\"checkCellEditOnClick()\"\r\n [columnValClass]=\"cell.specialColClass\"\r\n (dragListen)=\"listenToCellDraggerMouseMove = $event\"\r\n [colWid]=\"cell.width || dataTableService.useColWid\"\r\n (width)=\"handleSingleColResize($event)\"\r\n (height)=\"setSingleRowHgt($event, row.id, true)\"\r\n (clearVEditFocus)=\"validatedEditType = $event\"\r\n (validateEditFocus)=\"handleValidatedCellEditFocus($event)\"\r\n ></app-data-cell>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <div #belowArea [ngStyle]=\"{'height': belowHgt() + 'px', 'width': useRowWid}\"></div>\r\n @for(group of currGroupValues(); track group){\r\n <app-row-group-panel\r\n [groupValue]=\"group.value\"\r\n [maxCols]=\"maxCols\"\r\n [useRowWid]=\"useRowWid\"\r\n [editable]=\"editable\"\r\n [horizRest]=\"horizRest()\"\r\n [columns]=\"columnNames\"\r\n [showRowNumbers]=\"rowNumbers\"\r\n [colOfInt]=\"columnOfInterest()\"\r\n (horizPos)=\"setHorizPos($event)\"\r\n (cellEdit)=\"execCellEdit($event)\"\r\n (openEvt)=\"scrollToRowGroup($event)\"\r\n ></app-row-group-panel>\r\n }\r\n @if(!dataTableService.currFilData.length && !currGroupValues().length){\r\n <div [style.height]=\"dataTableService.dTblHeight() + 'px'\" class=\"data-table-row flex-center data-table-row-no-data\" style=\"width: 100%; white-space: normal;\">\r\n <div class=\"center\">{{dataTableService.noDataMsg}}</div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if(paginatorReady){\r\n <app-data-table-paginator\r\n [filSortStr]=\"allFilSortInfo()\"\r\n (jumpTo)=\"jumpToRow($event)\"\r\n [totalRows]=\"dataTableService.currFilData.length\"\r\n [disableJump]=\"dataTableService.showCharts() || currGroupValues().length > 0 || !dataTableService.currFilData.length || handlingSelRows\"\r\n ></app-data-table-paginator><!--not an actual paginator-->\r\n }\r\n <div class=\"pad-top-thirty right\">\r\n <div class=\"inline-b deebo-dd-contain-div\">\r\n @if(canGroupBy().length > 0){\r\n <app-row-group-menu\r\n [groups]=\"canGroupBy()\"\r\n [disableGB]=\"dataTableService.showCharts()\"\r\n [enableClear]=\"currGroupValues().length ? true : false\"\r\n ></app-row-group-menu>\r\n }\r\n </div><div class=\"inline-b deebo-dd-contain-div\">\r\n @if(dataTableService.currFilData.length > 0){\r\n <app-export-component\r\n [columns]=\"columnHeaders\"\r\n [disableExport]=\"dataTableService.showCharts()\"\r\n [count]=\"dataTableService.currFilData.length\">\r\n </app-export-component>\r\n }\r\n </div>\r\n </div>\r\n</div>", styles: [":host{--accent-color:rgb(50, 50, 50);--grid-color:rgb(199, 199, 199);--pad-left-base: 33px;--row-num-width: 75px;--reg-font-size: 17px }input[name=topLevelDataFilter]{float:left;padding:7px 5px;vertical-align:middle;box-shadow:0 0 1px 1px var(--grid-color);-moz-box-shadow:0 0 1px 1px var(--grid-color);-webkit-box-shadow:0 0 1px 1px var(--grid-color)}.deebo-dd-contain-div{margin:0 31px}.btn-chart,.btn-clear-grp{border-radius:3px}.btn-chart i{font-size:28px;vertical-align:middle;color:var(--accent-color)}.btn-chart:hover,.btn-clear-grp:hover{background:#e9e9e9;transition:background .5s ease}.dt-checks{margin-left:var(--row-num-width)}.row-numbers{margin-top:11px;display:inline-block;width:var(--row-num-width)}.row-num-header{background:#e9e9e9;box-sizing:border-box;border-bottom:1px solid var(--accent-color);border-right:1px solid var(--accent-color);box-shadow:0 -1px 3px 1px var(--grid-color);-moz-box-shadow:0 -1px 3px 1px var(--grid-color);-webkit-box-shadow:0 -1px 3px 1px var(--grid-color)}.num-row{white-space:nowrap;box-sizing:border-box;border-left:1px solid var(--grid-color);border-bottom:1px solid var(--grid-color)}.inline-table{display:inline-block;width:calc(100% - var(--row-num-width))}.special-edit-container{z-index:5;width:0!important;height:0!important}.edit-input{border:none;font-size:15px;box-shadow:none;position:absolute;background:#fff;-moz-box-shadow:none;-webkit-box-shadow:none;box-sizing:border-box}.edit-input[type=number]{text-align:right}.edit-input[type=date]{padding-left:17px}\n", "@charset \"UTF-8\";@font-face{font-family:Roboto Condensed;src:url(https://d2ffvluimla00s.cloudfront.net/RobotoCondensed-VariableFont_wght.ttf) format(\"ttf\")}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://d2ffvluimla00s.cloudfront.net/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format(\"woff2\")}.deebo-data-grid-section{font-family:Roboto Condensed,Arial,Helvetica,sans-serif}:host{--accent-color:rgb(50, 50, 50);--grid-color:rgb(199, 199, 199);--pad-left-base: 33px;--row-num-width: 75px;--reg-font-size: 17px }.relly{position:relative}.hide{display:none!important;max-height:0;max-width:0;top:0;left:0;opacity:0}.ovy{overflow:auto}.no-ovy-y{overflow-y:hidden!important}.pad-top-sm{padding-top:4px!important}.pad-top-ten{padding-top:10px!important}.pad-top-teen{padding-top:17px}.pad-top-thirty,.pad-top-trey{padding-top:33px}.pad-top-much{padding-top:75px}.o-visible{overflow:visible}.dontwrap{white-space:nowrap}.inline-b{display:inline-block}.inline{display:inline}.half-wid{width:50%;vertical-align:top;display:inline-block}.qtr-wid{width:25%;vertical-align:top;display:inline-block}.third-wid{width:33.3%;vertical-align:top;display:inline-block}.two-third-wid{width:66.6%;vertical-align:top;display:inline-block}.three-qtr-wid{width:75%;vertical-align:top;display:inline-block}.v-top{vertical-align:top!important}.v-mid{vertical-align:middle!important}.v-bot{vertical-align:bottom!important}.lg-text{font-size:larger}.xlg-text{font-size:x-large!important}.md-text{font-size:var(--reg-font-size)!important}.small-text{font-size:small}.tiny-text{font-size:x-small}.invisible{visibility:hidden}.flex-center{display:flex;justify-content:center;align-items:center}.flex-item{flex:1 1 auto}.o-x-hidden{overflow-x:hidden!important}.no-weight{font-weight:400!important}.semi-heavy{font-weight:500!important}.heavy{font-weight:700!important}.marauto{margin:0 auto}.center{text-align:center}.left{text-align:left}.right{text-align:right}.btn-reset{border:none;color:#fff;padding:7px 11px;background:maroon}.error-message{color:maroon;font-weight:500}.success{color:green;font-weight:500}.neutral{color:var(--accent-color)}input,select{border:none;padding:4px;border-radius:3px;box-sizing:border-box;font-family:Roboto Condensed,Arial,Helvetica,sans-serif;box-shadow:0 0 1px 1px #afafaf;-moz-box-shadow:0 0 1px 1px #afafaf;-webkit-box-shadow:0 0 1px 1px #afafaf}input[type=radio],input[type=checkbox]{cursor:pointer;box-shadow:none!important;-moz-box-shadow:none!important;-webkit-box-shadow:none!important}button{cursor:pointer}button:focus,input:focus,select:focus,textarea:focus,a:focus{outline-width:0}button:disabled,input:disabled,select:disabled{opacity:.5;cursor:not-allowed}.prevent{opacity:.5;cursor:not-allowed;pointer-events:none}.controls{text-align:right;padding:16px 11px 6px 1px;max-width:100%;clear:both;overflow-x:auto;white-space:nowrap}.controls button{font-size:var(--reg-font-size);margin-right:31px;vertical-align:middle}.controls button span{vertical-align:middle}.controls button:last-of-type{margin-right:0}.data-table{margin-top:11px;overflow:hidden;box-shadow:0 -1px 3px 1px var(--grid-color);-moz-box-shadow:0 -1px 3px 1px var(--grid-color);-webkit-box-shadow:0 -1px 3px 1px var(--grid-color)}.sel-rows-checked{color:#00a8f399!important}.save-hilite{padding:2px 4px;border-radius:3px;background:#ebebeb;box-shadow:0 0 3px 1px var(--accent-color);-moz-box-shadow:0 0px 3px 1px var(--accent-color);-webkit-box-shadow:0 0px 3px 1px var(--accent-color)}.btn-ctrl-sel-rows,.btn-export-or-print{border:none;padding:3px 4px;border-radius:3px;background:#f5f5f5;vertical-align:middle;box-shadow:0 0 2px 1px var(--accent-color);-moz-box-shadow:0 0 2px 1px var(--accent-color);-webkit-box-shadow:0 0 2px 1px var(--accent-color)}.deebo-dd-contain-div:last-of-type{margin-right:0!important}.btn-export{width:100%;text-transform:uppercase}.btn-export:hover{text-decoration:underline}.btn-ctrl-sel-rows:hover,.btn-export-or-print:hover{background:#ebebeb;box-shadow:0 0 6px 2px gray;-moz-box-shadow:0 0 6px 2px gray;-webkit-box-shadow:0 0 6px 2px gray}.btn-center-selected{padding:2px 4px;border-radius:5px;background:#f5f5f5;box-shadow:0 0 6px 2px gray;-moz-box-shadow:0 0 6px 2px gray;-webkit-box-shadow:0 0 6px 2px gray}.btn-ctrl-sel-rows .material-icons{font-size:18px;font-weight:600;vertical-align:middle}.btn-ctrl-sel-rows .material-icons:not(.error-message){color:var(--accent-color)}.data-table-headers{cursor:pointer;white-space:nowrap;border-bottom:1px solid var(--grid-color)}.data-table-row{white-space:nowrap}.data-table-row:hover,.data-table-row .col-item-freeze:hover{background:#f3f3f3}.data-row-selected{background:#d6d6d6!important}.table-working{opacity:.1;pointer-events:none}.select-row-check{left:9px;z-index:10;cursor:pointer;margin:0;position:absolute;padding:0!important}.gb-row-num{left:2px;z-index:10;cursor:pointer;margin:0;font-size:x-small;position:absolute;padding:0!important}.mock-html{width:50%;height:18px;margin:0 auto;border-radius:11px;background:var(--grid-color)}.abs-right{top:7px;right:7px;position:absolute}.has-symbol:after{content:attr(data-symbol);padding-left:3px}.has-symbol-b:before{content:attr(data-symbol);padding-right:3px}.data-table-row-no-data{font-size:xx-large;color:gray;font-weight:500;text-shadow:-1px -1px var(--accent-color)}.data-row-selected .col-item-freeze,.data-row-selected .data-cell,.data-row-selected:hover,.data-row-selected .col-item-freeze:hover,.data-row-selected .data-cell:hover{background:#d6d6d6!important}.data-table-headers .col-item-freeze:first-of-type{border-bottom:1px solid var(--grid-color)}.col-header{z-index:2;width:125px;overflow:auto;cursor:grab;padding:7px 3px;text-align:center;position:relative;box-sizing:border-box;display:inline-block;vertical-align:top;white-space:pre-wrap;word-wrap:break-word;background:#fafafa;border-right:1px solid var(--grid-color)}.col-header button,.col-header span,.col-header select{cursor:pointer;vertical-align:middle}.col-header input{vertical-align:middle}.col-header-img-container{overflow-y:hidden;text-align:center;display:inline-block;vertical-align:middle;background-size:cover;background-position:center;background-repeat:no-repeat}.col-header-minimized{width:0!important;height:0!important;padding:0!important;overflow:hidden!important;border-bottom:none!important;border-right:none!important;transition:width .3s ease}.btn-maximize-col{border:none;border-radius:5px;background:#f5f5f5;box-shadow:0 0 3px 2px gray;font-size:var(--reg-font-size);margin-right:27px;padding:4px}.no-btn{border:none;background:none}.col-item-freeze{left:0;z-index:3;position:sticky;background:#fff;box-shadow:2px 0 3px 0 var(--grid-color);-moz-box-shadow:2px 0px 3px 0px var(--grid-color);-webkit-box-shadow:2px 0px 3px 0px var(--grid-color)}.col-header input,.select-filter{width:40%;margin:11px 0 1px}.sel-fil-container{z-index:5}.edit-input-option-cont{left:0;right:0}.edit-input-opt button{width:100%;font-size:15px;padding:11px 0 11px 17px;text-align:left!important}.selfil-opt-contain,.edit-input-option-cont{overflow:auto;max-height:240px;border-radius:5px;position:absolute;background:#fff;box-shadow:0 1px 3px 1px var(--grid-color);-moz-box-shadow:0 1px 3px 1px var(--grid-color);-webkit-box-shadow:0 1px 3px 1px var(--grid-color)}.selfil-div,.edit-input-opt{cursor:pointer;text-align:left;border-bottom:1px solid var(--grid-color)}.selfil-div:hover,.edit-input-opt:hover{background:#ebebeb}.selfil-div:last-of-type,.edit-input-opt:last-of-type{border-bottom:none}.selfil-div label{width:calc(100% - 22px);font-size:15px;cursor:pointer;padding:11px;display:inline-block}.selfil-div label input[type=checkbox]{margin-right:11px;vertical-align:middle}.select-filter-comparator{width:36px;z-index:3;opacity:0;position:relative;margin:11px 0 1px 15px}.btn-fil-comp{top:2px;left:-36px;border:none;position:absolute;background:#fafafa}.btn-fil-comp i{color:var(--accent-color)}@media screen and (min-width:960px){.col-header input,.select-filter,.select-filter-comparator{margin-top:7px;margin-bottom:1px}}.data-cell{width:125px;padding:11px 6px 11px 17px;overflow:auto;font-size:15px;word-wrap:break-word;white-space:pre-line;vertical-align:top;box-sizing:border-box;display:inline-flex;align-items:center;border-right:1px solid var(--grid-color);border-bottom:1px solid var(--grid-color)}input.edit-input{border-radius:0}.data-cell:focus,input.edit-input:focus{outline:1px solid #00a8f3}.dragger-cell-focused{background:#00a8f333;border-left:1px solid #00a8f3;border-right:1px solid #00a8f3!important}.focused-cell-dragger{width:9px;height:9px;cursor:crosshair;position:absolute;background:#00a8f3;box-shadow:0 0 1px 1px var(--accent-color);-moz-box-shadow:0 0 1px 1px var(--accent-color);-webkit-box-shadow:0 0 1px 1px var(--accent-color)}.holding-check{padding-left:44px}.data-cell-riiight{padding:11px 17px 11px 6px;justify-content:right}.data-cell-ceeenter{padding:11px 6px;justify-content:center!important}.cell-og-link{line-height:0;visibility:hidden}.cell-og-link:before{visibility:visible;content:attr(data-title)}.moveable-col{cursor:col-resize!important}.moveable-row{cursor:row-resize!important}.data-sort-arr{cursor:pointer;margin-left:11px;border:none;background:none;padding:0 0 0 2px;color:var(--accent-color)}.data-sort-arr .material-icons{font-size:20px}.data-col-info{left:10px;top:12px;padding:0;border:none;cursor:pointer;background:none;position:absolute;color:var(--accent-color)}.data-col-info .material-icons{font-size:16px}.sort-order-indicator{font-weight:600;vertical-align:middle;font-size:16px}.btn-min-col{cursor:pointer;top:0;right:2px;font-size:20px;border:none;background:none;position:absolute;padding:0 2px 5px 0;color:var(--accent-color)}.btn-min-col-hide{z-index:0;visibility:hidden;pointer-events:none}.btn-freeze-col{float:left;border:none;cursor:pointer;background:none}.btn-freeze-col .material-icons{font-size:16px;color:var(--accent-color)}.hidden-cols{max-width:100%;overflow-x:auto;clear:both;white-space:nowrap;padding:17px 15px 5px 4px}.hidden-cols button:first-of-type:before{content:\"Hidden Columns\";font-size:12px;font-weight:600;padding-right:11px;vertical-align:middle}.col-header span{word-wrap:break-word;vertical-align:middle;font-size:var(--reg-font-size)}.o-ins-div span,.o-ins-div i{vertical-align:middle;font-size:16px}.aux-chip{text-align:center;padding-bottom:33px;word-wrap:break-word;white-space:pre-wrap}.insights{padding:17px 15px}.insight-field{min-height:100px;padding:21px 0;font-size:large;white-space:pre-wrap;word-wrap:break-word;border-bottom:1px solid lightgray}@media screen and (max-width:760px){.insight-field:first-of-type{padding-top:7px}}@media screen and (min-width:760px){.insight-field-row{border-bottom:1px solid lightgray}.insight-field,.aux-chip{width:50%;vertical-align:top;display:inline-block;border-bottom:none}}@media screen and (min-width:1024px){.insight-field,.aux-chip{width:33%}}.chart-label-cont{padding-top:10px;text-align:center}.pie-piece-label{padding-top:5px;margin-right:27px;display:inline-block}.pie-piece-label-sq{width:11px;height:11px;margin:0 0 0 2px;display:inline-block;vertical-align:middle}.pie-piece-label span{font-size:small}.pie-piece-label span:before{font-size:smaller;padding-right:4px;font-weight:600;content:attr(data-percent)}.pie-layover{border-radius:50%;background:#fff;position:absolute;padding:5px!important;display:flex;font-size:17px;align-items:center;overflow:hidden;box-sizing:border-box;justify-content:center;color:var(--accent-color)}.pie-layover div{font-weight:500;padding:0!important}.ins-even-dist-ct{font-size:24px;font-weight:500}.line-graph-container{padding:11px 0 33px 7px!important;box-sizing:border-box;margin-left:11px}.lg-title-cont{padding:0!important;text-align:center;margin:17px 11px}.lg-n-marker-cont{width:60px;position:relative;padding:0!important;box-sizing:border-box;display:inline-block;vertical-align:top}.lg-n-marker-cont:before{top:45%;left:-37px;display:block;position:absolute;white-space:nowrap;color:var(--grid-color);content:attr(data-column);transform:rotate(-90deg)}.lg-n-marker,.lg-n-marker-h{padding:0 11px 0 0!important;font-size:small;position:relative;text-align:right;white-space:nowrap;box-sizing:border-box}.line-graph{width:calc(92% - 60px);position:relative;box-sizing:border-box;display:inline-block;vertical-align:top;padding:0!important;border-left:1px solid var(--accent-color);border-bottom:1px solid var(--accent-color)}.lg-lbl-x{left:0;right:0;bottom:-45px;font-size:small;font-weight:500;text-align:center;position:absolute;padding:0!important}.btn-line-graph-opts{margin:0;padding:4px;background:none;border-top:1px solid var(--accent-color);border-left:1px solid var(--accent-color);border-bottom:1px solid var(--accent-color)}.sp-line-graph-title{margin-top:7px;font-size:large;text-decoration:underline}.lg-dt-marker,.lg-dt-marker-h,.vd-n-marker,.vd-n-marker-h{bottom:-22px;font-size:small;position:absolute;text-align:center;padding:0!important;display:inline-block;box-sizing:border-box}.lg-dt-marker-h,.vd-n-marker-h{visibility:hidden}.lg-dt-marker.visible-marker{margin-left:21px}.lg-n-marker-h{height:0;visibility:hidden}.visible-marker{z-index:2;font-weight:600;background:#fff;height:unset!important;padding:1px 2px!important;visibility:visible!important;box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.visible-marker:before{font-weight:600}.lg-dt-marker:before{top:-15px;left:0;content:\"|\";position:absolute}.vd-n-marker:before{top:-15px;left:50%;content:\"|\";left:calc(50% - 2px);position:absolute}.lg-n-marker:before{top:-4px;right:-3px;content:\"-\";font-weight:600;font-size:large;position:absolute;background:#fff}.btn-line-graph-opts:hover{background:#d6d6d6;transition:background .3s ease}.btn-line-graph-opts:last-of-type{border-right:1px solid var(--accent-color)}.btn-lg-sel{color:#fff!important;background:var(--accent-color);box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.btn-lg-sel:hover{background:var(--accent-color)}.lg-plot{height:8px;width:8px;opacity:.3;cursor:pointer;border-radius:50%;position:absolute;padding:0!important;background:var(--accent-color)}.lg-plot:hover{z-index:100;opacity:1!important}.lg-plot:hover:after{padding:3px;display:inline-block;font-size:small;border-radius:5px;margin:0 0 0 25px;font-weight:700;content:attr(data-number);background:#fff!important;box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.lg-plot-opq{opacity:0;background:#fff}.lg-plot-opq:hover{opacity:1!important;background:var(--grid-color);transition:opacity .2s ease}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:\"liga\";-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}\n"] }]
7543
+ RealPaginator,
7544
+ ], changeDetection: ChangeDetectionStrategy.Eager, template: "<div class=\"deebo-data-grid-section\">\r\n <div class=\"hidden-cols\">\r\n @for (hcol of hiddenCols; track hcol) {\r\n <button type=\"button\" class=\"btn-maximize-col\" (click)=\"maximizeColCells(hcol)\">{{hcol}}</button>\r\n }\r\n </div>\r\n <div class=\"controls\" >\r\n <input type=\"text\" #topLevelDataFilter autocomplete=\"off\" name=\"topLevelDataFilter\" placeholder=\"Filter any column...\" \r\n (input)=\"topFilterOnKeyUp($event)\" (keyup)=\"topFilterOnKeyUp($event)\" maxlength=\"255\" [(ngModel)]=\"topLevelFilter\" \r\n [disabled]=\"dataTableService.showCharts() || !dataTableService.mainData.length || handlingSelRows\" autocomplete=\"off\" />\r\n @if(currGroupValues().length){\r\n <button type=\"button\" class=\"no-btn btn-clear-grp\" (click)=\"processGrouping(null)\">\r\n <i class=\"material-icons error-message heavy v-mid\" aria-hidden=\"false\">close</i>&nbsp;<span class=\"md-text v-mid\">Grouping</span>\r\n </button>\r\n }\r\n <button type=\"button\" class=\"no-btn btn-chart\" (click)=\"openCharts()\" [disabled]=\"dataTableService.showCharts() || !dataTableService.currFilData.length || handlingSelRows || !common.goodLs()\">\r\n <i class=\"material-icons v-mid\" aria-hidden=\"false\">bar_chart</i>&nbsp;<span class=\"v-mid\">Insights</span>\r\n </button>\r\n <button type=\"button\" [disabled]=\"!dataTableService.currSelRows.length || handlingSelRows\" (click)=\"clearSelectedRows()\" class=\"btn-ctrl-sel-rows\">Deselect Rows</button>\r\n <button #btnTogSelRows type=\"button\" [disabled]=\"!dataTableService.currSelRows.length || handlingSelRows\" (click)=\"toggleSelectedRows()\" class=\"btn-ctrl-sel-rows\">\r\n <i class=\"material-icons\" aria-hidden=\"false\">check_box_outline_blank</i>&nbsp;<span>{{togSelRows}}</span>\r\n </button>\r\n <button [disabled]=\"!topLevelFilter && dataTableService.arefilSrtTrkPropsDefault()\" \r\n class=\"btn-reset\" (click)=\"resetCurrentData()\" >Reset</button>\r\n </div>\r\n @if (!isScrolling){\r\n <div class=\"relly\" [ngClass]=\"{'dt-checks': rowNumbers, 'hide' : isMultiFiltering() || dataTableService.isFiltering() || \r\n dataTableService.isSorting() || currGroupValues().length || currSelEditOpts.length }\">\r\n @for (chk of dtChecks; track $index) {\r\n <input [id]=\"'checkDataTableRow' + chk\" class=\"select-row-check invisible\" \r\n [checked]=\"dataTableService.currSelRows.indexOf(chk) > -1\" type=\"checkbox\" [name]=\"'checkDataTableRow' + chk\"\r\n (click)=\"toggleSingleRowSelected(chk)\" (keyup.enter)=\"toggleSingleRowSelected(chk)\" [value]=\"'dataTableRow' + chk\" >\r\n }\r\n </div>\r\n }\r\n <div #selFilContainer class=\"relly sel-fil-container\">\r\n <div class=\"selfil-opt-contain\" [ngStyle]=\"ddFilStyle\">\r\n @for (opt of currFilOpts; track opt; let i = $index) {\r\n <div class=\"selfil-div\">\r\n <label [for]=\"'selfilOpt' + currDDFilter + i\" class=\"'selfil-lbl-' + currDDFilter\"><input [id]=\"'selfilOpt' + currDDFilter + i\" \r\n [class]=\"'selfil-opt-' + currDDFilter\" (input)=\"handleMultiSelFilter(currDDFilter, opt.value, $event.target.checked)\" \r\n (click)=\"handleMultiSelFilter(currDDFilter, opt.value, $event.target.checked)\" [name]=\"'selfilOpt' + currDDFilter + i\" \r\n [checked]=\"opt.checked\" [value]=\"opt.value\" [disabled]=\"isMultiFiltering()\" type=\"checkbox\" />{{opt.value || \"(Blank)\"}}</label>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div #validatedEdit class=\"relly special-edit-container invisible\">\r\n @if (validatedEditType === 'date'){\r\n <input id=\"selEditDate\" name=\"selEditDate\" type=\"date\" class=\"edit-input\" \r\n (change)=\"execCellEdit($event, true)\" (input)=\"execCellEdit($event, true)\" (blur)=\"execCellEdit($event)\" />\r\n }\r\n @if (validatedEditType === 'number'){\r\n <input id=\"selEditNum\" name=\"selEditNum\" type=\"number\" class=\"edit-input\" \r\n (keyup)=\"execCellEdit($event, true)\" (input)=\"execCellEdit($event, true)\" (blur)=\"execCellEdit($event)\" (keyup.enter)=\"execCellEdit($event)\" />\r\n }\r\n @if (validatedEditType === 'text'){\r\n <div class=\"relly edit-input\">\r\n <div class=\"edit-input-option-cont\">\r\n <div class=\"edit-input-opt\"><button type=\"button\" class=\"no-btn\" (click)=\"execCellEdit($event, false, null)\">-</button></div>\r\n @for (opt of currSelEditOpts; track opt.value) {\r\n <div class=\"edit-input-opt\"><button type=\"button\" class=\"no-btn\" \r\n (click)=\"execCellEdit($event, false, opt.value)\">{{opt.value || \"(Blank)\"}}</button>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"relly\" style=\"z-index: 6;\">\r\n <div #fCellDragger tabindex=\"0\" id=\"fCellDragger\" (focus)=\"focusCellDragger()\" (blur)=\"execValClear(true)\"\r\n (mousedown)=\"focusCellDraggerFromMouseDown()\" (keydown)=\"handleFDragTab($event)\" (keydown)=\"handleDraggerKD($event)\"\r\n [ngClass]=\"{'hide': dataTableService.currEditIndex < 0, 'focused-cell-dragger': dataTableService.currEditIndex > -1 }\"></div>\r\n </div>\r\n @if(dataTableService.showCharts() && common.goodLs()){\r\n <app-charts-and-graphs \r\n [height]=\"chartHgt\"\r\n [state]=\"chartState\"\r\n [chartColumns]=\"columnsForCharts\"\r\n (close)=\"closeCharts($event)\"\r\n ></app-charts-and-graphs>\r\n }\r\n <div [ngClass]=\"{'row-numbers': rowNumbers && !dataTableService.showCharts() && !currGroupValues().length, 'hide': !rowNumbers || dataTableService.showCharts() || currGroupValues().length}\" >\r\n <div #rowNumHeader class=\"row-num-header flex-center\"><div class=\"semi-heavy\">No.</div></div>\r\n <div style=\"overflow: hidden;\" [style.height]=\"dataTableService.dTblHeight() + 'px'\">\r\n <div [ngStyle]=\"{'overflow': 'auto', 'marginTop': rnBTop() + 'px' }\">\r\n @for (num of rowNos; track num.number) {\r\n <div [id]=\"'rn' + num.number\" class=\"flex-center num-row\" [style.height]=\"num.height || dataTableService.defltRHgt\">\r\n <div class=\"small-text\">{{num.number | number}}</div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div><div #dataTable class=\"data-table\" [class.inline-table]=\"rowNumbers && !dataTableService.showCharts() && !currGroupValues().length\">\r\n <div #dataTableHeaders class=\"data-table-headers\">\r\n @for (col of columnHeaders; track col.column; let i = $index) {\r\n <app-data-table-header\r\n [columnHeader]=\"col\"\r\n [colWid]=\"dataTableService.useColWid\"\r\n [hideMinCol]=\"col.hideMinCol\"\r\n [canFreeze]=\"i === 0 ? true : false\"\r\n (reset)=\"resetCurrentData($event)\"\r\n (freeze)=\"freezeColCells($event)\"\r\n (minimize)=\"minimizeColEls($event)\"\r\n (filFocus)=\"handleFilFocus($event)\"\r\n (scrollOnFocus)=\"checkTabHorizScroll($event)\"\r\n (emitCompFocus)=\"killSelFilOpts(true)\"\r\n (filSelClick)=\"handleWinClickOnSelFil()\"\r\n (height)=\"setHeaderHeight($event, true)\"\r\n (render)=\"renderCurrData(false, $event.field)\"\r\n (width)=\"handleSingleColResize($event.value, $event.column)\"\r\n ></app-data-table-header>\r\n }\r\n </div>\r\n <div #dataTableBody id=\"dataTableBody\" [ngStyle]=\"{ 'overflowY': 'auto', 'overflowX': currGroupValues().length ? 'hidden' : 'auto' }\" \r\n [style.height]=\"dataTableService.dTblHeight() + 'px'\" (scroll)=\"handleScroll($event)\" (scrollend)=\"handleScrollEnd()\"\r\n [class.table-working]=\"isMultiFiltering() || dataTableService.isFiltering() || dataTableService.isSorting()\" >\r\n <div #aboveArea [ngStyle]=\"{'height': aboveHgt() + 'px', 'width': useRowWid}\"></div>\r\n <div [style.transform]=\"'translateY('+transY()+'px)'\">\r\n @for(row of rows; track $index){\r\n <div [id]=\"row.id\" class=\"data-table-row\" [attr.data-index]=\"row.index\"\r\n [class.data-row-selected]=\"!dataTableService.displayOnlySelRows && dataTableService.currSelRows.indexOf(row.index) > -1\"\r\n [ngStyle]=\"{'width': row.width, 'height': row.height}\" >\r\n @for(cell of row.cells; track cell.column){\r\n <app-data-cell [cell]=\"cell\" \r\n [rowId]=\"row.id\" \r\n [text]=\"cell.text || ''\"\r\n [html]=\"cell.html || ''\"\r\n [rawText]=\"cell.rawText\"\r\n [minimized]=\"cell.minimized\"\r\n [rowHeight]=\"row.height || ''\"\r\n (edit)=\"execCellEdit($event)\"\r\n (mousedown)=\"checkCellEditOnClick()\"\r\n [columnValClass]=\"cell.specialColClass\"\r\n (dragListen)=\"listenToCellDraggerMouseMove = $event\"\r\n [colWid]=\"cell.width || dataTableService.useColWid\"\r\n (width)=\"handleSingleColResize($event)\"\r\n (height)=\"setSingleRowHgt($event, row.id, true)\"\r\n (clearVEditFocus)=\"validatedEditType = $event\"\r\n (validateEditFocus)=\"handleValidatedCellEditFocus($event)\"\r\n ></app-data-cell>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <div #belowArea [ngStyle]=\"{'height': belowHgt() + 'px', 'width': useRowWid}\"></div>\r\n @for(group of currGroupValues(); track group){\r\n <app-row-group-panel\r\n [groupValue]=\"group.value\"\r\n [maxCols]=\"maxCols\"\r\n [useRowWid]=\"useRowWid\"\r\n [editable]=\"editable\"\r\n [horizRest]=\"horizRest()\"\r\n [columns]=\"columnNames\"\r\n [showRowNumbers]=\"rowNumbers\"\r\n [colOfInt]=\"columnOfInterest()\"\r\n (horizPos)=\"setHorizPos($event)\"\r\n (cellEdit)=\"execCellEdit($event)\"\r\n (openEvt)=\"scrollToRowGroup($event)\"\r\n ></app-row-group-panel>\r\n }\r\n @if(!dataTableService.currFilData.length && !currGroupValues().length){\r\n <div [style.height]=\"dataTableService.dTblHeight() + 'px'\" class=\"data-table-row flex-center data-table-row-no-data\" style=\"width: 100%; white-space: normal;\">\r\n <div class=\"center\">{{dataTableService.noDataMsg}}</div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if(paginatorReady){\r\n @if(paginate){\r\n <lib-real-paginator\r\n (pageChange)=\"renderCurrData(false)\"\r\n ></lib-real-paginator>\r\n } @else {\r\n <app-data-table-paginator\r\n [filSortStr]=\"allFilSortInfo()\"\r\n (jumpTo)=\"jumpToRow($event)\"\r\n [totalRows]=\"dataTableService.currFilData.length\"\r\n [disableJump]=\"dataTableService.showCharts() || currGroupValues().length > 0 || !dataTableService.currFilData.length || handlingSelRows\"\r\n ></app-data-table-paginator><!--not an actual paginator-->\r\n }\r\n }\r\n <div class=\"pad-top-thirty right\">\r\n <div class=\"inline-b deebo-dd-contain-div\">\r\n @if(!paginate && canGroupBy().length > 0){\r\n <app-row-group-menu\r\n [groups]=\"canGroupBy()\"\r\n [disableGB]=\"dataTableService.showCharts()\"\r\n [enableClear]=\"currGroupValues().length ? true : false\"\r\n ></app-row-group-menu>\r\n }\r\n </div><div class=\"inline-b deebo-dd-contain-div\">\r\n @if(dataTableService.currFilData.length > 0){\r\n <app-export-component\r\n [columns]=\"columnHeaders\"\r\n [disableExport]=\"dataTableService.showCharts()\"\r\n [count]=\"dataTableService.currFilData.length\">\r\n </app-export-component>\r\n }\r\n </div>\r\n </div>\r\n</div>", styles: [":host{--accent-color:rgb(50, 50, 50);--grid-color:rgb(199, 199, 199);--pad-left-base: 33px;--row-num-width: 75px;--reg-font-size: 17px }input[name=topLevelDataFilter]{float:left;padding:7px 5px;vertical-align:middle;box-shadow:0 0 1px 1px var(--grid-color);-moz-box-shadow:0 0 1px 1px var(--grid-color);-webkit-box-shadow:0 0 1px 1px var(--grid-color)}.deebo-dd-contain-div{margin:0 31px}.btn-chart,.btn-clear-grp{border-radius:3px}.btn-chart i{font-size:28px;vertical-align:middle;color:var(--accent-color)}.btn-chart:hover,.btn-clear-grp:hover{background:#e9e9e9;transition:background .5s ease}.dt-checks{margin-left:var(--row-num-width)}.row-numbers{margin-top:11px;display:inline-block;width:var(--row-num-width)}.row-num-header{background:#e9e9e9;box-sizing:border-box;border-bottom:1px solid var(--accent-color);border-right:1px solid var(--accent-color);box-shadow:0 -1px 3px 1px var(--grid-color);-moz-box-shadow:0 -1px 3px 1px var(--grid-color);-webkit-box-shadow:0 -1px 3px 1px var(--grid-color)}.num-row{white-space:nowrap;box-sizing:border-box;border-left:1px solid var(--grid-color);border-bottom:1px solid var(--grid-color)}.inline-table{display:inline-block;width:calc(100% - var(--row-num-width))}.special-edit-container{z-index:5;width:0!important;height:0!important}.edit-input{border:none;font-size:15px;box-shadow:none;position:absolute;background:#fff;-moz-box-shadow:none;-webkit-box-shadow:none;box-sizing:border-box}.edit-input[type=number]{text-align:right}.edit-input[type=date]{padding-left:17px}\n", "@charset \"UTF-8\";@font-face{font-family:Roboto Condensed;src:url(https://d2ffvluimla00s.cloudfront.net/RobotoCondensed-VariableFont_wght.ttf) format(\"ttf\")}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(https://d2ffvluimla00s.cloudfront.net/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format(\"woff2\")}.deebo-data-grid-section{font-family:Roboto Condensed,Arial,Helvetica,sans-serif}:host{--accent-color:rgb(50, 50, 50);--grid-color:rgb(199, 199, 199);--pad-left-base: 33px;--row-num-width: 75px;--reg-font-size: 17px }.relly{position:relative}.hide{display:none!important;max-height:0;max-width:0;top:0;left:0;opacity:0}.ovy{overflow:auto}.no-ovy-y{overflow-y:hidden!important}.pad-top-sm{padding-top:4px!important}.pad-top-ten{padding-top:10px!important}.pad-top-teen{padding-top:17px}.pad-top-thirty,.pad-top-trey{padding-top:33px}.pad-top-much{padding-top:75px}.o-visible{overflow:visible}.dontwrap{white-space:nowrap}.inline-b{display:inline-block}.inline{display:inline}.half-wid{width:50%;vertical-align:top;display:inline-block}.qtr-wid{width:25%;vertical-align:top;display:inline-block}.third-wid{width:33.3%;vertical-align:top;display:inline-block}.two-third-wid{width:66.6%;vertical-align:top;display:inline-block}.three-qtr-wid{width:75%;vertical-align:top;display:inline-block}.v-top{vertical-align:top!important}.v-mid{vertical-align:middle!important}.v-bot{vertical-align:bottom!important}.lg-text{font-size:larger}.xlg-text{font-size:x-large!important}.md-text{font-size:var(--reg-font-size)!important}.small-text{font-size:small}.tiny-text{font-size:x-small}.invisible{visibility:hidden}.flex-center{display:flex;justify-content:center;align-items:center}.flex-item{flex:1 1 auto}.o-x-hidden{overflow-x:hidden!important}.no-weight{font-weight:400!important}.semi-heavy{font-weight:500!important}.heavy{font-weight:700!important}.marauto{margin:0 auto}.center{text-align:center}.left{text-align:left}.right{text-align:right}.btn-reset{border:none;color:#fff;padding:7px 11px;background:maroon}.error-message{color:maroon;font-weight:500}.success{color:green;font-weight:500}.neutral{color:var(--accent-color)}input,select{border:none;padding:4px;border-radius:3px;box-sizing:border-box;font-family:Roboto Condensed,Arial,Helvetica,sans-serif;box-shadow:0 0 1px 1px #afafaf;-moz-box-shadow:0 0 1px 1px #afafaf;-webkit-box-shadow:0 0 1px 1px #afafaf}input[type=radio],input[type=checkbox]{cursor:pointer;box-shadow:none!important;-moz-box-shadow:none!important;-webkit-box-shadow:none!important}button{cursor:pointer}button:focus,input:focus,select:focus,textarea:focus,a:focus{outline-width:0}button:disabled,input:disabled,select:disabled{opacity:.5;cursor:not-allowed}.prevent{opacity:.5;cursor:not-allowed;pointer-events:none}.controls{text-align:right;padding:16px 11px 6px 1px;max-width:100%;clear:both;overflow-x:auto;white-space:nowrap}.controls button{font-size:var(--reg-font-size);margin-right:31px;vertical-align:middle}.controls button span{vertical-align:middle}.controls button:last-of-type{margin-right:0}.data-table{margin-top:11px;overflow:hidden;box-shadow:0 -1px 3px 1px var(--grid-color);-moz-box-shadow:0 -1px 3px 1px var(--grid-color);-webkit-box-shadow:0 -1px 3px 1px var(--grid-color)}.sel-rows-checked{color:#00a8f399!important}.save-hilite{padding:2px 4px;border-radius:3px;background:#ebebeb;box-shadow:0 0 3px 1px var(--accent-color);-moz-box-shadow:0 0px 3px 1px var(--accent-color);-webkit-box-shadow:0 0px 3px 1px var(--accent-color)}.btn-ctrl-sel-rows,.btn-export-or-print{border:none;padding:3px 4px;border-radius:3px;background:#f5f5f5;vertical-align:middle;box-shadow:0 0 2px 1px var(--accent-color);-moz-box-shadow:0 0 2px 1px var(--accent-color);-webkit-box-shadow:0 0 2px 1px var(--accent-color)}.deebo-dd-contain-div:last-of-type{margin-right:0!important}.btn-export{width:100%;text-transform:uppercase}.btn-export:hover{text-decoration:underline}.btn-ctrl-sel-rows:hover,.btn-export-or-print:hover{background:#ebebeb;box-shadow:0 0 6px 2px gray;-moz-box-shadow:0 0 6px 2px gray;-webkit-box-shadow:0 0 6px 2px gray}.btn-center-selected{padding:2px 4px;border-radius:5px;background:#f5f5f5;box-shadow:0 0 6px 2px gray;-moz-box-shadow:0 0 6px 2px gray;-webkit-box-shadow:0 0 6px 2px gray}.btn-ctrl-sel-rows .material-icons{font-size:18px;font-weight:600;vertical-align:middle}.btn-ctrl-sel-rows .material-icons:not(.error-message){color:var(--accent-color)}.data-table-headers{cursor:pointer;white-space:nowrap;border-bottom:1px solid var(--grid-color)}.data-table-row{white-space:nowrap}.data-table-row:hover,.data-table-row .col-item-freeze:hover{background:#f3f3f3}.data-row-selected{background:#d6d6d6!important}.table-working{opacity:.1;pointer-events:none}.select-row-check{left:9px;z-index:10;cursor:pointer;margin:0;position:absolute;padding:0!important}.gb-row-num{left:2px;z-index:10;cursor:pointer;margin:0;font-size:x-small;position:absolute;padding:0!important}.mock-html{width:50%;height:18px;margin:0 auto;border-radius:11px;background:var(--grid-color)}.abs-right{top:7px;right:7px;position:absolute}.has-symbol:after{content:attr(data-symbol);padding-left:3px}.has-symbol-b:before{content:attr(data-symbol);padding-right:3px}.data-table-row-no-data{font-size:xx-large;color:gray;font-weight:500;text-shadow:-1px -1px var(--accent-color)}.data-row-selected .col-item-freeze,.data-row-selected .data-cell,.data-row-selected:hover,.data-row-selected .col-item-freeze:hover,.data-row-selected .data-cell:hover{background:#d6d6d6!important}.data-table-headers .col-item-freeze:first-of-type{border-bottom:1px solid var(--grid-color)}.col-header{z-index:2;width:125px;overflow:auto;cursor:grab;padding:7px 3px;text-align:center;position:relative;box-sizing:border-box;display:inline-block;vertical-align:top;white-space:pre-wrap;word-wrap:break-word;background:#fafafa;border-right:1px solid var(--grid-color)}.col-header button,.col-header span,.col-header select{cursor:pointer;vertical-align:middle}.col-header input{vertical-align:middle}.col-header-img-container{overflow-y:hidden;text-align:center;display:inline-block;vertical-align:middle;background-size:cover;background-position:center;background-repeat:no-repeat}.col-header-minimized{width:0!important;height:0!important;padding:0!important;overflow:hidden!important;border-bottom:none!important;border-right:none!important;transition:width .3s ease}.btn-maximize-col{border:none;border-radius:5px;background:#f5f5f5;box-shadow:0 0 3px 2px gray;font-size:var(--reg-font-size);margin-right:27px;padding:4px}.no-btn{border:none;background:none}.col-item-freeze{left:0;z-index:3;position:sticky;background:#fff;box-shadow:2px 0 3px 0 var(--grid-color);-moz-box-shadow:2px 0px 3px 0px var(--grid-color);-webkit-box-shadow:2px 0px 3px 0px var(--grid-color)}.col-header input,.select-filter{width:40%;margin:11px 0 1px}.sel-fil-container{z-index:5}.edit-input-option-cont{left:0;right:0}.edit-input-opt button{width:100%;font-size:15px;padding:11px 0 11px 17px;text-align:left!important}.selfil-opt-contain,.edit-input-option-cont{overflow:auto;max-height:240px;border-radius:5px;position:absolute;background:#fff;box-shadow:0 1px 3px 1px var(--grid-color);-moz-box-shadow:0 1px 3px 1px var(--grid-color);-webkit-box-shadow:0 1px 3px 1px var(--grid-color)}.selfil-div,.edit-input-opt{cursor:pointer;text-align:left;border-bottom:1px solid var(--grid-color)}.selfil-div:hover,.edit-input-opt:hover{background:#ebebeb}.selfil-div:last-of-type,.edit-input-opt:last-of-type{border-bottom:none}.selfil-div label{width:calc(100% - 22px);font-size:15px;cursor:pointer;padding:11px;display:inline-block}.selfil-div label input[type=checkbox]{margin-right:11px;vertical-align:middle}.select-filter-comparator{width:36px;z-index:3;opacity:0;position:relative;margin:11px 0 1px 15px}.btn-fil-comp{top:2px;left:-36px;border:none;position:absolute;background:#fafafa}.btn-fil-comp i{color:var(--accent-color)}@media screen and (min-width:960px){.col-header input,.select-filter,.select-filter-comparator{margin-top:7px;margin-bottom:1px}}.data-cell{width:125px;padding:11px 6px 11px 17px;overflow:auto;font-size:15px;word-wrap:break-word;white-space:pre-line;vertical-align:top;box-sizing:border-box;display:inline-flex;align-items:center;border-right:1px solid var(--grid-color);border-bottom:1px solid var(--grid-color)}input.edit-input{border-radius:0}.data-cell:focus,input.edit-input:focus{outline:1px solid #00a8f3}.dragger-cell-focused{background:#00a8f333;border-left:1px solid #00a8f3;border-right:1px solid #00a8f3!important}.focused-cell-dragger{width:9px;height:9px;cursor:crosshair;position:absolute;background:#00a8f3;box-shadow:0 0 1px 1px var(--accent-color);-moz-box-shadow:0 0 1px 1px var(--accent-color);-webkit-box-shadow:0 0 1px 1px var(--accent-color)}.holding-check{padding-left:44px}.data-cell-riiight{padding:11px 17px 11px 6px;justify-content:right}.data-cell-ceeenter{padding:11px 6px;justify-content:center!important}.cell-og-link{line-height:0;visibility:hidden}.cell-og-link:before{visibility:visible;content:attr(data-title)}.moveable-col{cursor:col-resize!important}.moveable-row{cursor:row-resize!important}.data-sort-arr{cursor:pointer;margin-left:11px;border:none;background:none;padding:0 0 0 2px;color:var(--accent-color)}.data-sort-arr .material-icons{font-size:20px}.data-col-info{left:10px;top:12px;padding:0;border:none;cursor:pointer;background:none;position:absolute;color:var(--accent-color)}.data-col-info .material-icons{font-size:16px}.sort-order-indicator{font-weight:600;vertical-align:middle;font-size:16px}.btn-min-col{cursor:pointer;top:0;right:2px;font-size:20px;border:none;background:none;position:absolute;padding:0 2px 5px 0;color:var(--accent-color)}.btn-min-col-hide{z-index:0;visibility:hidden;pointer-events:none}.btn-freeze-col{float:left;border:none;cursor:pointer;background:none}.btn-freeze-col .material-icons{font-size:16px;color:var(--accent-color)}.hidden-cols{max-width:100%;overflow-x:auto;clear:both;white-space:nowrap;padding:17px 15px 5px 4px}.hidden-cols button:first-of-type:before{content:\"Hidden Columns\";font-size:12px;font-weight:600;padding-right:11px;vertical-align:middle}.col-header span{word-wrap:break-word;vertical-align:middle;font-size:var(--reg-font-size)}.o-ins-div span,.o-ins-div i{vertical-align:middle;font-size:16px}.aux-chip{text-align:center;padding-bottom:33px;word-wrap:break-word;white-space:pre-wrap}.insights{padding:17px 15px}.insight-field{min-height:100px;padding:21px 0;font-size:large;white-space:pre-wrap;word-wrap:break-word;border-bottom:1px solid lightgray}@media screen and (max-width:760px){.insight-field:first-of-type{padding-top:7px}}@media screen and (min-width:760px){.insight-field-row{border-bottom:1px solid lightgray}.insight-field,.aux-chip{width:50%;vertical-align:top;display:inline-block;border-bottom:none}}@media screen and (min-width:1024px){.insight-field,.aux-chip{width:33%}}.chart-label-cont{padding-top:10px;text-align:center}.pie-piece-label{padding-top:5px;margin-right:27px;display:inline-block}.pie-piece-label-sq{width:11px;height:11px;margin:0 0 0 2px;display:inline-block;vertical-align:middle}.pie-piece-label span{font-size:small}.pie-piece-label span:before{font-size:smaller;padding-right:4px;font-weight:600;content:attr(data-percent)}.pie-layover{border-radius:50%;background:#fff;position:absolute;padding:5px!important;display:flex;font-size:17px;align-items:center;overflow:hidden;box-sizing:border-box;justify-content:center;color:var(--accent-color)}.pie-layover div{font-weight:500;padding:0!important}.ins-even-dist-ct{font-size:24px;font-weight:500}.line-graph-container{padding:11px 0 33px 7px!important;box-sizing:border-box;margin-left:11px}.lg-title-cont{padding:0!important;text-align:center;margin:17px 11px}.lg-n-marker-cont{width:60px;position:relative;padding:0!important;box-sizing:border-box;display:inline-block;vertical-align:top}.lg-n-marker-cont:before{top:45%;left:-37px;display:block;position:absolute;white-space:nowrap;color:var(--grid-color);content:attr(data-column);transform:rotate(-90deg)}.lg-n-marker,.lg-n-marker-h{padding:0 11px 0 0!important;font-size:small;position:relative;text-align:right;white-space:nowrap;box-sizing:border-box}.line-graph{width:calc(92% - 60px);position:relative;box-sizing:border-box;display:inline-block;vertical-align:top;padding:0!important;border-left:1px solid var(--accent-color);border-bottom:1px solid var(--accent-color)}.lg-lbl-x{left:0;right:0;bottom:-45px;font-size:small;font-weight:500;text-align:center;position:absolute;padding:0!important}.btn-line-graph-opts{margin:0;padding:4px;background:none;border-top:1px solid var(--accent-color);border-left:1px solid var(--accent-color);border-bottom:1px solid var(--accent-color)}.sp-line-graph-title{margin-top:7px;font-size:large;text-decoration:underline}.lg-dt-marker,.lg-dt-marker-h,.vd-n-marker,.vd-n-marker-h{bottom:-22px;font-size:small;position:absolute;text-align:center;padding:0!important;display:inline-block;box-sizing:border-box}.lg-dt-marker-h,.vd-n-marker-h{visibility:hidden}.lg-dt-marker.visible-marker{margin-left:21px}.lg-n-marker-h{height:0;visibility:hidden}.visible-marker{z-index:2;font-weight:600;background:#fff;height:unset!important;padding:1px 2px!important;visibility:visible!important;box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.visible-marker:before{font-weight:600}.lg-dt-marker:before{top:-15px;left:0;content:\"|\";position:absolute}.vd-n-marker:before{top:-15px;left:50%;content:\"|\";left:calc(50% - 2px);position:absolute}.lg-n-marker:before{top:-4px;right:-3px;content:\"-\";font-weight:600;font-size:large;position:absolute;background:#fff}.btn-line-graph-opts:hover{background:#d6d6d6;transition:background .3s ease}.btn-line-graph-opts:last-of-type{border-right:1px solid var(--accent-color)}.btn-lg-sel{color:#fff!important;background:var(--accent-color);box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.btn-lg-sel:hover{background:var(--accent-color)}.lg-plot{height:8px;width:8px;opacity:.3;cursor:pointer;border-radius:50%;position:absolute;padding:0!important;background:var(--accent-color)}.lg-plot:hover{z-index:100;opacity:1!important}.lg-plot:hover:after{padding:3px;display:inline-block;font-size:small;border-radius:5px;margin:0 0 0 25px;font-weight:700;content:attr(data-number);background:#fff!important;box-shadow:0 0 2px 1px #afafaf;-moz-box-shadow:0 0 2px 1px #afafaf;-webkit-box-shadow:0 0 2px 1px #afafaf}.lg-plot-opq{opacity:0;background:#fff}.lg-plot-opq:hover{opacity:1!important;background:var(--grid-color);transition:opacity .2s ease}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:\"liga\";-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}\n"] }]
7370
7545
  }], ctorParameters: () => [{ type: DataTableService }, { type: TableDragService }, { type: CommonService }], propDecorators: { onWindowClick: [{
7371
7546
  type: HostListener,
7372
7547
  args: ['window:click', ['$event']]
@@ -7424,6 +7599,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
7424
7599
  type: Input
7425
7600
  }], forceGrouping: [{
7426
7601
  type: Input
7602
+ }], paginate: [{
7603
+ type: Input
7604
+ }], rowsPerPage: [{
7605
+ type: Input
7427
7606
  }], cellEdit: [{
7428
7607
  type: Output,
7429
7608
  args: ["cellEdit"]