@biit-solutions/wizardry-theme 1.22.19 → 1.22.21
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.
- package/esm2020/button/biit-action-button/biit-action-button.component.mjs +2 -2
- package/esm2020/table/biit-datatable/biit-datatable.component.mjs +2 -2
- package/fesm2015/biit-solutions-wizardry-theme-button.mjs +2 -2
- package/fesm2015/biit-solutions-wizardry-theme-button.mjs.map +1 -1
- package/fesm2015/biit-solutions-wizardry-theme-table.mjs +2 -2
- package/fesm2015/biit-solutions-wizardry-theme-table.mjs.map +1 -1
- package/fesm2020/biit-solutions-wizardry-theme-button.mjs +2 -2
- package/fesm2020/biit-solutions-wizardry-theme-button.mjs.map +1 -1
- package/fesm2020/biit-solutions-wizardry-theme-table.mjs +2 -2
- package/fesm2020/biit-solutions-wizardry-theme-table.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"biit-solutions-wizardry-theme-table.mjs","sources":["../../../projects/wizardry-theme/table/src/biit-paginator/models/biit-paginator-options.ts","../../../projects/wizardry-theme/table/src/biit-table/models/biit-table-column.ts","../../../projects/wizardry-theme/table/src/biit-table/models/column-resize-handler.ts","../../../projects/wizardry-theme/table/src/biit-table/models/biit-table-response.ts","../../../projects/wizardry-theme/table/src/biit-table/models/biit-table-sorting.ts","../../../projects/wizardry-theme/table/src/biit-table/models/biit-table-action-response.ts","../../../projects/wizardry-theme/table/src/biit-paginator/biit-paginator.component.ts","../../../projects/wizardry-theme/table/src/biit-paginator/biit-paginator.component.html","../../../projects/wizardry-theme/table/src/biit-table/pipes/visible-columns-pipe.ts","../../../projects/wizardry-theme/table/src/biit-table/pipes/column-data-pipe.ts","../../../projects/wizardry-theme/table/src/biit-table/biit-table.component.ts","../../../projects/wizardry-theme/table/src/biit-table/biit-table.component.html","../../../projects/wizardry-theme/table/src/biit-paginator/biit-paginator.module.ts","../../../projects/wizardry-theme/table/src/biit-table/biit-table.module.ts","../../../projects/wizardry-theme/table/src/biit-table/models/biit-table-data.ts","../../../projects/wizardry-theme/table/src/utils/generic-filter.ts","../../../projects/wizardry-theme/table/src/utils/generic-sort.ts","../../../projects/wizardry-theme/table/src/biit-datatable/models/page.ts","../../../projects/wizardry-theme/table/src/biit-datatable-pager/biit-datatable-pager.component.ts","../../../projects/wizardry-theme/table/src/biit-datatable-pager/biit-datatable-pager.component.html","../../../projects/wizardry-theme/table/src/biit-datatable/biit-datatable.component.ts","../../../projects/wizardry-theme/table/src/biit-datatable/biit-datatable.component.html","../../../projects/wizardry-theme/table/src/biit-datatable-pager/biit-datatable-pager.module.ts","../../../projects/wizardry-theme/table/src/biit-datatable/biit-datatable.module.ts","../../../projects/wizardry-theme/table/src/biit-datatable/models/datatable-column.ts","../../../projects/wizardry-theme/table/src/public-api.ts","../../../projects/wizardry-theme/table/src/biit-solutions-wizardry-theme-table.ts"],"sourcesContent":["export class BiitPaginatorOptions {\n currentPage: number;\n pageSize: number;\n pageSizeOptions: number[];\n totalItems: number;\n hidePageSize: boolean;\n hideFirstLastButtons: boolean;\n\n constructor(currentPage: number,\n pageSize: number,\n pageSizeOptions: number[],\n totalItems?: number,\n hidePageSize?: boolean,\n hideFirstLastButtons?: boolean) {\n this.currentPage = currentPage;\n this.pageSize = pageSize;\n this.pageSizeOptions = pageSizeOptions;\n this.totalItems = totalItems;\n this.hidePageSize = hidePageSize || totalItems == undefined;\n this.hideFirstLastButtons = hideFirstLastButtons;\n }\n}\n","export class BiitTableColumn {\n name: string;\n label: string;\n width: number;\n format: BiitTableColumnFormat;\n visible: boolean;\n\n constructor(name: string,\n label: string,\n width?: number,\n format?: BiitTableColumnFormat,\n visible?: boolean) {\n this.name = name;\n this.label = label;\n this.width = width ? width : 0;\n this.format = format ? format : BiitTableColumnFormat.DEFAULT;\n this.visible = visible == undefined ? true : visible;\n }\n}\n\nexport enum BiitTableColumnFormat {\n DEFAULT = 'default',\n BOOLEAN = 'boolean',\n DATE = 'date',\n DATETIME = 'datetime',\n BUTTON = 'button',\n ICON_BUTTON = 'icon_button',\n ICON = 'icon',\n CUSTOM_HTML = \"custom_html\"\n}\n","export class ColumnResizeHandler {\n start: Element;\n pressed: boolean;\n startX: number;\n startWidth: number;\n minWidth: number;\n}\n","import {BiitTableSorting} from './biit-table-sorting';\n\nexport class BiitTableResponse {\n currentPage: number;\n pageSize: number;\n search: string;\n sorting: BiitTableSorting;\n\n constructor(currentPage: number, pageSize: number, search: string, sorting: BiitTableSorting) {\n this.currentPage = currentPage;\n this.pageSize = pageSize;\n this.search = search;\n this.sorting = sorting;\n }\n}\n","export class BiitTableSorting {\n name: string;\n order: BiitTableSortingOrder;\n\n constructor(name: string,\n order: BiitTableSortingOrder) {\n this.name = name;\n this.order = order;\n }\n}\n\nexport enum BiitTableSortingOrder {\n ASC = 'asc',\n DESC = 'desc'\n}\n","export class BiitTableActionResponse {\n item: any;\n column: string;\n\n constructor(item: any, column: string) {\n this.item = item;\n this.column = column;\n }\n}\n","import {\n Component,\n ElementRef,\n forwardRef,\n ViewChild\n} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {BiitPaginatorOptions} from './models/biit-paginator-options';\n\n@Component({\n selector: 'biit-paginator',\n templateUrl: './biit-paginator.component.html',\n styleUrls: ['./biit-paginator.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BiitPaginatorComponent),\n multi: true\n }\n ],\n host: {\n '(document:pointerdown)': 'handleMouseEvents($event)'\n }\n})\nexport class BiitPaginatorComponent {\n\n protected paginator: BiitPaginatorOptions;\n protected totalPages: number;\n protected dropdownOpen = false;\n\n @ViewChild('pageSelector') pageSelector: ElementRef;\n @ViewChild('pageSizeBtn') selectorBtn: ElementRef;\n @ViewChild('pageSizeList') selectorList: ElementRef;\n @ViewChild('pageInput') pageInput: ElementRef;\n @ViewChild('totalPagesLabel') totalPagesLabel: ElementRef;\n\n constructor() { }\n\n onChange = (value: any) => {};\n onTouched = () => {}\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(value: any): void {\n if (value) {\n this.paginator = value;\n this.calculateTotalPages();\n }\n }\n\n onModelChange() {\n this.closeDropdown();\n this.onChange(this.paginator);\n }\n\n handleMouseEvents($event: PointerEvent) {\n if (!this.selectorList.nativeElement?.contains($event.target) &&\n !this.selectorBtn.nativeElement?.contains($event.target) &&\n this.dropdownOpen) {\n this.closeDropdown();\n }\n }\n\n handleKeyboardEvents($event: KeyboardEvent) {\n switch ($event.key) {\n case 'ArrowUp':\n if (document.activeElement === this.selectorBtn.nativeElement) {\n if (this.paginator.pageSizeOptions.findIndex(i => i == this.paginator.pageSize) > 0) {\n this.paginator.pageSize = this.paginator.pageSizeOptions\n [this.paginator.pageSizeOptions.findIndex(i => i == this.paginator.pageSize) - 1];\n this.paginator.currentPage = 1;\n this.onChange(this.paginator);\n }\n } else {\n (document.activeElement.previousElementSibling as HTMLElement)?.focus();\n }\n $event.preventDefault();\n break;\n\n case 'ArrowDown':\n if (document.activeElement === this.selectorBtn.nativeElement) {\n if (this.paginator.pageSizeOptions.findIndex(i => i == this.paginator.pageSize) < this.paginator.pageSizeOptions.length -1) {\n this.paginator.pageSize = this.paginator.pageSizeOptions\n [this.paginator.pageSizeOptions.findIndex(i => i == this.paginator.pageSize) + 1];\n this.paginator.currentPage = 1;\n this.onChange(this.paginator);\n }\n } else {\n (document.activeElement.nextElementSibling as HTMLElement)?.focus();\n }\n $event.preventDefault();\n break;\n\n case 'Escape':\n this.closeDropdown();\n break;\n\n default:\n break;\n }\n $event.stopPropagation();\n }\n\n private setTooltipComponentProperties() {\n let dropdown = this.selectorList.nativeElement;\n let button = this.selectorBtn.nativeElement;\n\n dropdown.style.display = 'block';\n\n // Checking available screen space\n const fitsBottom = bottomCheck();\n const fitsRight = rightCheck();\n const fitsLeft = leftCheck();\n\n if (!fitsRight && fitsLeft) {\n dropdown.style.marginLeft = button.offsetWidth - dropdown.offsetWidth + 'px';\n } else {\n dropdown.style.marginLeft = null;\n }\n\n dropdown.classList.remove('onwards');\n dropdown.classList.remove('downwards');\n\n if (!fitsBottom) {\n dropdown.classList.add('onwards');\n dropdown.style.marginTop = -(dropdown.offsetHeight + button.offsetHeight) + 'px';\n } else {\n dropdown.classList.add('downwards');\n dropdown.style.marginTop = null;\n }\n\n // Support inner functions\n function bottomCheck(): boolean {\n return button.getBoundingClientRect().bottom + dropdown.offsetHeight <= window.innerHeight ||\n button.getBoundingClientRect().top - dropdown.offsetHeight <= 0;\n }\n\n function rightCheck(): boolean {\n return button.getBoundingClientRect().right + dropdown.offsetWidth <= window.innerWidth;\n }\n\n function leftCheck(): boolean {\n return button.getBoundingClientRect().right - dropdown.offsetWidth >= 0;\n }\n }\n\n openDropdown() {\n this.setTooltipComponentProperties();\n\n // Setting a timeout because it doesn't load upwards/downwards css classes on execution time\n setTimeout(() => {\n this.dropdownOpen = true;\n this.selectorList.nativeElement.setAttribute('aria-expanded', \"true\");\n }, 100);\n }\n\n closeDropdown() {\n this.dropdownOpen = false;\n this.selectorList.nativeElement.setAttribute('aria-expanded', \"false\");\n }\n\n calculateTotalPages() {\n if (!this.paginator?.hidePageSize && !isNaN(this.paginator?.totalItems)) {\n const tempTotalPages = this.paginator.totalItems ?\n this.paginator.totalItems / this.paginator.pageSize : 0;\n\n if (Number.isInteger(tempTotalPages) && tempTotalPages > 0) {\n this.totalPages = tempTotalPages;\n } else {\n this.totalPages = Math.trunc(tempTotalPages) + 1;\n }\n\n if (this.totalPagesLabel?.nativeElement) {\n this.totalPagesLabel.nativeElement.innerText = '/' + this.totalPages;\n }\n\n if (this.pageInput?.nativeElement) {\n this.pageInput.nativeElement.style.width =\n this.totalPagesLabel.nativeElement.offsetWidth * 2\n + 2.1 * parseFloat(getComputedStyle(document.documentElement).fontSize)\n + 'px';\n }\n }\n\n this.refreshCenterStyle();\n }\n\n setInputValue(event: Event) {\n let selectedPage = parseFloat((event.target as HTMLInputElement).value);\n if (selectedPage > this.totalPages) {\n (event.target as HTMLInputElement).value = this.totalPages.toString();\n selectedPage = this.totalPages;\n }\n this.paginator.currentPage = selectedPage;\n }\n\n resetInputValue(event: Event) {\n (event.target as HTMLInputElement).value = this.paginator.currentPage.toString();\n }\n\n refreshCenterStyle() {\n const width = this.pageSelector.nativeElement.offsetWidth;\n this.pageSelector.nativeElement.style.setProperty(\"--center-fix\", -(width/2) + 'px');\n }\n}\n","<div style=\"display: flex; justify-content: space-between\" *transloco=\"let t\">\n <!-- PAGE SELECTOR -->\n <div #pageSelector class=\"page-selector\" id=\"page-selector\">\n <button biit-icon id=\"arrow-first\"\n icon='right_double_arrow'\n class=\"horizontal-flip\"\n (click)=\"paginator.currentPage = 1; onModelChange();\"\n [disabled]=\"paginator?.currentPage <= 1\"\n tooltip=\"{{t('table.first-page')}}\"\n ></button>\n <button biit-icon id=\"arrow-previous\"\n icon='right_arrow'\n class=\"compact horizontal-flip\"\n (click)=\"paginator.currentPage = paginator.currentPage - 1; onModelChange();\"\n [disabled]=\"paginator?.currentPage <= 1\"\n tooltip=\"{{t('table.previous-page')}}\"\n ></button>\n <div class=\"page-display\" style=\"position: relative\">\n <input #pageInput id=\"current-page\"\n [ngModel]=\"paginator?.currentPage\"\n type=\"number\"\n [min]=\"1\"\n [max]=\"totalPages\"\n (keydown.enter)=\"setInputValue($event); onModelChange()\"\n (focusout)=\"resetInputValue($event)\"\n class=\"page-input\"/>\n <a #totalPagesLabel class=\"total-pages\">/</a>\n <div class=\"bottom-bar\"></div>\n </div>\n <button biit-icon id=\"arrow-next\"\n icon='right_arrow'\n class=\"compact\"\n (click)=\"paginator.currentPage = paginator.currentPage + 1; onModelChange();\"\n [disabled]=\"paginator?.currentPage >= totalPages\"\n tooltip=\"{{t('table.next-page')}}\"\n ></button>\n <button biit-icon id=\"arrow-last\"\n icon='right_double_arrow'\n (click)=\"paginator.currentPage = totalPages; onModelChange();\"\n [disabled]=\"paginator?.currentPage >= totalPages\"\n tooltip=\"{{t('table.last-page')}}\"\n ></button>\n </div>\n\n <!-- PAGE SIZE SELECTOR -->\n <div class=\"page-size-selector\">\n <a\n [tooltip]=\"t('table.rows-per-page')\">{{ t('table.rows-per-page') }}</a>\n <button #pageSizeBtn\n (click)=\"!dropdownOpen ? openDropdown() : closeDropdown()\"\n (keydown)=\"handleKeyboardEvents($event)\">\n <a>{{ paginator?.pageSize }}</a>\n <biit-icon class=\"icon\"\n [name]=\"'right_arrow'\"\n [pathStyle]=\"{fill: dropdownOpen ? 'var(--main-color)' : 'var(--component-color)'}\"\n [class.rotate]=\"dropdownOpen\"\n ></biit-icon>\n </button>\n <div class=\"dropdown\" [style.overflow]=\"dropdownOpen ? 'visible' : 'hidden'\">\n <div #pageSizeList\n class=\"list\"\n [class.dropdown-open]=\"dropdownOpen\">\n <button *ngFor=\"let pageSize of paginator?.pageSizeOptions; index as i\"\n (click)=\"paginator.currentPage = 1; paginator.pageSize = pageSize; onModelChange()\"\n (keydown)=\"handleKeyboardEvents($event)\"\n [class.selected]=\"paginator.pageSize === pageSize\"\n class=\"item\"\n role=\"option\"\n aria-selected=\"false\"\n [id]=\"i\"\n [tabindex]=\"!dropdownOpen? -1 : 0\"\n [disabled]=\"!dropdownOpen\"\n >\n {{ pageSize }}\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {BiitTableColumn} from '../models/biit-table-column';\n\n@Pipe({\n name: 'visibleColumns'\n})\n\nexport class VisibleColumnsPipe implements PipeTransform {\n transform(value: BiitTableColumn[]): any {\n return value.filter(column => column.visible);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'columnData'\n})\n\nexport class ColumnDataPipe implements PipeTransform {\n transform(value: any, columnName: string): any {\n const dataTree = columnName.split('.');\n let data = value;\n dataTree.forEach(variable => {\n data = data[variable];\n })\n return data;\n }\n}\n","import {\n AfterViewChecked,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Renderer2,\n TemplateRef\n} from '@angular/core';\nimport {BiitPaginatorOptions} from '../biit-paginator/models/biit-paginator-options';\nimport {BiitTableColumn, BiitTableColumnFormat} from './models/biit-table-column';\nimport {ColumnResizeHandler} from './models/column-resize-handler';\nimport {BiitTableResponse} from './models/biit-table-response';\nimport {BiitTableData} from './models/biit-table-data';\nimport {BiitTableSorting, BiitTableSortingOrder} from './models/biit-table-sorting';\nimport {BiitMultiselectType} from '@biit-solutions/wizardry-theme/inputs';\nimport {TRANSLOCO_SCOPE} from '@ngneat/transloco';\nimport {BiitTableActionResponse} from \"./models/biit-table-action-response\";\n\n@Directive({\n selector: '[selectable]'\n})\nexport class BiitTableSelectableDirective {\n constructor(private parent: BiitTableComponent) {\n parent.isSelectable = true;\n }\n}\n\n@Directive({\n selector: '[selectableSingle]'\n})\nexport class BiitTableSelectableSingleDirective {\n constructor(private parent: BiitTableComponent) {\n parent.isSelectableSingle = true;\n }\n}\n\n@Directive({\n selector: '[sortable]'\n})\nexport class BiitTableSortableDirective {\n constructor(private parent: BiitTableComponent) {\n parent.isSortable = true;\n }\n}\n\n@Directive({\n selector: '[hideHeader]'\n})\nexport class BiitTableHeaderlessDirective {\n constructor(private parent: BiitTableComponent) {\n parent.hideHeader = true;\n }\n}\n\n@Directive({\n selector: '[hideFooter]'\n})\nexport class BiitTableFooterlessDirective {\n constructor(private parent: BiitTableComponent) {\n parent.hideFooter = true;\n }\n}\n\n@Component({\n selector: 'biit-table',\n templateUrl: './biit-table.component.html',\n styleUrls: ['./biit-table.component.scss'],\n providers: [{\n provide: TRANSLOCO_SCOPE,\n useValue: {scope: 'wizardry-theme/table', alias: \"table\"}\n }]\n})\nexport class BiitTableComponent implements OnInit, AfterViewChecked {\n\n @Input('metadata') set _data(data: BiitTableData<any>) {\n if (data) {\n this.data = data;\n this.selectedRows.clear();\n if (this.paginator) {\n this.paginator = new BiitPaginatorOptions(this.paginator.currentPage, this.paginator.pageSize, this.pageSizes, data.totalItems);\n }\n }\n }\n\n @Input('loading') set _loading(loading: boolean) {\n if (loading) {\n this.loading = loading;\n this.setLoadingBar();\n } else {\n this.loading = false;\n }\n }\n\n @Input() columns: BiitTableColumn[] = [];\n @Input() pageSizes: number[] = [];\n @Input() defaultPageSize: number;\n\n @ContentChild('actions') actionsTpl!: TemplateRef<any>;\n\n isSelectable: boolean = false;\n isSelectableSingle: boolean = false;\n isSortable: boolean = false;\n hideHeader: boolean = false;\n hideFooter: boolean = false;\n\n @Output() onUpdate: EventEmitter<BiitTableResponse> = new EventEmitter<BiitTableResponse>();\n @Output() onCellAction: EventEmitter<BiitTableActionResponse> = new EventEmitter<BiitTableActionResponse>();\n @Output() onRowClick: EventEmitter<any> = new EventEmitter<any>();\n\n protected data: BiitTableData<any>;\n protected paginator;\n protected sorting: BiitTableSorting;\n protected selectedRows: Set<any> = new Set<any>();\n protected columnResize: ColumnResizeHandler = new ColumnResizeHandler();\n protected loading: boolean = false;\n protected search: string = '';\n protected currentSearch: string = '';\n protected readonly BiitMultiselectType = BiitMultiselectType;\n protected readonly BiitTableColumnFormat = BiitTableColumnFormat;\n\n private findTimeout: NodeJS.Timeout;\n\n constructor(private renderer: Renderer2,\n private elem: ElementRef) {\n }\n\n ngOnInit(): void {\n this.paginator = new BiitPaginatorOptions(1, this.defaultPageSize, this.pageSizes, this.data ? this.data.totalItems : 1);\n }\n\n ngAfterViewChecked() {\n this.setColumnSize();\n }\n\n // Fix for resizable columns\n private setColumnSize() {\n // Takes scrollbar padding in mind before hardcoding widths\n this.elem.nativeElement.querySelector('.content').style.paddingRight = '0.7rem';\n\n Array.from(this.elem.nativeElement.querySelector('thead').firstChild.children).forEach(ogColumn => {\n const column = ogColumn as HTMLElement;\n\n if (column.classList.contains('select')) {\n return;\n }\n if (column.style.width == '' && !column.classList.contains('select')) {\n column.style.width = column.offsetWidth - 10 + 'px';\n }\n this.columnInnerWordFitCheck(column);\n });\n this.elem.nativeElement.querySelector('.content').style.paddingRight = null;\n\n this.setLoadingBar();\n }\n\n columnInnerWordFitCheck(column: HTMLElement) {\n const minColumnSize = (column.firstElementChild as HTMLElement).offsetWidth\n + 2.4 * parseFloat(getComputedStyle(document.documentElement).fontSize) * 2;\n\n // If inner text width plus header paddings are less than the current header width (set by user column properties)\n if (minColumnSize > column.offsetWidth) {\n (column as HTMLElement).style.width = minColumnSize + 'px';\n }\n }\n\n setLoadingBar(): void {\n const progressBar = this.elem.nativeElement.querySelector('biit-progress-bar');\n if (progressBar) {\n progressBar.style.top =\n this.elem.nativeElement.querySelector('thead').offsetHeight + 'px';\n }\n }\n\n onTableUpdate(force: boolean = false) {\n if (this.findTimeout) {\n clearTimeout(this.findTimeout);\n }\n this.findTimeout = setTimeout(() => {\n this.currentSearch = this.search;\n this.selectedRows.clear();\n this.onUpdate.emit(new BiitTableResponse(\n this.paginator.currentPage,\n this.paginator.pageSize,\n this.search,\n this.sorting\n ));\n clearTimeout(this.findTimeout);\n this.findTimeout = null;\n }, force ? 0 : 500);\n }\n\n onTableSort(column: BiitTableColumn) {\n if (this.sorting && this.sorting.name == column.name) {\n switch (this.sorting.order) {\n case BiitTableSortingOrder.ASC:\n this.sorting.order = BiitTableSortingOrder.DESC;\n break;\n case BiitTableSortingOrder.DESC:\n this.sorting = undefined;\n break;\n }\n } else {\n this.sorting = new BiitTableSorting(column.name, BiitTableSortingOrder.ASC);\n }\n\n this.onTableUpdate();\n }\n\n snakeToCamel(string: string): string {\n return string.toLowerCase().replace(/[-_][a-z]/g, (group) => group.slice(-1).toUpperCase());\n }\n\n resizeColumn(event, column: BiitTableColumn, index) {\n this.columnResize.start = event.target;\n this.columnResize.pressed = true;\n this.columnResize.startX = event.x;\n this.columnResize.startWidth = (this.columnResize.start.parentNode as HTMLElement).offsetWidth;\n\n let columnElem = this.elem.nativeElement.querySelector('thead').firstChild.children[this.isSelectable ? index + 1 : index];\n this.columnResize.minWidth = (columnElem.firstElementChild as HTMLElement).offsetWidth\n + 2.4 * parseFloat(getComputedStyle(document.documentElement).fontSize) * 2;\n\n this.initResizableColumns(column);\n }\n\n private initResizableColumns(column: BiitTableColumn) {\n const moveListener = this.renderer.listen('window', 'mousemove', (event) => {\n if (this.columnResize.pressed) {\n let width = this.columnResize.startWidth + (event.x - this.columnResize.startX);\n if (width > this.columnResize.minWidth) {\n column.width = width;\n }\n }\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n return false;\n });\n const releaseListener = this.renderer.listen('window', 'mouseup', (event) => {\n if (this.columnResize.pressed) {\n this.columnResize.pressed = false;\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n moveListener();\n releaseListener();\n }\n return false;\n });\n }\n\n setColumnVisibility(response: BiitTableColumn[]) {\n this.columns.forEach(c => response.some(e => e.name == c.name) ? c.visible = true : c.visible = false);\n }\n\n selectRow(item, holdCtrl) {\n if (!holdCtrl || this.isSelectableSingle) {\n this.selectedRows.clear();\n this.selectedRows.add(item);\n } else {\n if (!this.selectedRows.has(item)) {\n this.selectedRows.add(item);\n } else {\n this.selectedRows.delete(item);\n }\n }\n }\n\n getSelectedRows(): any[] {\n return [...this.selectedRows];\n }\n\n setSelectedRows(_selectedRows: any[]): void {\n this.selectedRows = new Set<any>(_selectedRows.filter(r => this.data.data.includes(r)));\n }\n\n emitCellAction(item: any, column: string, event: Event) {\n event.stopPropagation();\n this.onCellAction.emit(new BiitTableActionResponse(item, column));\n }\n\n emitRowClick(item: any) {\n this.onRowClick.emit(item);\n }\n\n resetInputValue() {\n this.search = this.currentSearch;\n }\n}\n","<div class=\"canvas\" *transloco=\"let t\">\n <div class=\"header\" *ngIf=\"!hideHeader\">\n <div class=\"buttons\" id=\"menu\">\n <biit-vertical-menu *ngIf=\"actionsTpl\" class=\"vertical-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </biit-vertical-menu>\n <div *ngIf=\"actionsTpl\" class=\"horizontal-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </div>\n <div *ngIf=\"!actionsTpl\">\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"forms\">\n <biit-input-text id=\"search-field\" [(ngModel)]=\"search\"\n (onActionPerformed)=\"\n paginator.currentPage = 1;\n onTableUpdate(true);\n \"\n (focusout)=\"resetInputValue()\"\n (ngModelChange)=\"onTableUpdate()\"\n icon=\"search\"\n [placeholder]=\"t('table.search')\"\n ></biit-input-text>\n <biit-multiselect id=\"column-selector\" [ngModel]=\"columns | visibleColumns\"\n (ngModelChange)=\"setColumnVisibility($event)\"\n [data]=\"columns\"\n label=\"label\"\n value=\"visible\"\n [title]=\"t('table.column-selector')\"\n [type]=\"BiitMultiselectType.ICON\"\n [compact]=\"true\"\n ></biit-multiselect>\n </div>\n </div>\n\n <div class=\"content\">\n <div *ngIf=\"loading\" style=\"position: relative\">\n <biit-progress-bar style=\"position: absolute; top: 2.1rem; left: 0.2rem; width: calc(100% - 0.1rem);\"></biit-progress-bar>\n </div>\n <table>\n <thead>\n <tr>\n <th *ngIf=\"isSelectable || isSelectableSingle\" class=\"select\">\n <biit-checkbox *ngIf=\"isSelectable\"\n [ngModel]=\"data?.data.length && selectedRows.size == data?.data.length\"\n (ngModelChange)=\"$event ? data?.data.forEach(selectedRows.add, selectedRows) : selectedRows.clear()\"\n ></biit-checkbox>\n </th>\n <th *ngFor=\"let column of columns, index as i\"\n [class.sortable]=\"isSortable\"\n [style.display]=\"!column.visible ? 'none' : null\"\n [style.width]=\"column.width ? column.width + 'px' : ''\"\n (click)=\"isSortable ? onTableSort(column) : false\"\n >\n <div class=\"label\">\n {{column.label}}\n </div>\n <biit-icon *ngIf=\"isSortable\"\n [name]=\"sorting?.name == column.name ? 'right_arrow' : 'up_down_arrow'\"\n [pathStyle]=\"{fill: '#FFFFFF'}\"\n class=\"sort\"\n [class.asc]=\"sorting?.name == column.name && sorting?.order == 'asc'\"\n [class.desc]=\"sorting?.name == column.name && sorting?.order == 'desc'\"\n ></biit-icon>\n <div class=\"column-resizer\"\n (mousedown)=\"resizeColumn($event, column, i)\"\n (click)=\"$event.preventDefault();\n $event.stopPropagation();\n $event.stopImmediatePropagation();\"\n ></div>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of data?.data; index as i\"\n [class.selectable]=\"isSelectable\"\n [class.selected]=\"selectedRows.has(item)\"\n (pointerdown)=\"emitRowClick(item)\"\n >\n <td *ngIf=\"isSelectable || isSelectableSingle\" class=\"select\">\n <biit-checkbox id=\"select{{i}}\"\n [ngModel]=\"selectedRows.has(item)\"\n (ngModelChange)=\"selectRow(item, true)\"\n ></biit-checkbox>\n </td>\n <td *ngFor=\"let column of columns\"\n (pointerdown)=\"selectRow(item, $event.ctrlKey)\"\n [style.display]=\"!column.visible ? 'none' : null\"\n [style.width]=\"column.width ? column.width + 'px' : null\"\n >\n <div *ngIf=\"column.format == BiitTableColumnFormat.DEFAULT\">\n {{item | columnData: column.name}}\n </div>\n <div *ngIf=\"column.format == BiitTableColumnFormat.BOOLEAN\">\n {{(item | columnData: column.name) ? t('table.yes') : t('table.no') }}\n </div>\n <div *ngIf=\"column.format == BiitTableColumnFormat.DATE\">\n {{(item | columnData: column.name) | localizedDate}}\n </div>\n <div *ngIf=\"column.format == BiitTableColumnFormat.BUTTON\"\n style=\"width: auto; text-align: -webkit-center; text-align: -moz-center;\">\n <button biit-button tertiary\n (pointerdown)=\"emitCellAction(item, column.name, $event)\">\n {{item | columnData: column.name}}\n </button>\n </div>\n <div *ngIf=\"column.format == BiitTableColumnFormat.ICON_BUTTON\"\n style=\"width: auto; text-align: -webkit-center; text-align: -moz-center;\">\n <button biit-icon [icon]=\"item | columnData: column.name\"\n (pointerdown)=\"emitCellAction(item, column.name, $event);\"></button>\n </div>\n <div *ngIf=\"column.format == BiitTableColumnFormat.ICON\"\n style=\"width: auto; height: 1.05rem;\">\n <biit-icon [name]=\"item | columnData: column.name\"></biit-icon>\n </div>\n <div *ngIf=\"column.format == BiitTableColumnFormat.CUSTOM_HTML\"\n style=\"width: auto; text-align: -webkit-center; text-align: -moz-center;\">\n <div [innerHTML]=\"item | columnData: column.name\"></div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n\n </div>\n\n <div class=\"footer\" *ngIf=\"!hideFooter\">\n <div class=\"selected\">\n <a style=\"margin-right: 0.7rem\" *ngIf=\"selectedRows.size\">Selected:</a>\n <a *ngIf=\"selectedRows.size\">{{selectedRows.size}}</a>\n </div>\n <biit-paginator *ngIf=\"paginator\"\n [ngModel]=\"paginator\" (ngModelChange)=\"paginator = $event; onTableUpdate()\"></biit-paginator>\n </div>\n</div>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BiitPaginatorComponent} from \"./biit-paginator.component\";\nimport {FormsModule} from \"@angular/forms\";\nimport {BiitIconModule} from '@biit-solutions/wizardry-theme/icon';\nimport {BiitIconButtonModule} from '@biit-solutions/wizardry-theme/button';\nimport {TranslocoRootModule} from '@biit-solutions/wizardry-theme/i18n';\nimport {TRANSLOCO_SCOPE} from '@ngneat/transloco';\nimport {BiitTooltipModule} from '@biit-solutions/wizardry-theme/info';\n\n\n@NgModule({\n declarations: [BiitPaginatorComponent],\n exports: [BiitPaginatorComponent],\n imports: [\n CommonModule,\n FormsModule,\n BiitIconModule,\n BiitIconButtonModule,\n TranslocoRootModule,\n BiitTooltipModule\n ],\n providers: [{\n provide: TRANSLOCO_SCOPE,\n useValue: {scope: 'wizardry-theme/table', alias: \"table\"}\n }]\n})\nexport class BiitPaginatorModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {\n BiitTableComponent, BiitTableFooterlessDirective, BiitTableHeaderlessDirective,\n BiitTableSelectableDirective, BiitTableSelectableSingleDirective,\n BiitTableSortableDirective\n} from \"./biit-table.component\";\nimport {FormsModule} from \"@angular/forms\";\nimport {BiitPaginatorModule} from '../biit-paginator/biit-paginator.module';\nimport {BiitCheckboxModule, BiitInputTextModule, BiitMultiselectModule} from '@biit-solutions/wizardry-theme/inputs';\nimport {BiitProgressBarModule} from '@biit-solutions/wizardry-theme/info';\nimport {LocalizedDatePipeModule} from '@biit-solutions/wizardry-theme/utils';\nimport {VisibleColumnsPipe} from './pipes/visible-columns-pipe';\nimport {TranslocoRootModule} from '@biit-solutions/wizardry-theme/i18n';\nimport {BiitIconModule} from '@biit-solutions/wizardry-theme/icon';\nimport {BiitButtonModule, BiitIconButtonModule} from \"@biit-solutions/wizardry-theme/button\";\nimport {ColumnDataPipe} from \"./pipes/column-data-pipe\";\nimport {BiitVerticalMenuModule} from \"@biit-solutions/wizardry-theme/navigation\";\n\n\n@NgModule({\n declarations: [\n BiitTableComponent,\n BiitTableSelectableDirective,\n BiitTableSelectableSingleDirective,\n BiitTableSortableDirective,\n BiitTableHeaderlessDirective,\n BiitTableFooterlessDirective,\n VisibleColumnsPipe,\n ColumnDataPipe\n ],\n exports: [\n BiitTableComponent,\n BiitTableSelectableDirective,\n BiitTableSelectableSingleDirective,\n BiitTableSortableDirective,\n BiitTableHeaderlessDirective,\n BiitTableFooterlessDirective\n ],\n imports: [\n CommonModule,\n FormsModule,\n BiitPaginatorModule,\n BiitMultiselectModule,\n BiitInputTextModule,\n BiitCheckboxModule,\n BiitProgressBarModule,\n LocalizedDatePipeModule,\n TranslocoRootModule,\n BiitIconModule,\n BiitButtonModule,\n BiitIconButtonModule,\n BiitVerticalMenuModule\n ]\n})\nexport class BiitTableModule {\n}\n","export class BiitTableData<T> {\n data: T[];\n totalItems: number;\n\n constructor(data: T[], totalItems: number) {\n this.data = data;\n this.totalItems = totalItems;\n }\n}\n","export class GenericFilter {\n public static filter<T>(object: T, value: string, includes: boolean = false, caseSensitive: boolean = false, params?: string[]): boolean {\n const formattedValue: string = caseSensitive ? value : value?.toLowerCase();\n\n for (let param in object) {\n if (params && !params.includes(param)) continue\n let paramValue: unknown = object[param];\n if (paramValue instanceof Array) {\n if ((paramValue as Array<any>).some((item: any) => {\n return GenericFilter.filter(item, value, includes, caseSensitive);\n })) {\n return true;\n }\n continue;\n }\n if (typeof paramValue === 'string' || typeof paramValue === 'number' || typeof paramValue === 'boolean') {\n let stringValue: string = paramValue.toString();\n if (!caseSensitive) {\n stringValue = stringValue.toLowerCase();\n }\n if (includes) {\n if (stringValue.includes(formattedValue)) {\n return true;\n }\n } else {\n if (stringValue === formattedValue) {\n return true;\n }\n }\n continue;\n }\n if (Object.keys(object).length === 0) {\n if(object[param] === value) {\n return true;\n }\n } else {\n if (GenericFilter.filter(paramValue, value, includes, caseSensitive)) {\n return true;\n }\n }\n }\n return false;\n }\n}\n","import {BiitTableColumn, BiitTableColumnFormat} from \"../biit-table/models/biit-table-column\";\nimport {BiitTableSorting} from \"../biit-table/models/biit-table-sorting\";\n\nexport class GenericSort {\n public static sort<T>(data: T[], sorting: BiitTableSorting, columns: BiitTableColumn[]): T[] {\n if (sorting) {\n return data.sort((a, b) => {\n switch (columns.find(i => i.name == sorting.name).format) {\n case BiitTableColumnFormat.BOOLEAN:\n if (a[sorting.name] == b[sorting.name])\n return 0;\n if (sorting.order == 'asc') {\n return a[sorting.name] ? -1 : 1;\n } else {\n return a[sorting.name] ? 1 : -1;\n }\n case BiitTableColumnFormat.DATE:\n if (new Date(a[sorting.name]).getTime() == new Date(b[sorting.name]).getTime())\n return 0;\n if (sorting.order == 'asc') {\n return (new Date(a[sorting.name]).getTime() > new Date(b[sorting.name]).getTime()) ? 1 : -1;\n } else {\n return (new Date(a[sorting.name]).getTime() > new Date(b[sorting.name]).getTime()) ? -1 : 1;\n }\n default:\n if (a[sorting.name] == b[sorting.name])\n return 0;\n if (sorting.order == 'asc') {\n return a[sorting.name] > b[sorting.name] ? 1 : -1;\n } else {\n return a[sorting.name] > b[sorting.name] ? -1 : 1;\n }\n }\n });\n } else {\n return data;\n }\n }\n}\n","export class Page {\n totalElements: number = 0;\n pageNumber: number = 0;\n pageSize: number = 0;\n\n constructor(pageNumber: number, pageSize: number, totalElements?: number) {\n this.pageNumber = pageNumber ?? 0;\n this.pageSize = pageSize ?? 0;\n this.totalElements = totalElements ?? 0;\n }\n}\n","import {Component} from '@angular/core';\nimport {DataTablePagerComponent} from \"@siemens/ngx-datatable\";\nimport {provideTranslocoScope} from \"@ngneat/transloco\";\nimport {BiitIconService} from \"@biit-solutions/wizardry-theme/icon\";\nimport {completeIconSet} from '@biit-solutions/biit-icons-collection';\n\n@Component({\n selector: 'biit-datatable-pager',\n templateUrl: './biit-datatable-pager.component.html',\n styleUrls: ['./biit-datatable-pager.component.scss'],\n providers: [provideTranslocoScope({scope:'wizardry-theme/table', alias:'t'})]\n})\nexport class BiitDatatablePagerComponent extends DataTablePagerComponent {\n\n constructor(biitIconService: BiitIconService) {\n super();\n biitIconService.registerIcons(completeIconSet);\n }\n\n enforceMinMax(el) {\n if (el.value != \"\") {\n if (parseInt(el.value) < parseInt(el.min)) {\n el.value = el.min;\n }\n if (parseInt(el.value) > parseInt(el.max)) {\n el.value = el.max;\n }\n }\n }\n\n log(event) {\n }\n}\n","<ng-container *transloco=\"let t\">\n <div id=\"page-selector\" class=\"page-selector\">\n <button biit-icon id=\"arrow-first\"\n icon='right_double_arrow'\n class=\"horizontal-flip\"\n (click)=\"selectPage(1)\"\n [disabled]=\"!canPrevious()\"\n tooltip=\"{{t('t.first-page')}}\"\n ></button>\n <button biit-icon id=\"arrow-previous\"\n icon='right_arrow'\n class=\"compact horizontal-flip\"\n (click)=\"prevPage()\"\n [disabled]=\"!canPrevious()\"\n tooltip=\"{{t('t.previous-page')}}\"\n ></button>\n <div class=\"page-display\" (click)=\"input.focus()\">\n <input id=\"current-page\" #input\n [ngModel]=\"page\"\n readonly\n (keydown.arrowUp)=\"nextPage(); $event.stopPropagation(); $event.preventDefault();\"\n (keydown.arrowRight)=\"nextPage(); $event.stopPropagation(); $event.preventDefault();\"\n (keydown.arrowDown)=\"prevPage(); $event.stopPropagation(); $event.preventDefault();\"\n (keydown.arrowLeft)=\"prevPage(); $event.stopPropagation(); $event.preventDefault();\"\n type=\"number\"\n [min]=\"1\"\n [max]=\"totalPages\"\n style=\"width: 2.5rem\">\n <span #label id=\"total-pages\">/{{ totalPages }}</span>\n </div>\n <button biit-icon id=\"arrow-next\"\n icon='right_arrow'\n class=\"compact\"\n (click)=\"nextPage()\"\n [disabled]=\"!canNext()\"\n tooltip=\"{{t('t.next-page')}}\"\n ></button>\n <button biit-icon id=\"arrow-last\"\n icon='right_double_arrow'\n (click)=\"selectPage(totalPages)\"\n [disabled]=\"!canNext()\"\n tooltip=\"{{t('t.last-page')}}\"\n ></button>\n </div>\n</ng-container>\n","import {Component, ContentChild, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild} from '@angular/core';\nimport {DatatableColumn} from \"./models/datatable-column\";\nimport {ColumnMode, DatatableComponent, SelectionType} from \"@siemens/ngx-datatable\";\nimport {completeIconSet} from '@biit-solutions/biit-icons-collection';\nimport {BiitIconService} from \"@biit-solutions/wizardry-theme/icon\";\nimport {BiitMultiselectType} from \"@biit-solutions/wizardry-theme/inputs\";\nimport {coerceBooleanProperty} from \"@angular/cdk/coercion\";\nimport {GenericFilter} from \"../utils/generic-filter\";\nimport {provideTranslocoScope} from \"@ngneat/transloco\";\nimport {Page} from \"./models/page\";\n\n@Component({\n selector: 'biit-datatable',\n templateUrl: './biit-datatable.component.html',\n styleUrls: ['./biit-datatable.component.scss'],\n providers: [provideTranslocoScope({scope: 'wizardry-theme/table', alias: 't'})]\n})\nexport class BiitDatatableComponent<T> implements OnInit {\n @ViewChild('table') table: DatatableComponent;\n\n _data: T[] = [];\n allData: T[] = [];\n\n @Input() set data(data: T[]) {\n this._data = data ?? [];\n this.allData = data ?? [];\n this.selected = [];\n }\n\n get data(): T[] {\n return this._data;\n }\n\n _columns: DatatableColumn[] = [];\n allColumns: DatatableColumn[] = [];\n\n @Input() set columns(columns: DatatableColumn[]) {\n this.allColumns = columns ?? [];\n this._columns = columns.filter(c => c.visible);\n }\n\n get columns(): DatatableColumn[] {\n return this._columns;\n }\n\n selected: T[] = [];\n\n public get selectedRows(): T[] {\n return this.selected;\n }\n\n @Input() pageSize?: number;\n @Input() pageSizeList: number[] = [];\n @Input() loading = false;\n @Input() selectable?: any;\n @Input() singleSelection?: any;\n @Input() scrollbarH?: any;\n @Input() hideHeader?: any;\n @Input() hideFooter?: any;\n @Input() serverSide?: any;\n @Input() page?: Page;\n search: string = \"\";\n\n @Output() onSelection: EventEmitter<T[]> = new EventEmitter<T[]>();\n @Output() onPageChange: EventEmitter<Page> = new EventEmitter<Page>();\n\n @ContentChild('actions') actionsTpl!: TemplateRef<any>;\n\n protected readonly ColumnMode = ColumnMode;\n protected readonly SelectionType = SelectionType;\n protected readonly BiitMultiselectType = BiitMultiselectType;\n private findTimeout: NodeJS.Timeout;\n\n constructor(biitIconService: BiitIconService) {\n biitIconService.registerIcons(completeIconSet);\n }\n\n ngOnInit() {\n this.selectable = coerceBooleanProperty(this.selectable);\n this.singleSelection = coerceBooleanProperty(this.singleSelection);\n this.scrollbarH = coerceBooleanProperty(this.scrollbarH);\n this.hideHeader = coerceBooleanProperty(this.hideHeader);\n this.hideFooter = coerceBooleanProperty(this.hideFooter);\n this.serverSide = coerceBooleanProperty(this.serverSide);\n }\n\n onSelect({selected}) {\n this.selected.splice(0, this.selected.length);\n this.selected.push(...selected);\n this.onSelection.emit(this.selected);\n }\n\n onActivate(event: { type: 'keydown' | 'click' | 'dblclick', event, row, column, value, cellElement, rowElement }) {\n if (event.type == 'click' && event.column.name !== 'chkbox') {\n this.selected = [event.row];\n this.onSelection.emit(this.selected);\n }\n }\n\n onFilter(value: string, force: boolean = false) {\n if (this.findTimeout) {\n clearTimeout(this.findTimeout);\n }\n this.findTimeout = setTimeout(() => {\n this.search = value;\n const val = value.toLowerCase();\n\n // filter our data\n const temp: T[] = this.allData.filter(item => GenericFilter.filter(item, val, true));\n\n // update the rows\n this._data = temp;\n // Whenever the filter changes, always go back to the first page\n this.table.offset = 0;\n clearTimeout(this.findTimeout);\n this.findTimeout = null;\n }, force ? 0 : 500);\n }\n\n onFooterPageChange(event: any) {\n const page = new Page(event.offset, event.pageSize, event.count);\n this.onPageChange.emit(page);\n }\n\n setColumnVisibility(columns: DatatableColumn[]) {\n this._columns = this.allColumns.filter(c => columns.includes(c))\n }\n}\n","<div id=\"biit-table\" class=\"table-canvas\" *transloco=\"let t\">\n <div class=\"top\" *ngIf=\"!hideHeader\">\n <div id=\"menu\" class=\"action-bar\">\n <biit-vertical-menu *ngIf=\"actionsTpl\" class=\"vertical-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </biit-vertical-menu>\n <div *ngIf=\"actionsTpl\" class=\"horizontal-menu default-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </div>\n <div class=\"default-menu\" *ngIf=\"!actionsTpl\">\n <ng-content></ng-content>\n </div>\n </div>\n <div id=\"options\" class=\"options\">\n <biit-input-text id=\"search\" #searchInput\n [ngModel]=\"search\"\n (onActionPerformed)=\"\n onFilter($event, true);\n \"\n (ngModelChange)=\"onFilter($event)\"\n (focusout)=\"searchInput.value = search\"\n icon=\"search\"\n [placeholder]=\"t('t.search')\"\n ></biit-input-text>\n <biit-multiselect id=\"column-selector\" [ngModel]=\"_columns\"\n (ngModelChange)=\"setColumnVisibility($event)\"\n [data]=\"allColumns\"\n label=\"name\"\n value=\"visible\"\n [type]=\"BiitMultiselectType.ICON\"\n [title]=\"t('t.column-selector')\"\n [compact]=\"true\"\n ></biit-multiselect>\n </div>\n </div>\n <div id=\"content\" class=\"table\">\n <biit-progress-bar *ngIf=\"loading\"></biit-progress-bar>\n <ng-container *ngIf=\"!serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [limit]=\"pageSize\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer id=\"datatable-footer\">\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\">\n <span>{{ t('t.total') }}: </span><span id=\"total-number-of-items\">{{rowCount}}</span>\n <span *ngIf=\"selectedCount\"> | {{ t('t.selected') }}: </span><span *ngIf=\"selectedCount\" id=\"number-of-items-selected\">{{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n\n <ng-container *ngIf=\"serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n [externalPaging]=\"true\"\n [count]=\"page.totalElements\"\n [offset]=\"page.pageNumber\"\n [limit]=\"page.pageSize\"\n (page)=\"onFooterPageChange($event)\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer>\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\" id=\"total-elements\">\n <span>{{ t('t.total') }}: {{rowCount}}</span>\n <span *ngIf=\"selectedCount\"> | {{ t('t.selected') }}: {{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BiitDatatablePagerComponent} from \"./biit-datatable-pager.component\";\nimport {FormsModule} from \"@angular/forms\";\nimport {BiitIconModule} from '@biit-solutions/wizardry-theme/icon';\nimport {BiitIconButtonModule} from '@biit-solutions/wizardry-theme/button';\nimport {TranslocoRootModule} from '@biit-solutions/wizardry-theme/i18n';\nimport {TRANSLOCO_SCOPE} from '@ngneat/transloco';\nimport {BiitTooltipModule} from '@biit-solutions/wizardry-theme/info';\n\n\n@NgModule({\n declarations: [BiitDatatablePagerComponent],\n exports: [BiitDatatablePagerComponent],\n imports: [\n CommonModule,\n FormsModule,\n BiitIconModule,\n BiitIconButtonModule,\n TranslocoRootModule,\n BiitTooltipModule\n ]\n})\nexport class BiitDatatablePagerModule {\n}\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core';\nimport {BiitDatatableComponent} from \"./biit-datatable.component\";\nimport {BiitCheckboxModule, BiitInputTextModule, BiitMultiselectModule} from '@biit-solutions/wizardry-theme/inputs';\nimport {FormsModule} from '@angular/forms';\nimport {NgxDatatableModule} from \"@siemens/ngx-datatable\";\nimport {NgForOf, NgIf, NgTemplateOutlet} from \"@angular/common\";\nimport {BiitDatatablePagerModule} from \"../biit-datatable-pager/biit-datatable-pager.module\";\nimport {BiitProgressBarModule} from \"@biit-solutions/wizardry-theme/info\";\nimport {TranslocoModule} from \"@ngneat/transloco\";\nimport {BiitVerticalMenuModule} from \"@biit-solutions/wizardry-theme/navigation\";\n\n@NgModule({\n declarations: [\n BiitDatatableComponent\n ],\n exports: [\n BiitDatatableComponent\n ],\n imports: [\n FormsModule,\n NgTemplateOutlet,\n BiitCheckboxModule,\n BiitDatatablePagerModule,\n NgForOf,\n NgIf,\n NgxDatatableModule,\n BiitProgressBarModule,\n BiitMultiselectModule,\n TranslocoModule,\n BiitInputTextModule,\n BiitVerticalMenuModule\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class BiitDatatableModule {\n}\n","import {TableColumn, ValueGetter} from \"@siemens/ngx-datatable\";\nimport {PipeTransform, TemplateRef} from \"@angular/core\";\n\nexport class DatatableColumn implements TableColumn {\n /**\n * Internal unique id\n *\n * @memberOf TableColumn\n */\n $$id?: string;\n\n /**\n * Internal for column width distributions\n *\n * @memberOf TableColumn\n */\n $$oldWidth?: number;\n\n /**\n * Internal for setColumnDefaults\n *\n * @memberOf TableColumn\n */\n $$valueGetter?: ValueGetter;\n\n /**\n * Determines if column is checkbox\n *\n * @memberOf TableColumn\n */\n checkboxable?: boolean;\n\n /**\n * Determines if the column is frozen to the left\n *\n * @memberOf TableColumn\n */\n frozenLeft?: boolean;\n\n /**\n * Determines if the column is frozen to the right\n *\n * @memberOf TableColumn\n */\n frozenRight?: boolean;\n\n /**\n * The grow factor relative to other columns. Same as the flex-grow\n * API from http =//www.w3.org/TR/css3-flexbox/. Basically;\n * take any available extra width and distribute it proportionally\n * according to all columns' flexGrow values.\n *\n * @memberOf TableColumn\n */\n flexGrow?: number;\n\n /**\n * Min width of the column\n *\n * @memberOf TableColumn\n */\n minWidth?: number;\n\n /**\n * Max width of the column\n *\n * @memberOf TableColumn\n */\n maxWidth?: number;\n\n /**\n * The default width of the column, in pixels\n *\n * @memberOf TableColumn\n */\n width?: number;\n\n /**\n * Can the column be resized\n *\n * @memberOf TableColumn\n */\n resizeable?: boolean;\n\n /**\n * Custom sort comparator\n *\n * @memberOf TableColumn\n */\n comparator?: any;\n\n /**\n * Custom pipe transforms\n *\n * @memberOf TableColumn\n */\n pipe?: PipeTransform;\n\n /**\n * Can the column be sorted\n *\n * @memberOf TableColumn\n */\n sortable?: boolean;\n\n /**\n * Can the column be re-arranged by dragging\n *\n * @memberOf TableColumn\n */\n draggable?: boolean;\n\n /**\n * Whether the column can automatically resize to fill space in the table.\n *\n * @memberOf TableColumn\n */\n canAutoResize?: boolean;\n\n /**\n * Column name or label\n *\n * @memberOf TableColumn\n */\n name?: string;\n\n /**\n * Property to bind to the row. Example:\n *\n * `someField` or `some.field.nested`, 0 (numeric)\n *\n * If left blank, will use the name as camel case conversion\n *\n * @memberOf TableColumn\n */\n prop?: string | number;\n\n /**\n * Cell template ref\n *\n * @memberOf TableColumn\n */\n cellTemplate?: any;\n\n /**\n * Ghost Cell template ref\n *\n * @memberOf TableColumn\n */\n ghostCellTemplate?: any;\n\n /**\n * Header template ref\n *\n * @memberOf TableColumn\n */\n headerTemplate?: any;\n\n /**\n * Tree toggle template ref\n *\n * @memberOf TableColumn\n */\n treeToggleTemplate?: any;\n\n /**\n * CSS Classes for the cell\n *\n *\n * @memberOf TableColumn\n */\n cellClass?: string | ((data: any) => string | any);\n\n /**\n * CSS classes for the header\n *\n *\n * @memberOf TableColumn\n */\n headerClass?: string | ((data: any) => string | any);\n\n /**\n * Header checkbox enabled\n *\n * @memberOf TableColumn\n */\n headerCheckboxable?: boolean;\n\n /**\n * Is tree displayed on this column\n *\n * @memberOf TableColumn\n */\n isTreeColumn?: boolean;\n\n /**\n * Width of the tree level indent\n *\n * @memberOf TableColumn\n */\n treeLevelIndent?: number;\n\n /**\n * Summary function\n *\n * @memberOf TableColumn\n */\n summaryFunc?: (cells: any[]) => any;\n\n /**\n * Summary cell template ref\n *\n * @memberOf TableColumn\n */\n summaryTemplate?: any;\n\n /**\n * Sets visibility of the column\n */\n visible?: boolean;\n\n constructor(name: string, prop: string|number, visible?: boolean, width?: number, sortable?: boolean, pipe?: PipeTransform, cellTemplate?: TemplateRef<any>, cellClass?: string|((data: any) => string | any), comparator?: Function) {\n this.name = name;\n this.prop = prop;\n this.visible = visible ?? true;\n this.width = width ?? undefined;\n this.minWidth = width ?? undefined;\n this.sortable = sortable ?? true;\n this.pipe = pipe ?? undefined;\n this.cellTemplate = cellTemplate ?? undefined;\n this.cellClass = cellClass ?? undefined;\n this.comparator = comparator ?? undefined;\n }\n}\n","/*\n * Public API Surface of wizardry-theme/button\n */\n\nexport * from './biit-table/biit-table.component';\nexport * from './biit-table/biit-table.module';\nexport * from './biit-table/models/biit-table-data';\nexport * from './biit-table/models/biit-table-column';\nexport * from './biit-table/models/biit-table-response';\nexport * from './biit-table/models/biit-table-action-response';\nexport * from './biit-table/models/biit-table-sorting';\nexport * from './biit-paginator/biit-paginator.component';\nexport * from './biit-paginator/biit-paginator.module';\nexport * from './biit-paginator/models/biit-paginator-options';\nexport * from './utils/generic-filter';\nexport * from './utils/generic-sort';\n\n\nexport * from './biit-datatable/biit-datatable.component';\nexport * from './biit-datatable/biit-datatable.module';\nexport * from './biit-datatable/models/datatable-column';\nexport * from './biit-datatable/models/page';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","i6","i3.BiitPaginatorComponent","i5","i7","i11.VisibleColumnsPipe","i12.ColumnDataPipe","i1","i5.BiitDatatablePagerComponent","i8"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"biit-solutions-wizardry-theme-table.mjs","sources":["../../../projects/wizardry-theme/table/src/biit-paginator/models/biit-paginator-options.ts","../../../projects/wizardry-theme/table/src/biit-table/models/biit-table-column.ts","../../../projects/wizardry-theme/table/src/biit-table/models/column-resize-handler.ts","../../../projects/wizardry-theme/table/src/biit-table/models/biit-table-response.ts","../../../projects/wizardry-theme/table/src/biit-table/models/biit-table-sorting.ts","../../../projects/wizardry-theme/table/src/biit-table/models/biit-table-action-response.ts","../../../projects/wizardry-theme/table/src/biit-paginator/biit-paginator.component.ts","../../../projects/wizardry-theme/table/src/biit-paginator/biit-paginator.component.html","../../../projects/wizardry-theme/table/src/biit-table/pipes/visible-columns-pipe.ts","../../../projects/wizardry-theme/table/src/biit-table/pipes/column-data-pipe.ts","../../../projects/wizardry-theme/table/src/biit-table/biit-table.component.ts","../../../projects/wizardry-theme/table/src/biit-table/biit-table.component.html","../../../projects/wizardry-theme/table/src/biit-paginator/biit-paginator.module.ts","../../../projects/wizardry-theme/table/src/biit-table/biit-table.module.ts","../../../projects/wizardry-theme/table/src/biit-table/models/biit-table-data.ts","../../../projects/wizardry-theme/table/src/utils/generic-filter.ts","../../../projects/wizardry-theme/table/src/utils/generic-sort.ts","../../../projects/wizardry-theme/table/src/biit-datatable/models/page.ts","../../../projects/wizardry-theme/table/src/biit-datatable-pager/biit-datatable-pager.component.ts","../../../projects/wizardry-theme/table/src/biit-datatable-pager/biit-datatable-pager.component.html","../../../projects/wizardry-theme/table/src/biit-datatable/biit-datatable.component.ts","../../../projects/wizardry-theme/table/src/biit-datatable/biit-datatable.component.html","../../../projects/wizardry-theme/table/src/biit-datatable-pager/biit-datatable-pager.module.ts","../../../projects/wizardry-theme/table/src/biit-datatable/biit-datatable.module.ts","../../../projects/wizardry-theme/table/src/biit-datatable/models/datatable-column.ts","../../../projects/wizardry-theme/table/src/public-api.ts","../../../projects/wizardry-theme/table/src/biit-solutions-wizardry-theme-table.ts"],"sourcesContent":["export class BiitPaginatorOptions {\n currentPage: number;\n pageSize: number;\n pageSizeOptions: number[];\n totalItems: number;\n hidePageSize: boolean;\n hideFirstLastButtons: boolean;\n\n constructor(currentPage: number,\n pageSize: number,\n pageSizeOptions: number[],\n totalItems?: number,\n hidePageSize?: boolean,\n hideFirstLastButtons?: boolean) {\n this.currentPage = currentPage;\n this.pageSize = pageSize;\n this.pageSizeOptions = pageSizeOptions;\n this.totalItems = totalItems;\n this.hidePageSize = hidePageSize || totalItems == undefined;\n this.hideFirstLastButtons = hideFirstLastButtons;\n }\n}\n","export class BiitTableColumn {\n name: string;\n label: string;\n width: number;\n format: BiitTableColumnFormat;\n visible: boolean;\n\n constructor(name: string,\n label: string,\n width?: number,\n format?: BiitTableColumnFormat,\n visible?: boolean) {\n this.name = name;\n this.label = label;\n this.width = width ? width : 0;\n this.format = format ? format : BiitTableColumnFormat.DEFAULT;\n this.visible = visible == undefined ? true : visible;\n }\n}\n\nexport enum BiitTableColumnFormat {\n DEFAULT = 'default',\n BOOLEAN = 'boolean',\n DATE = 'date',\n DATETIME = 'datetime',\n BUTTON = 'button',\n ICON_BUTTON = 'icon_button',\n ICON = 'icon',\n CUSTOM_HTML = \"custom_html\"\n}\n","export class ColumnResizeHandler {\n start: Element;\n pressed: boolean;\n startX: number;\n startWidth: number;\n minWidth: number;\n}\n","import {BiitTableSorting} from './biit-table-sorting';\n\nexport class BiitTableResponse {\n currentPage: number;\n pageSize: number;\n search: string;\n sorting: BiitTableSorting;\n\n constructor(currentPage: number, pageSize: number, search: string, sorting: BiitTableSorting) {\n this.currentPage = currentPage;\n this.pageSize = pageSize;\n this.search = search;\n this.sorting = sorting;\n }\n}\n","export class BiitTableSorting {\n name: string;\n order: BiitTableSortingOrder;\n\n constructor(name: string,\n order: BiitTableSortingOrder) {\n this.name = name;\n this.order = order;\n }\n}\n\nexport enum BiitTableSortingOrder {\n ASC = 'asc',\n DESC = 'desc'\n}\n","export class BiitTableActionResponse {\n item: any;\n column: string;\n\n constructor(item: any, column: string) {\n this.item = item;\n this.column = column;\n }\n}\n","import {\n Component,\n ElementRef,\n forwardRef,\n ViewChild\n} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {BiitPaginatorOptions} from './models/biit-paginator-options';\n\n@Component({\n selector: 'biit-paginator',\n templateUrl: './biit-paginator.component.html',\n styleUrls: ['./biit-paginator.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BiitPaginatorComponent),\n multi: true\n }\n ],\n host: {\n '(document:pointerdown)': 'handleMouseEvents($event)'\n }\n})\nexport class BiitPaginatorComponent {\n\n protected paginator: BiitPaginatorOptions;\n protected totalPages: number;\n protected dropdownOpen = false;\n\n @ViewChild('pageSelector') pageSelector: ElementRef;\n @ViewChild('pageSizeBtn') selectorBtn: ElementRef;\n @ViewChild('pageSizeList') selectorList: ElementRef;\n @ViewChild('pageInput') pageInput: ElementRef;\n @ViewChild('totalPagesLabel') totalPagesLabel: ElementRef;\n\n constructor() { }\n\n onChange = (value: any) => {};\n onTouched = () => {}\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(value: any): void {\n if (value) {\n this.paginator = value;\n this.calculateTotalPages();\n }\n }\n\n onModelChange() {\n this.closeDropdown();\n this.onChange(this.paginator);\n }\n\n handleMouseEvents($event: PointerEvent) {\n if (!this.selectorList.nativeElement?.contains($event.target) &&\n !this.selectorBtn.nativeElement?.contains($event.target) &&\n this.dropdownOpen) {\n this.closeDropdown();\n }\n }\n\n handleKeyboardEvents($event: KeyboardEvent) {\n switch ($event.key) {\n case 'ArrowUp':\n if (document.activeElement === this.selectorBtn.nativeElement) {\n if (this.paginator.pageSizeOptions.findIndex(i => i == this.paginator.pageSize) > 0) {\n this.paginator.pageSize = this.paginator.pageSizeOptions\n [this.paginator.pageSizeOptions.findIndex(i => i == this.paginator.pageSize) - 1];\n this.paginator.currentPage = 1;\n this.onChange(this.paginator);\n }\n } else {\n (document.activeElement.previousElementSibling as HTMLElement)?.focus();\n }\n $event.preventDefault();\n break;\n\n case 'ArrowDown':\n if (document.activeElement === this.selectorBtn.nativeElement) {\n if (this.paginator.pageSizeOptions.findIndex(i => i == this.paginator.pageSize) < this.paginator.pageSizeOptions.length -1) {\n this.paginator.pageSize = this.paginator.pageSizeOptions\n [this.paginator.pageSizeOptions.findIndex(i => i == this.paginator.pageSize) + 1];\n this.paginator.currentPage = 1;\n this.onChange(this.paginator);\n }\n } else {\n (document.activeElement.nextElementSibling as HTMLElement)?.focus();\n }\n $event.preventDefault();\n break;\n\n case 'Escape':\n this.closeDropdown();\n break;\n\n default:\n break;\n }\n $event.stopPropagation();\n }\n\n private setTooltipComponentProperties() {\n let dropdown = this.selectorList.nativeElement;\n let button = this.selectorBtn.nativeElement;\n\n dropdown.style.display = 'block';\n\n // Checking available screen space\n const fitsBottom = bottomCheck();\n const fitsRight = rightCheck();\n const fitsLeft = leftCheck();\n\n if (!fitsRight && fitsLeft) {\n dropdown.style.marginLeft = button.offsetWidth - dropdown.offsetWidth + 'px';\n } else {\n dropdown.style.marginLeft = null;\n }\n\n dropdown.classList.remove('onwards');\n dropdown.classList.remove('downwards');\n\n if (!fitsBottom) {\n dropdown.classList.add('onwards');\n dropdown.style.marginTop = -(dropdown.offsetHeight + button.offsetHeight) + 'px';\n } else {\n dropdown.classList.add('downwards');\n dropdown.style.marginTop = null;\n }\n\n // Support inner functions\n function bottomCheck(): boolean {\n return button.getBoundingClientRect().bottom + dropdown.offsetHeight <= window.innerHeight ||\n button.getBoundingClientRect().top - dropdown.offsetHeight <= 0;\n }\n\n function rightCheck(): boolean {\n return button.getBoundingClientRect().right + dropdown.offsetWidth <= window.innerWidth;\n }\n\n function leftCheck(): boolean {\n return button.getBoundingClientRect().right - dropdown.offsetWidth >= 0;\n }\n }\n\n openDropdown() {\n this.setTooltipComponentProperties();\n\n // Setting a timeout because it doesn't load upwards/downwards css classes on execution time\n setTimeout(() => {\n this.dropdownOpen = true;\n this.selectorList.nativeElement.setAttribute('aria-expanded', \"true\");\n }, 100);\n }\n\n closeDropdown() {\n this.dropdownOpen = false;\n this.selectorList.nativeElement.setAttribute('aria-expanded', \"false\");\n }\n\n calculateTotalPages() {\n if (!this.paginator?.hidePageSize && !isNaN(this.paginator?.totalItems)) {\n const tempTotalPages = this.paginator.totalItems ?\n this.paginator.totalItems / this.paginator.pageSize : 0;\n\n if (Number.isInteger(tempTotalPages) && tempTotalPages > 0) {\n this.totalPages = tempTotalPages;\n } else {\n this.totalPages = Math.trunc(tempTotalPages) + 1;\n }\n\n if (this.totalPagesLabel?.nativeElement) {\n this.totalPagesLabel.nativeElement.innerText = '/' + this.totalPages;\n }\n\n if (this.pageInput?.nativeElement) {\n this.pageInput.nativeElement.style.width =\n this.totalPagesLabel.nativeElement.offsetWidth * 2\n + 2.1 * parseFloat(getComputedStyle(document.documentElement).fontSize)\n + 'px';\n }\n }\n\n this.refreshCenterStyle();\n }\n\n setInputValue(event: Event) {\n let selectedPage = parseFloat((event.target as HTMLInputElement).value);\n if (selectedPage > this.totalPages) {\n (event.target as HTMLInputElement).value = this.totalPages.toString();\n selectedPage = this.totalPages;\n }\n this.paginator.currentPage = selectedPage;\n }\n\n resetInputValue(event: Event) {\n (event.target as HTMLInputElement).value = this.paginator.currentPage.toString();\n }\n\n refreshCenterStyle() {\n const width = this.pageSelector.nativeElement.offsetWidth;\n this.pageSelector.nativeElement.style.setProperty(\"--center-fix\", -(width/2) + 'px');\n }\n}\n","<div style=\"display: flex; justify-content: space-between\" *transloco=\"let t\">\n <!-- PAGE SELECTOR -->\n <div #pageSelector class=\"page-selector\" id=\"page-selector\">\n <button biit-icon id=\"arrow-first\"\n icon='right_double_arrow'\n class=\"horizontal-flip\"\n (click)=\"paginator.currentPage = 1; onModelChange();\"\n [disabled]=\"paginator?.currentPage <= 1\"\n tooltip=\"{{t('table.first-page')}}\"\n ></button>\n <button biit-icon id=\"arrow-previous\"\n icon='right_arrow'\n class=\"compact horizontal-flip\"\n (click)=\"paginator.currentPage = paginator.currentPage - 1; onModelChange();\"\n [disabled]=\"paginator?.currentPage <= 1\"\n tooltip=\"{{t('table.previous-page')}}\"\n ></button>\n <div class=\"page-display\" style=\"position: relative\">\n <input #pageInput id=\"current-page\"\n [ngModel]=\"paginator?.currentPage\"\n type=\"number\"\n [min]=\"1\"\n [max]=\"totalPages\"\n (keydown.enter)=\"setInputValue($event); onModelChange()\"\n (focusout)=\"resetInputValue($event)\"\n class=\"page-input\"/>\n <a #totalPagesLabel class=\"total-pages\">/</a>\n <div class=\"bottom-bar\"></div>\n </div>\n <button biit-icon id=\"arrow-next\"\n icon='right_arrow'\n class=\"compact\"\n (click)=\"paginator.currentPage = paginator.currentPage + 1; onModelChange();\"\n [disabled]=\"paginator?.currentPage >= totalPages\"\n tooltip=\"{{t('table.next-page')}}\"\n ></button>\n <button biit-icon id=\"arrow-last\"\n icon='right_double_arrow'\n (click)=\"paginator.currentPage = totalPages; onModelChange();\"\n [disabled]=\"paginator?.currentPage >= totalPages\"\n tooltip=\"{{t('table.last-page')}}\"\n ></button>\n </div>\n\n <!-- PAGE SIZE SELECTOR -->\n <div class=\"page-size-selector\">\n <a\n [tooltip]=\"t('table.rows-per-page')\">{{ t('table.rows-per-page') }}</a>\n <button #pageSizeBtn\n (click)=\"!dropdownOpen ? openDropdown() : closeDropdown()\"\n (keydown)=\"handleKeyboardEvents($event)\">\n <a>{{ paginator?.pageSize }}</a>\n <biit-icon class=\"icon\"\n [name]=\"'right_arrow'\"\n [pathStyle]=\"{fill: dropdownOpen ? 'var(--main-color)' : 'var(--component-color)'}\"\n [class.rotate]=\"dropdownOpen\"\n ></biit-icon>\n </button>\n <div class=\"dropdown\" [style.overflow]=\"dropdownOpen ? 'visible' : 'hidden'\">\n <div #pageSizeList\n class=\"list\"\n [class.dropdown-open]=\"dropdownOpen\">\n <button *ngFor=\"let pageSize of paginator?.pageSizeOptions; index as i\"\n (click)=\"paginator.currentPage = 1; paginator.pageSize = pageSize; onModelChange()\"\n (keydown)=\"handleKeyboardEvents($event)\"\n [class.selected]=\"paginator.pageSize === pageSize\"\n class=\"item\"\n role=\"option\"\n aria-selected=\"false\"\n [id]=\"i\"\n [tabindex]=\"!dropdownOpen? -1 : 0\"\n [disabled]=\"!dropdownOpen\"\n >\n {{ pageSize }}\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {BiitTableColumn} from '../models/biit-table-column';\n\n@Pipe({\n name: 'visibleColumns'\n})\n\nexport class VisibleColumnsPipe implements PipeTransform {\n transform(value: BiitTableColumn[]): any {\n return value.filter(column => column.visible);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'columnData'\n})\n\nexport class ColumnDataPipe implements PipeTransform {\n transform(value: any, columnName: string): any {\n const dataTree = columnName.split('.');\n let data = value;\n dataTree.forEach(variable => {\n data = data[variable];\n })\n return data;\n }\n}\n","import {\n AfterViewChecked,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Renderer2,\n TemplateRef\n} from '@angular/core';\nimport {BiitPaginatorOptions} from '../biit-paginator/models/biit-paginator-options';\nimport {BiitTableColumn, BiitTableColumnFormat} from './models/biit-table-column';\nimport {ColumnResizeHandler} from './models/column-resize-handler';\nimport {BiitTableResponse} from './models/biit-table-response';\nimport {BiitTableData} from './models/biit-table-data';\nimport {BiitTableSorting, BiitTableSortingOrder} from './models/biit-table-sorting';\nimport {BiitMultiselectType} from '@biit-solutions/wizardry-theme/inputs';\nimport {TRANSLOCO_SCOPE} from '@ngneat/transloco';\nimport {BiitTableActionResponse} from \"./models/biit-table-action-response\";\n\n@Directive({\n selector: '[selectable]'\n})\nexport class BiitTableSelectableDirective {\n constructor(private parent: BiitTableComponent) {\n parent.isSelectable = true;\n }\n}\n\n@Directive({\n selector: '[selectableSingle]'\n})\nexport class BiitTableSelectableSingleDirective {\n constructor(private parent: BiitTableComponent) {\n parent.isSelectableSingle = true;\n }\n}\n\n@Directive({\n selector: '[sortable]'\n})\nexport class BiitTableSortableDirective {\n constructor(private parent: BiitTableComponent) {\n parent.isSortable = true;\n }\n}\n\n@Directive({\n selector: '[hideHeader]'\n})\nexport class BiitTableHeaderlessDirective {\n constructor(private parent: BiitTableComponent) {\n parent.hideHeader = true;\n }\n}\n\n@Directive({\n selector: '[hideFooter]'\n})\nexport class BiitTableFooterlessDirective {\n constructor(private parent: BiitTableComponent) {\n parent.hideFooter = true;\n }\n}\n\n@Component({\n selector: 'biit-table',\n templateUrl: './biit-table.component.html',\n styleUrls: ['./biit-table.component.scss'],\n providers: [{\n provide: TRANSLOCO_SCOPE,\n useValue: {scope: 'wizardry-theme/table', alias: \"table\"}\n }]\n})\nexport class BiitTableComponent implements OnInit, AfterViewChecked {\n\n @Input('metadata') set _data(data: BiitTableData<any>) {\n if (data) {\n this.data = data;\n this.selectedRows.clear();\n if (this.paginator) {\n this.paginator = new BiitPaginatorOptions(this.paginator.currentPage, this.paginator.pageSize, this.pageSizes, data.totalItems);\n }\n }\n }\n\n @Input('loading') set _loading(loading: boolean) {\n if (loading) {\n this.loading = loading;\n this.setLoadingBar();\n } else {\n this.loading = false;\n }\n }\n\n @Input() columns: BiitTableColumn[] = [];\n @Input() pageSizes: number[] = [];\n @Input() defaultPageSize: number;\n\n @ContentChild('actions') actionsTpl!: TemplateRef<any>;\n\n isSelectable: boolean = false;\n isSelectableSingle: boolean = false;\n isSortable: boolean = false;\n hideHeader: boolean = false;\n hideFooter: boolean = false;\n\n @Output() onUpdate: EventEmitter<BiitTableResponse> = new EventEmitter<BiitTableResponse>();\n @Output() onCellAction: EventEmitter<BiitTableActionResponse> = new EventEmitter<BiitTableActionResponse>();\n @Output() onRowClick: EventEmitter<any> = new EventEmitter<any>();\n\n protected data: BiitTableData<any>;\n protected paginator;\n protected sorting: BiitTableSorting;\n protected selectedRows: Set<any> = new Set<any>();\n protected columnResize: ColumnResizeHandler = new ColumnResizeHandler();\n protected loading: boolean = false;\n protected search: string = '';\n protected currentSearch: string = '';\n protected readonly BiitMultiselectType = BiitMultiselectType;\n protected readonly BiitTableColumnFormat = BiitTableColumnFormat;\n\n private findTimeout: NodeJS.Timeout;\n\n constructor(private renderer: Renderer2,\n private elem: ElementRef) {\n }\n\n ngOnInit(): void {\n this.paginator = new BiitPaginatorOptions(1, this.defaultPageSize, this.pageSizes, this.data ? this.data.totalItems : 1);\n }\n\n ngAfterViewChecked() {\n this.setColumnSize();\n }\n\n // Fix for resizable columns\n private setColumnSize() {\n // Takes scrollbar padding in mind before hardcoding widths\n this.elem.nativeElement.querySelector('.content').style.paddingRight = '0.7rem';\n\n Array.from(this.elem.nativeElement.querySelector('thead').firstChild.children).forEach(ogColumn => {\n const column = ogColumn as HTMLElement;\n\n if (column.classList.contains('select')) {\n return;\n }\n if (column.style.width == '' && !column.classList.contains('select')) {\n column.style.width = column.offsetWidth - 10 + 'px';\n }\n this.columnInnerWordFitCheck(column);\n });\n this.elem.nativeElement.querySelector('.content').style.paddingRight = null;\n\n this.setLoadingBar();\n }\n\n columnInnerWordFitCheck(column: HTMLElement) {\n const minColumnSize = (column.firstElementChild as HTMLElement).offsetWidth\n + 2.4 * parseFloat(getComputedStyle(document.documentElement).fontSize) * 2;\n\n // If inner text width plus header paddings are less than the current header width (set by user column properties)\n if (minColumnSize > column.offsetWidth) {\n (column as HTMLElement).style.width = minColumnSize + 'px';\n }\n }\n\n setLoadingBar(): void {\n const progressBar = this.elem.nativeElement.querySelector('biit-progress-bar');\n if (progressBar) {\n progressBar.style.top =\n this.elem.nativeElement.querySelector('thead').offsetHeight + 'px';\n }\n }\n\n onTableUpdate(force: boolean = false) {\n if (this.findTimeout) {\n clearTimeout(this.findTimeout);\n }\n this.findTimeout = setTimeout(() => {\n this.currentSearch = this.search;\n this.selectedRows.clear();\n this.onUpdate.emit(new BiitTableResponse(\n this.paginator.currentPage,\n this.paginator.pageSize,\n this.search,\n this.sorting\n ));\n clearTimeout(this.findTimeout);\n this.findTimeout = null;\n }, force ? 0 : 500);\n }\n\n onTableSort(column: BiitTableColumn) {\n if (this.sorting && this.sorting.name == column.name) {\n switch (this.sorting.order) {\n case BiitTableSortingOrder.ASC:\n this.sorting.order = BiitTableSortingOrder.DESC;\n break;\n case BiitTableSortingOrder.DESC:\n this.sorting = undefined;\n break;\n }\n } else {\n this.sorting = new BiitTableSorting(column.name, BiitTableSortingOrder.ASC);\n }\n\n this.onTableUpdate();\n }\n\n snakeToCamel(string: string): string {\n return string.toLowerCase().replace(/[-_][a-z]/g, (group) => group.slice(-1).toUpperCase());\n }\n\n resizeColumn(event, column: BiitTableColumn, index) {\n this.columnResize.start = event.target;\n this.columnResize.pressed = true;\n this.columnResize.startX = event.x;\n this.columnResize.startWidth = (this.columnResize.start.parentNode as HTMLElement).offsetWidth;\n\n let columnElem = this.elem.nativeElement.querySelector('thead').firstChild.children[this.isSelectable ? index + 1 : index];\n this.columnResize.minWidth = (columnElem.firstElementChild as HTMLElement).offsetWidth\n + 2.4 * parseFloat(getComputedStyle(document.documentElement).fontSize) * 2;\n\n this.initResizableColumns(column);\n }\n\n private initResizableColumns(column: BiitTableColumn) {\n const moveListener = this.renderer.listen('window', 'mousemove', (event) => {\n if (this.columnResize.pressed) {\n let width = this.columnResize.startWidth + (event.x - this.columnResize.startX);\n if (width > this.columnResize.minWidth) {\n column.width = width;\n }\n }\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n return false;\n });\n const releaseListener = this.renderer.listen('window', 'mouseup', (event) => {\n if (this.columnResize.pressed) {\n this.columnResize.pressed = false;\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n moveListener();\n releaseListener();\n }\n return false;\n });\n }\n\n setColumnVisibility(response: BiitTableColumn[]) {\n this.columns.forEach(c => response.some(e => e.name == c.name) ? c.visible = true : c.visible = false);\n }\n\n selectRow(item, holdCtrl) {\n if (!holdCtrl || this.isSelectableSingle) {\n this.selectedRows.clear();\n this.selectedRows.add(item);\n } else {\n if (!this.selectedRows.has(item)) {\n this.selectedRows.add(item);\n } else {\n this.selectedRows.delete(item);\n }\n }\n }\n\n getSelectedRows(): any[] {\n return [...this.selectedRows];\n }\n\n setSelectedRows(_selectedRows: any[]): void {\n this.selectedRows = new Set<any>(_selectedRows.filter(r => this.data.data.includes(r)));\n }\n\n emitCellAction(item: any, column: string, event: Event) {\n event.stopPropagation();\n this.onCellAction.emit(new BiitTableActionResponse(item, column));\n }\n\n emitRowClick(item: any) {\n this.onRowClick.emit(item);\n }\n\n resetInputValue() {\n this.search = this.currentSearch;\n }\n}\n","<div class=\"canvas\" *transloco=\"let t\">\n <div class=\"header\" *ngIf=\"!hideHeader\">\n <div class=\"buttons\" id=\"menu\">\n <biit-vertical-menu *ngIf=\"actionsTpl\" class=\"vertical-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </biit-vertical-menu>\n <div *ngIf=\"actionsTpl\" class=\"horizontal-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </div>\n <div *ngIf=\"!actionsTpl\">\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"forms\">\n <biit-input-text id=\"search-field\" [(ngModel)]=\"search\"\n (onActionPerformed)=\"\n paginator.currentPage = 1;\n onTableUpdate(true);\n \"\n (focusout)=\"resetInputValue()\"\n (ngModelChange)=\"onTableUpdate()\"\n icon=\"search\"\n [placeholder]=\"t('table.search')\"\n ></biit-input-text>\n <biit-multiselect id=\"column-selector\" [ngModel]=\"columns | visibleColumns\"\n (ngModelChange)=\"setColumnVisibility($event)\"\n [data]=\"columns\"\n label=\"label\"\n value=\"visible\"\n [title]=\"t('table.column-selector')\"\n [type]=\"BiitMultiselectType.ICON\"\n [compact]=\"true\"\n ></biit-multiselect>\n </div>\n </div>\n\n <div class=\"content\">\n <div *ngIf=\"loading\" style=\"position: relative\">\n <biit-progress-bar style=\"position: absolute; top: 2.1rem; left: 0.2rem; width: calc(100% - 0.1rem);\"></biit-progress-bar>\n </div>\n <table>\n <thead>\n <tr>\n <th *ngIf=\"isSelectable || isSelectableSingle\" class=\"select\">\n <biit-checkbox *ngIf=\"isSelectable\"\n [ngModel]=\"data?.data.length && selectedRows.size == data?.data.length\"\n (ngModelChange)=\"$event ? data?.data.forEach(selectedRows.add, selectedRows) : selectedRows.clear()\"\n ></biit-checkbox>\n </th>\n <th *ngFor=\"let column of columns, index as i\"\n [class.sortable]=\"isSortable\"\n [style.display]=\"!column.visible ? 'none' : null\"\n [style.width]=\"column.width ? column.width + 'px' : ''\"\n (click)=\"isSortable ? onTableSort(column) : false\"\n >\n <div class=\"label\">\n {{column.label}}\n </div>\n <biit-icon *ngIf=\"isSortable\"\n [name]=\"sorting?.name == column.name ? 'right_arrow' : 'up_down_arrow'\"\n [pathStyle]=\"{fill: '#FFFFFF'}\"\n class=\"sort\"\n [class.asc]=\"sorting?.name == column.name && sorting?.order == 'asc'\"\n [class.desc]=\"sorting?.name == column.name && sorting?.order == 'desc'\"\n ></biit-icon>\n <div class=\"column-resizer\"\n (mousedown)=\"resizeColumn($event, column, i)\"\n (click)=\"$event.preventDefault();\n $event.stopPropagation();\n $event.stopImmediatePropagation();\"\n ></div>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of data?.data; index as i\"\n [class.selectable]=\"isSelectable\"\n [class.selected]=\"selectedRows.has(item)\"\n (pointerdown)=\"emitRowClick(item)\"\n >\n <td *ngIf=\"isSelectable || isSelectableSingle\" class=\"select\">\n <biit-checkbox id=\"select{{i}}\"\n [ngModel]=\"selectedRows.has(item)\"\n (ngModelChange)=\"selectRow(item, true)\"\n ></biit-checkbox>\n </td>\n <td *ngFor=\"let column of columns\"\n (pointerdown)=\"selectRow(item, $event.ctrlKey)\"\n [style.display]=\"!column.visible ? 'none' : null\"\n [style.width]=\"column.width ? column.width + 'px' : null\"\n >\n <div *ngIf=\"column.format == BiitTableColumnFormat.DEFAULT\">\n {{item | columnData: column.name}}\n </div>\n <div *ngIf=\"column.format == BiitTableColumnFormat.BOOLEAN\">\n {{(item | columnData: column.name) ? t('table.yes') : t('table.no') }}\n </div>\n <div *ngIf=\"column.format == BiitTableColumnFormat.DATE\">\n {{(item | columnData: column.name) | localizedDate}}\n </div>\n <div *ngIf=\"column.format == BiitTableColumnFormat.BUTTON\"\n style=\"width: auto; text-align: -webkit-center; text-align: -moz-center;\">\n <button biit-button tertiary\n (pointerdown)=\"emitCellAction(item, column.name, $event)\">\n {{item | columnData: column.name}}\n </button>\n </div>\n <div *ngIf=\"column.format == BiitTableColumnFormat.ICON_BUTTON\"\n style=\"width: auto; text-align: -webkit-center; text-align: -moz-center;\">\n <button biit-icon [icon]=\"item | columnData: column.name\"\n (pointerdown)=\"emitCellAction(item, column.name, $event);\"></button>\n </div>\n <div *ngIf=\"column.format == BiitTableColumnFormat.ICON\"\n style=\"width: auto; height: 1.05rem;\">\n <biit-icon [name]=\"item | columnData: column.name\"></biit-icon>\n </div>\n <div *ngIf=\"column.format == BiitTableColumnFormat.CUSTOM_HTML\"\n style=\"width: auto; text-align: -webkit-center; text-align: -moz-center;\">\n <div [innerHTML]=\"item | columnData: column.name\"></div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n\n </div>\n\n <div class=\"footer\" *ngIf=\"!hideFooter\">\n <div class=\"selected\">\n <a style=\"margin-right: 0.7rem\" *ngIf=\"selectedRows.size\">Selected:</a>\n <a *ngIf=\"selectedRows.size\">{{selectedRows.size}}</a>\n </div>\n <biit-paginator *ngIf=\"paginator\"\n [ngModel]=\"paginator\" (ngModelChange)=\"paginator = $event; onTableUpdate()\"></biit-paginator>\n </div>\n</div>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BiitPaginatorComponent} from \"./biit-paginator.component\";\nimport {FormsModule} from \"@angular/forms\";\nimport {BiitIconModule} from '@biit-solutions/wizardry-theme/icon';\nimport {BiitIconButtonModule} from '@biit-solutions/wizardry-theme/button';\nimport {TranslocoRootModule} from '@biit-solutions/wizardry-theme/i18n';\nimport {TRANSLOCO_SCOPE} from '@ngneat/transloco';\nimport {BiitTooltipModule} from '@biit-solutions/wizardry-theme/info';\n\n\n@NgModule({\n declarations: [BiitPaginatorComponent],\n exports: [BiitPaginatorComponent],\n imports: [\n CommonModule,\n FormsModule,\n BiitIconModule,\n BiitIconButtonModule,\n TranslocoRootModule,\n BiitTooltipModule\n ],\n providers: [{\n provide: TRANSLOCO_SCOPE,\n useValue: {scope: 'wizardry-theme/table', alias: \"table\"}\n }]\n})\nexport class BiitPaginatorModule {\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {\n BiitTableComponent, BiitTableFooterlessDirective, BiitTableHeaderlessDirective,\n BiitTableSelectableDirective, BiitTableSelectableSingleDirective,\n BiitTableSortableDirective\n} from \"./biit-table.component\";\nimport {FormsModule} from \"@angular/forms\";\nimport {BiitPaginatorModule} from '../biit-paginator/biit-paginator.module';\nimport {BiitCheckboxModule, BiitInputTextModule, BiitMultiselectModule} from '@biit-solutions/wizardry-theme/inputs';\nimport {BiitProgressBarModule} from '@biit-solutions/wizardry-theme/info';\nimport {LocalizedDatePipeModule} from '@biit-solutions/wizardry-theme/utils';\nimport {VisibleColumnsPipe} from './pipes/visible-columns-pipe';\nimport {TranslocoRootModule} from '@biit-solutions/wizardry-theme/i18n';\nimport {BiitIconModule} from '@biit-solutions/wizardry-theme/icon';\nimport {BiitButtonModule, BiitIconButtonModule} from \"@biit-solutions/wizardry-theme/button\";\nimport {ColumnDataPipe} from \"./pipes/column-data-pipe\";\nimport {BiitVerticalMenuModule} from \"@biit-solutions/wizardry-theme/navigation\";\n\n\n@NgModule({\n declarations: [\n BiitTableComponent,\n BiitTableSelectableDirective,\n BiitTableSelectableSingleDirective,\n BiitTableSortableDirective,\n BiitTableHeaderlessDirective,\n BiitTableFooterlessDirective,\n VisibleColumnsPipe,\n ColumnDataPipe\n ],\n exports: [\n BiitTableComponent,\n BiitTableSelectableDirective,\n BiitTableSelectableSingleDirective,\n BiitTableSortableDirective,\n BiitTableHeaderlessDirective,\n BiitTableFooterlessDirective\n ],\n imports: [\n CommonModule,\n FormsModule,\n BiitPaginatorModule,\n BiitMultiselectModule,\n BiitInputTextModule,\n BiitCheckboxModule,\n BiitProgressBarModule,\n LocalizedDatePipeModule,\n TranslocoRootModule,\n BiitIconModule,\n BiitButtonModule,\n BiitIconButtonModule,\n BiitVerticalMenuModule\n ]\n})\nexport class BiitTableModule {\n}\n","export class BiitTableData<T> {\n data: T[];\n totalItems: number;\n\n constructor(data: T[], totalItems: number) {\n this.data = data;\n this.totalItems = totalItems;\n }\n}\n","export class GenericFilter {\n public static filter<T>(object: T, value: string, includes: boolean = false, caseSensitive: boolean = false, params?: string[]): boolean {\n const formattedValue: string = caseSensitive ? value : value?.toLowerCase();\n\n for (let param in object) {\n if (params && !params.includes(param)) continue\n let paramValue: unknown = object[param];\n if (paramValue instanceof Array) {\n if ((paramValue as Array<any>).some((item: any) => {\n return GenericFilter.filter(item, value, includes, caseSensitive);\n })) {\n return true;\n }\n continue;\n }\n if (typeof paramValue === 'string' || typeof paramValue === 'number' || typeof paramValue === 'boolean') {\n let stringValue: string = paramValue.toString();\n if (!caseSensitive) {\n stringValue = stringValue.toLowerCase();\n }\n if (includes) {\n if (stringValue.includes(formattedValue)) {\n return true;\n }\n } else {\n if (stringValue === formattedValue) {\n return true;\n }\n }\n continue;\n }\n if (Object.keys(object).length === 0) {\n if(object[param] === value) {\n return true;\n }\n } else {\n if (GenericFilter.filter(paramValue, value, includes, caseSensitive)) {\n return true;\n }\n }\n }\n return false;\n }\n}\n","import {BiitTableColumn, BiitTableColumnFormat} from \"../biit-table/models/biit-table-column\";\nimport {BiitTableSorting} from \"../biit-table/models/biit-table-sorting\";\n\nexport class GenericSort {\n public static sort<T>(data: T[], sorting: BiitTableSorting, columns: BiitTableColumn[]): T[] {\n if (sorting) {\n return data.sort((a, b) => {\n switch (columns.find(i => i.name == sorting.name).format) {\n case BiitTableColumnFormat.BOOLEAN:\n if (a[sorting.name] == b[sorting.name])\n return 0;\n if (sorting.order == 'asc') {\n return a[sorting.name] ? -1 : 1;\n } else {\n return a[sorting.name] ? 1 : -1;\n }\n case BiitTableColumnFormat.DATE:\n if (new Date(a[sorting.name]).getTime() == new Date(b[sorting.name]).getTime())\n return 0;\n if (sorting.order == 'asc') {\n return (new Date(a[sorting.name]).getTime() > new Date(b[sorting.name]).getTime()) ? 1 : -1;\n } else {\n return (new Date(a[sorting.name]).getTime() > new Date(b[sorting.name]).getTime()) ? -1 : 1;\n }\n default:\n if (a[sorting.name] == b[sorting.name])\n return 0;\n if (sorting.order == 'asc') {\n return a[sorting.name] > b[sorting.name] ? 1 : -1;\n } else {\n return a[sorting.name] > b[sorting.name] ? -1 : 1;\n }\n }\n });\n } else {\n return data;\n }\n }\n}\n","export class Page {\n totalElements: number = 0;\n pageNumber: number = 0;\n pageSize: number = 0;\n\n constructor(pageNumber: number, pageSize: number, totalElements?: number) {\n this.pageNumber = pageNumber ?? 0;\n this.pageSize = pageSize ?? 0;\n this.totalElements = totalElements ?? 0;\n }\n}\n","import {Component} from '@angular/core';\nimport {DataTablePagerComponent} from \"@siemens/ngx-datatable\";\nimport {provideTranslocoScope} from \"@ngneat/transloco\";\nimport {BiitIconService} from \"@biit-solutions/wizardry-theme/icon\";\nimport {completeIconSet} from '@biit-solutions/biit-icons-collection';\n\n@Component({\n selector: 'biit-datatable-pager',\n templateUrl: './biit-datatable-pager.component.html',\n styleUrls: ['./biit-datatable-pager.component.scss'],\n providers: [provideTranslocoScope({scope:'wizardry-theme/table', alias:'t'})]\n})\nexport class BiitDatatablePagerComponent extends DataTablePagerComponent {\n\n constructor(biitIconService: BiitIconService) {\n super();\n biitIconService.registerIcons(completeIconSet);\n }\n\n enforceMinMax(el) {\n if (el.value != \"\") {\n if (parseInt(el.value) < parseInt(el.min)) {\n el.value = el.min;\n }\n if (parseInt(el.value) > parseInt(el.max)) {\n el.value = el.max;\n }\n }\n }\n\n log(event) {\n }\n}\n","<ng-container *transloco=\"let t\">\n <div id=\"page-selector\" class=\"page-selector\">\n <button biit-icon id=\"arrow-first\"\n icon='right_double_arrow'\n class=\"horizontal-flip\"\n (click)=\"selectPage(1)\"\n [disabled]=\"!canPrevious()\"\n tooltip=\"{{t('t.first-page')}}\"\n ></button>\n <button biit-icon id=\"arrow-previous\"\n icon='right_arrow'\n class=\"compact horizontal-flip\"\n (click)=\"prevPage()\"\n [disabled]=\"!canPrevious()\"\n tooltip=\"{{t('t.previous-page')}}\"\n ></button>\n <div class=\"page-display\" (click)=\"input.focus()\">\n <input id=\"current-page\" #input\n [ngModel]=\"page\"\n readonly\n (keydown.arrowUp)=\"nextPage(); $event.stopPropagation(); $event.preventDefault();\"\n (keydown.arrowRight)=\"nextPage(); $event.stopPropagation(); $event.preventDefault();\"\n (keydown.arrowDown)=\"prevPage(); $event.stopPropagation(); $event.preventDefault();\"\n (keydown.arrowLeft)=\"prevPage(); $event.stopPropagation(); $event.preventDefault();\"\n type=\"number\"\n [min]=\"1\"\n [max]=\"totalPages\"\n style=\"width: 2.5rem\">\n <span #label id=\"total-pages\">/{{ totalPages }}</span>\n </div>\n <button biit-icon id=\"arrow-next\"\n icon='right_arrow'\n class=\"compact\"\n (click)=\"nextPage()\"\n [disabled]=\"!canNext()\"\n tooltip=\"{{t('t.next-page')}}\"\n ></button>\n <button biit-icon id=\"arrow-last\"\n icon='right_double_arrow'\n (click)=\"selectPage(totalPages)\"\n [disabled]=\"!canNext()\"\n tooltip=\"{{t('t.last-page')}}\"\n ></button>\n </div>\n</ng-container>\n","import {Component, ContentChild, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild} from '@angular/core';\nimport {DatatableColumn} from \"./models/datatable-column\";\nimport {ColumnMode, DatatableComponent, SelectionType} from \"@siemens/ngx-datatable\";\nimport {completeIconSet} from '@biit-solutions/biit-icons-collection';\nimport {BiitIconService} from \"@biit-solutions/wizardry-theme/icon\";\nimport {BiitMultiselectType} from \"@biit-solutions/wizardry-theme/inputs\";\nimport {coerceBooleanProperty} from \"@angular/cdk/coercion\";\nimport {GenericFilter} from \"../utils/generic-filter\";\nimport {provideTranslocoScope} from \"@ngneat/transloco\";\nimport {Page} from \"./models/page\";\n\n@Component({\n selector: 'biit-datatable',\n templateUrl: './biit-datatable.component.html',\n styleUrls: ['./biit-datatable.component.scss'],\n providers: [provideTranslocoScope({scope: 'wizardry-theme/table', alias: 't'})]\n})\nexport class BiitDatatableComponent<T> implements OnInit {\n @ViewChild('table') table: DatatableComponent;\n\n _data: T[] = [];\n allData: T[] = [];\n\n @Input() set data(data: T[]) {\n this._data = data ?? [];\n this.allData = data ?? [];\n this.selected = [];\n }\n\n get data(): T[] {\n return this._data;\n }\n\n _columns: DatatableColumn[] = [];\n allColumns: DatatableColumn[] = [];\n\n @Input() set columns(columns: DatatableColumn[]) {\n this.allColumns = columns ?? [];\n this._columns = columns.filter(c => c.visible);\n }\n\n get columns(): DatatableColumn[] {\n return this._columns;\n }\n\n selected: T[] = [];\n\n public get selectedRows(): T[] {\n return this.selected;\n }\n\n @Input() pageSize?: number;\n @Input() pageSizeList: number[] = [];\n @Input() loading = false;\n @Input() selectable?: any;\n @Input() singleSelection?: any;\n @Input() scrollbarH?: any;\n @Input() hideHeader?: any;\n @Input() hideFooter?: any;\n @Input() serverSide?: any;\n @Input() page?: Page;\n search: string = \"\";\n\n @Output() onSelection: EventEmitter<T[]> = new EventEmitter<T[]>();\n @Output() onPageChange: EventEmitter<Page> = new EventEmitter<Page>();\n\n @ContentChild('actions') actionsTpl!: TemplateRef<any>;\n\n protected readonly ColumnMode = ColumnMode;\n protected readonly SelectionType = SelectionType;\n protected readonly BiitMultiselectType = BiitMultiselectType;\n private findTimeout: NodeJS.Timeout;\n\n constructor(biitIconService: BiitIconService) {\n biitIconService.registerIcons(completeIconSet);\n }\n\n ngOnInit() {\n this.selectable = coerceBooleanProperty(this.selectable);\n this.singleSelection = coerceBooleanProperty(this.singleSelection);\n this.scrollbarH = coerceBooleanProperty(this.scrollbarH);\n this.hideHeader = coerceBooleanProperty(this.hideHeader);\n this.hideFooter = coerceBooleanProperty(this.hideFooter);\n this.serverSide = coerceBooleanProperty(this.serverSide);\n }\n\n onSelect({selected}) {\n this.selected.splice(0, this.selected.length);\n this.selected.push(...selected);\n this.onSelection.emit(this.selected);\n }\n\n onActivate(event: { type: 'keydown' | 'click' | 'dblclick', event, row, column, value, cellElement, rowElement }) {\n if (event.type == 'click' && event.column.name !== 'chkbox') {\n this.selected = [event.row];\n this.onSelection.emit(this.selected);\n }\n }\n\n onFilter(value: string, force: boolean = false) {\n if (this.findTimeout) {\n clearTimeout(this.findTimeout);\n }\n this.findTimeout = setTimeout(() => {\n this.search = value;\n const val = value.toLowerCase();\n\n // filter our data\n const temp: T[] = this.allData.filter(item => GenericFilter.filter(item, val, true));\n\n // update the rows\n this._data = temp;\n // Whenever the filter changes, always go back to the first page\n this.table.offset = 0;\n clearTimeout(this.findTimeout);\n this.findTimeout = null;\n }, force ? 0 : 500);\n }\n\n onFooterPageChange(event: any) {\n const page = new Page(event.offset, event.pageSize, event.count);\n this.onPageChange.emit(page);\n }\n\n setColumnVisibility(columns: DatatableColumn[]) {\n this._columns = this.allColumns.filter(c => columns.includes(c))\n }\n}\n","<div id=\"biit-table\" class=\"table-canvas\" *transloco=\"let t\">\n <div class=\"top\" *ngIf=\"!hideHeader\">\n <div id=\"menu\" class=\"action-bar\">\n <biit-vertical-menu *ngIf=\"actionsTpl\" class=\"vertical-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </biit-vertical-menu>\n <div *ngIf=\"actionsTpl\" class=\"horizontal-menu default-menu\">\n <ng-container *ngTemplateOutlet=\"actionsTpl\"></ng-container>\n </div>\n <div class=\"default-menu\" *ngIf=\"!actionsTpl\">\n <ng-content></ng-content>\n </div>\n </div>\n <div id=\"options\" class=\"options\">\n <biit-input-text id=\"search\" #searchInput\n [ngModel]=\"search\"\n (onActionPerformed)=\"\n onFilter($event, true);\n \"\n (ngModelChange)=\"onFilter($event)\"\n (focusout)=\"searchInput.value = search\"\n icon=\"search\"\n [placeholder]=\"t('t.search')\"\n ></biit-input-text>\n <biit-multiselect id=\"column-selector\" [ngModel]=\"_columns\"\n (ngModelChange)=\"setColumnVisibility($event)\"\n [data]=\"allColumns\"\n label=\"name\"\n value=\"visible\"\n [type]=\"BiitMultiselectType.ICON\"\n [title]=\"t('t.column-selector')\"\n [compact]=\"true\"\n ></biit-multiselect>\n </div>\n </div>\n <div id=\"content\" class=\"table\">\n <biit-progress-bar *ngIf=\"loading\"></biit-progress-bar>\n <ng-container *ngIf=\"!serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [limit]=\"pageSize\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer id=\"datatable-footer\">\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\">\n <span>{{ t('t.total') }}: </span><span id=\"total-number-of-items\">{{rowCount}}</span>\n <span *ngIf=\"selectedCount\"> | {{ t('t.selected') }}: </span><span *ngIf=\"selectedCount\" id=\"number-of-items-selected\">{{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n\n <ng-container *ngIf=\"serverSide\">\n <ngx-datatable #table\n [rows]=\"data\"\n [columns]=\"_columns\"\n [columnMode]=\"'force'\"\n [headerHeight]=\"42\"\n [footerHeight]=\"hideFooter ? 0 : 34\"\n [rowHeight]=\"'auto'\"\n [reorderable]=\"false\"\n [selectionType]=\"SelectionType.checkbox\"\n [selected]=\"selected\"\n (select)=\"onSelect($event)\"\n (activate)=\"onActivate($event)\"\n [virtualization]=\"false\"\n [scrollbarVDynamic]=\"true\"\n [scrollbarH]=\"scrollbarH\"\n [messages]=\"{emptyMessage: t('t.empty-message')}\"\n [externalPaging]=\"true\"\n [count]=\"page.totalElements\"\n [offset]=\"page.pageNumber\"\n [limit]=\"page.pageSize\"\n (page)=\"onFooterPageChange($event)\"\n >\n <ngx-datatable-column *ngIf=\"selectable && !singleSelection\"\n #chkbox\n [width]=\"42\"\n [sortable]=\"false\"\n [canAutoResize]=\"false\"\n [draggable]=\"false\"\n [resizeable]=\"false\"\n [name]=\"'chkbox'\"\n >\n <ng-template\n ngx-datatable-header-template\n let-value=\"value\"\n let-allRowsSelected=\"allRowsSelected\"\n let-selectFn=\"selectFn\"\n >\n <biit-checkbox [ngModel]=\"allRowsSelected\" (ngModelChange)=\"selectFn(!allRowsSelected)\"></biit-checkbox>\n </ng-template>\n <ng-template\n ngx-datatable-cell-template\n let-value=\"value\"\n let-isSelected=\"isSelected\"\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\n >\n <biit-checkbox [ngModel]=\"isSelected\" (ngModelChange)=\"onCheckboxChangeFn($event)\"></biit-checkbox>\n </ng-template>\n </ngx-datatable-column>\n\n <ngx-datatable-column *ngFor=\"let column of _columns\"\n [name]=\"column.name\"\n [prop]=\"column.prop\"\n [checkboxable]=\"column.checkboxable\"\n [frozenLeft]=\"column.frozenLeft\"\n [frozenRight]=\"column.frozenRight\"\n [flexGrow]=\"column.flexGrow\"\n [minWidth]=\"column.minWidth\"\n [maxWidth]=\"column.maxWidth\"\n [width]=\"column.width\"\n [resizeable]=\"column.resizeable\"\n [comparator]=\"column.comparator\"\n [pipe]=\"column.pipe\"\n [sortable]=\"column.sortable\"\n [draggable]=\"column.draggable\"\n [canAutoResize]=\"column.canAutoResize\"\n [cellTemplate]=\"column.cellTemplate\"\n [ghostCellTemplate]=\"column.ghostCellTemplate\"\n [treeToggleTemplate]=\"column.treeToggleTemplate\"\n [cellClass]=\"column.cellClass\"\n [headerTemplate]=\"column.headerTemplate\"\n [headerClass]=\"column.headerClass\"\n [headerCheckboxable]=\"column.headerCheckboxable\"\n [isTreeColumn]=\"column.isTreeColumn\"\n [treeLevelIndent]=\"column.treeLevelIndent\"\n [summaryFunc]=\"column.summaryFunc\"\n [summaryTemplate]=\"column.summaryTemplate\"\n ></ngx-datatable-column>\n\n <ngx-datatable-footer>\n <ng-template\n ngx-datatable-footer-template\n let-rowCount=\"rowCount\"\n let-pageSizeCurrent=\"pageSize\"\n let-selectedCount=\"selectedCount\"\n let-curPage=\"curPage\"\n let-offset=\"offset\"\n >\n <div class=\"label\" id=\"total-elements\">\n <span>{{ t('t.total') }}: {{rowCount}}</span>\n <span *ngIf=\"selectedCount\"> | {{ t('t.selected') }}: {{selectedCount}}</span>\n </div>\n <div class=\"pagination\" [style.display]=\"!((rowCount / pageSize) > 1) ? 'none' : null\">\n <biit-datatable-pager #pager\n [page]=\"curPage\"\n [size]=\"pageSizeCurrent\"\n [count]=\"rowCount\"\n [hidden]=\"!((rowCount / pageSize) > 1)\"\n (change)=\"table.onFooterPage($event)\">\n </biit-datatable-pager>\n </div>\n <div class=\"page-items\" *ngIf=\"pageSizeList\">\n <div *ngIf=\"pageSizeList?.length\">\n <span>{{ t('t.rows-per-page') }}:</span>\n <select [(ngModel)]=\"pageSize\"\n (ngModelChange)=\"pager.size = $event\">\n <option *ngFor=\"let size of pageSizeList\"\n [ngValue]=\"size\"\n >\n {{size}}\n </option>\n </select>\n </div>\n </div>\n </ng-template>\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BiitDatatablePagerComponent} from \"./biit-datatable-pager.component\";\nimport {FormsModule} from \"@angular/forms\";\nimport {BiitIconModule} from '@biit-solutions/wizardry-theme/icon';\nimport {BiitIconButtonModule} from '@biit-solutions/wizardry-theme/button';\nimport {TranslocoRootModule} from '@biit-solutions/wizardry-theme/i18n';\nimport {TRANSLOCO_SCOPE} from '@ngneat/transloco';\nimport {BiitTooltipModule} from '@biit-solutions/wizardry-theme/info';\n\n\n@NgModule({\n declarations: [BiitDatatablePagerComponent],\n exports: [BiitDatatablePagerComponent],\n imports: [\n CommonModule,\n FormsModule,\n BiitIconModule,\n BiitIconButtonModule,\n TranslocoRootModule,\n BiitTooltipModule\n ]\n})\nexport class BiitDatatablePagerModule {\n}\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core';\nimport {BiitDatatableComponent} from \"./biit-datatable.component\";\nimport {BiitCheckboxModule, BiitInputTextModule, BiitMultiselectModule} from '@biit-solutions/wizardry-theme/inputs';\nimport {FormsModule} from '@angular/forms';\nimport {NgxDatatableModule} from \"@siemens/ngx-datatable\";\nimport {NgForOf, NgIf, NgTemplateOutlet} from \"@angular/common\";\nimport {BiitDatatablePagerModule} from \"../biit-datatable-pager/biit-datatable-pager.module\";\nimport {BiitProgressBarModule} from \"@biit-solutions/wizardry-theme/info\";\nimport {TranslocoModule} from \"@ngneat/transloco\";\nimport {BiitVerticalMenuModule} from \"@biit-solutions/wizardry-theme/navigation\";\n\n@NgModule({\n declarations: [\n BiitDatatableComponent\n ],\n exports: [\n BiitDatatableComponent\n ],\n imports: [\n FormsModule,\n NgTemplateOutlet,\n BiitCheckboxModule,\n BiitDatatablePagerModule,\n NgForOf,\n NgIf,\n NgxDatatableModule,\n BiitProgressBarModule,\n BiitMultiselectModule,\n TranslocoModule,\n BiitInputTextModule,\n BiitVerticalMenuModule\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class BiitDatatableModule {\n}\n","import {TableColumn, ValueGetter} from \"@siemens/ngx-datatable\";\nimport {PipeTransform, TemplateRef} from \"@angular/core\";\n\nexport class DatatableColumn implements TableColumn {\n /**\n * Internal unique id\n *\n * @memberOf TableColumn\n */\n $$id?: string;\n\n /**\n * Internal for column width distributions\n *\n * @memberOf TableColumn\n */\n $$oldWidth?: number;\n\n /**\n * Internal for setColumnDefaults\n *\n * @memberOf TableColumn\n */\n $$valueGetter?: ValueGetter;\n\n /**\n * Determines if column is checkbox\n *\n * @memberOf TableColumn\n */\n checkboxable?: boolean;\n\n /**\n * Determines if the column is frozen to the left\n *\n * @memberOf TableColumn\n */\n frozenLeft?: boolean;\n\n /**\n * Determines if the column is frozen to the right\n *\n * @memberOf TableColumn\n */\n frozenRight?: boolean;\n\n /**\n * The grow factor relative to other columns. Same as the flex-grow\n * API from http =//www.w3.org/TR/css3-flexbox/. Basically;\n * take any available extra width and distribute it proportionally\n * according to all columns' flexGrow values.\n *\n * @memberOf TableColumn\n */\n flexGrow?: number;\n\n /**\n * Min width of the column\n *\n * @memberOf TableColumn\n */\n minWidth?: number;\n\n /**\n * Max width of the column\n *\n * @memberOf TableColumn\n */\n maxWidth?: number;\n\n /**\n * The default width of the column, in pixels\n *\n * @memberOf TableColumn\n */\n width?: number;\n\n /**\n * Can the column be resized\n *\n * @memberOf TableColumn\n */\n resizeable?: boolean;\n\n /**\n * Custom sort comparator\n *\n * @memberOf TableColumn\n */\n comparator?: any;\n\n /**\n * Custom pipe transforms\n *\n * @memberOf TableColumn\n */\n pipe?: PipeTransform;\n\n /**\n * Can the column be sorted\n *\n * @memberOf TableColumn\n */\n sortable?: boolean;\n\n /**\n * Can the column be re-arranged by dragging\n *\n * @memberOf TableColumn\n */\n draggable?: boolean;\n\n /**\n * Whether the column can automatically resize to fill space in the table.\n *\n * @memberOf TableColumn\n */\n canAutoResize?: boolean;\n\n /**\n * Column name or label\n *\n * @memberOf TableColumn\n */\n name?: string;\n\n /**\n * Property to bind to the row. Example:\n *\n * `someField` or `some.field.nested`, 0 (numeric)\n *\n * If left blank, will use the name as camel case conversion\n *\n * @memberOf TableColumn\n */\n prop?: string | number;\n\n /**\n * Cell template ref\n *\n * @memberOf TableColumn\n */\n cellTemplate?: any;\n\n /**\n * Ghost Cell template ref\n *\n * @memberOf TableColumn\n */\n ghostCellTemplate?: any;\n\n /**\n * Header template ref\n *\n * @memberOf TableColumn\n */\n headerTemplate?: any;\n\n /**\n * Tree toggle template ref\n *\n * @memberOf TableColumn\n */\n treeToggleTemplate?: any;\n\n /**\n * CSS Classes for the cell\n *\n *\n * @memberOf TableColumn\n */\n cellClass?: string | ((data: any) => string | any);\n\n /**\n * CSS classes for the header\n *\n *\n * @memberOf TableColumn\n */\n headerClass?: string | ((data: any) => string | any);\n\n /**\n * Header checkbox enabled\n *\n * @memberOf TableColumn\n */\n headerCheckboxable?: boolean;\n\n /**\n * Is tree displayed on this column\n *\n * @memberOf TableColumn\n */\n isTreeColumn?: boolean;\n\n /**\n * Width of the tree level indent\n *\n * @memberOf TableColumn\n */\n treeLevelIndent?: number;\n\n /**\n * Summary function\n *\n * @memberOf TableColumn\n */\n summaryFunc?: (cells: any[]) => any;\n\n /**\n * Summary cell template ref\n *\n * @memberOf TableColumn\n */\n summaryTemplate?: any;\n\n /**\n * Sets visibility of the column\n */\n visible?: boolean;\n\n constructor(name: string, prop: string|number, visible?: boolean, width?: number, sortable?: boolean, pipe?: PipeTransform, cellTemplate?: TemplateRef<any>, cellClass?: string|((data: any) => string | any), comparator?: Function) {\n this.name = name;\n this.prop = prop;\n this.visible = visible ?? true;\n this.width = width ?? undefined;\n this.minWidth = width ?? undefined;\n this.sortable = sortable ?? true;\n this.pipe = pipe ?? undefined;\n this.cellTemplate = cellTemplate ?? undefined;\n this.cellClass = cellClass ?? undefined;\n this.comparator = comparator ?? undefined;\n }\n}\n","/*\n * Public API Surface of wizardry-theme/button\n */\n\nexport * from './biit-table/biit-table.component';\nexport * from './biit-table/biit-table.module';\nexport * from './biit-table/models/biit-table-data';\nexport * from './biit-table/models/biit-table-column';\nexport * from './biit-table/models/biit-table-response';\nexport * from './biit-table/models/biit-table-action-response';\nexport * from './biit-table/models/biit-table-sorting';\nexport * from './biit-paginator/biit-paginator.component';\nexport * from './biit-paginator/biit-paginator.module';\nexport * from './biit-paginator/models/biit-paginator-options';\nexport * from './utils/generic-filter';\nexport * from './utils/generic-sort';\n\n\nexport * from './biit-datatable/biit-datatable.component';\nexport * from './biit-datatable/biit-datatable.module';\nexport * from './biit-datatable/models/datatable-column';\nexport * from './biit-datatable/models/page';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","i6","i3.BiitPaginatorComponent","i5","i7","i11.VisibleColumnsPipe","i12.ColumnDataPipe","i1","i5.BiitDatatablePagerComponent","i8"],"mappings":"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"}
|