valtech-components 4.0.957 → 4.0.959
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/esm2022/lib/components/molecules/group-picker/group-picker.component.mjs +57 -42
- package/esm2022/lib/components/molecules/metadata-list/metadata-list.component.mjs +17 -25
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +69 -64
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/group-picker/group-picker.component.d.ts +17 -5
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component,
|
|
3
|
-
import {
|
|
2
|
+
import { Component, Input, Output, EventEmitter, computed, inject, signal, } from '@angular/core';
|
|
3
|
+
import { FormControl } from '@angular/forms';
|
|
4
4
|
import { GroupsService } from '../../../services/groups/groups.service';
|
|
5
|
+
import { ComponentStates, InputType } from '../../types';
|
|
6
|
+
import { SearchSelectorComponent } from '../select-input/select-input.component';
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
8
|
/**
|
|
7
9
|
* val-group-picker — elegir el grupo dueño de un recurso (ADR-083).
|
|
@@ -11,6 +13,10 @@ import * as i0 from "@angular/core";
|
|
|
11
13
|
* no como un `<select>` armado a mano en cada app — "una línea, una etiqueta
|
|
12
14
|
* i18n" (ver ADR-083 §"Qué se construye una sola vez").
|
|
13
15
|
*
|
|
16
|
+
* Renderiza vía `val-select-input` (el selector estándar de `val-form`) en vez
|
|
17
|
+
* de un `ion-select` propio — mismo look/comportamiento que cualquier otro
|
|
18
|
+
* campo SELECT del factory, sin reimplementar popover/i18n de cancel-ok.
|
|
19
|
+
*
|
|
14
20
|
* Sin texto hardcodeado: los labels llegan por `@Input` (lib i18n-agnostic).
|
|
15
21
|
* Cada app pone su palabra ("Equipo", "Sucursal", "Refugio").
|
|
16
22
|
*/
|
|
@@ -23,62 +29,71 @@ export class GroupPickerComponent {
|
|
|
23
29
|
this.disabled = false;
|
|
24
30
|
this.valueChange = new EventEmitter();
|
|
25
31
|
this.groupsSvc = inject(GroupsService);
|
|
26
|
-
this.groups = [];
|
|
32
|
+
this.groups = signal([]);
|
|
33
|
+
this.inputType = InputType.SELECT;
|
|
34
|
+
this.enabledState = ComponentStates.ENABLED;
|
|
35
|
+
this.disabledState = ComponentStates.DISABLED;
|
|
36
|
+
// Opción vacía SIEMPRE disponible: un recurso sin grupo es visible para
|
|
37
|
+
// toda la organización (ADR-083, decisión 3), no un estado inválido.
|
|
38
|
+
this.selectOptions = computed(() => [
|
|
39
|
+
{ id: '', name: this.noGroupLabel, order: 0 },
|
|
40
|
+
...this.groups().map((g, i) => ({ id: g.id, name: g.name, order: i + 1 })),
|
|
41
|
+
]);
|
|
42
|
+
this.control = new FormControl('');
|
|
27
43
|
}
|
|
28
44
|
ngOnInit() {
|
|
45
|
+
this.control.setValue(this.value ?? '', { emitEvent: false });
|
|
46
|
+
this.valueSub = this.control.valueChanges.subscribe(v => {
|
|
47
|
+
this.value = v || null;
|
|
48
|
+
this.valueChange.emit(this.value);
|
|
49
|
+
});
|
|
29
50
|
this.groupsSvc.listGroups().subscribe({
|
|
30
|
-
next:
|
|
51
|
+
next: g => this.groups.set(g),
|
|
31
52
|
// Best-effort: si la lectura falla, el picker queda con la opción "sin
|
|
32
53
|
// grupo" únicamente. No es un error bloqueante — crear el recurso sin
|
|
33
54
|
// asignar sigue siendo válido.
|
|
34
|
-
error: () =>
|
|
55
|
+
error: () => this.groups.set([]),
|
|
35
56
|
});
|
|
36
57
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
58
|
+
ngOnChanges(changes) {
|
|
59
|
+
if (changes['value'] && !changes['value'].firstChange) {
|
|
60
|
+
this.control.setValue(this.value ?? '', { emitEvent: false });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
ngOnDestroy() {
|
|
64
|
+
this.valueSub?.unsubscribe();
|
|
40
65
|
}
|
|
41
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GroupPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
43
|
-
<
|
|
44
|
-
[
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
@for (g of groups; track g.id) {
|
|
55
|
-
<ion-select-option [value]="g.id">{{ g.name }}</ion-select-option>
|
|
56
|
-
}
|
|
57
|
-
</ion-select>
|
|
58
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }] }); }
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: GroupPickerComponent, isStandalone: true, selector: "val-group-picker", inputs: { label: "label", placeholder: "placeholder", noGroupLabel: "noGroupLabel", value: "value", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: `
|
|
68
|
+
<val-select-input
|
|
69
|
+
[props]="{
|
|
70
|
+
control: control,
|
|
71
|
+
label: label,
|
|
72
|
+
placeholder: placeholder,
|
|
73
|
+
type: inputType,
|
|
74
|
+
state: disabled ? disabledState : enabledState,
|
|
75
|
+
options: selectOptions(),
|
|
76
|
+
}"
|
|
77
|
+
/>
|
|
78
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SearchSelectorComponent, selector: "val-select-input", inputs: ["preset", "props"] }] }); }
|
|
59
79
|
}
|
|
60
80
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GroupPickerComponent, decorators: [{
|
|
61
81
|
type: Component,
|
|
62
82
|
args: [{
|
|
63
83
|
selector: 'val-group-picker',
|
|
64
84
|
standalone: true,
|
|
65
|
-
imports: [CommonModule,
|
|
85
|
+
imports: [CommonModule, SearchSelectorComponent],
|
|
66
86
|
template: `
|
|
67
|
-
<
|
|
68
|
-
[
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
<ion-select-option value="">{{ noGroupLabel }}</ion-select-option>
|
|
78
|
-
@for (g of groups; track g.id) {
|
|
79
|
-
<ion-select-option [value]="g.id">{{ g.name }}</ion-select-option>
|
|
80
|
-
}
|
|
81
|
-
</ion-select>
|
|
87
|
+
<val-select-input
|
|
88
|
+
[props]="{
|
|
89
|
+
control: control,
|
|
90
|
+
label: label,
|
|
91
|
+
placeholder: placeholder,
|
|
92
|
+
type: inputType,
|
|
93
|
+
state: disabled ? disabledState : enabledState,
|
|
94
|
+
options: selectOptions(),
|
|
95
|
+
}"
|
|
96
|
+
/>
|
|
82
97
|
`,
|
|
83
98
|
}]
|
|
84
99
|
}], propDecorators: { label: [{
|
|
@@ -94,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
94
109
|
}], valueChange: [{
|
|
95
110
|
type: Output
|
|
96
111
|
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZ3JvdXAtcGlja2VyL2dyb3VwLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUlMLE1BQU0sRUFDTixZQUFZLEVBRVosUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsZUFBZSxFQUFpQixTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBRWpGOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBa0JILE1BQU0sT0FBTyxvQkFBb0I7SUFqQmpDO1FBa0JXLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixVQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFekMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQyxXQUFNLEdBQUcsTUFBTSxDQUFhLEVBQUUsQ0FBQyxDQUFDO1FBRy9CLGNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQzdCLGlCQUFZLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztRQUN2QyxrQkFBYSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUM7UUFFbEQsd0VBQXdFO1FBQ3hFLHFFQUFxRTtRQUM1RCxrQkFBYSxHQUFHLFFBQVEsQ0FBMkIsR0FBRyxFQUFFLENBQUM7WUFDaEUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDN0MsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMzRSxDQUFDLENBQUM7UUFFTSxZQUFPLEdBQUcsSUFBSSxXQUFXLENBQVMsRUFBRSxDQUFDLENBQUM7S0EyQmhEO0lBekJDLFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUNwQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDN0IsdUVBQXVFO1lBQ3ZFLHNFQUFzRTtZQUN0RSwrQkFBK0I7WUFDL0IsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUMvQixDQUFDOytHQWpEVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixzUUFickI7Ozs7Ozs7Ozs7O0dBV1QsMkRBWlMsWUFBWSwrQkFBRSx1QkFBdUI7OzRGQWNwQyxvQkFBb0I7a0JBakJoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsdUJBQXVCLENBQUM7b0JBQ2hELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7R0FXVDtpQkFDRjs4QkFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR3JvdXBzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2dyb3Vwcy9ncm91cHMuc2VydmljZSc7XG5pbXBvcnQgeyBWYWxHcm91cCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2dyb3Vwcy90eXBlcyc7XG5pbXBvcnQgeyBDb21wb25lbnRTdGF0ZXMsIElucHV0TWV0YWRhdGEsIElucHV0VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vc2VsZWN0LWlucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQnO1xuXG4vKipcbiAqIHZhbC1ncm91cC1waWNrZXIg4oCUIGVsZWdpciBlbCBncnVwbyBkdWXDsW8gZGUgdW4gcmVjdXJzbyAoQURSLTA4MykuXG4gKlxuICogU2UgYXV0by1jYXJnYTogcGlkZSBzdXMgcHJvcGlvcyBncnVwb3MgYSBgR3JvdXBzU2VydmljZWAgZW4gdmV6IGRlIGVzcGVyYXJcbiAqIHF1ZSBlbCBjb25zdW1lciBzZSBsb3MgcGFzZS4gRXMgbGEgcmF6w7NuIHBvciBsYSBxdWUgZXhpc3RlIGNvbW8gY29tcG9uZW50ZSB5XG4gKiBubyBjb21vIHVuIGA8c2VsZWN0PmAgYXJtYWRvIGEgbWFubyBlbiBjYWRhIGFwcCDigJQgXCJ1bmEgbMOtbmVhLCB1bmEgZXRpcXVldGFcbiAqIGkxOG5cIiAodmVyIEFEUi0wODMgwqdcIlF1w6kgc2UgY29uc3RydXllIHVuYSBzb2xhIHZlelwiKS5cbiAqXG4gKiBSZW5kZXJpemEgdsOtYSBgdmFsLXNlbGVjdC1pbnB1dGAgKGVsIHNlbGVjdG9yIGVzdMOhbmRhciBkZSBgdmFsLWZvcm1gKSBlbiB2ZXpcbiAqIGRlIHVuIGBpb24tc2VsZWN0YCBwcm9waW8g4oCUIG1pc21vIGxvb2svY29tcG9ydGFtaWVudG8gcXVlIGN1YWxxdWllciBvdHJvXG4gKiBjYW1wbyBTRUxFQ1QgZGVsIGZhY3RvcnksIHNpbiByZWltcGxlbWVudGFyIHBvcG92ZXIvaTE4biBkZSBjYW5jZWwtb2suXG4gKlxuICogU2luIHRleHRvIGhhcmRjb2RlYWRvOiBsb3MgbGFiZWxzIGxsZWdhbiBwb3IgYEBJbnB1dGAgKGxpYiBpMThuLWFnbm9zdGljKS5cbiAqIENhZGEgYXBwIHBvbmUgc3UgcGFsYWJyYSAoXCJFcXVpcG9cIiwgXCJTdWN1cnNhbFwiLCBcIlJlZnVnaW9cIikuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1ncm91cC1waWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTZWFyY2hTZWxlY3RvckNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHZhbC1zZWxlY3QtaW5wdXRcbiAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgIGNvbnRyb2w6IGNvbnRyb2wsXG4gICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLFxuICAgICAgICB0eXBlOiBpbnB1dFR5cGUsXG4gICAgICAgIHN0YXRlOiBkaXNhYmxlZCA/IGRpc2FibGVkU3RhdGUgOiBlbmFibGVkU3RhdGUsXG4gICAgICAgIG9wdGlvbnM6IHNlbGVjdE9wdGlvbnMoKSxcbiAgICAgIH1cIlxuICAgIC8+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEdyb3VwUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIG5vR3JvdXBMYWJlbCA9ICcnO1xuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGdyb3Vwc1N2YyA9IGluamVjdChHcm91cHNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBncm91cHMgPSBzaWduYWw8VmFsR3JvdXBbXT4oW10pO1xuICBwcml2YXRlIHZhbHVlU3ViPzogU3Vic2NyaXB0aW9uO1xuXG4gIHJlYWRvbmx5IGlucHV0VHlwZSA9IElucHV0VHlwZS5TRUxFQ1Q7XG4gIHJlYWRvbmx5IGVuYWJsZWRTdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEO1xuICByZWFkb25seSBkaXNhYmxlZFN0YXRlID0gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEO1xuXG4gIC8vIE9wY2nDs24gdmFjw61hIFNJRU1QUkUgZGlzcG9uaWJsZTogdW4gcmVjdXJzbyBzaW4gZ3J1cG8gZXMgdmlzaWJsZSBwYXJhXG4gIC8vIHRvZGEgbGEgb3JnYW5pemFjacOzbiAoQURSLTA4MywgZGVjaXNpw7NuIDMpLCBubyB1biBlc3RhZG8gaW52w6FsaWRvLlxuICByZWFkb25seSBzZWxlY3RPcHRpb25zID0gY29tcHV0ZWQ8SW5wdXRNZXRhZGF0YVsnb3B0aW9ucyddPigoKSA9PiBbXG4gICAgeyBpZDogJycsIG5hbWU6IHRoaXMubm9Hcm91cExhYmVsLCBvcmRlcjogMCB9LFxuICAgIC4uLnRoaXMuZ3JvdXBzKCkubWFwKChnLCBpKSA9PiAoeyBpZDogZy5pZCwgbmFtZTogZy5uYW1lLCBvcmRlcjogaSArIDEgfSkpLFxuICBdKTtcblxuICByZWFkb25seSBjb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZz4oJycpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLnZhbHVlID8/ICcnLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy52YWx1ZVN1YiA9IHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgdGhpcy52YWx1ZSA9IHYgfHwgbnVsbDtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZ3JvdXBzU3ZjLmxpc3RHcm91cHMoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogZyA9PiB0aGlzLmdyb3Vwcy5zZXQoZyksXG4gICAgICAvLyBCZXN0LWVmZm9ydDogc2kgbGEgbGVjdHVyYSBmYWxsYSwgZWwgcGlja2VyIHF1ZWRhIGNvbiBsYSBvcGNpw7NuIFwic2luXG4gICAgICAvLyBncnVwb1wiIMO6bmljYW1lbnRlLiBObyBlcyB1biBlcnJvciBibG9xdWVhbnRlIOKAlCBjcmVhciBlbCByZWN1cnNvIHNpblxuICAgICAgLy8gYXNpZ25hciBzaWd1ZSBzaWVuZG8gdsOhbGlkby5cbiAgICAgIGVycm9yOiAoKSA9PiB0aGlzLmdyb3Vwcy5zZXQoW10pLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWyd2YWx1ZSddICYmICFjaGFuZ2VzWyd2YWx1ZSddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy52YWx1ZSA/PyAnJywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWVTdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -65,22 +65,18 @@ export class MetadataListComponent {
|
|
|
65
65
|
</div>
|
|
66
66
|
</div>
|
|
67
67
|
} @else {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
<dt class="ml__label">{{ item.label }}</dt>
|
|
76
|
-
<dd class="ml__value" [style.color]="item.color || null">{{ item.value }}</dd>
|
|
77
|
-
</div>
|
|
78
|
-
</div>
|
|
68
|
+
@if (item.icon) {
|
|
69
|
+
<ion-icon class="ml__icon" [name]="item.icon" aria-hidden="true" />
|
|
70
|
+
} @else {
|
|
71
|
+
<div class="ml__icon--placeholder"></div>
|
|
72
|
+
}
|
|
73
|
+
<dt class="ml__label">{{ item.label }}</dt>
|
|
74
|
+
<dd class="ml__value" [style.color]="item.color || null">{{ item.value }}</dd>
|
|
79
75
|
}
|
|
80
76
|
}
|
|
81
77
|
}
|
|
82
78
|
</dl>
|
|
83
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:host{display:block}.ml{display:
|
|
79
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:host{display:block}.ml{display:grid;grid-template-columns:auto 1fr 1fr;gap:10px 16px;align-items:center}.ml--dividers{row-gap:1px}.ml--dividers>*:nth-child(3n){border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));padding-bottom:12px}.ml--dividers .ml--small>*:nth-child(3n){padding-bottom:8px}.ml__section-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ion-color-medium, #92949c);padding-top:20px;padding-bottom:4px}.ml__section-label:first-child{padding-top:0}.ml--small .ml__section-label{font-size:.625rem;padding-top:16px}.ml__row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;grid-column:1/-1}.ml--small .ml__row{padding:5px 0}.ml__icon{flex-shrink:0;font-size:1.125rem;color:var(--ion-color-medium, #92949c);line-height:1;margin-top:1px;padding:5px 0}.ml--grid .ml__icon{padding:5px 0}.ml--small .ml__icon{font-size:1rem}.ml__icon--placeholder{width:1.125rem;height:1.125rem}.ml--small .ml__icon--placeholder{width:1rem;height:1rem}.ml__text{display:flex;flex-direction:column;gap:2px;min-width:0}.ml__cell{display:flex;flex-direction:column;gap:2px;min-width:0;padding:5px 0}.ml--grid .ml__cell{padding:5px 0}.ml__label{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--ion-color-medium, #92949c);line-height:1.3;grid-column:2;margin:0}.ml--small .ml__label{font-size:.625rem}.ml__value{font-size:.875rem;font-weight:600;color:var(--ion-text-color, #000);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;grid-column:3;margin:0}.ml--small .ml__value{font-size:.8125rem}.ml__chips{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0}.ml__chip{display:inline-block;font-size:.75rem;font-weight:500;line-height:1;padding:3px 8px;border-radius:100px;background:var(--ion-color-light, rgba(0, 0, 0, .06));color:var(--ion-text-color, #000)}.ml--small .ml__chip{font-size:.6875rem;padding:2px 7px}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
84
80
|
}
|
|
85
81
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MetadataListComponent, decorators: [{
|
|
86
82
|
type: Component,
|
|
@@ -106,21 +102,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
106
102
|
</div>
|
|
107
103
|
</div>
|
|
108
104
|
} @else {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
<dt class="ml__label">{{ item.label }}</dt>
|
|
117
|
-
<dd class="ml__value" [style.color]="item.color || null">{{ item.value }}</dd>
|
|
118
|
-
</div>
|
|
119
|
-
</div>
|
|
105
|
+
@if (item.icon) {
|
|
106
|
+
<ion-icon class="ml__icon" [name]="item.icon" aria-hidden="true" />
|
|
107
|
+
} @else {
|
|
108
|
+
<div class="ml__icon--placeholder"></div>
|
|
109
|
+
}
|
|
110
|
+
<dt class="ml__label">{{ item.label }}</dt>
|
|
111
|
+
<dd class="ml__value" [style.color]="item.color || null">{{ item.value }}</dd>
|
|
120
112
|
}
|
|
121
113
|
}
|
|
122
114
|
}
|
|
123
115
|
</dl>
|
|
124
|
-
`, styles: ["@charset \"UTF-8\";:host{display:block}.ml{display:
|
|
116
|
+
`, styles: ["@charset \"UTF-8\";:host{display:block}.ml{display:grid;grid-template-columns:auto 1fr 1fr;gap:10px 16px;align-items:center}.ml--dividers{row-gap:1px}.ml--dividers>*:nth-child(3n){border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));padding-bottom:12px}.ml--dividers .ml--small>*:nth-child(3n){padding-bottom:8px}.ml__section-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ion-color-medium, #92949c);padding-top:20px;padding-bottom:4px}.ml__section-label:first-child{padding-top:0}.ml--small .ml__section-label{font-size:.625rem;padding-top:16px}.ml__row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;grid-column:1/-1}.ml--small .ml__row{padding:5px 0}.ml__icon{flex-shrink:0;font-size:1.125rem;color:var(--ion-color-medium, #92949c);line-height:1;margin-top:1px;padding:5px 0}.ml--grid .ml__icon{padding:5px 0}.ml--small .ml__icon{font-size:1rem}.ml__icon--placeholder{width:1.125rem;height:1.125rem}.ml--small .ml__icon--placeholder{width:1rem;height:1rem}.ml__text{display:flex;flex-direction:column;gap:2px;min-width:0}.ml__cell{display:flex;flex-direction:column;gap:2px;min-width:0;padding:5px 0}.ml--grid .ml__cell{padding:5px 0}.ml__label{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--ion-color-medium, #92949c);line-height:1.3;grid-column:2;margin:0}.ml--small .ml__label{font-size:.625rem}.ml__value{font-size:.875rem;font-weight:600;color:var(--ion-text-color, #000);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;grid-column:3;margin:0}.ml--small .ml__value{font-size:.8125rem}.ml__chips{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0}.ml__chip{display:inline-block;font-size:.75rem;font-weight:500;line-height:1;padding:3px 8px;border-radius:100px;background:var(--ion-color-light, rgba(0, 0, 0, .06));color:var(--ion-text-color, #000)}.ml--small .ml__chip{font-size:.6875rem;padding:2px 7px}\n"] }]
|
|
125
117
|
}] });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL21ldGFkYXRhLWxpc3QvbWV0YWRhdGEtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVwRCxPQUFPLEVBQXlDLHNCQUFzQixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUV4Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUF5Q0gsTUFBTSxPQUFPLHFCQUFxQjtJQXhDbEM7UUF5Q1csVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXdCLENBQUM7UUFFL0Msa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN2QyxHQUFHLHNCQUFzQjtZQUN6QixHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUU7U0FDaEIsQ0FBQyxDQUFDLENBQUM7UUFFSyxxQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBc0IsRUFBRTtZQUMzRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLE1BQU07Z0JBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQzFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFFTSxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNqQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDL0IsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ILENBQUMsQ0FBQyxDQUFDO1FBRU0sY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMzQzsrR0FwQlkscUJBQXFCO21HQUFyQixxQkFBcUIsZ05BcEN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNULDIvREFsQ1MsT0FBTzs7NEZBcUNOLHFCQUFxQjtrQkF4Q2pDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLE9BQU8sQ0FBQyxZQUNSOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ1QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBNZXRhZGF0YUxpc3RNZXRhZGF0YSwgTWV0YWRhdGFTZWN0aW9uLCBNRVRBREFUQV9MSVNUX0RFRkFVTFRTIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogdmFsLW1ldGFkYXRhLWxpc3RcbiAqXG4gKiBMaXN0YSBkZSBwYXJlcyBjbGF2ZS12YWxvciBjb24gaWNvbm8gb3BjaW9uYWwuIFNvcG9ydGE6XG4gKiAtIE1vZG8gcGxhbm86IGB7IGl0ZW1zOiBbLi4uXSB9YFxuICogLSBNb2RvIGFncnVwYWRvOiBgeyBzZWN0aW9uczogW3sgbGFiZWwsIGl0ZW1zIH1dIH1gXG4gKiAtIEdyaWQgbXVsdGljb2x1bW5hOiBgeyBjb2x1bW5zOiAyIH1gXG4gKiAtIFZhbG9yZXMgY29tbyBjaGlwczogYHsgLi4uLCBjaGlwczogdHJ1ZSB9YCBlbiBlbCBpdGVtXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDx2YWwtbWV0YWRhdGEtbGlzdCBbcHJvcHNdPVwie1xuICogICBjb2x1bW5zOiAyLFxuICogICBzaXplOiAnc21hbGwnLFxuICogICBzZWN0aW9uczogW1xuICogICAgIHsgaXRlbXM6IFt7IGljb246ICdwYXctb3V0bGluZScsIGxhYmVsOiAnRXNwZWNpZScsIHZhbHVlOiAnR2F0bycgfV0gfSxcbiAqICAgICB7IGxhYmVsOiAnUGVyc29uYWxpZGFkJywgaXRlbXM6IFt7IGxhYmVsOiAnVGVtcGVyYW1lbnRvJywgdmFsdWU6ICd0cmFucXVpbGEsIGNhcmnDsW9zYScsIGNoaXBzOiB0cnVlIH1dIH1cbiAqICAgXVxuICogfVwiIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLW1ldGFkYXRhLWxpc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSW9uSWNvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRsIFtjbGFzc109XCJob3N0Q2xhc3MoKVwiPlxuICAgICAgQGZvciAoc2VjdGlvbiBvZiByZXNvbHZlZFNlY3Rpb25zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICBAaWYgKHNlY3Rpb24ubGFiZWwpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWxfX3NlY3Rpb24tbGFiZWxcIj57eyBzZWN0aW9uLmxhYmVsIH19PC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAoaXRlbSBvZiBzZWN0aW9uLml0ZW1zOyB0cmFjayBpdGVtLnRva2VuIHx8IGl0ZW0ubGFiZWwpIHtcbiAgICAgICAgICBAaWYgKGl0ZW0uY2hpcHMpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbF9fcm93IG1sX19yb3ctLWNoaXBzXCI+XG4gICAgICAgICAgICAgIEBpZiAoaXRlbS5pY29uKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwibWxfX2ljb25cIiBbbmFtZV09XCJpdGVtLmljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbF9fdGV4dFwiPlxuICAgICAgICAgICAgICAgIDxkdCBjbGFzcz1cIm1sX19sYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfX08L2R0PlxuICAgICAgICAgICAgICAgIDxkZCBjbGFzcz1cIm1sX19jaGlwc1wiPlxuICAgICAgICAgICAgICAgICAgQGZvciAoY2hpcCBvZiBpdGVtLnZhbHVlLnNwbGl0KCcsJyk7IHRyYWNrIGNoaXApIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbF9fY2hpcFwiPnt7IGNoaXAudHJpbSgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGQ+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKGl0ZW0uaWNvbikge1xuICAgICAgICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJtbF9faWNvblwiIFtuYW1lXT1cIml0ZW0uaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1sX19pY29uLS1wbGFjZWhvbGRlclwiPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGR0IGNsYXNzPVwibWxfX2xhYmVsXCI+e3sgaXRlbS5sYWJlbCB9fTwvZHQ+XG4gICAgICAgICAgICA8ZGQgY2xhc3M9XCJtbF9fdmFsdWVcIiBbc3R5bGUuY29sb3JdPVwiaXRlbS5jb2xvciB8fCBudWxsXCI+e3sgaXRlbS52YWx1ZSB9fTwvZGQ+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kbD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vbWV0YWRhdGEtbGlzdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YUxpc3RDb21wb25lbnQge1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0LnJlcXVpcmVkPE1ldGFkYXRhTGlzdE1ldGFkYXRhPigpO1xuXG4gIHJlYWRvbmx5IHJlc29sdmVkUHJvcHMgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgIC4uLk1FVEFEQVRBX0xJU1RfREVGQVVMVFMsXG4gICAgLi4udGhpcy5wcm9wcygpLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgcmVzb2x2ZWRTZWN0aW9ucyA9IGNvbXB1dGVkKCgpOiBNZXRhZGF0YVNlY3Rpb25bXSA9PiB7XG4gICAgY29uc3QgcCA9IHRoaXMucmVzb2x2ZWRQcm9wcygpO1xuICAgIGlmIChwLnNlY3Rpb25zPy5sZW5ndGgpIHJldHVybiBwLnNlY3Rpb25zO1xuICAgIHJldHVybiBbeyBpdGVtczogcC5pdGVtcyA/PyBbXSB9XTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaG9zdENsYXNzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHAgPSB0aGlzLnJlc29sdmVkUHJvcHMoKTtcbiAgICByZXR1cm4gWydtbCcsIHAuZGl2aWRlcnMgPyAnbWwtLWRpdmlkZXJzJyA6ICcnLCBwLnNpemUgPT09ICdzbWFsbCcgPyAnbWwtLXNtYWxsJyA6ICcnXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpO1xuICB9KTtcblxuICByZWFkb25seSBncmlkU3R5bGUgPSBjb21wdXRlZCgoKSA9PiBudWxsKTtcbn1cbiJdfQ==
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.959';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC45NTknO1xuIl19
|
|
@@ -67,7 +67,7 @@ import fixWebmDuration from 'fix-webm-duration';
|
|
|
67
67
|
* Current version of valtech-components.
|
|
68
68
|
* This is automatically updated during the publish process.
|
|
69
69
|
*/
|
|
70
|
-
const VERSION = '4.0.
|
|
70
|
+
const VERSION = '4.0.959';
|
|
71
71
|
|
|
72
72
|
function evaluateValtechAccess(rule, context, features = {}, visitedFeatures = new Set()) {
|
|
73
73
|
if (rule == null)
|
|
@@ -33270,22 +33270,18 @@ class MetadataListComponent {
|
|
|
33270
33270
|
</div>
|
|
33271
33271
|
</div>
|
|
33272
33272
|
} @else {
|
|
33273
|
-
|
|
33274
|
-
|
|
33275
|
-
|
|
33276
|
-
|
|
33277
|
-
|
|
33278
|
-
|
|
33279
|
-
|
|
33280
|
-
<dt class="ml__label">{{ item.label }}</dt>
|
|
33281
|
-
<dd class="ml__value" [style.color]="item.color || null">{{ item.value }}</dd>
|
|
33282
|
-
</div>
|
|
33283
|
-
</div>
|
|
33273
|
+
@if (item.icon) {
|
|
33274
|
+
<ion-icon class="ml__icon" [name]="item.icon" aria-hidden="true" />
|
|
33275
|
+
} @else {
|
|
33276
|
+
<div class="ml__icon--placeholder"></div>
|
|
33277
|
+
}
|
|
33278
|
+
<dt class="ml__label">{{ item.label }}</dt>
|
|
33279
|
+
<dd class="ml__value" [style.color]="item.color || null">{{ item.value }}</dd>
|
|
33284
33280
|
}
|
|
33285
33281
|
}
|
|
33286
33282
|
}
|
|
33287
33283
|
</dl>
|
|
33288
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:host{display:block}.ml{display:
|
|
33284
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:host{display:block}.ml{display:grid;grid-template-columns:auto 1fr 1fr;gap:10px 16px;align-items:center}.ml--dividers{row-gap:1px}.ml--dividers>*:nth-child(3n){border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));padding-bottom:12px}.ml--dividers .ml--small>*:nth-child(3n){padding-bottom:8px}.ml__section-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ion-color-medium, #92949c);padding-top:20px;padding-bottom:4px}.ml__section-label:first-child{padding-top:0}.ml--small .ml__section-label{font-size:.625rem;padding-top:16px}.ml__row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;grid-column:1/-1}.ml--small .ml__row{padding:5px 0}.ml__icon{flex-shrink:0;font-size:1.125rem;color:var(--ion-color-medium, #92949c);line-height:1;margin-top:1px;padding:5px 0}.ml--grid .ml__icon{padding:5px 0}.ml--small .ml__icon{font-size:1rem}.ml__icon--placeholder{width:1.125rem;height:1.125rem}.ml--small .ml__icon--placeholder{width:1rem;height:1rem}.ml__text{display:flex;flex-direction:column;gap:2px;min-width:0}.ml__cell{display:flex;flex-direction:column;gap:2px;min-width:0;padding:5px 0}.ml--grid .ml__cell{padding:5px 0}.ml__label{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--ion-color-medium, #92949c);line-height:1.3;grid-column:2;margin:0}.ml--small .ml__label{font-size:.625rem}.ml__value{font-size:.875rem;font-weight:600;color:var(--ion-text-color, #000);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;grid-column:3;margin:0}.ml--small .ml__value{font-size:.8125rem}.ml__chips{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0}.ml__chip{display:inline-block;font-size:.75rem;font-weight:500;line-height:1;padding:3px 8px;border-radius:100px;background:var(--ion-color-light, rgba(0, 0, 0, .06));color:var(--ion-text-color, #000)}.ml--small .ml__chip{font-size:.6875rem;padding:2px 7px}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
33289
33285
|
}
|
|
33290
33286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MetadataListComponent, decorators: [{
|
|
33291
33287
|
type: Component,
|
|
@@ -33311,22 +33307,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
33311
33307
|
</div>
|
|
33312
33308
|
</div>
|
|
33313
33309
|
} @else {
|
|
33314
|
-
|
|
33315
|
-
|
|
33316
|
-
|
|
33317
|
-
|
|
33318
|
-
|
|
33319
|
-
|
|
33320
|
-
|
|
33321
|
-
<dt class="ml__label">{{ item.label }}</dt>
|
|
33322
|
-
<dd class="ml__value" [style.color]="item.color || null">{{ item.value }}</dd>
|
|
33323
|
-
</div>
|
|
33324
|
-
</div>
|
|
33310
|
+
@if (item.icon) {
|
|
33311
|
+
<ion-icon class="ml__icon" [name]="item.icon" aria-hidden="true" />
|
|
33312
|
+
} @else {
|
|
33313
|
+
<div class="ml__icon--placeholder"></div>
|
|
33314
|
+
}
|
|
33315
|
+
<dt class="ml__label">{{ item.label }}</dt>
|
|
33316
|
+
<dd class="ml__value" [style.color]="item.color || null">{{ item.value }}</dd>
|
|
33325
33317
|
}
|
|
33326
33318
|
}
|
|
33327
33319
|
}
|
|
33328
33320
|
</dl>
|
|
33329
|
-
`, styles: ["@charset \"UTF-8\";:host{display:block}.ml{display:
|
|
33321
|
+
`, styles: ["@charset \"UTF-8\";:host{display:block}.ml{display:grid;grid-template-columns:auto 1fr 1fr;gap:10px 16px;align-items:center}.ml--dividers{row-gap:1px}.ml--dividers>*:nth-child(3n){border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));padding-bottom:12px}.ml--dividers .ml--small>*:nth-child(3n){padding-bottom:8px}.ml__section-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ion-color-medium, #92949c);padding-top:20px;padding-bottom:4px}.ml__section-label:first-child{padding-top:0}.ml--small .ml__section-label{font-size:.625rem;padding-top:16px}.ml__row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;grid-column:1/-1}.ml--small .ml__row{padding:5px 0}.ml__icon{flex-shrink:0;font-size:1.125rem;color:var(--ion-color-medium, #92949c);line-height:1;margin-top:1px;padding:5px 0}.ml--grid .ml__icon{padding:5px 0}.ml--small .ml__icon{font-size:1rem}.ml__icon--placeholder{width:1.125rem;height:1.125rem}.ml--small .ml__icon--placeholder{width:1rem;height:1rem}.ml__text{display:flex;flex-direction:column;gap:2px;min-width:0}.ml__cell{display:flex;flex-direction:column;gap:2px;min-width:0;padding:5px 0}.ml--grid .ml__cell{padding:5px 0}.ml__label{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--ion-color-medium, #92949c);line-height:1.3;grid-column:2;margin:0}.ml--small .ml__label{font-size:.625rem}.ml__value{font-size:.875rem;font-weight:600;color:var(--ion-text-color, #000);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;grid-column:3;margin:0}.ml--small .ml__value{font-size:.8125rem}.ml__chips{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0}.ml__chip{display:inline-block;font-size:.75rem;font-weight:500;line-height:1;padding:3px 8px;border-radius:100px;background:var(--ion-color-light, rgba(0, 0, 0, .06));color:var(--ion-text-color, #000)}.ml--small .ml__chip{font-size:.6875rem;padding:2px 7px}\n"] }]
|
|
33330
33322
|
}] });
|
|
33331
33323
|
|
|
33332
33324
|
/**
|
|
@@ -75785,6 +75777,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
75785
75777
|
* no como un `<select>` armado a mano en cada app — "una línea, una etiqueta
|
|
75786
75778
|
* i18n" (ver ADR-083 §"Qué se construye una sola vez").
|
|
75787
75779
|
*
|
|
75780
|
+
* Renderiza vía `val-select-input` (el selector estándar de `val-form`) en vez
|
|
75781
|
+
* de un `ion-select` propio — mismo look/comportamiento que cualquier otro
|
|
75782
|
+
* campo SELECT del factory, sin reimplementar popover/i18n de cancel-ok.
|
|
75783
|
+
*
|
|
75788
75784
|
* Sin texto hardcodeado: los labels llegan por `@Input` (lib i18n-agnostic).
|
|
75789
75785
|
* Cada app pone su palabra ("Equipo", "Sucursal", "Refugio").
|
|
75790
75786
|
*/
|
|
@@ -75797,62 +75793,71 @@ class GroupPickerComponent {
|
|
|
75797
75793
|
this.disabled = false;
|
|
75798
75794
|
this.valueChange = new EventEmitter();
|
|
75799
75795
|
this.groupsSvc = inject(GroupsService);
|
|
75800
|
-
this.groups = [];
|
|
75796
|
+
this.groups = signal([]);
|
|
75797
|
+
this.inputType = InputType.SELECT;
|
|
75798
|
+
this.enabledState = ComponentStates.ENABLED;
|
|
75799
|
+
this.disabledState = ComponentStates.DISABLED;
|
|
75800
|
+
// Opción vacía SIEMPRE disponible: un recurso sin grupo es visible para
|
|
75801
|
+
// toda la organización (ADR-083, decisión 3), no un estado inválido.
|
|
75802
|
+
this.selectOptions = computed(() => [
|
|
75803
|
+
{ id: '', name: this.noGroupLabel, order: 0 },
|
|
75804
|
+
...this.groups().map((g, i) => ({ id: g.id, name: g.name, order: i + 1 })),
|
|
75805
|
+
]);
|
|
75806
|
+
this.control = new FormControl('');
|
|
75801
75807
|
}
|
|
75802
75808
|
ngOnInit() {
|
|
75809
|
+
this.control.setValue(this.value ?? '', { emitEvent: false });
|
|
75810
|
+
this.valueSub = this.control.valueChanges.subscribe(v => {
|
|
75811
|
+
this.value = v || null;
|
|
75812
|
+
this.valueChange.emit(this.value);
|
|
75813
|
+
});
|
|
75803
75814
|
this.groupsSvc.listGroups().subscribe({
|
|
75804
|
-
next:
|
|
75815
|
+
next: g => this.groups.set(g),
|
|
75805
75816
|
// Best-effort: si la lectura falla, el picker queda con la opción "sin
|
|
75806
75817
|
// grupo" únicamente. No es un error bloqueante — crear el recurso sin
|
|
75807
75818
|
// asignar sigue siendo válido.
|
|
75808
|
-
error: () =>
|
|
75819
|
+
error: () => this.groups.set([]),
|
|
75809
75820
|
});
|
|
75810
75821
|
}
|
|
75811
|
-
|
|
75812
|
-
|
|
75813
|
-
|
|
75822
|
+
ngOnChanges(changes) {
|
|
75823
|
+
if (changes['value'] && !changes['value'].firstChange) {
|
|
75824
|
+
this.control.setValue(this.value ?? '', { emitEvent: false });
|
|
75825
|
+
}
|
|
75826
|
+
}
|
|
75827
|
+
ngOnDestroy() {
|
|
75828
|
+
this.valueSub?.unsubscribe();
|
|
75814
75829
|
}
|
|
75815
75830
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GroupPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75816
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
75817
|
-
<
|
|
75818
|
-
[
|
|
75819
|
-
|
|
75820
|
-
|
|
75821
|
-
|
|
75822
|
-
|
|
75823
|
-
|
|
75824
|
-
|
|
75825
|
-
|
|
75826
|
-
|
|
75827
|
-
|
|
75828
|
-
@for (g of groups; track g.id) {
|
|
75829
|
-
<ion-select-option [value]="g.id">{{ g.name }}</ion-select-option>
|
|
75830
|
-
}
|
|
75831
|
-
</ion-select>
|
|
75832
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }] }); }
|
|
75831
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: GroupPickerComponent, isStandalone: true, selector: "val-group-picker", inputs: { label: "label", placeholder: "placeholder", noGroupLabel: "noGroupLabel", value: "value", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: `
|
|
75832
|
+
<val-select-input
|
|
75833
|
+
[props]="{
|
|
75834
|
+
control: control,
|
|
75835
|
+
label: label,
|
|
75836
|
+
placeholder: placeholder,
|
|
75837
|
+
type: inputType,
|
|
75838
|
+
state: disabled ? disabledState : enabledState,
|
|
75839
|
+
options: selectOptions(),
|
|
75840
|
+
}"
|
|
75841
|
+
/>
|
|
75842
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: SearchSelectorComponent, selector: "val-select-input", inputs: ["preset", "props"] }] }); }
|
|
75833
75843
|
}
|
|
75834
75844
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GroupPickerComponent, decorators: [{
|
|
75835
75845
|
type: Component,
|
|
75836
75846
|
args: [{
|
|
75837
75847
|
selector: 'val-group-picker',
|
|
75838
75848
|
standalone: true,
|
|
75839
|
-
imports: [CommonModule,
|
|
75849
|
+
imports: [CommonModule, SearchSelectorComponent],
|
|
75840
75850
|
template: `
|
|
75841
|
-
<
|
|
75842
|
-
[
|
|
75843
|
-
|
|
75844
|
-
|
|
75845
|
-
|
|
75846
|
-
|
|
75847
|
-
|
|
75848
|
-
|
|
75849
|
-
|
|
75850
|
-
|
|
75851
|
-
<ion-select-option value="">{{ noGroupLabel }}</ion-select-option>
|
|
75852
|
-
@for (g of groups; track g.id) {
|
|
75853
|
-
<ion-select-option [value]="g.id">{{ g.name }}</ion-select-option>
|
|
75854
|
-
}
|
|
75855
|
-
</ion-select>
|
|
75851
|
+
<val-select-input
|
|
75852
|
+
[props]="{
|
|
75853
|
+
control: control,
|
|
75854
|
+
label: label,
|
|
75855
|
+
placeholder: placeholder,
|
|
75856
|
+
type: inputType,
|
|
75857
|
+
state: disabled ? disabledState : enabledState,
|
|
75858
|
+
options: selectOptions(),
|
|
75859
|
+
}"
|
|
75860
|
+
/>
|
|
75856
75861
|
`,
|
|
75857
75862
|
}]
|
|
75858
75863
|
}], propDecorators: { label: [{
|