@agentsmith.bgd/as-lib-generic-table 21.0.3 → 21.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,10 +12,10 @@ import { BaseModalComponent, ModalService } from '@agentsmith.bgd/as-components'
12
12
 
13
13
  class AsLibGenericTableService {
14
14
  constructor() { }
15
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: AsLibGenericTableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: AsLibGenericTableService, providedIn: 'root' });
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AsLibGenericTableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AsLibGenericTableService, providedIn: 'root' });
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: AsLibGenericTableService, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AsLibGenericTableService, decorators: [{
19
19
  type: Injectable,
20
20
  args: [{
21
21
  providedIn: 'root',
@@ -28,10 +28,10 @@ class TooltipComponent {
28
28
  top = 0;
29
29
  constructor() { }
30
30
  ngOnInit() { }
31
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.1", type: TooltipComponent, isStandalone: true, selector: "tooltip", ngImport: i0, template: "<div [style.left]=\"left + 'px'\" [style.top]=\"top + 'px'\" class=\"my-tooltip\">\n\t{{ tooltip }}\n</div>\n", styles: [".my-tooltip{position:fixed;background-color:#000;border-radius:4px;color:#fff;font-family:Arial,serif;padding:3px 6px;font-size:13px;margin-top:5px;transform:translate(-50%)}.my-tooltip:before{content:\"\";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid black;position:absolute;left:calc(50% - 5px);top:-5px}\n"] });
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: TooltipComponent, isStandalone: true, selector: "tooltip", ngImport: i0, template: "<div [style.left]=\"left + 'px'\" [style.top]=\"top + 'px'\" class=\"my-tooltip\">\n\t{{ tooltip }}\n</div>\n", styles: [".my-tooltip{position:fixed;background-color:#000;border-radius:4px;color:#fff;font-family:Arial,serif;padding:3px 6px;font-size:13px;margin-top:5px;transform:translate(-50%)}.my-tooltip:before{content:\"\";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid black;position:absolute;left:calc(50% - 5px);top:-5px}\n"] });
33
33
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TooltipComponent, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TooltipComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{ selector: 'tooltip', standalone: true, template: "<div [style.left]=\"left + 'px'\" [style.top]=\"top + 'px'\" class=\"my-tooltip\">\n\t{{ tooltip }}\n</div>\n", styles: [".my-tooltip{position:fixed;background-color:#000;border-radius:4px;color:#fff;font-family:Arial,serif;padding:3px 6px;font-size:13px;margin-top:5px;transform:translate(-50%)}.my-tooltip:before{content:\"\";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid black;position:absolute;left:calc(50% - 5px);top:-5px}\n"] }]
37
37
  }], ctorParameters: () => [] });
@@ -75,10 +75,10 @@ class TooltipDirective {
75
75
  this.componentRef.instance.top = bottom;
76
76
  }
77
77
  }
78
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.ApplicationRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
79
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TooltipDirective, isStandalone: true, selector: "[tooltip]", inputs: { tooltip: "tooltip" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0 });
78
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.ApplicationRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
79
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: TooltipDirective, isStandalone: true, selector: "[tooltip]", inputs: { tooltip: "tooltip" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0 });
80
80
  }
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TooltipDirective, decorators: [{
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: TooltipDirective, decorators: [{
82
82
  type: Directive,
83
83
  args: [{
84
84
  selector: '[tooltip]',
@@ -128,10 +128,10 @@ class VisibleRowActionPipe {
128
128
  return false;
129
129
  }
130
130
  }
131
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: VisibleRowActionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
132
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.1", ngImport: i0, type: VisibleRowActionPipe, isStandalone: true, name: "visibleRowAction" });
131
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: VisibleRowActionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
132
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: VisibleRowActionPipe, isStandalone: true, name: "visibleRowAction" });
133
133
  }
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: VisibleRowActionPipe, decorators: [{
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: VisibleRowActionPipe, decorators: [{
135
135
  type: Pipe,
136
136
  args: [{
137
137
  name: 'visibleRowAction',
@@ -147,16 +147,16 @@ class SafeLimitedHtmlPipe {
147
147
  if (!value)
148
148
  return '';
149
149
  // List of allowed tags
150
- const allowedTags = ['br', 'span', 'p', 'strong', 'em', 'ul', 'ol', 'li'];
150
+ const allowedTags = ['br', 'span', 'p', 'strong', 'em', 'ul', 'ol', 'li', 'i'];
151
151
  // Create regex pattern to remove all tags except allowed ones
152
152
  const pattern = new RegExp(`<(?!\/?(${allowedTags.join('|')})\s*\/?)[^>]+>`, 'gi');
153
153
  const sanitized = value.replace(pattern, '');
154
154
  return this.sanitizer.bypassSecurityTrustHtml(sanitized);
155
155
  }
156
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SafeLimitedHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
157
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.1", ngImport: i0, type: SafeLimitedHtmlPipe, isStandalone: true, name: "safeLimitedHtml" });
156
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SafeLimitedHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
157
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: SafeLimitedHtmlPipe, isStandalone: true, name: "safeLimitedHtml" });
158
158
  }
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SafeLimitedHtmlPipe, decorators: [{
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SafeLimitedHtmlPipe, decorators: [{
160
160
  type: Pipe,
161
161
  args: [{ name: 'safeLimitedHtml' }]
162
162
  }], ctorParameters: () => [{ type: i1.DomSanitizer }] });
@@ -180,10 +180,10 @@ class UnwrapTagDirective {
180
180
  // remove the empty element
181
181
  parent.removeChild(this.el.nativeElement);
182
182
  }
183
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: UnwrapTagDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
184
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: UnwrapTagDirective, isStandalone: true, selector: "[appUnwraptag]", inputs: { appUnwraptag: "appUnwraptag" }, ngImport: i0 });
183
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UnwrapTagDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
184
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: UnwrapTagDirective, isStandalone: true, selector: "[appUnwraptag]", inputs: { appUnwraptag: "appUnwraptag" }, ngImport: i0 });
185
185
  }
