@leanix/components 0.4.470 → 0.4.472

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.
@@ -1,50 +1,92 @@
1
- import { NgIf } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Optional, Output, computed, signal } from '@angular/core';
2
+ // eslint-disable-next-line no-restricted-imports
3
+ import { IconComponent } from '@ui5/webcomponents-ngx/main/icon';
4
+ // eslint-disable-next-line no-restricted-imports
5
+ import { registerIcon } from '@ui5/webcomponents-base/dist/asset-registries/Icons.js';
3
6
  import * as i0 from "@angular/core";
7
+ import * as i1 from "../table.component";
8
+ registerIcon('sort', {
9
+ pathData: '',
10
+ ltr: false,
11
+ collection: 'lx-icons',
12
+ packageName: '@leanix/theming',
13
+ viewBox: '0 0 16 16',
14
+ customTemplate: () => ({
15
+ strings: [
16
+ '<path d="M8.00278 2C8.19778 2 8.37778 2.09 8.49028 2.2475L10.8903 5.5475C11.0253 5.7275 11.0403 5.975 10.9428 6.17C10.8378 6.3725 10.6353 6.5 10.4103 6.5L5.61028 6.5C5.38528 6.5 5.17528 6.3725 5.07778 6.17C4.97278 5.9675 4.99528 5.7275 5.13028 5.5475L7.53028 2.2475C7.64278 2.09 7.82278 2 8.01778 2H8.00278Z" fill="#99A5BB"/>',
17
+ '<path d="M8.00278 14.455C7.80778 14.455 7.62778 14.365 7.51528 14.2075L5.11528 10.9075C4.98028 10.7275 4.96528 10.48 5.06278 10.285C5.16778 10.0825 5.37028 9.95496 5.59528 9.95496H10.3953C10.6203 9.95496 10.8303 10.0825 10.9278 10.285C11.0328 10.4875 11.0103 10.7275 10.8753 10.9075L8.47528 14.2075C8.36278 14.365 8.18278 14.455 7.98778 14.455H8.00278Z" fill="#99A5BB"/>'
18
+ ]
19
+ })
20
+ });
21
+ registerIcon('sort-desc', {
22
+ pathData: '',
23
+ ltr: false,
24
+ collection: 'lx-icons',
25
+ packageName: '@leanix/theming',
26
+ viewBox: '0 0 16 16',
27
+ customTemplate: () => ({
28
+ strings: [
29
+ '<path d="M8.00278 2C8.19778 2 8.37778 2.09 8.49028 2.2475L10.8903 5.5475C11.0253 5.7275 11.0403 5.975 10.9428 6.17C10.8378 6.3725 10.6353 6.5 10.4103 6.5L5.61028 6.5C5.38528 6.5 5.17528 6.3725 5.07778 6.17C4.97278 5.9675 4.99528 5.7275 5.13028 5.5475L7.53028 2.2475C7.64278 2.09 7.82278 2 8.01778 2H8.00278Z" fill="#99A5BB"/>',
30
+ '<path d="M8.00278 14.455C7.80778 14.455 7.62778 14.365 7.51528 14.2075L5.11528 10.9075C4.98028 10.7275 4.96528 10.48 5.06278 10.285C5.16778 10.0825 5.37028 9.95496 5.59528 9.95496H10.3953C10.6203 9.95496 10.8303 10.0825 10.9278 10.285C11.0328 10.4875 11.0103 10.7275 10.8753 10.9075L8.47528 14.2075C8.36278 14.365 8.18278 14.455 7.98778 14.455H8.00278Z" fill="#2A303D"/>'
31
+ ]
32
+ })
33
+ });
34
+ registerIcon('sort-asc', {
35
+ pathData: '',
36
+ ltr: false,
37
+ collection: 'lx-icons',
38
+ packageName: '@leanix/theming',
39
+ viewBox: '0 0 16 16',
40
+ customTemplate: () => ({
41
+ strings: [
42
+ '<path d="M8.00278 2C8.19778 2 8.37778 2.09 8.49028 2.2475L10.8903 5.5475C11.0253 5.7275 11.0403 5.975 10.9428 6.17C10.8378 6.3725 10.6353 6.5 10.4103 6.5L5.61028 6.5C5.38528 6.5 5.17528 6.3725 5.07778 6.17C4.97278 5.9675 4.99528 5.7275 5.13028 5.5475L7.53028 2.2475C7.64278 2.09 7.82278 2 8.01778 2H8.00278Z" fill="#2A303D"/>',
43
+ '<path d="M8.00278 14.455C7.80778 14.455 7.62778 14.365 7.51528 14.2075L5.11528 10.9075C4.98028 10.7275 4.96528 10.48 5.06278 10.285C5.16778 10.0825 5.37028 9.95496 5.59528 9.95496H10.3953C10.6203 9.95496 10.8303 10.0825 10.9278 10.285C11.0328 10.4875 11.0103 10.7275 10.8753 10.9075L8.47528 14.2075C8.36278 14.365 8.18278 14.455 7.98778 14.455H8.00278Z" fill="#99A5BB"/>'
44
+ ]
45
+ })
46
+ });
4
47
  export class TableHeaderComponent {
5
- constructor(elmentRef, changeDetection) {
6
- this.elmentRef = elmentRef;
7
- this.changeDetection = changeDetection;
48
+ #sort;
49
+ constructor(parentTable) {
50
+ this.parentTable = parentTable;
8
51
  this.sortChange = new EventEmitter();
9
- this.sortable = false;
52
+ this.sortable = computed(() => this.parentTable?.isSortable() ?? false);
53
+ this.order = computed(() => {
54
+ const sort = this.parentTable ? this.parentTable.sort() : this.#sort();
55
+ if (this.column !== sort?.key) {
56
+ return undefined;
57
+ }
58
+ else {
59
+ return sort?.order;
60
+ }
61
+ });
62
+ this.#sort = signal({ key: this.column, order: undefined });
10
63
  }
11
64
  onSort() {
12
65
  if (this.column) {
13
- if (!this.order) {
14
- this.order = 'ASC';
15
- }
16
- else if (this.order === 'ASC') {
17
- this.order = 'DESC';
18
- }
19
- else {
20
- this.order = undefined;
66
+ const sort = { key: this.column, order: determineNewOrder(this.order()) };
67
+ if (!this.parentTable) {
68
+ this.#sort.set(sort);
21
69
  }
22
- this.sortChange.emit({ key: this.order ? this.column : undefined, order: this.order });
70
+ this.sortChange.emit(sort);
71
+ this.parentTable?.onTableHeaderSortChange(sort);
23
72
  }
24
73
  }
25
- set order(value) {
26
- this._order = value;
27
- this.changeDetection.markForCheck();
28
- }
29
- get order() {
30
- return this._order;
31
- }
32
- set isTabable(tabable) {
33
- this.elmentRef.nativeElement.tabIndex = tabable ? 0 : -1;
34
- }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableHeaderComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TableHeaderComponent, isStandalone: true, selector: "lx-th", inputs: { column: "column" }, outputs: { sortChange: "sortChange" }, host: { listeners: { "keydown.enter": "onSort()", "click": "onSort()" }, properties: { "class.sortable": "this.sortable" } }, ngImport: i0, template: "<span>\n <ng-content />\n</span>\n<i\n class=\"fas\"\n [class.fa-sort]=\"!order\"\n [class.inactive]=\"!order\"\n [class.fa-sort-up]=\"order === 'ASC'\"\n [class.fa-sort-down]=\"order === 'DESC'\"\n *ngIf=\"sortable\"\n></i>\n", styles: [":host{display:table-cell;padding:8px;vertical-align:bottom;border-bottom:2px solid #e1e5eb;border-top:none;font-weight:700}:host.sortable span{cursor:pointer}i{margin-left:4px;cursor:pointer}.inactive{color:#e1e5eb}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableHeaderComponent, deps: [{ token: i1.TableComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: TableHeaderComponent, isStandalone: true, selector: "lx-th", inputs: { column: "column" }, outputs: { sortChange: "sortChange" }, host: { attributes: { "role": "columnheader" }, listeners: { "keydown.enter": "onSort()", "click": "onSort()" }, properties: { "class.sortable": "sortable()", "tabIndex": "sortable() ? 0 : -1" } }, ngImport: i0, template: "<div class=\"wrapper\">\n <span>\n <ng-content />\n </span>\n @if (sortable()) {\n @if (!order()) {\n <ui5-icon name=\"lx-icons/sort\" />\n } @else if (order() === 'ASC') {\n <ui5-icon name=\"lx-icons/sort-asc\" />\n } @else if (order() === 'DESC') {\n <ui5-icon name=\"lx-icons/sort-desc\" />\n }\n }\n</div>\n", styles: [":host{display:table-cell;line-height:normal;padding:8px;border-bottom:2px solid #e1e5eb;border-top:none;font-weight:700;color:#526179}:host.sortable span{cursor:pointer}.wrapper{display:flex;align-items:center;gap:4px}ui5-icon{cursor:pointer}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ui5-icon", inputs: ["design", "name", "accessibleName", "showTooltip", "mode"], exportAs: ["ui5Icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
76
  }
38
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableHeaderComponent, decorators: [{
39
78
  type: Component,
40
- args: [{ selector: 'lx-th', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf], template: "<span>\n <ng-content />\n</span>\n<i\n class=\"fas\"\n [class.fa-sort]=\"!order\"\n [class.inactive]=\"!order\"\n [class.fa-sort-up]=\"order === 'ASC'\"\n [class.fa-sort-down]=\"order === 'DESC'\"\n *ngIf=\"sortable\"\n></i>\n", styles: [":host{display:table-cell;padding:8px;vertical-align:bottom;border-bottom:2px solid #e1e5eb;border-top:none;font-weight:700}:host.sortable span{cursor:pointer}i{margin-left:4px;cursor:pointer}.inactive{color:#e1e5eb}\n"] }]
41
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { column: [{
79
+ args: [{ selector: 'lx-th', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, host: {
80
+ '[class.sortable]': 'sortable()',
81
+ '[tabIndex]': 'sortable() ? 0 : -1',
82
+ role: 'columnheader'
83
+ }, imports: [IconComponent], template: "<div class=\"wrapper\">\n <span>\n <ng-content />\n </span>\n @if (sortable()) {\n @if (!order()) {\n <ui5-icon name=\"lx-icons/sort\" />\n } @else if (order() === 'ASC') {\n <ui5-icon name=\"lx-icons/sort-asc\" />\n } @else if (order() === 'DESC') {\n <ui5-icon name=\"lx-icons/sort-desc\" />\n }\n }\n</div>\n", styles: [":host{display:table-cell;line-height:normal;padding:8px;border-bottom:2px solid #e1e5eb;border-top:none;font-weight:700;color:#526179}:host.sortable span{cursor:pointer}.wrapper{display:flex;align-items:center;gap:4px}ui5-icon{cursor:pointer}\n"] }]
84
+ }], ctorParameters: () => [{ type: i1.TableComponent, decorators: [{
85
+ type: Optional
86
+ }] }], propDecorators: { column: [{
42
87
  type: Input
43
88
  }], sortChange: [{
44
89
  type: Output
45
- }], sortable: [{
46
- type: HostBinding,
47
- args: ['class.sortable']
48
90
  }], onSort: [{
49
91
  type: HostListener,
50
92
  args: ['keydown.enter']
@@ -52,4 +94,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
52
94
  type: HostListener,
53
95
  args: ['click']
54
96
  }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvcmUtdWkvY29tcG9uZW50cy90YWJsZS90YWJsZS1oZWFkZXIvdGFibGUtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvcmUtdWkvY29tcG9uZW50cy90YWJsZS90YWJsZS1oZWFkZXIvdGFibGUtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDOztBQVd2QixNQUFNLE9BQU8sb0JBQW9CO0lBUy9CLFlBQ1UsU0FBa0MsRUFDbEMsZUFBa0M7UUFEbEMsY0FBUyxHQUFULFNBQVMsQ0FBeUI7UUFDbEMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBUmxDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUUzQixhQUFRLEdBQUcsS0FBSyxDQUFDO0lBTzdDLENBQUM7SUFFa0QsTUFBTTtRQUMxRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNyQixDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7WUFDdEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ3pCLENBQUM7WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsS0FBSztRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsT0FBZ0I7UUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDOzhHQXRDVSxvQkFBb0I7a0dBQXBCLG9CQUFvQixvUUN0QmpDLDJPQVdBLG1SRFNZLElBQUk7OzJGQUVILG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSxPQUFPLG1CQUdBLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxDQUFDOytHQUdOLE1BQU07c0JBQWQsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUV3QixRQUFRO3NCQUF0QyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFTeUIsTUFBTTtzQkFBM0QsWUFBWTt1QkFBQyxlQUFlOztzQkFBRyxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPcmRlck9wdGlvbiwgU29ydGluZ09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9zb3J0LnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC10aCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUhlYWRlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNvbHVtbj86IHN0cmluZztcblxuICBAT3V0cHV0KCkgc29ydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U29ydGluZ09wdGlvbnM+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zb3J0YWJsZScpIHNvcnRhYmxlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfb3JkZXI6IE9yZGVyT3B0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInKSBASG9zdExpc3RlbmVyKCdjbGljaycpIG9uU29ydCgpIHtcbiAgICBpZiAodGhpcy5jb2x1bW4pIHtcbiAgICAgIGlmICghdGhpcy5vcmRlcikge1xuICAgICAgICB0aGlzLm9yZGVyID0gJ0FTQyc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMub3JkZXIgPT09ICdBU0MnKSB7XG4gICAgICAgIHRoaXMub3JkZXIgPSAnREVTQyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9yZGVyID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQoeyBrZXk6IHRoaXMub3JkZXIgPyB0aGlzLmNvbHVtbiA6IHVuZGVmaW5lZCwgb3JkZXI6IHRoaXMub3JkZXIgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0IG9yZGVyKHZhbHVlKSB7XG4gICAgdGhpcy5fb3JkZXIgPSB2YWx1ZTtcbiAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCBvcmRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fb3JkZXI7XG4gIH1cblxuICBzZXQgaXNUYWJhYmxlKHRhYmFibGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVsbWVudFJlZi5uYXRpdmVFbGVtZW50LnRhYkluZGV4ID0gdGFiYWJsZSA/IDAgOiAtMTtcbiAgfVxufVxuIiwiPHNwYW4+XG4gIDxuZy1jb250ZW50IC8+XG48L3NwYW4+XG48aVxuICBjbGFzcz1cImZhc1wiXG4gIFtjbGFzcy5mYS1zb3J0XT1cIiFvcmRlclwiXG4gIFtjbGFzcy5pbmFjdGl2ZV09XCIhb3JkZXJcIlxuICBbY2xhc3MuZmEtc29ydC11cF09XCJvcmRlciA9PT0gJ0FTQydcIlxuICBbY2xhc3MuZmEtc29ydC1kb3duXT1cIm9yZGVyID09PSAnREVTQydcIlxuICAqbmdJZj1cInNvcnRhYmxlXCJcbj48L2k+XG4iXX0=
97
+ function determineNewOrder(currentOrder) {
98
+ let newOrder = undefined;
99
+ if (!currentOrder) {
100
+ newOrder = 'ASC';
101
+ }
102
+ else if (currentOrder === 'ASC') {
103
+ newOrder = 'DESC';
104
+ }
105
+ return newOrder;
106
+ }
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvcmUtdWkvY29tcG9uZW50cy90YWJsZS90YWJsZS1oZWFkZXIvdGFibGUtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NvcmUtdWkvY29tcG9uZW50cy90YWJsZS90YWJsZS1oZWFkZXIvdGFibGUtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFJLGlEQUFpRDtBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsaURBQWlEO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7O0FBR3RGLFlBQVksQ0FBQyxNQUFNLEVBQUU7SUFDbkIsUUFBUSxFQUFFLEVBQUU7SUFDWixHQUFHLEVBQUUsS0FBSztJQUNWLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLFdBQVcsRUFBRSxpQkFBaUI7SUFDOUIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDckIsT0FBTyxFQUFFO1lBQ1AsdVVBQXVVO1lBQ3ZVLG9YQUFvWDtTQUNyWDtLQUNGLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFDSCxZQUFZLENBQUMsV0FBVyxFQUFFO0lBQ3hCLFFBQVEsRUFBRSxFQUFFO0lBQ1osR0FBRyxFQUFFLEtBQUs7SUFDVixVQUFVLEVBQUUsVUFBVTtJQUN0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QixTQUFTLENBQUM7SUFDdEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDbkIsQ0FBQztTQUFNLElBQUksWUFBWSxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQ2xDLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFDcEIsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9wdGlvbmFsLCBPdXRwdXQsIGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9yZGVyT3B0aW9uLCBTb3J0aW5nT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3NvcnQucGlwZSc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1pbXBvcnRzXG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQHVpNS93ZWJjb21wb25lbnRzLW5neC9tYWluL2ljb24nO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtaW1wb3J0c1xuaW1wb3J0IHsgcmVnaXN0ZXJJY29uIH0gZnJvbSAnQHVpNS93ZWJjb21wb25lbnRzLWJhc2UvZGlzdC9hc3NldC1yZWdpc3RyaWVzL0ljb25zLmpzJztcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUuY29tcG9uZW50JztcblxucmVnaXN0ZXJJY29uKCdzb3J0Jywge1xuICBwYXRoRGF0YTogJycsXG4gIGx0cjogZmFsc2UsXG4gIGNvbGxlY3Rpb246ICdseC1pY29ucycsXG4gIHBhY2thZ2VOYW1lOiAnQGxlYW5peC90aGVtaW5nJyxcbiAgdmlld0JveDogJzAgMCAxNiAxNicsXG4gIGN1c3RvbVRlbXBsYXRlOiAoKSA9PiAoe1xuICAgIHN0cmluZ3M6IFtcbiAgICAgICc8cGF0aCBkPVwiTTguMDAyNzggMkM4LjE5Nzc4IDIgOC4zNzc3OCAyLjA5IDguNDkwMjggMi4yNDc1TDEwLjg5MDMgNS41NDc1QzExLjAyNTMgNS43Mjc1IDExLjA0MDMgNS45NzUgMTAuOTQyOCA2LjE3QzEwLjgzNzggNi4zNzI1IDEwLjYzNTMgNi41IDEwLjQxMDMgNi41TDUuNjEwMjggNi41QzUuMzg1MjggNi41IDUuMTc1MjggNi4zNzI1IDUuMDc3NzggNi4xN0M0Ljk3Mjc4IDUuOTY3NSA0Ljk5NTI4IDUuNzI3NSA1LjEzMDI4IDUuNTQ3NUw3LjUzMDI4IDIuMjQ3NUM3LjY0Mjc4IDIuMDkgNy44MjI3OCAyIDguMDE3NzggMkg4LjAwMjc4WlwiIGZpbGw9XCIjOTlBNUJCXCIvPicsXG4gICAgICAnPHBhdGggZD1cIk04LjAwMjc4IDE0LjQ1NUM3LjgwNzc4IDE0LjQ1NSA3LjYyNzc4IDE0LjM2NSA3LjUxNTI4IDE0LjIwNzVMNS4xMTUyOCAxMC45MDc1QzQuOTgwMjggMTAuNzI3NSA0Ljk2NTI4IDEwLjQ4IDUuMDYyNzggMTAuMjg1QzUuMTY3NzggMTAuMDgyNSA1LjM3MDI4IDkuOTU0OTYgNS41OTUyOCA5Ljk1NDk2SDEwLjM5NTNDMTAuNjIwMyA5Ljk1NDk2IDEwLjgzMDMgMTAuMDgyNSAxMC45Mjc4IDEwLjI4NUMxMS4wMzI4IDEwLjQ4NzUgMTEuMDEwMyAxMC43Mjc1IDEwLjg3NTMgMTAuOTA3NUw4LjQ3NTI4IDE0LjIwNzVDOC4zNjI3OCAxNC4zNjUgOC4xODI3OCAxNC40NTUgNy45ODc3OCAxNC40NTVIOC4wMDI3OFpcIiBmaWxsPVwiIzk5QTVCQlwiLz4nXG4gICAgXVxuICB9KVxufSk7XG5yZWdpc3Rlckljb24oJ3NvcnQtZGVzYycsIHtcbiAgcGF0aERhdGE6ICcnLFxuICBsdHI6IGZhbHNlLFxuICBjb2xsZWN0aW9uOiAnbHgtaWNvbnMnLFxuICBwYWNrYWdlTmFtZTogJ0BsZWFuaXgvdGhlbWluZycsXG4gIHZpZXdCb3g6ICcwIDAgMTYgMTYnLFxuICBjdXN0b21UZW1wbGF0ZTogKCkgPT4gKHtcbiAgICBzdHJpbmdzOiBbXG4gICAgICAnPHBhdGggZD1cIk04LjAwMjc4IDJDOC4xOTc3OCAyIDguMzc3NzggMi4wOSA4LjQ5MDI4IDIuMjQ3NUwxMC44OTAzIDUuNTQ3NUMxMS4wMjUzIDUuNzI3NSAxMS4wNDAzIDUuOTc1IDEwLjk0MjggNi4xN0MxMC44Mzc4IDYuMzcyNSAxMC42MzUzIDYuNSAxMC40MTAzIDYuNUw1LjYxMDI4IDYuNUM1LjM4NTI4IDYuNSA1LjE3NTI4IDYuMzcyNSA1LjA3Nzc4IDYuMTdDNC45NzI3OCA1Ljk2NzUgNC45OTUyOCA1LjcyNzUgNS4xMzAyOCA1LjU0NzVMNy41MzAyOCAyLjI0NzVDNy42NDI3OCAyLjA5IDcuODIyNzggMiA4LjAxNzc4IDJIOC4wMDI3OFpcIiBmaWxsPVwiIzk5QTVCQlwiLz4nLFxuICAgICAgJzxwYXRoIGQ9XCJNOC4wMDI3OCAxNC40NTVDNy44MDc3OCAxNC40NTUgNy42Mjc3OCAxNC4zNjUgNy41MTUyOCAxNC4yMDc1TDUuMTE1MjggMTAuOTA3NUM0Ljk4MDI4IDEwLjcyNzUgNC45NjUyOCAxMC40OCA1LjA2Mjc4IDEwLjI4NUM1LjE2Nzc4IDEwLjA4MjUgNS4zNzAyOCA5Ljk1NDk2IDUuNTk1MjggOS45NTQ5NkgxMC4zOTUzQzEwLjYyMDMgOS45NTQ5NiAxMC44MzAzIDEwLjA4MjUgMTAuOTI3OCAxMC4yODVDMTEuMDMyOCAxMC40ODc1IDExLjAxMDMgMTAuNzI3NSAxMC44NzUzIDEwLjkwNzVMOC40NzUyOCAxNC4yMDc1QzguMzYyNzggMTQuMzY1IDguMTgyNzggMTQuNDU1IDcuOTg3NzggMTQuNDU1SDguMDAyNzhaXCIgZmlsbD1cIiMyQTMwM0RcIi8+J1xuICAgIF1cbiAgfSlcbn0pO1xucmVnaXN0ZXJJY29uKCdzb3J0LWFzYycsIHtcbiAgcGF0aERhdGE6ICcnLFxuICBsdHI6IGZhbHNlLFxuICBjb2xsZWN0aW9uOiAnbHgtaWNvbnMnLFxuICBwYWNrYWdlTmFtZTogJ0BsZWFuaXgvdGhlbWluZycsXG4gIHZpZXdCb3g6ICcwIDAgMTYgMTYnLFxuICBjdXN0b21UZW1wbGF0ZTogKCkgPT4gKHtcbiAgICBzdHJpbmdzOiBbXG4gICAgICAnPHBhdGggZD1cIk04LjAwMjc4IDJDOC4xOTc3OCAyIDguMzc3NzggMi4wOSA4LjQ5MDI4IDIuMjQ3NUwxMC44OTAzIDUuNTQ3NUMxMS4wMjUzIDUuNzI3NSAxMS4wNDAzIDUuOTc1IDEwLjk0MjggNi4xN0MxMC44Mzc4IDYuMzcyNSAxMC42MzUzIDYuNSAxMC40MTAzIDYuNUw1LjYxMDI4IDYuNUM1LjM4NTI4IDYuNSA1LjE3NTI4IDYuMzcyNSA1LjA3Nzc4IDYuMTdDNC45NzI3OCA1Ljk2NzUgNC45OTUyOCA1LjcyNzUgNS4xMzAyOCA1LjU0NzVMNy41MzAyOCAyLjI0NzVDNy42NDI3OCAyLjA5IDcuODIyNzggMiA4LjAxNzc4IDJIOC4wMDI3OFpcIiBmaWxsPVwiIzJBMzAzRFwiLz4nLFxuICAgICAgJzxwYXRoIGQ9XCJNOC4wMDI3OCAxNC40NTVDNy44MDc3OCAxNC40NTUgNy42Mjc3OCAxNC4zNjUgNy41MTUyOCAxNC4yMDc1TDUuMTE1MjggMTAuOTA3NUM0Ljk4MDI4IDEwLjcyNzUgNC45NjUyOCAxMC40OCA1LjA2Mjc4IDEwLjI4NUM1LjE2Nzc4IDEwLjA4MjUgNS4zNzAyOCA5Ljk1NDk2IDUuNTk1MjggOS45NTQ5NkgxMC4zOTUzQzEwLjYyMDMgOS45NTQ5NiAxMC44MzAzIDEwLjA4MjUgMTAuOTI3OCAxMC4yODVDMTEuMDMyOCAxMC40ODc1IDExLjAxMDMgMTAuNzI3NSAxMC44NzUzIDEwLjkwNzVMOC40NzUyOCAxNC4yMDc1QzguMzYyNzggMTQuMzY1IDguMTgyNzggMTQuNDU1IDcuOTg3NzggMTQuNDU1SDguMDAyNzhaXCIgZmlsbD1cIiM5OUE1QkJcIi8+J1xuICAgIF1cbiAgfSlcbn0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC10aCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLnNvcnRhYmxlXSc6ICdzb3J0YWJsZSgpJyxcbiAgICAnW3RhYkluZGV4XSc6ICdzb3J0YWJsZSgpID8gMCA6IC0xJyxcbiAgICByb2xlOiAnY29sdW1uaGVhZGVyJ1xuICB9LFxuICBpbXBvcnRzOiBbSWNvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVIZWFkZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBjb2x1bW4/OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIHNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNvcnRpbmdPcHRpb25zPigpO1xuXG4gIHNvcnRhYmxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wYXJlbnRUYWJsZT8uaXNTb3J0YWJsZSgpID8/IGZhbHNlKTtcbiAgb3JkZXIgPSBjb21wdXRlZDxPcmRlck9wdGlvbj4oKCkgPT4ge1xuICAgIGNvbnN0IHNvcnQgPSB0aGlzLnBhcmVudFRhYmxlID8gdGhpcy5wYXJlbnRUYWJsZS5zb3J0KCkgOiB0aGlzLiNzb3J0KCk7XG4gICAgaWYgKHRoaXMuY29sdW1uICE9PSBzb3J0Py5rZXkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzb3J0Py5vcmRlcjtcbiAgICB9XG4gIH0pO1xuXG4gICNzb3J0ID0gc2lnbmFsPFNvcnRpbmdPcHRpb25zPih7IGtleTogdGhpcy5jb2x1bW4sIG9yZGVyOiB1bmRlZmluZWQgfSk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnRUYWJsZT86IFRhYmxlQ29tcG9uZW50KSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInKSBASG9zdExpc3RlbmVyKCdjbGljaycpIG9uU29ydCgpIHtcbiAgICBpZiAodGhpcy5jb2x1bW4pIHtcbiAgICAgIGNvbnN0IHNvcnQgPSB7IGtleTogdGhpcy5jb2x1bW4sIG9yZGVyOiBkZXRlcm1pbmVOZXdPcmRlcih0aGlzLm9yZGVyKCkpIH07XG4gICAgICBpZiAoIXRoaXMucGFyZW50VGFibGUpIHtcbiAgICAgICAgdGhpcy4jc29ydC5zZXQoc29ydCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdChzb3J0KTtcbiAgICAgIHRoaXMucGFyZW50VGFibGU/Lm9uVGFibGVIZWFkZXJTb3J0Q2hhbmdlKHNvcnQpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBkZXRlcm1pbmVOZXdPcmRlcihjdXJyZW50T3JkZXI6IE9yZGVyT3B0aW9uKSB7XG4gIGxldCBuZXdPcmRlcjogT3JkZXJPcHRpb24gPSB1bmRlZmluZWQ7XG4gIGlmICghY3VycmVudE9yZGVyKSB7XG4gICAgbmV3T3JkZXIgPSAnQVNDJztcbiAgfSBlbHNlIGlmIChjdXJyZW50T3JkZXIgPT09ICdBU0MnKSB7XG4gICAgbmV3T3JkZXIgPSAnREVTQyc7XG4gIH1cbiAgcmV0dXJuIG5ld09yZGVyO1xufVxuIiwiPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cbiAgPHNwYW4+XG4gICAgPG5nLWNvbnRlbnQgLz5cbiAgPC9zcGFuPlxuICBAaWYgKHNvcnRhYmxlKCkpIHtcbiAgICBAaWYgKCFvcmRlcigpKSB7XG4gICAgICA8dWk1LWljb24gbmFtZT1cImx4LWljb25zL3NvcnRcIiAvPlxuICAgIH0gQGVsc2UgaWYgKG9yZGVyKCkgPT09ICdBU0MnKSB7XG4gICAgICA8dWk1LWljb24gbmFtZT1cImx4LWljb25zL3NvcnQtYXNjXCIgLz5cbiAgICB9IEBlbHNlIGlmIChvcmRlcigpID09PSAnREVTQycpIHtcbiAgICAgIDx1aTUtaWNvbiBuYW1lPVwibHgtaWNvbnMvc29ydC1kZXNjXCIgLz5cbiAgICB9XG4gIH1cbjwvZGl2PlxuIl19
@@ -1,70 +1,26 @@
1
- import { ContentChildren, Directive, EventEmitter, Input, Output } from '@angular/core';
2
- import { merge } from 'rxjs';
3
- import { TableHeaderComponent } from './table-header/table-header.component';
1
+ import { Directive, input, model } from '@angular/core';
4
2
  import * as i0 from "@angular/core";
5
3
  // eslint-disable-next-line @angular-eslint/directive-class-suffix
6
4
  export class TableComponent {
7
- constructor(elementRef) {
8
- this.elementRef = elementRef;
9
- this.isSortable = false;
10
- this.sortChange = new EventEmitter();
11
- this.elementRef.nativeElement.classList.add('table', 'table-hover');
5
+ constructor() {
6
+ this.isSortable = input(false);
7
+ this.sort = model({});
12
8
  }
13
- ngOnChanges(changes) {
14
- if (changes['sort'] && this.tableHeaders) {
15
- this.tableHeaders.forEach((header) => {
16
- this.setSortValueOnHeader(header);
17
- });
18
- }
19
- if (changes['isSortable'] && this.tableHeaders) {
20
- this.tableHeaders.forEach((header) => {
21
- header.sortable = this.isSortable;
22
- header.isTabable = this.isSortable;
23
- });
24
- }
9
+ onTableHeaderSortChange(sort) {
10
+ this.sort.set(sort);
25
11
  }
26
- ngAfterContentInit() {
27
- this.tableHeaders.forEach((header) => {
28
- header.sortable = this.isSortable;
29
- header.isTabable = this.isSortable;
30
- if (this.sort) {
31
- this.setSortValueOnHeader(header);
32
- }
33
- });
34
- const sortChange$ = merge(...this.tableHeaders.map((header) => header.sortChange.asObservable()));
35
- sortChange$.subscribe((change) => {
36
- this.tableHeaders.forEach((header) => {
37
- this.setSortValueOnHeader(header);
38
- });
39
- this.sortChange.emit(change);
40
- });
41
- }
42
- setSortValueOnHeader(header) {
43
- if (header.column !== this.sort?.key) {
44
- header.order = undefined;
45
- }
46
- else {
47
- header.order = this.sort?.order;
48
- }
49
- }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
51
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: TableComponent, isStandalone: true, selector: "table[lx-table]", inputs: { isSortable: "isSortable", sort: "sort" }, outputs: { sortChange: "sortChange" }, queries: [{ propertyName: "tableHeaders", predicate: TableHeaderComponent, descendants: true }], usesOnChanges: true, ngImport: i0 }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
13
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.8", type: TableComponent, isStandalone: true, selector: "table[lx-table]", inputs: { isSortable: { classPropertyName: "isSortable", publicName: "isSortable", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sort: "sortChange" }, host: { classAttribute: "table table-hover" }, ngImport: i0 }); }
52
14
  }
53
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableComponent, decorators: [{
54
16
  type: Directive,
55
17
  args: [{
56
18
  // eslint-disable-next-line @angular-eslint/directive-selector
57
19
  selector: 'table[lx-table]',
20
+ host: {
21
+ class: 'table table-hover'
22
+ },
58
23
  standalone: true
59
24
  }]
60
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { isSortable: [{
61
- type: Input
62
- }], sort: [{
63
- type: Input
64
- }], sortChange: [{
65
- type: Output
66
- }], tableHeaders: [{
67
- type: ContentChildren,
68
- args: [TableHeaderComponent, { descendants: true }]
69
- }] } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY29yZS11aS9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsZUFBZSxFQUNmLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQU83RSxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLGNBQWM7SUFPekIsWUFBb0IsVUFBd0M7UUFBeEMsZUFBVSxHQUFWLFVBQVUsQ0FBOEI7UUFObkQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVsQixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFLeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNuQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQ2xDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbkMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUVuQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWxHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxNQUE0QjtRQUN2RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNyQyxNQUFNLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7OEdBcERVLGNBQWM7a0dBQWQsY0FBYyxtTUFLUixvQkFBb0I7OzJGQUwxQixjQUFjO2tCQU4xQixTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOytFQUdVLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBRXVELFlBQVk7c0JBQXpFLGVBQWU7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU29ydGluZ09wdGlvbnMgfSBmcm9tICcuLi8uLi9waXBlcy9zb3J0LnBpcGUnO1xuaW1wb3J0IHsgVGFibGVIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWhlYWRlci90YWJsZS1oZWFkZXIuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAndGFibGVbbHgtdGFibGVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgaXNTb3J0YWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0PzogU29ydGluZ09wdGlvbnM7XG4gIEBPdXRwdXQoKSBzb3J0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTb3J0aW5nT3B0aW9ucz4oKTtcblxuICBAQ29udGVudENoaWxkcmVuKFRhYmxlSGVhZGVyQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHRhYmxlSGVhZGVycyE6IFF1ZXJ5TGlzdDxUYWJsZUhlYWRlckNvbXBvbmVudD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxUYWJsZUVsZW1lbnQ+KSB7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgndGFibGUnLCAndGFibGUtaG92ZXInKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snc29ydCddICYmIHRoaXMudGFibGVIZWFkZXJzKSB7XG4gICAgICB0aGlzLnRhYmxlSGVhZGVycy5mb3JFYWNoKChoZWFkZXIpID0+IHtcbiAgICAgICAgdGhpcy5zZXRTb3J0VmFsdWVPbkhlYWRlcihoZWFkZXIpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ2lzU29ydGFibGUnXSAmJiB0aGlzLnRhYmxlSGVhZGVycykge1xuICAgICAgdGhpcy50YWJsZUhlYWRlcnMuZm9yRWFjaCgoaGVhZGVyKSA9PiB7XG4gICAgICAgIGhlYWRlci5zb3J0YWJsZSA9IHRoaXMuaXNTb3J0YWJsZTtcbiAgICAgICAgaGVhZGVyLmlzVGFiYWJsZSA9IHRoaXMuaXNTb3J0YWJsZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlSGVhZGVycy5mb3JFYWNoKChoZWFkZXIpID0+IHtcbiAgICAgIGhlYWRlci5zb3J0YWJsZSA9IHRoaXMuaXNTb3J0YWJsZTtcbiAgICAgIGhlYWRlci5pc1RhYmFibGUgPSB0aGlzLmlzU29ydGFibGU7XG5cbiAgICAgIGlmICh0aGlzLnNvcnQpIHtcbiAgICAgICAgdGhpcy5zZXRTb3J0VmFsdWVPbkhlYWRlcihoZWFkZXIpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3Qgc29ydENoYW5nZSQgPSBtZXJnZSguLi50aGlzLnRhYmxlSGVhZGVycy5tYXAoKGhlYWRlcikgPT4gaGVhZGVyLnNvcnRDaGFuZ2UuYXNPYnNlcnZhYmxlKCkpKTtcblxuICAgIHNvcnRDaGFuZ2UkLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XG4gICAgICB0aGlzLnRhYmxlSGVhZGVycy5mb3JFYWNoKChoZWFkZXIpID0+IHtcbiAgICAgICAgdGhpcy5zZXRTb3J0VmFsdWVPbkhlYWRlcihoZWFkZXIpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdChjaGFuZ2UpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTb3J0VmFsdWVPbkhlYWRlcihoZWFkZXI6IFRhYmxlSGVhZGVyQ29tcG9uZW50KSB7XG4gICAgaWYgKGhlYWRlci5jb2x1bW4gIT09IHRoaXMuc29ydD8ua2V5KSB7XG4gICAgICBoZWFkZXIub3JkZXIgPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhlYWRlci5vcmRlciA9IHRoaXMuc29ydD8ub3JkZXI7XG4gICAgfVxuICB9XG59XG4iXX0=
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY29yZS11aS9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBV3hELGtFQUFrRTtBQUNsRSxNQUFNLE9BQU8sY0FBYztJQVQzQjtRQVVFLGVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsU0FBSSxHQUFHLEtBQUssQ0FBaUIsRUFBRSxDQUFDLENBQUM7S0FLbEM7SUFIQyx1QkFBdUIsQ0FBQyxJQUFvQjtRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDOzhHQU5VLGNBQWM7a0dBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFUMUIsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsbUJBQW1CO3FCQUMzQjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGlucHV0LCBtb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU29ydGluZ09wdGlvbnMgfSBmcm9tICcuLi8uLi9waXBlcy9zb3J0LnBpcGUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd0YWJsZVtseC10YWJsZV0nLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICd0YWJsZSB0YWJsZS1ob3ZlcidcbiAgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IHtcbiAgaXNTb3J0YWJsZSA9IGlucHV0KGZhbHNlKTtcbiAgc29ydCA9IG1vZGVsPFNvcnRpbmdPcHRpb25zPih7fSk7XG5cbiAgb25UYWJsZUhlYWRlclNvcnRDaGFuZ2Uoc29ydDogU29ydGluZ09wdGlvbnMpIHtcbiAgICB0aGlzLnNvcnQuc2V0KHNvcnQpO1xuICB9XG59XG4iXX0=
@@ -118,6 +118,7 @@ export class LxCoreUiModule {
118
118
  CollapsibleComponent,
119
119
  EllipsisComponent,
120
120
  StepperComponent,
121
+ TableHeaderComponent,
121
122
  EmptyStateComponent] }); }
122
123
  }
123
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LxCoreUiModule, decorators: [{
@@ -203,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
203
204
  providers: [LxTimeAgo]
204
205
  }]
205
206
  }] });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS11aS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9jb3JlLXVpL2NvcmUtdWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RB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O3dCQUNqQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixTQUFTO3dCQUNULGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixRQUFRO3dCQUNSLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3dCQUNwQixRQUFRO3dCQUNSLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixtQkFBbUI7cUJBQ3BCO29CQUNELFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQztpQkFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Jhbm5lci9iYW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhcmQvY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sbGFwc2libGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGFwc2libGUvY29sbGFwc2libGUuY29tcG9uZW50JztcbmltcG9ydCB7IENvdW50ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY291bnRlci9jb3VudGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbGxpcHNpc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbGxpcHNpcy9lbGxpcHNpcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblNjYWxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24tc2NhbGUvaWNvbi1zY2FsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFN0ZXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS90YWJsZS1oZWFkZXIvdGFibGUtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGlueVNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGlueS1zcGlubmVyL3Rpbnktc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9hZnRlci12aWV3LWluaXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEF1dG9jbG9zZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9hdXRvY2xvc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9hdXRvZm9jdXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEx4TGlua2lmeVBpcGUgfSBmcm9tICcuL2xpbmtpZnkvbGlua2lmeS5waXBlJztcbmltcG9ydCB7IEx4VW5saW5raWZ5UGlwZSB9IGZyb20gJy4vbGlua2lmeS91bmxpbmtpZnkucGlwZSc7XG5pbXBvcnQgeyBCclBpcGUgfSBmcm9tICcuL3BpcGVzL2JyLnBpcGUnO1xuaW1wb3J0IHsgQ29udHJhc3RDb2xvclBpcGUgfSBmcm9tICcuL3BpcGVzL2NvbnRyYXN0LWNvbG9yLnBpcGUnO1xuaW1wb3J0IHsgQ3VzdG9tRGF0ZVBpcGUgfSBmcm9tICcuL3BpcGVzL2N1c3RvbS1kYXRlLnBpcGUnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0UmFuZ2VQaXBlIH0gZnJvbSAnLi9waXBlcy9oaWdobGlnaHQtcmFuZ2UucGlwZSc7XG5pbXBvcnQgeyBIaWdobGlnaHRUZXJtUGlwZSB9IGZyb20gJy4vcGlwZXMvaGlnaGxpZ2h0LXRlcm0ucGlwZSc7XG5pbXBvcnQgeyBMeElzVXVpZFBpcGUgfSBmcm9tICcuL3BpcGVzL2x4LWlzLXV1aWQucGlwZSc7XG5pbXBvcnQgeyBMeFRpbWVBZ28gfSBmcm9tICcuL3BpcGVzL2x4LXRpbWUtYWdvLnBpcGUnO1xuaW1wb3J0IHsgTHhUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi9waXBlcy9seC10cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBNYXJrZG93blBpcGUgfSBmcm9tICcuL3BpcGVzL21hcmtkb3duLnBpcGUnO1xuaW1wb3J0IHsgTmJzcFBpcGUgfSBmcm9tICcuL3BpcGVzL25ic3AucGlwZSc7XG5pbXBvcnQgeyBTb3J0UGlwZSB9IGZyb20gJy4vcGlwZXMvc29ydC5waXBlJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uQWZ0ZXJQaXBlIH0gZnJvbSAnLi9waXBlcy90cmFuc2xhdGlvbi1hZnRlci5waXBlJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uQmVmb3JlUGlwZSB9IGZyb20gJy4vcGlwZXMvdHJhbnNsYXRpb24tYmVmb3JlLnBpcGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25CZXR3ZWVuUGlwZSB9IGZyb20gJy4vcGlwZXMvdHJhbnNsYXRpb24tYmV0d2Vlbi5waXBlJztcbmltcG9ydCB7IFVuZXNjYXBlQ3VybHlCcmFjZXNQaXBlIH0gZnJvbSAnLi9waXBlcy91bmVzY2FwZS1jdXJseS1icmFjZXMucGlwZSc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIEFmdGVyVmlld0luaXREaXJlY3RpdmUsXG4gICAgQXV0b2Nsb3NlRGlyZWN0aXZlLFxuICAgIEF1dG9mb2N1c0RpcmVjdGl2ZSxcbiAgICBDb3VudGVyQ29tcG9uZW50LFxuICAgIEJhZGdlQ29tcG9uZW50LFxuICAgIEJhbm5lckNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgQnJQaXBlLFxuICAgIENhcmRDb21wb25lbnQsXG4gICAgQ29sbGFwc2libGVDb21wb25lbnQsXG4gICAgQ3VzdG9tRGF0ZVBpcGUsXG4gICAgRWxsaXBzaXNDb21wb25lbnQsXG4gICAgSGlnaGxpZ2h0UmFuZ2VQaXBlLFxuICAgIEhpZ2hsaWdodFRlcm1QaXBlLFxuICAgIEljb25TY2FsZUNvbXBvbmVudCxcbiAgICBMeExpbmtpZnlQaXBlLFxuICAgIEx4VW5saW5raWZ5UGlwZSxcbiAgICBMeFRpbWVBZ28sXG4gICAgTHhUcmFuc2xhdGVQaXBlLFxuICAgIE1hcmtkb3duUGlwZSxcbiAgICBOYnNwUGlwZSxcbiAgICBMeElzVXVpZFBpcGUsXG4gICAgU3RlcHBlckNvbXBvbmVudCxcbiAgICBTcGlubmVyQ29tcG9uZW50LFxuICAgIFRhYmxlQ29tcG9uZW50LFxuICAgIFRhYmxlSGVhZGVyQ29tcG9uZW50LFxuICAgIFRpbnlTcGlubmVyQ29tcG9uZW50LFxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRpb25BZnRlclBpcGUsXG4gICAgVHJhbnNsYXRpb25CZWZvcmVQaXBlLFxuICAgIFRyYW5zbGF0aW9uQmV0d2VlblBpcGUsXG4gICAgU29ydFBpcGUsXG4gICAgQ29udHJhc3RDb2xvclBpcGUsXG4gICAgVW5lc2NhcGVDdXJseUJyYWNlc1BpcGUsXG4gICAgRW1wdHlTdGF0ZUNvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQWZ0ZXJWaWV3SW5pdERpcmVjdGl2ZSxcbiAgICBBdXRvY2xvc2VEaXJlY3RpdmUsXG4gICAgQXV0b2ZvY3VzRGlyZWN0aXZlLFxuICAgIEJhZGdlQ29tcG9uZW50LFxuICAgIENvdW50ZXJDb21wb25lbnQsXG4gICAgQmFubmVyQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBCclBpcGUsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgQ2FyZENvbXBvbmVudCxcbiAgICBDdXN0b21EYXRlUGlwZSxcbiAgICBFbGxpcHNpc0NvbXBvbmVudCxcbiAgICBIaWdobGlnaHRSYW5nZVBpcGUsXG4gICAgSGlnaGxpZ2h0VGVybVBpcGUsXG4gICAgSWNvblNjYWxlQ29tcG9uZW50LFxuICAgIEx4TGlua2lmeVBpcGUsXG4gICAgTHhVbmxpbmtpZnlQaXBlLFxuICAgIEx4VGltZUFnbyxcbiAgICBMeFRyYW5zbGF0ZVBpcGUsXG4gICAgTWFya2Rvd25QaXBlLFxuICAgIE5ic3BQaXBlLFxuICAgIEx4SXNVdWlkUGlwZSxcbiAgICBTdGVwcGVyQ29tcG9uZW50LFxuICAgIFNwaW5uZXJDb21wb25lbnQsXG4gICAgVGFibGVDb21wb25lbnQsXG4gICAgVGFibGVIZWFkZXJDb21wb25lbnQsXG4gICAgVGlueVNwaW5uZXJDb21wb25lbnQsXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcbiAgICBUcmFuc2xhdGlvbkFmdGVyUGlwZSxcbiAgICBUcmFuc2xhdGlvbkJlZm9yZVBpcGUsXG4gICAgVHJhbnNsYXRpb25CZXR3ZWVuUGlwZSxcbiAgICBDb2xsYXBzaWJsZUNvbXBvbmVudCxcbiAgICBTb3J0UGlwZSxcbiAgICBDb250cmFzdENvbG9yUGlwZSxcbiAgICBVbmVzY2FwZUN1cmx5QnJhY2VzUGlwZSxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW0x4VGltZUFnb11cbn0pXG5leHBvcnQgY2xhc3MgTHhDb3JlVWlNb2R1bGUge31cbiJdfQ==
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS11aS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9jb3JlLXVpL2NvcmUtdWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RB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d0JBQ2xCLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsU0FBUzt3QkFDVCxlQUFlO3dCQUNmLFlBQVk7d0JBQ1osUUFBUTt3QkFDUixZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIsUUFBUTt3QkFDUixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3FCQUNwQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUM7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYmFkZ2UvYmFkZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJhbm5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9iYW5uZXIvYmFubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYXJkL2NhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbGxhcHNpYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxhcHNpYmxlL2NvbGxhcHNpYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3VudGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvdW50ZXIvY291bnRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWxsaXBzaXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWxsaXBzaXMvZWxsaXBzaXMuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25TY2FsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pY29uLXNjYWxlL2ljb24tc2NhbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvdGFibGUtaGVhZGVyL3RhYmxlLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRpbnlTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rpbnktc3Bpbm5lci90aW55LXNwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFmdGVyVmlld0luaXREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYWZ0ZXItdmlldy1pbml0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBdXRvY2xvc2VEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYXV0b2Nsb3NlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBdXRvZm9jdXNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYXV0b2ZvY3VzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMeExpbmtpZnlQaXBlIH0gZnJvbSAnLi9saW5raWZ5L2xpbmtpZnkucGlwZSc7XG5pbXBvcnQgeyBMeFVubGlua2lmeVBpcGUgfSBmcm9tICcuL2xpbmtpZnkvdW5saW5raWZ5LnBpcGUnO1xuaW1wb3J0IHsgQnJQaXBlIH0gZnJvbSAnLi9waXBlcy9ici5waXBlJztcbmltcG9ydCB7IENvbnRyYXN0Q29sb3JQaXBlIH0gZnJvbSAnLi9waXBlcy9jb250cmFzdC1jb2xvci5waXBlJztcbmltcG9ydCB7IEN1c3RvbURhdGVQaXBlIH0gZnJvbSAnLi9waXBlcy9jdXN0b20tZGF0ZS5waXBlJztcbmltcG9ydCB7IEhpZ2hsaWdodFJhbmdlUGlwZSB9IGZyb20gJy4vcGlwZXMvaGlnaGxpZ2h0LXJhbmdlLnBpcGUnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0VGVybVBpcGUgfSBmcm9tICcuL3BpcGVzL2hpZ2hsaWdodC10ZXJtLnBpcGUnO1xuaW1wb3J0IHsgTHhJc1V1aWRQaXBlIH0gZnJvbSAnLi9waXBlcy9seC1pcy11dWlkLnBpcGUnO1xuaW1wb3J0IHsgTHhUaW1lQWdvIH0gZnJvbSAnLi9waXBlcy9seC10aW1lLWFnby5waXBlJztcbmltcG9ydCB7IEx4VHJhbnNsYXRlUGlwZSB9IGZyb20gJy4vcGlwZXMvbHgtdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgTWFya2Rvd25QaXBlIH0gZnJvbSAnLi9waXBlcy9tYXJrZG93bi5waXBlJztcbmltcG9ydCB7IE5ic3BQaXBlIH0gZnJvbSAnLi9waXBlcy9uYnNwLnBpcGUnO1xuaW1wb3J0IHsgU29ydFBpcGUgfSBmcm9tICcuL3BpcGVzL3NvcnQucGlwZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbkFmdGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvdHJhbnNsYXRpb24tYWZ0ZXIucGlwZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbkJlZm9yZVBpcGUgfSBmcm9tICcuL3BpcGVzL3RyYW5zbGF0aW9uLWJlZm9yZS5waXBlJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uQmV0d2VlblBpcGUgfSBmcm9tICcuL3BpcGVzL3RyYW5zbGF0aW9uLWJldHdlZW4ucGlwZSc7XG5pbXBvcnQgeyBVbmVzY2FwZUN1cmx5QnJhY2VzUGlwZSB9IGZyb20gJy4vcGlwZXMvdW5lc2NhcGUtY3VybHktYnJhY2VzLnBpcGUnO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICBBZnRlclZpZXdJbml0RGlyZWN0aXZlLFxuICAgIEF1dG9jbG9zZURpcmVjdGl2ZSxcbiAgICBBdXRvZm9jdXNEaXJlY3RpdmUsXG4gICAgQ291bnRlckNvbXBvbmVudCxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBCYW5uZXJDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkdyb3VwQ29tcG9uZW50LFxuICAgIEJyUGlwZSxcbiAgICBDYXJkQ29tcG9uZW50LFxuICAgIENvbGxhcHNpYmxlQ29tcG9uZW50LFxuICAgIEN1c3RvbURhdGVQaXBlLFxuICAgIEVsbGlwc2lzQ29tcG9uZW50LFxuICAgIEhpZ2hsaWdodFJhbmdlUGlwZSxcbiAgICBIaWdobGlnaHRUZXJtUGlwZSxcbiAgICBJY29uU2NhbGVDb21wb25lbnQsXG4gICAgTHhMaW5raWZ5UGlwZSxcbiAgICBMeFVubGlua2lmeVBpcGUsXG4gICAgTHhUaW1lQWdvLFxuICAgIEx4VHJhbnNsYXRlUGlwZSxcbiAgICBNYXJrZG93blBpcGUsXG4gICAgTmJzcFBpcGUsXG4gICAgTHhJc1V1aWRQaXBlLFxuICAgIFN0ZXBwZXJDb21wb25lbnQsXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcbiAgICBUYWJsZUNvbXBvbmVudCxcbiAgICBUYWJsZUhlYWRlckNvbXBvbmVudCxcbiAgICBUaW55U3Bpbm5lckNvbXBvbmVudCxcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxuICAgIFRyYW5zbGF0aW9uQWZ0ZXJQaXBlLFxuICAgIFRyYW5zbGF0aW9uQmVmb3JlUGlwZSxcbiAgICBUcmFuc2xhdGlvbkJldHdlZW5QaXBlLFxuICAgIFNvcnRQaXBlLFxuICAgIENvbnRyYXN0Q29sb3JQaXBlLFxuICAgIFVuZXNjYXBlQ3VybHlCcmFjZXNQaXBlLFxuICAgIEVtcHR5U3RhdGVDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFmdGVyVmlld0luaXREaXJlY3RpdmUsXG4gICAgQXV0b2Nsb3NlRGlyZWN0aXZlLFxuICAgIEF1dG9mb2N1c0RpcmVjdGl2ZSxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBDb3VudGVyQ29tcG9uZW50LFxuICAgIEJhbm5lckNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQnJQaXBlLFxuICAgIEJ1dHRvbkdyb3VwQ29tcG9uZW50LFxuICAgIENhcmRDb21wb25lbnQsXG4gICAgQ3VzdG9tRGF0ZVBpcGUsXG4gICAgRWxsaXBzaXNDb21wb25lbnQsXG4gICAgSGlnaGxpZ2h0UmFuZ2VQaXBlLFxuICAgIEhpZ2hsaWdodFRlcm1QaXBlLFxuICAgIEljb25TY2FsZUNvbXBvbmVudCxcbiAgICBMeExpbmtpZnlQaXBlLFxuICAgIEx4VW5saW5raWZ5UGlwZSxcbiAgICBMeFRpbWVBZ28sXG4gICAgTHhUcmFuc2xhdGVQaXBlLFxuICAgIE1hcmtkb3duUGlwZSxcbiAgICBOYnNwUGlwZSxcbiAgICBMeElzVXVpZFBpcGUsXG4gICAgU3RlcHBlckNvbXBvbmVudCxcbiAgICBTcGlubmVyQ29tcG9uZW50LFxuICAgIFRhYmxlQ29tcG9uZW50LFxuICAgIFRhYmxlSGVhZGVyQ29tcG9uZW50LFxuICAgIFRpbnlTcGlubmVyQ29tcG9uZW50LFxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRpb25BZnRlclBpcGUsXG4gICAgVHJhbnNsYXRpb25CZWZvcmVQaXBlLFxuICAgIFRyYW5zbGF0aW9uQmV0d2VlblBpcGUsXG4gICAgQ29sbGFwc2libGVDb21wb25lbnQsXG4gICAgU29ydFBpcGUsXG4gICAgQ29udHJhc3RDb2xvclBpcGUsXG4gICAgVW5lc2NhcGVDdXJseUJyYWNlc1BpcGUsXG4gICAgRW1wdHlTdGF0ZUNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtMeFRpbWVBZ29dXG59KVxuZXhwb3J0IGNsYXNzIEx4Q29yZVVpTW9kdWxlIHt9XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Component, Input, signal, ChangeDetectionStrategy, HostBinding, inject, input, computed, EventEmitter, Output, HostListener, Injectable, ElementRef, Inject, ViewChild, Directive, ContentChildren, Pipe, Optional, NgModule, effect, DestroyRef, ChangeDetectorRef, ContentChild, ViewChildren, forwardRef, TemplateRef, viewChild, booleanAttribute, SecurityContext, Self, Host } from '@angular/core';
2
+ import { InjectionToken, Component, Input, signal, ChangeDetectionStrategy, HostBinding, inject, input, computed, EventEmitter, Output, HostListener, Injectable, ElementRef, Inject, ViewChild, model, Directive, Optional, Pipe, NgModule, effect, ContentChildren, DestroyRef, ChangeDetectorRef, ContentChild, ViewChildren, forwardRef, TemplateRef, viewChild, booleanAttribute, SecurityContext, Self, Host } from '@angular/core';
3
3
  import * as i1$1 from '@ngx-translate/core';
4
4
  import { TranslatePipe, TranslateModule } from '@ngx-translate/core';
5
5
  import * as i1 from '@angular/common';
@@ -15,6 +15,7 @@ import * as i1$9 from '@angular/router';
15
15
  import { RouterLink, RouterLinkActive, RouterModule } from '@angular/router';
16
16
  import { CdkStepper, CdkStepperModule } from '@angular/cdk/stepper';
17
17
  import * as i1$2 from '@angular/cdk/bidi';
18
+ import { registerIcon } from '@ui5/webcomponents-base/dist/asset-registries/Icons.js';
18
19
  import Color from 'color';
19
20
  import { format, distanceInWords, startOfDay } from 'date-fns';
20
21
  import DOMPurify from 'dompurify';
@@ -1186,50 +1187,112 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
1186
1187
  args: [{ selector: 'lx-stepper', standalone: true, imports: [CommonModule, CdkStepperModule], providers: [{ provide: CdkStepper, useExisting: StepperComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul class=\"stepper\">\n @for (step of steps; track step.label; let i = $index) {\n <li class=\"step\" [ngClass]=\"{ 'step-completed': isCompleted(i) }\">\n <div\n class=\"step-container\"\n [class]=\"isSmallVariant ? 'step-container-small' : 'step-container-normal'\"\n [ngClass]=\"{ 'step-container-active': isActiveStep(i), 'step-container-completed': isCompleted(i) }\"\n >\n <div class=\"step-number\" [ngClass]=\"{ 'step-number-active': isActiveStep(i) }\">\n @if (isCompleted(i)) {\n <i [class]=\"'far fa-check check-icon'\" [ngClass]=\"{ 'small-icon': isSmallVariant }\"></i>\n } @else if (!isSmallVariant) {\n {{ i + 1 }}\n }\n </div>\n @if (!isSmallVariant) {\n <div class=\"step-title\">\n {{ step.label }}\n </div>\n }\n </div>\n </li>\n }\n</ul>\n@if (selected) {\n <div class=\"content\">\n <ng-container [ngTemplateOutlet]=\"selected!.content\" />\n </div>\n}\n", styles: [".stepper{display:flex;position:relative;align-items:center;padding-left:0}.step{position:relative;z-index:1;flex:1;display:flex;flex-direction:row;flex-shrink:0}.step:not(:last-child):after{content:\"\";position:relative;z-index:1;flex:auto;height:1px;min-width:30px;border-top:2px solid #b2bccc;align-self:center;margin-left:5px;margin-right:5px}.step-container{display:flex;flex-direction:column;justify-content:space-between;flex-shrink:0;border:2px solid #b2bccc;border-radius:50%;background-color:#fff;pointer-events:none}.step-container-normal{width:40px;height:40px}.step-container-small{width:22.5px;height:22.5px}.step-number{color:#b2bccc;font-size:15.5px;font-style:normal;font-weight:var(--lxFontNormal, 400);line-height:20px;width:100%;height:100%;padding-top:8px;text-align:center}.step-container-small .step-number{padding-top:0}.step-title{width:max-content;top:50px;position:absolute}.check-icon{font-size:20px;color:#0070f2}.small-icon{position:relative;font-size:var(--lxFontSmallSize, 12px)}@supports (-moz-appearance: none){.small-icon{top:-1px}}.content{margin-top:48px;height:100%}.step:first-child{justify-content:flex-start}.step:first-child .step-title{left:0}.step:not(:first-child):not(:last-child) .step-container{align-self:center}.step:not(:first-child):not(:last-child) .step-container .step-title{align-self:center}.step:last-child{justify-content:flex-end;align-items:flex-end;text-align:right;flex:0 0 auto}.step:last-child .step-container .step-title{align-self:flex-end;right:0}.step:last-child .step-number{margin-right:40%}.step:nth-child(n+19):last-child .step-number{margin-right:31%}.step-container.step-container-active{background-color:#0070f2;border-color:#0070f2}.step-number-active{color:#fff}.step.step-completed:not(:last-child):after{border-color:#0070f2}.step-container.step-container-completed{border-color:#0070f2}\n"] }]
1187
1188
  }], ctorParameters: () => [{ type: i1$2.Directionality }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }] });
