{"__symbolic":"module","version":4,"metadata":{"TableConfig":{"__symbolic":"interface"},"TableColumn":{"__symbolic":"interface"},"TableCellTemplate":{"Default":"[Table] Default","Patient":"[Table] Patient","TickCross":"[Table] TickCross"},"NgxNexusTableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":48,"character":1},"arguments":[{"selector":"ngx-nexus-table","template":"\n    <section fxLayout=\"column\">\n      <div *ngIf=\"config?.title\" fxLayout=\"row\">\n        <div fxFlex>\n          <h1>{{ config.title }}</h1>\n        </div>\n      </div>\n      <ng-container *ngIf=\"!config?.isLoading; else loadingResults\">\n        <ng-container *ngIf=\"!errorMessage; else dataError\">\n          <div fxLayout=\"column\">\n            <table\n              [dataSource]=\"dataSource\"\n              matSort\n              mat-table\n              style=\"width: 100%\"\n              multiTemplateDataRows\n            >\n              <ng-container\n                *ngFor=\"let col of columns; let i = index\"\n                [matColumnDef]=\"getHeaderAsColumnDef(col.header)\"\n              >\n                <th mat-header-cell *matHeaderCellDef mat-sort-header>\n                  {{ col.header }}\n                </th>\n                <td mat-cell *matCellDef=\"let row\">\n                  <ng-container\n                    *ngTemplateOutlet=\"\n                      getCellTemplate(col.cellTemplate);\n                      context: { col: col, row: row }\n                    \"\n                  ></ng-container>\n                </td>\n              </ng-container>\n              <ng-container matColumnDef=\"selectColumnTemplate\">\n                <th mat-header-cell *matHeaderCellDef></th>\n                <td *matCellDef=\"let row\" mat-cell class=\"select-cell\">\n                  <button (click)=\"selectRow.emit(row)\" mat-button>\n                    Select\n                  </button>\n                </td>\n              </ng-container>\n              <ng-container matColumnDef=\"expandedDetail\">\n                <td\n                  *matCellDef=\"let row\"\n                  mat-cell\n                  [attr.colspan]=\"displayedColumns.length\"\n                >\n                  <div class=\"example-element-detail\">\n                    <ng-container\n                      *ngTemplateOutlet=\"\n                        config?.rowDetail;\n                        context: { row: row }\n                      \"\n                    ></ng-container>\n                  </div>\n                </td>\n              </ng-container>\n              <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n              <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n              <tr\n                [fxHide]=\"!config?.rowDetail\"\n                mat-row\n                *matRowDef=\"let row; columns: ['expandedDetail']\"\n                class=\"example-detail-row\"\n              ></tr>\n            </table>\n            <div *ngIf=\"emptyData\">No records found</div>\n          </div>\n        </ng-container>\n      </ng-container>\n      <div fxLayout=\"row\" fxLayout.lt-sm=\"column\">\n        <div *ngIf=\"config?.enableFilter\" fxFlex>\n          <mat-form-field>\n            <mat-label>Filter</mat-label>\n            <input matInput (keyup)=\"applyFilter($event)\" #input />\n          </mat-form-field>\n        </div>\n        <div *ngIf=\"rowCount >= 5\" fxLayoutAlign=\"end\" fxFlex>\n          <mat-paginator\n            [pageSizeOptions]=\"[5, 10, 20]\"\n            showFirstLastButtons\n          ></mat-paginator>\n        </div>\n      </div>\n    </section>\n\n    <ng-template #loadingResults>\n      <div fxLayout=\"row\">\n        <div fxLayoutAlign=\"center\" fxFlex>\n          <mat-spinner diameter=\"30\"></mat-spinner>\n        </div>\n      </div>\n    </ng-template>\n\n    <ng-template #dataError>\n      <div *ngIf=\"emptyData\">{{ errorMessage }}</div>\n    </ng-template>\n\n    <ng-template #defaultTemplate let-row=\"row\" let-col=\"col\">\n      {{ col?.key(row) }}\n    </ng-template>\n\n    <ng-template #colPatient let-row=\"row\" let-col=\"col\">\n      <patient-column-template\n        [row]=\"row\"\n        [col]=\"col\"\n      ></patient-column-template>\n    </ng-template>\n  ","styles":[]}]}],"members":{"defaultTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":162,"character":3},"arguments":["defaultTemplate",{"static":true}]}]}],"colPatient":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":164,"character":3},"arguments":["colPatient",{"static":true}]}]}],"sort":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":165,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material/sort","name":"MatSort","line":165,"character":13}]}]}],"paginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":166,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginator","line":166,"character":13}]}]}],"table":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":167,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material/table","name":"MatTable","line":167,"character":13}]}]}],"selectRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":168,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":169,"character":3}}]}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":170,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":171,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":214,"character":31}]}],"ngOnInit":[{"__symbolic":"method"}],"setupTable":[{"__symbolic":"method"}],"applyFilter":[{"__symbolic":"method"}],"getCellTemplate":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"NgxNexusTableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":14,"character":4},{"__symbolic":"reference","module":"@angular/flex-layout","name":"FlexLayoutModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-spinner","name":"MatProgressSpinnerModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginatorModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/material/tooltip","name":"MatTooltipModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/material/table","name":"MatTableModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":21,"character":4}],"declarations":[{"__symbolic":"reference","name":"NgxNexusTableComponent"},{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"NgxNexusTableComponent"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"patient-column-template","template":"\n    <div fxLayout=\"row\">\n      <mat-icon\n        *ngIf=\"row?.sex\"\n        [matTooltip]=\"\n          row?.sex == 'M'\n            ? 'Male'\n            : row?.sex == 'F'\n            ? 'Female'\n            : 'Unknown / Not specified'\n        \"\n        [svgIcon]=\"\n          row?.sex == 'M'\n            ? 'gender-male'\n            : row?.sex == 'F'\n            ? 'gender-female'\n            : ''\n        \"\n        [ngStyle]=\"{\n          color:\n            row?.sex == 'M' ? '#42A5F5' : row?.sex == 'F' ? '#EC407A' : '#FFF'\n        }\"\n        style=\"margin: 6px 6px 0px 0px\"\n      ></mat-icon>\n      <div fxLayout=\"column\">\n        <div fxLayout=\"row\">{{ row?.surname }}, {{ row?.forename }}</div>\n        <div fxLayout=\"row\">\n          <span style=\"font-weight: 500\" class=\"mr-1\">{{\n            row?.hospitalNumber\n          }}</span>\n          <span *ngIf=\"row?.dateofBirth\">\n            {{ row?.dateofBirth | date: 'dd/MM/yyyy' }}\n          </span>\n        </div>\n      </div>\n    </div>\n  "}]}],"members":{"row":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"col":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}]}}},"origins":{"TableConfig":"./lib/ngx-nexus-table.component","TableColumn":"./lib/ngx-nexus-table.component","TableCellTemplate":"./lib/ngx-nexus-table.component","NgxNexusTableComponent":"./lib/ngx-nexus-table.component","NgxNexusTableModule":"./lib/ngx-nexus-table.module","ɵa":"./lib/cell-templates/patient/patient-cell-template.component"},"importAs":"ngx-nexus-table"}