186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: UnwrapTagDirective, decorators: [{
186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: UnwrapTagDirective, decorators: [{
187
187
  type: Directive,
188
188
  args: [{
189
189
  selector: '[appUnwraptag]',
@@ -245,6 +245,7 @@ const DE_TRANSLATIONS = {
245
245
  SAVE: 'Speichern',
246
246
  };
247
247
 
248
+ // TypeScript
248
249
  class ModalConfirmationComponent extends BaseModalComponent {
249
250
  mandatoryFields = input('', ...(ngDevMode ? [{ debugName: "mandatoryFields" }] : []));
250
251
  tableHead = input([], ...(ngDevMode ? [{ debugName: "tableHead" }] : []));
@@ -282,10 +283,10 @@ class ModalConfirmationComponent extends BaseModalComponent {
282
283
  saveMe() {
283
284
  this.confirm({ action: 'save', payload: this.values() });
284
285
  }
285
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: ModalConfirmationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
286
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: ModalConfirmationComponent, isStandalone: true, selector: "app-modal-confirmation", inputs: { mandatoryFields: { classPropertyName: "mandatoryFields", publicName: "mandatoryFields", isSignal: true, isRequired: false, transformFunction: null }, tableHead: { classPropertyName: "tableHead", publicName: "tableHead", isSignal: true, isRequired: false, transformFunction: null }, reset: { classPropertyName: "reset", publicName: "reset", isSignal: true, isRequired: false, transformFunction: null }, save: { classPropertyName: "save", publicName: "save", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"modal-confirmation\">\n\t<div class=\"modal-header\">\n\t\t<h4 class=\"modal-title pull-left\">{{ title() }}</h4>\n\t\t<!-- <button (click)=\"modalClose()\" aria-label=\"Close\" class=\"btn-close close pull-right\" type=\"button\">-->\n\t\t<!-- <span aria-hidden=\"true\" class=\"visually-hidden\">&times;</span>-->\n\t\t<!-- </button>-->\n\t</div>\n\t<div class=\"modal-body\">\n\t\t@for (td of tableHead(); track td.key) {\n\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t<input\n\t\t\t\t\t(change)=\"change(td.key)\"\n\t\t\t\t\t[checked]=\"!td.hidden\"\n\t\t\t\t\t[disabled]=\"td.mandatory\"\n\t\t\t\t\t[readOnly]=\"td.mandatory\"\n\t\t\t\t\tclass=\"form-check-input\"\n\t\t\t\t\tid=\"{{ td.key }}\"\n\t\t\t\t\trole=\"switch\"\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\tvalue=\"true\"\n\t\t\t\t/>\n\t\t\t\t<label class=\"form-check-label\" for=\"{{ td.key }}\">{{ td.label }} {{ td.mandatory ? \"*\" : \"\" }}</label>\n\t\t\t</div>\n\t\t}\n\t\t<small class=\"small text-muted pt-2\">* {{ mandatoryFields() }}</small>\n\t</div>\n\t<div class=\"modal-footer\">\n\t\t<button (click)=\"resetValues()\" class=\"btn btn-outline-secondary me-auto\" type=\"button\">{{ reset() }} </button>\n\t\t<button (click)=\"saveMe()\" class=\"btn btn-primary\" type=\"button\">{{ save() }}</button>\n\t</div>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
286
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ModalConfirmationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
287
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: ModalConfirmationComponent, isStandalone: true, selector: "app-modal-confirmation", inputs: { mandatoryFields: { classPropertyName: "mandatoryFields", publicName: "mandatoryFields", isSignal: true, isRequired: false, transformFunction: null }, tableHead: { classPropertyName: "tableHead", publicName: "tableHead", isSignal: true, isRequired: false, transformFunction: null }, reset: { classPropertyName: "reset", publicName: "reset", isSignal: true, isRequired: false, transformFunction: null }, save: { classPropertyName: "save", publicName: "save", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"modal-confirmation\">\n\t<div class=\"modal-header\">\n\t\t<h4 class=\"modal-title pull-left\">{{ title() }}</h4>\n\t\t<!-- <button (click)=\"modalClose()\" aria-label=\"Close\" class=\"btn-close close pull-right\" type=\"button\">-->\n\t\t<!-- <span aria-hidden=\"true\" class=\"visually-hidden\">&times;</span>-->\n\t\t<!-- </button>-->\n\t</div>\n\t<div class=\"modal-body\">\n\t\t@for (td of tableHead(); track td.key) {\n\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t<input\n\t\t\t\t\t(change)=\"change(td.key)\"\n\t\t\t\t\t[checked]=\"!td.hidden\"\n\t\t\t\t\t[disabled]=\"td.mandatory\"\n\t\t\t\t\t[readOnly]=\"td.mandatory\"\n\t\t\t\t\tclass=\"form-check-input\"\n\t\t\t\t\tid=\"{{ td.key }}\"\n\t\t\t\t\trole=\"switch\"\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\tvalue=\"true\"\n\t\t\t\t/>\n\t\t\t\t<label class=\"form-check-label\" for=\"{{ td.key }}\">{{ td.label }} {{ td.mandatory ? \"*\" : \"\" }}</label>\n\t\t\t</div>\n\t\t}\n\t\t<small class=\"small text-muted pt-2\">* {{ mandatoryFields() }}</small>\n\t</div>\n\t<div class=\"modal-footer\">\n\t\t<button (click)=\"resetValues()\" class=\"btn btn-outline-secondary me-auto\" type=\"button\">{{ reset() }} </button>\n\t\t<button (click)=\"saveMe()\" class=\"btn btn-primary\" type=\"button\">{{ save() }}</button>\n\t</div>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
287
288
  }
288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: ModalConfirmationComponent, decorators: [{
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ModalConfirmationComponent, decorators: [{
289
290
  type: Component,
290
291
  args: [{ selector: 'app-modal-confirmation', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"modal-confirmation\">\n\t<div class=\"modal-header\">\n\t\t<h4 class=\"modal-title pull-left\">{{ title() }}</h4>\n\t\t<!-- <button (click)=\"modalClose()\" aria-label=\"Close\" class=\"btn-close close pull-right\" type=\"button\">-->\n\t\t<!-- <span aria-hidden=\"true\" class=\"visually-hidden\">&times;</span>-->\n\t\t<!-- </button>-->\n\t</div>\n\t<div class=\"modal-body\">\n\t\t@for (td of tableHead(); track td.key) {\n\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t<input\n\t\t\t\t\t(change)=\"change(td.key)\"\n\t\t\t\t\t[checked]=\"!td.hidden\"\n\t\t\t\t\t[disabled]=\"td.mandatory\"\n\t\t\t\t\t[readOnly]=\"td.mandatory\"\n\t\t\t\t\tclass=\"form-check-input\"\n\t\t\t\t\tid=\"{{ td.key }}\"\n\t\t\t\t\trole=\"switch\"\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\tvalue=\"true\"\n\t\t\t\t/>\n\t\t\t\t<label class=\"form-check-label\" for=\"{{ td.key }}\">{{ td.label }} {{ td.mandatory ? \"*\" : \"\" }}</label>\n\t\t\t</div>\n\t\t}\n\t\t<small class=\"small text-muted pt-2\">* {{ mandatoryFields() }}</small>\n\t</div>\n\t<div class=\"modal-footer\">\n\t\t<button (click)=\"resetValues()\" class=\"btn btn-outline-secondary me-auto\" type=\"button\">{{ reset() }} </button>\n\t\t<button (click)=\"saveMe()\" class=\"btn btn-primary\" type=\"button\">{{ save() }}</button>\n\t</div>\n</div>\n" }]
291
292
  }], ctorParameters: () => [], propDecorators: { mandatoryFields: [{ type: i0.Input, args: [{ isSignal: true, alias: "mandatoryFields", required: false }] }], tableHead: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableHead", required: false }] }], reset: [{ type: i0.Input, args: [{ isSignal: true, alias: "reset", required: false }] }], save: [{ type: i0.Input, args: [{ isSignal: true, alias: "save", required: false }] }] } });
@@ -667,10 +668,10 @@ class AsLibGenericTableComponent {
667
668
  }
668
669
  });
669
670
  }
670
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: AsLibGenericTableComponent, deps: [{ token: LANG_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
671
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: AsLibGenericTableComponent, isStandalone: true, selector: "as-lib-generic-table", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, striped: { classPropertyName: "striped", publicName: "striped", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, hovered: { classPropertyName: "hovered", publicName: "hovered", isSignal: true, isRequired: false, transformFunction: null }, enableSearch: { classPropertyName: "enableSearch", publicName: "enableSearch", isSignal: true, isRequired: false, transformFunction: null }, rowCounter: { classPropertyName: "rowCounter", publicName: "rowCounter", isSignal: true, isRequired: false, transformFunction: null }, enableLog: { classPropertyName: "enableLog", publicName: "enableLog", isSignal: true, isRequired: false, transformFunction: null }, perPage: { classPropertyName: "perPage", publicName: "perPage", isSignal: true, isRequired: false, transformFunction: null }, tableHead: { classPropertyName: "tableHead", publicName: "tableHead", isSignal: true, isRequired: false, transformFunction: null }, tableData: { classPropertyName: "tableData", publicName: "tableData", isSignal: true, isRequired: false, transformFunction: null }, tableHeadStorage: { classPropertyName: "tableHeadStorage", publicName: "tableHeadStorage", isSignal: true, isRequired: false, transformFunction: null }, perPageValues: { classPropertyName: "perPageValues", publicName: "perPageValues", isSignal: true, isRequired: false, transformFunction: null }, headerActions: { classPropertyName: "headerActions", publicName: "headerActions", isSignal: true, isRequired: false, transformFunction: null }, rowActions: { classPropertyName: "rowActions", publicName: "rowActions", isSignal: true, isRequired: false, transformFunction: null }, tableStyle: { classPropertyName: "tableStyle", publicName: "tableStyle", isSignal: true, isRequired: false, transformFunction: null }, headStyle: { classPropertyName: "headStyle", publicName: "headStyle", isSignal: true, isRequired: false, transformFunction: null }, paginationAlignment: { classPropertyName: "paginationAlignment", publicName: "paginationAlignment", isSignal: true, isRequired: false, transformFunction: null }, totalItems: { classPropertyName: "totalItems", publicName: "totalItems", isSignal: true, isRequired: false, transformFunction: null }, page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, 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 }, formSubmitLabel: { classPropertyName: "formSubmitLabel", publicName: "formSubmitLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filterParamsChanged: "filterParamsChanged", editRow: "editRow", sliderClicked: "sliderClicked", headerActionClicked: "headerActionClicked", rowActionClicked: "rowActionClicked", tableHeadChanged: "tableHeadChanged", pushedInputValues: "pushedInputValues" }, providers: [], ngImport: i0, template: "<div class=\"dynamic-table\">\n\t@if (loading()) {\n\t\t<p class=\"position-absolute text-center d-block w-100 opacity-100\">\n\t\t\t<i class=\"fa fa-spinner fa-spin fa-3x text-primary mt-5 opacity-100\"></i>\n\t\t</p>\n\t}\n\t<div\n\t\tclass=\"row mb-3 mx-0\"\n\t\t[appUnwraptag]=\"(!perPageValues() || perPageValues().length < 2) && (!headerActions() || !headerActions().length) && !enableSearch()\"\n\t\t[ngClass]=\"{\n\t\t\tloading: loading(),\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"col-md-7 d-flex d-sm-flex d-md-block justify-content-center mb-2\"\n\t\t\t[appUnwraptag]=\"(!perPageValues() || perPageValues().length < 2) && (!headerActions() || !headerActions().length) && !enableSearch()\"\n\t\t>\n\t\t\t@if (perPageValues() && perPageValues().length > 1) {\n\t\t\t\t<div class=\"d-block d-md-inline-flex me-0 me-md-3\">\n\t\t\t\t\t<div class=\"table-length\">\n\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t>{{ translate(\"SHOW\") }}\n\t\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t\t(change)=\"changePerPage($event)\"\n\t\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\t\tclass=\"form-select form-select-sm\"\n\t\t\t\t\t\t\t\tname=\"data-table-combine_length\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t@for (perp of perPageValues(); track perp) {\n\t\t\t\t\t\t\t\t\t<option [selected]=\"perPage() === perp\" value=\"{{ perp }}\">{{ perp }} </option>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t{{ translate(\"ENTRIES\") }}</label\n\t\t\t\t\t\t>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (headerActions() && headerActions().length) {\n\t\t\t\t<div\n\t\t\t\t\tclass=\"d-block d-inline-flex\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'mb-2': (!perPageValues() || perPageValues().length < 2) && !enableSearch(),\n\t\t\t\t\t}\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"dt-buttons btn-group flex-wrap\">\n\t\t\t\t\t\t@for (action of headerActions(); track action.actionName + $index) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t(click)=\"headerAction(action.actionName)\"\n\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\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\t\tid=\"header-action-{{ action.actionName }}\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t@if (action.faIcon) {\n\t\t\t\t\t\t\t\t\t\t<i class=\"fa {{ action.faIcon }}\"></i>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{{ action.label }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t\t@if (enableSearch()) {\n\t\t\t<div class=\"col-md-5 d-flex d-xl-block justify-content-center\">\n\t\t\t\t<div class=\"table-search\">\n\t\t\t\t\t<label>\n\t\t\t\t\t\t{{ translate(\"SEARCH\") }}:\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t(ngModelChange)=\"this.searchUpdate.next($event)\"\n\t\t\t\t\t\t\t[(ngModel)]=\"search\"\n\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\tclass=\"form-control form-control-sm\"\n\t\t\t\t\t\t\tid=\"table-search\"\n\t\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t\t/></label>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t</div>\n\t<div\n\t\tclass=\"table-responsive\"\n\t\t[ngClass]=\"{\n\t\t\tloading: loading(),\n\t\t}\"\n\t>\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@if (rowCounter()) {\n\t\t\t\t\t\t<th class=\"text-end small-column\"> {{ translate(\"NR\") }}</th>\n\t\t\t\t\t}\n\t\t\t\t\t@for (head of tableHead(); track head.key) {\n\t\t\t\t\t\t@if (!head.hidden) {\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t(click)=\"head.type !== 'checkbox' && !head.notSortable && tableSort(head.key)\"\n\t\t\t\t\t\t\t\t[ngClass]=\"head.sort\"\n\t\t\t\t\t\t\t\tclass=\"header {{ head.notSortable ? '' : 'sortable' }} {{ head.cellAlign }}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t@if (head.type === \"checkbox\") {\n\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" (change)=\"toggleAllCheckboxes($event, head.key)\" (click)=\"$event.stopPropagation()\" />\n\t\t\t\t\t\t\t\t\t} @else {\n\t\t\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\t\t@if (!head.notSortable) {\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"fa\"></span>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t@if (tableHeadStorage() || (rowActions() && rowActions().length)) {\n\t\t\t\t\t\t<th class=\"header small-column text-center p-0\" data-width=\"50\">\n\t\t\t\t\t\t\t@if (tableHeadStorage()) {\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t(click)=\"openTableLayoutModal()\"\n\t\t\t\t\t\t\t\t\taria-controls=\"basic-link-dropdown\"\n\t\t\t\t\t\t\t\t\tclass=\"menu-button toggle-white big-toggle dropdown-menu-link\"\n\t\t\t\t\t\t\t\t></a>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</th>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t</thead>\n\n\t\t\t@if (tableData().length) {\n\t\t\t\t<tbody>\n\t\t\t\t\t@for (row of tableData(); track row[\"id\"] || $index) {\n\t\t\t\t\t\t<tr\n\t\t\t\t\t\t\tclass=\"{{ row['rowClass'] || '' }}\"\n\t\t\t\t\t\t\t(click)=\"onRowClick(row, $event)\"\n\t\t\t\t\t\t\t[className]=\"selectableClickedValue === row[selectableKey()] ? selectableClass() : ''\"\n\t\t\t\t\t\t\t[attr.data-id]=\"row['id']\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t@if (rowCounter()) {\n\t\t\t\t\t\t\t\t<th class=\"text-end\"> {{ $index + counter }}.</th>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@for (head of tableHead(); track head.key) {\n\t\t\t\t\t\t\t\t@if (!head.hidden) {\n\t\t\t\t\t\t\t\t\t<td [attr.data-column]=\"head.key\" class=\"header text-nowrap {{ head.cellAlign }}\">\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"checkbox\") {\n\t\t\t\t\t\t\t\t\t\t\t@if (row | visibleRowAction: head.visibilityFieldRule : enableLog()) {\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t} @else if (head.visibilityFieldRule?.disabled) {\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (!head.type) {\n\t\t\t\t\t\t\t\t\t\t\t{{ row[head.key] }}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"html\") {\n\t\t\t\t\t\t\t\t\t\t\t<span [innerHTML]=\"row[head.key] | safeLimitedHtml\"></span>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"badge\") {\n\t\t\t\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\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"date\") {\n\t\t\t\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\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"datetime\") {\n\t\t\t\t\t\t\t\t\t\t\t{{ row[head.key] | date: (head.dateFormat ? head.dateFormat : \"dd.MM.yyyy HH:mm:ss\") }}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"image\") {\n\t\t\t\t\t\t\t\t\t\t\t@if (row[head.key] && row[head.key] !== \"\") {\n\t\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\t\talt=\"img\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[attr.src]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"{{ head?.imageSize?.width || 50 }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"{{ head?.imageSize?.height || 50 }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"url\") {\n\t\t\t\t\t\t\t\t\t\t\t<a [attr.href]=\"row[head.key]\" target=\"{{ head?.urlTarget || '_blank' }}\">{{ row[head.key] }}</a>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"slider\") {\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\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\t\t\t[checked]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"switched\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"check-{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"check-{{ row['id'] }}\"></label>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"input\") {\n\t\t\t\t\t\t\t\t\t\t\t<input [(ngModel)]=\"row[head.key]\" type=\"text\" name=\"input_{{ row['id'] }}\" />\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if (tableHeadStorage() || (rowActions() && rowActions().length)) {\n\t\t\t\t\t\t\t\t<td class=\"small-column\">\n\t\t\t\t\t\t\t\t\t<div class=\"menu text-end\">\n\t\t\t\t\t\t\t\t\t\t@for (action of rowActions(); track (action.label || \"\") + \"_\" + $index) {\n\t\t\t\t\t\t\t\t\t\t\t@if (row | visibleRowAction: action.visibilityRule : enableLog()) {\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\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\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\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\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span><i class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t} @else if (action.visibilityRule?.disabled) {\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\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\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span><i class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t}\n\t\t\t\t\t@if (inputTypeKey || checkboxTypeKey) {\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t[colSpan]=\"\n\t\t\t\t\t\t\t\t\ttableHead().length - 1 + (rowCounter() ? 1 : 0) + (tableHeadStorage() || (rowActions() && rowActions().length) ? 1 : 0)\n\t\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<button (click)=\"pushInputValues()\" class=\"btn buttons-copy buttons-html5 btn-sm ms-2 btn-secondary\">\n\t\t\t\t\t\t\t\t\t{{ translate(formSubmitLabel()) }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t}\n\t\t\t\t</tbody>\n\t\t\t} @else {\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t[colSpan]=\"\n\t\t\t\t\t\t\t\ttableHead().length - 1 + (rowCounter() ? 1 : 0) + (tableHeadStorage() || (rowActions() && rowActions().length) ? 1 : 0)\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div class=\"alert alert-light\" role=\"alert\">\n\t\t\t\t\t\t\t\t<i class=\"fa fa-exclamation-triangle\"></i> {{ translate(\"NO_DATA_FOUND\") }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t}\n\t\t</table>\n\t</div>\n\t@if (totalPages > 1) {\n\t\t<as-lib-pagination\n\t\t\t(pageChange)=\"pageChange($event)\"\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}\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;cursor:pointer}.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$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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"] }, { kind: "directive", type: UnwrapTagDirective, selector: "[appUnwraptag]", inputs: ["appUnwraptag"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: VisibleRowActionPipe, name: "visibleRowAction" }, { kind: "pipe", type: SafeLimitedHtmlPipe, name: "safeLimitedHtml" }] });
671
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AsLibGenericTableComponent, deps: [{ token: LANG_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
672
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", 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 }, formSubmitLabel: { classPropertyName: "formSubmitLabel", publicName: "formSubmitLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filterParamsChanged: "filterParamsChanged", editRow: "editRow", sliderClicked: "sliderClicked", headerActionClicked: "headerActionClicked", rowActionClicked: "rowActionClicked", tableHeadChanged: "tableHeadChanged", pushedInputValues: "pushedInputValues" }, providers: [], ngImport: i0, template: "<div class=\"dynamic-table\">\n\t@if (loading()) {\n\t\t<p class=\"position-absolute text-center d-block w-100 opacity-100\">\n\t\t\t<i class=\"fa fa-spinner fa-spin fa-3x text-primary mt-5 opacity-100\"></i>\n\t\t</p>\n\t}\n\t<div\n\t\tclass=\"row mb-3 mx-0\"\n\t\t[appUnwraptag]=\"(!perPageValues() || perPageValues().length < 2) && (!headerActions() || !headerActions().length) && !enableSearch()\"\n\t\t[ngClass]=\"{\n\t\t\tloading: loading(),\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"col-md-7 d-flex d-sm-flex d-md-block justify-content-center mb-2\"\n\t\t\t[appUnwraptag]=\"(!perPageValues() || perPageValues().length < 2) && (!headerActions() || !headerActions().length) && !enableSearch()\"\n\t\t>\n\t\t\t@if (perPageValues() && perPageValues().length > 1) {\n\t\t\t\t<div class=\"d-block d-md-inline-flex me-0 me-md-3\">\n\t\t\t\t\t<div class=\"table-length\">\n\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t>{{ translate(\"SHOW\") }}\n\t\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t\t(change)=\"changePerPage($event)\"\n\t\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\t\tclass=\"form-select form-select-sm\"\n\t\t\t\t\t\t\t\tname=\"data-table-combine_length\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t@for (perp of perPageValues(); track perp) {\n\t\t\t\t\t\t\t\t\t<option [selected]=\"perPage() === perp\" value=\"{{ perp }}\">{{ perp }} </option>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t{{ translate(\"ENTRIES\") }}</label\n\t\t\t\t\t\t>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (headerActions() && headerActions().length) {\n\t\t\t\t<div\n\t\t\t\t\tclass=\"d-block d-inline-flex\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'mb-2': (!perPageValues() || perPageValues().length < 2) && !enableSearch(),\n\t\t\t\t\t}\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"dt-buttons btn-group flex-wrap\">\n\t\t\t\t\t\t@for (action of headerActions(); track action.actionName + $index) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t(click)=\"headerAction(action.actionName)\"\n\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\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\t\tid=\"header-action-{{ action.actionName }}\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t@if (action.faIcon) {\n\t\t\t\t\t\t\t\t\t\t<i class=\"fa {{ action.faIcon }}\"></i>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{{ action.label }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t\t@if (enableSearch()) {\n\t\t\t<div class=\"col-md-5 d-flex d-xl-block justify-content-center\">\n\t\t\t\t<div class=\"table-search\">\n\t\t\t\t\t<label>\n\t\t\t\t\t\t{{ translate(\"SEARCH\") }}:\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t(ngModelChange)=\"this.searchUpdate.next($event)\"\n\t\t\t\t\t\t\t[(ngModel)]=\"search\"\n\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\tclass=\"form-control form-control-sm\"\n\t\t\t\t\t\t\tid=\"table-search\"\n\t\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t\t/></label>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t</div>\n\t<div\n\t\tclass=\"table-responsive\"\n\t\t[ngClass]=\"{\n\t\t\tloading: loading(),\n\t\t}\"\n\t>\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@if (rowCounter()) {\n\t\t\t\t\t\t<th class=\"text-end small-column\"> {{ translate(\"NR\") }}</th>\n\t\t\t\t\t}\n\t\t\t\t\t@for (head of tableHead(); track head.key) {\n\t\t\t\t\t\t@if (!head.hidden) {\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t(click)=\"head.type !== 'checkbox' && !head.notSortable && tableSort(head.key)\"\n\t\t\t\t\t\t\t\t[ngClass]=\"head.sort\"\n\t\t\t\t\t\t\t\tclass=\"header {{ head.notSortable ? '' : 'sortable' }} {{ head.cellAlign }}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t@if (head.type === \"checkbox\") {\n\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" (change)=\"toggleAllCheckboxes($event, head.key)\" (click)=\"$event.stopPropagation()\" />\n\t\t\t\t\t\t\t\t\t} @else {\n\t\t\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\t\t@if (!head.notSortable) {\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"fa\"></span>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t@if (tableHeadStorage() || (rowActions() && rowActions().length)) {\n\t\t\t\t\t\t<th class=\"header small-column text-center p-0\" data-width=\"50\">\n\t\t\t\t\t\t\t@if (tableHeadStorage()) {\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t(click)=\"openTableLayoutModal()\"\n\t\t\t\t\t\t\t\t\taria-controls=\"basic-link-dropdown\"\n\t\t\t\t\t\t\t\t\tclass=\"menu-button toggle-white big-toggle dropdown-menu-link\"\n\t\t\t\t\t\t\t\t></a>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</th>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t</thead>\n\n\t\t\t@if (tableData().length) {\n\t\t\t\t<tbody>\n\t\t\t\t\t@for (row of tableData(); track row[\"id\"] || $index) {\n\t\t\t\t\t\t<tr\n\t\t\t\t\t\t\tclass=\"{{ row['rowClass'] || '' }}\"\n\t\t\t\t\t\t\t(click)=\"onRowClick(row, $event)\"\n\t\t\t\t\t\t\t[className]=\"selectableClickedValue === row[selectableKey()] ? selectableClass() : ''\"\n\t\t\t\t\t\t\t[attr.data-id]=\"row['id']\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t@if (rowCounter()) {\n\t\t\t\t\t\t\t\t<th class=\"text-end\"> {{ $index + counter }}.</th>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@for (head of tableHead(); track head.key) {\n\t\t\t\t\t\t\t\t@if (!head.hidden) {\n\t\t\t\t\t\t\t\t\t<td [attr.data-column]=\"head.key\" class=\"header text-nowrap {{ head.cellAlign }}\">\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"checkbox\") {\n\t\t\t\t\t\t\t\t\t\t\t@if (row | visibleRowAction: head.visibilityFieldRule : enableLog()) {\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t} @else if (head.visibilityFieldRule?.disabled) {\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (!head.type) {\n\t\t\t\t\t\t\t\t\t\t\t{{ row[head.key] }}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"html\") {\n\t\t\t\t\t\t\t\t\t\t\t<span [innerHTML]=\"row[head.key] | safeLimitedHtml\"></span>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"badge\") {\n\t\t\t\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\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"date\") {\n\t\t\t\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\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"datetime\") {\n\t\t\t\t\t\t\t\t\t\t\t{{ row[head.key] | date: (head.dateFormat ? head.dateFormat : \"dd.MM.yyyy HH:mm:ss\") }}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"image\") {\n\t\t\t\t\t\t\t\t\t\t\t@if (row[head.key] && row[head.key] !== \"\") {\n\t\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\t\talt=\"img\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[attr.src]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"{{ head?.imageSize?.width || 50 }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"{{ head?.imageSize?.height || 50 }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"url\") {\n @if (row[head.key]) {\n <a\n [href]=\"row[head.key]\"\n [target]=\"head?.urlTarget || '_blank'\"\n [innerHTML]=\"head?.urlArea ? (head.urlArea || '' | safeLimitedHtml) : row[head.key]\">\n </a>\n } @else {\n {{ head?.urlMissing === undefined ? '-' : head.urlMissing }}\n }\n\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"slider\") {\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\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\t\t\t[checked]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"switched\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"check-{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"check-{{ row['id'] }}\"></label>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"input\") {\n\t\t\t\t\t\t\t\t\t\t\t<input [(ngModel)]=\"row[head.key]\" type=\"text\" name=\"input_{{ row['id'] }}\" />\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if (tableHeadStorage() || (rowActions() && rowActions().length)) {\n\t\t\t\t\t\t\t\t<td class=\"small-column\">\n\t\t\t\t\t\t\t\t\t<div class=\"menu text-end\">\n\t\t\t\t\t\t\t\t\t\t@for (action of rowActions(); track (action.label || \"\") + \"_\" + $index) {\n\t\t\t\t\t\t\t\t\t\t\t@if (row | visibleRowAction: action.visibilityRule : enableLog()) {\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\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\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\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\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span><i class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t} @else if (action.visibilityRule?.disabled) {\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\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\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span><i class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t}\n\t\t\t\t\t@if (inputTypeKey || checkboxTypeKey) {\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t[colSpan]=\"\n\t\t\t\t\t\t\t\t\ttableHead().length - 1 + (rowCounter() ? 1 : 0) + (tableHeadStorage() || (rowActions() && rowActions().length) ? 1 : 0)\n\t\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<button (click)=\"pushInputValues()\" class=\"btn buttons-copy buttons-html5 btn-sm ms-2 btn-secondary\">\n\t\t\t\t\t\t\t\t\t{{ translate(formSubmitLabel()) }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t}\n\t\t\t\t</tbody>\n\t\t\t} @else {\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t[colSpan]=\"\n\t\t\t\t\t\t\t\ttableHead().length - 1 + (rowCounter() ? 1 : 0) + (tableHeadStorage() || (rowActions() && rowActions().length) ? 1 : 0)\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div class=\"alert alert-light\" role=\"alert\">\n\t\t\t\t\t\t\t\t<i class=\"fa fa-exclamation-triangle\"></i> {{ translate(\"NO_DATA_FOUND\") }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t}\n\t\t</table>\n\t</div>\n\t@if (totalPages > 1) {\n\t\t<as-lib-pagination\n\t\t\t(pageChange)=\"pageChange($event)\"\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}\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;cursor:pointer}.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$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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"] }, { kind: "directive", type: UnwrapTagDirective, selector: "[appUnwraptag]", inputs: ["appUnwraptag"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: VisibleRowActionPipe, name: "visibleRowAction" }, { kind: "pipe", type: SafeLimitedHtmlPipe, name: "safeLimitedHtml" }] });
672
673
  }
673
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: AsLibGenericTableComponent, decorators: [{
674
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: AsLibGenericTableComponent, decorators: [{
674
675
  type: Component,
675
676
  args: [{ selector: 'as-lib-generic-table', imports: [
676
677
  CommonModule,
@@ -680,7 +681,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
680
681
  VisibleRowActionPipe,
681
682
  SafeLimitedHtmlPipe,
682
683
  UnwrapTagDirective,
683
- ], providers: [], standalone: true, template: "<div class=\"dynamic-table\">\n\t@if (loading()) {\n\t\t<p class=\"position-absolute text-center d-block w-100 opacity-100\">\n\t\t\t<i class=\"fa fa-spinner fa-spin fa-3x text-primary mt-5 opacity-100\"></i>\n\t\t</p>\n\t}\n\t<div\n\t\tclass=\"row mb-3 mx-0\"\n\t\t[appUnwraptag]=\"(!perPageValues() || perPageValues().length < 2) && (!headerActions() || !headerActions().length) && !enableSearch()\"\n\t\t[ngClass]=\"{\n\t\t\tloading: loading(),\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"col-md-7 d-flex d-sm-flex d-md-block justify-content-center mb-2\"\n\t\t\t[appUnwraptag]=\"(!perPageValues() || perPageValues().length < 2) && (!headerActions() || !headerActions().length) && !enableSearch()\"\n\t\t>\n\t\t\t@if (perPageValues() && perPageValues().length > 1) {\n\t\t\t\t<div class=\"d-block d-md-inline-flex me-0 me-md-3\">\n\t\t\t\t\t<div class=\"table-length\">\n\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t>{{ translate(\"SHOW\") }}\n\t\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t\t(change)=\"changePerPage($event)\"\n\t\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\t\tclass=\"form-select form-select-sm\"\n\t\t\t\t\t\t\t\tname=\"data-table-combine_length\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t@for (perp of perPageValues(); track perp) {\n\t\t\t\t\t\t\t\t\t<option [selected]=\"perPage() === perp\" value=\"{{ perp }}\">{{ perp }} </option>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t{{ translate(\"ENTRIES\") }}</label\n\t\t\t\t\t\t>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (headerActions() && headerActions().length) {\n\t\t\t\t<div\n\t\t\t\t\tclass=\"d-block d-inline-flex\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'mb-2': (!perPageValues() || perPageValues().length < 2) && !enableSearch(),\n\t\t\t\t\t}\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"dt-buttons btn-group flex-wrap\">\n\t\t\t\t\t\t@for (action of headerActions(); track action.actionName + $index) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t(click)=\"headerAction(action.actionName)\"\n\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\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\t\tid=\"header-action-{{ action.actionName }}\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t@if (action.faIcon) {\n\t\t\t\t\t\t\t\t\t\t<i class=\"fa {{ action.faIcon }}\"></i>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{{ action.label }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t\t@if (enableSearch()) {\n\t\t\t<div class=\"col-md-5 d-flex d-xl-block justify-content-center\">\n\t\t\t\t<div class=\"table-search\">\n\t\t\t\t\t<label>\n\t\t\t\t\t\t{{ translate(\"SEARCH\") }}:\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t(ngModelChange)=\"this.searchUpdate.next($event)\"\n\t\t\t\t\t\t\t[(ngModel)]=\"search\"\n\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\tclass=\"form-control form-control-sm\"\n\t\t\t\t\t\t\tid=\"table-search\"\n\t\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t\t/></label>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t</div>\n\t<div\n\t\tclass=\"table-responsive\"\n\t\t[ngClass]=\"{\n\t\t\tloading: loading(),\n\t\t}\"\n\t>\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@if (rowCounter()) {\n\t\t\t\t\t\t<th class=\"text-end small-column\"> {{ translate(\"NR\") }}</th>\n\t\t\t\t\t}\n\t\t\t\t\t@for (head of tableHead(); track head.key) {\n\t\t\t\t\t\t@if (!head.hidden) {\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t(click)=\"head.type !== 'checkbox' && !head.notSortable && tableSort(head.key)\"\n\t\t\t\t\t\t\t\t[ngClass]=\"head.sort\"\n\t\t\t\t\t\t\t\tclass=\"header {{ head.notSortable ? '' : 'sortable' }} {{ head.cellAlign }}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t@if (head.type === \"checkbox\") {\n\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" (change)=\"toggleAllCheckboxes($event, head.key)\" (click)=\"$event.stopPropagation()\" />\n\t\t\t\t\t\t\t\t\t} @else {\n\t\t\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\t\t@if (!head.notSortable) {\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"fa\"></span>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t@if (tableHeadStorage() || (rowActions() && rowActions().length)) {\n\t\t\t\t\t\t<th class=\"header small-column text-center p-0\" data-width=\"50\">\n\t\t\t\t\t\t\t@if (tableHeadStorage()) {\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t(click)=\"openTableLayoutModal()\"\n\t\t\t\t\t\t\t\t\taria-controls=\"basic-link-dropdown\"\n\t\t\t\t\t\t\t\t\tclass=\"menu-button toggle-white big-toggle dropdown-menu-link\"\n\t\t\t\t\t\t\t\t></a>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</th>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t</thead>\n\n\t\t\t@if (tableData().length) {\n\t\t\t\t<tbody>\n\t\t\t\t\t@for (row of tableData(); track row[\"id\"] || $index) {\n\t\t\t\t\t\t<tr\n\t\t\t\t\t\t\tclass=\"{{ row['rowClass'] || '' }}\"\n\t\t\t\t\t\t\t(click)=\"onRowClick(row, $event)\"\n\t\t\t\t\t\t\t[className]=\"selectableClickedValue === row[selectableKey()] ? selectableClass() : ''\"\n\t\t\t\t\t\t\t[attr.data-id]=\"row['id']\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t@if (rowCounter()) {\n\t\t\t\t\t\t\t\t<th class=\"text-end\"> {{ $index + counter }}.</th>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@for (head of tableHead(); track head.key) {\n\t\t\t\t\t\t\t\t@if (!head.hidden) {\n\t\t\t\t\t\t\t\t\t<td [attr.data-column]=\"head.key\" class=\"header text-nowrap {{ head.cellAlign }}\">\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"checkbox\") {\n\t\t\t\t\t\t\t\t\t\t\t@if (row | visibleRowAction: head.visibilityFieldRule : enableLog()) {\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t} @else if (head.visibilityFieldRule?.disabled) {\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (!head.type) {\n\t\t\t\t\t\t\t\t\t\t\t{{ row[head.key] }}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"html\") {\n\t\t\t\t\t\t\t\t\t\t\t<span [innerHTML]=\"row[head.key] | safeLimitedHtml\"></span>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"badge\") {\n\t\t\t\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\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"date\") {\n\t\t\t\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\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"datetime\") {\n\t\t\t\t\t\t\t\t\t\t\t{{ row[head.key] | date: (head.dateFormat ? head.dateFormat : \"dd.MM.yyyy HH:mm:ss\") }}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"image\") {\n\t\t\t\t\t\t\t\t\t\t\t@if (row[head.key] && row[head.key] !== \"\") {\n\t\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\t\talt=\"img\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[attr.src]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"{{ head?.imageSize?.width || 50 }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"{{ head?.imageSize?.height || 50 }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"url\") {\n\t\t\t\t\t\t\t\t\t\t\t<a [attr.href]=\"row[head.key]\" target=\"{{ head?.urlTarget || '_blank' }}\">{{ row[head.key] }}</a>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"slider\") {\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\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\t\t\t[checked]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"switched\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"check-{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"check-{{ row['id'] }}\"></label>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"input\") {\n\t\t\t\t\t\t\t\t\t\t\t<input [(ngModel)]=\"row[head.key]\" type=\"text\" name=\"input_{{ row['id'] }}\" />\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if (tableHeadStorage() || (rowActions() && rowActions().length)) {\n\t\t\t\t\t\t\t\t<td class=\"small-column\">\n\t\t\t\t\t\t\t\t\t<div class=\"menu text-end\">\n\t\t\t\t\t\t\t\t\t\t@for (action of rowActions(); track (action.label || \"\") + \"_\" + $index) {\n\t\t\t\t\t\t\t\t\t\t\t@if (row | visibleRowAction: action.visibilityRule : enableLog()) {\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\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\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\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\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span><i class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t} @else if (action.visibilityRule?.disabled) {\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\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\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span><i class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t}\n\t\t\t\t\t@if (inputTypeKey || checkboxTypeKey) {\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t[colSpan]=\"\n\t\t\t\t\t\t\t\t\ttableHead().length - 1 + (rowCounter() ? 1 : 0) + (tableHeadStorage() || (rowActions() && rowActions().length) ? 1 : 0)\n\t\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<button (click)=\"pushInputValues()\" class=\"btn buttons-copy buttons-html5 btn-sm ms-2 btn-secondary\">\n\t\t\t\t\t\t\t\t\t{{ translate(formSubmitLabel()) }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t}\n\t\t\t\t</tbody>\n\t\t\t} @else {\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t[colSpan]=\"\n\t\t\t\t\t\t\t\ttableHead().length - 1 + (rowCounter() ? 1 : 0) + (tableHeadStorage() || (rowActions() && rowActions().length) ? 1 : 0)\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div class=\"alert alert-light\" role=\"alert\">\n\t\t\t\t\t\t\t\t<i class=\"fa fa-exclamation-triangle\"></i> {{ translate(\"NO_DATA_FOUND\") }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t}\n\t\t</table>\n\t</div>\n\t@if (totalPages > 1) {\n\t\t<as-lib-pagination\n\t\t\t(pageChange)=\"pageChange($event)\"\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}\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;cursor:pointer}.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"] }]
684
+ ], providers: [], standalone: true, template: "<div class=\"dynamic-table\">\n\t@if (loading()) {\n\t\t<p class=\"position-absolute text-center d-block w-100 opacity-100\">\n\t\t\t<i class=\"fa fa-spinner fa-spin fa-3x text-primary mt-5 opacity-100\"></i>\n\t\t</p>\n\t}\n\t<div\n\t\tclass=\"row mb-3 mx-0\"\n\t\t[appUnwraptag]=\"(!perPageValues() || perPageValues().length < 2) && (!headerActions() || !headerActions().length) && !enableSearch()\"\n\t\t[ngClass]=\"{\n\t\t\tloading: loading(),\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"col-md-7 d-flex d-sm-flex d-md-block justify-content-center mb-2\"\n\t\t\t[appUnwraptag]=\"(!perPageValues() || perPageValues().length < 2) && (!headerActions() || !headerActions().length) && !enableSearch()\"\n\t\t>\n\t\t\t@if (perPageValues() && perPageValues().length > 1) {\n\t\t\t\t<div class=\"d-block d-md-inline-flex me-0 me-md-3\">\n\t\t\t\t\t<div class=\"table-length\">\n\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t>{{ translate(\"SHOW\") }}\n\t\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t\t(change)=\"changePerPage($event)\"\n\t\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\t\tclass=\"form-select form-select-sm\"\n\t\t\t\t\t\t\t\tname=\"data-table-combine_length\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t@for (perp of perPageValues(); track perp) {\n\t\t\t\t\t\t\t\t\t<option [selected]=\"perPage() === perp\" value=\"{{ perp }}\">{{ perp }} </option>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t{{ translate(\"ENTRIES\") }}</label\n\t\t\t\t\t\t>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (headerActions() && headerActions().length) {\n\t\t\t\t<div\n\t\t\t\t\tclass=\"d-block d-inline-flex\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'mb-2': (!perPageValues() || perPageValues().length < 2) && !enableSearch(),\n\t\t\t\t\t}\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"dt-buttons btn-group flex-wrap\">\n\t\t\t\t\t\t@for (action of headerActions(); track action.actionName + $index) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t(click)=\"headerAction(action.actionName)\"\n\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\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\t\tid=\"header-action-{{ action.actionName }}\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t@if (action.faIcon) {\n\t\t\t\t\t\t\t\t\t\t<i class=\"fa {{ action.faIcon }}\"></i>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{{ action.label }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t\t@if (enableSearch()) {\n\t\t\t<div class=\"col-md-5 d-flex d-xl-block justify-content-center\">\n\t\t\t\t<div class=\"table-search\">\n\t\t\t\t\t<label>\n\t\t\t\t\t\t{{ translate(\"SEARCH\") }}:\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t(ngModelChange)=\"this.searchUpdate.next($event)\"\n\t\t\t\t\t\t\t[(ngModel)]=\"search\"\n\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\tclass=\"form-control form-control-sm\"\n\t\t\t\t\t\t\tid=\"table-search\"\n\t\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t\t/></label>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t</div>\n\t<div\n\t\tclass=\"table-responsive\"\n\t\t[ngClass]=\"{\n\t\t\tloading: loading(),\n\t\t}\"\n\t>\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@if (rowCounter()) {\n\t\t\t\t\t\t<th class=\"text-end small-column\"> {{ translate(\"NR\") }}</th>\n\t\t\t\t\t}\n\t\t\t\t\t@for (head of tableHead(); track head.key) {\n\t\t\t\t\t\t@if (!head.hidden) {\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t(click)=\"head.type !== 'checkbox' && !head.notSortable && tableSort(head.key)\"\n\t\t\t\t\t\t\t\t[ngClass]=\"head.sort\"\n\t\t\t\t\t\t\t\tclass=\"header {{ head.notSortable ? '' : 'sortable' }} {{ head.cellAlign }}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t@if (head.type === \"checkbox\") {\n\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" (change)=\"toggleAllCheckboxes($event, head.key)\" (click)=\"$event.stopPropagation()\" />\n\t\t\t\t\t\t\t\t\t} @else {\n\t\t\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\t\t@if (!head.notSortable) {\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"fa\"></span>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t@if (tableHeadStorage() || (rowActions() && rowActions().length)) {\n\t\t\t\t\t\t<th class=\"header small-column text-center p-0\" data-width=\"50\">\n\t\t\t\t\t\t\t@if (tableHeadStorage()) {\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t(click)=\"openTableLayoutModal()\"\n\t\t\t\t\t\t\t\t\taria-controls=\"basic-link-dropdown\"\n\t\t\t\t\t\t\t\t\tclass=\"menu-button toggle-white big-toggle dropdown-menu-link\"\n\t\t\t\t\t\t\t\t></a>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</th>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t</thead>\n\n\t\t\t@if (tableData().length) {\n\t\t\t\t<tbody>\n\t\t\t\t\t@for (row of tableData(); track row[\"id\"] || $index) {\n\t\t\t\t\t\t<tr\n\t\t\t\t\t\t\tclass=\"{{ row['rowClass'] || '' }}\"\n\t\t\t\t\t\t\t(click)=\"onRowClick(row, $event)\"\n\t\t\t\t\t\t\t[className]=\"selectableClickedValue === row[selectableKey()] ? selectableClass() : ''\"\n\t\t\t\t\t\t\t[attr.data-id]=\"row['id']\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t@if (rowCounter()) {\n\t\t\t\t\t\t\t\t<th class=\"text-end\"> {{ $index + counter }}.</th>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@for (head of tableHead(); track head.key) {\n\t\t\t\t\t\t\t\t@if (!head.hidden) {\n\t\t\t\t\t\t\t\t\t<td [attr.data-column]=\"head.key\" class=\"header text-nowrap {{ head.cellAlign }}\">\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"checkbox\") {\n\t\t\t\t\t\t\t\t\t\t\t@if (row | visibleRowAction: head.visibilityFieldRule : enableLog()) {\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t} @else if (head.visibilityFieldRule?.disabled) {\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (!head.type) {\n\t\t\t\t\t\t\t\t\t\t\t{{ row[head.key] }}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"html\") {\n\t\t\t\t\t\t\t\t\t\t\t<span [innerHTML]=\"row[head.key] | safeLimitedHtml\"></span>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"badge\") {\n\t\t\t\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\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"date\") {\n\t\t\t\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\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"datetime\") {\n\t\t\t\t\t\t\t\t\t\t\t{{ row[head.key] | date: (head.dateFormat ? head.dateFormat : \"dd.MM.yyyy HH:mm:ss\") }}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"image\") {\n\t\t\t\t\t\t\t\t\t\t\t@if (row[head.key] && row[head.key] !== \"\") {\n\t\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\t\talt=\"img\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[attr.src]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"{{ head?.imageSize?.width || 50 }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"{{ head?.imageSize?.height || 50 }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"url\") {\n @if (row[head.key]) {\n <a\n [href]=\"row[head.key]\"\n [target]=\"head?.urlTarget || '_blank'\"\n [innerHTML]=\"head?.urlArea ? (head.urlArea || '' | safeLimitedHtml) : row[head.key]\">\n </a>\n } @else {\n {{ head?.urlMissing === undefined ? '-' : head.urlMissing }}\n }\n\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"slider\") {\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\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\t\t\t[checked]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"switched\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"check-{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"check-{{ row['id'] }}\"></label>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"input\") {\n\t\t\t\t\t\t\t\t\t\t\t<input [(ngModel)]=\"row[head.key]\" type=\"text\" name=\"input_{{ row['id'] }}\" />\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if (tableHeadStorage() || (rowActions() && rowActions().length)) {\n\t\t\t\t\t\t\t\t<td class=\"small-column\">\n\t\t\t\t\t\t\t\t\t<div class=\"menu text-end\">\n\t\t\t\t\t\t\t\t\t\t@for (action of rowActions(); track (action.label || \"\") + \"_\" + $index) {\n\t\t\t\t\t\t\t\t\t\t\t@if (row | visibleRowAction: action.visibilityRule : enableLog()) {\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\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\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\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\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span><i class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t} @else if (action.visibilityRule?.disabled) {\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\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\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span><i class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t}\n\t\t\t\t\t@if (inputTypeKey || checkboxTypeKey) {\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t[colSpan]=\"\n\t\t\t\t\t\t\t\t\ttableHead().length - 1 + (rowCounter() ? 1 : 0) + (tableHeadStorage() || (rowActions() && rowActions().length) ? 1 : 0)\n\t\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<button (click)=\"pushInputValues()\" class=\"btn buttons-copy buttons-html5 btn-sm ms-2 btn-secondary\">\n\t\t\t\t\t\t\t\t\t{{ translate(formSubmitLabel()) }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t}\n\t\t\t\t</tbody>\n\t\t\t} @else {\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t[colSpan]=\"\n\t\t\t\t\t\t\t\ttableHead().length - 1 + (rowCounter() ? 1 : 0) + (tableHeadStorage() || (rowActions() && rowActions().length) ? 1 : 0)\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div class=\"alert alert-light\" role=\"alert\">\n\t\t\t\t\t\t\t\t<i class=\"fa fa-exclamation-triangle\"></i> {{ translate(\"NO_DATA_FOUND\") }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t}\n\t\t</table>\n\t</div>\n\t@if (totalPages > 1) {\n\t\t<as-lib-pagination\n\t\t\t(pageChange)=\"pageChange($event)\"\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}\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;cursor:pointer}.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"] }]
684
685
  }], ctorParameters: () => [{ type: i3.Observable, decorators: [{
685
686
  type: Optional
686
687
  }, {
@@ -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/pipes/row-action-visible/visible-row-action.pipe.ts","../../../projects/as-lib-generic-table/src/lib/pipes/safe-limited-html/safe-limited-html.pipe.ts","../../../projects/as-lib-generic-table/src/lib/directives/unwraptag-tag/unwraptag-tag.directive.ts","../../../projects/as-lib-generic-table/src/lib/i18n/en.ts","../../../projects/as-lib-generic-table/src/lib/i18n/cn.ts","../../../projects/as-lib-generic-table/src/lib/i18n/ja.ts","../../../projects/as-lib-generic-table/src/lib/i18n/de.ts","../../../projects/as-lib-generic-table/src/lib/component/modal-confirmation.component.ts","../../../projects/as-lib-generic-table/src/lib/component/modal-confirmation.component.html","../../../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\tprovidedIn: 'root',\n})\nexport class AsLibGenericTableService {\n\tconstructor() {}\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n\tselector: 'tooltip',\n\tstandalone: 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\tApplicationRef,\n\tComponentRef,\n\tDirective,\n\tElementRef,\n\tEmbeddedViewRef,\n\tHostListener,\n\tInjector,\n\tInput,\n\tViewContainerRef,\n} from '@angular/core';\nimport { TooltipComponent } from '../component/tooltip.component';\n\n@Directive({\n\tselector: '[tooltip]',\n\tstandalone: true,\n})\nexport class TooltipDirective {\n\t@Input() tooltip = '';\n\n\tprivate componentRef: ComponentRef<any> | null = null;\n\n\tconstructor(\n\t\tprivate elementRef: ElementRef,\n\t\tprivate appRef: ApplicationRef,\n\t\tprivate viewContainerRef: ViewContainerRef,\n\t) {}\n\n\t@HostListener('mouseenter')\n\tonMouseEnter(): void {\n\t\tif (this.componentRef === null) {\n\t\t\tthis.componentRef = this.viewContainerRef.createComponent(TooltipComponent);\n\t\t\tthis.componentRef.instance.text = this.tooltip;\n\t\t\tthis.setTooltipComponentProperties();\n\t\t}\n\t}\n\n\t@HostListener('mouseleave')\n\tonMouseLeave(): void {\n\t\tthis.destroy();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.destroy();\n\t}\n\n\tdestroy(): void {\n\t\tif (this.componentRef !== null) {\n\t\t\tthis.appRef.detachView(this.componentRef.hostView);\n\t\t\tthis.componentRef.destroy();\n\t\t\tthis.componentRef = null;\n\t\t}\n\t}\n\n\tprivate setTooltipComponentProperties() {\n\t\tif (this.componentRef !== null) {\n\t\t\tthis.componentRef.instance.tooltip = this.tooltip;\n\t\t\tconst { left, right, bottom } = this.elementRef.nativeElement.getBoundingClientRect();\n\t\t\tthis.componentRef.instance.left = (right - left) / 2 + left;\n\t\t\tthis.componentRef.instance.top = bottom;\n\t\t}\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'visibleRowAction',\n})\nexport class VisibleRowActionPipe implements PipeTransform {\n\ttransform(row: any, visibilityRule: any, enableLog: boolean): boolean {\n\t\tif (!visibilityRule || !visibilityRule.key) {\n\t\t\treturn true;\n\t\t}\n\t\tconst targetValue = row[visibilityRule.key];\n\t\t// if (enableLog) {\n\t\t// console.log('AS Dynamic Table -> Visibility targetValue', targetValue, visibilityRule.rule, visibilityRule.value)\n\t\t// }\n\t\treturn this.shouldApplyRule(targetValue, visibilityRule.rule, visibilityRule.value);\n\t}\n\n\tshouldApplyRule(targetValue: any, rule: string, value: any): boolean {\n\t\t// Your existing logic for applying rules\n\t\tswitch (rule) {\n\t\t\tcase '>':\n\t\t\t\treturn targetValue > value;\n\t\t\tcase '<':\n\t\t\t\treturn targetValue < value;\n\t\t\tcase '=':\n\t\t\t\treturn targetValue === value;\n\t\t\tcase '<>':\n\t\t\t\treturn targetValue !== value;\n\t\t\tcase 'in':\n\t\t\t\tif (Array.isArray(targetValue)) {\n\t\t\t\t\treturn targetValue.includes(value);\n\t\t\t\t}\n\t\t\t\tif (typeof targetValue === 'string') {\n\t\t\t\t\treturn targetValue.includes(value);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({ name: 'safeLimitedHtml' })\nexport class SafeLimitedHtmlPipe implements PipeTransform {\n\tconstructor(private sanitizer: DomSanitizer) {}\n\n\ttransform(value: string): SafeHtml {\n\t\tif (!value) return '';\n\n\t\t// List of allowed tags\n\t\tconst allowedTags = ['br', 'span', 'p', 'strong', 'em', 'ul', 'ol', 'li'];\n\n\t\t// Create regex pattern to remove all tags except allowed ones\n\t\tconst pattern = new RegExp(`<(?!\\/?(${allowedTags.join('|')})\\s*\\/?)[^>]+>`, 'gi');\n\n\t\tconst sanitized = value.replace(pattern, '');\n\t\treturn this.sanitizer.bypassSecurityTrustHtml(sanitized);\n\t}\n}\n","import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n\tselector: '[appUnwraptag]',\n\tstandalone: true,\n})\nexport class UnwrapTagDirective implements AfterViewInit {\n\t@Input() appUnwraptag = true;\n\n\tconstructor(private el: ElementRef) {}\n\n\tngAfterViewInit() {\n\t\tif (!this.appUnwraptag) {\n\t\t\treturn;\n\t\t}\n\t\t// get the element's parent node\n\t\tconst parent = this.el.nativeElement.parentNode;\n\n\t\t// move all children out of the element\n\t\twhile (this.el.nativeElement.firstChild) {\n\t\t\tparent.insertBefore(this.el.nativeElement.firstChild, this.el.nativeElement);\n\t\t}\n\t\t// remove the empty element\n\t\tparent.removeChild(this.el.nativeElement);\n\t}\n}\n\n/*\nExample of use:\n<app-store-widget appUnwraptag [widgetStore]=\"storeInstance\"></app-store-widget>\nthe result will be the inner html of app-store-widget.\n*/\n","export const EN_TRANSLATIONS: Record<string, string> = {\n\tNR: 'Nr.',\n\tNO_DATA_FOUND: 'No data found',\n\tSEARCH: 'Search',\n\tSHOW: 'Show',\n\tENTRIES: 'Entries',\n\tEDIT_TABLE_HEADER: 'Edit table header',\n\tMANDATORY_FIELDS: 'Mandatory field for the view',\n\tRESET: 'Reset',\n\tCLOSE: 'Close',\n\tSAVE: 'Save',\n};\n","export const CN_TRANSLATIONS: Record<string, string> = {\n\tNR: '序号',\n\tNO_DATA_FOUND: '未找到数据',\n\tSEARCH: '搜索',\n\tSHOW: '显示',\n\tENTRIES: '条目',\n\tEDIT_TABLE_HEADER: '编辑表头',\n\tMANDATORY_FIELDS: '视图必填字段',\n\tRESET: '重置',\n\tCLOSE: '关闭',\n\tSAVE: '保存',\n};\n","export const JA_TRANSLATIONS: Record<string, string> = {\n\tNR: '番号',\n\tNO_DATA_FOUND: 'データが見つかりません',\n\tSEARCH: '検索',\n\tSHOW: '表示',\n\tENTRIES: '件',\n\tEDIT_TABLE_HEADER: 'テーブルヘッダーを編集',\n\tMANDATORY_FIELDS: 'ビューに必須のフィールド',\n\tRESET: 'リセット',\n\tCLOSE: '閉じる',\n\tSAVE: '保存',\n};\n","export const DE_TRANSLATIONS: Record<string, string> = {\n\tNR: 'Nr.',\n\tNO_DATA_FOUND: 'Keine Daten gefunden',\n\tSEARCH: 'Suchen',\n\tSHOW: 'Anzeigen',\n\tENTRIES: 'Einträge',\n\tEDIT_TABLE_HEADER: 'Tabellenkopf bearbeiten',\n\tMANDATORY_FIELDS: 'Pflichtfeld für die Ansicht',\n\tRESET: 'Zurücksetzen',\n\tCLOSE: 'Schließen',\n\tSAVE: 'Speichern',\n};\n","import { ChangeDetectionStrategy, Component, effect, input, output, signal } from '@angular/core';\nimport { ITableHead } from '../exports';\nimport { BaseModalComponent } from '@agentsmith.bgd/as-components';\n\n@Component({\n\tselector: 'app-modal-confirmation',\n\ttemplateUrl: 'modal-confirmation.component.html',\n\timports: [],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalConfirmationComponent extends BaseModalComponent {\n\tmandatoryFields = input('');\n\ttableHead = input<ITableHead[]>([]);\n\treset = input('');\n\tsave = input('');\n\n\tvalues = signal<Record<string, any>>({});\n\n\tinit = false;\n\n\tconstructor() {\n\t\tsuper();\n\t\teffect(() => {\n\t\t\tconsole.log('tableHead changed:', this.tableHead(), this.title(), this.mandatoryFields(), this.reset(), this.save());\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst th = this.tableHead(); // just read\n\t\t\tif (th.length > 0 && !this.init) {\n\t\t\t\tthis.initializeValues(th);\n\t\t\t\tthis.init = true;\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate initializeValues(th: ITableHead[]): void {\n\t\tthis.values.set(Object.fromEntries(th.map(t => [t.key, !t.hidden])));\n\t\tconsole.log('values initialized:', this.values());\n\t}\n\n\tprotected change(key: string) {\n\t\tthis.values.update(current => ({\n\t\t\t...current,\n\t\t\t[key]: !current[key],\n\t\t}));\n\t\tconsole.log('Toggling key:', key, this.values());\n\t}\n\n\tprotected resetValues() {\n\t\tthis.confirm({ action: 'reset', payload: null });\n\t}\n\n\tprotected saveMe() {\n\t\tthis.confirm({ action: 'save', payload: this.values() });\n\t}\n}\n","<div class=\"modal-confirmation\">\n\t<div class=\"modal-header\">\n\t\t<h4 class=\"modal-title pull-left\">{{ title() }}</h4>\n\t\t<!-- <button (click)=\"modalClose()\" aria-label=\"Close\" class=\"btn-close close pull-right\" type=\"button\">-->\n\t\t<!-- <span aria-hidden=\"true\" class=\"visually-hidden\">&times;</span>-->\n\t\t<!-- </button>-->\n\t</div>\n\t<div class=\"modal-body\">\n\t\t@for (td of tableHead(); track td.key) {\n\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t<input\n\t\t\t\t\t(change)=\"change(td.key)\"\n\t\t\t\t\t[checked]=\"!td.hidden\"\n\t\t\t\t\t[disabled]=\"td.mandatory\"\n\t\t\t\t\t[readOnly]=\"td.mandatory\"\n\t\t\t\t\tclass=\"form-check-input\"\n\t\t\t\t\tid=\"{{ td.key }}\"\n\t\t\t\t\trole=\"switch\"\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\tvalue=\"true\"\n\t\t\t\t/>\n\t\t\t\t<label class=\"form-check-label\" for=\"{{ td.key }}\">{{ td.label }} {{ td.mandatory ? \"*\" : \"\" }}</label>\n\t\t\t</div>\n\t\t}\n\t\t<small class=\"small text-muted pt-2\">* {{ mandatoryFields() }}</small>\n\t</div>\n\t<div class=\"modal-footer\">\n\t\t<button (click)=\"resetValues()\" class=\"btn btn-outline-secondary me-auto\" type=\"button\">{{ reset() }} </button>\n\t\t<button (click)=\"saveMe()\" class=\"btn btn-primary\" type=\"button\">{{ save() }}</button>\n\t</div>\n</div>\n","import { Component, effect, Inject, inject, InjectionToken, input, Optional, output, TemplateRef } from '@angular/core';\nimport { IActionButton, IFilterParams, ITableHead } from './exports';\nimport { debounceTime, distinctUntilChanged, Observable, of, Subject } from 'rxjs';\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';\nimport { VisibleRowActionPipe } from './pipes/row-action-visible/visible-row-action.pipe';\nimport { SafeLimitedHtmlPipe } from './pipes/safe-limited-html/safe-limited-html.pipe';\nimport { UnwrapTagDirective } from './directives/unwraptag-tag/unwraptag-tag.directive';\nimport { EN_TRANSLATIONS } from './i18n/en';\nimport { CN_TRANSLATIONS } from './i18n/cn';\nimport { JA_TRANSLATIONS } from './i18n/ja';\nimport { DE_TRANSLATIONS } from './i18n/de';\nimport { ModalService, ResultPayload } from '@agentsmith.bgd/as-components';\nimport { ModalConfirmationComponent } from './component/modal-confirmation.component';\n\nexport const LANG_TABLE = new InjectionToken('env.LANG_TABLE');\n\n@Component({\n\tselector: 'as-lib-generic-table',\n\timports: [\n\t\tCommonModule,\n\t\tFormsModule,\n\t\tTooltipDirective,\n\t\tAsLibPaginationComponent,\n\t\tVisibleRowActionPipe,\n\t\tSafeLimitedHtmlPipe,\n\t\tUnwrapTagDirective,\n\t],\n\tproviders: [],\n\ttemplateUrl: './as-lib-generic-table.component.html',\n\tstyleUrl: './as-lib-generic-table.component.scss',\n\tstandalone: true,\n})\nexport class AsLibGenericTableComponent {\n\tloading = input(false);\n\tstriped = input(false);\n\tbordered = input(false);\n\thovered = input(false);\n\tenableSearch = input(true);\n\trowCounter = input(false);\n\tenableLog = input(false);\n\tperPage = input(10);\n\ttableHead = input<ITableHead[]>([]);\n\ttableData = input<Record<string, never>[]>([]);\n\ttableHeadStorage = input<string>('');\n\tperPageValues = input<number[]>([10, 20, 50, 100]);\n\theaderActions = input<IActionButton[]>([]);\n\trowActions = input<IActionButton[]>([]);\n\ttableStyle = input<'' | 'table-light' | 'table-dark'>('');\n\theadStyle = input<\n\t\t| 'table-default'\n\t\t| 'table-primary'\n\t\t| 'table-secondary'\n\t\t| 'table-success'\n\t\t| 'table-danger'\n\t\t| 'table-warning'\n\t\t| 'table-info'\n\t\t| 'table-light'\n\t\t| 'table-dark'\n\t>('table-default');\n\tpaginationAlignment = input<'' | 'justify-content-center' | 'justify-content-end'>('justify-content-end');\n\ttotalItems = input(0);\n\n\tpage = input(0);\n\n\tselectableKey = input<string>('');\n\tselectableClass = input<\n\t\t'table-primary' | 'table-secondary' | 'table-success' | 'table-danger' | 'table-warning' | 'table-info' | 'table-light'\n\t>('table-secondary');\n\n\tsearchString = input<string>();\n\tsort = input<string>('name');\n\torder = input<'asc' | 'desc'>('asc');\n\tformSubmitLabel = input<string>('SAVE');\n\n\tavailableTranslations: Record<string, Record<string, string>> = {\n\t\ten: EN_TRANSLATIONS,\n\t\tcn: CN_TRANSLATIONS,\n\t\tja: JA_TRANSLATIONS,\n\t\tde: DE_TRANSLATIONS,\n\t};\n\ttranslations: Record<string, string>;\n\tprivate currentLanguage = 'en';\n\n\tfilterParamsChanged = output<IFilterParams>();\n\teditRow = output<Record<string, never>>();\n\tsliderClicked = output<Record<string, never>>();\n\theaderActionClicked = output<string>();\n\trowActionClicked = output<{ action: string; value: any }>();\n\ttableHeadChanged = output<string[] | null>();\n\tpushedInputValues = output<{ id: string; value: string | boolean; key: string }[]>();\n\n\tsearchUpdate: Subject<string> = new Subject();\n\tsearch = '';\n\ttotalPages = 0;\n\tcounter = 0;\n\tprivate sortKey!: string;\n\tprivate sortOrder: 'asc' | 'desc' = 'asc';\n\n\tselectableClickedValue = '';\n\n\t//private modalService: BsModalService;// = Inject(BsModalService)\n\tprivate modalService = inject(ModalService);\n\tbsModalRef: any;\n\n\tprivate deepLinkDone = false;\n\tinputTypeKey!: string;\n\tcheckboxTypeKey!: string;\n\n\tconstructor(@Optional() @Inject(LANG_TABLE) private language$: Observable<string>) {\n\t\tthis.translations = this.availableTranslations['en'];\n\t\teffect(() => {\n\t\t\tconst p = this.page();\n\t\t\tconst totalItems = this.totalItems();\n\t\t\tconst perPage = this.perPage();\n\t\t\tthis.counter = p * perPage + 1;\n\t\t\tthis.log(`The count is totalItems, page, perpage, and counter:`, totalItems, p, perPage, this.counter);\n\t\t\tthis.calculatePages();\n\t\t\tthis.badgeClassRules();\n\t\t\tthis.rowClassRules();\n\t\t\tthis.init();\n\t\t\tthis.deepLink();\n\t\t\tthis.inputTypeKey = this.tableHead().find(t => t.type === 'input')?.key || '';\n\t\t\tthis.checkboxTypeKey = this.tableHead().find(t => t.type === 'checkbox')?.key || '';\n\t\t\t(language$ || of('en')).subscribe(language => {\n\t\t\t\tthis.currentLanguage = language;\n\t\t\t\tthis.log('Language changed to:', language);\n\t\t\t\tthis.translations = this.availableTranslations[language] || this.availableTranslations['en'];\n\t\t\t});\n\t\t});\n\t}\n\n\tinit(): void {\n\t\tif (this.tableHeadStorage()) {\n\t\t\tconst storage = localStorage.getItem(this.tableHeadStorage());\n\t\t\tif (storage) {\n\t\t\t\tconst hidden: string[] = (JSON.parse(storage) as string[]) || [];\n\t\t\t\tthis.tableHead().forEach(t => (t.hidden = hidden.includes(t.key)));\n\t\t\t} else {\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tthis.tableHeadStorage(),\n\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\tthis.tableHead()\n\t\t\t\t\t\t\t.filter(t => t.hidden)\n\t\t\t\t\t\t\t.map(t => t.key),\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tthis.sortKey = this.tableHead().find(h => h.key === this.sort())?.key || this.tableHead()[0].key;\n\t\tthis.log('totalPages', this.totalPages);\n\t\tthis.log('Table head', this.tableHead());\n\t\tthis.log('Table data', this.tableData());\n\t\tthis.log('Row actions', this.rowActions());\n\t\t// this.log('rows', rows);\n\t\tthis.searchUpdate.pipe(debounceTime(500), distinctUntilChanged()).subscribe(_ => {\n\t\t\tthis.log('search', this.search);\n\t\t\tconst emitValue: IFilterParams = {\n\t\t\t\tpage: 0,\n\t\t\t\tsort: this.sortKey,\n\t\t\t\torder: this.sortOrder,\n\t\t\t\tperPage: this.perPage(),\n\t\t\t\tsearchString: this.search,\n\t\t\t};\n\t\t\tthis.log('Search value change, sortKey values: ', emitValue);\n\t\t\tthis.filterParamsChanged.emit(emitValue);\n\t\t});\n\n\t\tif (!this.perPageValues().includes(this.perPage())) {\n\t\t\tthrow new Error('Per page value invalid: ' + this.perPage());\n\t\t}\n\t\tthis.log('Loading', this.loading());\n\t}\n\n\tprivate badgeClassRules() {\n\t\tthis.applyRules('badgeClassRules', key => `${key}Badge`);\n\t}\n\n\tprivate rowClassRules() {\n\t\tthis.applyRules('rowClassRules', () => 'rowClass');\n\t}\n\n\tprivate applyRules(ruleKey: 'badgeClassRules' | 'rowClassRules', targetKeyFn: (key: string) => string) {\n\t\tconst tableData = this.tableData();\n\n\t\tthis.tableHead().forEach(head => {\n\t\t\tconst rules = head[ruleKey] || [];\n\t\t\trules.forEach(rule => {\n\t\t\t\tconst { key } = head;\n\t\t\t\tconst { rule: condition, value, class: cl } = rule;\n\n\t\t\t\ttableData.forEach(row => {\n\t\t\t\t\tif (this.shouldApplyRule(row[key], condition, value)) {\n\t\t\t\t\t\trow[targetKeyFn(key)] = cl as never;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate shouldApplyRule(cellValue: any, condition: string, value: any): boolean {\n\t\tswitch (condition) {\n\t\t\tcase '=':\n\t\t\t\treturn cellValue === value;\n\t\t\tcase '<>':\n\t\t\t\treturn cellValue !== value;\n\t\t\tcase '>':\n\t\t\t\treturn cellValue > value;\n\t\t\tcase '<':\n\t\t\t\treturn cellValue < value;\n\t\t\tcase 'in':\n\t\t\t\treturn cellValue.includes(value);\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\n\topenTableLayoutModal(): void {\n\t\tthis.log('Open layout');\n\t\t// @ts-ignore\n\t\tthis.bsModalRef = this.modalService.show(ModalConfirmationComponent, {\n\t\t\ttitle: this.translate('EDIT_TABLE_HEADER'),\n\t\t\tshowClose: true,\n\t\t\tsize: 'sm',\n\t\t\tdata: {\n\t\t\t\tmandatoryFields: this.translate('MANDATORY_FIELDS'),\n\t\t\t\treset: this.translate('RESET'),\n\t\t\t\tsave: this.translate('SAVE'),\n\t\t\t\ttableHead: this.tableHead(),\n\t\t\t},\n\t\t});\n\n\t\tthis.bsModalRef.onClose.subscribe({\n\t\t\tnext: (result: ResultPayload) => {\n\t\t\t\tthis.log('Modal closed', result);\n\t\t\t\tif (result?.action === 'save') {\n\t\t\t\t\tthis.tableHead().forEach((t: ITableHead) => {\n\t\t\t\t\t\tt.hidden = !(result.payload as Record<string, boolean>)[t.key];\n\t\t\t\t\t});\n\t\t\t\t\tthis.tableHeadStorage &&\n\t\t\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\t\t\tthis.tableHeadStorage(),\n\t\t\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\t\t\tthis.tableHead()\n\t\t\t\t\t\t\t\t\t.filter(t => t.hidden)\n\t\t\t\t\t\t\t\t\t.map(t => t.key),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\tconst hiddenKeys = this.tableHead()\n\t\t\t\t\t\t.filter(t => t.hidden)\n\t\t\t\t\t\t.map(t => t.key);\n\t\t\t\t\tthis.log('Modal closed, saved keys', hiddenKeys);\n\t\t\t\t\tthis.tableHeadChanged.emit(hiddenKeys);\n\t\t\t\t} else if (result?.action === 'reset') {\n\t\t\t\t\tthis.tableHeadChanged.emit(null);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t}\n\n\thandleTHchange(key: string): void {\n\t\tthis.log('change triggered', key);\n\t\tthis.tableHead().forEach(t => {\n\t\t\tif (t.key === key) {\n\t\t\t\tt.hidden = !t.hidden;\n\t\t\t\tthis.tableHeadStorage &&\n\t\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\t\tthis.tableHeadStorage(),\n\t\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\t\tthis.tableHead()\n\t\t\t\t\t\t\t\t.filter(t => t.hidden)\n\t\t\t\t\t\t\t\t.map(t => t.key),\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\tmanualTableSort(key: string, order: string) {\n\t\tthis.log('Default sort key/order', key, order);\n\t\tthis.tableHead().forEach(h => {\n\t\t\tif (h.key === key) {\n\t\t\t\tif (order === 'DESC') {\n\t\t\t\t\tthis.sortOrder = 'asc';\n\t\t\t\t\th.sort = 'headerSortDown';\n\t\t\t\t} else {\n\t\t\t\t\tthis.sortOrder = 'desc';\n\t\t\t\t\th.sort = 'headerSortUp';\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\ttableSort(key: string): void {\n\t\tthis.log('table sortKey key', key);\n\t\tthis.sortKey = key;\n\t\tthis.tableHead().forEach(h => {\n\t\t\tif (h.key === key) {\n\t\t\t\tif (h.sort === 'headerSortDown') {\n\t\t\t\t\tthis.sortOrder = 'desc';\n\t\t\t\t\th.sort = 'headerSortUp';\n\t\t\t\t} else {\n\t\t\t\t\th.sort = 'headerSortDown';\n\t\t\t\t\tthis.sortOrder = 'asc';\n\t\t\t\t}\n\t\t\t\tconst emitValue: IFilterParams = {\n\t\t\t\t\tpage: 0,\n\t\t\t\t\tsort: this.sortKey,\n\t\t\t\t\torder: this.sortOrder,\n\t\t\t\t\tperPage: this.perPage(),\n\t\t\t\t\tsearchString: this.search,\n\t\t\t\t};\n\t\t\t\tthis.log('Sort changed, filter values: ', emitValue);\n\t\t\t\tthis.filterParamsChanged.emit(emitValue);\n\t\t\t} else {\n\t\t\t\th.sort = '';\n\t\t\t}\n\t\t});\n\t}\n\n\tchangePerPage($event: Event): void {\n\t\tconst perPage = parseInt(($event.target as HTMLSelectElement).value, 10) || 20;\n\t\t//this.perPage = perPage;\n\t\t// this.page = 0;\n\t\tthis.log('changePerPage', perPage);\n\t\tthis.calculatePages();\n\t\tthis.filterParamsChanged.emit({\n\t\t\tpage: 0,\n\t\t\tsort: this.sortKey,\n\t\t\torder: this.sortOrder,\n\t\t\tperPage: perPage,\n\t\t\tsearchString: this.search,\n\t\t});\n\t}\n\n\tlog(value: any, ...rest: any[]): void {\n\t\tif (this.enableLog() || localStorage.getItem('loggerEnable')) {\n\t\t\tconsole.log('%c DEBUG ', 'background: gray; color: white; font-weight: bold;', `AS Dynamic Table -> ${value}`, ...rest);\n\t\t}\n\t}\n\n\temitRow(row: Record<string, never>) {\n\t\tthis.log('edit row', row);\n\t\tthis.editRow.emit(row);\n\t}\n\n\theaderAction(actionName: string) {\n\t\tthis.log('Header action', actionName);\n\t\tthis.headerActionClicked.emit(actionName);\n\t}\n\n\trowAction(action: string, value: Record<string, never>, $event: MouseEvent) {\n\t\t$event.stopPropagation();\n\t\tthis.log('Row action', action, value);\n\t\tthis.rowActionClicked.emit({ action, value });\n\t}\n\n\tpageChange(page: number) {\n\t\tconst emitValue: IFilterParams = {\n\t\t\tpage,\n\t\t\tsort: this.sortKey,\n\t\t\torder: this.sortOrder,\n\t\t\tperPage: this.perPage(),\n\t\t\tsearchString: this.search,\n\t\t};\n\t\tthis.log('Page change, filter values: ', emitValue);\n\t\tthis.filterParamsChanged.emit(emitValue);\n\t}\n\n\tmodalClose() {\n\t\tconst hiddenKeys = this.tableHead()\n\t\t\t.filter(t => t.hidden)\n\t\t\t.map(t => t.key);\n\t\tthis.log('Modal closed, saved keys', hiddenKeys);\n\t\tthis.tableHeadChanged.emit(hiddenKeys);\n\t\tthis.bsModalRef.hide();\n\t}\n\n\t//\n\tresetValues() {\n\t\tthis.tableHeadChanged.emit(null);\n\t\tthis.bsModalRef.hide();\n\t}\n\n\t//\n\tprivate calculatePages() {\n\t\tthis.totalPages = Math.ceil(this.totalItems() / this.perPage());\n\t\tthis.log('total items/pages', this.totalItems(), this.totalPages);\n\t}\n\n\tonRowClick(row: Record<string, never>, event: MouseEvent) {\n\t\tconst columnName = (event.target as HTMLElement).closest('td')?.dataset['column'];\n\n\t\tthis.log(`onRowTRClick col: ${columnName}`, row);\n\t\tthis.log('selectableKey', this.selectableKey());\n\t\tif (this.selectableKey() !== '') {\n\t\t\tthis.selectableClickedValue = row[this.selectableKey()];\n\t\t\tthis.log('onRowTRClick', this.selectableClickedValue);\n\t\t}\n\t\tthis.rowActionClicked.emit({\n\t\t\taction: 'rowTRClicked',\n\t\t\tvalue: {\n\t\t\t\t_clickedColumn: columnName,\n\t\t\t\t...row,\n\t\t\t},\n\t\t});\n\t}\n\n\ttrackByHeadChange(index: number, item: ITableHead): string {\n\t\tconst rulesSignature = item.rowClassRules?.map(r => `${r.rule}${r.value}${r.class}`).join('|') || '';\n\t\treturn `${index}-${item.key}-${rulesSignature}`;\n\t}\n\n\tprivate deepLink() {\n\t\tif (!this.deepLinkDone) {\n\t\t\tconst searchString = this.searchString();\n\t\t\tthis.log('deep linking ', this.deepLinkDone, searchString);\n\t\t\tthis.deepLinkDone = true;\n\t\t\tif (searchString) {\n\t\t\t\tthis.search = searchString;\n\t\t\t\tthis.searchUpdate.next(searchString);\n\t\t\t}\n\t\t\tthis.manualTableSort(this.sort(), this.order());\n\t\t}\n\t}\n\n\tpushInputValues() {\n\t\tlet forEmit: { id: string; value: string | boolean; key: string }[] = [];\n\t\tif (this.inputTypeKey) {\n\t\t\tconst forEmit1 = this.tableData().map(row => ({\n\t\t\t\tid: row['id'] as string,\n\t\t\t\tvalue: row[this.inputTypeKey] as string,\n\t\t\t\tkey: this.inputTypeKey,\n\t\t\t}));\n\t\t\tforEmit = [...forEmit1];\n\t\t}\n\n\t\tif (this.checkboxTypeKey) {\n\t\t\tconst forEmit1 = this.tableData().map(row => {\n\t\t\t\tthis.log('pushInputRow', row);\n\t\t\t\treturn {\n\t\t\t\t\tid: row['id'] as string,\n\t\t\t\t\tvalue: !!row[this.checkboxTypeKey],\n\t\t\t\t\tkey: this.checkboxTypeKey,\n\t\t\t\t};\n\t\t\t});\n\t\t\tforEmit = [...forEmit, ...forEmit1];\n\t\t}\n\n\t\tthis.log('for emit', forEmit);\n\t\tthis.pushedInputValues.emit(forEmit);\n\t}\n\n\tprotected translate(key: string): string {\n\t\tif (this.translations.hasOwnProperty(key) && this.translations[key]) {\n\t\t\treturn this.translations[key];\n\t\t}\n\t\treturn key;\n\t}\n\n\ttoggleAllCheckboxes(event: Event, key: string) {\n\t\tconst checked = (event.target as HTMLInputElement).checked;\n\t\tthis.tableData().forEach(row => {\n\t\t\tlet elementById = !!document.getElementById(`checkbox_${row['id']}`);\n\t\t\tthis.log('row key', checked, key, row['id'], row[key], elementById);\n\t\t\tif (elementById) {\n\t\t\t\trow[key] = checked as never;\n\t\t\t}\n\t\t});\n\t}\n}\n","<div class=\"dynamic-table\">\n\t@if (loading()) {\n\t\t<p class=\"position-absolute text-center d-block w-100 opacity-100\">\n\t\t\t<i class=\"fa fa-spinner fa-spin fa-3x text-primary mt-5 opacity-100\"></i>\n\t\t</p>\n\t}\n\t<div\n\t\tclass=\"row mb-3 mx-0\"\n\t\t[appUnwraptag]=\"(!perPageValues() || perPageValues().length < 2) && (!headerActions() || !headerActions().length) && !enableSearch()\"\n\t\t[ngClass]=\"{\n\t\t\tloading: loading(),\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"col-md-7 d-flex d-sm-flex d-md-block justify-content-center mb-2\"\n\t\t\t[appUnwraptag]=\"(!perPageValues() || perPageValues().length < 2) && (!headerActions() || !headerActions().length) && !enableSearch()\"\n\t\t>\n\t\t\t@if (perPageValues() && perPageValues().length > 1) {\n\t\t\t\t<div class=\"d-block d-md-inline-flex me-0 me-md-3\">\n\t\t\t\t\t<div class=\"table-length\">\n\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t>{{ translate(\"SHOW\") }}\n\t\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t\t(change)=\"changePerPage($event)\"\n\t\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\t\tclass=\"form-select form-select-sm\"\n\t\t\t\t\t\t\t\tname=\"data-table-combine_length\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t@for (perp of perPageValues(); track perp) {\n\t\t\t\t\t\t\t\t\t<option [selected]=\"perPage() === perp\" value=\"{{ perp }}\">{{ perp }} </option>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t{{ translate(\"ENTRIES\") }}</label\n\t\t\t\t\t\t>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (headerActions() && headerActions().length) {\n\t\t\t\t<div\n\t\t\t\t\tclass=\"d-block d-inline-flex\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'mb-2': (!perPageValues() || perPageValues().length < 2) && !enableSearch(),\n\t\t\t\t\t}\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"dt-buttons btn-group flex-wrap\">\n\t\t\t\t\t\t@for (action of headerActions(); track action.actionName + $index) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t(click)=\"headerAction(action.actionName)\"\n\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\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\t\tid=\"header-action-{{ action.actionName }}\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t@if (action.faIcon) {\n\t\t\t\t\t\t\t\t\t\t<i class=\"fa {{ action.faIcon }}\"></i>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{{ action.label }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t\t@if (enableSearch()) {\n\t\t\t<div class=\"col-md-5 d-flex d-xl-block justify-content-center\">\n\t\t\t\t<div class=\"table-search\">\n\t\t\t\t\t<label>\n\t\t\t\t\t\t{{ translate(\"SEARCH\") }}:\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t(ngModelChange)=\"this.searchUpdate.next($event)\"\n\t\t\t\t\t\t\t[(ngModel)]=\"search\"\n\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\tclass=\"form-control form-control-sm\"\n\t\t\t\t\t\t\tid=\"table-search\"\n\t\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t\t/></label>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t</div>\n\t<div\n\t\tclass=\"table-responsive\"\n\t\t[ngClass]=\"{\n\t\t\tloading: loading(),\n\t\t}\"\n\t>\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@if (rowCounter()) {\n\t\t\t\t\t\t<th class=\"text-end small-column\"> {{ translate(\"NR\") }}</th>\n\t\t\t\t\t}\n\t\t\t\t\t@for (head of tableHead(); track head.key) {\n\t\t\t\t\t\t@if (!head.hidden) {\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t(click)=\"head.type !== 'checkbox' && !head.notSortable && tableSort(head.key)\"\n\t\t\t\t\t\t\t\t[ngClass]=\"head.sort\"\n\t\t\t\t\t\t\t\tclass=\"header {{ head.notSortable ? '' : 'sortable' }} {{ head.cellAlign }}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t@if (head.type === \"checkbox\") {\n\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" (change)=\"toggleAllCheckboxes($event, head.key)\" (click)=\"$event.stopPropagation()\" />\n\t\t\t\t\t\t\t\t\t} @else {\n\t\t\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\t\t@if (!head.notSortable) {\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"fa\"></span>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t@if (tableHeadStorage() || (rowActions() && rowActions().length)) {\n\t\t\t\t\t\t<th class=\"header small-column text-center p-0\" data-width=\"50\">\n\t\t\t\t\t\t\t@if (tableHeadStorage()) {\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t(click)=\"openTableLayoutModal()\"\n\t\t\t\t\t\t\t\t\taria-controls=\"basic-link-dropdown\"\n\t\t\t\t\t\t\t\t\tclass=\"menu-button toggle-white big-toggle dropdown-menu-link\"\n\t\t\t\t\t\t\t\t></a>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</th>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t</thead>\n\n\t\t\t@if (tableData().length) {\n\t\t\t\t<tbody>\n\t\t\t\t\t@for (row of tableData(); track row[\"id\"] || $index) {\n\t\t\t\t\t\t<tr\n\t\t\t\t\t\t\tclass=\"{{ row['rowClass'] || '' }}\"\n\t\t\t\t\t\t\t(click)=\"onRowClick(row, $event)\"\n\t\t\t\t\t\t\t[className]=\"selectableClickedValue === row[selectableKey()] ? selectableClass() : ''\"\n\t\t\t\t\t\t\t[attr.data-id]=\"row['id']\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t@if (rowCounter()) {\n\t\t\t\t\t\t\t\t<th class=\"text-end\"> {{ $index + counter }}.</th>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@for (head of tableHead(); track head.key) {\n\t\t\t\t\t\t\t\t@if (!head.hidden) {\n\t\t\t\t\t\t\t\t\t<td [attr.data-column]=\"head.key\" class=\"header text-nowrap {{ head.cellAlign }}\">\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"checkbox\") {\n\t\t\t\t\t\t\t\t\t\t\t@if (row | visibleRowAction: head.visibilityFieldRule : enableLog()) {\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t} @else if (head.visibilityFieldRule?.disabled) {\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (!head.type) {\n\t\t\t\t\t\t\t\t\t\t\t{{ row[head.key] }}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"html\") {\n\t\t\t\t\t\t\t\t\t\t\t<span [innerHTML]=\"row[head.key] | safeLimitedHtml\"></span>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"badge\") {\n\t\t\t\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\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"date\") {\n\t\t\t\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\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"datetime\") {\n\t\t\t\t\t\t\t\t\t\t\t{{ row[head.key] | date: (head.dateFormat ? head.dateFormat : \"dd.MM.yyyy HH:mm:ss\") }}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"image\") {\n\t\t\t\t\t\t\t\t\t\t\t@if (row[head.key] && row[head.key] !== \"\") {\n\t\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\t\talt=\"img\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[attr.src]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"{{ head?.imageSize?.width || 50 }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"{{ head?.imageSize?.height || 50 }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"url\") {\n\t\t\t\t\t\t\t\t\t\t\t<a [attr.href]=\"row[head.key]\" target=\"{{ head?.urlTarget || '_blank' }}\">{{ row[head.key] }}</a>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"slider\") {\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\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\t\t\t[checked]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"switched\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"check-{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"check-{{ row['id'] }}\"></label>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"input\") {\n\t\t\t\t\t\t\t\t\t\t\t<input [(ngModel)]=\"row[head.key]\" type=\"text\" name=\"input_{{ row['id'] }}\" />\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if (tableHeadStorage() || (rowActions() && rowActions().length)) {\n\t\t\t\t\t\t\t\t<td class=\"small-column\">\n\t\t\t\t\t\t\t\t\t<div class=\"menu text-end\">\n\t\t\t\t\t\t\t\t\t\t@for (action of rowActions(); track (action.label || \"\") + \"_\" + $index) {\n\t\t\t\t\t\t\t\t\t\t\t@if (row | visibleRowAction: action.visibilityRule : enableLog()) {\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\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\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\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\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span><i class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t} @else if (action.visibilityRule?.disabled) {\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\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\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span><i class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t}\n\t\t\t\t\t@if (inputTypeKey || checkboxTypeKey) {\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t[colSpan]=\"\n\t\t\t\t\t\t\t\t\ttableHead().length - 1 + (rowCounter() ? 1 : 0) + (tableHeadStorage() || (rowActions() && rowActions().length) ? 1 : 0)\n\t\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<button (click)=\"pushInputValues()\" class=\"btn buttons-copy buttons-html5 btn-sm ms-2 btn-secondary\">\n\t\t\t\t\t\t\t\t\t{{ translate(formSubmitLabel()) }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t}\n\t\t\t\t</tbody>\n\t\t\t} @else {\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t[colSpan]=\"\n\t\t\t\t\t\t\t\ttableHead().length - 1 + (rowCounter() ? 1 : 0) + (tableHeadStorage() || (rowActions() && rowActions().length) ? 1 : 0)\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div class=\"alert alert-light\" role=\"alert\">\n\t\t\t\t\t\t\t\t<i class=\"fa fa-exclamation-triangle\"></i> {{ translate(\"NO_DATA_FOUND\") }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t}\n\t\t</table>\n\t</div>\n\t@if (totalPages > 1) {\n\t\t<as-lib-pagination\n\t\t\t(pageChange)=\"pageChange($event)\"\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}\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":["i1"],"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/pipes/row-action-visible/visible-row-action.pipe.ts","../../../projects/as-lib-generic-table/src/lib/pipes/safe-limited-html/safe-limited-html.pipe.ts","../../../projects/as-lib-generic-table/src/lib/directives/unwraptag-tag/unwraptag-tag.directive.ts","../../../projects/as-lib-generic-table/src/lib/i18n/en.ts","../../../projects/as-lib-generic-table/src/lib/i18n/cn.ts","../../../projects/as-lib-generic-table/src/lib/i18n/ja.ts","../../../projects/as-lib-generic-table/src/lib/i18n/de.ts","../../../projects/as-lib-generic-table/src/lib/component/modal-confirmation.component.ts","../../../projects/as-lib-generic-table/src/lib/component/modal-confirmation.component.html","../../../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\tprovidedIn: 'root',\n})\nexport class AsLibGenericTableService {\n\tconstructor() {}\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n\tselector: 'tooltip',\n\tstandalone: 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\tApplicationRef,\n\tComponentRef,\n\tDirective,\n\tElementRef,\n\tEmbeddedViewRef,\n\tHostListener,\n\tInjector,\n\tInput,\n\tViewContainerRef,\n} from '@angular/core';\nimport { TooltipComponent } from '../component/tooltip.component';\n\n@Directive({\n\tselector: '[tooltip]',\n\tstandalone: true,\n})\nexport class TooltipDirective {\n\t@Input() tooltip = '';\n\n\tprivate componentRef: ComponentRef<any> | null = null;\n\n\tconstructor(\n\t\tprivate elementRef: ElementRef,\n\t\tprivate appRef: ApplicationRef,\n\t\tprivate viewContainerRef: ViewContainerRef,\n\t) {}\n\n\t@HostListener('mouseenter')\n\tonMouseEnter(): void {\n\t\tif (this.componentRef === null) {\n\t\t\tthis.componentRef = this.viewContainerRef.createComponent(TooltipComponent);\n\t\t\tthis.componentRef.instance.text = this.tooltip;\n\t\t\tthis.setTooltipComponentProperties();\n\t\t}\n\t}\n\n\t@HostListener('mouseleave')\n\tonMouseLeave(): void {\n\t\tthis.destroy();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.destroy();\n\t}\n\n\tdestroy(): void {\n\t\tif (this.componentRef !== null) {\n\t\t\tthis.appRef.detachView(this.componentRef.hostView);\n\t\t\tthis.componentRef.destroy();\n\t\t\tthis.componentRef = null;\n\t\t}\n\t}\n\n\tprivate setTooltipComponentProperties() {\n\t\tif (this.componentRef !== null) {\n\t\t\tthis.componentRef.instance.tooltip = this.tooltip;\n\t\t\tconst { left, right, bottom } = this.elementRef.nativeElement.getBoundingClientRect();\n\t\t\tthis.componentRef.instance.left = (right - left) / 2 + left;\n\t\t\tthis.componentRef.instance.top = bottom;\n\t\t}\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'visibleRowAction',\n})\nexport class VisibleRowActionPipe implements PipeTransform {\n\ttransform(row: any, visibilityRule: any, enableLog: boolean): boolean {\n\t\tif (!visibilityRule || !visibilityRule.key) {\n\t\t\treturn true;\n\t\t}\n\t\tconst targetValue = row[visibilityRule.key];\n\t\t// if (enableLog) {\n\t\t// console.log('AS Dynamic Table -> Visibility targetValue', targetValue, visibilityRule.rule, visibilityRule.value)\n\t\t// }\n\t\treturn this.shouldApplyRule(targetValue, visibilityRule.rule, visibilityRule.value);\n\t}\n\n\tshouldApplyRule(targetValue: any, rule: string, value: any): boolean {\n\t\t// Your existing logic for applying rules\n\t\tswitch (rule) {\n\t\t\tcase '>':\n\t\t\t\treturn targetValue > value;\n\t\t\tcase '<':\n\t\t\t\treturn targetValue < value;\n\t\t\tcase '=':\n\t\t\t\treturn targetValue === value;\n\t\t\tcase '<>':\n\t\t\t\treturn targetValue !== value;\n\t\t\tcase 'in':\n\t\t\t\tif (Array.isArray(targetValue)) {\n\t\t\t\t\treturn targetValue.includes(value);\n\t\t\t\t}\n\t\t\t\tif (typeof targetValue === 'string') {\n\t\t\t\t\treturn targetValue.includes(value);\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({ name: 'safeLimitedHtml' })\nexport class SafeLimitedHtmlPipe implements PipeTransform {\n\tconstructor(private sanitizer: DomSanitizer) {}\n\n\ttransform(value: string): SafeHtml {\n\t\tif (!value) return '';\n\n\t\t// List of allowed tags\n\t\tconst allowedTags = ['br', 'span', 'p', 'strong', 'em', 'ul', 'ol', 'li', 'i'];\n\n\t\t// Create regex pattern to remove all tags except allowed ones\n\t\tconst pattern = new RegExp(`<(?!\\/?(${allowedTags.join('|')})\\s*\\/?)[^>]+>`, 'gi');\n\n\t\tconst sanitized = value.replace(pattern, '');\n\t\treturn this.sanitizer.bypassSecurityTrustHtml(sanitized);\n\t}\n}\n","import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n\tselector: '[appUnwraptag]',\n\tstandalone: true,\n})\nexport class UnwrapTagDirective implements AfterViewInit {\n\t@Input() appUnwraptag = true;\n\n\tconstructor(private el: ElementRef) {}\n\n\tngAfterViewInit() {\n\t\tif (!this.appUnwraptag) {\n\t\t\treturn;\n\t\t}\n\t\t// get the element's parent node\n\t\tconst parent = this.el.nativeElement.parentNode;\n\n\t\t// move all children out of the element\n\t\twhile (this.el.nativeElement.firstChild) {\n\t\t\tparent.insertBefore(this.el.nativeElement.firstChild, this.el.nativeElement);\n\t\t}\n\t\t// remove the empty element\n\t\tparent.removeChild(this.el.nativeElement);\n\t}\n}\n\n/*\nExample of use:\n<app-store-widget appUnwraptag [widgetStore]=\"storeInstance\"></app-store-widget>\nthe result will be the inner html of app-store-widget.\n*/\n","export const EN_TRANSLATIONS: Record<string, string> = {\n\tNR: 'Nr.',\n\tNO_DATA_FOUND: 'No data found',\n\tSEARCH: 'Search',\n\tSHOW: 'Show',\n\tENTRIES: 'Entries',\n\tEDIT_TABLE_HEADER: 'Edit table header',\n\tMANDATORY_FIELDS: 'Mandatory field for the view',\n\tRESET: 'Reset',\n\tCLOSE: 'Close',\n\tSAVE: 'Save',\n};\n","export const CN_TRANSLATIONS: Record<string, string> = {\n\tNR: '序号',\n\tNO_DATA_FOUND: '未找到数据',\n\tSEARCH: '搜索',\n\tSHOW: '显示',\n\tENTRIES: '条目',\n\tEDIT_TABLE_HEADER: '编辑表头',\n\tMANDATORY_FIELDS: '视图必填字段',\n\tRESET: '重置',\n\tCLOSE: '关闭',\n\tSAVE: '保存',\n};\n","export const JA_TRANSLATIONS: Record<string, string> = {\n\tNR: '番号',\n\tNO_DATA_FOUND: 'データが見つかりません',\n\tSEARCH: '検索',\n\tSHOW: '表示',\n\tENTRIES: '件',\n\tEDIT_TABLE_HEADER: 'テーブルヘッダーを編集',\n\tMANDATORY_FIELDS: 'ビューに必須のフィールド',\n\tRESET: 'リセット',\n\tCLOSE: '閉じる',\n\tSAVE: '保存',\n};\n","export const DE_TRANSLATIONS: Record<string, string> = {\n\tNR: 'Nr.',\n\tNO_DATA_FOUND: 'Keine Daten gefunden',\n\tSEARCH: 'Suchen',\n\tSHOW: 'Anzeigen',\n\tENTRIES: 'Einträge',\n\tEDIT_TABLE_HEADER: 'Tabellenkopf bearbeiten',\n\tMANDATORY_FIELDS: 'Pflichtfeld für die Ansicht',\n\tRESET: 'Zurücksetzen',\n\tCLOSE: 'Schließen',\n\tSAVE: 'Speichern',\n};\n","// TypeScript\nimport { ChangeDetectionStrategy, Component, effect, input, output, signal } from '@angular/core';\nimport { ITableHead } from '../exports';\nimport { BaseModalComponent } from '@agentsmith.bgd/as-components';\n\n@Component({\n\tselector: 'app-modal-confirmation',\n\ttemplateUrl: 'modal-confirmation.component.html',\n\timports: [],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ModalConfirmationComponent extends BaseModalComponent {\n\tmandatoryFields = input('');\n\ttableHead = input<ITableHead[]>([]);\n\treset = input('');\n\tsave = input('');\n\n\tvalues = signal<Record<string, any>>({});\n\n\tinit = false;\n\n\tconstructor() {\n\t\tsuper();\n\t\teffect(() => {\n\t\t\tconsole.log('tableHead changed:', this.tableHead(), this.title(), this.mandatoryFields(), this.reset(), this.save());\n\t\t});\n\n\t\teffect(() => {\n\t\t\tconst th = this.tableHead(); // just read\n\t\t\tif (th.length > 0 && !this.init) {\n\t\t\t\tthis.initializeValues(th);\n\t\t\t\tthis.init = true;\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate initializeValues(th: ITableHead[]): void {\n\t\tthis.values.set(Object.fromEntries(th.map(t => [t.key, !t.hidden])));\n\t\tconsole.log('values initialized:', this.values());\n\t}\n\n\tprotected change(key: string) {\n\t\tthis.values.update(current => ({\n\t\t\t...current,\n\t\t\t[key]: !current[key],\n\t\t}));\n\t\tconsole.log('Toggling key:', key, this.values());\n\t}\n\n\tprotected resetValues() {\n\t\tthis.confirm({ action: 'reset', payload: null });\n\t}\n\n\tprotected saveMe() {\n\t\tthis.confirm({ action: 'save', payload: this.values() });\n\t}\n}\n","<div class=\"modal-confirmation\">\n\t<div class=\"modal-header\">\n\t\t<h4 class=\"modal-title pull-left\">{{ title() }}</h4>\n\t\t<!-- <button (click)=\"modalClose()\" aria-label=\"Close\" class=\"btn-close close pull-right\" type=\"button\">-->\n\t\t<!-- <span aria-hidden=\"true\" class=\"visually-hidden\">&times;</span>-->\n\t\t<!-- </button>-->\n\t</div>\n\t<div class=\"modal-body\">\n\t\t@for (td of tableHead(); track td.key) {\n\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t<input\n\t\t\t\t\t(change)=\"change(td.key)\"\n\t\t\t\t\t[checked]=\"!td.hidden\"\n\t\t\t\t\t[disabled]=\"td.mandatory\"\n\t\t\t\t\t[readOnly]=\"td.mandatory\"\n\t\t\t\t\tclass=\"form-check-input\"\n\t\t\t\t\tid=\"{{ td.key }}\"\n\t\t\t\t\trole=\"switch\"\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\tvalue=\"true\"\n\t\t\t\t/>\n\t\t\t\t<label class=\"form-check-label\" for=\"{{ td.key }}\">{{ td.label }} {{ td.mandatory ? \"*\" : \"\" }}</label>\n\t\t\t</div>\n\t\t}\n\t\t<small class=\"small text-muted pt-2\">* {{ mandatoryFields() }}</small>\n\t</div>\n\t<div class=\"modal-footer\">\n\t\t<button (click)=\"resetValues()\" class=\"btn btn-outline-secondary me-auto\" type=\"button\">{{ reset() }} </button>\n\t\t<button (click)=\"saveMe()\" class=\"btn btn-primary\" type=\"button\">{{ save() }}</button>\n\t</div>\n</div>\n","import { Component, effect, Inject, inject, InjectionToken, input, Optional, output, TemplateRef } from '@angular/core';\nimport { IActionButton, IFilterParams, ITableHead } from './exports';\nimport { debounceTime, distinctUntilChanged, Observable, of, Subject } from 'rxjs';\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';\nimport { VisibleRowActionPipe } from './pipes/row-action-visible/visible-row-action.pipe';\nimport { SafeLimitedHtmlPipe } from './pipes/safe-limited-html/safe-limited-html.pipe';\nimport { UnwrapTagDirective } from './directives/unwraptag-tag/unwraptag-tag.directive';\nimport { EN_TRANSLATIONS } from './i18n/en';\nimport { CN_TRANSLATIONS } from './i18n/cn';\nimport { JA_TRANSLATIONS } from './i18n/ja';\nimport { DE_TRANSLATIONS } from './i18n/de';\nimport { ModalService, ResultPayload } from '@agentsmith.bgd/as-components';\nimport { ModalConfirmationComponent } from './component/modal-confirmation.component';\n\nexport const LANG_TABLE = new InjectionToken('env.LANG_TABLE');\n\n@Component({\n\tselector: 'as-lib-generic-table',\n\timports: [\n\t\tCommonModule,\n\t\tFormsModule,\n\t\tTooltipDirective,\n\t\tAsLibPaginationComponent,\n\t\tVisibleRowActionPipe,\n\t\tSafeLimitedHtmlPipe,\n\t\tUnwrapTagDirective,\n\t],\n\tproviders: [],\n\ttemplateUrl: './as-lib-generic-table.component.html',\n\tstyleUrl: './as-lib-generic-table.component.scss',\n\tstandalone: true,\n})\nexport class AsLibGenericTableComponent {\n\tloading = input(false);\n\tstriped = input(false);\n\tbordered = input(false);\n\thovered = input(false);\n\tenableSearch = input(true);\n\trowCounter = input(false);\n\tenableLog = input(false);\n\tperPage = input(10);\n\ttableHead = input<ITableHead[]>([]);\n\ttableData = input<Record<string, never>[]>([]);\n\ttableHeadStorage = input<string>('');\n\tperPageValues = input<number[]>([10, 20, 50, 100]);\n\theaderActions = input<IActionButton[]>([]);\n\trowActions = input<IActionButton[]>([]);\n\ttableStyle = input<'' | 'table-light' | 'table-dark'>('');\n\theadStyle = input<\n\t\t| 'table-default'\n\t\t| 'table-primary'\n\t\t| 'table-secondary'\n\t\t| 'table-success'\n\t\t| 'table-danger'\n\t\t| 'table-warning'\n\t\t| 'table-info'\n\t\t| 'table-light'\n\t\t| 'table-dark'\n\t>('table-default');\n\tpaginationAlignment = input<'' | 'justify-content-center' | 'justify-content-end'>('justify-content-end');\n\ttotalItems = input(0);\n\n\tpage = input(0);\n\n\tselectableKey = input<string>('');\n\tselectableClass = input<\n\t\t'table-primary' | 'table-secondary' | 'table-success' | 'table-danger' | 'table-warning' | 'table-info' | 'table-light'\n\t>('table-secondary');\n\n\tsearchString = input<string>();\n\tsort = input<string>('name');\n\torder = input<'asc' | 'desc'>('asc');\n\tformSubmitLabel = input<string>('SAVE');\n\n\tavailableTranslations: Record<string, Record<string, string>> = {\n\t\ten: EN_TRANSLATIONS,\n\t\tcn: CN_TRANSLATIONS,\n\t\tja: JA_TRANSLATIONS,\n\t\tde: DE_TRANSLATIONS,\n\t};\n\ttranslations: Record<string, string>;\n\tprivate currentLanguage = 'en';\n\n\tfilterParamsChanged = output<IFilterParams>();\n\teditRow = output<Record<string, never>>();\n\tsliderClicked = output<Record<string, never>>();\n\theaderActionClicked = output<string>();\n\trowActionClicked = output<{ action: string; value: any }>();\n\ttableHeadChanged = output<string[] | null>();\n\tpushedInputValues = output<{ id: string; value: string | boolean; key: string }[]>();\n\n\tsearchUpdate: Subject<string> = new Subject();\n\tsearch = '';\n\ttotalPages = 0;\n\tcounter = 0;\n\tprivate sortKey!: string;\n\tprivate sortOrder: 'asc' | 'desc' = 'asc';\n\n\tselectableClickedValue = '';\n\n\t//private modalService: BsModalService;// = Inject(BsModalService)\n\tprivate modalService = inject(ModalService);\n\tbsModalRef: any;\n\n\tprivate deepLinkDone = false;\n\tinputTypeKey!: string;\n\tcheckboxTypeKey!: string;\n\n\tconstructor(@Optional() @Inject(LANG_TABLE) private language$: Observable<string>) {\n\t\tthis.translations = this.availableTranslations['en'];\n\t\teffect(() => {\n\t\t\tconst p = this.page();\n\t\t\tconst totalItems = this.totalItems();\n\t\t\tconst perPage = this.perPage();\n\t\t\tthis.counter = p * perPage + 1;\n\t\t\tthis.log(`The count is totalItems, page, perpage, and counter:`, totalItems, p, perPage, this.counter);\n\t\t\tthis.calculatePages();\n\t\t\tthis.badgeClassRules();\n\t\t\tthis.rowClassRules();\n\t\t\tthis.init();\n\t\t\tthis.deepLink();\n\t\t\tthis.inputTypeKey = this.tableHead().find(t => t.type === 'input')?.key || '';\n\t\t\tthis.checkboxTypeKey = this.tableHead().find(t => t.type === 'checkbox')?.key || '';\n\t\t\t(language$ || of('en')).subscribe(language => {\n\t\t\t\tthis.currentLanguage = language;\n\t\t\t\tthis.log('Language changed to:', language);\n\t\t\t\tthis.translations = this.availableTranslations[language] || this.availableTranslations['en'];\n\t\t\t});\n\t\t});\n\t}\n\n\tinit(): void {\n\t\tif (this.tableHeadStorage()) {\n\t\t\tconst storage = localStorage.getItem(this.tableHeadStorage());\n\t\t\tif (storage) {\n\t\t\t\tconst hidden: string[] = (JSON.parse(storage) as string[]) || [];\n\t\t\t\tthis.tableHead().forEach(t => (t.hidden = hidden.includes(t.key)));\n\t\t\t} else {\n\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\tthis.tableHeadStorage(),\n\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\tthis.tableHead()\n\t\t\t\t\t\t\t.filter(t => t.hidden)\n\t\t\t\t\t\t\t.map(t => t.key),\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tthis.sortKey = this.tableHead().find(h => h.key === this.sort())?.key || this.tableHead()[0].key;\n\t\tthis.log('totalPages', this.totalPages);\n\t\tthis.log('Table head', this.tableHead());\n\t\tthis.log('Table data', this.tableData());\n\t\tthis.log('Row actions', this.rowActions());\n\t\t// this.log('rows', rows);\n\t\tthis.searchUpdate.pipe(debounceTime(500), distinctUntilChanged()).subscribe(_ => {\n\t\t\tthis.log('search', this.search);\n\t\t\tconst emitValue: IFilterParams = {\n\t\t\t\tpage: 0,\n\t\t\t\tsort: this.sortKey,\n\t\t\t\torder: this.sortOrder,\n\t\t\t\tperPage: this.perPage(),\n\t\t\t\tsearchString: this.search,\n\t\t\t};\n\t\t\tthis.log('Search value change, sortKey values: ', emitValue);\n\t\t\tthis.filterParamsChanged.emit(emitValue);\n\t\t});\n\n\t\tif (!this.perPageValues().includes(this.perPage())) {\n\t\t\tthrow new Error('Per page value invalid: ' + this.perPage());\n\t\t}\n\t\tthis.log('Loading', this.loading());\n\t}\n\n\tprivate badgeClassRules() {\n\t\tthis.applyRules('badgeClassRules', key => `${key}Badge`);\n\t}\n\n\tprivate rowClassRules() {\n\t\tthis.applyRules('rowClassRules', () => 'rowClass');\n\t}\n\n\tprivate applyRules(ruleKey: 'badgeClassRules' | 'rowClassRules', targetKeyFn: (key: string) => string) {\n\t\tconst tableData = this.tableData();\n\n\t\tthis.tableHead().forEach(head => {\n\t\t\tconst rules = head[ruleKey] || [];\n\t\t\trules.forEach(rule => {\n\t\t\t\tconst { key } = head;\n\t\t\t\tconst { rule: condition, value, class: cl } = rule;\n\n\t\t\t\ttableData.forEach(row => {\n\t\t\t\t\tif (this.shouldApplyRule(row[key], condition, value)) {\n\t\t\t\t\t\trow[targetKeyFn(key)] = cl as never;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate shouldApplyRule(cellValue: any, condition: string, value: any): boolean {\n\t\tswitch (condition) {\n\t\t\tcase '=':\n\t\t\t\treturn cellValue === value;\n\t\t\tcase '<>':\n\t\t\t\treturn cellValue !== value;\n\t\t\tcase '>':\n\t\t\t\treturn cellValue > value;\n\t\t\tcase '<':\n\t\t\t\treturn cellValue < value;\n\t\t\tcase 'in':\n\t\t\t\treturn cellValue.includes(value);\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\n\topenTableLayoutModal(): void {\n\t\tthis.log('Open layout');\n\t\t// @ts-ignore\n\t\tthis.bsModalRef = this.modalService.show(ModalConfirmationComponent, {\n\t\t\ttitle: this.translate('EDIT_TABLE_HEADER'),\n\t\t\tshowClose: true,\n\t\t\tsize: 'sm',\n\t\t\tdata: {\n\t\t\t\tmandatoryFields: this.translate('MANDATORY_FIELDS'),\n\t\t\t\treset: this.translate('RESET'),\n\t\t\t\tsave: this.translate('SAVE'),\n\t\t\t\ttableHead: this.tableHead(),\n\t\t\t},\n\t\t});\n\n\t\tthis.bsModalRef.onClose.subscribe({\n\t\t\tnext: (result: ResultPayload) => {\n\t\t\t\tthis.log('Modal closed', result);\n\t\t\t\tif (result?.action === 'save') {\n\t\t\t\t\tthis.tableHead().forEach((t: ITableHead) => {\n\t\t\t\t\t\tt.hidden = !(result.payload as Record<string, boolean>)[t.key];\n\t\t\t\t\t});\n\t\t\t\t\tthis.tableHeadStorage &&\n\t\t\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\t\t\tthis.tableHeadStorage(),\n\t\t\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\t\t\tthis.tableHead()\n\t\t\t\t\t\t\t\t\t.filter(t => t.hidden)\n\t\t\t\t\t\t\t\t\t.map(t => t.key),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\tconst hiddenKeys = this.tableHead()\n\t\t\t\t\t\t.filter(t => t.hidden)\n\t\t\t\t\t\t.map(t => t.key);\n\t\t\t\t\tthis.log('Modal closed, saved keys', hiddenKeys);\n\t\t\t\t\tthis.tableHeadChanged.emit(hiddenKeys);\n\t\t\t\t} else if (result?.action === 'reset') {\n\t\t\t\t\tthis.tableHeadChanged.emit(null);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t}\n\n\thandleTHchange(key: string): void {\n\t\tthis.log('change triggered', key);\n\t\tthis.tableHead().forEach(t => {\n\t\t\tif (t.key === key) {\n\t\t\t\tt.hidden = !t.hidden;\n\t\t\t\tthis.tableHeadStorage &&\n\t\t\t\t\tlocalStorage.setItem(\n\t\t\t\t\t\tthis.tableHeadStorage(),\n\t\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\t\tthis.tableHead()\n\t\t\t\t\t\t\t\t.filter(t => t.hidden)\n\t\t\t\t\t\t\t\t.map(t => t.key),\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\tmanualTableSort(key: string, order: string) {\n\t\tthis.log('Default sort key/order', key, order);\n\t\tthis.tableHead().forEach(h => {\n\t\t\tif (h.key === key) {\n\t\t\t\tif (order === 'DESC') {\n\t\t\t\t\tthis.sortOrder = 'asc';\n\t\t\t\t\th.sort = 'headerSortDown';\n\t\t\t\t} else {\n\t\t\t\t\tthis.sortOrder = 'desc';\n\t\t\t\t\th.sort = 'headerSortUp';\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\ttableSort(key: string): void {\n\t\tthis.log('table sortKey key', key);\n\t\tthis.sortKey = key;\n\t\tthis.tableHead().forEach(h => {\n\t\t\tif (h.key === key) {\n\t\t\t\tif (h.sort === 'headerSortDown') {\n\t\t\t\t\tthis.sortOrder = 'desc';\n\t\t\t\t\th.sort = 'headerSortUp';\n\t\t\t\t} else {\n\t\t\t\t\th.sort = 'headerSortDown';\n\t\t\t\t\tthis.sortOrder = 'asc';\n\t\t\t\t}\n\t\t\t\tconst emitValue: IFilterParams = {\n\t\t\t\t\tpage: 0,\n\t\t\t\t\tsort: this.sortKey,\n\t\t\t\t\torder: this.sortOrder,\n\t\t\t\t\tperPage: this.perPage(),\n\t\t\t\t\tsearchString: this.search,\n\t\t\t\t};\n\t\t\t\tthis.log('Sort changed, filter values: ', emitValue);\n\t\t\t\tthis.filterParamsChanged.emit(emitValue);\n\t\t\t} else {\n\t\t\t\th.sort = '';\n\t\t\t}\n\t\t});\n\t}\n\n\tchangePerPage($event: Event): void {\n\t\tconst perPage = parseInt(($event.target as HTMLSelectElement).value, 10) || 20;\n\t\t//this.perPage = perPage;\n\t\t// this.page = 0;\n\t\tthis.log('changePerPage', perPage);\n\t\tthis.calculatePages();\n\t\tthis.filterParamsChanged.emit({\n\t\t\tpage: 0,\n\t\t\tsort: this.sortKey,\n\t\t\torder: this.sortOrder,\n\t\t\tperPage: perPage,\n\t\t\tsearchString: this.search,\n\t\t});\n\t}\n\n\tlog(value: any, ...rest: any[]): void {\n\t\tif (this.enableLog() || localStorage.getItem('loggerEnable')) {\n\t\t\tconsole.log('%c DEBUG ', 'background: gray; color: white; font-weight: bold;', `AS Dynamic Table -> ${value}`, ...rest);\n\t\t}\n\t}\n\n\temitRow(row: Record<string, never>) {\n\t\tthis.log('edit row', row);\n\t\tthis.editRow.emit(row);\n\t}\n\n\theaderAction(actionName: string) {\n\t\tthis.log('Header action', actionName);\n\t\tthis.headerActionClicked.emit(actionName);\n\t}\n\n\trowAction(action: string, value: Record<string, never>, $event: MouseEvent) {\n\t\t$event.stopPropagation();\n\t\tthis.log('Row action', action, value);\n\t\tthis.rowActionClicked.emit({ action, value });\n\t}\n\n\tpageChange(page: number) {\n\t\tconst emitValue: IFilterParams = {\n\t\t\tpage,\n\t\t\tsort: this.sortKey,\n\t\t\torder: this.sortOrder,\n\t\t\tperPage: this.perPage(),\n\t\t\tsearchString: this.search,\n\t\t};\n\t\tthis.log('Page change, filter values: ', emitValue);\n\t\tthis.filterParamsChanged.emit(emitValue);\n\t}\n\n\tmodalClose() {\n\t\tconst hiddenKeys = this.tableHead()\n\t\t\t.filter(t => t.hidden)\n\t\t\t.map(t => t.key);\n\t\tthis.log('Modal closed, saved keys', hiddenKeys);\n\t\tthis.tableHeadChanged.emit(hiddenKeys);\n\t\tthis.bsModalRef.hide();\n\t}\n\n\t//\n\tresetValues() {\n\t\tthis.tableHeadChanged.emit(null);\n\t\tthis.bsModalRef.hide();\n\t}\n\n\t//\n\tprivate calculatePages() {\n\t\tthis.totalPages = Math.ceil(this.totalItems() / this.perPage());\n\t\tthis.log('total items/pages', this.totalItems(), this.totalPages);\n\t}\n\n\tonRowClick(row: Record<string, never>, event: MouseEvent) {\n\t\tconst columnName = (event.target as HTMLElement).closest('td')?.dataset['column'];\n\n\t\tthis.log(`onRowTRClick col: ${columnName}`, row);\n\t\tthis.log('selectableKey', this.selectableKey());\n\t\tif (this.selectableKey() !== '') {\n\t\t\tthis.selectableClickedValue = row[this.selectableKey()];\n\t\t\tthis.log('onRowTRClick', this.selectableClickedValue);\n\t\t}\n\t\tthis.rowActionClicked.emit({\n\t\t\taction: 'rowTRClicked',\n\t\t\tvalue: {\n\t\t\t\t_clickedColumn: columnName,\n\t\t\t\t...row,\n\t\t\t},\n\t\t});\n\t}\n\n\ttrackByHeadChange(index: number, item: ITableHead): string {\n\t\tconst rulesSignature = item.rowClassRules?.map(r => `${r.rule}${r.value}${r.class}`).join('|') || '';\n\t\treturn `${index}-${item.key}-${rulesSignature}`;\n\t}\n\n\tprivate deepLink() {\n\t\tif (!this.deepLinkDone) {\n\t\t\tconst searchString = this.searchString();\n\t\t\tthis.log('deep linking ', this.deepLinkDone, searchString);\n\t\t\tthis.deepLinkDone = true;\n\t\t\tif (searchString) {\n\t\t\t\tthis.search = searchString;\n\t\t\t\tthis.searchUpdate.next(searchString);\n\t\t\t}\n\t\t\tthis.manualTableSort(this.sort(), this.order());\n\t\t}\n\t}\n\n\tpushInputValues() {\n\t\tlet forEmit: { id: string; value: string | boolean; key: string }[] = [];\n\t\tif (this.inputTypeKey) {\n\t\t\tconst forEmit1 = this.tableData().map(row => ({\n\t\t\t\tid: row['id'] as string,\n\t\t\t\tvalue: row[this.inputTypeKey] as string,\n\t\t\t\tkey: this.inputTypeKey,\n\t\t\t}));\n\t\t\tforEmit = [...forEmit1];\n\t\t}\n\n\t\tif (this.checkboxTypeKey) {\n\t\t\tconst forEmit1 = this.tableData().map(row => {\n\t\t\t\tthis.log('pushInputRow', row);\n\t\t\t\treturn {\n\t\t\t\t\tid: row['id'] as string,\n\t\t\t\t\tvalue: !!row[this.checkboxTypeKey],\n\t\t\t\t\tkey: this.checkboxTypeKey,\n\t\t\t\t};\n\t\t\t});\n\t\t\tforEmit = [...forEmit, ...forEmit1];\n\t\t}\n\n\t\tthis.log('for emit', forEmit);\n\t\tthis.pushedInputValues.emit(forEmit);\n\t}\n\n\tprotected translate(key: string): string {\n\t\tif (this.translations.hasOwnProperty(key) && this.translations[key]) {\n\t\t\treturn this.translations[key];\n\t\t}\n\t\treturn key;\n\t}\n\n\ttoggleAllCheckboxes(event: Event, key: string) {\n\t\tconst checked = (event.target as HTMLInputElement).checked;\n\t\tthis.tableData().forEach(row => {\n\t\t\tlet elementById = !!document.getElementById(`checkbox_${row['id']}`);\n\t\t\tthis.log('row key', checked, key, row['id'], row[key], elementById);\n\t\t\tif (elementById) {\n\t\t\t\trow[key] = checked as never;\n\t\t\t}\n\t\t});\n\t}\n}\n","<div class=\"dynamic-table\">\n\t@if (loading()) {\n\t\t<p class=\"position-absolute text-center d-block w-100 opacity-100\">\n\t\t\t<i class=\"fa fa-spinner fa-spin fa-3x text-primary mt-5 opacity-100\"></i>\n\t\t</p>\n\t}\n\t<div\n\t\tclass=\"row mb-3 mx-0\"\n\t\t[appUnwraptag]=\"(!perPageValues() || perPageValues().length < 2) && (!headerActions() || !headerActions().length) && !enableSearch()\"\n\t\t[ngClass]=\"{\n\t\t\tloading: loading(),\n\t\t}\"\n\t>\n\t\t<div\n\t\t\tclass=\"col-md-7 d-flex d-sm-flex d-md-block justify-content-center mb-2\"\n\t\t\t[appUnwraptag]=\"(!perPageValues() || perPageValues().length < 2) && (!headerActions() || !headerActions().length) && !enableSearch()\"\n\t\t>\n\t\t\t@if (perPageValues() && perPageValues().length > 1) {\n\t\t\t\t<div class=\"d-block d-md-inline-flex me-0 me-md-3\">\n\t\t\t\t\t<div class=\"table-length\">\n\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t>{{ translate(\"SHOW\") }}\n\t\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t\t(change)=\"changePerPage($event)\"\n\t\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\t\tclass=\"form-select form-select-sm\"\n\t\t\t\t\t\t\t\tname=\"data-table-combine_length\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t@for (perp of perPageValues(); track perp) {\n\t\t\t\t\t\t\t\t\t<option [selected]=\"perPage() === perp\" value=\"{{ perp }}\">{{ perp }} </option>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t{{ translate(\"ENTRIES\") }}</label\n\t\t\t\t\t\t>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (headerActions() && headerActions().length) {\n\t\t\t\t<div\n\t\t\t\t\tclass=\"d-block d-inline-flex\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'mb-2': (!perPageValues() || perPageValues().length < 2) && !enableSearch(),\n\t\t\t\t\t}\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"dt-buttons btn-group flex-wrap\">\n\t\t\t\t\t\t@for (action of headerActions(); track action.actionName + $index) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t(click)=\"headerAction(action.actionName)\"\n\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\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\t\tid=\"header-action-{{ action.actionName }}\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t@if (action.faIcon) {\n\t\t\t\t\t\t\t\t\t\t<i class=\"fa {{ action.faIcon }}\"></i>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t{{ action.label }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t\t@if (enableSearch()) {\n\t\t\t<div class=\"col-md-5 d-flex d-xl-block justify-content-center\">\n\t\t\t\t<div class=\"table-search\">\n\t\t\t\t\t<label>\n\t\t\t\t\t\t{{ translate(\"SEARCH\") }}:\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t(ngModelChange)=\"this.searchUpdate.next($event)\"\n\t\t\t\t\t\t\t[(ngModel)]=\"search\"\n\t\t\t\t\t\t\taria-controls=\"data-table-combine\"\n\t\t\t\t\t\t\tclass=\"form-control form-control-sm\"\n\t\t\t\t\t\t\tid=\"table-search\"\n\t\t\t\t\t\t\tplaceholder=\"\"\n\t\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t\t/></label>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t</div>\n\t<div\n\t\tclass=\"table-responsive\"\n\t\t[ngClass]=\"{\n\t\t\tloading: loading(),\n\t\t}\"\n\t>\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@if (rowCounter()) {\n\t\t\t\t\t\t<th class=\"text-end small-column\"> {{ translate(\"NR\") }}</th>\n\t\t\t\t\t}\n\t\t\t\t\t@for (head of tableHead(); track head.key) {\n\t\t\t\t\t\t@if (!head.hidden) {\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\t(click)=\"head.type !== 'checkbox' && !head.notSortable && tableSort(head.key)\"\n\t\t\t\t\t\t\t\t[ngClass]=\"head.sort\"\n\t\t\t\t\t\t\t\tclass=\"header {{ head.notSortable ? '' : 'sortable' }} {{ head.cellAlign }}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t@if (head.type === \"checkbox\") {\n\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" (change)=\"toggleAllCheckboxes($event, head.key)\" (click)=\"$event.stopPropagation()\" />\n\t\t\t\t\t\t\t\t\t} @else {\n\t\t\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\t\t@if (!head.notSortable) {\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"fa\"></span>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t@if (tableHeadStorage() || (rowActions() && rowActions().length)) {\n\t\t\t\t\t\t<th class=\"header small-column text-center p-0\" data-width=\"50\">\n\t\t\t\t\t\t\t@if (tableHeadStorage()) {\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t(click)=\"openTableLayoutModal()\"\n\t\t\t\t\t\t\t\t\taria-controls=\"basic-link-dropdown\"\n\t\t\t\t\t\t\t\t\tclass=\"menu-button toggle-white big-toggle dropdown-menu-link\"\n\t\t\t\t\t\t\t\t></a>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</th>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t</thead>\n\n\t\t\t@if (tableData().length) {\n\t\t\t\t<tbody>\n\t\t\t\t\t@for (row of tableData(); track row[\"id\"] || $index) {\n\t\t\t\t\t\t<tr\n\t\t\t\t\t\t\tclass=\"{{ row['rowClass'] || '' }}\"\n\t\t\t\t\t\t\t(click)=\"onRowClick(row, $event)\"\n\t\t\t\t\t\t\t[className]=\"selectableClickedValue === row[selectableKey()] ? selectableClass() : ''\"\n\t\t\t\t\t\t\t[attr.data-id]=\"row['id']\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t@if (rowCounter()) {\n\t\t\t\t\t\t\t\t<th class=\"text-end\"> {{ $index + counter }}.</th>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@for (head of tableHead(); track head.key) {\n\t\t\t\t\t\t\t\t@if (!head.hidden) {\n\t\t\t\t\t\t\t\t\t<td [attr.data-column]=\"head.key\" class=\"header text-nowrap {{ head.cellAlign }}\">\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"checkbox\") {\n\t\t\t\t\t\t\t\t\t\t\t@if (row | visibleRowAction: head.visibilityFieldRule : enableLog()) {\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t} @else if (head.visibilityFieldRule?.disabled) {\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[(ngModel)]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"checkbox_{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (!head.type) {\n\t\t\t\t\t\t\t\t\t\t\t{{ row[head.key] }}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"html\") {\n\t\t\t\t\t\t\t\t\t\t\t<span [innerHTML]=\"row[head.key] | safeLimitedHtml\"></span>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"badge\") {\n\t\t\t\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\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"date\") {\n\t\t\t\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\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"datetime\") {\n\t\t\t\t\t\t\t\t\t\t\t{{ row[head.key] | date: (head.dateFormat ? head.dateFormat : \"dd.MM.yyyy HH:mm:ss\") }}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"image\") {\n\t\t\t\t\t\t\t\t\t\t\t@if (row[head.key] && row[head.key] !== \"\") {\n\t\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\t\talt=\"img\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[attr.src]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"{{ head?.imageSize?.width || 50 }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"{{ head?.imageSize?.height || 50 }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"url\") {\n @if (row[head.key]) {\n <a\n [href]=\"row[head.key]\"\n [target]=\"head?.urlTarget || '_blank'\"\n [innerHTML]=\"head?.urlArea ? (head.urlArea || '' | safeLimitedHtml) : row[head.key]\">\n </a>\n } @else {\n {{ head?.urlMissing === undefined ? '-' : head.urlMissing }}\n }\n\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"slider\") {\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"form-check form-switch\">\n\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\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\t\t\t[checked]=\"row[head.key]\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"switched\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"check-{{ row['id'] }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"check-{{ row['id'] }}\"></label>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t@if (head.type === \"input\") {\n\t\t\t\t\t\t\t\t\t\t\t<input [(ngModel)]=\"row[head.key]\" type=\"text\" name=\"input_{{ row['id'] }}\" />\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if (tableHeadStorage() || (rowActions() && rowActions().length)) {\n\t\t\t\t\t\t\t\t<td class=\"small-column\">\n\t\t\t\t\t\t\t\t\t<div class=\"menu text-end\">\n\t\t\t\t\t\t\t\t\t\t@for (action of rowActions(); track (action.label || \"\") + \"_\" + $index) {\n\t\t\t\t\t\t\t\t\t\t\t@if (row | visibleRowAction: action.visibilityRule : enableLog()) {\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\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\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\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\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span><i class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t} @else if (action.visibilityRule?.disabled) {\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\t[disabled]=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngClass]=\"{ 'btn-secondary': !action.btnColor }\"\n\t\t\t\t\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\t\t\t\t\ttooltip=\"{{ action.label }}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span><i class=\"fa {{ action.faIcon }}\"></i></span>\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t}\n\t\t\t\t\t@if (inputTypeKey || checkboxTypeKey) {\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t[colSpan]=\"\n\t\t\t\t\t\t\t\t\ttableHead().length - 1 + (rowCounter() ? 1 : 0) + (tableHeadStorage() || (rowActions() && rowActions().length) ? 1 : 0)\n\t\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<button (click)=\"pushInputValues()\" class=\"btn buttons-copy buttons-html5 btn-sm ms-2 btn-secondary\">\n\t\t\t\t\t\t\t\t\t{{ translate(formSubmitLabel()) }}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t}\n\t\t\t\t</tbody>\n\t\t\t} @else {\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t[colSpan]=\"\n\t\t\t\t\t\t\t\ttableHead().length - 1 + (rowCounter() ? 1 : 0) + (tableHeadStorage() || (rowActions() && rowActions().length) ? 1 : 0)\n\t\t\t\t\t\t\t\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div class=\"alert alert-light\" role=\"alert\">\n\t\t\t\t\t\t\t\t<i class=\"fa fa-exclamation-triangle\"></i> {{ translate(\"NO_DATA_FOUND\") }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t}\n\t\t</table>\n\t</div>\n\t@if (totalPages > 1) {\n\t\t<as-lib-pagination\n\t\t\t(pageChange)=\"pageChange($event)\"\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}\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":["i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentsmith.bgd/as-lib-generic-table",
3
- "version": "21.0.3",
3
+ "version": "21.0.5",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0",
@@ -50,6 +50,8 @@ interface ITableHead {
50
50
  height: number;
51
51
  };
52
52
  urlTarget?: '_blank' | '_self';
53
+ urlArea?: string;
54
+ urlMissing?: string;
53
55
  dateFormat?: string;
54
56
  }
55
57
  interface IFilterParams {