@agentsmith.bgd/as-lib-generic-table 0.0.2 → 19.0.5
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/fesm2022/agentsmith.bgd-as-lib-generic-table.mjs +17 -17
- package/fesm2022/agentsmith.bgd-as-lib-generic-table.mjs.map +1 -1
- package/package.json +5 -7
- package/esm2022/agentsmith.bgd-as-lib-generic-table.mjs +0 -5
- package/esm2022/lib/as-lib-generic-table.component.mjs +0 -205
- package/esm2022/lib/as-lib-generic-table.service.mjs +0 -14
- package/esm2022/lib/directives/component/tooltip.component.mjs +0 -16
- package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +0 -61
- package/esm2022/lib/exports.mjs +0 -2
- package/esm2022/public-api.mjs +0 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Component, Directive, Input, HostListener, input, output,
|
|
2
|
+
import { Injectable, Component, Directive, Input, HostListener, input, output, inject, effect } from '@angular/core';
|
|
3
3
|
import { Subject, debounceTime, distinctUntilChanged } from 'rxjs';
|
|
4
4
|
import { BsModalService } from 'ngx-bootstrap/modal';
|
|
5
5
|
import * as i1 from '@angular/common';
|
|
@@ -10,10 +10,10 @@ import { AsLibPaginationComponent } from '@agentsmith.bgd/as-lib-pagination';
|
|
|
10
10
|
|
|
11
11
|
class AsLibGenericTableService {
|
|
12
12
|
constructor() { }
|
|
13
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
14
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: AsLibGenericTableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: AsLibGenericTableService, providedIn: 'root' });
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: AsLibGenericTableService, decorators: [{
|
|
17
17
|
type: Injectable,
|
|
18
18
|
args: [{
|
|
19
19
|
providedIn: 'root'
|
|
@@ -26,10 +26,10 @@ class TooltipComponent {
|
|
|
26
26
|
top = 0;
|
|
27
27
|
constructor() { }
|
|
28
28
|
ngOnInit() { }
|
|
29
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
30
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
29
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.1", type: TooltipComponent, isStandalone: true, selector: "tooltip", ngImport: i0, template: "<div [style.left]=\"left + 'px'\" [style.top]=\"top + 'px'\" class=\"my-tooltip\">\n\t{{ tooltip }}\n</div>\n", styles: [".my-tooltip{position:fixed;background-color:#000;border-radius:4px;color:#fff;font-family:Arial,serif;padding:3px 6px;font-size:13px;margin-top:5px;transform:translate(-50%)}.my-tooltip:before{content:\"\";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid black;position:absolute;left:calc(50% - 5px);top:-5px}\n"] });
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: TooltipComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
34
|
args: [{ selector: 'tooltip', standalone: true, template: "<div [style.left]=\"left + 'px'\" [style.top]=\"top + 'px'\" class=\"my-tooltip\">\n\t{{ tooltip }}\n</div>\n", styles: [".my-tooltip{position:fixed;background-color:#000;border-radius:4px;color:#fff;font-family:Arial,serif;padding:3px 6px;font-size:13px;margin-top:5px;transform:translate(-50%)}.my-tooltip:before{content:\"\";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid black;position:absolute;left:calc(50% - 5px);top:-5px}\n"] }]
|
|
35
35
|
}], ctorParameters: () => [] });
|
|
@@ -73,10 +73,10 @@ class TooltipDirective {
|
|
|
73
73
|
this.componentRef.instance.top = bottom;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
77
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
76
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.ApplicationRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
77
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.1", type: TooltipDirective, isStandalone: true, selector: "[tooltip]", inputs: { tooltip: "tooltip" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0 });
|
|
78
78
|
}
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
80
80
|
type: Directive,
|
|
81
81
|
args: [{
|
|
82
82
|
selector: '[tooltip]',
|
|
@@ -125,7 +125,8 @@ class AsLibGenericTableComponent {
|
|
|
125
125
|
counter = 0;
|
|
126
126
|
sort;
|
|
127
127
|
sortOrder = 'asc';
|
|
128
|
-
modalService = Inject(BsModalService)
|
|
128
|
+
//private modalService: BsModalService;// = Inject(BsModalService)
|
|
129
|
+
modalService = inject(BsModalService);
|
|
129
130
|
constructor() {
|
|
130
131
|
effect(() => {
|
|
131
132
|
console.log(`The count is:`, this.totalItems(), this.page());
|
|
@@ -272,18 +273,17 @@ class AsLibGenericTableComponent {
|
|
|
272
273
|
this.totalPages = Math.ceil(this.totalItems() / this.perPage());
|
|
273
274
|
this.log('total items/pages', this.totalItems(), this.totalPages);
|
|
274
275
|
}
|
|
275
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
276
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.1", type: AsLibGenericTableComponent, isStandalone: true, selector: "as-lib-generic-table", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, striped: { classPropertyName: "striped", publicName: "striped", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, hovered: { classPropertyName: "hovered", publicName: "hovered", isSignal: true, isRequired: false, transformFunction: null }, enableSearch: { classPropertyName: "enableSearch", publicName: "enableSearch", isSignal: true, isRequired: false, transformFunction: null }, rowCounter: { classPropertyName: "rowCounter", publicName: "rowCounter", isSignal: true, isRequired: false, transformFunction: null }, enableLog: { classPropertyName: "enableLog", publicName: "enableLog", isSignal: true, isRequired: false, transformFunction: null }, perPage: { classPropertyName: "perPage", publicName: "perPage", isSignal: true, isRequired: false, transformFunction: null }, tableHead: { classPropertyName: "tableHead", publicName: "tableHead", isSignal: true, isRequired: false, transformFunction: null }, tableData: { classPropertyName: "tableData", publicName: "tableData", isSignal: true, isRequired: false, transformFunction: null }, tableHeadStorage: { classPropertyName: "tableHeadStorage", publicName: "tableHeadStorage", isSignal: true, isRequired: false, transformFunction: null }, perPageValues: { classPropertyName: "perPageValues", publicName: "perPageValues", isSignal: true, isRequired: false, transformFunction: null }, headerActions: { classPropertyName: "headerActions", publicName: "headerActions", isSignal: true, isRequired: false, transformFunction: null }, rowActions: { classPropertyName: "rowActions", publicName: "rowActions", isSignal: true, isRequired: false, transformFunction: null }, tableStyle: { classPropertyName: "tableStyle", publicName: "tableStyle", isSignal: true, isRequired: false, transformFunction: null }, headStyle: { classPropertyName: "headStyle", publicName: "headStyle", isSignal: true, isRequired: false, transformFunction: null }, paginationAlignment: { classPropertyName: "paginationAlignment", publicName: "paginationAlignment", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filterParamsChanged: "filterParamsChanged", editRow: "editRow", sliderClicked: "sliderClicked", headerActionClicked: "headerActionClicked", rowActionClicked: "rowActionClicked", tableHeadChanged: "tableHeadChanged" }, ngImport: i0, template: "<p *ngIf=\"loading()\">\n\t<img\n\t\t*ngIf=\"loading()\"\n\t\tclass=\"pl-3\"\n\t\tsrc=\"data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==\"\n\t/>\n</p>\n<div\n\t[ngClass]=\"{\n\t\tloading: loading()\n\t}\"\n\tclass=\"dynamic-table\"\n>\n\t<div class=\"row mb-3\">\n\t\t<div class=\"col-md-7 d-flex d-sm-flex d-md-block justify-content-center mb-2\">\n\t\t\t<div *ngIf=\"perPageValues() && perPageValues().length\" class=\"d-block d-md-inline-flex me-0 me-md-3\">\n\t\t\t\t<div class=\"table-length\">\n\t\t\t\t\t<label\n\t\t\t\t\t\t>Show\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t(change)=\"changePerPage($event)\"\n\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\tclass=\"form-select form-select-sm\"\n\t\t\t\t\t\t\tname=\"data-table-combine_length\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<option *ngFor=\"let perp of perPageValues()\" [selected]=\"perPage() === perp\" value=\"{{ perp }}\">{{ perp }}</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\tentries</label\n\t\t\t\t\t>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"headerActions() && headerActions().length\" class=\"d-block d-inline-flex\">\n\t\t\t\t<div class=\"dt-buttons btn-group flex-wrap\">\n\t\t\t\t\t<ng-container *ngFor=\"let action of headerActions()\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t(click)=\"headerAction(action.actionName)\"\n\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\tid=\"header-action-{{ action.actionName }}\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i> {{ action.label }}</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"enableSearch()\" class=\"col-md-5 d-flex d-xl-block justify-content-center\">\n\t\t\t<div class=\"table-search\">\n\t\t\t\t<label\n\t\t\t\t\t>Search:\n\t\t\t\t\t<input\n\t\t\t\t\t\t(ngModelChange)=\"this.searchUpdate.next($event)\"\n\t\t\t\t\t\t[(ngModel)]=\"search\"\n\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\tclass=\"form-control form-control-sm\"\n\t\t\t\t\t\tid=\"table-search\"\n\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t/></label>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"table-responsive\">\n\t\t<table\n\t\t\t[ngClass]=\"{\n\t\t\t\t'table-striped': striped(),\n\t\t\t\t'table-bordered': bordered(),\n\t\t\t\t'table-hover': hovered()\n\t\t\t}\"\n\t\t\tclass=\"table table-fixed align-middle {{ tableStyle() }}\"\n\t\t>\n\t\t\t<thead [class]=\"headStyle()\">\n\t\t\t\t<tr>\n\t\t\t\t\t<th *ngIf=\"rowCounter\" class=\"text-end small-column\"> Nr.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t(click)=\"!head.notSortable && tableSort(head.key)\"\n\t\t\t\t\t\t\t*ngIf=\"!head.hidden\"\n\t\t\t\t\t\t\t[ngClass]=\"head.sort\"\n\t\t\t\t\t\t\tclass=\"header {{ head.notSortable ? '' : 'sortable' }} {{ head.cellAlign }}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<span [translate]=\"head.key.toUpperCase()\">{{ head.label || head.key }}</span>\n\t\t\t\t\t\t\t\t<span class=\"fa\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<th *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"header small-column text-center p-0\" data-width=\"50\">\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t(click)=\"openTableLayoutModal(tableHeadModal)\"\n\t\t\t\t\t\t\t*ngIf=\"tableHeadStorage()\"\n\t\t\t\t\t\t\taria-controls=\"basic-link-dropdown\"\n\t\t\t\t\t\t\tclass=\"menu-button toggle-white big-toggle dropdown-menu-link\"\n\t\t\t\t\t\t></a>\n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<tr *ngFor=\"let row of tableData(); let i = index\" class=\"{{ row['rowClass'] || '' }}\">\n\t\t\t\t\t<th *ngIf=\"rowCounter()\" class=\"text-end\"> {{ i + counter }}.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<td *ngIf=\"!head.hidden\" class=\"header text-nowrap {{ head.cellAlign }}\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'select'\">\n\t\t\t\t\t\t\t\t<input class=\"select\" type=\"checkbox\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!head.type\">\n\t\t\t\t\t\t\t\t{{ row[head.key] }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'badge'\">\n\t\t\t\t\t\t\t\t<span class=\"badge {{ row[head.key + 'Badge'] }}\">{{ row[head.key] }}</span>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'date'\">\n\t\t\t\t\t\t\t\t{{ row[head.key] | date: \"dd.MM.yyyy HH:mm:ss\" }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'slider'\">\n\t\t\t\t\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t(change)=\"sliderClicked.emit(row)\"\n\t\t\t\t\t\t\t\t\t\t[checked]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\tclass=\"switched\"\n\t\t\t\t\t\t\t\t\t\tid=\"check-{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<label for=\"check-{{ row['id'] }}\"></label>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'input'\">\n\t\t\t\t\t\t\t\t<input [value]=\"row[head.key]\" type=\"text\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<td *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"small-column\">\n\t\t\t\t\t\t<div class=\"menu text-end\">\n\t\t\t\t\t\t\t<ng-container *ngFor=\"let action of rowActions()\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t(click)=\"rowAction(action.actionName, row)\"\n\t\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm ms-2 {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\t\t<as-lib-pagination\n\t\t\t(pageChange)=\"pageChange($event)\"\n\t\t\t*ngIf=\"totalPages > 1\"\n\t\t\t[align]=\"paginationAlignment()\"\n\t\t\t[enableLog]=\"enableLog()\"\n\t\t\t[first]=\"page() === 0\"\n\t\t\t[last]=\"page() === totalPages - 1\"\n\t\t\t[page]=\"page()\"\n\t\t\t[totalPages]=\"totalPages\"\n\t\t></as-lib-pagination>\n\t</div>\n\t<ng-template #tableHeadModal>\n\t\t<div class=\"modal-header\">\n\t\t\t<h4 class=\"modal-title pull-left\">Edit table header</h4>\n\t\t\t<button (click)=\"modalClose()\" aria-label=\"Close\" class=\"btn-close close pull-right\" type=\"button\">\n\t\t\t\t<span aria-hidden=\"true\" class=\"visually-hidden\">×</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<div class=\"modal-body\">\n\t\t\t<ng-container *ngFor=\"let td of tableHead()\">\n\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t<input\n\t\t\t\t\t\t(change)=\"handleTHchange(td.key)\"\n\t\t\t\t\t\t[checked]=\"!td.hidden\"\n\t\t\t\t\t\t[disabled]=\"td.mandatory\"\n\t\t\t\t\t\t[readOnly]=\"td.mandatory\"\n\t\t\t\t\t\tclass=\"form-check-input\"\n\t\t\t\t\t\tid=\"{{ td.key }}\"\n\t\t\t\t\t\trole=\"switch\"\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t/>\n\t\t\t\t\t<label class=\"form-check-label\" for=\"{{ td.key }}\">{{ td.label }} {{ td.mandatory ? \"*\" : \"\" }}</label>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<small class=\"small text-muted pt-2\">* Mandatory field for the view</small>\n\t\t</div>\n\t\t<div class=\"modal-footer\">\n\t\t\t<button (click)=\"resetValues()\" class=\"btn btn-outline-secondary me-auto\" type=\"button\">Reset</button>\n\t\t\t<button (click)=\"modalClose()\" class=\"btn btn-primary\" translate=\"CLOSE\" type=\"button\">Close</button>\n\t\t</div>\n\t</ng-template>\n</div>\n", styles: [".dropdown-holder{min-height:20px}.dynamic-table,.dynamic-table button,span.badge{font-size:12px;font-weight:400}.table-length label{display:inline-block;white-space:nowrap}.table-length select{display:inline-block;width:auto}.table-search{text-align:right}.table-search label{display:inline-block;white-space:nowrap}.table-search input{display:inline-block;width:auto}th.sortable div{display:flex;align-items:center;cursor:pointer}th.sortable div span:not(.fa){flex:1}th.sortable div span.fa{display:block}th.sortable div span.fa:after{content:\"\\f0dc\";opacity:.25}th.sortable.headerSortDown span.fa.fa:after{color:#348fe2;content:\"\\f0dd\";opacity:1}th.sortable.headerSortUp span.fa.fa:after{color:#348fe2;content:\"\\f0de\";opacity:1}.menu-button{border-radius:50%;width:24px;height:24px;display:inline-block;position:relative}.menu-button:after{content:\"\";background-image:radial-gradient(circle,black 2px,transparent 2px);background-size:100% 33.33%;width:18px;height:18px;display:block;top:3px;left:3px;position:absolute}.menu-button:hover{background:#4e4e4e26}.menu-button.menu-horizontal:after{background-size:33.33% 100%}.small-column{white-space:nowrap;width:1%}.loading{opacity:.3}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TooltipDirective, selector: "[tooltip]", inputs: ["tooltip"] }, { kind: "component", type: AsLibPaginationComponent, selector: "as-lib-pagination", inputs: ["first", "last", "align", "enableLog", "totalPages", "page"], outputs: ["pageChange"] }] });
|
|
276
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: AsLibGenericTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
277
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.1", type: AsLibGenericTableComponent, isStandalone: true, selector: "as-lib-generic-table", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, striped: { classPropertyName: "striped", publicName: "striped", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, hovered: { classPropertyName: "hovered", publicName: "hovered", isSignal: true, isRequired: false, transformFunction: null }, enableSearch: { classPropertyName: "enableSearch", publicName: "enableSearch", isSignal: true, isRequired: false, transformFunction: null }, rowCounter: { classPropertyName: "rowCounter", publicName: "rowCounter", isSignal: true, isRequired: false, transformFunction: null }, enableLog: { classPropertyName: "enableLog", publicName: "enableLog", isSignal: true, isRequired: false, transformFunction: null }, perPage: { classPropertyName: "perPage", publicName: "perPage", isSignal: true, isRequired: false, transformFunction: null }, tableHead: { classPropertyName: "tableHead", publicName: "tableHead", isSignal: true, isRequired: false, transformFunction: null }, tableData: { classPropertyName: "tableData", publicName: "tableData", isSignal: true, isRequired: false, transformFunction: null }, tableHeadStorage: { classPropertyName: "tableHeadStorage", publicName: "tableHeadStorage", isSignal: true, isRequired: false, transformFunction: null }, perPageValues: { classPropertyName: "perPageValues", publicName: "perPageValues", isSignal: true, isRequired: false, transformFunction: null }, headerActions: { classPropertyName: "headerActions", publicName: "headerActions", isSignal: true, isRequired: false, transformFunction: null }, rowActions: { classPropertyName: "rowActions", publicName: "rowActions", isSignal: true, isRequired: false, transformFunction: null }, tableStyle: { classPropertyName: "tableStyle", publicName: "tableStyle", isSignal: true, isRequired: false, transformFunction: null }, headStyle: { classPropertyName: "headStyle", publicName: "headStyle", isSignal: true, isRequired: false, transformFunction: null }, paginationAlignment: { classPropertyName: "paginationAlignment", publicName: "paginationAlignment", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filterParamsChanged: "filterParamsChanged", editRow: "editRow", sliderClicked: "sliderClicked", headerActionClicked: "headerActionClicked", rowActionClicked: "rowActionClicked", tableHeadChanged: "tableHeadChanged" }, providers: [BsModalService], ngImport: i0, template: "<p *ngIf=\"loading()\">\n\t<img\n\t\t*ngIf=\"loading()\"\n\t\tclass=\"pl-3\"\n\t\tsrc=\"data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==\"\n\t/>\n</p>\n<div\n\t[ngClass]=\"{\n\t\tloading: loading()\n\t}\"\n\tclass=\"dynamic-table\"\n>\n\t<div class=\"row mb-3\">\n\t\t<div class=\"col-md-7 d-flex d-sm-flex d-md-block justify-content-center mb-2\">\n\t\t\t<div *ngIf=\"perPageValues() && perPageValues().length\" class=\"d-block d-md-inline-flex me-0 me-md-3\">\n\t\t\t\t<div class=\"table-length\">\n\t\t\t\t\t<label\n\t\t\t\t\t\t>Show\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t(change)=\"changePerPage($event)\"\n\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\tclass=\"form-select form-select-sm\"\n\t\t\t\t\t\t\tname=\"data-table-combine_length\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<option *ngFor=\"let perp of perPageValues()\" [selected]=\"perPage() === perp\" value=\"{{ perp }}\">{{ perp }}</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\tentries</label\n\t\t\t\t\t>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"headerActions() && headerActions().length\" class=\"d-block d-inline-flex\">\n\t\t\t\t<div class=\"dt-buttons btn-group flex-wrap\">\n\t\t\t\t\t<ng-container *ngFor=\"let action of headerActions()\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t(click)=\"headerAction(action.actionName)\"\n\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\tid=\"header-action-{{ action.actionName }}\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i> {{ action.label }}</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"enableSearch()\" class=\"col-md-5 d-flex d-xl-block justify-content-center\">\n\t\t\t<div class=\"table-search\">\n\t\t\t\t<label\n\t\t\t\t\t>Search:\n\t\t\t\t\t<input\n\t\t\t\t\t\t(ngModelChange)=\"this.searchUpdate.next($event)\"\n\t\t\t\t\t\t[(ngModel)]=\"search\"\n\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\tclass=\"form-control form-control-sm\"\n\t\t\t\t\t\tid=\"table-search\"\n\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t/></label>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"table-responsive\">\n\t\t<table\n\t\t\t[ngClass]=\"{\n\t\t\t\t'table-striped': striped(),\n\t\t\t\t'table-bordered': bordered(),\n\t\t\t\t'table-hover': hovered()\n\t\t\t}\"\n\t\t\tclass=\"table table-fixed align-middle {{ tableStyle() }}\"\n\t\t>\n\t\t\t<thead [class]=\"headStyle()\">\n\t\t\t\t<tr>\n\t\t\t\t\t<th *ngIf=\"rowCounter\" class=\"text-end small-column\"> Nr.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t(click)=\"!head.notSortable && tableSort(head.key)\"\n\t\t\t\t\t\t\t*ngIf=\"!head.hidden\"\n\t\t\t\t\t\t\t[ngClass]=\"head.sort\"\n\t\t\t\t\t\t\tclass=\"header {{ head.notSortable ? '' : 'sortable' }} {{ head.cellAlign }}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<span [translate]=\"head.key.toUpperCase()\">{{ head.label || head.key }}</span>\n\t\t\t\t\t\t\t\t<span class=\"fa\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<th *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"header small-column text-center p-0\" data-width=\"50\">\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t(click)=\"openTableLayoutModal(tableHeadModal)\"\n\t\t\t\t\t\t\t*ngIf=\"tableHeadStorage()\"\n\t\t\t\t\t\t\taria-controls=\"basic-link-dropdown\"\n\t\t\t\t\t\t\tclass=\"menu-button toggle-white big-toggle dropdown-menu-link\"\n\t\t\t\t\t\t></a>\n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<tr *ngFor=\"let row of tableData(); let i = index\" class=\"{{ row['rowClass'] || '' }}\">\n\t\t\t\t\t<th *ngIf=\"rowCounter()\" class=\"text-end\"> {{ i + counter }}.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<td *ngIf=\"!head.hidden\" class=\"header text-nowrap {{ head.cellAlign }}\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'select'\">\n\t\t\t\t\t\t\t\t<input class=\"select\" type=\"checkbox\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!head.type\">\n\t\t\t\t\t\t\t\t{{ row[head.key] }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'badge'\">\n\t\t\t\t\t\t\t\t<span class=\"badge {{ row[head.key + 'Badge'] }}\">{{ row[head.key] }}</span>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'date'\">\n\t\t\t\t\t\t\t\t{{ row[head.key] | date: \"dd.MM.yyyy HH:mm:ss\" }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'slider'\">\n\t\t\t\t\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t(change)=\"sliderClicked.emit(row)\"\n\t\t\t\t\t\t\t\t\t\t[checked]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\tclass=\"switched\"\n\t\t\t\t\t\t\t\t\t\tid=\"check-{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<label for=\"check-{{ row['id'] }}\"></label>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'input'\">\n\t\t\t\t\t\t\t\t<input [value]=\"row[head.key]\" type=\"text\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<td *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"small-column\">\n\t\t\t\t\t\t<div class=\"menu text-end\">\n\t\t\t\t\t\t\t<ng-container *ngFor=\"let action of rowActions()\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t(click)=\"rowAction(action.actionName, row)\"\n\t\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm ms-2 {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\t\t<as-lib-pagination\n\t\t\t(pageChange)=\"pageChange($event)\"\n\t\t\t*ngIf=\"totalPages > 1\"\n\t\t\t[align]=\"paginationAlignment()\"\n\t\t\t[enableLog]=\"enableLog()\"\n\t\t\t[first]=\"page() === 0\"\n\t\t\t[last]=\"page() === totalPages - 1\"\n\t\t\t[page]=\"page()\"\n\t\t\t[totalPages]=\"totalPages\"\n\t\t></as-lib-pagination>\n\t</div>\n\t<ng-template #tableHeadModal>\n\t\t<div class=\"modal-header\">\n\t\t\t<h4 class=\"modal-title pull-left\">Edit table header</h4>\n\t\t\t<button (click)=\"modalClose()\" aria-label=\"Close\" class=\"btn-close close pull-right\" type=\"button\">\n\t\t\t\t<span aria-hidden=\"true\" class=\"visually-hidden\">×</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<div class=\"modal-body\">\n\t\t\t<ng-container *ngFor=\"let td of tableHead()\">\n\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t<input\n\t\t\t\t\t\t(change)=\"handleTHchange(td.key)\"\n\t\t\t\t\t\t[checked]=\"!td.hidden\"\n\t\t\t\t\t\t[disabled]=\"td.mandatory\"\n\t\t\t\t\t\t[readOnly]=\"td.mandatory\"\n\t\t\t\t\t\tclass=\"form-check-input\"\n\t\t\t\t\t\tid=\"{{ td.key }}\"\n\t\t\t\t\t\trole=\"switch\"\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t/>\n\t\t\t\t\t<label class=\"form-check-label\" for=\"{{ td.key }}\">{{ td.label }} {{ td.mandatory ? \"*\" : \"\" }}</label>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<small class=\"small text-muted pt-2\">* Mandatory field for the view</small>\n\t\t</div>\n\t\t<div class=\"modal-footer\">\n\t\t\t<button (click)=\"resetValues()\" class=\"btn btn-outline-secondary me-auto\" type=\"button\">Reset</button>\n\t\t\t<button (click)=\"modalClose()\" class=\"btn btn-primary\" translate=\"CLOSE\" type=\"button\">Close</button>\n\t\t</div>\n\t</ng-template>\n</div>\n", styles: [".dropdown-holder{min-height:20px}.dynamic-table,.dynamic-table button,span.badge{font-size:12px;font-weight:400}.table-length label{display:inline-block;white-space:nowrap}.table-length select{display:inline-block;width:auto}.table-search{text-align:right}.table-search label{display:inline-block;white-space:nowrap}.table-search input{display:inline-block;width:auto}th.sortable div{display:flex;align-items:center;cursor:pointer}th.sortable div span:not(.fa){flex:1}th.sortable div span.fa{display:block}th.sortable div span.fa:after{content:\"\\f0dc\";opacity:.25}th.sortable.headerSortDown span.fa.fa:after{color:#348fe2;content:\"\\f0dd\";opacity:1}th.sortable.headerSortUp span.fa.fa:after{color:#348fe2;content:\"\\f0de\";opacity:1}.menu-button{border-radius:50%;width:24px;height:24px;display:inline-block;position:relative}.menu-button:after{content:\"\";background-image:radial-gradient(circle,black 2px,transparent 2px);background-size:100% 33.33%;width:18px;height:18px;display:block;top:3px;left:3px;position:absolute}.menu-button:hover{background:#4e4e4e26}.menu-button.menu-horizontal:after{background-size:33.33% 100%}.small-column{white-space:nowrap;width:1%}.loading{opacity:.3}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TooltipDirective, selector: "[tooltip]", inputs: ["tooltip"] }, { kind: "component", type: AsLibPaginationComponent, selector: "as-lib-pagination", inputs: ["first", "last", "align", "enableLog", "totalPages", "page"], outputs: ["pageChange"] }] });
|
|
277
278
|
}
|
|
278
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: AsLibGenericTableComponent, decorators: [{
|
|
279
280
|
type: Component,
|
|
280
|
-
args: [{ selector: 'as-lib-generic-table',
|
|
281
|
+
args: [{ selector: 'as-lib-generic-table', imports: [
|
|
281
282
|
CommonModule,
|
|
282
283
|
FormsModule,
|
|
283
284
|
TooltipDirective,
|
|
284
|
-
TooltipComponent,
|
|
285
285
|
AsLibPaginationComponent
|
|
286
|
-
], template: "<p *ngIf=\"loading()\">\n\t<img\n\t\t*ngIf=\"loading()\"\n\t\tclass=\"pl-3\"\n\t\tsrc=\"data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==\"\n\t/>\n</p>\n<div\n\t[ngClass]=\"{\n\t\tloading: loading()\n\t}\"\n\tclass=\"dynamic-table\"\n>\n\t<div class=\"row mb-3\">\n\t\t<div class=\"col-md-7 d-flex d-sm-flex d-md-block justify-content-center mb-2\">\n\t\t\t<div *ngIf=\"perPageValues() && perPageValues().length\" class=\"d-block d-md-inline-flex me-0 me-md-3\">\n\t\t\t\t<div class=\"table-length\">\n\t\t\t\t\t<label\n\t\t\t\t\t\t>Show\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t(change)=\"changePerPage($event)\"\n\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\tclass=\"form-select form-select-sm\"\n\t\t\t\t\t\t\tname=\"data-table-combine_length\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<option *ngFor=\"let perp of perPageValues()\" [selected]=\"perPage() === perp\" value=\"{{ perp }}\">{{ perp }}</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\tentries</label\n\t\t\t\t\t>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"headerActions() && headerActions().length\" class=\"d-block d-inline-flex\">\n\t\t\t\t<div class=\"dt-buttons btn-group flex-wrap\">\n\t\t\t\t\t<ng-container *ngFor=\"let action of headerActions()\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t(click)=\"headerAction(action.actionName)\"\n\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\tid=\"header-action-{{ action.actionName }}\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i> {{ action.label }}</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"enableSearch()\" class=\"col-md-5 d-flex d-xl-block justify-content-center\">\n\t\t\t<div class=\"table-search\">\n\t\t\t\t<label\n\t\t\t\t\t>Search:\n\t\t\t\t\t<input\n\t\t\t\t\t\t(ngModelChange)=\"this.searchUpdate.next($event)\"\n\t\t\t\t\t\t[(ngModel)]=\"search\"\n\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\tclass=\"form-control form-control-sm\"\n\t\t\t\t\t\tid=\"table-search\"\n\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t/></label>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"table-responsive\">\n\t\t<table\n\t\t\t[ngClass]=\"{\n\t\t\t\t'table-striped': striped(),\n\t\t\t\t'table-bordered': bordered(),\n\t\t\t\t'table-hover': hovered()\n\t\t\t}\"\n\t\t\tclass=\"table table-fixed align-middle {{ tableStyle() }}\"\n\t\t>\n\t\t\t<thead [class]=\"headStyle()\">\n\t\t\t\t<tr>\n\t\t\t\t\t<th *ngIf=\"rowCounter\" class=\"text-end small-column\"> Nr.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t(click)=\"!head.notSortable && tableSort(head.key)\"\n\t\t\t\t\t\t\t*ngIf=\"!head.hidden\"\n\t\t\t\t\t\t\t[ngClass]=\"head.sort\"\n\t\t\t\t\t\t\tclass=\"header {{ head.notSortable ? '' : 'sortable' }} {{ head.cellAlign }}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<span [translate]=\"head.key.toUpperCase()\">{{ head.label || head.key }}</span>\n\t\t\t\t\t\t\t\t<span class=\"fa\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<th *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"header small-column text-center p-0\" data-width=\"50\">\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t(click)=\"openTableLayoutModal(tableHeadModal)\"\n\t\t\t\t\t\t\t*ngIf=\"tableHeadStorage()\"\n\t\t\t\t\t\t\taria-controls=\"basic-link-dropdown\"\n\t\t\t\t\t\t\tclass=\"menu-button toggle-white big-toggle dropdown-menu-link\"\n\t\t\t\t\t\t></a>\n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<tr *ngFor=\"let row of tableData(); let i = index\" class=\"{{ row['rowClass'] || '' }}\">\n\t\t\t\t\t<th *ngIf=\"rowCounter()\" class=\"text-end\"> {{ i + counter }}.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<td *ngIf=\"!head.hidden\" class=\"header text-nowrap {{ head.cellAlign }}\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'select'\">\n\t\t\t\t\t\t\t\t<input class=\"select\" type=\"checkbox\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!head.type\">\n\t\t\t\t\t\t\t\t{{ row[head.key] }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'badge'\">\n\t\t\t\t\t\t\t\t<span class=\"badge {{ row[head.key + 'Badge'] }}\">{{ row[head.key] }}</span>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'date'\">\n\t\t\t\t\t\t\t\t{{ row[head.key] | date: \"dd.MM.yyyy HH:mm:ss\" }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'slider'\">\n\t\t\t\t\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t(change)=\"sliderClicked.emit(row)\"\n\t\t\t\t\t\t\t\t\t\t[checked]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\tclass=\"switched\"\n\t\t\t\t\t\t\t\t\t\tid=\"check-{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<label for=\"check-{{ row['id'] }}\"></label>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'input'\">\n\t\t\t\t\t\t\t\t<input [value]=\"row[head.key]\" type=\"text\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<td *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"small-column\">\n\t\t\t\t\t\t<div class=\"menu text-end\">\n\t\t\t\t\t\t\t<ng-container *ngFor=\"let action of rowActions()\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t(click)=\"rowAction(action.actionName, row)\"\n\t\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm ms-2 {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\t\t<as-lib-pagination\n\t\t\t(pageChange)=\"pageChange($event)\"\n\t\t\t*ngIf=\"totalPages > 1\"\n\t\t\t[align]=\"paginationAlignment()\"\n\t\t\t[enableLog]=\"enableLog()\"\n\t\t\t[first]=\"page() === 0\"\n\t\t\t[last]=\"page() === totalPages - 1\"\n\t\t\t[page]=\"page()\"\n\t\t\t[totalPages]=\"totalPages\"\n\t\t></as-lib-pagination>\n\t</div>\n\t<ng-template #tableHeadModal>\n\t\t<div class=\"modal-header\">\n\t\t\t<h4 class=\"modal-title pull-left\">Edit table header</h4>\n\t\t\t<button (click)=\"modalClose()\" aria-label=\"Close\" class=\"btn-close close pull-right\" type=\"button\">\n\t\t\t\t<span aria-hidden=\"true\" class=\"visually-hidden\">×</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<div class=\"modal-body\">\n\t\t\t<ng-container *ngFor=\"let td of tableHead()\">\n\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t<input\n\t\t\t\t\t\t(change)=\"handleTHchange(td.key)\"\n\t\t\t\t\t\t[checked]=\"!td.hidden\"\n\t\t\t\t\t\t[disabled]=\"td.mandatory\"\n\t\t\t\t\t\t[readOnly]=\"td.mandatory\"\n\t\t\t\t\t\tclass=\"form-check-input\"\n\t\t\t\t\t\tid=\"{{ td.key }}\"\n\t\t\t\t\t\trole=\"switch\"\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t/>\n\t\t\t\t\t<label class=\"form-check-label\" for=\"{{ td.key }}\">{{ td.label }} {{ td.mandatory ? \"*\" : \"\" }}</label>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<small class=\"small text-muted pt-2\">* Mandatory field for the view</small>\n\t\t</div>\n\t\t<div class=\"modal-footer\">\n\t\t\t<button (click)=\"resetValues()\" class=\"btn btn-outline-secondary me-auto\" type=\"button\">Reset</button>\n\t\t\t<button (click)=\"modalClose()\" class=\"btn btn-primary\" translate=\"CLOSE\" type=\"button\">Close</button>\n\t\t</div>\n\t</ng-template>\n</div>\n", styles: [".dropdown-holder{min-height:20px}.dynamic-table,.dynamic-table button,span.badge{font-size:12px;font-weight:400}.table-length label{display:inline-block;white-space:nowrap}.table-length select{display:inline-block;width:auto}.table-search{text-align:right}.table-search label{display:inline-block;white-space:nowrap}.table-search input{display:inline-block;width:auto}th.sortable div{display:flex;align-items:center;cursor:pointer}th.sortable div span:not(.fa){flex:1}th.sortable div span.fa{display:block}th.sortable div span.fa:after{content:\"\\f0dc\";opacity:.25}th.sortable.headerSortDown span.fa.fa:after{color:#348fe2;content:\"\\f0dd\";opacity:1}th.sortable.headerSortUp span.fa.fa:after{color:#348fe2;content:\"\\f0de\";opacity:1}.menu-button{border-radius:50%;width:24px;height:24px;display:inline-block;position:relative}.menu-button:after{content:\"\";background-image:radial-gradient(circle,black 2px,transparent 2px);background-size:100% 33.33%;width:18px;height:18px;display:block;top:3px;left:3px;position:absolute}.menu-button:hover{background:#4e4e4e26}.menu-button.menu-horizontal:after{background-size:33.33% 100%}.small-column{white-space:nowrap;width:1%}.loading{opacity:.3}\n"] }]
|
|
286
|
+
], providers: [BsModalService], standalone: true, template: "<p *ngIf=\"loading()\">\n\t<img\n\t\t*ngIf=\"loading()\"\n\t\tclass=\"pl-3\"\n\t\tsrc=\"data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==\"\n\t/>\n</p>\n<div\n\t[ngClass]=\"{\n\t\tloading: loading()\n\t}\"\n\tclass=\"dynamic-table\"\n>\n\t<div class=\"row mb-3\">\n\t\t<div class=\"col-md-7 d-flex d-sm-flex d-md-block justify-content-center mb-2\">\n\t\t\t<div *ngIf=\"perPageValues() && perPageValues().length\" class=\"d-block d-md-inline-flex me-0 me-md-3\">\n\t\t\t\t<div class=\"table-length\">\n\t\t\t\t\t<label\n\t\t\t\t\t\t>Show\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t(change)=\"changePerPage($event)\"\n\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\tclass=\"form-select form-select-sm\"\n\t\t\t\t\t\t\tname=\"data-table-combine_length\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<option *ngFor=\"let perp of perPageValues()\" [selected]=\"perPage() === perp\" value=\"{{ perp }}\">{{ perp }}</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\tentries</label\n\t\t\t\t\t>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"headerActions() && headerActions().length\" class=\"d-block d-inline-flex\">\n\t\t\t\t<div class=\"dt-buttons btn-group flex-wrap\">\n\t\t\t\t\t<ng-container *ngFor=\"let action of headerActions()\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t(click)=\"headerAction(action.actionName)\"\n\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\tid=\"header-action-{{ action.actionName }}\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i> {{ action.label }}</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"enableSearch()\" class=\"col-md-5 d-flex d-xl-block justify-content-center\">\n\t\t\t<div class=\"table-search\">\n\t\t\t\t<label\n\t\t\t\t\t>Search:\n\t\t\t\t\t<input\n\t\t\t\t\t\t(ngModelChange)=\"this.searchUpdate.next($event)\"\n\t\t\t\t\t\t[(ngModel)]=\"search\"\n\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\tclass=\"form-control form-control-sm\"\n\t\t\t\t\t\tid=\"table-search\"\n\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t/></label>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"table-responsive\">\n\t\t<table\n\t\t\t[ngClass]=\"{\n\t\t\t\t'table-striped': striped(),\n\t\t\t\t'table-bordered': bordered(),\n\t\t\t\t'table-hover': hovered()\n\t\t\t}\"\n\t\t\tclass=\"table table-fixed align-middle {{ tableStyle() }}\"\n\t\t>\n\t\t\t<thead [class]=\"headStyle()\">\n\t\t\t\t<tr>\n\t\t\t\t\t<th *ngIf=\"rowCounter\" class=\"text-end small-column\"> Nr.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t(click)=\"!head.notSortable && tableSort(head.key)\"\n\t\t\t\t\t\t\t*ngIf=\"!head.hidden\"\n\t\t\t\t\t\t\t[ngClass]=\"head.sort\"\n\t\t\t\t\t\t\tclass=\"header {{ head.notSortable ? '' : 'sortable' }} {{ head.cellAlign }}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<span [translate]=\"head.key.toUpperCase()\">{{ head.label || head.key }}</span>\n\t\t\t\t\t\t\t\t<span class=\"fa\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<th *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"header small-column text-center p-0\" data-width=\"50\">\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t(click)=\"openTableLayoutModal(tableHeadModal)\"\n\t\t\t\t\t\t\t*ngIf=\"tableHeadStorage()\"\n\t\t\t\t\t\t\taria-controls=\"basic-link-dropdown\"\n\t\t\t\t\t\t\tclass=\"menu-button toggle-white big-toggle dropdown-menu-link\"\n\t\t\t\t\t\t></a>\n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<tr *ngFor=\"let row of tableData(); let i = index\" class=\"{{ row['rowClass'] || '' }}\">\n\t\t\t\t\t<th *ngIf=\"rowCounter()\" class=\"text-end\"> {{ i + counter }}.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<td *ngIf=\"!head.hidden\" class=\"header text-nowrap {{ head.cellAlign }}\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'select'\">\n\t\t\t\t\t\t\t\t<input class=\"select\" type=\"checkbox\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!head.type\">\n\t\t\t\t\t\t\t\t{{ row[head.key] }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'badge'\">\n\t\t\t\t\t\t\t\t<span class=\"badge {{ row[head.key + 'Badge'] }}\">{{ row[head.key] }}</span>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'date'\">\n\t\t\t\t\t\t\t\t{{ row[head.key] | date: \"dd.MM.yyyy HH:mm:ss\" }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'slider'\">\n\t\t\t\t\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t(change)=\"sliderClicked.emit(row)\"\n\t\t\t\t\t\t\t\t\t\t[checked]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\tclass=\"switched\"\n\t\t\t\t\t\t\t\t\t\tid=\"check-{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<label for=\"check-{{ row['id'] }}\"></label>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'input'\">\n\t\t\t\t\t\t\t\t<input [value]=\"row[head.key]\" type=\"text\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<td *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"small-column\">\n\t\t\t\t\t\t<div class=\"menu text-end\">\n\t\t\t\t\t\t\t<ng-container *ngFor=\"let action of rowActions()\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t(click)=\"rowAction(action.actionName, row)\"\n\t\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm ms-2 {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\t\t<as-lib-pagination\n\t\t\t(pageChange)=\"pageChange($event)\"\n\t\t\t*ngIf=\"totalPages > 1\"\n\t\t\t[align]=\"paginationAlignment()\"\n\t\t\t[enableLog]=\"enableLog()\"\n\t\t\t[first]=\"page() === 0\"\n\t\t\t[last]=\"page() === totalPages - 1\"\n\t\t\t[page]=\"page()\"\n\t\t\t[totalPages]=\"totalPages\"\n\t\t></as-lib-pagination>\n\t</div>\n\t<ng-template #tableHeadModal>\n\t\t<div class=\"modal-header\">\n\t\t\t<h4 class=\"modal-title pull-left\">Edit table header</h4>\n\t\t\t<button (click)=\"modalClose()\" aria-label=\"Close\" class=\"btn-close close pull-right\" type=\"button\">\n\t\t\t\t<span aria-hidden=\"true\" class=\"visually-hidden\">×</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<div class=\"modal-body\">\n\t\t\t<ng-container *ngFor=\"let td of tableHead()\">\n\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t<input\n\t\t\t\t\t\t(change)=\"handleTHchange(td.key)\"\n\t\t\t\t\t\t[checked]=\"!td.hidden\"\n\t\t\t\t\t\t[disabled]=\"td.mandatory\"\n\t\t\t\t\t\t[readOnly]=\"td.mandatory\"\n\t\t\t\t\t\tclass=\"form-check-input\"\n\t\t\t\t\t\tid=\"{{ td.key }}\"\n\t\t\t\t\t\trole=\"switch\"\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t/>\n\t\t\t\t\t<label class=\"form-check-label\" for=\"{{ td.key }}\">{{ td.label }} {{ td.mandatory ? \"*\" : \"\" }}</label>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<small class=\"small text-muted pt-2\">* Mandatory field for the view</small>\n\t\t</div>\n\t\t<div class=\"modal-footer\">\n\t\t\t<button (click)=\"resetValues()\" class=\"btn btn-outline-secondary me-auto\" type=\"button\">Reset</button>\n\t\t\t<button (click)=\"modalClose()\" class=\"btn btn-primary\" translate=\"CLOSE\" type=\"button\">Close</button>\n\t\t</div>\n\t</ng-template>\n</div>\n", styles: [".dropdown-holder{min-height:20px}.dynamic-table,.dynamic-table button,span.badge{font-size:12px;font-weight:400}.table-length label{display:inline-block;white-space:nowrap}.table-length select{display:inline-block;width:auto}.table-search{text-align:right}.table-search label{display:inline-block;white-space:nowrap}.table-search input{display:inline-block;width:auto}th.sortable div{display:flex;align-items:center;cursor:pointer}th.sortable div span:not(.fa){flex:1}th.sortable div span.fa{display:block}th.sortable div span.fa:after{content:\"\\f0dc\";opacity:.25}th.sortable.headerSortDown span.fa.fa:after{color:#348fe2;content:\"\\f0dd\";opacity:1}th.sortable.headerSortUp span.fa.fa:after{color:#348fe2;content:\"\\f0de\";opacity:1}.menu-button{border-radius:50%;width:24px;height:24px;display:inline-block;position:relative}.menu-button:after{content:\"\";background-image:radial-gradient(circle,black 2px,transparent 2px);background-size:100% 33.33%;width:18px;height:18px;display:block;top:3px;left:3px;position:absolute}.menu-button:hover{background:#4e4e4e26}.menu-button.menu-horizontal:after{background-size:33.33% 100%}.small-column{white-space:nowrap;width:1%}.loading{opacity:.3}\n"] }]
|
|
287
287
|
}], ctorParameters: () => [] });
|
|
288
288
|
|
|
289
289
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentsmith.bgd-as-lib-generic-table.mjs","sources":["../../../projects/as-lib-generic-table/src/lib/as-lib-generic-table.service.ts","../../../projects/as-lib-generic-table/src/lib/directives/component/tooltip.component.ts","../../../projects/as-lib-generic-table/src/lib/directives/component/tooltip.component.html","../../../projects/as-lib-generic-table/src/lib/directives/tooltip/tooltip.directive.ts","../../../projects/as-lib-generic-table/src/lib/as-lib-generic-table.component.ts","../../../projects/as-lib-generic-table/src/lib/as-lib-generic-table.component.html","../../../projects/as-lib-generic-table/src/public-api.ts","../../../projects/as-lib-generic-table/src/agentsmith.bgd-as-lib-generic-table.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AsLibGenericTableService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n\tselector: 'tooltip',\n standalone: true,\n\ttemplateUrl: './tooltip.component.html',\n\tstyleUrls: ['./tooltip.component.scss'],\n})\nexport class TooltipComponent implements OnInit {\n\ttooltip: string = '';\n\tleft: number = 0;\n\ttop: number = 0;\n\n\tconstructor() {}\n\n\tngOnInit(): void {}\n}\n","<div [style.left]=\"left + 'px'\" [style.top]=\"top + 'px'\" class=\"my-tooltip\">\n\t{{ tooltip }}\n</div>\n","import {\n ApplicationRef,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n HostListener,\n Injector,\n Input,\n ViewContainerRef,\n} from '@angular/core';\nimport { TooltipComponent } from '../component/tooltip.component';\n\n@Directive({\n selector: '[tooltip]',\n standalone: true\n})\nexport class TooltipDirective {\n @Input() tooltip = '';\n\n private componentRef: ComponentRef<any> | null = null;\n\n constructor(\n private elementRef: ElementRef,\n private appRef: ApplicationRef,\n private viewContainerRef: ViewContainerRef\n ) {\n }\n\n @HostListener('mouseenter')\n onMouseEnter(): void {\n if (this.componentRef === null) {\n this.componentRef = this.viewContainerRef.createComponent(TooltipComponent);\n this.componentRef.instance.text = this.tooltip;\n this.setTooltipComponentProperties();\n }\n }\n\n @HostListener('mouseleave')\n onMouseLeave(): void {\n this.destroy();\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n destroy(): void {\n if (this.componentRef !== null) {\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private setTooltipComponentProperties() {\n if (this.componentRef !== null) {\n this.componentRef.instance.tooltip = this.tooltip;\n const {left, right, bottom} = this.elementRef.nativeElement.getBoundingClientRect();\n this.componentRef.instance.left = (right - left) / 2 + left;\n this.componentRef.instance.top = bottom;\n }\n }\n}\n","import { Component, effect, Inject, input, OnInit, output, TemplateRef } from '@angular/core';\nimport { IActionButton, IFilterParams, ITableHead } from \"./exports\";\nimport { debounceTime, distinctUntilChanged, Subject } from \"rxjs\";\nimport { BsModalRef, BsModalService } from \"ngx-bootstrap/modal\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { TooltipDirective } from \"./directives/tooltip/tooltip.directive\";\nimport { TooltipComponent } from \"./directives/component/tooltip.component\";\nimport { AsLibPaginationComponent } from \"@agentsmith.bgd/as-lib-pagination\";\n\n@Component({\n selector: 'as-lib-generic-table',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n TooltipDirective,\n TooltipComponent,\n AsLibPaginationComponent\n ],\n templateUrl: './as-lib-generic-table.component.html',\n styleUrl: './as-lib-generic-table.component.scss'\n})\nexport class AsLibGenericTableComponent implements OnInit {\n\n\n loading = input(false);\n striped = input(false);\n bordered = input(false);\n hovered = input(false);\n enableSearch = input(true);\n rowCounter = input(false);\n enableLog = input(false);\n perPage = input(10);\n\n tableHead = input<ITableHead[]>([]);\n\n tableData = input<Record<string, never>[]>([]);\n\n tableHeadStorage = input<string>('');\n\n perPageValues = input<number[]>([10, 20, 50, 100]);\n\n headerActions = input<IActionButton[]>([]);\n\n rowActions = input<IActionButton[]>([]);\n\n tableStyle = input<'' | 'table-light' | 'table-dark'>('');\n\n headStyle = input<\n | 'table-default'\n | 'table-primary'\n | 'table-secondary'\n | 'table-success'\n | 'table-danger'\n | 'table-warning'\n | 'table-info'\n | 'table-light'\n | 'table-dark'>('table-default');\n paginationAlignment = input<'' | 'justify-content-center' | 'justify-content-end'>('justify-content-end');\n\n totalItems = input(0);\n\n page = input(0);\n\n filterParamsChanged = output<IFilterParams>();\n\n editRow = output<Record<string, never>>();\n\n sliderClicked = output<Record<string, never>>();\n\n headerActionClicked = output<string>();\n\n rowActionClicked = output<{ action: string; value: any }>();\n\n tableHeadChanged = output<string[] | null>();\n\n\n bsModalRef!: BsModalRef;\n searchUpdate: Subject<string> = new Subject();\n search = '';\n totalPages = 0;\n counter = 0;\n private sort!: string;\n private sortOrder: 'asc' | 'desc' = 'asc';\n\n private modalService: BsModalService = Inject(BsModalService)\n\n\n constructor() {\n effect(() => {\n console.log(`The count is:`, this.totalItems(), this.page());\n this.counter = this.page() * this.perPage() + 1\n this.calculatePages();\n });\n }\n\n ngOnInit(): void {\n if (this.tableHeadStorage()) {\n const storage = localStorage.getItem(this.tableHeadStorage());\n if (storage) {\n const hidden: string[] = (JSON.parse(storage) as string[]) || [];\n this.tableHead().forEach(t => (t.hidden = hidden.includes(t.key)));\n } else {\n localStorage.setItem(this.tableHeadStorage(), JSON.stringify(this.tableHead().filter(t => t.hidden).map(t => t.key)));\n }\n }\n this.sort = this.tableHead()[0].key;\n this.log('totalPages', this.totalPages);\n this.log('Table head', this.tableHead());\n this.log('Table data', this.tableData());\n this.log('Row actions', this.rowActions());\n this.searchUpdate.pipe(debounceTime(500), distinctUntilChanged()).subscribe(_ => {\n this.log('search', this.search);\n const emitValue: IFilterParams = {\n page: 0,\n sort: this.sort,\n order: this.sortOrder,\n perPage: this.perPage(),\n searchString: this.search,\n };\n this.log('Search value change, sort values: ', emitValue);\n this.filterParamsChanged.emit(emitValue);\n });\n\n if (!this.perPageValues().includes(this.perPage())) {\n throw new Error('Per page value invalid');\n }\n this.log('Loading', this.loading());\n }\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n openTableLayoutModal(tableHeadModal: TemplateRef<any>): void {\n this.log('Open layout');\n this.bsModalRef = this.modalService.show(tableHeadModal, {\n animated: true,\n ignoreBackdropClick: true,\n class: 'confirm-modal modal-sm',\n initialState: {},\n });\n }\n\n handleTHchange(key: string): void {\n this.log('change triggered', key);\n this.tableHead().forEach(t => {\n if (t.key === key) {\n t.hidden = !t.hidden;\n this.tableHeadStorage &&\n localStorage.setItem(this.tableHeadStorage(), JSON.stringify(this.tableHead().filter(t => t.hidden).map(t => t.key)));\n }\n });\n }\n\n tableSort(key: string): void {\n this.log('table sort key', key);\n this.sort = key;\n this.tableHead().forEach(h => {\n if (h.key === key) {\n if (h.sort === 'headerSortDown') {\n this.sortOrder = 'desc';\n h.sort = 'headerSortUp';\n } else {\n h.sort = 'headerSortDown';\n this.sortOrder = 'asc';\n }\n const emitValue: IFilterParams = {\n page: 0,\n sort: this.sort,\n order: this.sortOrder,\n perPage: this.perPage(),\n searchString: this.search,\n };\n this.log('Sort changed, filter values: ', emitValue);\n this.filterParamsChanged.emit(emitValue);\n } else {\n h.sort = '';\n }\n });\n }\n\n changePerPage($event: Event): void {\n const perPage = parseInt(($event.target as HTMLSelectElement).value, 10) || 25;\n //this.perPage = perPage;\n // this.page = 0;\n this.log('changePerPage', perPage);\n this.calculatePages();\n this.filterParamsChanged.emit({\n page: 0,\n sort: this.sort,\n order: this.sortOrder,\n perPage: perPage,\n searchString: this.search,\n });\n }\n\n log(value: any, ...rest: any[]): void {\n if (this.enableLog() || localStorage.getItem('loggerEnable')) {\n console.log(`AS Dynamic Table -> ${value}`, ...rest);\n }\n }\n\n emitRow(row: Record<string, never>) {\n this.log('edit row', row);\n this.editRow.emit(row);\n }\n\n headerAction(actionName: string) {\n this.log('Header action', actionName);\n this.headerActionClicked.emit(actionName);\n }\n\n rowAction(action: string, value: Record<string, never>) {\n this.log('Row action', action, value);\n this.rowActionClicked.emit({action, value});\n }\n\n pageChange(page: number) {\n const emitValue: IFilterParams = {\n page,\n sort: this.sort,\n order: this.sortOrder,\n perPage: this.perPage(),\n searchString: this.search,\n };\n this.log('Page change, filter values: ', emitValue);\n this.filterParamsChanged.emit(emitValue);\n }\n\n modalClose() {\n const hiddenKeys = this.tableHead().filter(t => t.hidden).map(t => t.key);\n this.log('Modal closed, saved keys', hiddenKeys);\n this.tableHeadChanged.emit(hiddenKeys);\n this.bsModalRef.hide();\n }\n\n //\n resetValues() {\n this.tableHeadChanged.emit(null);\n this.bsModalRef.hide();\n }\n\n //\n private calculatePages() {\n this.totalPages = Math.ceil(this.totalItems() / this.perPage());\n this.log('total items/pages', this.totalItems(), this.totalPages);\n }\n\n\n}\n","<p *ngIf=\"loading()\">\n\t<img\n\t\t*ngIf=\"loading()\"\n\t\tclass=\"pl-3\"\n\t\tsrc=\"data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==\"\n\t/>\n</p>\n<div\n\t[ngClass]=\"{\n\t\tloading: loading()\n\t}\"\n\tclass=\"dynamic-table\"\n>\n\t<div class=\"row mb-3\">\n\t\t<div class=\"col-md-7 d-flex d-sm-flex d-md-block justify-content-center mb-2\">\n\t\t\t<div *ngIf=\"perPageValues() && perPageValues().length\" class=\"d-block d-md-inline-flex me-0 me-md-3\">\n\t\t\t\t<div class=\"table-length\">\n\t\t\t\t\t<label\n\t\t\t\t\t\t>Show\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t(change)=\"changePerPage($event)\"\n\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\tclass=\"form-select form-select-sm\"\n\t\t\t\t\t\t\tname=\"data-table-combine_length\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<option *ngFor=\"let perp of perPageValues()\" [selected]=\"perPage() === perp\" value=\"{{ perp }}\">{{ perp }}</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\tentries</label\n\t\t\t\t\t>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"headerActions() && headerActions().length\" class=\"d-block d-inline-flex\">\n\t\t\t\t<div class=\"dt-buttons btn-group flex-wrap\">\n\t\t\t\t\t<ng-container *ngFor=\"let action of headerActions()\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t(click)=\"headerAction(action.actionName)\"\n\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\tid=\"header-action-{{ action.actionName }}\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i> {{ action.label }}</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"enableSearch()\" class=\"col-md-5 d-flex d-xl-block justify-content-center\">\n\t\t\t<div class=\"table-search\">\n\t\t\t\t<label\n\t\t\t\t\t>Search:\n\t\t\t\t\t<input\n\t\t\t\t\t\t(ngModelChange)=\"this.searchUpdate.next($event)\"\n\t\t\t\t\t\t[(ngModel)]=\"search\"\n\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\tclass=\"form-control form-control-sm\"\n\t\t\t\t\t\tid=\"table-search\"\n\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t/></label>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"table-responsive\">\n\t\t<table\n\t\t\t[ngClass]=\"{\n\t\t\t\t'table-striped': striped(),\n\t\t\t\t'table-bordered': bordered(),\n\t\t\t\t'table-hover': hovered()\n\t\t\t}\"\n\t\t\tclass=\"table table-fixed align-middle {{ tableStyle() }}\"\n\t\t>\n\t\t\t<thead [class]=\"headStyle()\">\n\t\t\t\t<tr>\n\t\t\t\t\t<th *ngIf=\"rowCounter\" class=\"text-end small-column\"> Nr.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t(click)=\"!head.notSortable && tableSort(head.key)\"\n\t\t\t\t\t\t\t*ngIf=\"!head.hidden\"\n\t\t\t\t\t\t\t[ngClass]=\"head.sort\"\n\t\t\t\t\t\t\tclass=\"header {{ head.notSortable ? '' : 'sortable' }} {{ head.cellAlign }}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<span [translate]=\"head.key.toUpperCase()\">{{ head.label || head.key }}</span>\n\t\t\t\t\t\t\t\t<span class=\"fa\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<th *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"header small-column text-center p-0\" data-width=\"50\">\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t(click)=\"openTableLayoutModal(tableHeadModal)\"\n\t\t\t\t\t\t\t*ngIf=\"tableHeadStorage()\"\n\t\t\t\t\t\t\taria-controls=\"basic-link-dropdown\"\n\t\t\t\t\t\t\tclass=\"menu-button toggle-white big-toggle dropdown-menu-link\"\n\t\t\t\t\t\t></a>\n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<tr *ngFor=\"let row of tableData(); let i = index\" class=\"{{ row['rowClass'] || '' }}\">\n\t\t\t\t\t<th *ngIf=\"rowCounter()\" class=\"text-end\"> {{ i + counter }}.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<td *ngIf=\"!head.hidden\" class=\"header text-nowrap {{ head.cellAlign }}\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'select'\">\n\t\t\t\t\t\t\t\t<input class=\"select\" type=\"checkbox\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!head.type\">\n\t\t\t\t\t\t\t\t{{ row[head.key] }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'badge'\">\n\t\t\t\t\t\t\t\t<span class=\"badge {{ row[head.key + 'Badge'] }}\">{{ row[head.key] }}</span>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'date'\">\n\t\t\t\t\t\t\t\t{{ row[head.key] | date: \"dd.MM.yyyy HH:mm:ss\" }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'slider'\">\n\t\t\t\t\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t(change)=\"sliderClicked.emit(row)\"\n\t\t\t\t\t\t\t\t\t\t[checked]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\tclass=\"switched\"\n\t\t\t\t\t\t\t\t\t\tid=\"check-{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<label for=\"check-{{ row['id'] }}\"></label>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'input'\">\n\t\t\t\t\t\t\t\t<input [value]=\"row[head.key]\" type=\"text\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<td *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"small-column\">\n\t\t\t\t\t\t<div class=\"menu text-end\">\n\t\t\t\t\t\t\t<ng-container *ngFor=\"let action of rowActions()\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t(click)=\"rowAction(action.actionName, row)\"\n\t\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm ms-2 {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\t\t<as-lib-pagination\n\t\t\t(pageChange)=\"pageChange($event)\"\n\t\t\t*ngIf=\"totalPages > 1\"\n\t\t\t[align]=\"paginationAlignment()\"\n\t\t\t[enableLog]=\"enableLog()\"\n\t\t\t[first]=\"page() === 0\"\n\t\t\t[last]=\"page() === totalPages - 1\"\n\t\t\t[page]=\"page()\"\n\t\t\t[totalPages]=\"totalPages\"\n\t\t></as-lib-pagination>\n\t</div>\n\t<ng-template #tableHeadModal>\n\t\t<div class=\"modal-header\">\n\t\t\t<h4 class=\"modal-title pull-left\">Edit table header</h4>\n\t\t\t<button (click)=\"modalClose()\" aria-label=\"Close\" class=\"btn-close close pull-right\" type=\"button\">\n\t\t\t\t<span aria-hidden=\"true\" class=\"visually-hidden\">×</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<div class=\"modal-body\">\n\t\t\t<ng-container *ngFor=\"let td of tableHead()\">\n\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t<input\n\t\t\t\t\t\t(change)=\"handleTHchange(td.key)\"\n\t\t\t\t\t\t[checked]=\"!td.hidden\"\n\t\t\t\t\t\t[disabled]=\"td.mandatory\"\n\t\t\t\t\t\t[readOnly]=\"td.mandatory\"\n\t\t\t\t\t\tclass=\"form-check-input\"\n\t\t\t\t\t\tid=\"{{ td.key }}\"\n\t\t\t\t\t\trole=\"switch\"\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t/>\n\t\t\t\t\t<label class=\"form-check-label\" for=\"{{ td.key }}\">{{ td.label }} {{ td.mandatory ? \"*\" : \"\" }}</label>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<small class=\"small text-muted pt-2\">* Mandatory field for the view</small>\n\t\t</div>\n\t\t<div class=\"modal-footer\">\n\t\t\t<button (click)=\"resetValues()\" class=\"btn btn-outline-secondary me-auto\" type=\"button\">Reset</button>\n\t\t\t<button (click)=\"modalClose()\" class=\"btn btn-primary\" translate=\"CLOSE\" type=\"button\">Close</button>\n\t\t</div>\n\t</ng-template>\n</div>\n","/*\n * Public API Surface of as-lib-generic-table\n */\n\nexport * from './lib/as-lib-generic-table.service';\nexport * from './lib/as-lib-generic-table.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agentsmith.bgd-as-lib-generic-table.mjs","sources":["../../../projects/as-lib-generic-table/src/lib/as-lib-generic-table.service.ts","../../../projects/as-lib-generic-table/src/lib/directives/component/tooltip.component.ts","../../../projects/as-lib-generic-table/src/lib/directives/component/tooltip.component.html","../../../projects/as-lib-generic-table/src/lib/directives/tooltip/tooltip.directive.ts","../../../projects/as-lib-generic-table/src/lib/as-lib-generic-table.component.ts","../../../projects/as-lib-generic-table/src/lib/as-lib-generic-table.component.html","../../../projects/as-lib-generic-table/src/public-api.ts","../../../projects/as-lib-generic-table/src/agentsmith.bgd-as-lib-generic-table.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AsLibGenericTableService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n\tselector: 'tooltip',\n standalone: true,\n\ttemplateUrl: './tooltip.component.html',\n\tstyleUrls: ['./tooltip.component.scss'],\n})\nexport class TooltipComponent implements OnInit {\n\ttooltip: string = '';\n\tleft: number = 0;\n\ttop: number = 0;\n\n\tconstructor() {}\n\n\tngOnInit(): void {}\n}\n","<div [style.left]=\"left + 'px'\" [style.top]=\"top + 'px'\" class=\"my-tooltip\">\n\t{{ tooltip }}\n</div>\n","import {\n ApplicationRef,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n HostListener,\n Injector,\n Input,\n ViewContainerRef,\n} from '@angular/core';\nimport { TooltipComponent } from '../component/tooltip.component';\n\n@Directive({\n selector: '[tooltip]',\n standalone: true\n})\nexport class TooltipDirective {\n @Input() tooltip = '';\n\n private componentRef: ComponentRef<any> | null = null;\n\n constructor(\n private elementRef: ElementRef,\n private appRef: ApplicationRef,\n private viewContainerRef: ViewContainerRef\n ) {\n }\n\n @HostListener('mouseenter')\n onMouseEnter(): void {\n if (this.componentRef === null) {\n this.componentRef = this.viewContainerRef.createComponent(TooltipComponent);\n this.componentRef.instance.text = this.tooltip;\n this.setTooltipComponentProperties();\n }\n }\n\n @HostListener('mouseleave')\n onMouseLeave(): void {\n this.destroy();\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n destroy(): void {\n if (this.componentRef !== null) {\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private setTooltipComponentProperties() {\n if (this.componentRef !== null) {\n this.componentRef.instance.tooltip = this.tooltip;\n const {left, right, bottom} = this.elementRef.nativeElement.getBoundingClientRect();\n this.componentRef.instance.left = (right - left) / 2 + left;\n this.componentRef.instance.top = bottom;\n }\n }\n}\n","import {Component, effect, inject, Inject, input, OnInit, output, TemplateRef} from '@angular/core';\nimport {IActionButton, IFilterParams, ITableHead} from \"./exports\";\nimport {debounceTime, distinctUntilChanged, Subject} from \"rxjs\";\nimport {BsModalRef, BsModalService, ModalModule} from \"ngx-bootstrap/modal\";\nimport {CommonModule} from \"@angular/common\";\nimport {FormsModule} from \"@angular/forms\";\nimport {TooltipDirective} from \"./directives/tooltip/tooltip.directive\";\nimport {AsLibPaginationComponent} from \"@agentsmith.bgd/as-lib-pagination\";\n\n@Component({\n selector: 'as-lib-generic-table',\n imports: [\n CommonModule,\n FormsModule,\n TooltipDirective,\n AsLibPaginationComponent\n ],\n providers: [BsModalService],\n templateUrl: './as-lib-generic-table.component.html',\n styleUrl: './as-lib-generic-table.component.scss',\n standalone: true\n})\nexport class AsLibGenericTableComponent implements OnInit {\n\n\n loading = input(false);\n striped = input(false);\n bordered = input(false);\n hovered = input(false);\n enableSearch = input(true);\n rowCounter = input(false);\n enableLog = input(false);\n perPage = input(10);\n\n tableHead = input<ITableHead[]>([]);\n\n tableData = input<Record<string, never>[]>([]);\n\n tableHeadStorage = input<string>('');\n\n perPageValues = input<number[]>([10, 20, 50, 100]);\n\n headerActions = input<IActionButton[]>([]);\n\n rowActions = input<IActionButton[]>([]);\n\n tableStyle = input<'' | 'table-light' | 'table-dark'>('');\n\n headStyle = input<\n | 'table-default'\n | 'table-primary'\n | 'table-secondary'\n | 'table-success'\n | 'table-danger'\n | 'table-warning'\n | 'table-info'\n | 'table-light'\n | 'table-dark'>('table-default');\n paginationAlignment = input<'' | 'justify-content-center' | 'justify-content-end'>('justify-content-end');\n\n totalItems = input(0);\n\n page = input(0);\n\n filterParamsChanged = output<IFilterParams>();\n\n editRow = output<Record<string, never>>();\n\n sliderClicked = output<Record<string, never>>();\n\n headerActionClicked = output<string>();\n\n rowActionClicked = output<{ action: string; value: any }>();\n\n tableHeadChanged = output<string[] | null>();\n\n\n bsModalRef!: BsModalRef;\n searchUpdate: Subject<string> = new Subject();\n search = '';\n totalPages = 0;\n counter = 0;\n private sort!: string;\n private sortOrder: 'asc' | 'desc' = 'asc';\n\n //private modalService: BsModalService;// = Inject(BsModalService)\n private modalService = inject(BsModalService);\n\n\n constructor() {\n effect(() => {\n console.log(`The count is:`, this.totalItems(), this.page());\n this.counter = this.page() * this.perPage() + 1\n this.calculatePages();\n });\n }\n\n ngOnInit(): void {\n if (this.tableHeadStorage()) {\n const storage = localStorage.getItem(this.tableHeadStorage());\n if (storage) {\n const hidden: string[] = (JSON.parse(storage) as string[]) || [];\n this.tableHead().forEach(t => (t.hidden = hidden.includes(t.key)));\n } else {\n localStorage.setItem(this.tableHeadStorage(), JSON.stringify(this.tableHead().filter(t => t.hidden).map(t => t.key)));\n }\n }\n this.sort = this.tableHead()[0].key;\n this.log('totalPages', this.totalPages);\n this.log('Table head', this.tableHead());\n this.log('Table data', this.tableData());\n this.log('Row actions', this.rowActions());\n this.searchUpdate.pipe(debounceTime(500), distinctUntilChanged()).subscribe(_ => {\n this.log('search', this.search);\n const emitValue: IFilterParams = {\n page: 0,\n sort: this.sort,\n order: this.sortOrder,\n perPage: this.perPage(),\n searchString: this.search,\n };\n this.log('Search value change, sort values: ', emitValue);\n this.filterParamsChanged.emit(emitValue);\n });\n\n if (!this.perPageValues().includes(this.perPage())) {\n throw new Error('Per page value invalid');\n }\n this.log('Loading', this.loading());\n }\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n openTableLayoutModal(tableHeadModal: TemplateRef<any>): void {\n this.log('Open layout');\n this.bsModalRef = this.modalService.show(tableHeadModal, {\n animated: true,\n ignoreBackdropClick: true,\n class: 'confirm-modal modal-sm',\n initialState: {},\n });\n }\n\n handleTHchange(key: string): void {\n this.log('change triggered', key);\n this.tableHead().forEach(t => {\n if (t.key === key) {\n t.hidden = !t.hidden;\n this.tableHeadStorage &&\n localStorage.setItem(this.tableHeadStorage(), JSON.stringify(this.tableHead().filter(t => t.hidden).map(t => t.key)));\n }\n });\n }\n\n tableSort(key: string): void {\n this.log('table sort key', key);\n this.sort = key;\n this.tableHead().forEach(h => {\n if (h.key === key) {\n if (h.sort === 'headerSortDown') {\n this.sortOrder = 'desc';\n h.sort = 'headerSortUp';\n } else {\n h.sort = 'headerSortDown';\n this.sortOrder = 'asc';\n }\n const emitValue: IFilterParams = {\n page: 0,\n sort: this.sort,\n order: this.sortOrder,\n perPage: this.perPage(),\n searchString: this.search,\n };\n this.log('Sort changed, filter values: ', emitValue);\n this.filterParamsChanged.emit(emitValue);\n } else {\n h.sort = '';\n }\n });\n }\n\n changePerPage($event: Event): void {\n const perPage = parseInt(($event.target as HTMLSelectElement).value, 10) || 25;\n //this.perPage = perPage;\n // this.page = 0;\n this.log('changePerPage', perPage);\n this.calculatePages();\n this.filterParamsChanged.emit({\n page: 0,\n sort: this.sort,\n order: this.sortOrder,\n perPage: perPage,\n searchString: this.search,\n });\n }\n\n log(value: any, ...rest: any[]): void {\n if (this.enableLog() || localStorage.getItem('loggerEnable')) {\n console.log(`AS Dynamic Table -> ${value}`, ...rest);\n }\n }\n\n emitRow(row: Record<string, never>) {\n this.log('edit row', row);\n this.editRow.emit(row);\n }\n\n headerAction(actionName: string) {\n this.log('Header action', actionName);\n this.headerActionClicked.emit(actionName);\n }\n\n rowAction(action: string, value: Record<string, never>) {\n this.log('Row action', action, value);\n this.rowActionClicked.emit({action, value});\n }\n\n pageChange(page: number) {\n const emitValue: IFilterParams = {\n page,\n sort: this.sort,\n order: this.sortOrder,\n perPage: this.perPage(),\n searchString: this.search,\n };\n this.log('Page change, filter values: ', emitValue);\n this.filterParamsChanged.emit(emitValue);\n }\n\n modalClose() {\n const hiddenKeys = this.tableHead().filter(t => t.hidden).map(t => t.key);\n this.log('Modal closed, saved keys', hiddenKeys);\n this.tableHeadChanged.emit(hiddenKeys);\n this.bsModalRef.hide();\n }\n\n //\n resetValues() {\n this.tableHeadChanged.emit(null);\n this.bsModalRef.hide();\n }\n\n //\n private calculatePages() {\n this.totalPages = Math.ceil(this.totalItems() / this.perPage());\n this.log('total items/pages', this.totalItems(), this.totalPages);\n }\n\n\n}\n","<p *ngIf=\"loading()\">\n\t<img\n\t\t*ngIf=\"loading()\"\n\t\tclass=\"pl-3\"\n\t\tsrc=\"data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==\"\n\t/>\n</p>\n<div\n\t[ngClass]=\"{\n\t\tloading: loading()\n\t}\"\n\tclass=\"dynamic-table\"\n>\n\t<div class=\"row mb-3\">\n\t\t<div class=\"col-md-7 d-flex d-sm-flex d-md-block justify-content-center mb-2\">\n\t\t\t<div *ngIf=\"perPageValues() && perPageValues().length\" class=\"d-block d-md-inline-flex me-0 me-md-3\">\n\t\t\t\t<div class=\"table-length\">\n\t\t\t\t\t<label\n\t\t\t\t\t\t>Show\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t(change)=\"changePerPage($event)\"\n\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\tclass=\"form-select form-select-sm\"\n\t\t\t\t\t\t\tname=\"data-table-combine_length\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<option *ngFor=\"let perp of perPageValues()\" [selected]=\"perPage() === perp\" value=\"{{ perp }}\">{{ perp }}</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\tentries</label\n\t\t\t\t\t>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"headerActions() && headerActions().length\" class=\"d-block d-inline-flex\">\n\t\t\t\t<div class=\"dt-buttons btn-group flex-wrap\">\n\t\t\t\t\t<ng-container *ngFor=\"let action of headerActions()\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t(click)=\"headerAction(action.actionName)\"\n\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\tid=\"header-action-{{ action.actionName }}\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i> {{ action.label }}</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"enableSearch()\" class=\"col-md-5 d-flex d-xl-block justify-content-center\">\n\t\t\t<div class=\"table-search\">\n\t\t\t\t<label\n\t\t\t\t\t>Search:\n\t\t\t\t\t<input\n\t\t\t\t\t\t(ngModelChange)=\"this.searchUpdate.next($event)\"\n\t\t\t\t\t\t[(ngModel)]=\"search\"\n\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\tclass=\"form-control form-control-sm\"\n\t\t\t\t\t\tid=\"table-search\"\n\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t/></label>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"table-responsive\">\n\t\t<table\n\t\t\t[ngClass]=\"{\n\t\t\t\t'table-striped': striped(),\n\t\t\t\t'table-bordered': bordered(),\n\t\t\t\t'table-hover': hovered()\n\t\t\t}\"\n\t\t\tclass=\"table table-fixed align-middle {{ tableStyle() }}\"\n\t\t>\n\t\t\t<thead [class]=\"headStyle()\">\n\t\t\t\t<tr>\n\t\t\t\t\t<th *ngIf=\"rowCounter\" class=\"text-end small-column\"> Nr.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t(click)=\"!head.notSortable && tableSort(head.key)\"\n\t\t\t\t\t\t\t*ngIf=\"!head.hidden\"\n\t\t\t\t\t\t\t[ngClass]=\"head.sort\"\n\t\t\t\t\t\t\tclass=\"header {{ head.notSortable ? '' : 'sortable' }} {{ head.cellAlign }}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<span [translate]=\"head.key.toUpperCase()\">{{ head.label || head.key }}</span>\n\t\t\t\t\t\t\t\t<span class=\"fa\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<th *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"header small-column text-center p-0\" data-width=\"50\">\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t(click)=\"openTableLayoutModal(tableHeadModal)\"\n\t\t\t\t\t\t\t*ngIf=\"tableHeadStorage()\"\n\t\t\t\t\t\t\taria-controls=\"basic-link-dropdown\"\n\t\t\t\t\t\t\tclass=\"menu-button toggle-white big-toggle dropdown-menu-link\"\n\t\t\t\t\t\t></a>\n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<tr *ngFor=\"let row of tableData(); let i = index\" class=\"{{ row['rowClass'] || '' }}\">\n\t\t\t\t\t<th *ngIf=\"rowCounter()\" class=\"text-end\"> {{ i + counter }}.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<td *ngIf=\"!head.hidden\" class=\"header text-nowrap {{ head.cellAlign }}\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'select'\">\n\t\t\t\t\t\t\t\t<input class=\"select\" type=\"checkbox\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!head.type\">\n\t\t\t\t\t\t\t\t{{ row[head.key] }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'badge'\">\n\t\t\t\t\t\t\t\t<span class=\"badge {{ row[head.key + 'Badge'] }}\">{{ row[head.key] }}</span>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'date'\">\n\t\t\t\t\t\t\t\t{{ row[head.key] | date: \"dd.MM.yyyy HH:mm:ss\" }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'slider'\">\n\t\t\t\t\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t(change)=\"sliderClicked.emit(row)\"\n\t\t\t\t\t\t\t\t\t\t[checked]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\tclass=\"switched\"\n\t\t\t\t\t\t\t\t\t\tid=\"check-{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<label for=\"check-{{ row['id'] }}\"></label>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'input'\">\n\t\t\t\t\t\t\t\t<input [value]=\"row[head.key]\" type=\"text\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<td *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"small-column\">\n\t\t\t\t\t\t<div class=\"menu text-end\">\n\t\t\t\t\t\t\t<ng-container *ngFor=\"let action of rowActions()\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t(click)=\"rowAction(action.actionName, row)\"\n\t\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm ms-2 {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\t\t<as-lib-pagination\n\t\t\t(pageChange)=\"pageChange($event)\"\n\t\t\t*ngIf=\"totalPages > 1\"\n\t\t\t[align]=\"paginationAlignment()\"\n\t\t\t[enableLog]=\"enableLog()\"\n\t\t\t[first]=\"page() === 0\"\n\t\t\t[last]=\"page() === totalPages - 1\"\n\t\t\t[page]=\"page()\"\n\t\t\t[totalPages]=\"totalPages\"\n\t\t></as-lib-pagination>\n\t</div>\n\t<ng-template #tableHeadModal>\n\t\t<div class=\"modal-header\">\n\t\t\t<h4 class=\"modal-title pull-left\">Edit table header</h4>\n\t\t\t<button (click)=\"modalClose()\" aria-label=\"Close\" class=\"btn-close close pull-right\" type=\"button\">\n\t\t\t\t<span aria-hidden=\"true\" class=\"visually-hidden\">×</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<div class=\"modal-body\">\n\t\t\t<ng-container *ngFor=\"let td of tableHead()\">\n\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t<input\n\t\t\t\t\t\t(change)=\"handleTHchange(td.key)\"\n\t\t\t\t\t\t[checked]=\"!td.hidden\"\n\t\t\t\t\t\t[disabled]=\"td.mandatory\"\n\t\t\t\t\t\t[readOnly]=\"td.mandatory\"\n\t\t\t\t\t\tclass=\"form-check-input\"\n\t\t\t\t\t\tid=\"{{ td.key }}\"\n\t\t\t\t\t\trole=\"switch\"\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t/>\n\t\t\t\t\t<label class=\"form-check-label\" for=\"{{ td.key }}\">{{ td.label }} {{ td.mandatory ? \"*\" : \"\" }}</label>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<small class=\"small text-muted pt-2\">* Mandatory field for the view</small>\n\t\t</div>\n\t\t<div class=\"modal-footer\">\n\t\t\t<button (click)=\"resetValues()\" class=\"btn btn-outline-secondary me-auto\" type=\"button\">Reset</button>\n\t\t\t<button (click)=\"modalClose()\" class=\"btn btn-primary\" translate=\"CLOSE\" type=\"button\">Close</button>\n\t\t</div>\n\t</ng-template>\n</div>\n","/*\n * Public API Surface of as-lib-generic-table\n */\n\nexport * from './lib/as-lib-generic-table.service';\nexport * from './lib/as-lib-generic-table.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentsmith.bgd/as-lib-generic-table",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "19.0.5",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^
|
|
6
|
-
"@angular/core": "^
|
|
7
|
-
"@agentsmith.bgd/as-lib-pagination": "
|
|
5
|
+
"@angular/common": "^19.1.1",
|
|
6
|
+
"@angular/core": "^19.1.1",
|
|
7
|
+
"@agentsmith.bgd/as-lib-pagination": "^19.0.5",
|
|
8
8
|
"font-awesome": "^4.7.0",
|
|
9
|
-
"ngx-bootstrap": "^
|
|
9
|
+
"ngx-bootstrap": "^19.0.2",
|
|
10
10
|
"ngx-pipes": "^3.2.2",
|
|
11
11
|
"rxjs": "~7.8.0"
|
|
12
12
|
},
|
|
@@ -22,8 +22,6 @@
|
|
|
22
22
|
},
|
|
23
23
|
".": {
|
|
24
24
|
"types": "./index.d.ts",
|
|
25
|
-
"esm2022": "./esm2022/agentsmith.bgd-as-lib-generic-table.mjs",
|
|
26
|
-
"esm": "./esm2022/agentsmith.bgd-as-lib-generic-table.mjs",
|
|
27
25
|
"default": "./fesm2022/agentsmith.bgd-as-lib-generic-table.mjs"
|
|
28
26
|
}
|
|
29
27
|
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnRzbWl0aC5iZ2QtYXMtbGliLWdlbmVyaWMtdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9hcy1saWItZ2VuZXJpYy10YWJsZS9zcmMvYWdlbnRzbWl0aC5iZ2QtYXMtbGliLWdlbmVyaWMtdGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
import { Component, effect, Inject, input, output } from '@angular/core';
|
|
2
|
-
import { debounceTime, distinctUntilChanged, Subject } from "rxjs";
|
|
3
|
-
import { BsModalService } from "ngx-bootstrap/modal";
|
|
4
|
-
import { CommonModule } from "@angular/common";
|
|
5
|
-
import { FormsModule } from "@angular/forms";
|
|
6
|
-
import { TooltipDirective } from "./directives/tooltip/tooltip.directive";
|
|
7
|
-
import { TooltipComponent } from "./directives/component/tooltip.component";
|
|
8
|
-
import { AsLibPaginationComponent } from "@agentsmith.bgd/as-lib-pagination";
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/common";
|
|
11
|
-
import * as i2 from "@angular/forms";
|
|
12
|
-
export class AsLibGenericTableComponent {
|
|
13
|
-
loading = input(false);
|
|
14
|
-
striped = input(false);
|
|
15
|
-
bordered = input(false);
|
|
16
|
-
hovered = input(false);
|
|
17
|
-
enableSearch = input(true);
|
|
18
|
-
rowCounter = input(false);
|
|
19
|
-
enableLog = input(false);
|
|
20
|
-
perPage = input(10);
|
|
21
|
-
tableHead = input([]);
|
|
22
|
-
tableData = input([]);
|
|
23
|
-
tableHeadStorage = input('');
|
|
24
|
-
perPageValues = input([10, 20, 50, 100]);
|
|
25
|
-
headerActions = input([]);
|
|
26
|
-
rowActions = input([]);
|
|
27
|
-
tableStyle = input('');
|
|
28
|
-
headStyle = input('table-default');
|
|
29
|
-
paginationAlignment = input('justify-content-end');
|
|
30
|
-
totalItems = input(0);
|
|
31
|
-
page = input(0);
|
|
32
|
-
filterParamsChanged = output();
|
|
33
|
-
editRow = output();
|
|
34
|
-
sliderClicked = output();
|
|
35
|
-
headerActionClicked = output();
|
|
36
|
-
rowActionClicked = output();
|
|
37
|
-
tableHeadChanged = output();
|
|
38
|
-
bsModalRef;
|
|
39
|
-
searchUpdate = new Subject();
|
|
40
|
-
search = '';
|
|
41
|
-
totalPages = 0;
|
|
42
|
-
counter = 0;
|
|
43
|
-
sort;
|
|
44
|
-
sortOrder = 'asc';
|
|
45
|
-
modalService = Inject(BsModalService);
|
|
46
|
-
constructor() {
|
|
47
|
-
effect(() => {
|
|
48
|
-
console.log(`The count is:`, this.totalItems(), this.page());
|
|
49
|
-
this.counter = this.page() * this.perPage() + 1;
|
|
50
|
-
this.calculatePages();
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
ngOnInit() {
|
|
54
|
-
if (this.tableHeadStorage()) {
|
|
55
|
-
const storage = localStorage.getItem(this.tableHeadStorage());
|
|
56
|
-
if (storage) {
|
|
57
|
-
const hidden = JSON.parse(storage) || [];
|
|
58
|
-
this.tableHead().forEach(t => (t.hidden = hidden.includes(t.key)));
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
localStorage.setItem(this.tableHeadStorage(), JSON.stringify(this.tableHead().filter(t => t.hidden).map(t => t.key)));
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
this.sort = this.tableHead()[0].key;
|
|
65
|
-
this.log('totalPages', this.totalPages);
|
|
66
|
-
this.log('Table head', this.tableHead());
|
|
67
|
-
this.log('Table data', this.tableData());
|
|
68
|
-
this.log('Row actions', this.rowActions());
|
|
69
|
-
this.searchUpdate.pipe(debounceTime(500), distinctUntilChanged()).subscribe(_ => {
|
|
70
|
-
this.log('search', this.search);
|
|
71
|
-
const emitValue = {
|
|
72
|
-
page: 0,
|
|
73
|
-
sort: this.sort,
|
|
74
|
-
order: this.sortOrder,
|
|
75
|
-
perPage: this.perPage(),
|
|
76
|
-
searchString: this.search,
|
|
77
|
-
};
|
|
78
|
-
this.log('Search value change, sort values: ', emitValue);
|
|
79
|
-
this.filterParamsChanged.emit(emitValue);
|
|
80
|
-
});
|
|
81
|
-
if (!this.perPageValues().includes(this.perPage())) {
|
|
82
|
-
throw new Error('Per page value invalid');
|
|
83
|
-
}
|
|
84
|
-
this.log('Loading', this.loading());
|
|
85
|
-
}
|
|
86
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
87
|
-
openTableLayoutModal(tableHeadModal) {
|
|
88
|
-
this.log('Open layout');
|
|
89
|
-
this.bsModalRef = this.modalService.show(tableHeadModal, {
|
|
90
|
-
animated: true,
|
|
91
|
-
ignoreBackdropClick: true,
|
|
92
|
-
class: 'confirm-modal modal-sm',
|
|
93
|
-
initialState: {},
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
handleTHchange(key) {
|
|
97
|
-
this.log('change triggered', key);
|
|
98
|
-
this.tableHead().forEach(t => {
|
|
99
|
-
if (t.key === key) {
|
|
100
|
-
t.hidden = !t.hidden;
|
|
101
|
-
this.tableHeadStorage &&
|
|
102
|
-
localStorage.setItem(this.tableHeadStorage(), JSON.stringify(this.tableHead().filter(t => t.hidden).map(t => t.key)));
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
tableSort(key) {
|
|
107
|
-
this.log('table sort key', key);
|
|
108
|
-
this.sort = key;
|
|
109
|
-
this.tableHead().forEach(h => {
|
|
110
|
-
if (h.key === key) {
|
|
111
|
-
if (h.sort === 'headerSortDown') {
|
|
112
|
-
this.sortOrder = 'desc';
|
|
113
|
-
h.sort = 'headerSortUp';
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
h.sort = 'headerSortDown';
|
|
117
|
-
this.sortOrder = 'asc';
|
|
118
|
-
}
|
|
119
|
-
const emitValue = {
|
|
120
|
-
page: 0,
|
|
121
|
-
sort: this.sort,
|
|
122
|
-
order: this.sortOrder,
|
|
123
|
-
perPage: this.perPage(),
|
|
124
|
-
searchString: this.search,
|
|
125
|
-
};
|
|
126
|
-
this.log('Sort changed, filter values: ', emitValue);
|
|
127
|
-
this.filterParamsChanged.emit(emitValue);
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
h.sort = '';
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
changePerPage($event) {
|
|
135
|
-
const perPage = parseInt($event.target.value, 10) || 25;
|
|
136
|
-
//this.perPage = perPage;
|
|
137
|
-
// this.page = 0;
|
|
138
|
-
this.log('changePerPage', perPage);
|
|
139
|
-
this.calculatePages();
|
|
140
|
-
this.filterParamsChanged.emit({
|
|
141
|
-
page: 0,
|
|
142
|
-
sort: this.sort,
|
|
143
|
-
order: this.sortOrder,
|
|
144
|
-
perPage: perPage,
|
|
145
|
-
searchString: this.search,
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
log(value, ...rest) {
|
|
149
|
-
if (this.enableLog() || localStorage.getItem('loggerEnable')) {
|
|
150
|
-
console.log(`AS Dynamic Table -> ${value}`, ...rest);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
emitRow(row) {
|
|
154
|
-
this.log('edit row', row);
|
|
155
|
-
this.editRow.emit(row);
|
|
156
|
-
}
|
|
157
|
-
headerAction(actionName) {
|
|
158
|
-
this.log('Header action', actionName);
|
|
159
|
-
this.headerActionClicked.emit(actionName);
|
|
160
|
-
}
|
|
161
|
-
rowAction(action, value) {
|
|
162
|
-
this.log('Row action', action, value);
|
|
163
|
-
this.rowActionClicked.emit({ action, value });
|
|
164
|
-
}
|
|
165
|
-
pageChange(page) {
|
|
166
|
-
const emitValue = {
|
|
167
|
-
page,
|
|
168
|
-
sort: this.sort,
|
|
169
|
-
order: this.sortOrder,
|
|
170
|
-
perPage: this.perPage(),
|
|
171
|
-
searchString: this.search,
|
|
172
|
-
};
|
|
173
|
-
this.log('Page change, filter values: ', emitValue);
|
|
174
|
-
this.filterParamsChanged.emit(emitValue);
|
|
175
|
-
}
|
|
176
|
-
modalClose() {
|
|
177
|
-
const hiddenKeys = this.tableHead().filter(t => t.hidden).map(t => t.key);
|
|
178
|
-
this.log('Modal closed, saved keys', hiddenKeys);
|
|
179
|
-
this.tableHeadChanged.emit(hiddenKeys);
|
|
180
|
-
this.bsModalRef.hide();
|
|
181
|
-
}
|
|
182
|
-
//
|
|
183
|
-
resetValues() {
|
|
184
|
-
this.tableHeadChanged.emit(null);
|
|
185
|
-
this.bsModalRef.hide();
|
|
186
|
-
}
|
|
187
|
-
//
|
|
188
|
-
calculatePages() {
|
|
189
|
-
this.totalPages = Math.ceil(this.totalItems() / this.perPage());
|
|
190
|
-
this.log('total items/pages', this.totalItems(), this.totalPages);
|
|
191
|
-
}
|
|
192
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AsLibGenericTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
193
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.1", type: AsLibGenericTableComponent, isStandalone: true, selector: "as-lib-generic-table", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, striped: { classPropertyName: "striped", publicName: "striped", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, hovered: { classPropertyName: "hovered", publicName: "hovered", isSignal: true, isRequired: false, transformFunction: null }, enableSearch: { classPropertyName: "enableSearch", publicName: "enableSearch", isSignal: true, isRequired: false, transformFunction: null }, rowCounter: { classPropertyName: "rowCounter", publicName: "rowCounter", isSignal: true, isRequired: false, transformFunction: null }, enableLog: { classPropertyName: "enableLog", publicName: "enableLog", isSignal: true, isRequired: false, transformFunction: null }, perPage: { classPropertyName: "perPage", publicName: "perPage", isSignal: true, isRequired: false, transformFunction: null }, tableHead: { classPropertyName: "tableHead", publicName: "tableHead", isSignal: true, isRequired: false, transformFunction: null }, tableData: { classPropertyName: "tableData", publicName: "tableData", isSignal: true, isRequired: false, transformFunction: null }, tableHeadStorage: { classPropertyName: "tableHeadStorage", publicName: "tableHeadStorage", isSignal: true, isRequired: false, transformFunction: null }, perPageValues: { classPropertyName: "perPageValues", publicName: "perPageValues", isSignal: true, isRequired: false, transformFunction: null }, headerActions: { classPropertyName: "headerActions", publicName: "headerActions", isSignal: true, isRequired: false, transformFunction: null }, rowActions: { classPropertyName: "rowActions", publicName: "rowActions", isSignal: true, isRequired: false, transformFunction: null }, tableStyle: { classPropertyName: "tableStyle", publicName: "tableStyle", isSignal: true, isRequired: false, transformFunction: null }, headStyle: { classPropertyName: "headStyle", publicName: "headStyle", isSignal: true, isRequired: false, transformFunction: null }, paginationAlignment: { classPropertyName: "paginationAlignment", publicName: "paginationAlignment", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filterParamsChanged: "filterParamsChanged", editRow: "editRow", sliderClicked: "sliderClicked", headerActionClicked: "headerActionClicked", rowActionClicked: "rowActionClicked", tableHeadChanged: "tableHeadChanged" }, ngImport: i0, template: "<p *ngIf=\"loading()\">\n\t<img\n\t\t*ngIf=\"loading()\"\n\t\tclass=\"pl-3\"\n\t\tsrc=\"data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==\"\n\t/>\n</p>\n<div\n\t[ngClass]=\"{\n\t\tloading: loading()\n\t}\"\n\tclass=\"dynamic-table\"\n>\n\t<div class=\"row mb-3\">\n\t\t<div class=\"col-md-7 d-flex d-sm-flex d-md-block justify-content-center mb-2\">\n\t\t\t<div *ngIf=\"perPageValues() && perPageValues().length\" class=\"d-block d-md-inline-flex me-0 me-md-3\">\n\t\t\t\t<div class=\"table-length\">\n\t\t\t\t\t<label\n\t\t\t\t\t\t>Show\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t(change)=\"changePerPage($event)\"\n\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\tclass=\"form-select form-select-sm\"\n\t\t\t\t\t\t\tname=\"data-table-combine_length\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<option *ngFor=\"let perp of perPageValues()\" [selected]=\"perPage() === perp\" value=\"{{ perp }}\">{{ perp }}</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\tentries</label\n\t\t\t\t\t>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"headerActions() && headerActions().length\" class=\"d-block d-inline-flex\">\n\t\t\t\t<div class=\"dt-buttons btn-group flex-wrap\">\n\t\t\t\t\t<ng-container *ngFor=\"let action of headerActions()\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t(click)=\"headerAction(action.actionName)\"\n\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\tid=\"header-action-{{ action.actionName }}\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i> {{ action.label }}</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"enableSearch()\" class=\"col-md-5 d-flex d-xl-block justify-content-center\">\n\t\t\t<div class=\"table-search\">\n\t\t\t\t<label\n\t\t\t\t\t>Search:\n\t\t\t\t\t<input\n\t\t\t\t\t\t(ngModelChange)=\"this.searchUpdate.next($event)\"\n\t\t\t\t\t\t[(ngModel)]=\"search\"\n\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\tclass=\"form-control form-control-sm\"\n\t\t\t\t\t\tid=\"table-search\"\n\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t/></label>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"table-responsive\">\n\t\t<table\n\t\t\t[ngClass]=\"{\n\t\t\t\t'table-striped': striped(),\n\t\t\t\t'table-bordered': bordered(),\n\t\t\t\t'table-hover': hovered()\n\t\t\t}\"\n\t\t\tclass=\"table table-fixed align-middle {{ tableStyle() }}\"\n\t\t>\n\t\t\t<thead [class]=\"headStyle()\">\n\t\t\t\t<tr>\n\t\t\t\t\t<th *ngIf=\"rowCounter\" class=\"text-end small-column\"> Nr.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t(click)=\"!head.notSortable && tableSort(head.key)\"\n\t\t\t\t\t\t\t*ngIf=\"!head.hidden\"\n\t\t\t\t\t\t\t[ngClass]=\"head.sort\"\n\t\t\t\t\t\t\tclass=\"header {{ head.notSortable ? '' : 'sortable' }} {{ head.cellAlign }}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<span [translate]=\"head.key.toUpperCase()\">{{ head.label || head.key }}</span>\n\t\t\t\t\t\t\t\t<span class=\"fa\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<th *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"header small-column text-center p-0\" data-width=\"50\">\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t(click)=\"openTableLayoutModal(tableHeadModal)\"\n\t\t\t\t\t\t\t*ngIf=\"tableHeadStorage()\"\n\t\t\t\t\t\t\taria-controls=\"basic-link-dropdown\"\n\t\t\t\t\t\t\tclass=\"menu-button toggle-white big-toggle dropdown-menu-link\"\n\t\t\t\t\t\t></a>\n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<tr *ngFor=\"let row of tableData(); let i = index\" class=\"{{ row['rowClass'] || '' }}\">\n\t\t\t\t\t<th *ngIf=\"rowCounter()\" class=\"text-end\"> {{ i + counter }}.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<td *ngIf=\"!head.hidden\" class=\"header text-nowrap {{ head.cellAlign }}\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'select'\">\n\t\t\t\t\t\t\t\t<input class=\"select\" type=\"checkbox\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!head.type\">\n\t\t\t\t\t\t\t\t{{ row[head.key] }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'badge'\">\n\t\t\t\t\t\t\t\t<span class=\"badge {{ row[head.key + 'Badge'] }}\">{{ row[head.key] }}</span>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'date'\">\n\t\t\t\t\t\t\t\t{{ row[head.key] | date: \"dd.MM.yyyy HH:mm:ss\" }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'slider'\">\n\t\t\t\t\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t(change)=\"sliderClicked.emit(row)\"\n\t\t\t\t\t\t\t\t\t\t[checked]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\tclass=\"switched\"\n\t\t\t\t\t\t\t\t\t\tid=\"check-{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<label for=\"check-{{ row['id'] }}\"></label>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'input'\">\n\t\t\t\t\t\t\t\t<input [value]=\"row[head.key]\" type=\"text\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<td *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"small-column\">\n\t\t\t\t\t\t<div class=\"menu text-end\">\n\t\t\t\t\t\t\t<ng-container *ngFor=\"let action of rowActions()\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t(click)=\"rowAction(action.actionName, row)\"\n\t\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm ms-2 {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\t\t<as-lib-pagination\n\t\t\t(pageChange)=\"pageChange($event)\"\n\t\t\t*ngIf=\"totalPages > 1\"\n\t\t\t[align]=\"paginationAlignment()\"\n\t\t\t[enableLog]=\"enableLog()\"\n\t\t\t[first]=\"page() === 0\"\n\t\t\t[last]=\"page() === totalPages - 1\"\n\t\t\t[page]=\"page()\"\n\t\t\t[totalPages]=\"totalPages\"\n\t\t></as-lib-pagination>\n\t</div>\n\t<ng-template #tableHeadModal>\n\t\t<div class=\"modal-header\">\n\t\t\t<h4 class=\"modal-title pull-left\">Edit table header</h4>\n\t\t\t<button (click)=\"modalClose()\" aria-label=\"Close\" class=\"btn-close close pull-right\" type=\"button\">\n\t\t\t\t<span aria-hidden=\"true\" class=\"visually-hidden\">×</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<div class=\"modal-body\">\n\t\t\t<ng-container *ngFor=\"let td of tableHead()\">\n\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t<input\n\t\t\t\t\t\t(change)=\"handleTHchange(td.key)\"\n\t\t\t\t\t\t[checked]=\"!td.hidden\"\n\t\t\t\t\t\t[disabled]=\"td.mandatory\"\n\t\t\t\t\t\t[readOnly]=\"td.mandatory\"\n\t\t\t\t\t\tclass=\"form-check-input\"\n\t\t\t\t\t\tid=\"{{ td.key }}\"\n\t\t\t\t\t\trole=\"switch\"\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t/>\n\t\t\t\t\t<label class=\"form-check-label\" for=\"{{ td.key }}\">{{ td.label }} {{ td.mandatory ? \"*\" : \"\" }}</label>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<small class=\"small text-muted pt-2\">* Mandatory field for the view</small>\n\t\t</div>\n\t\t<div class=\"modal-footer\">\n\t\t\t<button (click)=\"resetValues()\" class=\"btn btn-outline-secondary me-auto\" type=\"button\">Reset</button>\n\t\t\t<button (click)=\"modalClose()\" class=\"btn btn-primary\" translate=\"CLOSE\" type=\"button\">Close</button>\n\t\t</div>\n\t</ng-template>\n</div>\n", styles: [".dropdown-holder{min-height:20px}.dynamic-table,.dynamic-table button,span.badge{font-size:12px;font-weight:400}.table-length label{display:inline-block;white-space:nowrap}.table-length select{display:inline-block;width:auto}.table-search{text-align:right}.table-search label{display:inline-block;white-space:nowrap}.table-search input{display:inline-block;width:auto}th.sortable div{display:flex;align-items:center;cursor:pointer}th.sortable div span:not(.fa){flex:1}th.sortable div span.fa{display:block}th.sortable div span.fa:after{content:\"\\f0dc\";opacity:.25}th.sortable.headerSortDown span.fa.fa:after{color:#348fe2;content:\"\\f0dd\";opacity:1}th.sortable.headerSortUp span.fa.fa:after{color:#348fe2;content:\"\\f0de\";opacity:1}.menu-button{border-radius:50%;width:24px;height:24px;display:inline-block;position:relative}.menu-button:after{content:\"\";background-image:radial-gradient(circle,black 2px,transparent 2px);background-size:100% 33.33%;width:18px;height:18px;display:block;top:3px;left:3px;position:absolute}.menu-button:hover{background:#4e4e4e26}.menu-button.menu-horizontal:after{background-size:33.33% 100%}.small-column{white-space:nowrap;width:1%}.loading{opacity:.3}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: TooltipDirective, selector: "[tooltip]", inputs: ["tooltip"] }, { kind: "component", type: AsLibPaginationComponent, selector: "as-lib-pagination", inputs: ["first", "last", "align", "enableLog", "totalPages", "page"], outputs: ["pageChange"] }] });
|
|
194
|
-
}
|
|
195
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AsLibGenericTableComponent, decorators: [{
|
|
196
|
-
type: Component,
|
|
197
|
-
args: [{ selector: 'as-lib-generic-table', standalone: true, imports: [
|
|
198
|
-
CommonModule,
|
|
199
|
-
FormsModule,
|
|
200
|
-
TooltipDirective,
|
|
201
|
-
TooltipComponent,
|
|
202
|
-
AsLibPaginationComponent
|
|
203
|
-
], template: "<p *ngIf=\"loading()\">\n\t<img\n\t\t*ngIf=\"loading()\"\n\t\tclass=\"pl-3\"\n\t\tsrc=\"data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==\"\n\t/>\n</p>\n<div\n\t[ngClass]=\"{\n\t\tloading: loading()\n\t}\"\n\tclass=\"dynamic-table\"\n>\n\t<div class=\"row mb-3\">\n\t\t<div class=\"col-md-7 d-flex d-sm-flex d-md-block justify-content-center mb-2\">\n\t\t\t<div *ngIf=\"perPageValues() && perPageValues().length\" class=\"d-block d-md-inline-flex me-0 me-md-3\">\n\t\t\t\t<div class=\"table-length\">\n\t\t\t\t\t<label\n\t\t\t\t\t\t>Show\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t(change)=\"changePerPage($event)\"\n\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\tclass=\"form-select form-select-sm\"\n\t\t\t\t\t\t\tname=\"data-table-combine_length\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<option *ngFor=\"let perp of perPageValues()\" [selected]=\"perPage() === perp\" value=\"{{ perp }}\">{{ perp }}</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t\tentries</label\n\t\t\t\t\t>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div *ngIf=\"headerActions() && headerActions().length\" class=\"d-block d-inline-flex\">\n\t\t\t\t<div class=\"dt-buttons btn-group flex-wrap\">\n\t\t\t\t\t<ng-container *ngFor=\"let action of headerActions()\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t(click)=\"headerAction(action.actionName)\"\n\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\tid=\"header-action-{{ action.actionName }}\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i> {{ action.label }}</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"enableSearch()\" class=\"col-md-5 d-flex d-xl-block justify-content-center\">\n\t\t\t<div class=\"table-search\">\n\t\t\t\t<label\n\t\t\t\t\t>Search:\n\t\t\t\t\t<input\n\t\t\t\t\t\t(ngModelChange)=\"this.searchUpdate.next($event)\"\n\t\t\t\t\t\t[(ngModel)]=\"search\"\n\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\tclass=\"form-control form-control-sm\"\n\t\t\t\t\t\tid=\"table-search\"\n\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t/></label>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"table-responsive\">\n\t\t<table\n\t\t\t[ngClass]=\"{\n\t\t\t\t'table-striped': striped(),\n\t\t\t\t'table-bordered': bordered(),\n\t\t\t\t'table-hover': hovered()\n\t\t\t}\"\n\t\t\tclass=\"table table-fixed align-middle {{ tableStyle() }}\"\n\t\t>\n\t\t\t<thead [class]=\"headStyle()\">\n\t\t\t\t<tr>\n\t\t\t\t\t<th *ngIf=\"rowCounter\" class=\"text-end small-column\"> Nr.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t(click)=\"!head.notSortable && tableSort(head.key)\"\n\t\t\t\t\t\t\t*ngIf=\"!head.hidden\"\n\t\t\t\t\t\t\t[ngClass]=\"head.sort\"\n\t\t\t\t\t\t\tclass=\"header {{ head.notSortable ? '' : 'sortable' }} {{ head.cellAlign }}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<span [translate]=\"head.key.toUpperCase()\">{{ head.label || head.key }}</span>\n\t\t\t\t\t\t\t\t<span class=\"fa\"></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<th *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"header small-column text-center p-0\" data-width=\"50\">\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t(click)=\"openTableLayoutModal(tableHeadModal)\"\n\t\t\t\t\t\t\t*ngIf=\"tableHeadStorage()\"\n\t\t\t\t\t\t\taria-controls=\"basic-link-dropdown\"\n\t\t\t\t\t\t\tclass=\"menu-button toggle-white big-toggle dropdown-menu-link\"\n\t\t\t\t\t\t></a>\n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<tr *ngFor=\"let row of tableData(); let i = index\" class=\"{{ row['rowClass'] || '' }}\">\n\t\t\t\t\t<th *ngIf=\"rowCounter()\" class=\"text-end\"> {{ i + counter }}.</th>\n\t\t\t\t\t<ng-container *ngFor=\"let head of tableHead()\">\n\t\t\t\t\t\t<td *ngIf=\"!head.hidden\" class=\"header text-nowrap {{ head.cellAlign }}\">\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'select'\">\n\t\t\t\t\t\t\t\t<input class=\"select\" type=\"checkbox\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"!head.type\">\n\t\t\t\t\t\t\t\t{{ row[head.key] }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'badge'\">\n\t\t\t\t\t\t\t\t<span class=\"badge {{ row[head.key + 'Badge'] }}\">{{ row[head.key] }}</span>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'date'\">\n\t\t\t\t\t\t\t\t{{ row[head.key] | date: \"dd.MM.yyyy HH:mm:ss\" }}\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'slider'\">\n\t\t\t\t\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t(change)=\"sliderClicked.emit(row)\"\n\t\t\t\t\t\t\t\t\t\t[checked]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\tclass=\"switched\"\n\t\t\t\t\t\t\t\t\t\tid=\"check-{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<label for=\"check-{{ row['id'] }}\"></label>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t<ng-container *ngIf=\"head.type === 'input'\">\n\t\t\t\t\t\t\t\t<input [value]=\"row[head.key]\" type=\"text\" />\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<td *ngIf=\"tableHeadStorage() || (rowActions() && rowActions().length)\" class=\"small-column\">\n\t\t\t\t\t\t<div class=\"menu text-end\">\n\t\t\t\t\t\t\t<ng-container *ngFor=\"let action of rowActions()\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t(click)=\"rowAction(action.actionName, row)\"\n\t\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\t\t\t\t\tclass=\"btn buttons-copy buttons-html5 btn-sm ms-2 {{ action.actionName }} {{ action.btnColor }}\"\n\t\t\t\t\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<span><i *ngIf=\"action.faIcon\" class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\t\t<as-lib-pagination\n\t\t\t(pageChange)=\"pageChange($event)\"\n\t\t\t*ngIf=\"totalPages > 1\"\n\t\t\t[align]=\"paginationAlignment()\"\n\t\t\t[enableLog]=\"enableLog()\"\n\t\t\t[first]=\"page() === 0\"\n\t\t\t[last]=\"page() === totalPages - 1\"\n\t\t\t[page]=\"page()\"\n\t\t\t[totalPages]=\"totalPages\"\n\t\t></as-lib-pagination>\n\t</div>\n\t<ng-template #tableHeadModal>\n\t\t<div class=\"modal-header\">\n\t\t\t<h4 class=\"modal-title pull-left\">Edit table header</h4>\n\t\t\t<button (click)=\"modalClose()\" aria-label=\"Close\" class=\"btn-close close pull-right\" type=\"button\">\n\t\t\t\t<span aria-hidden=\"true\" class=\"visually-hidden\">×</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<div class=\"modal-body\">\n\t\t\t<ng-container *ngFor=\"let td of tableHead()\">\n\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t<input\n\t\t\t\t\t\t(change)=\"handleTHchange(td.key)\"\n\t\t\t\t\t\t[checked]=\"!td.hidden\"\n\t\t\t\t\t\t[disabled]=\"td.mandatory\"\n\t\t\t\t\t\t[readOnly]=\"td.mandatory\"\n\t\t\t\t\t\tclass=\"form-check-input\"\n\t\t\t\t\t\tid=\"{{ td.key }}\"\n\t\t\t\t\t\trole=\"switch\"\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t/>\n\t\t\t\t\t<label class=\"form-check-label\" for=\"{{ td.key }}\">{{ td.label }} {{ td.mandatory ? \"*\" : \"\" }}</label>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<small class=\"small text-muted pt-2\">* Mandatory field for the view</small>\n\t\t</div>\n\t\t<div class=\"modal-footer\">\n\t\t\t<button (click)=\"resetValues()\" class=\"btn btn-outline-secondary me-auto\" type=\"button\">Reset</button>\n\t\t\t<button (click)=\"modalClose()\" class=\"btn btn-primary\" translate=\"CLOSE\" type=\"button\">Close</button>\n\t\t</div>\n\t</ng-template>\n</div>\n", styles: [".dropdown-holder{min-height:20px}.dynamic-table,.dynamic-table button,span.badge{font-size:12px;font-weight:400}.table-length label{display:inline-block;white-space:nowrap}.table-length select{display:inline-block;width:auto}.table-search{text-align:right}.table-search label{display:inline-block;white-space:nowrap}.table-search input{display:inline-block;width:auto}th.sortable div{display:flex;align-items:center;cursor:pointer}th.sortable div span:not(.fa){flex:1}th.sortable div span.fa{display:block}th.sortable div span.fa:after{content:\"\\f0dc\";opacity:.25}th.sortable.headerSortDown span.fa.fa:after{color:#348fe2;content:\"\\f0dd\";opacity:1}th.sortable.headerSortUp span.fa.fa:after{color:#348fe2;content:\"\\f0de\";opacity:1}.menu-button{border-radius:50%;width:24px;height:24px;display:inline-block;position:relative}.menu-button:after{content:\"\";background-image:radial-gradient(circle,black 2px,transparent 2px);background-size:100% 33.33%;width:18px;height:18px;display:block;top:3px;left:3px;position:absolute}.menu-button:hover{background:#4e4e4e26}.menu-button.menu-horizontal:after{background-size:33.33% 100%}.small-column{white-space:nowrap;width:1%}.loading{opacity:.3}\n"] }]
|
|
204
|
-
}], ctorParameters: () => [] });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXMtbGliLWdlbmVyaWMtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYXMtbGliLWdlbmVyaWMtdGFibGUvc3JjL2xpYi9hcy1saWItZ2VuZXJpYy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcy1saWItZ2VuZXJpYy10YWJsZS9zcmMvbGliL2FzLWxpYi1nZW5lcmljLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBYyxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBZTdFLE1BQU0sT0FBTywwQkFBMEI7SUFHckMsT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixZQUFZLEdBQUcsS0FBSyxD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Z0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELEVBQUU7SUFDTSxjQUFjO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7dUdBOU5VLDBCQUEwQjsyRkFBMUIsMEJBQTBCLG0wRkN2QnZDLHN4UkFrTUEsdXVDRHBMSSxZQUFZLGdaQUNaLFdBQVcsNHpCQUNYLGdCQUFnQiwyRUFFaEIsd0JBQXdCOzsyRkFLZiwwQkFBMEI7a0JBYnRDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLHdCQUF3QjtxQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgSW5qZWN0LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQWN0aW9uQnV0dG9uLCBJRmlsdGVyUGFyYW1zLCBJVGFibGVIZWFkIH0gZnJvbSBcIi4vZXhwb3J0c1wiO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBCc01vZGFsUmVmLCBCc01vZGFsU2VydmljZSB9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL21vZGFsXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gXCIuL2RpcmVjdGl2ZXMvY29tcG9uZW50L3Rvb2x0aXAuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBc0xpYlBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tIFwiQGFnZW50c21pdGguYmdkL2FzLWxpYi1wYWdpbmF0aW9uXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FzLWxpYi1nZW5lcmljLXRhYmxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxuICAgIFRvb2x0aXBDb21wb25lbnQsXG4gICAgQXNMaWJQYWdpbmF0aW9uQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hcy1saWItZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hcy1saWItZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgQXNMaWJHZW5lcmljVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG5cbiAgbG9hZGluZyA9IGlucHV0KGZhbHNlKTtcbiAgc3RyaXBlZCA9IGlucHV0KGZhbHNlKTtcbiAgYm9yZGVyZWQgPSBpbnB1dChmYWxzZSk7XG4gIGhvdmVyZWQgPSBpbnB1dChmYWxzZSk7XG4gIGVuYWJsZVNlYXJjaCA9IGlucHV0KHRydWUpO1xuICByb3dDb3VudGVyID0gaW5wdXQoZmFsc2UpO1xuICBlbmFibGVMb2cgPSBpbnB1dChmYWxzZSk7XG4gIHBlclBhZ2UgPSBpbnB1dCgxMCk7XG5cbiAgdGFibGVIZWFkID0gaW5wdXQ8SVRhYmxlSGVhZFtdPihbXSk7XG5cbiAgdGFibGVEYXRhID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgbmV2ZXI+W10+KFtdKTtcblxuICB0YWJsZUhlYWRTdG9yYWdlID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cbiAgcGVyUGFnZVZhbHVlcyA9IGlucHV0PG51bWJlcltdPihbMTAsIDIwLCA1MCwgMTAwXSk7XG5cbiAgaGVhZGVyQWN0aW9ucyA9IGlucHV0PElBY3Rpb25CdXR0b25bXT4oW10pO1xuXG4gIHJvd0FjdGlvbnMgPSBpbnB1dDxJQWN0aW9uQnV0dG9uW10+KFtdKTtcblxuICB0YWJsZVN0eWxlID0gaW5wdXQ8JycgfCAndGFibGUtbGlnaHQnIHwgJ3RhYmxlLWRhcmsnPignJyk7XG5cbiAgaGVhZFN0eWxlID0gaW5wdXQ8XG4gICAgfCAndGFibGUtZGVmYXVsdCdcbiAgICB8ICd0YWJsZS1wcmltYXJ5J1xuICAgIHwgJ3RhYmxlLXNlY29uZGFyeSdcbiAgICB8ICd0YWJsZS1zdWNjZXNzJ1xuICAgIHwgJ3RhYmxlLWRhbmdlcidcbiAgICB8ICd0YWJsZS13YXJuaW5nJ1xuICAgIHwgJ3RhYmxlLWluZm8nXG4gICAgfCAndGFibGUtbGlnaHQnXG4gICAgfCAndGFibGUtZGFyayc+KCd0YWJsZS1kZWZhdWx0Jyk7XG4gIHBhZ2luYXRpb25BbGlnbm1lbnQgPSBpbnB1dDwnJyB8ICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyB8ICdqdXN0aWZ5LWNvbnRlbnQtZW5kJz4oJ2p1c3RpZnktY29udGVudC1lbmQnKTtcblxuICB0b3RhbEl0ZW1zID0gaW5wdXQoMCk7XG5cbiAgcGFnZSA9IGlucHV0KDApO1xuXG4gIGZpbHRlclBhcmFtc0NoYW5nZWQgPSBvdXRwdXQ8SUZpbHRlclBhcmFtcz4oKTtcblxuICBlZGl0Um93ID0gb3V0cHV0PFJlY29yZDxzdHJpbmcsIG5ldmVyPj4oKTtcblxuICBzbGlkZXJDbGlja2VkID0gb3V0cHV0PFJlY29yZDxzdHJpbmcsIG5ldmVyPj4oKTtcblxuICBoZWFkZXJBY3Rpb25DbGlja2VkID0gb3V0cHV0PHN0cmluZz4oKTtcblxuICByb3dBY3Rpb25DbGlja2VkID0gb3V0cHV0PHsgYWN0aW9uOiBzdHJpbmc7IHZhbHVlOiBhbnkgfT4oKTtcblxuICB0YWJsZUhlYWRDaGFuZ2VkID0gb3V0cHV0PHN0cmluZ1tdIHwgbnVsbD4oKTtcblxuXG4gIGJzTW9kYWxSZWYhOiBCc01vZGFsUmVmO1xuICBzZWFyY2hVcGRhdGU6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHNlYXJjaCA9ICcnO1xuICB0b3RhbFBhZ2VzID0gMDtcbiAgY291bnRlciA9IDA7XG4gIHByaXZhdGUgc29ydCE6IHN0cmluZztcbiAgcHJpdmF0ZSBzb3J0T3JkZXI6ICdhc2MnIHwgJ2Rlc2MnID0gJ2FzYyc7XG5cbiAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlID0gSW5qZWN0KEJzTW9kYWxTZXJ2aWNlKVxuXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGBUaGUgY291bnQgaXM6YCwgdGhpcy50b3RhbEl0ZW1zKCksIHRoaXMucGFnZSgpKTtcbiAgICAgIHRoaXMuY291bnRlciA9IHRoaXMucGFnZSgpICogdGhpcy5wZXJQYWdlKCkgKyAxXG4gICAgICB0aGlzLmNhbGN1bGF0ZVBhZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50YWJsZUhlYWRTdG9yYWdlKCkpIHtcbiAgICAgIGNvbnN0IHN0b3JhZ2UgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnRhYmxlSGVhZFN0b3JhZ2UoKSk7XG4gICAgICBpZiAoc3RvcmFnZSkge1xuICAgICAgICBjb25zdCBoaWRkZW46IHN0cmluZ1tdID0gKEpTT04ucGFyc2Uoc3RvcmFnZSkgYXMgc3RyaW5nW10pIHx8IFtdO1xuICAgICAgICB0aGlzLnRhYmxlSGVhZCgpLmZvckVhY2godCA9PiAodC5oaWRkZW4gPSBoaWRkZW4uaW5jbHVkZXModC5rZXkpKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnRhYmxlSGVhZFN0b3JhZ2UoKSwgSlNPTi5zdHJpbmdpZnkodGhpcy50YWJsZUhlYWQoKS5maWx0ZXIodCA9PiB0LmhpZGRlbikubWFwKHQgPT4gdC5rZXkpKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc29ydCA9IHRoaXMudGFibGVIZWFkKClbMF0ua2V5O1xuICAgIHRoaXMubG9nKCd0b3RhbFBhZ2VzJywgdGhpcy50b3RhbFBhZ2VzKTtcbiAgICB0aGlzLmxvZygnVGFibGUgaGVhZCcsIHRoaXMudGFibGVIZWFkKCkpO1xuICAgIHRoaXMubG9nKCdUYWJsZSBkYXRhJywgdGhpcy50YWJsZURhdGEoKSk7XG4gICAgdGhpcy5sb2coJ1JvdyBhY3Rpb25zJywgdGhpcy5yb3dBY3Rpb25zKCkpO1xuICAgIHRoaXMuc2VhcmNoVXBkYXRlLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZShfID0+IHtcbiAgICAgIHRoaXMubG9nKCdzZWFyY2gnLCB0aGlzLnNlYXJjaCk7XG4gICAgICBjb25zdCBlbWl0VmFsdWU6IElGaWx0ZXJQYXJhbXMgPSB7XG4gICAgICAgIHBhZ2U6IDAsXG4gICAgICAgIHNvcnQ6IHRoaXMuc29ydCxcbiAgICAgICAgb3JkZXI6IHRoaXMuc29ydE9yZGVyLFxuICAgICAgICBwZXJQYWdlOiB0aGlzLnBlclBhZ2UoKSxcbiAgICAgICAgc2VhcmNoU3RyaW5nOiB0aGlzLnNlYXJjaCxcbiAgICAgIH07XG4gICAgICB0aGlzLmxvZygnU2VhcmNoIHZhbHVlIGNoYW5nZSwgc29ydCB2YWx1ZXM6ICcsIGVtaXRWYWx1ZSk7XG4gICAgICB0aGlzLmZpbHRlclBhcmFtc0NoYW5nZWQuZW1pdChlbWl0VmFsdWUpO1xuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLnBlclBhZ2VWYWx1ZXMoKS5pbmNsdWRlcyh0aGlzLnBlclBhZ2UoKSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUGVyIHBhZ2UgdmFsdWUgaW52YWxpZCcpO1xuICAgIH1cbiAgICB0aGlzLmxvZygnTG9hZGluZycsIHRoaXMubG9hZGluZygpKTtcbiAgIH1cblxuICAvKiBlc2xpbnQtZGlzYWJsZSAgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuICBvcGVuVGFibGVMYXlvdXRNb2RhbCh0YWJsZUhlYWRNb2RhbDogVGVtcGxhdGVSZWY8YW55Pik6IHZvaWQge1xuICAgIHRoaXMubG9nKCdPcGVuIGxheW91dCcpO1xuICAgIHRoaXMuYnNNb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3codGFibGVIZWFkTW9kYWwsIHtcbiAgICAgIGFuaW1hdGVkOiB0cnVlLFxuICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAgICAgIGNsYXNzOiAnY29uZmlybS1tb2RhbCBtb2RhbC1zbScsXG4gICAgICBpbml0aWFsU3RhdGU6IHt9LFxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlVEhjaGFuZ2Uoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxvZygnY2hhbmdlIHRyaWdnZXJlZCcsIGtleSk7XG4gICAgdGhpcy50YWJsZUhlYWQoKS5mb3JFYWNoKHQgPT4ge1xuICAgICAgaWYgKHQua2V5ID09PSBrZXkpIHtcbiAgICAgICAgdC5oaWRkZW4gPSAhdC5oaWRkZW47XG4gICAgICAgIHRoaXMudGFibGVIZWFkU3RvcmFnZSAmJlxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnRhYmxlSGVhZFN0b3JhZ2UoKSwgSlNPTi5zdHJpbmdpZnkodGhpcy50YWJsZUhlYWQoKS5maWx0ZXIodCA9PiB0LmhpZGRlbikubWFwKHQgPT4gdC5rZXkpKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB0YWJsZVNvcnQoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxvZygndGFibGUgc29ydCBrZXknLCBrZXkpO1xuICAgIHRoaXMuc29ydCA9IGtleTtcbiAgICB0aGlzLnRhYmxlSGVhZCgpLmZvckVhY2goaCA9PiB7XG4gICAgICBpZiAoaC5rZXkgPT09IGtleSkge1xuICAgICAgICBpZiAoaC5zb3J0ID09PSAnaGVhZGVyU29ydERvd24nKSB7XG4gICAgICAgICAgdGhpcy5zb3J0T3JkZXIgPSAnZGVzYyc7XG4gICAgICAgICAgaC5zb3J0ID0gJ2hlYWRlclNvcnRVcCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaC5zb3J0ID0gJ2hlYWRlclNvcnREb3duJztcbiAgICAgICAgICB0aGlzLnNvcnRPcmRlciA9ICdhc2MnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVtaXRWYWx1ZTogSUZpbHRlclBhcmFtcyA9IHtcbiAgICAgICAgICBwYWdlOiAwLFxuICAgICAgICAgIHNvcnQ6IHRoaXMuc29ydCxcbiAgICAgICAgICBvcmRlcjogdGhpcy5zb3J0T3JkZXIsXG4gICAgICAgICAgcGVyUGFnZTogdGhpcy5wZXJQYWdlKCksXG4gICAgICAgICAgc2VhcmNoU3RyaW5nOiB0aGlzLnNlYXJjaCxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5sb2coJ1NvcnQgY2hhbmdlZCwgZmlsdGVyIHZhbHVlczogJywgZW1pdFZhbHVlKTtcbiAgICAgICAgdGhpcy5maWx0ZXJQYXJhbXNDaGFuZ2VkLmVtaXQoZW1pdFZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGguc29ydCA9ICcnO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY2hhbmdlUGVyUGFnZSgkZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcGVyUGFnZSA9IHBhcnNlSW50KCgkZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50KS52YWx1ZSwgMTApIHx8IDI1O1xuICAgIC8vdGhpcy5wZXJQYWdlID0gcGVyUGFnZTtcbiAgICAvLyB0aGlzLnBhZ2UgPSAwO1xuICAgIHRoaXMubG9nKCdjaGFuZ2VQZXJQYWdlJywgcGVyUGFnZSk7XG4gICAgdGhpcy5jYWxjdWxhdGVQYWdlcygpO1xuICAgIHRoaXMuZmlsdGVyUGFyYW1zQ2hhbmdlZC5lbWl0KHtcbiAgICAgIHBhZ2U6IDAsXG4gICAgICBzb3J0OiB0aGlzLnNvcnQsXG4gICAgICBvcmRlcjogdGhpcy5zb3J0T3JkZXIsXG4gICAgICBwZXJQYWdlOiBwZXJQYWdlLFxuICAgICAgc2VhcmNoU3RyaW5nOiB0aGlzLnNlYXJjaCxcbiAgICB9KTtcbiAgfVxuXG4gIGxvZyh2YWx1ZTogYW55LCAuLi5yZXN0OiBhbnlbXSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVuYWJsZUxvZygpIHx8IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsb2dnZXJFbmFibGUnKSkge1xuICAgICAgY29uc29sZS5sb2coYEFTIER5bmFtaWMgVGFibGUgLT4gJHt2YWx1ZX1gLCAuLi5yZXN0KTtcbiAgICB9XG4gIH1cblxuICBlbWl0Um93KHJvdzogUmVjb3JkPHN0cmluZywgbmV2ZXI+KSB7XG4gICAgdGhpcy5sb2coJ2VkaXQgcm93Jywgcm93KTtcbiAgICB0aGlzLmVkaXRSb3cuZW1pdChyb3cpO1xuICB9XG5cbiAgaGVhZGVyQWN0aW9uKGFjdGlvbk5hbWU6IHN0cmluZykge1xuICAgIHRoaXMubG9nKCdIZWFkZXIgYWN0aW9uJywgYWN0aW9uTmFtZSk7XG4gICAgdGhpcy5oZWFkZXJBY3Rpb25DbGlja2VkLmVtaXQoYWN0aW9uTmFtZSk7XG4gIH1cblxuICByb3dBY3Rpb24oYWN0aW9uOiBzdHJpbmcsIHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj4pIHtcbiAgICB0aGlzLmxvZygnUm93IGFjdGlvbicsIGFjdGlvbiwgdmFsdWUpO1xuICAgIHRoaXMucm93QWN0aW9uQ2xpY2tlZC5lbWl0KHthY3Rpb24sIHZhbHVlfSk7XG4gIH1cblxuICBwYWdlQ2hhbmdlKHBhZ2U6IG51bWJlcikge1xuICAgIGNvbnN0IGVtaXRWYWx1ZTogSUZpbHRlclBhcmFtcyA9IHtcbiAgICAgIHBhZ2UsXG4gICAgICBzb3J0OiB0aGlzLnNvcnQsXG4gICAgICBvcmRlcjogdGhpcy5zb3J0T3JkZXIsXG4gICAgICBwZXJQYWdlOiB0aGlzLnBlclBhZ2UoKSxcbiAgICAgIHNlYXJjaFN0cmluZzogdGhpcy5zZWFyY2gsXG4gICAgfTtcbiAgICB0aGlzLmxvZygnUGFnZSBjaGFuZ2UsIGZpbHRlciB2YWx1ZXM6ICcsIGVtaXRWYWx1ZSk7XG4gICAgdGhpcy5maWx0ZXJQYXJhbXNDaGFuZ2VkLmVtaXQoZW1pdFZhbHVlKTtcbiAgfVxuXG4gIG1vZGFsQ2xvc2UoKSB7XG4gICAgY29uc3QgaGlkZGVuS2V5cyA9IHRoaXMudGFibGVIZWFkKCkuZmlsdGVyKHQgPT4gdC5oaWRkZW4pLm1hcCh0ID0+IHQua2V5KTtcbiAgICB0aGlzLmxvZygnTW9kYWwgY2xvc2VkLCBzYXZlZCBrZXlzJywgaGlkZGVuS2V5cyk7XG4gICAgdGhpcy50YWJsZUhlYWRDaGFuZ2VkLmVtaXQoaGlkZGVuS2V5cyk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIC8vXG4gIHJlc2V0VmFsdWVzKCkge1xuICAgIHRoaXMudGFibGVIZWFkQ2hhbmdlZC5lbWl0KG51bGwpO1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICAvL1xuICBwcml2YXRlIGNhbGN1bGF0ZVBhZ2VzKCkge1xuICAgIHRoaXMudG90YWxQYWdlcyA9IE1hdGguY2VpbCh0aGlzLnRvdGFsSXRlbXMoKSAvIHRoaXMucGVyUGFnZSgpKTtcbiAgICB0aGlzLmxvZygndG90YWwgaXRlbXMvcGFnZXMnLCB0aGlzLnRvdGFsSXRlbXMoKSwgdGhpcy50b3RhbFBhZ2VzKTtcbiAgfVxuXG5cbn1cbiIsIjxwICpuZ0lmPVwibG9hZGluZygpXCI+XG5cdDxpbWdcblx0XHQqbmdJZj1cImxvYWRpbmcoKVwiXG5cdFx0Y2xhc3M9XCJwbC0zXCJcblx0XHRzcmM9XCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhFQUFRQVBJQUFQLy8vd0FBQU1MQ3drSkNRZ0FBQUdKaVlvS0NncEtTa2lIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaC9ocERjbVZoZEdWa0lIZHBkR2dnWVdwaGVHeHZZV1F1YVc1bWJ3QWgrUVFKQ2dBQUFDd0FBQUFBRUFBUUFBQURNd2k2M1A0d3lrbHJFMk1JT2dnWm5BZE9tR1lKUmJFeHdyb1VtY0cyTG1ERXduSFFMVnNZT2QybUJ6a1lEQWRLYStkSUFBQWgrUVFKQ2dBQUFDd0FBQUFBRUFBUUFBQUROQWk2M1A1T2pDRWdHNFFNdTdEbWlrUnhRbEZVWURFWklHQk1SVnNhcUh3Y3RYWGY3V0VZQjRBZzF4amloa01ac2lVa0toSUFJZmtFQ1FvQUFBQXNBQUFBQUJBQUVBQUFBellJdWpJaks4cEJ5SkRNbEZZdkJvVmpIQTcwR1U3eFNVSmhtS3R3SFBBS3pMTzlITWFvS3dKWjdSZjhBWVBERHpLcFpCcWZ2d1FBSWZrRUNRb0FBQUFzQUFBQUFCQUFFQUFBQXpNSXVtSWxLOG95aHBIc25GWmZoWXVtQ1lVaERBUXhSSWRoSEJHcVJvS3cwUjhEWWxKZDh6MGZNRGdzR28vSXBISTVUQUFBSWZrRUNRb0FBQUFzQUFBQUFCQUFFQUFBQXpJSXVuSW5LMHJuWkJUd0dQTk1nUXdtZHNOZ1hHSlVsSVdFdVI1b1dVSXB6OHBBRUFNZTZUd2Z3eVlzR28vSXBGS1NBQUFoK1FRSkNnQUFBQ3dBQUFBQUVBQVFBQUFETXdpNklNS1FPUmZqZE9lODJwNHdHY2NjNENFdVFyYWR5bGVzb2pFTUJnc1VjMkc3c0RYM2xRR0JNTEFKaWJ1ZmJTbEtBQUFoK1FRSkNnQUFBQ3dBQUFBQUVBQVFBQUFETWdpNjNQN3dDUkhabkZWZG1nSHUybkZ3bFdDSTNXR2MzVFNXaFVGR3hUQVVrR0NidGdFTkJNSkFFSnN4Z01MV3pwRUFBQ0g1QkFrS0FBQUFMQUFBQUFBUUFCQUFBQU15Q0xyYy9qREtTYXRsUXRTY0tkY2VDQWpESUk3SGNRNEVNVENweXJDdVVCakNZUmdIVnRxbEFpQjFZaGlDbmxzUmtBQUFPd0FBQUFBQUFBQUFBQT09XCJcblx0Lz5cbjwvcD5cbjxkaXZcblx0W25nQ2xhc3NdPVwie1xuXHRcdGxvYWRpbmc6IGxvYWRpbmcoKVxuXHR9XCJcblx0Y2xhc3M9XCJkeW5hbWljLXRhYmxlXCJcbj5cblx0PGRpdiBjbGFzcz1cInJvdyBtYi0zXCI+XG5cdFx0PGRpdiBjbGFzcz1cImNvbC1tZC03IGQtZmxleCBkLXNtLWZsZXggZC1tZC1ibG9jayBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG1iLTJcIj5cblx0XHRcdDxkaXYgKm5nSWY9XCJwZXJQYWdlVmFsdWVzKCkgJiYgcGVyUGFnZVZhbHVlcygpLmxlbmd0aFwiIGNsYXNzPVwiZC1ibG9jayBkLW1kLWlubGluZS1mbGV4IG1lLTAgbWUtbWQtM1wiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFibGUtbGVuZ3RoXCI+XG5cdFx0XHRcdFx0PGxhYmVsXG5cdFx0XHRcdFx0XHQ+U2hvd1xuXHRcdFx0XHRcdFx0PHNlbGVjdFxuXHRcdFx0XHRcdFx0XHQoY2hhbmdlKT1cImNoYW5nZVBlclBhZ2UoJGV2ZW50KVwiXG5cdFx0XHRcdFx0XHRcdGFyaWEtY29udHJvbHM9XCJkYXRhLXRhYmxlLWNvbWJpbmVcIlxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImZvcm0tc2VsZWN0IGZvcm0tc2VsZWN0LXNtXCJcblx0XHRcdFx0XHRcdFx0bmFtZT1cImRhdGEtdGFibGUtY29tYmluZV9sZW5ndGhcIlxuXHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHQ8b3B0aW9uICpuZ0Zvcj1cImxldCBwZXJwIG9mIHBlclBhZ2VWYWx1ZXMoKVwiIFtzZWxlY3RlZF09XCJwZXJQYWdlKCkgPT09IHBlcnBcIiB2YWx1ZT1cInt7IHBlcnAgfX1cIj57eyBwZXJwIH19PC9vcHRpb24+XG5cdFx0XHRcdFx0XHQ8L3NlbGVjdD5cblx0XHRcdFx0XHRcdGVudHJpZXM8L2xhYmVsXG5cdFx0XHRcdFx0PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiAqbmdJZj1cImhlYWRlckFjdGlvbnMoKSAmJiBoZWFkZXJBY3Rpb25zKCkubGVuZ3RoXCIgY2xhc3M9XCJkLWJsb2NrIGQtaW5saW5lLWZsZXhcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImR0LWJ1dHRvbnMgYnRuLWdyb3VwIGZsZXgtd3JhcFwiPlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBoZWFkZXJBY3Rpb25zKClcIj5cblx0XHRcdFx0XHRcdDxidXR0b25cblx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cImhlYWRlckFjdGlvbihhY3Rpb24uYWN0aW9uTmFtZSlcIlxuXHRcdFx0XHRcdFx0XHRbbmdDbGFzc109XCJ7ICdidG4tc2Vjb25kYXJ5JzogIWFjdGlvbi5idG5Db2xvciB9XCJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJidG4gYnV0dG9ucy1jb3B5IGJ1dHRvbnMtaHRtbDUgYnRuLXNtIHt7IGFjdGlvbi5hY3Rpb25OYW1lIH19IHt7IGFjdGlvbi5idG5Db2xvciB9fVwiXG5cdFx0XHRcdFx0XHRcdGlkPVwiaGVhZGVyLWFjdGlvbi17eyBhY3Rpb24uYWN0aW9uTmFtZSB9fVwiXG5cdFx0XHRcdFx0XHRcdHR5cGU9XCJidXR0b25cIlxuXHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHQ8c3Bhbj48aSAqbmdJZj1cImFjdGlvbi5mYUljb25cIiBjbGFzcz1cImZhIHt7IGFjdGlvbi5mYUljb24gfX1cIj48L2k+IHt7IGFjdGlvbi5sYWJlbCB9fTwvc3Bhbj5cblx0XHRcdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJlbmFibGVTZWFyY2goKVwiIGNsYXNzPVwiY29sLW1kLTUgZC1mbGV4IGQteGwtYmxvY2sganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cInRhYmxlLXNlYXJjaFwiPlxuXHRcdFx0XHQ8bGFiZWxcblx0XHRcdFx0XHQ+U2VhcmNoOlxuXHRcdFx0XHRcdDxpbnB1dFxuXHRcdFx0XHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwidGhpcy5zZWFyY2hVcGRhdGUubmV4dCgkZXZlbnQpXCJcblx0XHRcdFx0XHRcdFsobmdNb2RlbCldPVwic2VhcmNoXCJcblx0XHRcdFx0XHRcdGFyaWEtY29udHJvbHM9XCJkYXRhLXRhYmxlLWNvbWJpbmVcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXNtXCJcblx0XHRcdFx0XHRcdGlkPVwidGFibGUtc2VhcmNoXCJcblx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwiXCJcblx0XHRcdFx0XHRcdHR5cGU9XCJzZWFyY2hcIlxuXHRcdFx0XHQvPjwvbGFiZWw+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XG5cdFx0PHRhYmxlXG5cdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdCd0YWJsZS1zdHJpcGVkJzogc3RyaXBlZCgpLFxuXHRcdFx0XHQndGFibGUtYm9yZGVyZWQnOiBib3JkZXJlZCgpLFxuXHRcdFx0XHQndGFibGUtaG92ZXInOiBob3ZlcmVkKClcblx0XHRcdH1cIlxuXHRcdFx0Y2xhc3M9XCJ0YWJsZSB0YWJsZS1maXhlZCBhbGlnbi1taWRkbGUge3sgdGFibGVTdHlsZSgpIH19XCJcblx0XHQ+XG5cdFx0XHQ8dGhlYWQgW2NsYXNzXT1cImhlYWRTdHlsZSgpXCI+XG5cdFx0XHRcdDx0cj5cblx0XHRcdFx0XHQ8dGggKm5nSWY9XCJyb3dDb3VudGVyXCIgY2xhc3M9XCJ0ZXh0LWVuZCBzbWFsbC1jb2x1bW5cIj4gTnIuPC90aD5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBoZWFkIG9mIHRhYmxlSGVhZCgpXCI+XG5cdFx0XHRcdFx0XHQ8dGhcblx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cIiFoZWFkLm5vdFNvcnRhYmxlICYmIHRhYmxlU29ydChoZWFkLmtleSlcIlxuXHRcdFx0XHRcdFx0XHQqbmdJZj1cIiFoZWFkLmhpZGRlblwiXG5cdFx0XHRcdFx0XHRcdFtuZ0NsYXNzXT1cImhlYWQuc29ydFwiXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiaGVhZGVyIHt7IGhlYWQubm90U29ydGFibGUgPyAnJyA6ICdzb3J0YWJsZScgfX0ge3sgaGVhZC5jZWxsQWxpZ24gfX1cIlxuXHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHQ8ZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDxzcGFuIFt0cmFuc2xhdGVdPVwiaGVhZC5rZXkudG9VcHBlckNhc2UoKVwiPnt7IGhlYWQubGFiZWwgfHwgaGVhZC5rZXkgfX08L3NwYW4+XG5cdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmYVwiPjwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHQ8L3RoPlxuXHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdDx0aCAqbmdJZj1cInRhYmxlSGVhZFN0b3JhZ2UoKSB8fCAocm93QWN0aW9ucygpICYmIHJvd0FjdGlvbnMoKS5sZW5ndGgpXCIgY2xhc3M9XCJoZWFkZXIgc21hbGwtY29sdW1uIHRleHQtY2VudGVyIHAtMFwiIGRhdGEtd2lkdGg9XCI1MFwiPlxuXHRcdFx0XHRcdFx0PGFcblx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cIm9wZW5UYWJsZUxheW91dE1vZGFsKHRhYmxlSGVhZE1vZGFsKVwiXG5cdFx0XHRcdFx0XHRcdCpuZ0lmPVwidGFibGVIZWFkU3RvcmFnZSgpXCJcblx0XHRcdFx0XHRcdFx0YXJpYS1jb250cm9scz1cImJhc2ljLWxpbmstZHJvcGRvd25cIlxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cIm1lbnUtYnV0dG9uIHRvZ2dsZS13aGl0ZSBiaWctdG9nZ2xlIGRyb3Bkb3duLW1lbnUtbGlua1wiXG5cdFx0XHRcdFx0XHQ+PC9hPlxuXHRcdFx0XHRcdDwvdGg+XG5cdFx0XHRcdDwvdHI+XG5cdFx0XHQ8L3RoZWFkPlxuXHRcdFx0PHRib2R5PlxuXHRcdFx0XHQ8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiB0YWJsZURhdGEoKTsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwie3sgcm93Wydyb3dDbGFzcyddIHx8ICcnIH19XCI+XG5cdFx0XHRcdFx0PHRoICpuZ0lmPVwicm93Q291bnRlcigpXCIgY2xhc3M9XCJ0ZXh0LWVuZFwiPiB7eyBpICsgY291bnRlciB9fS48L3RoPlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGhlYWQgb2YgdGFibGVIZWFkKClcIj5cblx0XHRcdFx0XHRcdDx0ZCAqbmdJZj1cIiFoZWFkLmhpZGRlblwiIGNsYXNzPVwiaGVhZGVyIHRleHQtbm93cmFwIHt7IGhlYWQuY2VsbEFsaWduIH19XCI+XG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkLnR5cGUgPT09ICdzZWxlY3QnXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGlucHV0IGNsYXNzPVwic2VsZWN0XCIgdHlwZT1cImNoZWNrYm94XCIgLz5cblx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGVhZC50eXBlXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3sgcm93W2hlYWQua2V5XSB9fVxuXHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWQudHlwZSA9PT0gJ2JhZGdlJ1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiYmFkZ2Uge3sgcm93W2hlYWQua2V5ICsgJ0JhZGdlJ10gfX1cIj57eyByb3dbaGVhZC5rZXldIH19PC9zcGFuPlxuXHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWQudHlwZSA9PT0gJ2RhdGUnXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3sgcm93W2hlYWQua2V5XSB8IGRhdGU6IFwiZGQuTU0ueXl5eSBISDptbTpzc1wiIH19XG5cdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZC50eXBlID09PSAnc2xpZGVyJ1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXRcblx0XHRcdFx0XHRcdFx0XHRcdFx0KGNoYW5nZSk9XCJzbGlkZXJDbGlja2VkLmVtaXQocm93KVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFtjaGVja2VkXT1cInJvd1toZWFkLmtleV1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInN3aXRjaGVkXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWQ9XCJjaGVjay17eyByb3dbJ2lkJ10gfX1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlPVwiY2hlY2tib3hcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZT1cInRydWVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0XHRcdDxsYWJlbCBmb3I9XCJjaGVjay17eyByb3dbJ2lkJ10gfX1cIj48L2xhYmVsPlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWQudHlwZSA9PT0gJ2lucHV0J1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbnB1dCBbdmFsdWVdPVwicm93W2hlYWQua2V5XVwiIHR5cGU9XCJ0ZXh0XCIgLz5cblx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdDx0ZCAqbmdJZj1cInRhYmxlSGVhZFN0b3JhZ2UoKSB8fCAocm93QWN0aW9ucygpICYmIHJvd0FjdGlvbnMoKS5sZW5ndGgpXCIgY2xhc3M9XCJzbWFsbC1jb2x1bW5cIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJtZW51IHRleHQtZW5kXCI+XG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiByb3dBY3Rpb25zKClcIj5cblx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uXG5cdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwicm93QWN0aW9uKGFjdGlvbi5hY3Rpb25OYW1lLCByb3cpXCJcblx0XHRcdFx0XHRcdFx0XHRcdFtuZ0NsYXNzXT1cInsgJ2J0bi1zZWNvbmRhcnknOiAhYWN0aW9uLmJ0bkNvbG9yIH1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJidG4gYnV0dG9ucy1jb3B5IGJ1dHRvbnMtaHRtbDUgYnRuLXNtIG1zLTIge3sgYWN0aW9uLmFjdGlvbk5hbWUgfX0ge3sgYWN0aW9uLmJ0bkNvbG9yIH19XCJcblx0XHRcdFx0XHRcdFx0XHRcdHRvb2x0aXA9XCJ7eyBhY3Rpb24ubGFiZWwgfX1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXG5cdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4+PGkgKm5nSWY9XCJhY3Rpb24uZmFJY29uXCIgY2xhc3M9XCJmYSB7eyBhY3Rpb24uZmFJY29uIH19XCI+PC9pPjwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHQ8L3RyPlxuXHRcdFx0PC90Ym9keT5cblx0XHQ8L3RhYmxlPlxuXHRcdDxhcy1saWItcGFnaW5hdGlvblxuXHRcdFx0KHBhZ2VDaGFuZ2UpPVwicGFnZUNoYW5nZSgkZXZlbnQpXCJcblx0XHRcdCpuZ0lmPVwidG90YWxQYWdlcyA+IDFcIlxuXHRcdFx0W2FsaWduXT1cInBhZ2luYXRpb25BbGlnbm1lbnQoKVwiXG5cdFx0XHRbZW5hYmxlTG9nXT1cImVuYWJsZUxvZygpXCJcblx0XHRcdFtmaXJzdF09XCJwYWdlKCkgPT09IDBcIlxuXHRcdFx0W2xhc3RdPVwicGFnZSgpID09PSB0b3RhbFBhZ2VzIC0gMVwiXG5cdFx0XHRbcGFnZV09XCJwYWdlKClcIlxuXHRcdFx0W3RvdGFsUGFnZXNdPVwidG90YWxQYWdlc1wiXG5cdFx0PjwvYXMtbGliLXBhZ2luYXRpb24+XG5cdDwvZGl2PlxuXHQ8bmctdGVtcGxhdGUgI3RhYmxlSGVhZE1vZGFsPlxuXHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cblx0XHRcdDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlIHB1bGwtbGVmdFwiPkVkaXQgdGFibGUgaGVhZGVyPC9oND5cblx0XHRcdDxidXR0b24gKGNsaWNrKT1cIm1vZGFsQ2xvc2UoKVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuLWNsb3NlIGNsb3NlIHB1bGwtcmlnaHRcIiB0eXBlPVwiYnV0dG9uXCI+XG5cdFx0XHRcdDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+JnRpbWVzOzwvc3Bhbj5cblx0XHRcdDwvYnV0dG9uPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0ZCBvZiB0YWJsZUhlYWQoKVwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxuXHRcdFx0XHRcdDxpbnB1dFxuXHRcdFx0XHRcdFx0KGNoYW5nZSk9XCJoYW5kbGVUSGNoYW5nZSh0ZC5rZXkpXCJcblx0XHRcdFx0XHRcdFtjaGVja2VkXT1cIiF0ZC5oaWRkZW5cIlxuXHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cInRkLm1hbmRhdG9yeVwiXG5cdFx0XHRcdFx0XHRbcmVhZE9ubHldPVwidGQubWFuZGF0b3J5XCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXG5cdFx0XHRcdFx0XHRpZD1cInt7IHRkLmtleSB9fVwiXG5cdFx0XHRcdFx0XHRyb2xlPVwic3dpdGNoXCJcblx0XHRcdFx0XHRcdHR5cGU9XCJjaGVja2JveFwiXG5cdFx0XHRcdFx0XHR2YWx1ZT1cInRydWVcIlxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cInt7IHRkLmtleSB9fVwiPnt7IHRkLmxhYmVsIH19IHt7IHRkLm1hbmRhdG9yeSA/IFwiKlwiIDogXCJcIiB9fTwvbGFiZWw+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHQ8c21hbGwgY2xhc3M9XCJzbWFsbCB0ZXh0LW11dGVkIHB0LTJcIj4qIE1hbmRhdG9yeSBmaWVsZCBmb3IgdGhlIHZpZXc8L3NtYWxsPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cblx0XHRcdDxidXR0b24gKGNsaWNrKT1cInJlc2V0VmFsdWVzKClcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnkgbWUtYXV0b1wiIHR5cGU9XCJidXR0b25cIj5SZXNldDwvYnV0dG9uPlxuXHRcdFx0PGJ1dHRvbiAoY2xpY2spPVwibW9kYWxDbG9zZSgpXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiB0cmFuc2xhdGU9XCJDTE9TRVwiIHR5cGU9XCJidXR0b25cIj5DbG9zZTwvYnV0dG9uPlxuXHRcdDwvZGl2PlxuXHQ8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class AsLibGenericTableService {
|
|
4
|
-
constructor() { }
|
|
5
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AsLibGenericTableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AsLibGenericTableService, providedIn: 'root' });
|
|
7
|
-
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: AsLibGenericTableService, decorators: [{
|
|
9
|
-
type: Injectable,
|
|
10
|
-
args: [{
|
|
11
|
-
providedIn: 'root'
|
|
12
|
-
}]
|
|
13
|
-
}], ctorParameters: () => [] });
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXMtbGliLWdlbmVyaWMtdGFibGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FzLWxpYi1nZW5lcmljLXRhYmxlL3NyYy9saWIvYXMtbGliLWdlbmVyaWMtdGFibGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DLGdCQUFnQixDQUFDO3VHQUZOLHdCQUF3QjsyR0FBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzJGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFzTGliR2VuZXJpY1RhYmxlU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiJdfQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class TooltipComponent {
|
|
4
|
-
tooltip = '';
|
|
5
|
-
left = 0;
|
|
6
|
-
top = 0;
|
|
7
|
-
constructor() { }
|
|
8
|
-
ngOnInit() { }
|
|
9
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: TooltipComponent, isStandalone: true, selector: "tooltip", ngImport: i0, template: "<div [style.left]=\"left + 'px'\" [style.top]=\"top + 'px'\" class=\"my-tooltip\">\n\t{{ tooltip }}\n</div>\n", styles: [".my-tooltip{position:fixed;background-color:#000;border-radius:4px;color:#fff;font-family:Arial,serif;padding:3px 6px;font-size:13px;margin-top:5px;transform:translate(-50%)}.my-tooltip:before{content:\"\";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid black;position:absolute;left:calc(50% - 5px);top:-5px}\n"] });
|
|
11
|
-
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TooltipComponent, decorators: [{
|
|
13
|
-
type: Component,
|
|
14
|
-
args: [{ selector: 'tooltip', standalone: true, template: "<div [style.left]=\"left + 'px'\" [style.top]=\"top + 'px'\" class=\"my-tooltip\">\n\t{{ tooltip }}\n</div>\n", styles: [".my-tooltip{position:fixed;background-color:#000;border-radius:4px;color:#fff;font-family:Arial,serif;padding:3px 6px;font-size:13px;margin-top:5px;transform:translate(-50%)}.my-tooltip:before{content:\"\";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid black;position:absolute;left:calc(50% - 5px);top:-5px}\n"] }]
|
|
15
|
-
}], ctorParameters: () => [] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcy1saWItZ2VuZXJpYy10YWJsZS9zcmMvbGliL2RpcmVjdGl2ZXMvY29tcG9uZW50L3Rvb2x0aXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXMtbGliLWdlbmVyaWMtdGFibGUvc3JjL2xpYi9kaXJlY3RpdmVzL2NvbXBvbmVudC90b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBUWxELE1BQU0sT0FBTyxnQkFBZ0I7SUFDNUIsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUNyQixJQUFJLEdBQVcsQ0FBQyxDQUFDO0lBQ2pCLEdBQUcsR0FBVyxDQUFDLENBQUM7SUFFaEIsZ0JBQWUsQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQzt1R0FQUCxnQkFBZ0I7MkZBQWhCLGdCQUFnQixtRUNSN0IsK0dBR0E7OzJGREthLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDQyxTQUFTLGNBQ04sSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ3Rvb2x0aXAnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZVVybDogJy4vdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3Rvb2x0aXAuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdHRvb2x0aXA6IHN0cmluZyA9ICcnO1xuXHRsZWZ0OiBudW1iZXIgPSAwO1xuXHR0b3A6IG51bWJlciA9IDA7XG5cblx0Y29uc3RydWN0b3IoKSB7fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge31cbn1cbiIsIjxkaXYgW3N0eWxlLmxlZnRdPVwibGVmdCArICdweCdcIiBbc3R5bGUudG9wXT1cInRvcCArICdweCdcIiBjbGFzcz1cIm15LXRvb2x0aXBcIj5cblx0e3sgdG9vbHRpcCB9fVxuPC9kaXY+XG4iXX0=
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { Directive, HostListener, Input, } from '@angular/core';
|
|
2
|
-
import { TooltipComponent } from '../component/tooltip.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class TooltipDirective {
|
|
5
|
-
elementRef;
|
|
6
|
-
appRef;
|
|
7
|
-
viewContainerRef;
|
|
8
|
-
tooltip = '';
|
|
9
|
-
componentRef = null;
|
|
10
|
-
constructor(elementRef, appRef, viewContainerRef) {
|
|
11
|
-
this.elementRef = elementRef;
|
|
12
|
-
this.appRef = appRef;
|
|
13
|
-
this.viewContainerRef = viewContainerRef;
|
|
14
|
-
}
|
|
15
|
-
onMouseEnter() {
|
|
16
|
-
if (this.componentRef === null) {
|
|
17
|
-
this.componentRef = this.viewContainerRef.createComponent(TooltipComponent);
|
|
18
|
-
this.componentRef.instance.text = this.tooltip;
|
|
19
|
-
this.setTooltipComponentProperties();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
onMouseLeave() {
|
|
23
|
-
this.destroy();
|
|
24
|
-
}
|
|
25
|
-
ngOnDestroy() {
|
|
26
|
-
this.destroy();
|
|
27
|
-
}
|
|
28
|
-
destroy() {
|
|
29
|
-
if (this.componentRef !== null) {
|
|
30
|
-
this.appRef.detachView(this.componentRef.hostView);
|
|
31
|
-
this.componentRef.destroy();
|
|
32
|
-
this.componentRef = null;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
setTooltipComponentProperties() {
|
|
36
|
-
if (this.componentRef !== null) {
|
|
37
|
-
this.componentRef.instance.tooltip = this.tooltip;
|
|
38
|
-
const { left, right, bottom } = this.elementRef.nativeElement.getBoundingClientRect();
|
|
39
|
-
this.componentRef.instance.left = (right - left) / 2 + left;
|
|
40
|
-
this.componentRef.instance.top = bottom;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.ApplicationRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
44
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: TooltipDirective, isStandalone: true, selector: "[tooltip]", inputs: { tooltip: "tooltip" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0 });
|
|
45
|
-
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
47
|
-
type: Directive,
|
|
48
|
-
args: [{
|
|
49
|
-
selector: '[tooltip]',
|
|
50
|
-
standalone: true
|
|
51
|
-
}]
|
|
52
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ApplicationRef }, { type: i0.ViewContainerRef }], propDecorators: { tooltip: [{
|
|
53
|
-
type: Input
|
|
54
|
-
}], onMouseEnter: [{
|
|
55
|
-
type: HostListener,
|
|
56
|
-
args: ['mouseenter']
|
|
57
|
-
}], onMouseLeave: [{
|
|
58
|
-
type: HostListener,
|
|
59
|
-
args: ['mouseleave']
|
|
60
|
-
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcy1saWItZ2VuZXJpYy10YWJsZS9zcmMvbGliL2RpcmVjdGl2ZXMvdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUdULFlBQVksRUFFWixLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBTWxFLE1BQU0sT0FBTyxnQkFBZ0I7SUFNakI7SUFDQTtJQUNBO0lBUEQsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUVkLFlBQVksR0FBNkIsSUFBSSxDQUFDO0lBRXRELFlBQ1UsVUFBc0IsRUFDdEIsTUFBc0IsRUFDdEIsZ0JBQWtDO1FBRmxDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUU1QyxDQUFDO0lBR0QsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUMvQyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUdELFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRU8sNkJBQTZCO1FBQ25DLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNsRCxNQUFNLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3BGLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7dUdBN0NVLGdCQUFnQjsyRkFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUo1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7MklBRVUsT0FBTztzQkFBZixLQUFLO2dCQVlOLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZO2dCQVUxQixZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L3Rvb2x0aXAuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3Rvb2x0aXBdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgdG9vbHRpcCA9ICcnO1xuXG4gIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChUb29sdGlwQ29tcG9uZW50KTtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRleHQgPSB0aGlzLnRvb2x0aXA7XG4gICAgICB0aGlzLnNldFRvb2x0aXBDb21wb25lbnRQcm9wZXJ0aWVzKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3koKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSgpO1xuICB9XG5cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VG9vbHRpcENvbXBvbmVudFByb3BlcnRpZXMoKSB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b29sdGlwID0gdGhpcy50b29sdGlwO1xuICAgICAgY29uc3Qge2xlZnQsIHJpZ2h0LCBib3R0b219ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gKHJpZ2h0IC0gbGVmdCkgLyAyICsgbGVmdDtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IGJvdHRvbTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/exports.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FzLWxpYi1nZW5lcmljLXRhYmxlL3NyYy9saWIvZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJQWN0aW9uQnV0dG9uIHtcblx0YWN0aW9uTmFtZTogc3RyaW5nO1xuXHRsYWJlbD86IHN0cmluZztcblx0ZmFJY29uPzogc3RyaW5nO1xuXHRidG5Db2xvcj86XG5cdFx0fCAnYnRuLWRlZmF1bHQnXG5cdFx0fCAnYnRuLXByaW1hcnknXG5cdFx0fCAnYnRuLXNlY29uZGFyeSdcblx0XHR8ICdidG4tc3VjY2Vzcydcblx0XHR8ICdidG4tZGFuZ2VyJ1xuXHRcdHwgJ2J0bi13YXJuaW5nJ1xuXHRcdHwgJ2J0bi1pbmZvJ1xuXHRcdHwgJ2J0bi1saWdodCdcblx0XHR8ICdidG4tZGFyayc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRhYmxlSGVhZCB7XG5cdGhpZGRlbj86IGJvb2xlYW47XG5cdGtleTogc3RyaW5nO1xuXHR0eXBlPzogJ3NlbGVjdCcgfCAnZGF0ZScgfCAnc2xpZGVyJyB8ICdpbnB1dCcgfCAnYmFkZ2UnO1xuXHRsYWJlbD86IHN0cmluZztcblx0c29ydD86ICcnIHwgJ2hlYWRlclNvcnREb3duJyB8ICdoZWFkZXJTb3J0VXAnO1xuXHRtYW5kYXRvcnk/OiBib29sZWFuO1xuXHRub3RTb3J0YWJsZT86IGJvb2xlYW47XG5cdGNlbGxBbGlnbj86ICcnIHwgJ3RleHQtY2VudGVyJyB8ICd0ZXh0LWVuZCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpbHRlclBhcmFtcyB7XG5cdHNvcnQ6IHN0cmluZztcblx0b3JkZXI6ICdhc2MnIHwgJ2Rlc2MnO1xuXHRwZXJQYWdlOiBudW1iZXI7XG5cdHNlYXJjaFN0cmluZzogc3RyaW5nO1xuXHRwYWdlOiBudW1iZXI7XG59XG4iXX0=
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of as-lib-generic-table
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/as-lib-generic-table.service';
|
|
5
|
-
export * from './lib/as-lib-generic-table.component';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FzLWxpYi1nZW5lcmljLXRhYmxlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhcy1saWItZ2VuZXJpYy10YWJsZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FzLWxpYi1nZW5lcmljLXRhYmxlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXMtbGliLWdlbmVyaWMtdGFibGUuY29tcG9uZW50JztcbiJdfQ==
|