{"__symbolic":"module","version":4,"metadata":{"TableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"sebng-table","encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":8,"character":19},"member":"None"},"template":"<div\n    [style.height]=\"fixedHeight\"\n    class=\"table-responsive{{ responsiveBreakpoint && '-' + responsiveBreakpoint }} seb-table\"\n    [class.seb-table-fixed-height]=\"!!fixedHeight\"\n    [ngClass]=\"className\"\n>\n    <table\n        [class.table-striped]=\"striped\"\n        [class.table-dark]=\"darkTable\"\n        [class.table-hover]=\"selectable\"\n        [class.table-sm]=\"compact\"\n        class=\"table\"\n    >\n        <thead\n            seb-table-header\n            [class.thead-light]=\"(!theadTheme && fixedHeight && !darkTable) || theadTheme === 'light'\"\n            [class.thead-dark]=\"(!theadTheme && fixedHeight && darkTable) || theadTheme === 'dark'\"\n            [selectable]=\"selectable\"\n            [isAllSelected]=\"isAllSelected\"\n            [list]=\"headerList\"\n            [sortInfo]=\"sortInfo\"\n            (sortClicked)=\"sortClicked.emit($event)\"\n            (allSelectedClicked)=\"handleAllSelectedClicked()\"\n        ></thead>\n        <tbody\n            seb-table-body\n            [selectable]=\"selectable\"\n            [headerList]=\"headerList\"\n            [rows]=\"rows\"\n            [selectedRows]=\"selectedRowIndexes\"\n            [dateFormat]=\"dateFormat\"\n            (rowClicked)=\"handleClickRow($event)\"\n        ></tbody>\n    </table>\n</div>\n","styles":[".seb-table.seb-table-fixed-height{margin-bottom:1rem}.seb-table.seb-table-fixed-height table{margin-bottom:0;border-collapse:separate;border-spacing:0}.seb-table.seb-table-fixed-height table>thead>tr>th{top:0;position:sticky}.seb-table table .seb-table-data{vertical-align:middle}.seb-table table .table-checkbox{width:3rem;vertical-align:middle}.seb-table table .table-checkbox input.form-control{width:1rem;margin:auto;min-height:auto;height:1rem}.seb-table table tbody tr:first-child>td{border-top:none}.seb-table table td.selectable,.seb-table table th.selectable{cursor:pointer}.seb-table table td.selectable>input,.seb-table table th.selectable>input{cursor:pointer}\n"]}]}],"members":{"className":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":5}}]}],"headerList":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":5}}]}],"sortInfo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":5}}]}],"selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":5}}]}],"compact":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":5}}]}],"striped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":5}}]}],"theadTheme":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":5}}]}],"darkTable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":5}}]}],"responsiveBreakpoint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":5}}]}],"isAllSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":5}}]}],"dateFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":5}}]}],"rows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":5}}]}],"fixedHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":5}}]}],"selectedRowIndexes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":5}}]}],"rowClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":41,"character":5}}]}],"sortClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":43,"character":5}}]}],"selectAllClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":45,"character":5}}]}],"handleAllSelectedClicked":[{"__symbolic":"method"}]}},"TableServiceData":{"__symbolic":"interface"},"TableServiceHandlers":{"__symbolic":"interface"},"TableServiceDataAndHandlers":{"__symbolic":"interface"},"TableServiceSubject":{"__symbolic":"interface"},"TableServiceAction":{"__symbolic":"interface"},"TableHeaderListValueType":{"__symbolic":"interface"},"TableTHeadTheme":{"__symbolic":"interface"},"TableResponsiveBreakpoint":{"__symbolic":"interface"},"TableConfig":{"__symbolic":"interface"},"TableHeaderListItem":{"__symbolic":"interface"},"TableRowClickedEvent":{"__symbolic":"interface"},"SortInfo":{"__symbolic":"interface"},"TableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":14},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":11,"character":28}],"declarations":[{"__symbolic":"reference","name":"TableComponent"},{"__symbolic":"reference","name":"TableTHComponent"},{"__symbolic":"reference","name":"TableTDComponent"},{"__symbolic":"reference","name":"TableHeaderComponent"},{"__symbolic":"reference","name":"TableBodyComponent"},{"__symbolic":"reference","name":"TableSafeHtmlPipe"}],"exports":[{"__symbolic":"reference","name":"TableComponent"}]}]}],"members":{}},"TableSafeHtmlPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"safeHtml"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":5,"character":35}]}],"transform":[{"__symbolic":"method"}]}},"TableService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":18,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"registerDatasource":[{"__symbolic":"method"}],"initConfigTypes":[{"__symbolic":"method"}],"reloadTable":[{"__symbolic":"method"}],"setupColumnsList":[{"__symbolic":"method"}],"setupTable":[{"__symbolic":"method"}],"makeSortedTable":[{"__symbolic":"method"}],"makePaginatedTable":[{"__symbolic":"method"}],"setupTableHeader":[{"__symbolic":"method"}],"checkIsAllSelected":[{"__symbolic":"method"}],"checkHasSelection":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TableTHComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"[seb-table-th]","template":"<span>{{ label }}</span>"}]}],"members":{"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":5}}]}]}},"TableTDComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"[seb-table-td]","template":"<ng-container [ngSwitch]=\"valueType\">\n    <span *ngSwitchCase=\"'string'\"> {{ row || \"–\" }}</span>\n    <span *ngSwitchCase=\"'number'\">{{ (row | number) || \"–\" }}</span>\n    <span *ngSwitchCase=\"'datetime'\">{{ (row | date: dateFormat + \" HH:mm:ss\") || \"–\" }}</span>\n    <span *ngSwitchCase=\"'date'\">{{ (row | date: dateFormat) || \"–\" }}</span>\n    <span *ngSwitchCase=\"'custom-html'\" [innerHtml]=\"(row | safeHtml) || '–'\"></span>\n    <span *ngSwitchDefault>–</span>\n</ng-container>\n"}]}],"members":{"row":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":5}}]}],"valueType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":5}}]}],"dateFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":5}}]}]}},"TableHeaderComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"[seb-table-header]","template":"<tr *ngIf=\"list && list.length\">\n    <th [class.selectable]=\"selectable\" *ngIf=\"selectable\" class=\"table-checkbox\" (click)=\"allSelectedClicked.emit()\">\n        <input type=\"checkbox\" class=\"form-control\" [checked]=\"isAllSelected\" />\n    </th>\n\n    <th\n        *ngFor=\"let column of list\"\n        seb-table-th\n        class=\"seb-table-data\"\n        [class.sort]=\"!!sortInfo\"\n        [class.sort-asc]=\"!!sortInfo && sortInfo.column === column.tableKeySelector && sortInfo.isAscending === true\"\n        [class.sort-desc]=\"!!sortInfo && sortInfo.column === column.tableKeySelector && sortInfo.isAscending === false\"\n        scope=\"col\"\n        (click)=\"!!sortInfo ? handleClickSort(column.tableKeySelector) : null\"\n        [label]=\"column.label\"\n    ></th>\n</tr>\n"}]}],"members":{"list":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":5}}]}],"sortInfo":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":5}}]}],"selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":5}}]}],"isAllSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":5}}]}],"sortClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":12,"character":5}}]}],"allSelectedClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":5}}]}]}},"TableBodyComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"[seb-table-body]","template":"<tr *ngFor=\"let row of rows; let i = index\" (click)=\"handleClickRow({ item: row, index: i })\">\n    <td [class.selectable]=\"selectable\" *ngIf=\"selectable\" class=\"table-checkbox\">\n        <input type=\"checkbox\" class=\"form-control\" [checked]=\"selectedRows.includes(i)\" />\n    </td>\n\n    <td\n        *ngFor=\"let column of headerList\"\n        seb-table-td\n        class=\"seb-table-data\"\n        [class.selectable]=\"selectable\"\n        [dateFormat]=\"dateFormat\"\n        [row]=\"row[column.tableKeySelector]\"\n        [valueType]=\"column.valueType\"\n    ></td>\n</tr>\n"}]}],"members":{"headerList":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":5}}]}],"rows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":5}}]}],"selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":5}}]}],"dateFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":5}}]}],"selectedRows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":5}}]}],"rowClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":5}}]}]}}},"origins":{"TableComponent":"./table.component","TableServiceData":"./table.models","TableServiceHandlers":"./table.models","TableServiceDataAndHandlers":"./table.models","TableServiceSubject":"./table.models","TableServiceAction":"./table.models","TableHeaderListValueType":"./table.models","TableTHeadTheme":"./table.models","TableResponsiveBreakpoint":"./table.models","TableConfig":"./table.models","TableHeaderListItem":"./table.models","TableRowClickedEvent":"./table.models","SortInfo":"./table.models","TableModule":"./table.module","TableSafeHtmlPipe":"./table.pipe","TableService":"./table.service","TableTHComponent":"./table-th/table-th.component","TableTDComponent":"./table-td/table-td.component","TableHeaderComponent":"./table-header/table-header.component","TableBodyComponent":"./table-body/table-body.component"},"importAs":"@sebgroup/ng-components/lib/table"}