@yuuvis/client-framework 3.15.0 → 3.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/yuuvis-client-framework-actions.mjs +21 -25
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-app-bar.mjs +3 -3
- package/fesm2022/yuuvis-client-framework-badges.mjs +20 -13
- package/fesm2022/yuuvis-client-framework-badges.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-breadcrumb.mjs +3 -3
- package/fesm2022/yuuvis-client-framework-clipboard.mjs +3 -3
- package/fesm2022/yuuvis-client-framework-datepicker.mjs +31 -31
- package/fesm2022/yuuvis-client-framework-forms.mjs +286 -178
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-icons.mjs +9 -9
- package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs +7 -7
- package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs +18 -18
- package/fesm2022/yuuvis-client-framework-object-details.mjs +28 -28
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +18 -18
- package/fesm2022/yuuvis-client-framework-object-form.mjs +34 -34
- package/fesm2022/yuuvis-client-framework-object-preview.mjs +9 -9
- package/fesm2022/yuuvis-client-framework-object-relationship.mjs +73 -45
- package/fesm2022/yuuvis-client-framework-object-relationship.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-summary.mjs +13 -13
- package/fesm2022/yuuvis-client-framework-object-versions.mjs +7 -7
- package/fesm2022/yuuvis-client-framework-pagination.mjs +3 -3
- package/fesm2022/yuuvis-client-framework-query-list.mjs +7 -7
- package/fesm2022/yuuvis-client-framework-renderer.mjs +101 -74
- package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs +4 -4
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-simple-search.mjs +3 -3
- package/fesm2022/yuuvis-client-framework-smart-search.mjs +13 -13
- package/fesm2022/yuuvis-client-framework-sort.mjs +3 -3
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +97 -61
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-token-search.mjs +7 -7
- package/fesm2022/yuuvis-client-framework-tree.mjs +9 -9
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs +10 -10
- package/fesm2022/yuuvis-client-framework.mjs +25 -25
- package/lib/assets/i18n/de.json +10 -8
- package/lib/assets/i18n/en.json +10 -8
- package/package.json +10 -10
- package/types/yuuvis-client-framework-badges.d.ts +7 -0
- package/types/yuuvis-client-framework-forms.d.ts +28 -8
- package/types/yuuvis-client-framework-object-relationship.d.ts +6 -1
- package/types/yuuvis-client-framework-tile-list.d.ts +13 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { input, Component, inject, computed, ChangeDetectionStrategy, signal, Injectable, effect, ViewContainerRef, Directive } from '@angular/core';
|
|
3
|
-
import { TranslateService, LocalizationService, SystemService, LocaleDatePipe, FileSizePipe, IdmService, AppCacheService, TranslatePipe, InternalFieldType, ContentStreamField } from '@yuuvis/client-core';
|
|
3
|
+
import { TranslateService, LocalizationService, SystemService, LocaleDatePipe, FileSizePipe, IdmService, AppCacheService, FREE_TEXT_OPTION, STORAGE_ROLES_KEY, USER_ID_REGEX, STORAGE_USERS_KEY, TranslatePipe, InternalFieldType, ContentStreamField } from '@yuuvis/client-core';
|
|
4
4
|
import { MatIcon, MatIconRegistry } from '@angular/material/icon';
|
|
5
5
|
import { takeUntilDestroyed, rxResource } from '@angular/core/rxjs-interop';
|
|
6
6
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
@@ -17,10 +17,10 @@ class AbstractAuditRendererComponent {
|
|
|
17
17
|
constructor() {
|
|
18
18
|
this.auditEntry = input.required(...(ngDevMode ? [{ debugName: "auditEntry" }] : /* istanbul ignore next */ []));
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: AbstractAuditRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.20", type: AbstractAuditRendererComponent, isStandalone: true, selector: "yuv-abstract-audit-renderer", inputs: { auditEntry: { classPropertyName: "auditEntry", publicName: "auditEntry", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: '', isInline: true }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: AbstractAuditRendererComponent, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
25
|
args: [{
|
|
26
26
|
selector: 'yuv-abstract-audit-renderer',
|
|
@@ -97,8 +97,8 @@ class DefaultAuditRendererComponent extends AbstractAuditRendererComponent {
|
|
|
97
97
|
const m = entry.detail.match(/\[(.*?)\]/);
|
|
98
98
|
return m?.[1]?.split(',').map((i) => i.trim()) ?? [];
|
|
99
99
|
}
|
|
100
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
101
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: DefaultAuditRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
101
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.20", type: DefaultAuditRendererComponent, isStandalone: true, selector: "yuv-default-audit-renderer", usesInheritance: true, ngImport: i0, template: `
|
|
102
102
|
@let r = resolved();
|
|
103
103
|
<span class="title">{{ r.label }}</span>
|
|
104
104
|
@if (r.more) {
|
|
@@ -106,7 +106,7 @@ class DefaultAuditRendererComponent extends AbstractAuditRendererComponent {
|
|
|
106
106
|
}
|
|
107
107
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
108
108
|
}
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: DefaultAuditRendererComponent, decorators: [{
|
|
110
110
|
type: Component,
|
|
111
111
|
args: [{
|
|
112
112
|
selector: 'yuv-default-audit-renderer',
|
|
@@ -159,10 +159,10 @@ class AuditRendererService {
|
|
|
159
159
|
k.push(String(subaction));
|
|
160
160
|
return k.join('-');
|
|
161
161
|
}
|
|
162
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
163
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
162
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: AuditRendererService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
163
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: AuditRendererService, providedIn: 'root' }); }
|
|
164
164
|
}
|
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
165
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: AuditRendererService, decorators: [{
|
|
166
166
|
type: Injectable,
|
|
167
167
|
args: [{
|
|
168
168
|
providedIn: 'root'
|
|
@@ -183,10 +183,10 @@ class AbstractRendererComponent {
|
|
|
183
183
|
getProperty() {
|
|
184
184
|
return this.#system.system?.allFields[this.propertyName()];
|
|
185
185
|
}
|
|
186
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
187
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
186
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: AbstractRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
187
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.20", type: AbstractRendererComponent, isStandalone: true, selector: "yuv-abstract-renderer", inputs: { propertyName: { classPropertyName: "propertyName", publicName: "propertyName", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: '', isInline: true }); }
|
|
188
188
|
}
|
|
189
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
189
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: AbstractRendererComponent, decorators: [{
|
|
190
190
|
type: Component,
|
|
191
191
|
args: [{
|
|
192
192
|
selector: 'yuv-abstract-renderer',
|
|
@@ -195,28 +195,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImpo
|
|
|
195
195
|
}], propDecorators: { propertyName: [{ type: i0.Input, args: [{ isSignal: true, alias: "propertyName", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }] } });
|
|
196
196
|
|
|
197
197
|
class BooleanRendererComponent extends AbstractRendererComponent {
|
|
198
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
199
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
198
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: BooleanRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
199
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.20", type: BooleanRendererComponent, isStandalone: true, selector: "yuv-boolean-renderer", usesInheritance: true, ngImport: i0, template: ` <mat-icon>{{ value() ? 'check_box' : 'check_box_outline_blank' }}</mat-icon>`, isInline: true, styles: [":host{display:flex;padding:var(--tile-slot-padding)}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
200
200
|
}
|
|
201
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: BooleanRendererComponent, decorators: [{
|
|
202
202
|
type: Component,
|
|
203
203
|
args: [{ selector: 'yuv-boolean-renderer', imports: [MatIcon], template: ` <mat-icon>{{ value() ? 'check_box' : 'check_box_outline_blank' }}</mat-icon>`, styles: [":host{display:flex;padding:var(--tile-slot-padding)}\n"] }]
|
|
204
204
|
}] });
|
|
205
205
|
|
|
206
206
|
class DateTimeRendererComponent extends AbstractRendererComponent {
|
|
207
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
208
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
207
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: DateTimeRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
208
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.20", type: DateTimeRendererComponent, isStandalone: true, selector: "yuv-datetime-renderer", usesInheritance: true, ngImport: i0, template: '{{(value() || undefined) | localeDate}}', isInline: true, styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"], dependencies: [{ kind: "pipe", type: LocaleDatePipe, name: "localeDate" }] }); }
|
|
209
209
|
}
|
|
210
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: DateTimeRendererComponent, decorators: [{
|
|
211
211
|
type: Component,
|
|
212
212
|
args: [{ selector: 'yuv-datetime-renderer', imports: [LocaleDatePipe], template: '{{(value() || undefined) | localeDate}}', styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }]
|
|
213
213
|
}] });
|
|
214
214
|
|
|
215
215
|
class DecimalRendererComponent extends AbstractRendererComponent {
|
|
216
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
217
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
216
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: DecimalRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
217
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.20", type: DecimalRendererComponent, isStandalone: true, selector: "yuv-decimal-renderer", usesInheritance: true, ngImport: i0, template: '{{value()}}', isInline: true, styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }); }
|
|
218
218
|
}
|
|
219
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
219
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: DecimalRendererComponent, decorators: [{
|
|
220
220
|
type: Component,
|
|
221
221
|
args: [{ selector: 'yuv-decimal-renderer', template: '{{value()}}', styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }]
|
|
222
222
|
}] });
|
|
@@ -237,10 +237,10 @@ class FileSizeRendererComponent extends AbstractRendererComponent {
|
|
|
237
237
|
return n;
|
|
238
238
|
}, ...(ngDevMode ? [{ debugName: "parsedValue" }] : /* istanbul ignore next */ []));
|
|
239
239
|
}
|
|
240
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
241
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
240
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: FileSizeRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
241
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.20", type: FileSizeRendererComponent, isStandalone: true, selector: "yuv-string-renderer", usesInheritance: true, ngImport: i0, template: '{{parsedValue() | fileSize}}', isInline: true, styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"], dependencies: [{ kind: "pipe", type: FileSizePipe, name: "fileSize" }] }); }
|
|
242
242
|
}
|
|
243
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: FileSizeRendererComponent, decorators: [{
|
|
244
244
|
type: Component,
|
|
245
245
|
args: [{ selector: 'yuv-string-renderer', imports: [FileSizePipe], template: '{{parsedValue() | fileSize}}', styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }]
|
|
246
246
|
}] });
|
|
@@ -279,10 +279,10 @@ class I18nCatalogRendererComponent extends AbstractRendererComponent {
|
|
|
279
279
|
#translateValue(value) {
|
|
280
280
|
return this.#localization.getLocalizedLabel(`catalog:${this.propertyName()}:${value}`) || value;
|
|
281
281
|
}
|
|
282
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
283
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
282
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: I18nCatalogRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
283
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.20", type: I18nCatalogRendererComponent, isStandalone: true, selector: "yuv-i18n-catalog-renderer", usesInheritance: true, ngImport: i0, template: '{{ label() }}', isInline: true, styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
284
284
|
}
|
|
285
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
285
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: I18nCatalogRendererComponent, decorators: [{
|
|
286
286
|
type: Component,
|
|
287
287
|
args: [{ selector: 'yuv-i18n-catalog-renderer', template: '{{ label() }}', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }]
|
|
288
288
|
}], ctorParameters: () => [] });
|
|
@@ -304,19 +304,19 @@ class IconRendererComponent extends AbstractRendererComponent {
|
|
|
304
304
|
#iconRegistry;
|
|
305
305
|
#sanitizer;
|
|
306
306
|
#registerIconsEffect;
|
|
307
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
308
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
307
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: IconRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
308
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.20", type: IconRendererComponent, isStandalone: true, selector: "yuv-icon-renderer", usesInheritance: true, ngImport: i0, template: "@let icon = value();\n@if (propertyName() !== 'custom') {\n <yuv-object-type-icon [objectTypeId]=\"icon || ''\"></yuv-object-type-icon>\n} @else if (icon !== null) {\n @let metaData = meta();\n @if (metaData && metaData['isFontIcon']) {\n <mat-icon>{{ icon }}</mat-icon>\n } @else {\n <mat-icon [svgIcon]=\"customId\"></mat-icon>\n }\n}\n", styles: [":host{display:flex;align-items:center;justify-content:center;padding:var(--tile-slot-padding)}:host yuv-icon,:host yuv-object-type-icon{--icon-size: var(--icon-renderer-icon-size);width:var(--icon-size);height:var(--icon-size)}\n"], dependencies: [{ kind: "component", type: ObjectTypeIconComponent, selector: "yuv-object-type-icon", inputs: ["objectTypeId"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
309
309
|
}
|
|
310
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
310
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: IconRendererComponent, decorators: [{
|
|
311
311
|
type: Component,
|
|
312
312
|
args: [{ selector: 'yuv-icon-renderer', imports: [ObjectTypeIconComponent, MatIcon], template: "@let icon = value();\n@if (propertyName() !== 'custom') {\n <yuv-object-type-icon [objectTypeId]=\"icon || ''\"></yuv-object-type-icon>\n} @else if (icon !== null) {\n @let metaData = meta();\n @if (metaData && metaData['isFontIcon']) {\n <mat-icon>{{ icon }}</mat-icon>\n } @else {\n <mat-icon [svgIcon]=\"customId\"></mat-icon>\n }\n}\n", styles: [":host{display:flex;align-items:center;justify-content:center;padding:var(--tile-slot-padding)}:host yuv-icon,:host yuv-object-type-icon{--icon-size: var(--icon-renderer-icon-size);width:var(--icon-size);height:var(--icon-size)}\n"] }]
|
|
313
313
|
}] });
|
|
314
314
|
|
|
315
315
|
class IntegerRendererComponent extends AbstractRendererComponent {
|
|
316
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
317
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
316
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: IntegerRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
317
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.20", type: IntegerRendererComponent, isStandalone: true, selector: "yuv-integer-renderer", usesInheritance: true, ngImport: i0, template: '{{value()}}', isInline: true, styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }); }
|
|
318
318
|
}
|
|
319
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
319
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: IntegerRendererComponent, decorators: [{
|
|
320
320
|
type: Component,
|
|
321
321
|
args: [{ selector: 'yuv-integer-renderer', template: '{{value()}}', styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }]
|
|
322
322
|
}] });
|
|
@@ -326,8 +326,21 @@ class OrganizationRendererComponent extends AbstractRendererComponent {
|
|
|
326
326
|
super(...arguments);
|
|
327
327
|
this.#idmService = inject(IdmService);
|
|
328
328
|
this.#appCache = inject(AppCacheService);
|
|
329
|
-
this.#
|
|
330
|
-
|
|
329
|
+
this.#systemService = inject(SystemService);
|
|
330
|
+
// Only fields that opted into free text may hold values that are neither a user ID nor a
|
|
331
|
+
// role name. Everywhere else every non-role value stays a user-ID lookup, unchanged.
|
|
332
|
+
this.#freeTextField = computed(() => {
|
|
333
|
+
const field = this.getProperty();
|
|
334
|
+
// The raw schema uses `classification`, the mapped field model `classifications`.
|
|
335
|
+
const classifications = field?.classifications ?? field?.classification;
|
|
336
|
+
if (!classifications?.length)
|
|
337
|
+
return false;
|
|
338
|
+
for (const entry of this.#systemService.getClassifications(classifications).values()) {
|
|
339
|
+
if (entry.options.includes(FREE_TEXT_OPTION))
|
|
340
|
+
return true;
|
|
341
|
+
}
|
|
342
|
+
return false;
|
|
343
|
+
}, ...(ngDevMode ? [{ debugName: "#freeTextField" }] : /* istanbul ignore next */ []));
|
|
331
344
|
// Input may be a single id/role-name or an array of them; normalize to string[] so the resolver
|
|
332
345
|
// pipeline always works on a uniform shape.
|
|
333
346
|
this.resolvedValue = computed(() => {
|
|
@@ -346,29 +359,35 @@ class OrganizationRendererComponent extends AbstractRendererComponent {
|
|
|
346
359
|
// names vs. user IDs. Roles are a closed set; anything that doesn't match is treated as
|
|
347
360
|
// a user ID and resolved in step 2.
|
|
348
361
|
// TODO: Move get Roles to App init or somewhere else to avoid multiple calls
|
|
349
|
-
return this.#appCache.getItem(
|
|
362
|
+
return this.#appCache.getItem(STORAGE_ROLES_KEY).pipe(switchMap((cachedRoles) => (cachedRoles
|
|
350
363
|
? of(cachedRoles)
|
|
351
364
|
: this.#idmService.getRoles().pipe(
|
|
352
365
|
// Only persist the role list when the backend actually returned something —
|
|
353
366
|
// caching an empty array would mask later successful fetches.
|
|
354
|
-
switchMap((roles) => roles.length ? this.#appCache.setItem(
|
|
367
|
+
switchMap((roles) => roles.length ? this.#appCache.setItem(STORAGE_ROLES_KEY, roles).pipe(map(() => roles)) : of([])))).pipe(map((roles) => params.reduce((acc, value) => {
|
|
355
368
|
const matchingRole = roles.find((role) => role.name === value);
|
|
356
369
|
// Role-name match → roles bucket; everything else is assumed to be a user ID.
|
|
357
370
|
if (matchingRole) {
|
|
358
371
|
acc.roles.push(matchingRole.name);
|
|
359
372
|
}
|
|
373
|
+
else if (this.#freeTextField() && !USER_ID_REGEX.test(value)) {
|
|
374
|
+
// Free text is stored as a plain string, so there is nothing to look up.
|
|
375
|
+
acc.texts.push(value);
|
|
376
|
+
}
|
|
360
377
|
else {
|
|
361
378
|
acc.users.push(value);
|
|
362
379
|
}
|
|
363
380
|
return acc;
|
|
364
|
-
}, { roles: [], users: [] })))),
|
|
381
|
+
}, { roles: [], users: [], texts: [] })))),
|
|
365
382
|
// Step 2a — pull the persisted user cache. Defensive filter against null entries that
|
|
366
383
|
// may linger from earlier buggy writes (see commit 2f3ff694f).
|
|
367
|
-
switchMap(({ roles, users }) => this.#appCache
|
|
368
|
-
.getItem(
|
|
369
|
-
.pipe(map((cache) => cache
|
|
384
|
+
switchMap(({ roles, users, texts }) => this.#appCache
|
|
385
|
+
.getItem(STORAGE_USERS_KEY)
|
|
386
|
+
.pipe(map((cache) => cache
|
|
387
|
+
? { roles, users, texts, cache: cache.filter((entry) => entry !== null) }
|
|
388
|
+
: { roles, users, texts, cache: null }))),
|
|
370
389
|
// Step 2b — resolve users: serve from cache where possible, fetch the rest from IDM.
|
|
371
|
-
switchMap(({ roles, users, cache }) => {
|
|
390
|
+
switchMap(({ roles, users, texts, cache }) => {
|
|
372
391
|
// Dedup the full stored cache by id up-front. A cache can hold multiple copies of the
|
|
373
392
|
// same user either from the historical write bug, or because several renderer instances
|
|
374
393
|
// (a view routinely mounts 2-3) each ran an unsynchronized getItem→resolve→setItem cycle
|
|
@@ -400,22 +419,24 @@ class OrganizationRendererComponent extends AbstractRendererComponent {
|
|
|
400
419
|
// resolved real user always wins over any stale same-id entry — a synthetic
|
|
401
420
|
// fallback (which is never in `resolved`/`cache`) can therefore never shadow it.
|
|
402
421
|
const merged = this.#dedupById([...(dedupedCache || []), ...resolved]);
|
|
403
|
-
return this.#appCache.setItem(
|
|
404
|
-
}), map((users) => ({ roles, users: [...users, ...filteredUsers] })));
|
|
422
|
+
return this.#appCache.setItem(STORAGE_USERS_KEY, merged).pipe(map(() => [...resolved, ...unresolved]));
|
|
423
|
+
}), map((users) => ({ roles, texts, users: [...users, ...filteredUsers] })));
|
|
405
424
|
}
|
|
406
425
|
else if (cacheShrank && dedupedCache) {
|
|
407
426
|
// Every requested user was already cached, but the stored array carried duplicates —
|
|
408
427
|
// write the cleaned version back so the pollution heals instead of re-deduping forever.
|
|
409
|
-
return this.#appCache
|
|
428
|
+
return this.#appCache
|
|
429
|
+
.setItem(STORAGE_USERS_KEY, dedupedCache)
|
|
430
|
+
.pipe(map(() => ({ roles, texts, users: [...filteredUsers] })));
|
|
410
431
|
}
|
|
411
432
|
else {
|
|
412
433
|
// Every requested user was already in the cache and it was clean — no network needed.
|
|
413
|
-
return of({ roles, users: [...filteredUsers] });
|
|
434
|
+
return of({ roles, texts, users: [...filteredUsers] });
|
|
414
435
|
}
|
|
415
436
|
}),
|
|
416
437
|
// Step 3 — project to the flat render-model the template iterates over. data-type
|
|
417
|
-
// drives the chip styling (user vs role).
|
|
418
|
-
map(({ roles, users }) => {
|
|
438
|
+
// drives the chip styling (user vs role vs free text).
|
|
439
|
+
map(({ roles, users, texts }) => {
|
|
419
440
|
const userNodes = users.map((user) => ({
|
|
420
441
|
type: 'user',
|
|
421
442
|
label: user.title || user.displayName
|
|
@@ -424,7 +445,11 @@ class OrganizationRendererComponent extends AbstractRendererComponent {
|
|
|
424
445
|
type: 'role',
|
|
425
446
|
label: role
|
|
426
447
|
}));
|
|
427
|
-
|
|
448
|
+
const textNodes = texts.map((text) => ({
|
|
449
|
+
type: 'text',
|
|
450
|
+
label: text
|
|
451
|
+
}));
|
|
452
|
+
return [...userNodes, ...roleNodes, ...textNodes];
|
|
428
453
|
}));
|
|
429
454
|
},
|
|
430
455
|
defaultValue: []
|
|
@@ -434,27 +459,29 @@ class OrganizationRendererComponent extends AbstractRendererComponent {
|
|
|
434
459
|
}
|
|
435
460
|
#idmService;
|
|
436
461
|
#appCache;
|
|
437
|
-
#
|
|
438
|
-
|
|
462
|
+
#systemService;
|
|
463
|
+
// Only fields that opted into free text may hold values that are neither a user ID nor a
|
|
464
|
+
// role name. Everywhere else every non-role value stays a user-ID lookup, unchanged.
|
|
465
|
+
#freeTextField;
|
|
439
466
|
#userRoleResolver;
|
|
440
467
|
// Collapse a user list to one entry per id, keeping the LAST occurrence — callers order the
|
|
441
468
|
// array so the freshest/real entry comes last and wins. Also drops any falsy entries.
|
|
442
469
|
#dedupById(users) {
|
|
443
470
|
return [...new Map(users.filter((user) => user).map((user) => [user.id, user])).values()];
|
|
444
471
|
}
|
|
445
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
446
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
472
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: OrganizationRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
473
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.20", type: OrganizationRendererComponent, isStandalone: true, selector: "yuv-organization-renderer", usesInheritance: true, ngImport: i0, template: "@if (userAndRoleLoading()) {\n <span class=\"loading\"><i>.</i><i>.</i><i>.</i></span>\n} @else {\n @for (node of userAndRole(); track $index) {\n <span class=\"node\" [attr.data-type]=\"node.type\">{{ node.label }}</span>\n }\n}\n", styles: [":host{padding:var(--tile-slot-padding);display:var(--yuv-renderer-display, flex);gap:var(--ymt-spacing-xs);align-items:center}:host .node{display:flex;flex-flow:row nowrap;align-items:center;border:1px solid var(--ymt-outline);border-radius:var(--ymt-corner-xs);padding:0 var(--ymt-spacing-xs);font:var(--ymt-font-body-subtle);white-space:nowrap}:host .node[data-type=text]{border-style:dashed;color:var(--ymt-text-color-subtle);font-style:italic}:host .loading i{animation:pulse 1.4s ease-in-out infinite both}:host .loading i:nth-child(1){animation-delay:-.32s}:host .loading i:nth-child(2){animation-delay:-.16s}:host .loading i:nth-child(3){animation-delay:0s}@keyframes pulse{0%,80%,to{opacity:.3;transform:scale(1)}40%{opacity:1;transform:scale(1.2)}}\n"] }); }
|
|
447
474
|
}
|
|
448
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
475
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: OrganizationRendererComponent, decorators: [{
|
|
449
476
|
type: Component,
|
|
450
|
-
args: [{ selector: 'yuv-organization-renderer', template: "@if (userAndRoleLoading()) {\n <span class=\"loading\"><i>.</i><i>.</i><i>.</i></span>\n} @else {\n @for (node of userAndRole(); track $index) {\n <span class=\"node\" [attr.data-type]=\"node.type\">{{ node.label }}</span>\n }\n}\n", styles: [":host{padding:var(--tile-slot-padding);display:var(--yuv-renderer-display, flex);gap:var(--ymt-spacing-xs);align-items:center}:host .node{display:flex;flex-flow:row nowrap;align-items:center;border:1px solid var(--ymt-outline);border-radius:var(--ymt-corner-xs);padding:0 var(--ymt-spacing-xs);font:var(--ymt-font-body-subtle);white-space:nowrap}:host .loading i{animation:pulse 1.4s ease-in-out infinite both}:host .loading i:nth-child(1){animation-delay:-.32s}:host .loading i:nth-child(2){animation-delay:-.16s}:host .loading i:nth-child(3){animation-delay:0s}@keyframes pulse{0%,80%,to{opacity:.3;transform:scale(1)}40%{opacity:1;transform:scale(1.2)}}\n"] }]
|
|
477
|
+
args: [{ selector: 'yuv-organization-renderer', template: "@if (userAndRoleLoading()) {\n <span class=\"loading\"><i>.</i><i>.</i><i>.</i></span>\n} @else {\n @for (node of userAndRole(); track $index) {\n <span class=\"node\" [attr.data-type]=\"node.type\">{{ node.label }}</span>\n }\n}\n", styles: [":host{padding:var(--tile-slot-padding);display:var(--yuv-renderer-display, flex);gap:var(--ymt-spacing-xs);align-items:center}:host .node{display:flex;flex-flow:row nowrap;align-items:center;border:1px solid var(--ymt-outline);border-radius:var(--ymt-corner-xs);padding:0 var(--ymt-spacing-xs);font:var(--ymt-font-body-subtle);white-space:nowrap}:host .node[data-type=text]{border-style:dashed;color:var(--ymt-text-color-subtle);font-style:italic}:host .loading i{animation:pulse 1.4s ease-in-out infinite both}:host .loading i:nth-child(1){animation-delay:-.32s}:host .loading i:nth-child(2){animation-delay:-.16s}:host .loading i:nth-child(3){animation-delay:0s}@keyframes pulse{0%,80%,to{opacity:.3;transform:scale(1)}40%{opacity:1;transform:scale(1.2)}}\n"] }]
|
|
451
478
|
}] });
|
|
452
479
|
|
|
453
480
|
class StringRendererComponent extends AbstractRendererComponent {
|
|
454
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
455
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
481
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: StringRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
482
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.20", type: StringRendererComponent, isStandalone: true, selector: "yuv-string-renderer", usesInheritance: true, ngImport: i0, template: `{{ value() }}`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
456
483
|
}
|
|
457
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
484
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: StringRendererComponent, decorators: [{
|
|
458
485
|
type: Component,
|
|
459
486
|
args: [{ selector: 'yuv-string-renderer', template: `{{ value() }}`, changeDetection: ChangeDetectionStrategy.OnPush }]
|
|
460
487
|
}] });
|
|
@@ -505,19 +532,19 @@ class TableRendererComponent extends AbstractRendererComponent {
|
|
|
505
532
|
return element.value;
|
|
506
533
|
}
|
|
507
534
|
}
|
|
508
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
509
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
535
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: TableRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
536
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.20", type: TableRendererComponent, isStandalone: true, selector: "yuv-table-renderer", providers: [DecimalPipe, DatePipe], usesInheritance: true, ngImport: i0, template: "<div class=\"table-container\">\n <table>\n <thead>\n <tr>\n @for (header of tableHeaders(); track header.id) {\n <th>{{ header.label }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of tableData(); track $index) {\n <tr>\n @for (header of tableHeaders(); track header.id) {\n <td>{{ getCellValue(row, header.key) }}</td>\n }\n </tr>\n }\n </tbody>\n </table>\n @if (reducedData()) {\n <p>{{ 'yuv.table.renderer.moreEntries' | translate: { count: value()?.length } }}</p>\n }\n</div>\n", styles: [":host{display:flex;padding:var(--tile-slot-padding);width:100%}.table-container{width:100%;overflow-x:auto;max-width:100%}table{width:100%;border-collapse:collapse;min-width:400px}th,td{padding:8px;text-align:left;border-bottom:1px solid var(--ymt-outline-variant);word-break:normal}th{background-color:var(--object-summary-section-background, var(--ymt-surface));font-weight:700}tr:hover{background-color:var(--ymt-hover-background)}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
510
537
|
}
|
|
511
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
538
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: TableRendererComponent, decorators: [{
|
|
512
539
|
type: Component,
|
|
513
540
|
args: [{ selector: 'yuv-table-renderer', standalone: true, imports: [TranslatePipe], providers: [DecimalPipe, DatePipe], template: "<div class=\"table-container\">\n <table>\n <thead>\n <tr>\n @for (header of tableHeaders(); track header.id) {\n <th>{{ header.label }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of tableData(); track $index) {\n <tr>\n @for (header of tableHeaders(); track header.id) {\n <td>{{ getCellValue(row, header.key) }}</td>\n }\n </tr>\n }\n </tbody>\n </table>\n @if (reducedData()) {\n <p>{{ 'yuv.table.renderer.moreEntries' | translate: { count: value()?.length } }}</p>\n }\n</div>\n", styles: [":host{display:flex;padding:var(--tile-slot-padding);width:100%}.table-container{width:100%;overflow-x:auto;max-width:100%}table{width:100%;border-collapse:collapse;min-width:400px}th,td{padding:8px;text-align:left;border-bottom:1px solid var(--ymt-outline-variant);word-break:normal}th{background-color:var(--object-summary-section-background, var(--ymt-surface));font-weight:700}tr:hover{background-color:var(--ymt-hover-background)}\n"] }]
|
|
514
541
|
}] });
|
|
515
542
|
|
|
516
543
|
class UnknownRendererComponent extends AbstractRendererComponent {
|
|
517
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
518
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
544
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: UnknownRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
545
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.20", type: UnknownRendererComponent, isStandalone: true, selector: "yuv-unknown-renderer", usesInheritance: true, ngImport: i0, template: '{{value()}}', isInline: true, styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }); }
|
|
519
546
|
}
|
|
520
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
547
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: UnknownRendererComponent, decorators: [{
|
|
521
548
|
type: Component,
|
|
522
549
|
args: [{ selector: 'yuv-unknown-renderer', template: '{{value()}}', styles: [":host{display:inline-block;padding:var(--tile-slot-padding)}\n"] }]
|
|
523
550
|
}] });
|
|
@@ -592,10 +619,10 @@ class RendererService {
|
|
|
592
619
|
typeName && k.push(typeName);
|
|
593
620
|
return k.join('-');
|
|
594
621
|
}
|
|
595
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
596
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
622
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: RendererService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
623
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: RendererService, providedIn: 'root' }); }
|
|
597
624
|
}
|
|
598
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
625
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: RendererService, decorators: [{
|
|
599
626
|
type: Injectable,
|
|
600
627
|
args: [{
|
|
601
628
|
providedIn: 'root'
|
|
@@ -630,10 +657,10 @@ class AuditRendererDirective {
|
|
|
630
657
|
#alreadyRendered(entry) {
|
|
631
658
|
return !!this.#current && JSON.stringify(this.#current) === JSON.stringify(entry);
|
|
632
659
|
}
|
|
633
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
634
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
660
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: AuditRendererDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
661
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.20", type: AuditRendererDirective, isStandalone: true, selector: "[yuvAuditRenderer]", inputs: { yuvAuditRenderer: { classPropertyName: "yuvAuditRenderer", publicName: "yuvAuditRenderer", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
|
|
635
662
|
}
|
|
636
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
663
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: AuditRendererDirective, decorators: [{
|
|
637
664
|
type: Directive,
|
|
638
665
|
args: [{
|
|
639
666
|
selector: '[yuvAuditRenderer]',
|
|
@@ -677,10 +704,10 @@ class RendererDirective {
|
|
|
677
704
|
#alreadyRendered(i) {
|
|
678
705
|
return !!this.#rendererInput && JSON.stringify(this.#rendererInput) === JSON.stringify(i);
|
|
679
706
|
}
|
|
680
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
681
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
707
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: RendererDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
708
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.20", type: RendererDirective, isStandalone: true, selector: "[yuvRenderer]", inputs: { yuvRenderer: { classPropertyName: "yuvRenderer", publicName: "yuvRenderer", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
682
709
|
}
|
|
683
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
710
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.20", ngImport: i0, type: RendererDirective, decorators: [{
|
|
684
711
|
type: Directive,
|
|
685
712
|
args: [{
|
|
686
713
|
selector: '[yuvRenderer]',
|