@agentsmith.bgd/as-lib-generic-table 19.0.30 → 19.0.32
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.
|
@@ -361,8 +361,15 @@ class AsLibGenericTableComponent {
|
|
|
361
361
|
this.manualTableSort(this.sort(), this.order());
|
|
362
362
|
}
|
|
363
363
|
}
|
|
364
|
+
visibleRowAction(row, visibilityRule) {
|
|
365
|
+
if (!visibilityRule || !visibilityRule.key) {
|
|
366
|
+
return true;
|
|
367
|
+
}
|
|
368
|
+
const targetValue = row[visibilityRule.key];
|
|
369
|
+
return this.shouldApplyRule(targetValue, visibilityRule.rule, visibilityRule.value);
|
|
370
|
+
}
|
|
364
371
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: AsLibGenericTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
365
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", 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 }, selectableKey: { classPropertyName: "selectableKey", publicName: "selectableKey", isSignal: true, isRequired: false, transformFunction: null }, selectableClass: { classPropertyName: "selectableClass", publicName: "selectableClass", isSignal: true, isRequired: false, transformFunction: null }, searchString: { classPropertyName: "searchString", publicName: "searchString", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, order: { classPropertyName: "order", publicName: "order", 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 mx-0\">\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 > 1\" 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(); trackBy:trackByHeadChange\">\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'] || '' }}\" (click)=\"onRowClick(row)\"\n [className]=\"selectableClickedValue === row[selectableKey()] ? selectableClass() : ''\">\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: head.dateFormat ? head.dateFormat : \"dd.MM.yyyy\" }}\n\t\t\t\t\t\t\t</ng-container>\n <ng-container *ngIf=\"head.type === 'datetime'\">\n {{ row[head.key] | date: head.dateFormat ? head.dateFormat : \"dd.MM.yyyy HH:mm:ss\" }}\n </ng-container>\n <ng-container *ngIf=\"head.type === 'image'\">\n <img *ngIf=\"row[head.key] && row[head.key] !== ''\" alt=\"img\" [attr.src]=\"row[head.key]\" width=\"{{head?.imageSize?.width || 50}}\" height=\"{{head?.imageSize?.height || 50}}\"/>\n </ng-container>\n <ng-container *ngIf=\"head.type === 'url'\">\n <a [attr.href]=\"row[head.key]\" target=\"{{head?.urlTarget || '_blank'}}\" >{{row[head.key]}}</a>\n </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, $event)\"\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(); trackBy:trackByHeadChange\">\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"] }] });
|
|
372
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.1.6", 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 }, selectableKey: { classPropertyName: "selectableKey", publicName: "selectableKey", isSignal: true, isRequired: false, transformFunction: null }, selectableClass: { classPropertyName: "selectableClass", publicName: "selectableClass", isSignal: true, isRequired: false, transformFunction: null }, searchString: { classPropertyName: "searchString", publicName: "searchString", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, order: { classPropertyName: "order", publicName: "order", 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 mx-0\">\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 > 1\" 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(); trackBy:trackByHeadChange\">\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'] || '' }}\" (click)=\"onRowClick(row)\"\n [className]=\"selectableClickedValue === row[selectableKey()] ? selectableClass() : ''\">\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: head.dateFormat ? head.dateFormat : \"dd.MM.yyyy\" }}\n\t\t\t\t\t\t\t</ng-container>\n <ng-container *ngIf=\"head.type === 'datetime'\">\n {{ row[head.key] | date: head.dateFormat ? head.dateFormat : \"dd.MM.yyyy HH:mm:ss\" }}\n </ng-container>\n <ng-container *ngIf=\"head.type === 'image'\">\n <img *ngIf=\"row[head.key] && row[head.key] !== ''\" alt=\"img\" [attr.src]=\"row[head.key]\" width=\"{{head?.imageSize?.width || 50}}\" height=\"{{head?.imageSize?.height || 50}}\"/>\n </ng-container>\n <ng-container *ngIf=\"head.type === 'url'\">\n <a [attr.href]=\"row[head.key]\" target=\"{{head?.urlTarget || '_blank'}}\" >{{row[head.key]}}</a>\n </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 *ngIf=\"visibleRowAction(row, action.visibilityRule)\"\n\t\t\t\t\t\t\t\t\t(click)=\"rowAction(action.actionName, row, $event)\"\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(); trackBy:trackByHeadChange\">\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"] }] });
|
|
366
373
|
}
|
|
367
374
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: AsLibGenericTableComponent, decorators: [{
|
|
368
375
|
type: Component,
|
|
@@ -371,7 +378,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
|
|
|
371
378
|
FormsModule,
|
|
372
379
|
TooltipDirective,
|
|
373
380
|
AsLibPaginationComponent
|
|
374
|
-
], 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 mx-0\">\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 > 1\" 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(); trackBy:trackByHeadChange\">\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'] || '' }}\" (click)=\"onRowClick(row)\"\n [className]=\"selectableClickedValue === row[selectableKey()] ? selectableClass() : ''\">\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: head.dateFormat ? head.dateFormat : \"dd.MM.yyyy\" }}\n\t\t\t\t\t\t\t</ng-container>\n <ng-container *ngIf=\"head.type === 'datetime'\">\n {{ row[head.key] | date: head.dateFormat ? head.dateFormat : \"dd.MM.yyyy HH:mm:ss\" }}\n </ng-container>\n <ng-container *ngIf=\"head.type === 'image'\">\n <img *ngIf=\"row[head.key] && row[head.key] !== ''\" alt=\"img\" [attr.src]=\"row[head.key]\" width=\"{{head?.imageSize?.width || 50}}\" height=\"{{head?.imageSize?.height || 50}}\"/>\n </ng-container>\n <ng-container *ngIf=\"head.type === 'url'\">\n <a [attr.href]=\"row[head.key]\" target=\"{{head?.urlTarget || '_blank'}}\" >{{row[head.key]}}</a>\n </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, $event)\"\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(); trackBy:trackByHeadChange\">\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"] }]
|
|
381
|
+
], 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 mx-0\">\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 > 1\" 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(); trackBy:trackByHeadChange\">\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'] || '' }}\" (click)=\"onRowClick(row)\"\n [className]=\"selectableClickedValue === row[selectableKey()] ? selectableClass() : ''\">\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: head.dateFormat ? head.dateFormat : \"dd.MM.yyyy\" }}\n\t\t\t\t\t\t\t</ng-container>\n <ng-container *ngIf=\"head.type === 'datetime'\">\n {{ row[head.key] | date: head.dateFormat ? head.dateFormat : \"dd.MM.yyyy HH:mm:ss\" }}\n </ng-container>\n <ng-container *ngIf=\"head.type === 'image'\">\n <img *ngIf=\"row[head.key] && row[head.key] !== ''\" alt=\"img\" [attr.src]=\"row[head.key]\" width=\"{{head?.imageSize?.width || 50}}\" height=\"{{head?.imageSize?.height || 50}}\"/>\n </ng-container>\n <ng-container *ngIf=\"head.type === 'url'\">\n <a [attr.href]=\"row[head.key]\" target=\"{{head?.urlTarget || '_blank'}}\" >{{row[head.key]}}</a>\n </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 *ngIf=\"visibleRowAction(row, action.visibilityRule)\"\n\t\t\t\t\t\t\t\t\t(click)=\"rowAction(action.actionName, row, $event)\"\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(); trackBy:trackByHeadChange\">\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"] }]
|
|
375
382
|
}], ctorParameters: () => [] });
|
|
376
383
|
|
|
377
384
|
/*
|
|
@@ -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, 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 { 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 {\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 tableHead = input<ITableHead[]>([]);\n tableData = input<Record<string, never>[]>([]);\n tableHeadStorage = input<string>('');\n perPageValues = input<number[]>([10, 20, 50, 100]);\n headerActions = input<IActionButton[]>([]);\n rowActions = input<IActionButton[]>([]);\n tableStyle = input<'' | 'table-light' | 'table-dark'>('');\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 totalItems = input(0);\n\n page = input(0);\n\n selectableKey = input<string>('');\n selectableClass = input<\n | 'table-primary'\n | 'table-secondary'\n | 'table-success'\n | 'table-danger'\n | 'table-warning'\n | 'table-info'\n | 'table-light'>('table-secondary');\n\n searchString = input<string>();\n sort = input<string>('name');\n order = input<'asc' | 'desc'>('asc');\n\n filterParamsChanged = output<IFilterParams>();\n editRow = output<Record<string, never>>();\n sliderClicked = output<Record<string, never>>();\n headerActionClicked = output<string>();\n rowActionClicked = output<{ action: string; value: any }>();\n tableHeadChanged = output<string[] | null>();\n\n bsModalRef!: BsModalRef;\n searchUpdate: Subject<string> = new Subject();\n search = '';\n totalPages = 0;\n counter = 0;\n private sortKey!: string;\n private sortOrder: 'asc' | 'desc' = 'asc';\n\n selectableClickedValue = '';\n\n //private modalService: BsModalService;// = Inject(BsModalService)\n private modalService = inject(BsModalService);\n\n private deepLinkDone = false;\n\n\n constructor() {\n effect(() => {\n this.log(`The count is:`, this.totalItems(), this.page());\n this.counter = this.page() * this.perPage() + 1\n this.calculatePages();\n this.badgeClassRules();\n this.rowClassRules();\n this.init();\n this.deepLink();\n\n });\n\n\n }\n\n init(): 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\n this.sortKey = this.tableHead().find(h => h.key === this.sort())?.key || 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.log('rows', rows);\n this.searchUpdate.pipe(debounceTime(500), distinctUntilChanged()).subscribe(_ => {\n this.log('search', this.search);\n const emitValue: IFilterParams = {\n page: 0,\n sort: this.sortKey,\n order: this.sortOrder,\n perPage: this.perPage(),\n searchString: this.search,\n };\n this.log('Search value change, sortKey values: ', emitValue);\n this.filterParamsChanged.emit(emitValue);\n });\n\n if (!this.perPageValues().includes(this.perPage())) {\n throw new Error('Per page value invalid: ' + this.perPage());\n }\n this.log('Loading', this.loading());\n }\n\n private badgeClassRules() {\n this.applyRules(\n 'badgeClassRules',\n (key) => `${key}Badge`\n );\n }\n\n private rowClassRules() {\n this.applyRules(\n 'rowClassRules',\n () => 'rowClass'\n );\n }\n\n private applyRules(\n ruleKey: 'badgeClassRules' | 'rowClassRules',\n targetKeyFn: (key: string) => string\n ) {\n const tableData = this.tableData();\n\n this.tableHead().forEach(head => {\n const rules = head[ruleKey] || [];\n rules.forEach(rule => {\n const {key} = head;\n const {rule: condition, value, class: cl} = rule;\n\n tableData.forEach(row => {\n if (this.shouldApplyRule(row[key], condition, value)) {\n row[targetKeyFn(key)] = cl as never;\n }\n });\n });\n });\n }\n\n\n private shouldApplyRule(cellValue: any, condition: string, value: any): boolean {\n switch (condition) {\n case '=':\n return cellValue === value;\n case '<>':\n return cellValue !== value;\n case '>':\n return cellValue > value;\n case '<':\n return cellValue < value;\n default:\n return false;\n }\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 manualTableSort(key: string, order: string) {\n this.log('Default sort key/order', key, order)\n this.tableHead().forEach(h => {\n if (h.key === key) {\n if (order === 'DESC') {\n this.sortOrder = 'asc';\n h.sort = 'headerSortDown';\n } else {\n this.sortOrder = 'desc';\n h.sort = 'headerSortUp';\n }\n }\n });\n }\n\n tableSort(key: string): void {\n this.log('table sortKey key', key);\n this.sortKey = 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.sortKey,\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) || 20;\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.sortKey,\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>, $event: MouseEvent) {\n $event.stopPropagation();\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.sortKey,\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 onRowClick(row: Record<string, never>) {\n this.log('onRowTRClick', row)\n this.log('onRowTRClick', this.selectableKey())\n if (this.selectableKey() !== '') {\n this.selectableClickedValue = row[this.selectableKey()];\n this.log('onRowTRClick', this.selectableClickedValue)\n }\n this.rowActionClicked.emit({action: 'rowTRClicked', value: row})\n }\n\n trackByHeadChange(index: number, item: ITableHead): string {\n const rulesSignature = item.rowClassRules?.map(r => `${r.rule}${r.value}${r.class}`).join('|') || '';\n return `${index}-${item.key}-${rulesSignature}`;\n }\n\n private deepLink() {\n if (!this.deepLinkDone) {\n const searchString = this.searchString();\n this.log('deep linking ', this.deepLinkDone, searchString);\n this.deepLinkDone = true;\n if (searchString) {\n this.search = searchString;\n this.searchUpdate.next(searchString)\n }\n this.manualTableSort(this.sort(), this.order())\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 mx-0\">\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 > 1\" 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(); trackBy:trackByHeadChange\">\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'] || '' }}\" (click)=\"onRowClick(row)\"\n [className]=\"selectableClickedValue === row[selectableKey()] ? selectableClass() : ''\">\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: head.dateFormat ? head.dateFormat : \"dd.MM.yyyy\" }}\n\t\t\t\t\t\t\t</ng-container>\n <ng-container *ngIf=\"head.type === 'datetime'\">\n {{ row[head.key] | date: head.dateFormat ? head.dateFormat : \"dd.MM.yyyy HH:mm:ss\" }}\n </ng-container>\n <ng-container *ngIf=\"head.type === 'image'\">\n <img *ngIf=\"row[head.key] && row[head.key] !== ''\" alt=\"img\" [attr.src]=\"row[head.key]\" width=\"{{head?.imageSize?.width || 50}}\" height=\"{{head?.imageSize?.height || 50}}\"/>\n </ng-container>\n <ng-container *ngIf=\"head.type === 'url'\">\n <a [attr.href]=\"row[head.key]\" target=\"{{head?.urlTarget || '_blank'}}\" >{{row[head.key]}}</a>\n </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, $event)\"\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(); trackBy:trackByHeadChange\">\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';\nexport * from './lib/exports';\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, input, 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 { 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 {\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 tableHead = input<ITableHead[]>([]);\n tableData = input<Record<string, never>[]>([]);\n tableHeadStorage = input<string>('');\n perPageValues = input<number[]>([10, 20, 50, 100]);\n headerActions = input<IActionButton[]>([]);\n rowActions = input<IActionButton[]>([]);\n tableStyle = input<'' | 'table-light' | 'table-dark'>('');\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 totalItems = input(0);\n\n page = input(0);\n\n selectableKey = input<string>('');\n selectableClass = input<\n | 'table-primary'\n | 'table-secondary'\n | 'table-success'\n | 'table-danger'\n | 'table-warning'\n | 'table-info'\n | 'table-light'>('table-secondary');\n\n searchString = input<string>();\n sort = input<string>('name');\n order = input<'asc' | 'desc'>('asc');\n\n filterParamsChanged = output<IFilterParams>();\n editRow = output<Record<string, never>>();\n sliderClicked = output<Record<string, never>>();\n headerActionClicked = output<string>();\n rowActionClicked = output<{ action: string; value: any }>();\n tableHeadChanged = output<string[] | null>();\n\n bsModalRef!: BsModalRef;\n searchUpdate: Subject<string> = new Subject();\n search = '';\n totalPages = 0;\n counter = 0;\n private sortKey!: string;\n private sortOrder: 'asc' | 'desc' = 'asc';\n\n selectableClickedValue = '';\n\n //private modalService: BsModalService;// = Inject(BsModalService)\n private modalService = inject(BsModalService);\n\n private deepLinkDone = false;\n\n\n constructor() {\n effect(() => {\n this.log(`The count is:`, this.totalItems(), this.page());\n this.counter = this.page() * this.perPage() + 1\n this.calculatePages();\n this.badgeClassRules();\n this.rowClassRules();\n this.init();\n this.deepLink();\n\n });\n\n\n }\n\n init(): 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\n this.sortKey = this.tableHead().find(h => h.key === this.sort())?.key || 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.log('rows', rows);\n this.searchUpdate.pipe(debounceTime(500), distinctUntilChanged()).subscribe(_ => {\n this.log('search', this.search);\n const emitValue: IFilterParams = {\n page: 0,\n sort: this.sortKey,\n order: this.sortOrder,\n perPage: this.perPage(),\n searchString: this.search,\n };\n this.log('Search value change, sortKey values: ', emitValue);\n this.filterParamsChanged.emit(emitValue);\n });\n\n if (!this.perPageValues().includes(this.perPage())) {\n throw new Error('Per page value invalid: ' + this.perPage());\n }\n this.log('Loading', this.loading());\n }\n\n private badgeClassRules() {\n this.applyRules(\n 'badgeClassRules',\n (key) => `${key}Badge`\n );\n }\n\n private rowClassRules() {\n this.applyRules(\n 'rowClassRules',\n () => 'rowClass'\n );\n }\n\n private applyRules(\n ruleKey: 'badgeClassRules' | 'rowClassRules',\n targetKeyFn: (key: string) => string\n ) {\n const tableData = this.tableData();\n\n this.tableHead().forEach(head => {\n const rules = head[ruleKey] || [];\n rules.forEach(rule => {\n const {key} = head;\n const {rule: condition, value, class: cl} = rule;\n\n tableData.forEach(row => {\n if (this.shouldApplyRule(row[key], condition, value)) {\n row[targetKeyFn(key)] = cl as never;\n }\n });\n });\n });\n }\n\n\n private shouldApplyRule(cellValue: any, condition: string, value: any): boolean {\n switch (condition) {\n case '=':\n return cellValue === value;\n case '<>':\n return cellValue !== value;\n case '>':\n return cellValue > value;\n case '<':\n return cellValue < value;\n default:\n return false;\n }\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 manualTableSort(key: string, order: string) {\n this.log('Default sort key/order', key, order)\n this.tableHead().forEach(h => {\n if (h.key === key) {\n if (order === 'DESC') {\n this.sortOrder = 'asc';\n h.sort = 'headerSortDown';\n } else {\n this.sortOrder = 'desc';\n h.sort = 'headerSortUp';\n }\n }\n });\n }\n\n tableSort(key: string): void {\n this.log('table sortKey key', key);\n this.sortKey = 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.sortKey,\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) || 20;\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.sortKey,\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>, $event: MouseEvent) {\n $event.stopPropagation();\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.sortKey,\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 onRowClick(row: Record<string, never>) {\n this.log('onRowTRClick', row)\n this.log('onRowTRClick', this.selectableKey())\n if (this.selectableKey() !== '') {\n this.selectableClickedValue = row[this.selectableKey()];\n this.log('onRowTRClick', this.selectableClickedValue)\n }\n this.rowActionClicked.emit({action: 'rowTRClicked', value: row})\n }\n\n trackByHeadChange(index: number, item: ITableHead): string {\n const rulesSignature = item.rowClassRules?.map(r => `${r.rule}${r.value}${r.class}`).join('|') || '';\n return `${index}-${item.key}-${rulesSignature}`;\n }\n\n private deepLink() {\n if (!this.deepLinkDone) {\n const searchString = this.searchString();\n this.log('deep linking ', this.deepLinkDone, searchString);\n this.deepLinkDone = true;\n if (searchString) {\n this.search = searchString;\n this.searchUpdate.next(searchString)\n }\n this.manualTableSort(this.sort(), this.order())\n }\n }\n\n visibleRowAction(row: Record<string, never>, visibilityRule: {rule: \">\" | \"<\" | \"=\" | \"<>\"; key: string; value: any} | undefined) {\n if (!visibilityRule || !visibilityRule.key) {\n return true;\n }\n const targetValue = row[visibilityRule.key];\n return this.shouldApplyRule(targetValue, visibilityRule.rule, visibilityRule.value);\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 mx-0\">\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 > 1\" 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(); trackBy:trackByHeadChange\">\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'] || '' }}\" (click)=\"onRowClick(row)\"\n [className]=\"selectableClickedValue === row[selectableKey()] ? selectableClass() : ''\">\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: head.dateFormat ? head.dateFormat : \"dd.MM.yyyy\" }}\n\t\t\t\t\t\t\t</ng-container>\n <ng-container *ngIf=\"head.type === 'datetime'\">\n {{ row[head.key] | date: head.dateFormat ? head.dateFormat : \"dd.MM.yyyy HH:mm:ss\" }}\n </ng-container>\n <ng-container *ngIf=\"head.type === 'image'\">\n <img *ngIf=\"row[head.key] && row[head.key] !== ''\" alt=\"img\" [attr.src]=\"row[head.key]\" width=\"{{head?.imageSize?.width || 50}}\" height=\"{{head?.imageSize?.height || 50}}\"/>\n </ng-container>\n <ng-container *ngIf=\"head.type === 'url'\">\n <a [attr.href]=\"row[head.key]\" target=\"{{head?.urlTarget || '_blank'}}\" >{{row[head.key]}}</a>\n </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 *ngIf=\"visibleRowAction(row, action.visibilityRule)\"\n\t\t\t\t\t\t\t\t\t(click)=\"rowAction(action.actionName, row, $event)\"\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(); trackBy:trackByHeadChange\">\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';\nexport * from './lib/exports';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,11 @@ export declare class AsLibGenericTableComponent {
|
|
|
69
69
|
onRowClick(row: Record<string, never>): void;
|
|
70
70
|
trackByHeadChange(index: number, item: ITableHead): string;
|
|
71
71
|
private deepLink;
|
|
72
|
+
visibleRowAction(row: Record<string, never>, visibilityRule: {
|
|
73
|
+
rule: ">" | "<" | "=" | "<>";
|
|
74
|
+
key: string;
|
|
75
|
+
value: any;
|
|
76
|
+
} | undefined): boolean;
|
|
72
77
|
static ɵfac: i0.ɵɵFactoryDeclaration<AsLibGenericTableComponent, never>;
|
|
73
78
|
static ɵcmp: i0.ɵɵComponentDeclaration<AsLibGenericTableComponent, "as-lib-generic-table", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "hovered": { "alias": "hovered"; "required": false; "isSignal": true; }; "enableSearch": { "alias": "enableSearch"; "required": false; "isSignal": true; }; "rowCounter": { "alias": "rowCounter"; "required": false; "isSignal": true; }; "enableLog": { "alias": "enableLog"; "required": false; "isSignal": true; }; "perPage": { "alias": "perPage"; "required": false; "isSignal": true; }; "tableHead": { "alias": "tableHead"; "required": false; "isSignal": true; }; "tableData": { "alias": "tableData"; "required": false; "isSignal": true; }; "tableHeadStorage": { "alias": "tableHeadStorage"; "required": false; "isSignal": true; }; "perPageValues": { "alias": "perPageValues"; "required": false; "isSignal": true; }; "headerActions": { "alias": "headerActions"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "tableStyle": { "alias": "tableStyle"; "required": false; "isSignal": true; }; "headStyle": { "alias": "headStyle"; "required": false; "isSignal": true; }; "paginationAlignment": { "alias": "paginationAlignment"; "required": false; "isSignal": true; }; "totalItems": { "alias": "totalItems"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; "selectableKey": { "alias": "selectableKey"; "required": false; "isSignal": true; }; "selectableClass": { "alias": "selectableClass"; "required": false; "isSignal": true; }; "searchString": { "alias": "searchString"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "order": { "alias": "order"; "required": false; "isSignal": true; }; }, { "filterParamsChanged": "filterParamsChanged"; "editRow": "editRow"; "sliderClicked": "sliderClicked"; "headerActionClicked": "headerActionClicked"; "rowActionClicked": "rowActionClicked"; "tableHeadChanged": "tableHeadChanged"; }, never, never, true, never>;
|
|
74
79
|
}
|
package/lib/exports.d.ts
CHANGED
|
@@ -3,6 +3,11 @@ export interface IActionButton {
|
|
|
3
3
|
label?: string;
|
|
4
4
|
faIcon?: string;
|
|
5
5
|
btnColor?: 'btn-default' | 'btn-primary' | 'btn-secondary' | 'btn-success' | 'btn-danger' | 'btn-warning' | 'btn-info' | 'btn-light' | 'btn-dark';
|
|
6
|
+
visibilityRule?: ({
|
|
7
|
+
rule: '>' | '<' | '=' | '<>';
|
|
8
|
+
key: string;
|
|
9
|
+
value: any;
|
|
10
|
+
});
|
|
6
11
|
}
|
|
7
12
|
export interface ITableHead {
|
|
8
13
|
hidden?: boolean;
|
|
@@ -28,7 +33,7 @@ export interface ITableHead {
|
|
|
28
33
|
height: number;
|
|
29
34
|
};
|
|
30
35
|
urlTarget?: '_blank' | '_self';
|
|
31
|
-
dateFormat?:
|
|
36
|
+
dateFormat?: string;
|
|
32
37
|
}
|
|
33
38
|
export interface IFilterParams {
|
|
34
39
|
sort: string;
|