{"__symbolic":"module","version":4,"metadata":{"NgxMatDynamicTableService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":2,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]},"statics":{"ɵprov":{}}},"NgxMatDynamicTableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"ngx-mat-ngx-mat-dynamic-table","template":"\n    <p>\n      ngx-mat-dynamic-table works!\n    </p>\n  ","styles":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"NgxMatDynamicTableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":29,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"NgxMatDynamicTableComponent"},{"__symbolic":"reference","name":"DynamicTableComponent"},{"__symbolic":"reference","name":"DynamicTableContainerComponent"},{"__symbolic":"reference","name":"XlsxTableExportComponent"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":39,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":40,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":41,"character":4},{"__symbolic":"reference","module":"@angular/flex-layout","name":"FlexLayoutModule","line":42,"character":4},{"__symbolic":"reference","module":"@angular/material/table","name":"MatTableModule","line":43,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":44,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":45,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":46,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":47,"character":4},{"__symbolic":"reference","module":"@angular/material/checkbox","name":"MatCheckboxModule","line":48,"character":4},{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginatorModule","line":49,"character":4},{"__symbolic":"reference","module":"@angular/material/sort","name":"MatSortModule","line":50,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-bar","name":"MatProgressBarModule","line":51,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":52,"character":4},{"__symbolic":"reference","module":"@angular/material/select","name":"MatSelectModule","line":53,"character":4},{"__symbolic":"reference","module":"@angular/material/menu","name":"MatMenuModule","line":54,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-spinner","name":"MatProgressSpinnerModule","line":55,"character":4},{"__symbolic":"reference","module":"@angular/material/chips","name":"MatChipsModule","line":56,"character":4},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":57,"character":4},{"__symbolic":"reference","module":"@angular/material/button-toggle","name":"MatButtonToggleModule","line":58,"character":4}],"providers":[{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"DynamicTableComponent"},{"__symbolic":"reference","name":"DynamicTableContainerComponent"},{"__symbolic":"reference","name":"XlsxTableExportComponent"}]}]}],"members":{}},"DynamicTableComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":45,"character":1},"arguments":[{"selector":"ngx-mat-dynamic-table","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":49,"character":19},"member":"OnPush"},"template":"<div fxLayout=\"row wrap\" fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\">\r\n    <!-- Search input with chips -->\r\n    <ngx-mat-table-search-input [columnSearch$]=\"columnSearch$\" (searchChange)=\"applyFilter($event)\">\r\n    </ngx-mat-table-search-input>\r\n    <mat-spinner *ngIf=\"searchLoading\" [diameter]=\"20\"></mat-spinner>\r\n    <span fxFlex.gt-xs></span>\r\n    <!-- Select enabled columns -->\r\n    <mat-spinner *ngIf=\"savedColumnsLoading\" [diameter]=\"20\"></mat-spinner>\r\n    <mat-form-field *ngIf=\"optionalColumns\" appearance=\"outline\">\r\n        <mat-label>Columns</mat-label>\r\n        <mat-select [formControl]=\"columnsToShow\" multiple (selectionChange)=\"displayColumnsChanged($event)\">\r\n            <mat-option *ngFor=\"let column of columns\" [value]=\"column\">{{column.columnTitle}}</mat-option>\r\n        </mat-select>\r\n    </mat-form-field>\r\n    <!-- Export selected or filtered data to excel -->\r\n    <button *ngIf=\"export\" mat-stroked-button color=\"primary\" (click)=\"eportToExcell()\">\r\n        <mat-icon>import_export</mat-icon> Export\r\n    </button>\r\n    <!-- Indicate number of selected items -->\r\n    <span *ngIf=\"selection.selected.length > 0\" class=\"mat-caption\">{{selection.selected.length}} values selected</span>\r\n</div>\r\n<!-- Table wrapping container -->\r\n<div class=\"table-container\">\r\n    <table mat-table #table [dataSource]=\"dataSource\" matSort [matSortActive]=\"sortActive\"\r\n        [matSortDirection]=\"sortDirection\" style=\"width: 100%;\">\r\n        <!-- Checkbox Column -->\r\n        <ng-container *ngIf=\"multiple\" matColumnDef=\"select\">\r\n            <th mat-header-cell *matHeaderCellDef>\r\n                <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n                    [checked]=\"selection.hasValue() && isAllSelected()\"\r\n                    [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n                </mat-checkbox>\r\n            </th>\r\n            <td mat-cell *matCellDef=\"let row\">\r\n                <mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"toggle($event, row)\"\r\n                    [checked]=\"selection.isSelected(row)\">\r\n                </mat-checkbox>\r\n            </td>\r\n            <ng-container *ngIf=\"totalsRowVisible\">\r\n                <td mat-footer-cell *matFooterCellDef></td>\r\n            </ng-container>\r\n        </ng-container>\r\n        <!-- Table columns -->\r\n        <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.columnDef\" [sticky]=\"column.sticky\"\r\n            [stickyEnd]=\"column.stickyEnd\">\r\n            <!-- Table header -->\r\n            <th mat-header-cell *matHeaderCellDef>\r\n                <!-- Header and search icon -->\r\n                <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n                    <span mat-sort-header>\r\n                        {{ column.columnTitle }}\r\n                    </span>\r\n                    <button *ngIf=\"column.search\" class=\"search-button\" mat-icon-button [matMenuTriggerFor]=\"menu\"\r\n                        (menuOpened)=\"searchInput.focus()\">\r\n                        <mat-icon [ngClass]=\"{'search-active': searchInput.value}\">search</mat-icon>\r\n                    </button>\r\n                </div>\r\n                <!-- Search Menu -->\r\n                <mat-menu #menu=\"matMenu\">\r\n                    <div (click)=\"$event.stopPropagation()\" fxLayout=\"column\"\r\n                        style=\"padding-right: 8px; padding-left: 8px;\">\r\n                        <!-- Search input -->\r\n                        <mat-form-field>\r\n                            <input matInput #searchInput\r\n                                (keyup)=\"applyColumnFilter($event.target, column.columnDef, column.columnTitle, searchType.value);\"\r\n                                [placeholder]=\"column.columnTitle\" [disabled]=\"searchType.value === 'empty'\">\r\n                            <mat-hint>Search</mat-hint>\r\n                            <button mat-button *ngIf=\"searchInput.value\" matSuffix mat-icon-button aria-label=\"Clear\"\r\n                                (click)=\"searchInput.value=''; applyColumnFilter(searchInput, column.columnDef, column.columnTitle, searchType.value)\">\r\n                                <mat-icon>close</mat-icon>\r\n                            </button>\r\n                        </mat-form-field>\r\n                        <!-- Search options -->\r\n                        <div fxLayout=\"row\" fxLayoutAlign=\"end end\">\r\n                            <mat-button-toggle-group name=\"search type\" aria-label=\"Search Type\"\r\n                                #searchType=\"matButtonToggleGroup\" value=\"=\"\r\n                                (change)=\"applyColumnFilter(searchInput, column.columnDef, column.columnTitle, searchType.value)\">\r\n                                <mat-button-toggle value=\"=\" matTooltip=\"Equals\">=</mat-button-toggle>\r\n                                <mat-button-toggle value=\"!=\" matTooltip=\"Not Equals\">≠</mat-button-toggle>\r\n                                <!-- <mat-button-toggle value=\">=\">&#62;=</mat-button-toggle>\r\n                            <mat-button-toggle value=\"<=\">&#60;=</mat-button-toggle> -->\r\n                                <mat-button-toggle value=\"empty\" matTooltip=\"Empty Cell\">\" \"</mat-button-toggle>\r\n                            </mat-button-toggle-group>\r\n                        </div>\r\n                    </div>\r\n                </mat-menu>\r\n            </th>\r\n            <!-- Table Cell -->\r\n            <td mat-cell *matCellDef=\"let row\" [class]=\"row[column.cellClassKey]\"\r\n                [attr.data-label]=\"column.columnTitle\" (click)=\"onMatCellClick(row, column);\">\r\n                <ng-container [ngSwitch]=\"column.type\">\r\n                    <!-- Number type columns -->\r\n                    <span *ngSwitchCase=\"'number'\"\r\n                        [ngClass]=\"column.unit?.position === 'before' ? 'unit-before' : 'unit-after'\"\r\n                        [attr.data-unit]=\"row | lodashGet: column.unit?.key\">\r\n                        {{ row | lodashGet: column.columnDef | number }}\r\n                    </span>\r\n                    <!-- Date Type columns -->\r\n                    <span *ngSwitchCase=\"'date'\">\r\n                        {{ row | lodashGet: column.columnDef | date: column.dateFormat ? column.dateFormat :\r\n                        'dd/MM/yyyy, HH:mm' }}\r\n                    </span>\r\n                    <!-- Icon Columns -->\r\n                    <span *ngSwitchCase=\"'icon'\">\r\n                        <ng-container *ngFor=\"let icon of column.icons\">\r\n                            <mat-icon *ngIf=\"icon.value === (row | lodashGet: column.columnDef)\"\r\n                                [style.color]=\"icon.color\" [matTooltip]=\"icon.matTooltip\">{{icon.matIcon}}\r\n                            </mat-icon>\r\n                        </ng-container>\r\n                    </span>\r\n                    <!-- Text Columns -->\r\n                    <span *ngSwitchDefault>\r\n                        {{ row | lodashGet: column.columnDef }}\r\n                    </span>\r\n                </ng-container>\r\n            </td>\r\n\r\n            <ng-container *ngIf=\"totalsRowVisible\">\r\n                <td mat-footer-cell *matFooterCellDef [attr.data-label]=\"column.columnTitle\">\r\n                    <ng-container *ngIf=\"column.total\">\r\n                        {{column.totalValue | number}}\r\n                    </ng-container>\r\n                    <ng-container *ngIf=\"column.total && column.average\">\r\n                        &nbsp;|&nbsp;\r\n                    </ng-container>\r\n                    <ng-container *ngIf=\"column.average\">\r\n                        &mu;&nbsp;{{column.averageValue | number}}\r\n                    </ng-container>\r\n                </td>\r\n            </ng-container>\r\n\r\n        </ng-container>\r\n\r\n        <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true;\"></tr>\r\n        <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" (click)=\"_rowClicked(row)\"\r\n            [ngClass]=\"{'row-click': rowClick}\"></tr>\r\n\r\n        <tr class=\"mat-row\" *matNoDataRow>\r\n            <td class=\"mat-cell\" [attr.colspan]=\"displayedColumns.length\">No data</td>\r\n        </tr>\r\n\r\n        <ng-container *ngIf=\"totalsRowVisible\">\r\n            <tr mat-footer-row *matFooterRowDef=\"displayedColumns; sticky: true;\"></tr>\r\n        </ng-container>\r\n\r\n    </table>\r\n</div>\r\n<mat-paginator class=\"mat-paginator-sticky\" [pageSizeOptions]=\"pageSizeOptions ? pageSizeOptions: [50, 100, 200]\">\r\n</mat-paginator>","styles":[".row-click{cursor:pointer}.search-button{height:24px!important;line-height:24px!important;width:24px!important}.search-button .mat-icon{height:18px!important;line-height:18px!important;width:18px!important}.search-button .material-icons{font-size:18px!important}.search-active{color:#00f}.unit-after:after,.unit-before:before{content:attr(data-unit)}.mat-cell{padding-left:5px;padding-right:5px}.mat-cell,.mat-header-row{text-overflow:ellipsis;white-space:nowrap}@media screen and (min-width:550px){.table-container{max-height:calc(100vh - 150px);overflow:auto}}@media screen and (max-width:550px){.mat-table .mat-row{border-bottom:5px solid #ddd;padding-bottom:5px}.mat-table .mat-header-row{display:flex;flex-wrap:wrap;height:auto;margin-bottom:4%;position:-webkit-sticky;position:sticky;top:0;z-index:2}.mat-table .mat-header-row th.mat-header-cell{align-items:center;display:flex;flex:1;justify-content:space-around;padding:1rem .5rem}.mat-table .mat-header-row th.mat-header-cell>.mat-sort-header-container{padding-left:15px}.mat-table .mat-cell{display:block;font-size:1em;font-weight:700;height:30px;margin-bottom:4%;padding-left:8px;padding-right:8px;text-align:right}.mat-table .mat-cell:before{content:attr(data-label);float:left;font-size:.85em;font-weight:400;text-transform:uppercase}.mat-table .mat-footer-cell{display:block;font-size:1em;font-weight:700;height:30px;margin-bottom:4%;padding-left:8px;padding-right:8px;text-align:right}.mat-table .mat-footer-cell:before{content:attr(data-label);float:left;font-size:.85em;font-weight:400;text-transform:uppercase}.mat-table .mat-cell:last-child{border-bottom:5px solid #ddd}}.mat-button-toggle-label-content{line-height:32px!important}"]}]}],"members":{"tableId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"tableData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"rowClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"cellClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"fileName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"pageSizeOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"export":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3}}]}],"filter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}}]}],"multiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":3}}]}],"optionalColumns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":3}}]}],"emitFilteredData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"rowClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":68,"character":3}}]}],"cellClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"selectedRows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":71,"character":3}}]}],"filterResult":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":72,"character":3}}]}],"sort":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":76,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material/sort","name":"MatSort","line":76,"character":13}]}]}],"paginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":78,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginator","line":78,"character":13}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":109,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":109,"character":22}]}],null,null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"updateXLSXHeaders":[{"__symbolic":"method"}],"updateColumnTotals":[{"__symbolic":"method"}],"applyFilter":[{"__symbolic":"method"}],"applyColumnFilter":[{"__symbolic":"method"}],"_rowClicked":[{"__symbolic":"method"}],"onMatCellClick":[{"__symbolic":"method"}],"isAllSelected":[{"__symbolic":"method"}],"masterToggle":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"emitSelected":[{"__symbolic":"method"}],"setColumns":[{"__symbolic":"method"}],"setStaticColumns":[{"__symbolic":"method"}],"displayColumnsChanged":[{"__symbolic":"method"}],"eportToExcell":[{"__symbolic":"method"}],"getFilteredData":[{"__symbolic":"method"}],"cloneData":[{"__symbolic":"method"}],"formatExportData":[{"__symbolic":"method"}],"nestedFilterCheck":[{"__symbolic":"method"}],"setDefaultSorting":[{"__symbolic":"method"}],"setSavedColumnSelection":[{"__symbolic":"method"}],"saveCurrentColumnSelection":[{"__symbolic":"method"}]}},"DynamicTableColumnDefinition":{"__symbolic":"interface"},"DynamicTableCellClickResult":{"__symbolic":"interface"},"DynamicTableContainerComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"ngx-mat-dynamic-table-container","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":8,"character":19},"member":"OnPush"},"template":"<ng-container *ngIf=\"tableData$\">\n    <div *ngIf=\"(tableData$ | async) as tableData; else loading\">\n        <ngx-mat-dynamic-table [tableId]=\"tableId\" [columns]=\"columns\" [tableData]=\"tableData\" [rowClick]=\"rowClick\"\n            (rowClicked)=\"rowClicked.emit($event)\" [cellClick]=\"cellClick\" (cellClicked)=\"cellClicked.emit($event)\"\n            [fileName]=\"fileName\" [export]=\"export\" [filter]=\"filter\" [multiple]=\"multiple\"\n            (selectedRows)=\"selectedRows.emit($event)\" [optionalColumns]=\"optionalColumns\"\n            [pageSizeOptions]=\"pageSizeOptions\" [emitFilteredData]=\"emitFilteredData\"\n            (filterResult)=\"filterResult.emit($event)\">\n        </ngx-mat-dynamic-table>\n    </div>\n    <ng-template #loading>\n        <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n    </ng-template>\n</ng-container>","styles":[""]}]}],"members":{"tableId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"tableData$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"rowClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"cellClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"fileName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"export":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"filter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"multiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"optionalColumns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"pageSizeOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"emitFilteredData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"rowClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":25,"character":3}}]}],"cellClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":26,"character":3}}]}],"selectedRows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":27,"character":3}}]}],"filterResult":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":28,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"XlsxTableExportComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"ngx-mat-xlsx-table-export","template":"<button mat-stroked-button color=\"primary\" (click)=\"eportToExcell()\"><mat-icon>import_export</mat-icon> Export</button>","styles":[""]}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"fileName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"headers":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","module":"@angular/material/snack-bar","name":"MatSnackBar","line":16,"character":25}]}],"ngOnInit":[{"__symbolic":"method"}],"eportToExcell":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"exportExcel":[{"__symbolic":"method"}],"saveExcelFile":[{"__symbolic":"method"}],"renameKeys":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"isDbOpen":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"read":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"lodashGet"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"ngx-mat-table-search-input","template":"<div fxLayout=\"column\" fxLayout.gt-xs=\"row wrap\" fxLayoutAlign=\"start start\" fxLayoutGap.gt-xs=\"15px\">\n    <mat-form-field appearance=\"outline\">\n        <mat-label>Search</mat-label>\n        <input matInput placeholder=\"All Columns\" #searchInput (keyup)=\"add($event)\">\n    </mat-form-field>\n    <div fxLayout=\"column\">\n        <span *ngIf=\"searchTerms.length > 0\" class=\"mat-caption\">Filters</span>\n        <mat-chip-list cdkDropList cdkDropListOrientation=\"horizontal\" (cdkDropListDropped)=\"orderChanged($event)\">\n            <mat-chip class=\"example-box\" cdkDrag *ngFor=\"let term of searchTerms\"\n                [color]=\"term.type === 'global' ? 'primary' : 'accent'\" selected\n                [matTooltip]=\"term.type === 'global' ? 'All':term.columnTitle\">\n                <span *ngIf=\"term.searchType === 'empty'; else not_empty\">\n                    {{term.columnTitle}} (empty)\n                </span>\n                <ng-template #not_empty>\n                    {{term.search}} {{term.searchType && term.searchType === '!=' ?\n                    '(≠)' : ''}}\n                </ng-template>\n                <mat-icon (click)=\"remove(term)\" matChipRemove>cancel</mat-icon>\n            </mat-chip>\n        </mat-chip-list>\n    </div>\n</div>","styles":[""]}]}],"members":{"columnSearch$":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"searchInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":31,"character":3},"arguments":["searchInput"]}]}],"searchChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":33,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"orderChanged":[{"__symbolic":"method"}],"emitNewSearch":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}}},"origins":{"NgxMatDynamicTableService":"./lib/ngx-mat-dynamic-table.service","NgxMatDynamicTableComponent":"./lib/ngx-mat-dynamic-table.component","NgxMatDynamicTableModule":"./lib/ngx-mat-dynamic-table.module","DynamicTableComponent":"./lib/components/dynamic-table/dynamic-table.component","DynamicTableColumnDefinition":"./lib/components/dynamic-table/dynamic-table.component","DynamicTableCellClickResult":"./lib/components/dynamic-table/dynamic-table.component","DynamicTableContainerComponent":"./lib/components/dynamic-table-container/dynamic-table-container.component","XlsxTableExportComponent":"./lib/components/xlsx-table-export/xlsx-table-export.component","ɵa":"./lib/components/xlsx-table-export/service/xlsx-export.service","ɵb":"./lib/components/services/column-storage.service","ɵc":"./lib/components/lodash-get-pipe/lodash-get.pipe","ɵd":"./lib/components/table-search-input/table-search-input.component"},"importAs":"ngx-mat-dynamic-table"}