@some-angular-utils/table 0.1.17 → 0.1.19
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,22 +1,22 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as i2 from '@angular/common';
|
|
2
2
|
import { CommonModule, DatePipe } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { Component,
|
|
5
|
-
import * as
|
|
4
|
+
import { Component, Input, EventEmitter, ContentChildren, ViewChild, ContentChild, Output, ViewEncapsulation } from '@angular/core';
|
|
5
|
+
import * as i1 from '@angular/router';
|
|
6
6
|
import { RouterModule } from '@angular/router';
|
|
7
7
|
import { SAUFilterModule } from '@some-angular-utils/filter';
|
|
8
8
|
import { SAUPaginatorModule } from '@some-angular-utils/paginator';
|
|
9
|
-
import * as i1 from '@angular/common/http';
|
|
9
|
+
import * as i1$1 from '@angular/common/http';
|
|
10
10
|
|
|
11
11
|
class ChevronDownIconComponent {
|
|
12
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
13
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
12
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ChevronDownIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: ChevronDownIconComponent, isStandalone: true, selector: "sau-chevron-down-icon", ngImport: i0, template: `
|
|
14
14
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
15
15
|
<path d="M12 15.5l-6-6h12l-6 6z" />
|
|
16
16
|
</svg>
|
|
17
17
|
`, isInline: true, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] });
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ChevronDownIconComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
21
|
args: [{ selector: 'sau-chevron-down-icon', standalone: true, template: `
|
|
22
22
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
@@ -26,14 +26,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
26
26
|
}] });
|
|
27
27
|
|
|
28
28
|
class PenIconComponent {
|
|
29
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
30
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
29
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PenIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: PenIconComponent, isStandalone: true, selector: "sau-pen-icon", ngImport: i0, template: `
|
|
31
31
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
32
32
|
<path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/>
|
|
33
33
|
</svg>
|
|
34
34
|
`, isInline: true, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] });
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PenIconComponent, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
38
|
args: [{ selector: 'sau-pen-icon', standalone: true, template: `
|
|
39
39
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
@@ -43,14 +43,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
43
43
|
}] });
|
|
44
44
|
|
|
45
45
|
class TrashIconComponent {
|
|
46
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
47
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
46
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TrashIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: TrashIconComponent, isStandalone: true, selector: "sau-trash-icon", ngImport: i0, template: `
|
|
48
48
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
49
49
|
<path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"/>
|
|
50
50
|
</svg>
|
|
51
51
|
`, isInline: true, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] });
|
|
52
52
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TrashIconComponent, decorators: [{
|
|
54
54
|
type: Component,
|
|
55
55
|
args: [{ selector: 'sau-trash-icon', standalone: true, template: `
|
|
56
56
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
@@ -60,14 +60,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
60
60
|
}] });
|
|
61
61
|
|
|
62
62
|
class InboxIconComponent {
|
|
63
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
64
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
63
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: InboxIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
64
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: InboxIconComponent, isStandalone: true, selector: "sau-inbox-icon", ngImport: i0, template: `
|
|
65
65
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
66
66
|
<path d="M19 3H4.99c-1.11 0-1.98.89-1.98 2L3 19c0 1.1.88 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.11-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H5V5h14v10z"/>
|
|
67
67
|
</svg>
|
|
68
68
|
`, isInline: true, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] });
|
|
69
69
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: InboxIconComponent, decorators: [{
|
|
71
71
|
type: Component,
|
|
72
72
|
args: [{ selector: 'sau-inbox-icon', standalone: true, template: `
|
|
73
73
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
@@ -76,32 +76,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
76
76
|
`, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] }]
|
|
77
77
|
}] });
|
|
78
78
|
|
|
79
|
-
class
|
|
80
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
81
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
class PrintIconComponent {
|
|
80
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PrintIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: PrintIconComponent, isStandalone: true, selector: "sau-print-icon", ngImport: i0, template: `
|
|
82
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640" style="width: 100%; height: 100%; fill: currentColor;">
|
|
83
|
+
<!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.-->
|
|
84
|
+
<path d="M128 128C128 92.7 156.7 64 192 64L405.5 64C422.5 64 438.8 70.7 450.8 82.7L493.3 125.2C505.3 137.2 512 153.5 512 170.5L512 208L128 208L128 128zM64 320C64 284.7 92.7 256 128 256L512 256C547.3 256 576 284.7 576 320L576 416C576 433.7 561.7 448 544 448L512 448L512 512C512 547.3 483.3 576 448 576L192 576C156.7 576 128 547.3 128 512L128 448L96 448C78.3 448 64 433.7 64 416L64 320zM192 480L192 512L448 512L448 416L192 416L192 480zM520 336C520 322.7 509.3 312 496 312C482.7 312 472 322.7 472 336C472 349.3 482.7 360 496 360C509.3 360 520 349.3 520 336z"/>
|
|
85
|
+
</svg>
|
|
86
|
+
`, isInline: true, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] });
|
|
87
|
+
}
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: PrintIconComponent, decorators: [{
|
|
89
|
+
type: Component,
|
|
90
|
+
args: [{ selector: 'sau-print-icon', standalone: true, template: `
|
|
91
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640" style="width: 100%; height: 100%; fill: currentColor;">
|
|
92
|
+
<!--!Font Awesome Free v7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.-->
|
|
93
|
+
<path d="M128 128C128 92.7 156.7 64 192 64L405.5 64C422.5 64 438.8 70.7 450.8 82.7L493.3 125.2C505.3 137.2 512 153.5 512 170.5L512 208L128 208L128 128zM64 320C64 284.7 92.7 256 128 256L512 256C547.3 256 576 284.7 576 320L576 416C576 433.7 561.7 448 544 448L512 448L512 512C512 547.3 483.3 576 448 576L192 576C156.7 576 128 547.3 128 512L128 448L96 448C78.3 448 64 433.7 64 416L64 320zM192 480L192 512L448 512L448 416L192 416L192 480zM520 336C520 322.7 509.3 312 496 312C482.7 312 472 322.7 472 336C472 349.3 482.7 360 496 360C509.3 360 520 349.3 520 336z"/>
|
|
94
|
+
</svg>
|
|
95
|
+
`, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] }]
|
|
96
|
+
}] });
|
|
97
|
+
|
|
98
|
+
class EyeIconComponent {
|
|
99
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: EyeIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
100
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: EyeIconComponent, isStandalone: true, selector: "sau-eye-icon", ngImport: i0, template: `
|
|
101
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="w-4 h-auto">
|
|
102
|
+
<path fill="currentColor"
|
|
103
|
+
d="M12 5C7 5 2.73 8.11 1 12c1.73 3.89 6.01 7 11 7s9.27-3.11 11-7c-1.73-3.89-6.01-7-11-7zm0 12c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8.5c-1.93 0-3.5 1.57-3.5 3.5S10.07 15.5 12 15.5 15.5 13.93 15.5 12 13.93 8.5 12 8.5z" />
|
|
84
104
|
</svg>
|
|
85
105
|
`, isInline: true, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] });
|
|
86
106
|
}
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: EyeIconComponent, decorators: [{
|
|
88
108
|
type: Component,
|
|
89
|
-
args: [{ selector: 'sau-
|
|
90
|
-
<svg
|
|
91
|
-
<path
|
|
109
|
+
args: [{ selector: 'sau-eye-icon', standalone: true, template: `
|
|
110
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="w-4 h-auto">
|
|
111
|
+
<path fill="currentColor"
|
|
112
|
+
d="M12 5C7 5 2.73 8.11 1 12c1.73 3.89 6.01 7 11 7s9.27-3.11 11-7c-1.73-3.89-6.01-7-11-7zm0 12c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8.5c-1.93 0-3.5 1.57-3.5 3.5S10.07 15.5 12 15.5 15.5 13.93 15.5 12 13.93 8.5 12 8.5z" />
|
|
92
113
|
</svg>
|
|
93
114
|
`, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] }]
|
|
94
115
|
}] });
|
|
95
116
|
|
|
96
117
|
class CheckIconComponent {
|
|
97
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
98
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
118
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CheckIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
119
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: CheckIconComponent, isStandalone: true, selector: "sau-check-icon", ngImport: i0, template: `
|
|
99
120
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
100
121
|
<path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/>
|
|
101
122
|
</svg>
|
|
102
123
|
`, isInline: true, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] });
|
|
103
124
|
}
|
|
104
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CheckIconComponent, decorators: [{
|
|
105
126
|
type: Component,
|
|
106
127
|
args: [{ selector: 'sau-check-icon', standalone: true, template: `
|
|
107
128
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
@@ -111,14 +132,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
111
132
|
}] });
|
|
112
133
|
|
|
113
134
|
class XmarkIconComponent {
|
|
114
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
115
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
135
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: XmarkIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
136
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: XmarkIconComponent, isStandalone: true, selector: "sau-xmark-icon", ngImport: i0, template: `
|
|
116
137
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
117
138
|
<path d="M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.88-4.89c.39-.38.39-1.02.01-1.4z"/>
|
|
118
139
|
</svg>
|
|
119
140
|
`, isInline: true, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] });
|
|
120
141
|
}
|
|
121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: XmarkIconComponent, decorators: [{
|
|
122
143
|
type: Component,
|
|
123
144
|
args: [{ selector: 'sau-xmark-icon', standalone: true, template: `
|
|
124
145
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
@@ -128,14 +149,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
128
149
|
}] });
|
|
129
150
|
|
|
130
151
|
class EnvelopeIconComponent {
|
|
131
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
132
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
152
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: EnvelopeIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
153
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: EnvelopeIconComponent, isStandalone: true, selector: "sau-envelope-icon", ngImport: i0, template: `
|
|
133
154
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
134
155
|
<path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/>
|
|
135
156
|
</svg>
|
|
136
157
|
`, isInline: true, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] });
|
|
137
158
|
}
|
|
138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: EnvelopeIconComponent, decorators: [{
|
|
139
160
|
type: Component,
|
|
140
161
|
args: [{ selector: 'sau-envelope-icon', standalone: true, template: `
|
|
141
162
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
@@ -145,8 +166,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
145
166
|
}] });
|
|
146
167
|
|
|
147
168
|
class GoogleIconComponent {
|
|
148
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
149
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
169
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GoogleIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
170
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: GoogleIconComponent, isStandalone: true, selector: "sau-google-icon", ngImport: i0, template: `
|
|
150
171
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%;">
|
|
151
172
|
<path d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z" fill="#4285F4"/>
|
|
152
173
|
<path d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z" fill="#34A853"/>
|
|
@@ -155,7 +176,7 @@ class GoogleIconComponent {
|
|
|
155
176
|
</svg>
|
|
156
177
|
`, isInline: true, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] });
|
|
157
178
|
}
|
|
158
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: GoogleIconComponent, decorators: [{
|
|
159
180
|
type: Component,
|
|
160
181
|
args: [{ selector: 'sau-google-icon', standalone: true, template: `
|
|
161
182
|
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%;">
|
|
@@ -167,44 +188,149 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
167
188
|
`, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] }]
|
|
168
189
|
}] });
|
|
169
190
|
|
|
170
|
-
class
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
191
|
+
class DataTypeTemplateComponent {
|
|
192
|
+
item;
|
|
193
|
+
header;
|
|
194
|
+
value;
|
|
195
|
+
getValue(item, key) {
|
|
196
|
+
let arrayKey = [];
|
|
197
|
+
if (!Array.isArray(key)) {
|
|
198
|
+
arrayKey.push(key);
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
arrayKey = key.slice();
|
|
202
|
+
}
|
|
203
|
+
let result = '';
|
|
204
|
+
while (arrayKey.length > 0) {
|
|
205
|
+
let keys = arrayKey[0].split('.');
|
|
206
|
+
let value = item;
|
|
207
|
+
if (keys[0].includes('[]')) {
|
|
208
|
+
let arrayKey = keys[0].replace('[]', '');
|
|
209
|
+
value = value[arrayKey].map((element) => this.getValue(element, keys.slice(1).join('.'))).join(', ');
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
let finalValue = item[String(key)];
|
|
213
|
+
let isArray = Array.isArray(finalValue);
|
|
214
|
+
let isBoolean = typeof finalValue === 'boolean';
|
|
215
|
+
let isNumber = typeof finalValue === 'number';
|
|
216
|
+
if (isArray || isBoolean || isNumber) {
|
|
217
|
+
return finalValue;
|
|
218
|
+
}
|
|
219
|
+
for (let i = 0; value && i < keys.length; i++) {
|
|
220
|
+
value = value[keys[i]];
|
|
221
|
+
}
|
|
222
|
+
result = value;
|
|
223
|
+
}
|
|
224
|
+
arrayKey.shift();
|
|
225
|
+
}
|
|
226
|
+
return result;
|
|
227
|
+
}
|
|
228
|
+
getLink(pattern = '{key}', item, value) {
|
|
229
|
+
const keyValue = this.getValue(item, value);
|
|
230
|
+
const url = pattern.replace('{key}', keyValue);
|
|
231
|
+
const isExternal = url.startsWith('http://') || url.startsWith('https://');
|
|
232
|
+
return {
|
|
233
|
+
url,
|
|
234
|
+
isExternal
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DataTypeTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
238
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: DataTypeTemplateComponent, isStandalone: true, selector: "sau-data-type-template", inputs: { item: "item", header: "header", value: "value" }, ngImport: i0, template: "<section class=\"sau-table-data-type-section\">\n @switch (header.type) {\n\n @case ('boolean') {\n @if(getValue(item, value)){\n <div class=\"sau-table-boolean-true\">\n <span class=\"sau-icon sau-icon-check\">\n <sau-check-icon></sau-check-icon>\n </span>\n </div>\n } @else {\n <div class=\"sau-table-boolean-false\">\n <span class=\"sau-icon sau-icon-xmark\">\n <sau-xmark-icon></sau-xmark-icon>\n </span>\n </div>\n }\n }\n\n @case ('date') {\n <span class=\"sau-table-date\">\n {{getValue(item, value) | date: 'dd/MM/yyyy'}}\n </span>\n }\n\n @case ('dateTime') {\n <span class=\"sau-table-datetime\">\n {{getValue(item, value) | date: 'dd/MM/yyyy HH:mm'}}\n </span>\n }\n\n @case ('color'){\n <span class=\"sau-table-color-indicator\" [style.background-color]=\"getValue(item, value)\"></span>\n }\n\n @case ('link'){\n @let link = getLink(header.url, item, value);\n\n @if(link.isExternal){\n <a [href]=\"link.url\" class=\"sau-table-link\">\n {{header.linkName}}\n </a>\n }@else{\n <a [routerLink]=\"link.url\" class=\"sau-table-link\" target=\"_blank\">\n {{header.linkName}}\n </a>\n }\n\n }\n\n @case ('image'){\n @let link = getLink(header.url, item, value);\n\n <img [src]=\"link.url\" [alt]=\"getValue(item, value)\" loading=\"lazy\" class=\"sau-table-image\">\n }\n\n @case ('login'){\n @if(item.active){\n <span class=\"sau-table-login-container\">\n\n @if(item.email_verified_at){\n <div [title]=\"item.email\" class=\"sau-table-login-email-verified\">\n <span class=\"sau-icon sau-icon-envelope\">\n <sau-envelope-icon></sau-envelope-icon>\n </span>\n </div>\n }\n\n @if(item.google_id){\n <div [title]=\"item.google_id\" class=\"sau-table-login-google\">\n <span class=\"sau-icon sau-icon-google\">\n <sau-google-icon></sau-google-icon>\n </span>\n </div>\n }\n\n </span>\n } @else {\n <div class=\"sau-table-login-inactive\">\n <span class=\"sau-icon sau-icon-xmark\">\n <sau-xmark-icon></sau-xmark-icon>\n </span>\n </div>\n }\n }\n\n @default {\n {{getValue(item, value)}}\n }\n }\n</section>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: CheckIconComponent, selector: "sau-check-icon" }, { kind: "component", type: XmarkIconComponent, selector: "sau-xmark-icon" }, { kind: "component", type: EnvelopeIconComponent, selector: "sau-envelope-icon" }, { kind: "component", type: GoogleIconComponent, selector: "sau-google-icon" }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
|
|
178
239
|
}
|
|
179
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
240
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DataTypeTemplateComponent, decorators: [{
|
|
180
241
|
type: Component,
|
|
181
|
-
args: [{ selector: 'sau-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
242
|
+
args: [{ selector: 'sau-data-type-template', imports: [
|
|
243
|
+
CommonModule,
|
|
244
|
+
DatePipe,
|
|
245
|
+
RouterModule,
|
|
246
|
+
CheckIconComponent,
|
|
247
|
+
XmarkIconComponent,
|
|
248
|
+
EnvelopeIconComponent,
|
|
249
|
+
GoogleIconComponent
|
|
250
|
+
], template: "<section class=\"sau-table-data-type-section\">\n @switch (header.type) {\n\n @case ('boolean') {\n @if(getValue(item, value)){\n <div class=\"sau-table-boolean-true\">\n <span class=\"sau-icon sau-icon-check\">\n <sau-check-icon></sau-check-icon>\n </span>\n </div>\n } @else {\n <div class=\"sau-table-boolean-false\">\n <span class=\"sau-icon sau-icon-xmark\">\n <sau-xmark-icon></sau-xmark-icon>\n </span>\n </div>\n }\n }\n\n @case ('date') {\n <span class=\"sau-table-date\">\n {{getValue(item, value) | date: 'dd/MM/yyyy'}}\n </span>\n }\n\n @case ('dateTime') {\n <span class=\"sau-table-datetime\">\n {{getValue(item, value) | date: 'dd/MM/yyyy HH:mm'}}\n </span>\n }\n\n @case ('color'){\n <span class=\"sau-table-color-indicator\" [style.background-color]=\"getValue(item, value)\"></span>\n }\n\n @case ('link'){\n @let link = getLink(header.url, item, value);\n\n @if(link.isExternal){\n <a [href]=\"link.url\" class=\"sau-table-link\">\n {{header.linkName}}\n </a>\n }@else{\n <a [routerLink]=\"link.url\" class=\"sau-table-link\" target=\"_blank\">\n {{header.linkName}}\n </a>\n }\n\n }\n\n @case ('image'){\n @let link = getLink(header.url, item, value);\n\n <img [src]=\"link.url\" [alt]=\"getValue(item, value)\" loading=\"lazy\" class=\"sau-table-image\">\n }\n\n @case ('login'){\n @if(item.active){\n <span class=\"sau-table-login-container\">\n\n @if(item.email_verified_at){\n <div [title]=\"item.email\" class=\"sau-table-login-email-verified\">\n <span class=\"sau-icon sau-icon-envelope\">\n <sau-envelope-icon></sau-envelope-icon>\n </span>\n </div>\n }\n\n @if(item.google_id){\n <div [title]=\"item.google_id\" class=\"sau-table-login-google\">\n <span class=\"sau-icon sau-icon-google\">\n <sau-google-icon></sau-google-icon>\n </span>\n </div>\n }\n\n </span>\n } @else {\n <div class=\"sau-table-login-inactive\">\n <span class=\"sau-icon sau-icon-xmark\">\n <sau-xmark-icon></sau-xmark-icon>\n </span>\n </div>\n }\n }\n\n @default {\n {{getValue(item, value)}}\n }\n }\n</section>" }]
|
|
251
|
+
}], propDecorators: { item: [{
|
|
252
|
+
type: Input
|
|
253
|
+
}], header: [{
|
|
254
|
+
type: Input
|
|
255
|
+
}], value: [{
|
|
256
|
+
type: Input
|
|
257
|
+
}] } });
|
|
188
258
|
|
|
189
|
-
class
|
|
190
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
191
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
192
|
-
<svg xmlns="http://www.w3.org/2000/svg"
|
|
193
|
-
<path
|
|
194
|
-
d="M12 5C7 5 2.73 8.11 1 12c1.73 3.89 6.01 7 11 7s9.27-3.11 11-7c-1.73-3.89-6.01-7-11-7zm0 12c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8.5c-1.93 0-3.5 1.57-3.5 3.5S10.07 15.5 12 15.5 15.5 13.93 15.5 12 13.93 8.5 12 8.5z" />
|
|
259
|
+
class CrownIconComponent {
|
|
260
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CrownIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
261
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: CrownIconComponent, isStandalone: true, selector: "sau-crown-icon", ngImport: i0, template: `
|
|
262
|
+
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
263
|
+
<path d="M5 16L3 5l4.5 7L12 4l4.5 8L21 5l-2 11H5zm2.7-2h8.6l.9-5.4-2.1 3.7L12 9l-3.1 3.3-2.1-3.7L7.7 14z"/>
|
|
195
264
|
</svg>
|
|
196
265
|
`, isInline: true, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] });
|
|
197
266
|
}
|
|
198
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
267
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: CrownIconComponent, decorators: [{
|
|
199
268
|
type: Component,
|
|
200
|
-
args: [{ selector: 'sau-
|
|
201
|
-
<svg xmlns="http://www.w3.org/2000/svg"
|
|
202
|
-
<path
|
|
203
|
-
d="M12 5C7 5 2.73 8.11 1 12c1.73 3.89 6.01 7 11 7s9.27-3.11 11-7c-1.73-3.89-6.01-7-11-7zm0 12c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8.5c-1.93 0-3.5 1.57-3.5 3.5S10.07 15.5 12 15.5 15.5 13.93 15.5 12 13.93 8.5 12 8.5z" />
|
|
269
|
+
args: [{ selector: 'sau-crown-icon', standalone: true, template: `
|
|
270
|
+
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" style="width: 100%; height: 100%; fill: currentColor;">
|
|
271
|
+
<path d="M5 16L3 5l4.5 7L12 4l4.5 8L21 5l-2 11H5zm2.7-2h8.6l.9-5.4-2.1 3.7L12 9l-3.1 3.3-2.1-3.7L7.7 14z"/>
|
|
204
272
|
</svg>
|
|
205
273
|
`, styles: [":host{display:inline-block;width:1em;height:1em;vertical-align:middle}\n"] }]
|
|
206
274
|
}] });
|
|
207
275
|
|
|
276
|
+
class DataTemplateComponent {
|
|
277
|
+
item;
|
|
278
|
+
header;
|
|
279
|
+
customTemplates = {};
|
|
280
|
+
getCustomTemplate(key) {
|
|
281
|
+
return this.customTemplates ? this.customTemplates[key] : undefined;
|
|
282
|
+
}
|
|
283
|
+
getValue(item, key) {
|
|
284
|
+
let arrayKey = [];
|
|
285
|
+
if (!Array.isArray(key)) {
|
|
286
|
+
arrayKey.push(key);
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
arrayKey = key.slice();
|
|
290
|
+
}
|
|
291
|
+
let result = '';
|
|
292
|
+
while (arrayKey.length > 0) {
|
|
293
|
+
let keys = arrayKey[0].split('.');
|
|
294
|
+
let value = item;
|
|
295
|
+
if (keys[0].includes('[]')) {
|
|
296
|
+
let arrayKey = keys[0].replace('[]', '');
|
|
297
|
+
value = value[arrayKey].map((element) => this.getValue(element, keys.slice(1).join('.'))).join(', ');
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
let finalValue = item[String(key)];
|
|
301
|
+
let isArray = Array.isArray(finalValue);
|
|
302
|
+
let isBoolean = typeof finalValue === 'boolean';
|
|
303
|
+
let isNumber = typeof finalValue === 'number';
|
|
304
|
+
if (isArray || isBoolean || isNumber) {
|
|
305
|
+
return finalValue;
|
|
306
|
+
}
|
|
307
|
+
for (let i = 0; value && i < keys.length; i++) {
|
|
308
|
+
value = value[keys[i]];
|
|
309
|
+
}
|
|
310
|
+
result = value;
|
|
311
|
+
}
|
|
312
|
+
arrayKey.shift();
|
|
313
|
+
}
|
|
314
|
+
return result;
|
|
315
|
+
}
|
|
316
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DataTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
317
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: DataTemplateComponent, isStandalone: true, selector: "sau-data-template", inputs: { item: "item", header: "header", customTemplates: "customTemplates" }, ngImport: i0, template: "<section class=\"sau-table-data-section\">\n\n @if(header.name == 'NOMBRE' && item.role == 'ROLE_ADMIN') {\n <div class=\"sau-table-admin-crown\">\n <span class=\"sau-icon sau-icon-crown\">\n <sau-crown-icon></sau-crown-icon>\n </span>\n </div>\n }\n\n @let customTmpl = getCustomTemplate(header.key);\n\n @if (customTmpl) {\n\n <section class=\"sau-table-data-type-section\">\n <ng-container [ngTemplateOutlet]=\"customTmpl\" [ngTemplateOutletContext]=\"{item: item, header: header}\">\n </ng-container>\n </section>\n\n } @else {\n <span>\n\n @if (header.innerHtml) {\n <span [innerHTML]=\"getValue(item, header.key)\"></span>\n } @else {\n <sau-data-type-template [item]=\"item\" [header]=\"header\" [value]=\"header.key\"></sau-data-type-template>\n }\n\n @if(header.subKey){\n <span class=\"sau-table-subkey\">\n (\n <sau-data-type-template [item]=\"item\" [header]=\"header\" [value]=\"header.subKey\"></sau-data-type-template>\n )\n </span>\n }\n\n </span>\n }\n\n</section>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DataTypeTemplateComponent, selector: "sau-data-type-template", inputs: ["item", "header", "value"] }, { kind: "component", type: CrownIconComponent, selector: "sau-crown-icon" }] });
|
|
318
|
+
}
|
|
319
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: DataTemplateComponent, decorators: [{
|
|
320
|
+
type: Component,
|
|
321
|
+
args: [{ selector: 'sau-data-template', imports: [
|
|
322
|
+
CommonModule,
|
|
323
|
+
DataTypeTemplateComponent,
|
|
324
|
+
CrownIconComponent
|
|
325
|
+
], template: "<section class=\"sau-table-data-section\">\n\n @if(header.name == 'NOMBRE' && item.role == 'ROLE_ADMIN') {\n <div class=\"sau-table-admin-crown\">\n <span class=\"sau-icon sau-icon-crown\">\n <sau-crown-icon></sau-crown-icon>\n </span>\n </div>\n }\n\n @let customTmpl = getCustomTemplate(header.key);\n\n @if (customTmpl) {\n\n <section class=\"sau-table-data-type-section\">\n <ng-container [ngTemplateOutlet]=\"customTmpl\" [ngTemplateOutletContext]=\"{item: item, header: header}\">\n </ng-container>\n </section>\n\n } @else {\n <span>\n\n @if (header.innerHtml) {\n <span [innerHTML]=\"getValue(item, header.key)\"></span>\n } @else {\n <sau-data-type-template [item]=\"item\" [header]=\"header\" [value]=\"header.key\"></sau-data-type-template>\n }\n\n @if(header.subKey){\n <span class=\"sau-table-subkey\">\n (\n <sau-data-type-template [item]=\"item\" [header]=\"header\" [value]=\"header.subKey\"></sau-data-type-template>\n )\n </span>\n }\n\n </span>\n }\n\n</section>" }]
|
|
326
|
+
}], propDecorators: { item: [{
|
|
327
|
+
type: Input
|
|
328
|
+
}], header: [{
|
|
329
|
+
type: Input
|
|
330
|
+
}], customTemplates: [{
|
|
331
|
+
type: Input
|
|
332
|
+
}] } });
|
|
333
|
+
|
|
208
334
|
class SAUTableModule {
|
|
209
335
|
http;
|
|
210
336
|
cdr;
|
|
@@ -377,17 +503,17 @@ class SAUTableModule {
|
|
|
377
503
|
isArray(array) {
|
|
378
504
|
return Array.isArray(array);
|
|
379
505
|
}
|
|
380
|
-
clickEditButton(
|
|
381
|
-
this.editEvent.emit(
|
|
506
|
+
clickEditButton(item) {
|
|
507
|
+
this.editEvent.emit(item);
|
|
382
508
|
}
|
|
383
|
-
clickDeleteButton(
|
|
384
|
-
this.deleteEvent.emit(
|
|
509
|
+
clickDeleteButton(item) {
|
|
510
|
+
this.deleteEvent.emit(item);
|
|
385
511
|
}
|
|
386
|
-
clickPrintButton(
|
|
387
|
-
this.printEvent.emit(
|
|
512
|
+
clickPrintButton(item) {
|
|
513
|
+
this.printEvent.emit(item);
|
|
388
514
|
}
|
|
389
|
-
clickShowButton(
|
|
390
|
-
this.showEvent.emit(
|
|
515
|
+
clickShowButton(item) {
|
|
516
|
+
this.showEvent.emit(item);
|
|
391
517
|
}
|
|
392
518
|
onPageChange(newPage) {
|
|
393
519
|
this.page = newPage;
|
|
@@ -397,14 +523,13 @@ class SAUTableModule {
|
|
|
397
523
|
this.filters = filters;
|
|
398
524
|
this.getItems();
|
|
399
525
|
}
|
|
400
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
401
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: SAUTableModule, isStandalone: true, selector: "sau-table", inputs: { url: "url", filterConfig: "filterConfig", contentList: "contentList", contentTotal: "contentTotal", pageParamName: "pageParamName", limitParamName: "limitParamName", sizeInitialPage: "sizeInitialPage", sizeBetweenPages: "sizeBetweenPages", fixedContent: "fixedContent", orientation: "orientation", headers: "headers", showOptions: "showOptions", canEdit: "canEdit", canDelete: "canDelete", canPrint: "canPrint", canShow: "canShow", customTemplates: "customTemplates", items: "items", limit: "limit" }, outputs: { editEvent: "editEvent", deleteEvent: "deleteEvent", printEvent: "printEvent", showEvent: "showEvent" }, queries: [{ propertyName: "editButtonTemplate", first: true, predicate: ["editButton"], descendants: true }, { propertyName: "deleteButtonTemplate", first: true, predicate: ["deleteButton"], descendants: true }, { propertyName: "printButtonTemplate", first: true, predicate: ["printButton"], descendants: true }, { propertyName: "showButtonTemplate", first: true, predicate: ["showButton"], descendants: true }, { propertyName: "customCellTemplates", predicate: ["customCell"] }], viewQueries: [{ propertyName: "filterComponent", first: true, predicate: ["filterComponent"], descendants: true }], ngImport: i0, template: "<div class=\"sau-table\">\n\n @if(filterConfig){\n <sau-filter #filterComponent [filterConfig]=\"filterConfig\"\n (onFilterProcessed)=\"onFiltersChange($event.url)\"></sau-filter>\n }\n\n @if (loading) {\n <div class=\"sau-skeleton\">\n\n <div class=\"sau-table-mobile\">\n <div class=\"sau-table-mobile-header\">\n <div class=\"skeleton-line head\" style=\"width: 150px; height: 24px;\"></div>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (i of [1,2,3]; track $index) {\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (h of headers; track $index) {\n <tr [class]=\"$index % 2 == 0 ? 'sau-table-mobile-row-even' : ''\">\n <th class=\"sau-table-mobile-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n </tr>\n }\n\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(editButtonTemplate){\n\n } @else if(hasEditSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(deleteButtonTemplate){\n\n } @else if(hasDeleteSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(printButtonTemplate){\n\n } @else if(hasPrintSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(showButtonTemplate){\n\n } @else if(hasShowSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n </div>\n </td>\n </tr>\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <table class=\"sau-table-desktop\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (h of headers; track $index) {\n <th class=\"sau-table-desktop-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n }\n @if(this.url){ <th class=\"sau-table-desktop-header-cell\"></th> }\n </tr>\n </thead>\n <tbody>\n @for (i of [1,2,3,4,5]; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index % 2 == 0 ? 'sau-table-desktop-row-even' : '')\">\n @for (h of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n }\n @if(this.url){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"skeleton-line data\" style=\"width: 40px; margin: 0 auto;\"></div>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n } @else {\n\n\n\n <!----------------------------------- Table mobile ----------------------------------->\n @if(orientation=='dynamic' || orientation=='vertical'){\n <div class=\"sau-table-mobile\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <!-- Mobile header -->\n <div class=\"sau-table-mobile-header\">\n <h3 class=\"sau-table-mobile-title\">Lista de elementos</h3>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (item of items; track $index) {\n @let itemIndex = $index;\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (header of headers; track $index) {\n <tr [class]=\"$index%2==0?'sau-table-mobile-row-even':''\">\n\n <th scope=\"col\" class=\"sau-table-mobile-header-cell\">\n {{header.name}}\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n\n @if(header.type == 'table' && !isArray(header.key)){\n\n <!-- CSS-only toggle button -->\n <input type=\"checkbox\" [id]=\"'toggle-table-' + itemIndex\"\n class=\"sau-table-toggle-input\">\n <label [for]=\"'toggle-table-' + itemIndex\" class=\"sau-table-toggle-label\">\n <span class=\"sau-icon sau-icon-chevron-down\">\n <sau-chevron-down-icon></sau-chevron-down-icon>\n </span>\n <span class=\"sau-table-toggle-text\">\n <span class=\"sau-table-toggle-show\">Mostrar</span>\n <span class=\"sau-table-toggle-hide\">Ocultar</span>\n </span>\n </label>\n\n <!-- Content that toggles -->\n <div class=\"sau-table-toggle-content\">\n <sau-table [headers]=\"header.headers\"\n [items]=\"getValue(item, header.key)\"></sau-table>\n </div>\n\n }@else{\n <ng-container [ngTemplateOutlet]=\"DataTemplate\"\n [ngTemplateOutletContext]=\"{item:item, header:header}\"></ng-container>\n\n }\n\n </td>\n\n </tr>\n }\n\n @if(showOptions){\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-edit-button\" (click)=\"clickEditButton(item.id)\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n Editar\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-delete-button\"\n (click)=\"clickDeleteButton(item.id)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n Eliminar\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-print-button\" (click)=\"clickPrintButton(item.id)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n Imprimir\n </button>\n }\n }\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-show-button\" (click)=\"clickShowButton(item.id)\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n Mostrar\n </button>\n }\n }\n\n </div>\n </td>\n </tr>\n }\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n <!--------------------------------- Table mobile end --------------------------------->\n\n <!----------------------------------- Table desktop ----------------------------------->\n @if(orientation=='dynamic' || orientation=='horizontal'){\n <table class=\"sau-table-desktop\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (header of headers; track $index) {\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n {{header.name}}\n </th>\n }\n\n @if(showOptions){\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n Opciones\n </th>\n }\n\n </tr>\n </thead>\n <tbody>\n @for (item of items; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index%2==0?'sau-table-desktop-row-even':'')\">\n\n @for (header of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n\n @if(header.type == 'table'){\n\n @if(!isArray(header.key)){\n <sau-table [headers]=\"header.headers\" [items]=\"getValue(item, header.key)\"></sau-table>\n }\n\n }@else{\n <ng-container [ngTemplateOutlet]=\"DataTemplate\"\n [ngTemplateOutletContext]=\"{item:item, header:header}\"></ng-container>\n }\n\n </td>\n }\n\n @if(showOptions){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"sau-table-desktop-actions-container\">\n\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-desktop-edit-button\" (click)=\"clickEditButton(item.id)\" title=\"Editar\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-desktop-delete-button\" (click)=\"clickDeleteButton(item.id)\"\n title=\"Eliminar\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-desktop-print-button\" (click)=\"clickPrintButton(item.id)\"\n title=\"Imprimir\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n </button>\n }\n }\n\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-desktop-show-button\" (click)=\"clickShowButton(item.id)\"\n title=\"Mostrar\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n </button>\n }\n }\n\n </div>\n </td>\n }\n\n </tr>\n }\n </tbody>\n </table>\n }\n <!--------------------------------- table desktop end --------------------------------->\n\n @if (items.length == 0) {\n <div class=\"sau-table-empty\">\n <div class=\"sau-table-empty-icon\">\n <span class=\"sau-icon sau-icon-inbox\">\n <sau-inbox-icon></sau-inbox-icon>\n </span>\n </div>\n <p class=\"sau-table-empty-title\">No hay elementos</p>\n <p class=\"sau-table-empty-subtitle\">Los elementos aparecer\u00E1n aqu\u00ED cuando est\u00E9n disponibles</p>\n </div>\n\n } @else if(total > 1) {\n\n <sau-paginator [totalPages]=\"total\" [currentPage]=\"page\" (pageChange)=\"onPageChange($event)\"></sau-paginator>\n\n }\n\n\n }\n</div>\n\n<!----------------------------------- Data template ----------------------------------->\n<ng-template #DataTemplate let-item=\"item\" let-header=\"header\">\n\n <section class=\"sau-table-data-section\">\n\n @if(header.name == 'NOMBRE' && item.role == 'ROLE_ADMIN') {\n <div class=\"sau-table-admin-crown\">\n <span class=\"sau-icon sau-icon-crown\">\n <sau-crown-icon></sau-crown-icon>\n </span>\n </div>\n }\n\n @let customTmpl = getCustomTemplate(header.key);\n\n @if (customTmpl) {\n\n <section class=\"sau-table-data-type-section\">\n <ng-container [ngTemplateOutlet]=\"customTmpl\" [ngTemplateOutletContext]=\"{item: item, header: header}\">\n </ng-container>\n </section>\n\n } @else {\n <span>\n\n @if (header.innerHtml) {\n <span [innerHTML]=\"getValue(item, header.key)\"></span>\n } @else {\n <ng-container [ngTemplateOutlet]=\"DataTypeTemplate\"\n [ngTemplateOutletContext]=\"{item:item, header:header, value:header.key}\"></ng-container>\n }\n\n @if(header.subKey){\n <span class=\"sau-table-subkey\">\n (\n <ng-container [ngTemplateOutlet]=\"DataTypeTemplate\"\n [ngTemplateOutletContext]=\"{item:item, header:header, value:header.subKey}\"></ng-container>\n )\n </span>\n }\n\n </span>\n }\n\n </section>\n\n</ng-template>\n<!--------------------------------- Data template end --------------------------------->\n\n<!----------------------------------- Data Type template ----------------------------------->\n<ng-template #DataTypeTemplate let-item=\"item\" let-header=\"header\" let-value=\"value\">\n\n <section class=\"sau-table-data-type-section\">\n @switch (header.type) {\n\n @case ('boolean') {\n @if(getValue(item, value)){\n <div class=\"sau-table-boolean-true\">\n <span class=\"sau-icon sau-icon-check\">\n <sau-check-icon></sau-check-icon>\n </span>\n </div>\n } @else {\n <div class=\"sau-table-boolean-false\">\n <span class=\"sau-icon sau-icon-xmark\">\n <sau-xmark-icon></sau-xmark-icon>\n </span>\n </div>\n }\n }\n\n @case ('date') {\n <span class=\"sau-table-date\">\n {{getValue(item, value) | date: 'dd/MM/yyyy'}}\n </span>\n }\n\n @case ('dateTime') {\n <span class=\"sau-table-datetime\">\n {{getValue(item, value) | date: 'dd/MM/yyyy HH:mm'}}\n </span>\n }\n\n @case ('color'){\n <span class=\"sau-table-color-indicator\" [style.background-color]=\"getValue(item, value)\"></span>\n }\n\n @case ('link'){\n @let link = getLink(header.url, item, value);\n\n @if(link.isExternal){\n <a [href]=\"link.url\" class=\"sau-table-link\">\n {{header.linkName}}\n </a>\n }@else{\n <a [routerLink]=\"link.url\" class=\"sau-table-link\" target=\"_blank\">\n {{header.linkName}}\n </a>\n }\n\n }\n\n @case ('image'){\n @let link = getLink(header.url, item, value);\n\n <img [src]=\"link.url\" [alt]=\"getValue(item, value)\" loading=\"lazy\" class=\"sau-table-image\">\n }\n\n @case ('login'){\n @if(item.active){\n <span class=\"sau-table-login-container\">\n\n @if(item.email_verified_at){\n <div [title]=\"item.email\" class=\"sau-table-login-email-verified\">\n <span class=\"sau-icon sau-icon-envelope\">\n <sau-envelope-icon></sau-envelope-icon>\n </span>\n </div>\n }\n\n @if(item.google_id){\n <div [title]=\"item.google_id\" class=\"sau-table-login-google\">\n <span class=\"sau-icon sau-icon-google\">\n <sau-google-icon></sau-google-icon>\n </span>\n </div>\n }\n\n </span>\n } @else {\n <div class=\"sau-table-login-inactive\">\n <span class=\"sau-icon sau-icon-xmark\">\n <sau-xmark-icon></sau-xmark-icon>\n </span>\n </div>\n }\n }\n\n @default {\n {{getValue(item, value)}}\n }\n }\n </section>\n\n</ng-template>\n<!--------------------------------- Data Type template end --------------------------------->", styles: [".sau-table{--sau-color-primary: rgb(147, 51, 234);--sau-color-secondary: var(--sau-color-primary);--sau-color-background: rgb(255, 255, 255);--sau-color-edit: rgb(34, 197, 94);--sau-color-delete: rgb(239, 68, 68);--sau-color-print: rgb(212, 167, 44);--sau-color-show: rgb(44, 122, 212);--sau-color-text: rgb(31, 41, 55);overflow:auto;background:var(--sau-color-background)}.sau-table .sau-filter{margin-bottom:.5rem}.sau-table table{border-collapse:collapse}.sau-table .sau-table-width-full{width:100%}.sau-table .sau-icon{display:inline-block;width:1em;height:1em;vertical-align:middle;display:flex;align-items:center;justify-content:center}.sau-table .sau-icon svg{width:100%;height:100%;fill:currentColor}.sau-table .sau-icon.sau-icon-chevron-down svg{width:1.8em;height:1.8em}.sau-table .sau-icon.sau-icon-inbox svg{width:1.5em;height:1.5em}@media(min-width:768px){.sau-table .sau-table-mobile.sau-table-dynamic-mode{display:none}}.sau-table .sau-table-mobile .sau-table-mobile-header{background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background);padding:.5rem 1rem}.sau-table .sau-table-mobile .sau-table-mobile-header .sau-table-mobile-title{font-size:1rem;font-weight:600;line-height:1.25}.sau-table .sau-table-mobile .sau-table-mobile-header .sau-table-mobile-divider{width:2rem;height:.125rem;background:var(--sau-color-background);margin-top:.25rem}.sau-table .sau-table-mobile .sau-table-mobile-table{width:100%;font-size:.875rem;text-align:left;color:var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row{border-bottom:1px solid var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row:last-child{border-bottom:none}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row.sau-table-mobile-row-even{background:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row .sau-table-mobile-header-cell{padding:.5rem;font-weight:500;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background);max-width:min-content}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row .sau-table-mobile-data-cell{padding:.5rem;width:100%;color:var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-toggle-input{display:none}.sau-table .sau-table-mobile .sau-table-toggle-input:checked~.sau-table-toggle-content{height:auto!important;opacity:1!important;overflow:visible!important}.sau-table .sau-table-mobile .sau-table-toggle-input:checked+.sau-table-toggle-label .sau-table-toggle-show{display:none}.sau-table .sau-table-mobile .sau-table-toggle-input:checked+.sau-table-toggle-label .sau-table-toggle-hide{display:inline}.sau-table .sau-table-mobile .sau-table-toggle-label{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem;background:var(--sau-color-background);color:var(--sau-color-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}.sau-table .sau-table-mobile .sau-table-toggle-label:hover{background:var(--sau-color-secondary);color:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text{font-size:.875rem;font-weight:500}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text .sau-table-toggle-show{display:inline}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text .sau-table-toggle-hide{display:none}.sau-table .sau-table-mobile .sau-table-toggle-content{margin-top:.75rem;height:0;overflow:hidden;opacity:0;transition:all .3s ease-in-out}.sau-table .sau-table-mobile .sau-table-mobile-actions-row{border-bottom:.5rem solid transparent;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));padding:1rem}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container{display:flex;justify-content:center;gap:1rem;padding:.5rem}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;background:var(--sau-color-background);transition:all .2s;cursor:pointer}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button:hover{color:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button{color:var(--sau-color-edit);border:1px solid var(--sau-color-edit)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button:hover{background:var(--sau-color-edit)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button{color:var(--sau-color-delete);border:1px solid var(--sau-color-delete)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button:hover{background:var(--sau-color-delete)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button{color:var(--sau-color-print);border:1px solid var(--sau-color-print)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button:hover{background:var(--sau-color-print)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button{color:var(--sau-color-show);border:1px solid var(--sau-color-show)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button:hover{background:var(--sau-color-show)}.sau-table .sau-table-desktop{width:100%;font-size:.875rem;text-align:center;color:var(--sau-color-primary)}.sau-table .sau-table-desktop.sau-table-dynamic-mode{display:none}@media(min-width:768px){.sau-table .sau-table-desktop.sau-table-dynamic-mode{display:table}}.sau-table .sau-table-desktop .sau-table-desktop-header{font-size:.75rem;font-weight:600;text-transform:uppercase;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-header .sau-table-desktop-header-cell{padding:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row{min-width:max-content;transition:background-color .2s;border-bottom:1px solid var(--sau-color-primary)}.sau-table .sau-table-desktop .sau-table-desktop-row:last-child{border-bottom:none}.sau-table .sau-table-desktop .sau-table-desktop-row:hover,.sau-table .sau-table-desktop .sau-table-desktop-row.sau-table-desktop-row-even{background:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-cell,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell{padding:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container{display:flex;align-items:center;gap:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:var(--sau-color-background);transition:all .2s;font-size:1.2rem;cursor:pointer}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button:hover{color:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button{color:var(--sau-color-edit);border:1px solid var(--sau-color-edit)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button:hover{background:var(--sau-color-edit)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button{color:var(--sau-color-delete);border:1px solid var(--sau-color-delete)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button:hover{background:var(--sau-color-delete)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button{color:var(--sau-color-print);border:1px solid var(--sau-color-print)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button:hover{background:var(--sau-color-print)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button{color:var(--sau-color-show);border:1px solid var(--sau-color-show)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button:hover{background:var(--sau-color-show)}.sau-table .sau-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:12rem;text-align:center}.sau-table .sau-table-empty .sau-table-empty-icon{position:relative;width:4rem;height:4rem;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:var(--sau-color-primary);font-size:2rem}.sau-table .sau-table-empty .sau-table-empty-icon:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table .sau-table-empty .sau-table-empty-title{color:var(--sau-color-text);font-weight:500}.sau-table .sau-table-empty .sau-table-empty-subtitle{color:var(--sau-color-text);font-size:.875rem}.sau-table .sau-paginator{border-top:1px solid var(--sau-color-primary);--sau-color-primary: inherit !important;--sau-color-secondary: inherit !important;--sau-color-background: inherit !important;--sau-color-edit: inherit !important;--sau-color-delete: inherit !important;--sau-color-text: inherit !important}.sau-table-data-section{display:flex;align-items:center;gap:.5rem}.sau-table-data-section .sau-table-admin-crown{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-secondary)}.sau-table-data-section .sau-table-subkey{display:block;color:var(--sau-color-primary);font-size:.75rem;min-width:max-content}.sau-table-data-type-section{display:inline-block;min-width:max-content;color:var(--sau-color-text)}.sau-table-data-type-section .sau-table-boolean-true{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sau-table-data-type-section .sau-table-boolean-true:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table-data-type-section .sau-table-boolean-false{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sau-table-data-type-section .sau-table-boolean-false:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table-data-type-section .sau-table-datetime{color:var(--sau-color-text);font-size:.875rem}.sau-table-data-type-section .sau-table-color-indicator{display:inline-block;width:2rem;height:1rem}.sau-table-data-type-section .sau-table-link{color:var(--sau-color-primary);text-decoration:none}.sau-table-data-type-section .sau-table-link:hover{text-decoration:underline}.sau-table-data-type-section .sau-table-image{width:2.5rem;height:2.5rem;object-fit:cover}.sau-table-data-type-section .sau-table-login-container{display:inline-flex;align-items:center;gap:.25rem}.sau-table-data-type-section .sau-table-login-container .sau-table-login-email-verified{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-primary)}.sau-table-data-type-section .sau-table-login-container .sau-table-login-google,.sau-table-data-type-section .sau-table-login-inactive{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-secondary)}@keyframes shimmer{0%{transform:translate(-150%)}to{transform:translate(150%)}}.sau-skeleton{pointer-events:none;-webkit-user-select:none;user-select:none}.skeleton-line{position:relative;overflow:hidden;border-radius:4px;-webkit-backdrop-filter:brightness(.9);backdrop-filter:brightness(.9);border:1px solid rgba(0,0,0,.05)}.skeleton-line:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,#fff0,#fff6,#fff0);animation:shimmer 1.8s infinite}.skeleton-line.head{height:12px;width:60px}.skeleton-line.data{height:10px;width:90%}@media screen and (max-width:768px){.sau-skeleton .sau-table-desktop{display:none}}@media screen and (min-width:769px){.sau-skeleton .sau-table-mobile{display:none}}\n"], dependencies: [{ kind: "component", type: SAUTableModule, selector: "sau-table", inputs: ["url", "filterConfig", "contentList", "contentTotal", "pageParamName", "limitParamName", "sizeInitialPage", "sizeBetweenPages", "fixedContent", "orientation", "headers", "showOptions", "canEdit", "canDelete", "canPrint", "canShow", "customTemplates", "items", "limit"], outputs: ["editEvent", "deleteEvent", "printEvent", "showEvent"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SAUFilterModule, selector: "sau-filter", inputs: ["filterConfig", "searchButtonText"], outputs: ["onFilterProcessed"] }, { kind: "component", type: SAUPaginatorModule, selector: "sau-paginator", inputs: ["totalPages", "currentPage"], outputs: ["pageChange"] }, { kind: "component", type: ChevronDownIconComponent, selector: "sau-chevron-down-icon" }, { kind: "component", type: PenIconComponent, selector: "sau-pen-icon" }, { kind: "component", type: TrashIconComponent, selector: "sau-trash-icon" }, { kind: "component", type: InboxIconComponent, selector: "sau-inbox-icon" }, { kind: "component", type: CrownIconComponent, selector: "sau-crown-icon" }, { kind: "component", type: CheckIconComponent, selector: "sau-check-icon" }, { kind: "component", type: XmarkIconComponent, selector: "sau-xmark-icon" }, { kind: "component", type: EnvelopeIconComponent, selector: "sau-envelope-icon" }, { kind: "component", type: GoogleIconComponent, selector: "sau-google-icon" }, { kind: "component", type: PrintIconComponent, selector: "sau-print-icon" }, { kind: "component", type: EyeIconComponent, selector: "sau-eye-icon" }, { kind: "pipe", type: DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None });
|
|
526
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SAUTableModule, deps: [{ token: i1$1.HttpClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
527
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SAUTableModule, isStandalone: true, selector: "sau-table", inputs: { url: "url", filterConfig: "filterConfig", contentList: "contentList", contentTotal: "contentTotal", pageParamName: "pageParamName", limitParamName: "limitParamName", sizeInitialPage: "sizeInitialPage", sizeBetweenPages: "sizeBetweenPages", fixedContent: "fixedContent", orientation: "orientation", headers: "headers", showOptions: "showOptions", canEdit: "canEdit", canDelete: "canDelete", canPrint: "canPrint", canShow: "canShow", customTemplates: "customTemplates", items: "items", limit: "limit" }, outputs: { editEvent: "editEvent", deleteEvent: "deleteEvent", printEvent: "printEvent", showEvent: "showEvent" }, queries: [{ propertyName: "editButtonTemplate", first: true, predicate: ["editButton"], descendants: true }, { propertyName: "deleteButtonTemplate", first: true, predicate: ["deleteButton"], descendants: true }, { propertyName: "printButtonTemplate", first: true, predicate: ["printButton"], descendants: true }, { propertyName: "showButtonTemplate", first: true, predicate: ["showButton"], descendants: true }, { propertyName: "customCellTemplates", predicate: ["customCell"] }], viewQueries: [{ propertyName: "filterComponent", first: true, predicate: ["filterComponent"], descendants: true }], ngImport: i0, template: "<div class=\"sau-table\">\n\n @if(filterConfig){\n <sau-filter #filterComponent [filterConfig]=\"filterConfig\"\n (onFilterProcessed)=\"onFiltersChange($event.url)\"></sau-filter>\n }\n\n @if (loading) {\n <div class=\"sau-skeleton\">\n\n <div class=\"sau-table-mobile\">\n <div class=\"sau-table-mobile-header\">\n <div class=\"skeleton-line head\" style=\"width: 150px; height: 24px;\"></div>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (i of [1,2,3]; track $index) {\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (h of headers; track $index) {\n <tr [class]=\"$index % 2 == 0 ? 'sau-table-mobile-row-even' : ''\">\n <th class=\"sau-table-mobile-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n </tr>\n }\n\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(editButtonTemplate){\n\n } @else if(hasEditSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(deleteButtonTemplate){\n\n } @else if(hasDeleteSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(printButtonTemplate){\n\n } @else if(hasPrintSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(showButtonTemplate){\n\n } @else if(hasShowSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n </div>\n </td>\n </tr>\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <table class=\"sau-table-desktop\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (h of headers; track $index) {\n <th class=\"sau-table-desktop-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n }\n @if(this.url){ <th class=\"sau-table-desktop-header-cell\"></th> }\n </tr>\n </thead>\n <tbody>\n @for (i of [1,2,3,4,5]; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index % 2 == 0 ? 'sau-table-desktop-row-even' : '')\">\n @for (h of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n }\n @if(this.url){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"skeleton-line data\" style=\"width: 40px; margin: 0 auto;\"></div>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n } @else {\n\n\n\n <!----------------------------------- Table mobile ----------------------------------->\n @if(orientation=='dynamic' || orientation=='vertical'){\n <div class=\"sau-table-mobile\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <!-- Mobile header -->\n <div class=\"sau-table-mobile-header\">\n <h3 class=\"sau-table-mobile-title\">Lista de elementos</h3>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (item of items; track $index) {\n @let itemIndex = $index;\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (header of headers; track $index) {\n <tr [class]=\"$index%2==0?'sau-table-mobile-row-even':''\">\n\n <th scope=\"col\" class=\"sau-table-mobile-header-cell\">\n {{header.name}}\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n\n @if(header.type == 'table' && !isArray(header.key)){\n\n <!-- CSS-only toggle button -->\n <input type=\"checkbox\" [id]=\"'toggle-table-' + itemIndex\"\n class=\"sau-table-toggle-input\">\n <label [for]=\"'toggle-table-' + itemIndex\" class=\"sau-table-toggle-label\">\n <span class=\"sau-icon sau-icon-chevron-down\">\n <sau-chevron-down-icon></sau-chevron-down-icon>\n </span>\n <span class=\"sau-table-toggle-text\">\n <span class=\"sau-table-toggle-show\">Mostrar</span>\n <span class=\"sau-table-toggle-hide\">Ocultar</span>\n </span>\n </label>\n\n <!-- Content that toggles -->\n <div class=\"sau-table-toggle-content\">\n <sau-table [headers]=\"header.headers\"\n [items]=\"getValue(item, header.key)\"></sau-table>\n </div>\n\n }@else{\n <sau-data-template [item]=\"item\" [header]=\"header\"\n [customTemplates]=\"customTemplates\"></sau-data-template>\n\n }\n\n </td>\n\n </tr>\n }\n\n @if(showOptions){\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-edit-button\" (click)=\"clickEditButton(item)\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n Editar\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-delete-button\" (click)=\"clickDeleteButton(item)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n Eliminar\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-print-button\" (click)=\"clickPrintButton(item)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n Imprimir\n </button>\n }\n }\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-show-button\" (click)=\"clickShowButton(item)\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n Mostrar\n </button>\n }\n }\n\n </div>\n </td>\n </tr>\n }\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n <!--------------------------------- Table mobile end --------------------------------->\n\n <!----------------------------------- Table desktop ----------------------------------->\n @if(orientation=='dynamic' || orientation=='horizontal'){\n <table class=\"sau-table-desktop\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (header of headers; track $index) {\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n {{header.name}}\n </th>\n }\n\n @if(showOptions){\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n Opciones\n </th>\n }\n\n </tr>\n </thead>\n <tbody>\n @for (item of items; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index%2==0?'sau-table-desktop-row-even':'')\">\n\n @for (header of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n\n @if(header.type == 'table'){\n\n @if(!isArray(header.key)){\n <sau-table [headers]=\"header.headers\" [items]=\"getValue(item, header.key)\"></sau-table>\n }\n\n }@else{\n <sau-data-template [item]=\"item\" [header]=\"header\"\n [customTemplates]=\"customTemplates\"></sau-data-template>\n }\n\n </td>\n }\n\n @if(showOptions){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"sau-table-desktop-actions-container\">\n\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-desktop-edit-button\" (click)=\"clickEditButton(item)\" title=\"Editar\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-desktop-delete-button\" (click)=\"clickDeleteButton(item)\"\n title=\"Eliminar\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-desktop-print-button\" (click)=\"clickPrintButton(item)\"\n title=\"Imprimir\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n </button>\n }\n }\n\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-desktop-show-button\" (click)=\"clickShowButton(item)\" title=\"Mostrar\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n </button>\n }\n }\n\n </div>\n </td>\n }\n\n </tr>\n }\n </tbody>\n </table>\n }\n <!--------------------------------- table desktop end --------------------------------->\n\n @if (items.length == 0) {\n <div class=\"sau-table-empty\">\n <div class=\"sau-table-empty-icon\">\n <span class=\"sau-icon sau-icon-inbox\">\n <sau-inbox-icon></sau-inbox-icon>\n </span>\n </div>\n <p class=\"sau-table-empty-title\">No hay elementos</p>\n <p class=\"sau-table-empty-subtitle\">Los elementos aparecer\u00E1n aqu\u00ED cuando est\u00E9n disponibles</p>\n </div>\n\n } @else if(total > 1) {\n\n <sau-paginator [totalPages]=\"total\" [currentPage]=\"page\" (pageChange)=\"onPageChange($event)\"></sau-paginator>\n\n }\n\n\n }\n</div>", styles: [".sau-table{--sau-color-primary: rgb(147, 51, 234);--sau-color-secondary: var(--sau-color-primary);--sau-color-background: rgb(255, 255, 255);--sau-color-edit: rgb(34, 197, 94);--sau-color-delete: rgb(239, 68, 68);--sau-color-print: rgb(212, 167, 44);--sau-color-show: rgb(44, 122, 212);--sau-color-text: rgb(31, 41, 55);overflow:auto;background:var(--sau-color-background)}.sau-table .sau-filter{margin-bottom:.5rem}.sau-table table{border-collapse:collapse}.sau-table .sau-table-width-full{width:100%}.sau-table .sau-icon{display:inline-block;width:1em;height:1em;vertical-align:middle;display:flex;align-items:center;justify-content:center}.sau-table .sau-icon svg{width:100%;height:100%;fill:currentColor}.sau-table .sau-icon.sau-icon-chevron-down svg{width:1.8em;height:1.8em}.sau-table .sau-icon.sau-icon-inbox svg{width:1.5em;height:1.5em}@media(min-width:768px){.sau-table .sau-table-mobile.sau-table-dynamic-mode{display:none}}.sau-table .sau-table-mobile .sau-table-mobile-header{background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background);padding:.5rem 1rem}.sau-table .sau-table-mobile .sau-table-mobile-header .sau-table-mobile-title{font-size:1rem;font-weight:600;line-height:1.25}.sau-table .sau-table-mobile .sau-table-mobile-header .sau-table-mobile-divider{width:2rem;height:.125rem;background:var(--sau-color-background);margin-top:.25rem}.sau-table .sau-table-mobile .sau-table-mobile-table{width:100%;font-size:.875rem;text-align:left;color:var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row{border-bottom:1px solid var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row:last-child{border-bottom:none}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row.sau-table-mobile-row-even{background:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row .sau-table-mobile-header-cell{padding:.5rem;font-weight:500;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background);max-width:min-content}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row .sau-table-mobile-data-cell{padding:.5rem;width:100%;color:var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-toggle-input{display:none}.sau-table .sau-table-mobile .sau-table-toggle-input:checked~.sau-table-toggle-content{height:auto!important;opacity:1!important;overflow:visible!important}.sau-table .sau-table-mobile .sau-table-toggle-input:checked+.sau-table-toggle-label .sau-table-toggle-show{display:none}.sau-table .sau-table-mobile .sau-table-toggle-input:checked+.sau-table-toggle-label .sau-table-toggle-hide{display:inline}.sau-table .sau-table-mobile .sau-table-toggle-label{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem;background:var(--sau-color-background);color:var(--sau-color-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}.sau-table .sau-table-mobile .sau-table-toggle-label:hover{background:var(--sau-color-secondary);color:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text{font-size:.875rem;font-weight:500}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text .sau-table-toggle-show{display:inline}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text .sau-table-toggle-hide{display:none}.sau-table .sau-table-mobile .sau-table-toggle-content{margin-top:.75rem;height:0;overflow:hidden;opacity:0;transition:all .3s ease-in-out}.sau-table .sau-table-mobile .sau-table-mobile-actions-row{border-bottom:.5rem solid transparent;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));padding:1rem}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container{display:flex;justify-content:center;gap:1rem;padding:.5rem}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;background:var(--sau-color-background);transition:all .2s;cursor:pointer}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button:hover{color:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button{color:var(--sau-color-edit);border:1px solid var(--sau-color-edit)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button:hover{background:var(--sau-color-edit)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button{color:var(--sau-color-delete);border:1px solid var(--sau-color-delete)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button:hover{background:var(--sau-color-delete)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button{color:var(--sau-color-print);border:1px solid var(--sau-color-print)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button:hover{background:var(--sau-color-print)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button{color:var(--sau-color-show);border:1px solid var(--sau-color-show)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button:hover{background:var(--sau-color-show)}.sau-table .sau-table-desktop{width:100%;font-size:.875rem;text-align:center;color:var(--sau-color-primary)}.sau-table .sau-table-desktop.sau-table-dynamic-mode{display:none}@media(min-width:768px){.sau-table .sau-table-desktop.sau-table-dynamic-mode{display:table}}.sau-table .sau-table-desktop .sau-table-desktop-header{font-size:.75rem;font-weight:600;text-transform:uppercase;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-header .sau-table-desktop-header-cell{padding:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row{min-width:max-content;transition:background-color .2s;border-bottom:1px solid var(--sau-color-primary)}.sau-table .sau-table-desktop .sau-table-desktop-row:last-child{border-bottom:none}.sau-table .sau-table-desktop .sau-table-desktop-row:hover,.sau-table .sau-table-desktop .sau-table-desktop-row.sau-table-desktop-row-even{background:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-cell,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell{padding:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container{display:flex;align-items:center;gap:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:var(--sau-color-background);transition:all .2s;font-size:1.2rem;cursor:pointer}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button:hover{color:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button{color:var(--sau-color-edit);border:1px solid var(--sau-color-edit)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button:hover{background:var(--sau-color-edit)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button{color:var(--sau-color-delete);border:1px solid var(--sau-color-delete)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button:hover{background:var(--sau-color-delete)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button{color:var(--sau-color-print);border:1px solid var(--sau-color-print)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button:hover{background:var(--sau-color-print)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button{color:var(--sau-color-show);border:1px solid var(--sau-color-show)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button:hover{background:var(--sau-color-show)}.sau-table .sau-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:12rem;text-align:center}.sau-table .sau-table-empty .sau-table-empty-icon{position:relative;width:4rem;height:4rem;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:var(--sau-color-primary);font-size:2rem}.sau-table .sau-table-empty .sau-table-empty-icon:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table .sau-table-empty .sau-table-empty-title{color:var(--sau-color-text);font-weight:500}.sau-table .sau-table-empty .sau-table-empty-subtitle{color:var(--sau-color-text);font-size:.875rem}.sau-table .sau-paginator{border-top:1px solid var(--sau-color-primary);--sau-color-primary: inherit !important;--sau-color-secondary: inherit !important;--sau-color-background: inherit !important;--sau-color-edit: inherit !important;--sau-color-delete: inherit !important;--sau-color-text: inherit !important}.sau-table-data-section{display:flex;align-items:center;gap:.5rem}.sau-table-data-section .sau-table-admin-crown{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-secondary)}.sau-table-data-section .sau-table-subkey{display:block;color:var(--sau-color-primary);font-size:.75rem;min-width:max-content}.sau-table-data-type-section{display:inline-block;min-width:max-content;color:var(--sau-color-text)}.sau-table-data-type-section .sau-table-boolean-true{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sau-table-data-type-section .sau-table-boolean-true:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table-data-type-section .sau-table-boolean-false{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sau-table-data-type-section .sau-table-boolean-false:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table-data-type-section .sau-table-datetime{color:var(--sau-color-text);font-size:.875rem}.sau-table-data-type-section .sau-table-color-indicator{display:inline-block;width:2rem;height:1rem}.sau-table-data-type-section .sau-table-link{color:var(--sau-color-primary);text-decoration:none}.sau-table-data-type-section .sau-table-link:hover{text-decoration:underline}.sau-table-data-type-section .sau-table-image{width:2.5rem;height:2.5rem;object-fit:cover}.sau-table-data-type-section .sau-table-login-container{display:inline-flex;align-items:center;gap:.25rem}.sau-table-data-type-section .sau-table-login-container .sau-table-login-email-verified{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-primary)}.sau-table-data-type-section .sau-table-login-container .sau-table-login-google,.sau-table-data-type-section .sau-table-login-inactive{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-secondary)}@keyframes shimmer{0%{transform:translate(-150%)}to{transform:translate(150%)}}.sau-skeleton{pointer-events:none;-webkit-user-select:none;user-select:none}.skeleton-line{position:relative;overflow:hidden;border-radius:4px;-webkit-backdrop-filter:brightness(.9);backdrop-filter:brightness(.9);border:1px solid rgba(0,0,0,.05)}.skeleton-line:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,#fff0,#fff6,#fff0);animation:shimmer 1.8s infinite}.skeleton-line.head{height:12px;width:60px}.skeleton-line.data{height:10px;width:90%}@media screen and (max-width:768px){.sau-skeleton .sau-table-desktop{display:none}}@media screen and (min-width:769px){.sau-skeleton .sau-table-mobile{display:none}}\n"], dependencies: [{ kind: "component", type: SAUTableModule, selector: "sau-table", inputs: ["url", "filterConfig", "contentList", "contentTotal", "pageParamName", "limitParamName", "sizeInitialPage", "sizeBetweenPages", "fixedContent", "orientation", "headers", "showOptions", "canEdit", "canDelete", "canPrint", "canShow", "customTemplates", "items", "limit"], outputs: ["editEvent", "deleteEvent", "printEvent", "showEvent"] }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SAUFilterModule, selector: "sau-filter", inputs: ["filterConfig", "searchButtonText"], outputs: ["onFilterProcessed"] }, { kind: "component", type: SAUPaginatorModule, selector: "sau-paginator", inputs: ["totalPages", "currentPage"], outputs: ["pageChange"] }, { kind: "component", type: ChevronDownIconComponent, selector: "sau-chevron-down-icon" }, { kind: "component", type: PenIconComponent, selector: "sau-pen-icon" }, { kind: "component", type: TrashIconComponent, selector: "sau-trash-icon" }, { kind: "component", type: InboxIconComponent, selector: "sau-inbox-icon" }, { kind: "component", type: PrintIconComponent, selector: "sau-print-icon" }, { kind: "component", type: EyeIconComponent, selector: "sau-eye-icon" }, { kind: "component", type: DataTemplateComponent, selector: "sau-data-template", inputs: ["item", "header", "customTemplates"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
402
528
|
}
|
|
403
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
529
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SAUTableModule, decorators: [{
|
|
404
530
|
type: Component,
|
|
405
531
|
args: [{ selector: 'sau-table', encapsulation: ViewEncapsulation.None, imports: [
|
|
406
532
|
RouterModule,
|
|
407
|
-
DatePipe,
|
|
408
533
|
CommonModule,
|
|
409
534
|
SAUFilterModule,
|
|
410
535
|
SAUPaginatorModule,
|
|
@@ -412,15 +537,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
412
537
|
PenIconComponent,
|
|
413
538
|
TrashIconComponent,
|
|
414
539
|
InboxIconComponent,
|
|
415
|
-
CrownIconComponent,
|
|
416
|
-
CheckIconComponent,
|
|
417
|
-
XmarkIconComponent,
|
|
418
|
-
EnvelopeIconComponent,
|
|
419
|
-
GoogleIconComponent,
|
|
420
540
|
PrintIconComponent,
|
|
421
541
|
EyeIconComponent,
|
|
422
|
-
], template: "<div class=\"sau-table\">\n\n @if(filterConfig){\n <sau-filter #filterComponent [filterConfig]=\"filterConfig\"\n (onFilterProcessed)=\"onFiltersChange($event.url)\"></sau-filter>\n }\n\n @if (loading) {\n <div class=\"sau-skeleton\">\n\n <div class=\"sau-table-mobile\">\n <div class=\"sau-table-mobile-header\">\n <div class=\"skeleton-line head\" style=\"width: 150px; height: 24px;\"></div>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (i of [1,2,3]; track $index) {\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (h of headers; track $index) {\n <tr [class]=\"$index % 2 == 0 ? 'sau-table-mobile-row-even' : ''\">\n <th class=\"sau-table-mobile-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n </tr>\n }\n\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(editButtonTemplate){\n\n } @else if(hasEditSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(deleteButtonTemplate){\n\n } @else if(hasDeleteSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(printButtonTemplate){\n\n } @else if(hasPrintSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(showButtonTemplate){\n\n } @else if(hasShowSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n </div>\n </td>\n </tr>\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <table class=\"sau-table-desktop\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (h of headers; track $index) {\n <th class=\"sau-table-desktop-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n }\n @if(this.url){ <th class=\"sau-table-desktop-header-cell\"></th> }\n </tr>\n </thead>\n <tbody>\n @for (i of [1,2,3,4,5]; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index % 2 == 0 ? 'sau-table-desktop-row-even' : '')\">\n @for (h of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n }\n @if(this.url){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"skeleton-line data\" style=\"width: 40px; margin: 0 auto;\"></div>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n } @else {\n\n\n\n <!----------------------------------- Table mobile ----------------------------------->\n @if(orientation=='dynamic' || orientation=='vertical'){\n <div class=\"sau-table-mobile\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <!-- Mobile header -->\n <div class=\"sau-table-mobile-header\">\n <h3 class=\"sau-table-mobile-title\">Lista de elementos</h3>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (item of items; track $index) {\n @let itemIndex = $index;\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (header of headers; track $index) {\n <tr [class]=\"$index%2==0?'sau-table-mobile-row-even':''\">\n\n <th scope=\"col\" class=\"sau-table-mobile-header-cell\">\n {{header.name}}\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n\n @if(header.type == 'table' && !isArray(header.key)){\n\n <!-- CSS-only toggle button -->\n <input type=\"checkbox\" [id]=\"'toggle-table-' + itemIndex\"\n class=\"sau-table-toggle-input\">\n <label [for]=\"'toggle-table-' + itemIndex\" class=\"sau-table-toggle-label\">\n <span class=\"sau-icon sau-icon-chevron-down\">\n <sau-chevron-down-icon></sau-chevron-down-icon>\n </span>\n <span class=\"sau-table-toggle-text\">\n <span class=\"sau-table-toggle-show\">Mostrar</span>\n <span class=\"sau-table-toggle-hide\">Ocultar</span>\n </span>\n </label>\n\n <!-- Content that toggles -->\n <div class=\"sau-table-toggle-content\">\n <sau-table [headers]=\"header.headers\"\n [items]=\"getValue(item, header.key)\"></sau-table>\n </div>\n\n }@else{\n <ng-container [ngTemplateOutlet]=\"DataTemplate\"\n [ngTemplateOutletContext]=\"{item:item, header:header}\"></ng-container>\n\n }\n\n </td>\n\n </tr>\n }\n\n @if(showOptions){\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-edit-button\" (click)=\"clickEditButton(item.id)\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n Editar\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-delete-button\"\n (click)=\"clickDeleteButton(item.id)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n Eliminar\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-print-button\" (click)=\"clickPrintButton(item.id)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n Imprimir\n </button>\n }\n }\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-show-button\" (click)=\"clickShowButton(item.id)\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n Mostrar\n </button>\n }\n }\n\n </div>\n </td>\n </tr>\n }\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n <!--------------------------------- Table mobile end --------------------------------->\n\n <!----------------------------------- Table desktop ----------------------------------->\n @if(orientation=='dynamic' || orientation=='horizontal'){\n <table class=\"sau-table-desktop\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (header of headers; track $index) {\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n {{header.name}}\n </th>\n }\n\n @if(showOptions){\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n Opciones\n </th>\n }\n\n </tr>\n </thead>\n <tbody>\n @for (item of items; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index%2==0?'sau-table-desktop-row-even':'')\">\n\n @for (header of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n\n @if(header.type == 'table'){\n\n @if(!isArray(header.key)){\n <sau-table [headers]=\"header.headers\" [items]=\"getValue(item, header.key)\"></sau-table>\n }\n\n }@else{\n <ng-container [ngTemplateOutlet]=\"DataTemplate\"\n [ngTemplateOutletContext]=\"{item:item, header:header}\"></ng-container>\n }\n\n </td>\n }\n\n @if(showOptions){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"sau-table-desktop-actions-container\">\n\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-desktop-edit-button\" (click)=\"clickEditButton(item.id)\" title=\"Editar\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-desktop-delete-button\" (click)=\"clickDeleteButton(item.id)\"\n title=\"Eliminar\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-desktop-print-button\" (click)=\"clickPrintButton(item.id)\"\n title=\"Imprimir\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n </button>\n }\n }\n\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-desktop-show-button\" (click)=\"clickShowButton(item.id)\"\n title=\"Mostrar\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n </button>\n }\n }\n\n </div>\n </td>\n }\n\n </tr>\n }\n </tbody>\n </table>\n }\n <!--------------------------------- table desktop end --------------------------------->\n\n @if (items.length == 0) {\n <div class=\"sau-table-empty\">\n <div class=\"sau-table-empty-icon\">\n <span class=\"sau-icon sau-icon-inbox\">\n <sau-inbox-icon></sau-inbox-icon>\n </span>\n </div>\n <p class=\"sau-table-empty-title\">No hay elementos</p>\n <p class=\"sau-table-empty-subtitle\">Los elementos aparecer\u00E1n aqu\u00ED cuando est\u00E9n disponibles</p>\n </div>\n\n } @else if(total > 1) {\n\n <sau-paginator [totalPages]=\"total\" [currentPage]=\"page\" (pageChange)=\"onPageChange($event)\"></sau-paginator>\n\n }\n\n\n }\n</div>\n\n<!----------------------------------- Data template ----------------------------------->\n<ng-template #DataTemplate let-item=\"item\" let-header=\"header\">\n\n <section class=\"sau-table-data-section\">\n\n @if(header.name == 'NOMBRE' && item.role == 'ROLE_ADMIN') {\n <div class=\"sau-table-admin-crown\">\n <span class=\"sau-icon sau-icon-crown\">\n <sau-crown-icon></sau-crown-icon>\n </span>\n </div>\n }\n\n @let customTmpl = getCustomTemplate(header.key);\n\n @if (customTmpl) {\n\n <section class=\"sau-table-data-type-section\">\n <ng-container [ngTemplateOutlet]=\"customTmpl\" [ngTemplateOutletContext]=\"{item: item, header: header}\">\n </ng-container>\n </section>\n\n } @else {\n <span>\n\n @if (header.innerHtml) {\n <span [innerHTML]=\"getValue(item, header.key)\"></span>\n } @else {\n <ng-container [ngTemplateOutlet]=\"DataTypeTemplate\"\n [ngTemplateOutletContext]=\"{item:item, header:header, value:header.key}\"></ng-container>\n }\n\n @if(header.subKey){\n <span class=\"sau-table-subkey\">\n (\n <ng-container [ngTemplateOutlet]=\"DataTypeTemplate\"\n [ngTemplateOutletContext]=\"{item:item, header:header, value:header.subKey}\"></ng-container>\n )\n </span>\n }\n\n </span>\n }\n\n </section>\n\n</ng-template>\n<!--------------------------------- Data template end --------------------------------->\n\n<!----------------------------------- Data Type template ----------------------------------->\n<ng-template #DataTypeTemplate let-item=\"item\" let-header=\"header\" let-value=\"value\">\n\n <section class=\"sau-table-data-type-section\">\n @switch (header.type) {\n\n @case ('boolean') {\n @if(getValue(item, value)){\n <div class=\"sau-table-boolean-true\">\n <span class=\"sau-icon sau-icon-check\">\n <sau-check-icon></sau-check-icon>\n </span>\n </div>\n } @else {\n <div class=\"sau-table-boolean-false\">\n <span class=\"sau-icon sau-icon-xmark\">\n <sau-xmark-icon></sau-xmark-icon>\n </span>\n </div>\n }\n }\n\n @case ('date') {\n <span class=\"sau-table-date\">\n {{getValue(item, value) | date: 'dd/MM/yyyy'}}\n </span>\n }\n\n @case ('dateTime') {\n <span class=\"sau-table-datetime\">\n {{getValue(item, value) | date: 'dd/MM/yyyy HH:mm'}}\n </span>\n }\n\n @case ('color'){\n <span class=\"sau-table-color-indicator\" [style.background-color]=\"getValue(item, value)\"></span>\n }\n\n @case ('link'){\n @let link = getLink(header.url, item, value);\n\n @if(link.isExternal){\n <a [href]=\"link.url\" class=\"sau-table-link\">\n {{header.linkName}}\n </a>\n }@else{\n <a [routerLink]=\"link.url\" class=\"sau-table-link\" target=\"_blank\">\n {{header.linkName}}\n </a>\n }\n\n }\n\n @case ('image'){\n @let link = getLink(header.url, item, value);\n\n <img [src]=\"link.url\" [alt]=\"getValue(item, value)\" loading=\"lazy\" class=\"sau-table-image\">\n }\n\n @case ('login'){\n @if(item.active){\n <span class=\"sau-table-login-container\">\n\n @if(item.email_verified_at){\n <div [title]=\"item.email\" class=\"sau-table-login-email-verified\">\n <span class=\"sau-icon sau-icon-envelope\">\n <sau-envelope-icon></sau-envelope-icon>\n </span>\n </div>\n }\n\n @if(item.google_id){\n <div [title]=\"item.google_id\" class=\"sau-table-login-google\">\n <span class=\"sau-icon sau-icon-google\">\n <sau-google-icon></sau-google-icon>\n </span>\n </div>\n }\n\n </span>\n } @else {\n <div class=\"sau-table-login-inactive\">\n <span class=\"sau-icon sau-icon-xmark\">\n <sau-xmark-icon></sau-xmark-icon>\n </span>\n </div>\n }\n }\n\n @default {\n {{getValue(item, value)}}\n }\n }\n </section>\n\n</ng-template>\n<!--------------------------------- Data Type template end --------------------------------->", styles: [".sau-table{--sau-color-primary: rgb(147, 51, 234);--sau-color-secondary: var(--sau-color-primary);--sau-color-background: rgb(255, 255, 255);--sau-color-edit: rgb(34, 197, 94);--sau-color-delete: rgb(239, 68, 68);--sau-color-print: rgb(212, 167, 44);--sau-color-show: rgb(44, 122, 212);--sau-color-text: rgb(31, 41, 55);overflow:auto;background:var(--sau-color-background)}.sau-table .sau-filter{margin-bottom:.5rem}.sau-table table{border-collapse:collapse}.sau-table .sau-table-width-full{width:100%}.sau-table .sau-icon{display:inline-block;width:1em;height:1em;vertical-align:middle;display:flex;align-items:center;justify-content:center}.sau-table .sau-icon svg{width:100%;height:100%;fill:currentColor}.sau-table .sau-icon.sau-icon-chevron-down svg{width:1.8em;height:1.8em}.sau-table .sau-icon.sau-icon-inbox svg{width:1.5em;height:1.5em}@media(min-width:768px){.sau-table .sau-table-mobile.sau-table-dynamic-mode{display:none}}.sau-table .sau-table-mobile .sau-table-mobile-header{background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background);padding:.5rem 1rem}.sau-table .sau-table-mobile .sau-table-mobile-header .sau-table-mobile-title{font-size:1rem;font-weight:600;line-height:1.25}.sau-table .sau-table-mobile .sau-table-mobile-header .sau-table-mobile-divider{width:2rem;height:.125rem;background:var(--sau-color-background);margin-top:.25rem}.sau-table .sau-table-mobile .sau-table-mobile-table{width:100%;font-size:.875rem;text-align:left;color:var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row{border-bottom:1px solid var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row:last-child{border-bottom:none}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row.sau-table-mobile-row-even{background:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row .sau-table-mobile-header-cell{padding:.5rem;font-weight:500;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background);max-width:min-content}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row .sau-table-mobile-data-cell{padding:.5rem;width:100%;color:var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-toggle-input{display:none}.sau-table .sau-table-mobile .sau-table-toggle-input:checked~.sau-table-toggle-content{height:auto!important;opacity:1!important;overflow:visible!important}.sau-table .sau-table-mobile .sau-table-toggle-input:checked+.sau-table-toggle-label .sau-table-toggle-show{display:none}.sau-table .sau-table-mobile .sau-table-toggle-input:checked+.sau-table-toggle-label .sau-table-toggle-hide{display:inline}.sau-table .sau-table-mobile .sau-table-toggle-label{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem;background:var(--sau-color-background);color:var(--sau-color-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}.sau-table .sau-table-mobile .sau-table-toggle-label:hover{background:var(--sau-color-secondary);color:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text{font-size:.875rem;font-weight:500}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text .sau-table-toggle-show{display:inline}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text .sau-table-toggle-hide{display:none}.sau-table .sau-table-mobile .sau-table-toggle-content{margin-top:.75rem;height:0;overflow:hidden;opacity:0;transition:all .3s ease-in-out}.sau-table .sau-table-mobile .sau-table-mobile-actions-row{border-bottom:.5rem solid transparent;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));padding:1rem}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container{display:flex;justify-content:center;gap:1rem;padding:.5rem}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;background:var(--sau-color-background);transition:all .2s;cursor:pointer}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button:hover{color:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button{color:var(--sau-color-edit);border:1px solid var(--sau-color-edit)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button:hover{background:var(--sau-color-edit)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button{color:var(--sau-color-delete);border:1px solid var(--sau-color-delete)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button:hover{background:var(--sau-color-delete)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button{color:var(--sau-color-print);border:1px solid var(--sau-color-print)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button:hover{background:var(--sau-color-print)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button{color:var(--sau-color-show);border:1px solid var(--sau-color-show)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button:hover{background:var(--sau-color-show)}.sau-table .sau-table-desktop{width:100%;font-size:.875rem;text-align:center;color:var(--sau-color-primary)}.sau-table .sau-table-desktop.sau-table-dynamic-mode{display:none}@media(min-width:768px){.sau-table .sau-table-desktop.sau-table-dynamic-mode{display:table}}.sau-table .sau-table-desktop .sau-table-desktop-header{font-size:.75rem;font-weight:600;text-transform:uppercase;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-header .sau-table-desktop-header-cell{padding:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row{min-width:max-content;transition:background-color .2s;border-bottom:1px solid var(--sau-color-primary)}.sau-table .sau-table-desktop .sau-table-desktop-row:last-child{border-bottom:none}.sau-table .sau-table-desktop .sau-table-desktop-row:hover,.sau-table .sau-table-desktop .sau-table-desktop-row.sau-table-desktop-row-even{background:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-cell,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell{padding:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container{display:flex;align-items:center;gap:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:var(--sau-color-background);transition:all .2s;font-size:1.2rem;cursor:pointer}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button:hover{color:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button{color:var(--sau-color-edit);border:1px solid var(--sau-color-edit)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button:hover{background:var(--sau-color-edit)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button{color:var(--sau-color-delete);border:1px solid var(--sau-color-delete)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button:hover{background:var(--sau-color-delete)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button{color:var(--sau-color-print);border:1px solid var(--sau-color-print)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button:hover{background:var(--sau-color-print)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button{color:var(--sau-color-show);border:1px solid var(--sau-color-show)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button:hover{background:var(--sau-color-show)}.sau-table .sau-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:12rem;text-align:center}.sau-table .sau-table-empty .sau-table-empty-icon{position:relative;width:4rem;height:4rem;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:var(--sau-color-primary);font-size:2rem}.sau-table .sau-table-empty .sau-table-empty-icon:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table .sau-table-empty .sau-table-empty-title{color:var(--sau-color-text);font-weight:500}.sau-table .sau-table-empty .sau-table-empty-subtitle{color:var(--sau-color-text);font-size:.875rem}.sau-table .sau-paginator{border-top:1px solid var(--sau-color-primary);--sau-color-primary: inherit !important;--sau-color-secondary: inherit !important;--sau-color-background: inherit !important;--sau-color-edit: inherit !important;--sau-color-delete: inherit !important;--sau-color-text: inherit !important}.sau-table-data-section{display:flex;align-items:center;gap:.5rem}.sau-table-data-section .sau-table-admin-crown{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-secondary)}.sau-table-data-section .sau-table-subkey{display:block;color:var(--sau-color-primary);font-size:.75rem;min-width:max-content}.sau-table-data-type-section{display:inline-block;min-width:max-content;color:var(--sau-color-text)}.sau-table-data-type-section .sau-table-boolean-true{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sau-table-data-type-section .sau-table-boolean-true:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table-data-type-section .sau-table-boolean-false{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sau-table-data-type-section .sau-table-boolean-false:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table-data-type-section .sau-table-datetime{color:var(--sau-color-text);font-size:.875rem}.sau-table-data-type-section .sau-table-color-indicator{display:inline-block;width:2rem;height:1rem}.sau-table-data-type-section .sau-table-link{color:var(--sau-color-primary);text-decoration:none}.sau-table-data-type-section .sau-table-link:hover{text-decoration:underline}.sau-table-data-type-section .sau-table-image{width:2.5rem;height:2.5rem;object-fit:cover}.sau-table-data-type-section .sau-table-login-container{display:inline-flex;align-items:center;gap:.25rem}.sau-table-data-type-section .sau-table-login-container .sau-table-login-email-verified{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-primary)}.sau-table-data-type-section .sau-table-login-container .sau-table-login-google,.sau-table-data-type-section .sau-table-login-inactive{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-secondary)}@keyframes shimmer{0%{transform:translate(-150%)}to{transform:translate(150%)}}.sau-skeleton{pointer-events:none;-webkit-user-select:none;user-select:none}.skeleton-line{position:relative;overflow:hidden;border-radius:4px;-webkit-backdrop-filter:brightness(.9);backdrop-filter:brightness(.9);border:1px solid rgba(0,0,0,.05)}.skeleton-line:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,#fff0,#fff6,#fff0);animation:shimmer 1.8s infinite}.skeleton-line.head{height:12px;width:60px}.skeleton-line.data{height:10px;width:90%}@media screen and (max-width:768px){.sau-skeleton .sau-table-desktop{display:none}}@media screen and (min-width:769px){.sau-skeleton .sau-table-mobile{display:none}}\n"] }]
|
|
423
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.ChangeDetectorRef }], propDecorators: { url: [{
|
|
542
|
+
DataTemplateComponent,
|
|
543
|
+
], template: "<div class=\"sau-table\">\n\n @if(filterConfig){\n <sau-filter #filterComponent [filterConfig]=\"filterConfig\"\n (onFilterProcessed)=\"onFiltersChange($event.url)\"></sau-filter>\n }\n\n @if (loading) {\n <div class=\"sau-skeleton\">\n\n <div class=\"sau-table-mobile\">\n <div class=\"sau-table-mobile-header\">\n <div class=\"skeleton-line head\" style=\"width: 150px; height: 24px;\"></div>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (i of [1,2,3]; track $index) {\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (h of headers; track $index) {\n <tr [class]=\"$index % 2 == 0 ? 'sau-table-mobile-row-even' : ''\">\n <th class=\"sau-table-mobile-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n </tr>\n }\n\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(editButtonTemplate){\n\n } @else if(hasEditSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(deleteButtonTemplate){\n\n } @else if(hasDeleteSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(printButtonTemplate){\n\n } @else if(hasPrintSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n @if(showButtonTemplate){\n\n } @else if(hasShowSubscription){\n <div class=\"skeleton-line head\"></div>\n }\n\n </div>\n </td>\n </tr>\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <table class=\"sau-table-desktop\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (h of headers; track $index) {\n <th class=\"sau-table-desktop-header-cell\">\n <div class=\"skeleton-line head\"></div>\n </th>\n }\n @if(this.url){ <th class=\"sau-table-desktop-header-cell\"></th> }\n </tr>\n </thead>\n <tbody>\n @for (i of [1,2,3,4,5]; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index % 2 == 0 ? 'sau-table-desktop-row-even' : '')\">\n @for (h of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n <div class=\"skeleton-line data\"></div>\n </td>\n }\n @if(this.url){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"skeleton-line data\" style=\"width: 40px; margin: 0 auto;\"></div>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n } @else {\n\n\n\n <!----------------------------------- Table mobile ----------------------------------->\n @if(orientation=='dynamic' || orientation=='vertical'){\n <div class=\"sau-table-mobile\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <!-- Mobile header -->\n <div class=\"sau-table-mobile-header\">\n <h3 class=\"sau-table-mobile-title\">Lista de elementos</h3>\n <div class=\"sau-table-mobile-divider\"></div>\n </div>\n\n <table class=\"sau-table-mobile-table\">\n <tbody>\n @for (item of items; track $index) {\n @let itemIndex = $index;\n <tr class=\"sau-table-mobile-row\">\n <td>\n <table class=\"sau-table-width-full\">\n <tbody>\n @for (header of headers; track $index) {\n <tr [class]=\"$index%2==0?'sau-table-mobile-row-even':''\">\n\n <th scope=\"col\" class=\"sau-table-mobile-header-cell\">\n {{header.name}}\n </th>\n <td class=\"sau-table-mobile-data-cell\">\n\n @if(header.type == 'table' && !isArray(header.key)){\n\n <!-- CSS-only toggle button -->\n <input type=\"checkbox\" [id]=\"'toggle-table-' + itemIndex\"\n class=\"sau-table-toggle-input\">\n <label [for]=\"'toggle-table-' + itemIndex\" class=\"sau-table-toggle-label\">\n <span class=\"sau-icon sau-icon-chevron-down\">\n <sau-chevron-down-icon></sau-chevron-down-icon>\n </span>\n <span class=\"sau-table-toggle-text\">\n <span class=\"sau-table-toggle-show\">Mostrar</span>\n <span class=\"sau-table-toggle-hide\">Ocultar</span>\n </span>\n </label>\n\n <!-- Content that toggles -->\n <div class=\"sau-table-toggle-content\">\n <sau-table [headers]=\"header.headers\"\n [items]=\"getValue(item, header.key)\"></sau-table>\n </div>\n\n }@else{\n <sau-data-template [item]=\"item\" [header]=\"header\"\n [customTemplates]=\"customTemplates\"></sau-data-template>\n\n }\n\n </td>\n\n </tr>\n }\n\n @if(showOptions){\n <tr class=\"sau-table-mobile-actions-row\">\n <td colspan=\"2\">\n <div class=\"sau-table-mobile-actions-container\">\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-edit-button\" (click)=\"clickEditButton(item)\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n Editar\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-delete-button\" (click)=\"clickDeleteButton(item)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n Eliminar\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-print-button\" (click)=\"clickPrintButton(item)\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n Imprimir\n </button>\n }\n }\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-show-button\" (click)=\"clickShowButton(item)\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n Mostrar\n </button>\n }\n }\n\n </div>\n </td>\n </tr>\n }\n\n </tbody>\n </table>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n <!--------------------------------- Table mobile end --------------------------------->\n\n <!----------------------------------- Table desktop ----------------------------------->\n @if(orientation=='dynamic' || orientation=='horizontal'){\n <table class=\"sau-table-desktop\" [class.sau-table-dynamic-mode]=\"orientation=='dynamic'\">\n <thead class=\"sau-table-desktop-header\">\n <tr>\n @for (header of headers; track $index) {\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n {{header.name}}\n </th>\n }\n\n @if(showOptions){\n <th scope=\"col\" class=\"sau-table-desktop-header-cell\">\n Opciones\n </th>\n }\n\n </tr>\n </thead>\n <tbody>\n @for (item of items; track $index) {\n <tr [class]=\"'sau-table-desktop-row ' + ($index%2==0?'sau-table-desktop-row-even':'')\">\n\n @for (header of headers; track $index) {\n <td class=\"sau-table-desktop-cell\">\n\n @if(header.type == 'table'){\n\n @if(!isArray(header.key)){\n <sau-table [headers]=\"header.headers\" [items]=\"getValue(item, header.key)\"></sau-table>\n }\n\n }@else{\n <sau-data-template [item]=\"item\" [header]=\"header\"\n [customTemplates]=\"customTemplates\"></sau-data-template>\n }\n\n </td>\n }\n\n @if(showOptions){\n <td class=\"sau-table-desktop-actions-cell\">\n <div class=\"sau-table-desktop-actions-container\">\n\n @if(showEdit(item)){\n @if(editButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"editButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasEditSubscription){\n <button class=\"sau-table-desktop-edit-button\" (click)=\"clickEditButton(item)\" title=\"Editar\">\n <span class=\"sau-icon sau-icon-pen\">\n <sau-pen-icon></sau-pen-icon>\n </span>\n </button>\n }\n }\n\n @if(showDelete(item)){\n @if(deleteButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"deleteButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasDeleteSubscription){\n <button class=\"sau-table-desktop-delete-button\" (click)=\"clickDeleteButton(item)\"\n title=\"Eliminar\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-trash-icon></sau-trash-icon>\n </span>\n </button>\n }\n }\n\n @if(showPrint(item)){\n @if(printButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"printButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasPrintSubscription){\n <button class=\"sau-table-desktop-print-button\" (click)=\"clickPrintButton(item)\"\n title=\"Imprimir\">\n <span class=\"sau-icon sau-icon-trash\">\n <sau-print-icon></sau-print-icon>\n </span>\n </button>\n }\n }\n\n\n @if(showShow(item)){\n @if(showButtonTemplate){\n <ng-container\n *ngTemplateOutlet=\"showButtonTemplate; context: { $implicit: item }\"></ng-container>\n\n } @else if(hasShowSubscription){\n <button class=\"sau-table-desktop-show-button\" (click)=\"clickShowButton(item)\" title=\"Mostrar\">\n <span class=\"sau-icon sau-icon-eye\">\n <sau-eye-icon></sau-eye-icon>\n </span>\n </button>\n }\n }\n\n </div>\n </td>\n }\n\n </tr>\n }\n </tbody>\n </table>\n }\n <!--------------------------------- table desktop end --------------------------------->\n\n @if (items.length == 0) {\n <div class=\"sau-table-empty\">\n <div class=\"sau-table-empty-icon\">\n <span class=\"sau-icon sau-icon-inbox\">\n <sau-inbox-icon></sau-inbox-icon>\n </span>\n </div>\n <p class=\"sau-table-empty-title\">No hay elementos</p>\n <p class=\"sau-table-empty-subtitle\">Los elementos aparecer\u00E1n aqu\u00ED cuando est\u00E9n disponibles</p>\n </div>\n\n } @else if(total > 1) {\n\n <sau-paginator [totalPages]=\"total\" [currentPage]=\"page\" (pageChange)=\"onPageChange($event)\"></sau-paginator>\n\n }\n\n\n }\n</div>", styles: [".sau-table{--sau-color-primary: rgb(147, 51, 234);--sau-color-secondary: var(--sau-color-primary);--sau-color-background: rgb(255, 255, 255);--sau-color-edit: rgb(34, 197, 94);--sau-color-delete: rgb(239, 68, 68);--sau-color-print: rgb(212, 167, 44);--sau-color-show: rgb(44, 122, 212);--sau-color-text: rgb(31, 41, 55);overflow:auto;background:var(--sau-color-background)}.sau-table .sau-filter{margin-bottom:.5rem}.sau-table table{border-collapse:collapse}.sau-table .sau-table-width-full{width:100%}.sau-table .sau-icon{display:inline-block;width:1em;height:1em;vertical-align:middle;display:flex;align-items:center;justify-content:center}.sau-table .sau-icon svg{width:100%;height:100%;fill:currentColor}.sau-table .sau-icon.sau-icon-chevron-down svg{width:1.8em;height:1.8em}.sau-table .sau-icon.sau-icon-inbox svg{width:1.5em;height:1.5em}@media(min-width:768px){.sau-table .sau-table-mobile.sau-table-dynamic-mode{display:none}}.sau-table .sau-table-mobile .sau-table-mobile-header{background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background);padding:.5rem 1rem}.sau-table .sau-table-mobile .sau-table-mobile-header .sau-table-mobile-title{font-size:1rem;font-weight:600;line-height:1.25}.sau-table .sau-table-mobile .sau-table-mobile-header .sau-table-mobile-divider{width:2rem;height:.125rem;background:var(--sau-color-background);margin-top:.25rem}.sau-table .sau-table-mobile .sau-table-mobile-table{width:100%;font-size:.875rem;text-align:left;color:var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row{border-bottom:1px solid var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row:last-child{border-bottom:none}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row.sau-table-mobile-row-even{background:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row .sau-table-mobile-header-cell{padding:.5rem;font-weight:500;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background);max-width:min-content}.sau-table .sau-table-mobile .sau-table-mobile-table .sau-table-mobile-row .sau-table-mobile-data-cell{padding:.5rem;width:100%;color:var(--sau-color-primary)}.sau-table .sau-table-mobile .sau-table-toggle-input{display:none}.sau-table .sau-table-mobile .sau-table-toggle-input:checked~.sau-table-toggle-content{height:auto!important;opacity:1!important;overflow:visible!important}.sau-table .sau-table-mobile .sau-table-toggle-input:checked+.sau-table-toggle-label .sau-table-toggle-show{display:none}.sau-table .sau-table-mobile .sau-table-toggle-input:checked+.sau-table-toggle-label .sau-table-toggle-hide{display:inline}.sau-table .sau-table-mobile .sau-table-toggle-label{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem;background:var(--sau-color-background);color:var(--sau-color-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}.sau-table .sau-table-mobile .sau-table-toggle-label:hover{background:var(--sau-color-secondary);color:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text{font-size:.875rem;font-weight:500}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text .sau-table-toggle-show{display:inline}.sau-table .sau-table-mobile .sau-table-toggle-label .sau-table-toggle-text .sau-table-toggle-hide{display:none}.sau-table .sau-table-mobile .sau-table-toggle-content{margin-top:.75rem;height:0;overflow:hidden;opacity:0;transition:all .3s ease-in-out}.sau-table .sau-table-mobile .sau-table-mobile-actions-row{border-bottom:.5rem solid transparent;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));padding:1rem}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container{display:flex;justify-content:center;gap:1rem;padding:.5rem}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;background:var(--sau-color-background);transition:all .2s;cursor:pointer}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button:hover,.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button:hover{color:var(--sau-color-background)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button{color:var(--sau-color-edit);border:1px solid var(--sau-color-edit)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-edit-button:hover{background:var(--sau-color-edit)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button{color:var(--sau-color-delete);border:1px solid var(--sau-color-delete)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-delete-button:hover{background:var(--sau-color-delete)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button{color:var(--sau-color-print);border:1px solid var(--sau-color-print)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-print-button:hover{background:var(--sau-color-print)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button{color:var(--sau-color-show);border:1px solid var(--sau-color-show)}.sau-table .sau-table-mobile .sau-table-mobile-actions-row .sau-table-mobile-actions-container .sau-table-show-button:hover{background:var(--sau-color-show)}.sau-table .sau-table-desktop{width:100%;font-size:.875rem;text-align:center;color:var(--sau-color-primary)}.sau-table .sau-table-desktop.sau-table-dynamic-mode{display:none}@media(min-width:768px){.sau-table .sau-table-desktop.sau-table-dynamic-mode{display:table}}.sau-table .sau-table-desktop .sau-table-desktop-header{font-size:.75rem;font-weight:600;text-transform:uppercase;background:linear-gradient(to right,var(--sau-color-primary),var(--sau-color-secondary));color:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-header .sau-table-desktop-header-cell{padding:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row{min-width:max-content;transition:background-color .2s;border-bottom:1px solid var(--sau-color-primary)}.sau-table .sau-table-desktop .sau-table-desktop-row:last-child{border-bottom:none}.sau-table .sau-table-desktop .sau-table-desktop-row:hover,.sau-table .sau-table-desktop .sau-table-desktop-row.sau-table-desktop-row-even{background:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-cell,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell{padding:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container{display:flex;align-items:center;gap:.5rem}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:var(--sau-color-background);transition:all .2s;font-size:1.2rem;cursor:pointer}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button:hover,.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button:hover{color:var(--sau-color-background)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button{color:var(--sau-color-edit);border:1px solid var(--sau-color-edit)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-edit-button:hover{background:var(--sau-color-edit)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button{color:var(--sau-color-delete);border:1px solid var(--sau-color-delete)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-delete-button:hover{background:var(--sau-color-delete)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button{color:var(--sau-color-print);border:1px solid var(--sau-color-print)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-print-button:hover{background:var(--sau-color-print)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button{color:var(--sau-color-show);border:1px solid var(--sau-color-show)}.sau-table .sau-table-desktop .sau-table-desktop-row .sau-table-desktop-actions-cell .sau-table-desktop-actions-container .sau-table-desktop-show-button:hover{background:var(--sau-color-show)}.sau-table .sau-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:12rem;text-align:center}.sau-table .sau-table-empty .sau-table-empty-icon{position:relative;width:4rem;height:4rem;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:var(--sau-color-primary);font-size:2rem}.sau-table .sau-table-empty .sau-table-empty-icon:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table .sau-table-empty .sau-table-empty-title{color:var(--sau-color-text);font-weight:500}.sau-table .sau-table-empty .sau-table-empty-subtitle{color:var(--sau-color-text);font-size:.875rem}.sau-table .sau-paginator{border-top:1px solid var(--sau-color-primary);--sau-color-primary: inherit !important;--sau-color-secondary: inherit !important;--sau-color-background: inherit !important;--sau-color-edit: inherit !important;--sau-color-delete: inherit !important;--sau-color-text: inherit !important}.sau-table-data-section{display:flex;align-items:center;gap:.5rem}.sau-table-data-section .sau-table-admin-crown{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-secondary)}.sau-table-data-section .sau-table-subkey{display:block;color:var(--sau-color-primary);font-size:.75rem;min-width:max-content}.sau-table-data-type-section{display:inline-block;min-width:max-content;color:var(--sau-color-text)}.sau-table-data-type-section .sau-table-boolean-true{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sau-table-data-type-section .sau-table-boolean-true:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table-data-type-section .sau-table-boolean-false{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sau-table-data-type-section .sau-table-boolean-false:after{content:\"\";width:100%;height:100%;background:var(--sau-color-primary);position:absolute;top:0;left:0;opacity:.3;border-radius:50%}.sau-table-data-type-section .sau-table-datetime{color:var(--sau-color-text);font-size:.875rem}.sau-table-data-type-section .sau-table-color-indicator{display:inline-block;width:2rem;height:1rem}.sau-table-data-type-section .sau-table-link{color:var(--sau-color-primary);text-decoration:none}.sau-table-data-type-section .sau-table-link:hover{text-decoration:underline}.sau-table-data-type-section .sau-table-image{width:2.5rem;height:2.5rem;object-fit:cover}.sau-table-data-type-section .sau-table-login-container{display:inline-flex;align-items:center;gap:.25rem}.sau-table-data-type-section .sau-table-login-container .sau-table-login-email-verified{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-primary)}.sau-table-data-type-section .sau-table-login-container .sau-table-login-google,.sau-table-data-type-section .sau-table-login-inactive{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;background:var(--sau-color-secondary)}@keyframes shimmer{0%{transform:translate(-150%)}to{transform:translate(150%)}}.sau-skeleton{pointer-events:none;-webkit-user-select:none;user-select:none}.skeleton-line{position:relative;overflow:hidden;border-radius:4px;-webkit-backdrop-filter:brightness(.9);backdrop-filter:brightness(.9);border:1px solid rgba(0,0,0,.05)}.skeleton-line:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,#fff0,#fff6,#fff0);animation:shimmer 1.8s infinite}.skeleton-line.head{height:12px;width:60px}.skeleton-line.data{height:10px;width:90%}@media screen and (max-width:768px){.sau-skeleton .sau-table-desktop{display:none}}@media screen and (min-width:769px){.sau-skeleton .sau-table-mobile{display:none}}\n"] }]
|
|
544
|
+
}], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i0.ChangeDetectorRef }], propDecorators: { url: [{
|
|
424
545
|
type: Input
|
|
425
546
|
}], filterConfig: [{
|
|
426
547
|
type: Input
|
|
@@ -494,5 +615,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
494
615
|
* Generated bundle index. Do not edit.
|
|
495
616
|
*/
|
|
496
617
|
|
|
497
|
-
export { SAUTableModule };
|
|
618
|
+
export { DataTemplateComponent, DataTypeTemplateComponent, SAUTableModule };
|
|
498
619
|
//# sourceMappingURL=some-angular-utils-table.mjs.map
|