1188
1189
 
1190
+ // eslint-disable-next-line @angular-eslint/directive-class-suffix
1191
+ class TableComponent {
1192
+ constructor() {
1193
+ this.isSortable = input(false);
1194
+ this.sort = model({});
1195
+ }
1196
+ onTableHeaderSortChange(sort) {
1197
+ this.sort.set(sort);
1198
+ }
1199
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1200
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.8", type: TableComponent, isStandalone: true, selector: "table[lx-table]", inputs: { isSortable: { classPropertyName: "isSortable", publicName: "isSortable", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sort: "sortChange" }, host: { classAttribute: "table table-hover" }, ngImport: i0 }); }
1201
+ }
1202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableComponent, decorators: [{
1203
+ type: Directive,
1204
+ args: [{
1205
+ // eslint-disable-next-line @angular-eslint/directive-selector
1206
+ selector: 'table[lx-table]',
1207
+ host: {
1208
+ class: 'table table-hover'
1209
+ },
1210
+ standalone: true
1211
+ }]
1212
+ }] });
1213
+
1214
+ registerIcon('sort', {
1215
+ pathData: '',
1216
+ ltr: false,
1217
+ collection: 'lx-icons',
1218
+ packageName: '@leanix/theming',
1219
+ viewBox: '0 0 16 16',
1220
+ customTemplate: () => ({
1221
+ strings: [
1222
+ '<path d="M8.00278 2C8.19778 2 8.37778 2.09 8.49028 2.2475L10.8903 5.5475C11.0253 5.7275 11.0403 5.975 10.9428 6.17C10.8378 6.3725 10.6353 6.5 10.4103 6.5L5.61028 6.5C5.38528 6.5 5.17528 6.3725 5.07778 6.17C4.97278 5.9675 4.99528 5.7275 5.13028 5.5475L7.53028 2.2475C7.64278 2.09 7.82278 2 8.01778 2H8.00278Z" fill="#99A5BB"/>',
1223
+ '<path d="M8.00278 14.455C7.80778 14.455 7.62778 14.365 7.51528 14.2075L5.11528 10.9075C4.98028 10.7275 4.96528 10.48 5.06278 10.285C5.16778 10.0825 5.37028 9.95496 5.59528 9.95496H10.3953C10.6203 9.95496 10.8303 10.0825 10.9278 10.285C11.0328 10.4875 11.0103 10.7275 10.8753 10.9075L8.47528 14.2075C8.36278 14.365 8.18278 14.455 7.98778 14.455H8.00278Z" fill="#99A5BB"/>'
1224
+ ]
1225
+ })
1226
+ });
1227
+ registerIcon('sort-desc', {
1228
+ pathData: '',
1229
+ ltr: false,
1230
+ collection: 'lx-icons',
1231
+ packageName: '@leanix/theming',
1232
+ viewBox: '0 0 16 16',
1233
+ customTemplate: () => ({
1234
+ strings: [
1235
+ '<path d="M8.00278 2C8.19778 2 8.37778 2.09 8.49028 2.2475L10.8903 5.5475C11.0253 5.7275 11.0403 5.975 10.9428 6.17C10.8378 6.3725 10.6353 6.5 10.4103 6.5L5.61028 6.5C5.38528 6.5 5.17528 6.3725 5.07778 6.17C4.97278 5.9675 4.99528 5.7275 5.13028 5.5475L7.53028 2.2475C7.64278 2.09 7.82278 2 8.01778 2H8.00278Z" fill="#99A5BB"/>',
1236
+ '<path d="M8.00278 14.455C7.80778 14.455 7.62778 14.365 7.51528 14.2075L5.11528 10.9075C4.98028 10.7275 4.96528 10.48 5.06278 10.285C5.16778 10.0825 5.37028 9.95496 5.59528 9.95496H10.3953C10.6203 9.95496 10.8303 10.0825 10.9278 10.285C11.0328 10.4875 11.0103 10.7275 10.8753 10.9075L8.47528 14.2075C8.36278 14.365 8.18278 14.455 7.98778 14.455H8.00278Z" fill="#2A303D"/>'
1237
+ ]
1238
+ })
1239
+ });
1240
+ registerIcon('sort-asc', {
1241
+ pathData: '',
1242
+ ltr: false,
1243
+ collection: 'lx-icons',
1244
+ packageName: '@leanix/theming',
1245
+ viewBox: '0 0 16 16',
1246
+ customTemplate: () => ({
1247
+ strings: [
1248
+ '<path d="M8.00278 2C8.19778 2 8.37778 2.09 8.49028 2.2475L10.8903 5.5475C11.0253 5.7275 11.0403 5.975 10.9428 6.17C10.8378 6.3725 10.6353 6.5 10.4103 6.5L5.61028 6.5C5.38528 6.5 5.17528 6.3725 5.07778 6.17C4.97278 5.9675 4.99528 5.7275 5.13028 5.5475L7.53028 2.2475C7.64278 2.09 7.82278 2 8.01778 2H8.00278Z" fill="#2A303D"/>',
1249
+ '<path d="M8.00278 14.455C7.80778 14.455 7.62778 14.365 7.51528 14.2075L5.11528 10.9075C4.98028 10.7275 4.96528 10.48 5.06278 10.285C5.16778 10.0825 5.37028 9.95496 5.59528 9.95496H10.3953C10.6203 9.95496 10.8303 10.0825 10.9278 10.285C11.0328 10.4875 11.0103 10.7275 10.8753 10.9075L8.47528 14.2075C8.36278 14.365 8.18278 14.455 7.98778 14.455H8.00278Z" fill="#99A5BB"/>'
1250
+ ]
1251
+ })
1252
+ });
1189
1253
  class TableHeaderComponent {
1190
- constructor(elmentRef, changeDetection) {
1191
- this.elmentRef = elmentRef;
1192
- this.changeDetection = changeDetection;
1254
+ #sort;
1255
+ constructor(parentTable) {
1256
+ this.parentTable = parentTable;
1193
1257
  this.sortChange = new EventEmitter();
1194
- this.sortable = false;
1258
+ this.sortable = computed(() => this.parentTable?.isSortable() ?? false);
1259
+ this.order = computed(() => {
1260
+ const sort = this.parentTable ? this.parentTable.sort() : this.#sort();
1261
+ if (this.column !== sort?.key) {
1262
+ return undefined;
1263
+ }
1264
+ else {
1265
+ return sort?.order;
1266
+ }
1267
+ });
1268
+ this.#sort = signal({ key: this.column, order: undefined });
1195
1269
  }
1196
1270
  onSort() {
1197
1271
  if (this.column) {
1198
- if (!this.order) {
1199
- this.order = 'ASC';
1272
+ const sort = { key: this.column, order: determineNewOrder(this.order()) };
1273
+ if (!this.parentTable) {
1274
+ this.#sort.set(sort);
1200
1275
  }
1201
- else if (this.order === 'ASC') {
1202
- this.order = 'DESC';
1203
- }
1204
- else {
1205
- this.order = undefined;
1206
- }
1207
- this.sortChange.emit({ key: this.order ? this.column : undefined, order: this.order });
1276
+ this.sortChange.emit(sort);
1277
+ this.parentTable?.onTableHeaderSortChange(sort);
1208
1278
  }
1209
1279
  }
1210
- set order(value) {
1211
- this._order = value;
1212
- this.changeDetection.markForCheck();
1213
- }
1214
- get order() {
1215
- return this._order;
1216
- }
1217
- set isTabable(tabable) {
1218
- this.elmentRef.nativeElement.tabIndex = tabable ? 0 : -1;
1219
- }
1220
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableHeaderComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1221
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TableHeaderComponent, isStandalone: true, selector: "lx-th", inputs: { column: "column" }, outputs: { sortChange: "sortChange" }, host: { listeners: { "keydown.enter": "onSort()", "click": "onSort()" }, properties: { "class.sortable": "this.sortable" } }, ngImport: i0, template: "<span>\n <ng-content />\n</span>\n<i\n class=\"fas\"\n [class.fa-sort]=\"!order\"\n [class.inactive]=\"!order\"\n [class.fa-sort-up]=\"order === 'ASC'\"\n [class.fa-sort-down]=\"order === 'DESC'\"\n *ngIf=\"sortable\"\n></i>\n", styles: [":host{display:table-cell;padding:8px;vertical-align:bottom;border-bottom:2px solid #e1e5eb;border-top:none;font-weight:700}:host.sortable span{cursor:pointer}i{margin-left:4px;cursor:pointer}.inactive{color:#e1e5eb}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1280
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableHeaderComponent, deps: [{ token: TableComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1281
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: TableHeaderComponent, isStandalone: true, selector: "lx-th", inputs: { column: "column" }, outputs: { sortChange: "sortChange" }, host: { attributes: { "role": "columnheader" }, listeners: { "keydown.enter": "onSort()", "click": "onSort()" }, properties: { "class.sortable": "sortable()", "tabIndex": "sortable() ? 0 : -1" } }, ngImport: i0, template: "<div class=\"wrapper\">\n <span>\n <ng-content />\n </span>\n @if (sortable()) {\n @if (!order()) {\n <ui5-icon name=\"lx-icons/sort\" />\n } @else if (order() === 'ASC') {\n <ui5-icon name=\"lx-icons/sort-asc\" />\n } @else if (order() === 'DESC') {\n <ui5-icon name=\"lx-icons/sort-desc\" />\n }\n }\n</div>\n", styles: [":host{display:table-cell;line-height:normal;padding:8px;border-bottom:2px solid #e1e5eb;border-top:none;font-weight:700;color:#526179}:host.sortable span{cursor:pointer}.wrapper{display:flex;align-items:center;gap:4px}ui5-icon{cursor:pointer}\n"], dependencies: [{ kind: "component", type: IconComponent$1, selector: "ui5-icon", inputs: ["design", "name", "accessibleName", "showTooltip", "mode"], exportAs: ["ui5Icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1222
1282
  }
1223
1283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableHeaderComponent, decorators: [{
1224
1284
  type: Component,
1225
- args: [{ selector: 'lx-th', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf], template: "<span>\n <ng-content />\n</span>\n<i\n class=\"fas\"\n [class.fa-sort]=\"!order\"\n [class.inactive]=\"!order\"\n [class.fa-sort-up]=\"order === 'ASC'\"\n [class.fa-sort-down]=\"order === 'DESC'\"\n *ngIf=\"sortable\"\n></i>\n", styles: [":host{display:table-cell;padding:8px;vertical-align:bottom;border-bottom:2px solid #e1e5eb;border-top:none;font-weight:700}:host.sortable span{cursor:pointer}i{margin-left:4px;cursor:pointer}.inactive{color:#e1e5eb}\n"] }]
1226
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { column: [{
1285
+ args: [{ selector: 'lx-th', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, host: {
1286
+ '[class.sortable]': 'sortable()',
1287
+ '[tabIndex]': 'sortable() ? 0 : -1',
1288
+ role: 'columnheader'
1289
+ }, imports: [IconComponent$1], template: "<div class=\"wrapper\">\n <span>\n <ng-content />\n </span>\n @if (sortable()) {\n @if (!order()) {\n <ui5-icon name=\"lx-icons/sort\" />\n } @else if (order() === 'ASC') {\n <ui5-icon name=\"lx-icons/sort-asc\" />\n } @else if (order() === 'DESC') {\n <ui5-icon name=\"lx-icons/sort-desc\" />\n }\n }\n</div>\n", styles: [":host{display:table-cell;line-height:normal;padding:8px;border-bottom:2px solid #e1e5eb;border-top:none;font-weight:700;color:#526179}:host.sortable span{cursor:pointer}.wrapper{display:flex;align-items:center;gap:4px}ui5-icon{cursor:pointer}\n"] }]
1290
+ }], ctorParameters: () => [{ type: TableComponent, decorators: [{
1291
+ type: Optional
1292
+ }] }], propDecorators: { column: [{
1227
1293
  type: Input
1228
1294
  }], sortChange: [{
1229
1295
  type: Output
1230
- }], sortable: [{
1231
- type: HostBinding,
1232
- args: ['class.sortable']
1233
1296
  }], onSort: [{
1234
1297
  type: HostListener,
1235
1298
  args: ['keydown.enter']
@@ -1237,72 +1300,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
1237
1300
  type: HostListener,
1238
1301
  args: ['click']
1239
1302
  }] } });
1240
-
1241
- // eslint-disable-next-line @angular-eslint/directive-class-suffix
1242
- class TableComponent {
1243
- constructor(elementRef) {
1244
- this.elementRef = elementRef;
1245
- this.isSortable = false;
1246
- this.sortChange = new EventEmitter();
1247
- this.elementRef.nativeElement.classList.add('table', 'table-hover');
1248
- }
1249
- ngOnChanges(changes) {
1250
- if (changes['sort'] && this.tableHeaders) {
1251
- this.tableHeaders.forEach((header) => {
1252
- this.setSortValueOnHeader(header);
1253
- });
1254
- }
1255
- if (changes['isSortable'] && this.tableHeaders) {
1256
- this.tableHeaders.forEach((header) => {
1257
- header.sortable = this.isSortable;
1258
- header.isTabable = this.isSortable;
1259
- });
1260
- }
1261
- }
1262
- ngAfterContentInit() {
1263
- this.tableHeaders.forEach((header) => {
1264
- header.sortable = this.isSortable;
1265
- header.isTabable = this.isSortable;
1266
- if (this.sort) {
1267
- this.setSortValueOnHeader(header);
1268
- }
1269
- });
1270
- const sortChange$ = merge(...this.tableHeaders.map((header) => header.sortChange.asObservable()));
1271
- sortChange$.subscribe((change) => {
1272
- this.tableHeaders.forEach((header) => {
1273
- this.setSortValueOnHeader(header);
1274
- });
1275
- this.sortChange.emit(change);
1276
- });
1303
+ function determineNewOrder(currentOrder) {
1304
+ let newOrder = undefined;
1305
+ if (!currentOrder) {
1306
+ newOrder = 'ASC';
1277
1307
  }
1278
- setSortValueOnHeader(header) {
1279
- if (header.column !== this.sort?.key) {
1280
- header.order = undefined;
1281
- }
1282
- else {
1283
- header.order = this.sort?.order;
1284
- }
1308
+ else if (currentOrder === 'ASC') {
1309
+ newOrder = 'DESC';
1285
1310
  }
1286
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1287
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: TableComponent, isStandalone: true, selector: "table[lx-table]", inputs: { isSortable: "isSortable", sort: "sort" }, outputs: { sortChange: "sortChange" }, queries: [{ propertyName: "tableHeaders", predicate: TableHeaderComponent, descendants: true }], usesOnChanges: true, ngImport: i0 }); }
1311
+ return newOrder;
1288
1312
  }
1289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TableComponent, decorators: [{
1290
- type: Directive,
1291
- args: [{
1292
- // eslint-disable-next-line @angular-eslint/directive-selector
1293
- selector: 'table[lx-table]',
1294
- standalone: true
1295
- }]
1296
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { isSortable: [{
1297
- type: Input
1298
- }], sort: [{
1299
- type: Input
1300
- }], sortChange: [{
1301
- type: Output
1302
- }], tableHeaders: [{
1303
- type: ContentChildren,
1304
- args: [TableHeaderComponent, { descendants: true }]
1305
- }] } });
1306
1313
 
1307
1314
  /**
1308
1315
  * Allows to register an event handler for the "AfterViewInit" lifecycle hook.
@@ -2465,6 +2472,7 @@ class LxCoreUiModule {
2465
2472
  CollapsibleComponent,
2466
2473
  EllipsisComponent,
2467
2474
  StepperComponent,
2475
+ TableHeaderComponent,
2468
2476
  EmptyStateComponent] }); }
2469
2477
  }
2470
2478
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LxCoreUiModule, decorators: [{