@seniorsistemas/data-seniorx-core 1.9.0 → 1.10.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/core/types/table.type.d.ts +17 -1
- package/esm2022/core/types/table.type.mjs +6 -21
- package/esm2022/features/button/button.component.mjs +60 -13
- package/esm2022/features/card-list/card/card.component.mjs +2 -2
- package/esm2022/features/card-list/card-list.component.mjs +2 -2
- package/esm2022/features/hyperlink/hyperlink.component.mjs +25 -11
- package/esm2022/features/list/list.component.mjs +2 -2
- package/esm2022/features/picklist/picklist.component.mjs +103 -0
- package/esm2022/features/radio/radio.component.mjs +175 -0
- package/esm2022/features/row-card-list/row-card/row-card.component.mjs +2 -2
- package/esm2022/features/sidebar/sidebar.component.mjs +33 -12
- package/esm2022/features/switch/switch.component.mjs +51 -0
- package/esm2022/features/table/table.component.mjs +57 -45
- package/esm2022/public-api.mjs +4 -1
- package/features/button/button.component.d.ts +18 -5
- package/features/hyperlink/hyperlink.component.d.ts +7 -2
- package/features/picklist/picklist.component.d.ts +32 -0
- package/features/radio/radio.component.d.ts +49 -0
- package/features/sidebar/sidebar.component.d.ts +9 -4
- package/features/switch/switch.component.d.ts +23 -0
- package/features/table/table.component.d.ts +10 -3
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs +499 -109
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { CheckboxComponent } from '../checkbox/checkbox.component';
|
|
5
|
+
import { PaginatorComponent } from '../paginator/paginator.component';
|
|
6
|
+
import { SearchboxComponent } from '../searchbox/searchbox.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "@angular/forms";
|
|
10
|
+
export class PicklistComponent {
|
|
11
|
+
items = [];
|
|
12
|
+
selectedIds = [];
|
|
13
|
+
idKey = 'id';
|
|
14
|
+
titleKey = 'name';
|
|
15
|
+
subtitleKey = 'code';
|
|
16
|
+
iconClass = 'fas fa-rocket';
|
|
17
|
+
first = 0;
|
|
18
|
+
rows = 6;
|
|
19
|
+
rowsPerPageOptions = [5, 10];
|
|
20
|
+
placeholder = 'Buscar produtos';
|
|
21
|
+
pageChange = new EventEmitter();
|
|
22
|
+
selectedIdsChange = new EventEmitter();
|
|
23
|
+
sel = new Set();
|
|
24
|
+
searchTerm = '';
|
|
25
|
+
ngOnChanges(changes) {
|
|
26
|
+
if (changes['selectedIds']) {
|
|
27
|
+
const v = this.selectedIds instanceof Set ? Array.from(this.selectedIds) : (this.selectedIds ?? []);
|
|
28
|
+
this.sel = new Set(v);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
get filtered() {
|
|
32
|
+
const q = this.searchTerm.trim().toLowerCase();
|
|
33
|
+
const base = this.items ?? [];
|
|
34
|
+
if (!q)
|
|
35
|
+
return base;
|
|
36
|
+
return base.filter(it => {
|
|
37
|
+
const hay = `${String(it[this.titleKey] ?? '')} ${String(it[this.subtitleKey] ?? '')}`.toLowerCase();
|
|
38
|
+
return hay.includes(q);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
get totalRecords() { return this.filtered.length; }
|
|
42
|
+
get pageItems() {
|
|
43
|
+
const s = this.first ?? 0;
|
|
44
|
+
const e = s + (this.rows ?? 0);
|
|
45
|
+
return this.filtered.slice(s, e);
|
|
46
|
+
}
|
|
47
|
+
isSelected(it) {
|
|
48
|
+
return this.sel.has(Number(it[this.idKey]));
|
|
49
|
+
}
|
|
50
|
+
toggle(it, checked) {
|
|
51
|
+
const id = Number(it[this.idKey]);
|
|
52
|
+
checked ? this.sel.add(id) : this.sel.delete(id);
|
|
53
|
+
this.selectedIdsChange.emit(Array.from(this.sel));
|
|
54
|
+
}
|
|
55
|
+
rowClick(it) {
|
|
56
|
+
const id = Number(it[this.idKey]);
|
|
57
|
+
const next = !this.sel.has(id);
|
|
58
|
+
this.toggle(it, next);
|
|
59
|
+
}
|
|
60
|
+
onSearchTerm(ev) {
|
|
61
|
+
const term = typeof ev === 'string' ? ev : ev?.detail ?? '';
|
|
62
|
+
this.searchTerm = String(term);
|
|
63
|
+
this.first = 0;
|
|
64
|
+
this.pageChange.emit({ first: 0, rows: this.rows, page: 0, pageCount: Math.ceil(this.totalRecords / (this.rows || 1)) });
|
|
65
|
+
}
|
|
66
|
+
onPageChange(e) {
|
|
67
|
+
this.first = e.first ?? 0;
|
|
68
|
+
this.rows = e.rows ?? this.rows;
|
|
69
|
+
this.pageChange.emit(e);
|
|
70
|
+
}
|
|
71
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PicklistComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
72
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PicklistComponent, isStandalone: true, selector: "sdc-picklist", inputs: { items: "items", selectedIds: "selectedIds", idKey: "idKey", titleKey: "titleKey", subtitleKey: "subtitleKey", iconClass: "iconClass", first: "first", rows: "rows", rowsPerPageOptions: "rowsPerPageOptions", placeholder: "placeholder" }, outputs: { pageChange: "pageChange", selectedIdsChange: "selectedIdsChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"p-3\">\n <sdc-searchbox\n [placeholder]=\"placeholder\"\n [triggerMode]=\"'auto'\"\n (onSearch)=\"onSearchTerm($event)\"\n (onClear)=\"onSearchTerm('')\"\n >\n </sdc-searchbox>\n</div>\n\n<div class=\"px-3\">\n <div class=\"grid\">\n <div class=\"col-12\" *ngFor=\"let it of pageItems\">\n <div\n (click)=\"rowClick(it)\"\n class=\"flex align-items-center gap-3 p-3 border-round\"\n [class.surface-200]=\"isSelected(it)\"\n >\n <sdc-checkbox\n [label]=\"''\"\n [ngModel]=\"isSelected(it)\"\n (ngModelChange)=\"toggle(it, $event)\"\n (click)=\"$event.stopPropagation()\"\n >\n </sdc-checkbox>\n <i [class]=\"iconClass\"></i>\n <div class=\"flex flex-column\">\n <div>\n <strong>{{ it[titleKey] }}</strong>\n </div>\n <div class=\"text-500 text-sm\">{{ it[subtitleKey] }}</div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mt-3\">\n <sdc-paginator\n [first]=\"first\"\n [rows]=\"rows\"\n [totalRecords]=\"totalRecords\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n [isMobile]=\"false\"\n (pageChange)=\"onPageChange($event)\"\n >\n </sdc-paginator>\n <div class=\"text-right text-500 text-sm mt-2\">{{ totalRecords }} registros encontrados</div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CheckboxComponent, selector: "sdc-checkbox", inputs: ["label", "disabled", "commonCheckbox", "labelPosition", "size", "checked"], outputs: ["checkedChange"] }, { kind: "component", type: PaginatorComponent, selector: "sdc-paginator", inputs: ["first", "rows", "totalRecords", "rowsPerPageOptions", "isMobile", "totalRecordsLabel"], outputs: ["pageChange"] }, { kind: "component", type: SearchboxComponent, selector: "sdc-searchbox", inputs: ["triggerMode"], outputs: ["onSearch", "onClear"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
73
|
+
}
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PicklistComponent, decorators: [{
|
|
75
|
+
type: Component,
|
|
76
|
+
args: [{ selector: 'sdc-picklist', standalone: true, imports: [CommonModule, FormsModule, CheckboxComponent, PaginatorComponent, SearchboxComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"p-3\">\n <sdc-searchbox\n [placeholder]=\"placeholder\"\n [triggerMode]=\"'auto'\"\n (onSearch)=\"onSearchTerm($event)\"\n (onClear)=\"onSearchTerm('')\"\n >\n </sdc-searchbox>\n</div>\n\n<div class=\"px-3\">\n <div class=\"grid\">\n <div class=\"col-12\" *ngFor=\"let it of pageItems\">\n <div\n (click)=\"rowClick(it)\"\n class=\"flex align-items-center gap-3 p-3 border-round\"\n [class.surface-200]=\"isSelected(it)\"\n >\n <sdc-checkbox\n [label]=\"''\"\n [ngModel]=\"isSelected(it)\"\n (ngModelChange)=\"toggle(it, $event)\"\n (click)=\"$event.stopPropagation()\"\n >\n </sdc-checkbox>\n <i [class]=\"iconClass\"></i>\n <div class=\"flex flex-column\">\n <div>\n <strong>{{ it[titleKey] }}</strong>\n </div>\n <div class=\"text-500 text-sm\">{{ it[subtitleKey] }}</div>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"mt-3\">\n <sdc-paginator\n [first]=\"first\"\n [rows]=\"rows\"\n [totalRecords]=\"totalRecords\"\n [rowsPerPageOptions]=\"rowsPerPageOptions\"\n [isMobile]=\"false\"\n (pageChange)=\"onPageChange($event)\"\n >\n </sdc-paginator>\n <div class=\"text-right text-500 text-sm mt-2\">{{ totalRecords }} registros encontrados</div>\n </div>\n</div>\n" }]
|
|
77
|
+
}], propDecorators: { items: [{
|
|
78
|
+
type: Input,
|
|
79
|
+
args: [{ required: true }]
|
|
80
|
+
}], selectedIds: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], idKey: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], titleKey: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], subtitleKey: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], iconClass: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], first: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], rows: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], rowsPerPageOptions: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], placeholder: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], pageChange: [{
|
|
99
|
+
type: Output
|
|
100
|
+
}], selectedIdsChange: [{
|
|
101
|
+
type: Output
|
|
102
|
+
}] } });
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2xpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9waWNrbGlzdC9waWNrbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3BpY2tsaXN0L3BpY2tsaXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUM3SSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFhdEUsTUFBTSxPQUFPLGlCQUFpQjtJQUNELEtBQUssR0FBYSxFQUFFLENBQUM7SUFDdkMsV0FBVyxHQUEyQixFQUFFLENBQUM7SUFDekMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUNiLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFDbEIsV0FBVyxHQUFHLE1BQU0sQ0FBQztJQUNyQixTQUFTLEdBQUcsZUFBZSxDQUFDO0lBRTVCLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDVixJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ1Qsa0JBQWtCLEdBQWEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkMsV0FBVyxHQUFHLGlCQUFpQixDQUFDO0lBRS9CLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztJQUNoRCxpQkFBaUIs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LGlCQUFpQixDQUFDLFFBQVE7OEJBR2QsS0FBSztzQkFBL0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0VuY2Fwc3VsYXRpb24sIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBhZ2luYXRvclN0YXRlIH0gZnJvbSAncHJpbWVuZy9wYWdpbmF0b3InO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuLi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoYm94L3NlYXJjaGJveC5jb21wb25lbnQnO1xuXG50eXBlIEFueVJlYyA9IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1waWNrbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBDaGVja2JveENvbXBvbmVudCwgUGFnaW5hdG9yQ29tcG9uZW50LCBTZWFyY2hib3hDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vcGlja2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcGlja2xpc3QuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgUGlja2xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBpdGVtczogQW55UmVjW10gPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRJZHM6IG51bWJlcltdIHwgU2V0PG51bWJlcj4gPSBbXTtcbiAgQElucHV0KCkgaWRLZXkgPSAnaWQnO1xuICBASW5wdXQoKSB0aXRsZUtleSA9ICduYW1lJztcbiAgQElucHV0KCkgc3VidGl0bGVLZXkgPSAnY29kZSc7XG4gIEBJbnB1dCgpIGljb25DbGFzcyA9ICdmYXMgZmEtcm9ja2V0JztcblxuICBASW5wdXQoKSBmaXJzdCA9IDA7XG4gIEBJbnB1dCgpIHJvd3MgPSA2O1xuICBASW5wdXQoKSByb3dzUGVyUGFnZU9wdGlvbnM6IG51bWJlcltdID0gWzUsIDEwXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnQnVzY2FyIHByb2R1dG9zJztcblxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnaW5hdG9yU3RhdGU+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RlZElkc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyW10+KCk7XG5cbiAgcHJpdmF0ZSBzZWwgPSBuZXcgU2V0PG51bWJlcj4oKTtcbiAgc2VhcmNoVGVybSA9ICcnO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snc2VsZWN0ZWRJZHMnXSkge1xuICAgICAgY29uc3QgdiA9IHRoaXMuc2VsZWN0ZWRJZHMgaW5zdGFuY2VvZiBTZXQgPyBBcnJheS5mcm9tKHRoaXMuc2VsZWN0ZWRJZHMpIDogKHRoaXMuc2VsZWN0ZWRJZHMgPz8gW10pO1xuICAgICAgdGhpcy5zZWwgPSBuZXcgU2V0KHYgYXMgbnVtYmVyW10pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBmaWx0ZXJlZCgpOiBBbnlSZWNbXSB7XG4gICAgY29uc3QgcSA9IHRoaXMuc2VhcmNoVGVybS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBiYXNlID0gdGhpcy5pdGVtcyA/PyBbXTtcbiAgICBpZiAoIXEpIHJldHVybiBiYXNlO1xuICAgIHJldHVybiBiYXNlLmZpbHRlcihpdCA9PiB7XG4gICAgICBjb25zdCBoYXkgPSBgJHtTdHJpbmcoaXRbdGhpcy50aXRsZUtleV0gPz8gJycpfSAke1N0cmluZyhpdFt0aGlzLnN1YnRpdGxlS2V5XSA/PyAnJyl9YC50b0xvd2VyQ2FzZSgpO1xuICAgICAgcmV0dXJuIGhheS5pbmNsdWRlcyhxKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCB0b3RhbFJlY29yZHMoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuZmlsdGVyZWQubGVuZ3RoOyB9XG5cbiAgZ2V0IHBhZ2VJdGVtcygpOiBBbnlSZWNbXSB7XG4gICAgY29uc3QgcyA9IHRoaXMuZmlyc3QgPz8gMDtcbiAgICBjb25zdCBlID0gcyArICh0aGlzLnJvd3MgPz8gMCk7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWQuc2xpY2UocywgZSk7XG4gIH1cblxuICBpc1NlbGVjdGVkKGl0OiBBbnlSZWMpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWwuaGFzKE51bWJlcihpdFt0aGlzLmlkS2V5XSkpO1xuICB9XG5cbiAgdG9nZ2xlKGl0OiBBbnlSZWMsIGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBpZCA9IE51bWJlcihpdFt0aGlzLmlkS2V5XSk7XG4gICAgY2hlY2tlZCA/IHRoaXMuc2VsLmFkZChpZCkgOiB0aGlzLnNlbC5kZWxldGUoaWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRJZHNDaGFuZ2UuZW1pdChBcnJheS5mcm9tKHRoaXMuc2VsKSk7XG4gIH1cblxuICByb3dDbGljayhpdDogQW55UmVjKTogdm9pZCB7XG4gICAgY29uc3QgaWQgPSBOdW1iZXIoaXRbdGhpcy5pZEtleV0pO1xuICAgIGNvbnN0IG5leHQgPSAhdGhpcy5zZWwuaGFzKGlkKTtcbiAgICB0aGlzLnRvZ2dsZShpdCwgbmV4dCk7XG4gIH1cblxuICBvblNlYXJjaFRlcm0oZXY6IHVua25vd24pOiB2b2lkIHtcbiAgICBjb25zdCB0ZXJtID0gdHlwZW9mIGV2ID09PSAnc3RyaW5nJyA/IGV2IDogKGV2IGFzIGFueSk/LmRldGFpbCA/PyAnJztcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSBTdHJpbmcodGVybSk7XG4gICAgdGhpcy5maXJzdCA9IDA7XG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBmaXJzdDogMCwgcm93czogdGhpcy5yb3dzLCBwYWdlOiAwLCBwYWdlQ291bnQ6IE1hdGguY2VpbCh0aGlzLnRvdGFsUmVjb3JkcyAvICh0aGlzLnJvd3MgfHwgMSkpIH0pO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlKGU6IFBhZ2luYXRvclN0YXRlKTogdm9pZCB7XG4gICAgdGhpcy5maXJzdCA9IGUuZmlyc3QgPz8gMDtcbiAgICB0aGlzLnJvd3MgPSBlLnJvd3MgPz8gdGhpcy5yb3dzO1xuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KGUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicC0zXCI+XG4gIDxzZGMtc2VhcmNoYm94XG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbdHJpZ2dlck1vZGVdPVwiJ2F1dG8nXCJcbiAgICAob25TZWFyY2gpPVwib25TZWFyY2hUZXJtKCRldmVudClcIlxuICAgIChvbkNsZWFyKT1cIm9uU2VhcmNoVGVybSgnJylcIlxuICA+XG4gIDwvc2RjLXNlYXJjaGJveD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwicHgtM1wiPlxuICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIiAqbmdGb3I9XCJsZXQgaXQgb2YgcGFnZUl0ZW1zXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIChjbGljayk9XCJyb3dDbGljayhpdClcIlxuICAgICAgICBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zIHAtMyBib3JkZXItcm91bmRcIlxuICAgICAgICBbY2xhc3Muc3VyZmFjZS0yMDBdPVwiaXNTZWxlY3RlZChpdClcIlxuICAgICAgPlxuICAgICAgICA8c2RjLWNoZWNrYm94XG4gICAgICAgICAgW2xhYmVsXT1cIicnXCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJpc1NlbGVjdGVkKGl0KVwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidG9nZ2xlKGl0LCAkZXZlbnQpXCJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NkYy1jaGVja2JveD5cbiAgICAgICAgPGkgW2NsYXNzXT1cImljb25DbGFzc1wiPjwvaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHN0cm9uZz57eyBpdFt0aXRsZUtleV0gfX08L3N0cm9uZz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC01MDAgdGV4dC1zbVwiPnt7IGl0W3N1YnRpdGxlS2V5XSB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibXQtM1wiPlxuICAgIDxzZGMtcGFnaW5hdG9yXG4gICAgICBbZmlyc3RdPVwiZmlyc3RcIlxuICAgICAgW3Jvd3NdPVwicm93c1wiXG4gICAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXG4gICAgICBbcm93c1BlclBhZ2VPcHRpb25zXT1cInJvd3NQZXJQYWdlT3B0aW9uc1wiXG4gICAgICBbaXNNb2JpbGVdPVwiZmFsc2VcIlxuICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICA8L3NkYy1wYWdpbmF0b3I+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHQgdGV4dC01MDAgdGV4dC1zbSBtdC0yXCI+e3sgdG90YWxSZWNvcmRzIH19IHJlZ2lzdHJvcyBlbmNvbnRyYWRvczwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
// radio.component.ts
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { Component, ChangeDetectionStrategy, ViewEncapsulation, forwardRef, Input, Output, EventEmitter, ViewChildren, } from '@angular/core';
|
|
4
|
+
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, } from '@angular/forms';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
let nextUniqueId = 0;
|
|
8
|
+
export class RadioComponent {
|
|
9
|
+
cdr;
|
|
10
|
+
options = [];
|
|
11
|
+
name;
|
|
12
|
+
label;
|
|
13
|
+
hint;
|
|
14
|
+
error;
|
|
15
|
+
orientation = 'inline';
|
|
16
|
+
size = 'md';
|
|
17
|
+
labelPlacement = 'right';
|
|
18
|
+
required = false;
|
|
19
|
+
disabled = false;
|
|
20
|
+
change = new EventEmitter();
|
|
21
|
+
valueChange = new EventEmitter();
|
|
22
|
+
focus = new EventEmitter();
|
|
23
|
+
blur = new EventEmitter();
|
|
24
|
+
radios;
|
|
25
|
+
_value = null;
|
|
26
|
+
onChangeFn = () => { };
|
|
27
|
+
onTouchedFn = () => { };
|
|
28
|
+
groupId = `sdc-radio-${++nextUniqueId}`;
|
|
29
|
+
get groupName() {
|
|
30
|
+
return this.name ?? this.groupId;
|
|
31
|
+
}
|
|
32
|
+
constructor(cdr) {
|
|
33
|
+
this.cdr = cdr;
|
|
34
|
+
}
|
|
35
|
+
get value() {
|
|
36
|
+
return this._value;
|
|
37
|
+
}
|
|
38
|
+
set value(v) {
|
|
39
|
+
if (this._value === v)
|
|
40
|
+
return;
|
|
41
|
+
this._value = v;
|
|
42
|
+
this.onChangeFn(v);
|
|
43
|
+
this.change.emit(v);
|
|
44
|
+
this.valueChange.emit(v);
|
|
45
|
+
this.cdr.markForCheck();
|
|
46
|
+
}
|
|
47
|
+
writeValue(v) {
|
|
48
|
+
this._value = v ?? null;
|
|
49
|
+
this.cdr.markForCheck();
|
|
50
|
+
}
|
|
51
|
+
registerOnChange(fn) {
|
|
52
|
+
this.onChangeFn = fn;
|
|
53
|
+
}
|
|
54
|
+
registerOnTouched(fn) {
|
|
55
|
+
this.onTouchedFn = fn;
|
|
56
|
+
}
|
|
57
|
+
setDisabledState(isDisabled) {
|
|
58
|
+
this.disabled = isDisabled;
|
|
59
|
+
this.cdr.markForCheck();
|
|
60
|
+
}
|
|
61
|
+
validate(_) {
|
|
62
|
+
if (this.required && (this.value === null || this.value === undefined)) {
|
|
63
|
+
return { required: true };
|
|
64
|
+
}
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
isChecked(v) {
|
|
68
|
+
return this.value === v;
|
|
69
|
+
}
|
|
70
|
+
isOptionDisabled(opt) {
|
|
71
|
+
return this.disabled || !!opt.disabled;
|
|
72
|
+
}
|
|
73
|
+
select(v) {
|
|
74
|
+
if (this.disabled)
|
|
75
|
+
return;
|
|
76
|
+
this.value = v;
|
|
77
|
+
}
|
|
78
|
+
onBlur() {
|
|
79
|
+
this.onTouchedFn();
|
|
80
|
+
this.blur.emit();
|
|
81
|
+
}
|
|
82
|
+
optionId(i) {
|
|
83
|
+
return `${this.groupId}-opt-${i}`;
|
|
84
|
+
}
|
|
85
|
+
onKeydown(e) {
|
|
86
|
+
if (!this.options?.length)
|
|
87
|
+
return;
|
|
88
|
+
const k = e.key;
|
|
89
|
+
const keys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'];
|
|
90
|
+
if (!keys.includes(k))
|
|
91
|
+
return;
|
|
92
|
+
e.preventDefault();
|
|
93
|
+
const enabled = this.options
|
|
94
|
+
.map((o, i) => ({ o, i }))
|
|
95
|
+
.filter(x => !this.isOptionDisabled(x.o));
|
|
96
|
+
if (!enabled.length)
|
|
97
|
+
return;
|
|
98
|
+
const currentIdx = enabled.findIndex(x => this.isChecked(x.o.value));
|
|
99
|
+
let targetIdx = currentIdx;
|
|
100
|
+
if (k === 'ArrowRight' || k === 'ArrowDown')
|
|
101
|
+
targetIdx = (currentIdx + 1 + enabled.length) % enabled.length;
|
|
102
|
+
if (k === 'ArrowLeft' || k === 'ArrowUp')
|
|
103
|
+
targetIdx = (currentIdx - 1 + enabled.length) % enabled.length;
|
|
104
|
+
if (k === 'Home')
|
|
105
|
+
targetIdx = 0;
|
|
106
|
+
if (k === 'End')
|
|
107
|
+
targetIdx = enabled.length - 1;
|
|
108
|
+
const target = enabled[targetIdx] ?? enabled[0];
|
|
109
|
+
this.select(target.o.value);
|
|
110
|
+
const inputs = this.radios?.toArray() ?? [];
|
|
111
|
+
const focusable = inputs[target.i]?.nativeElement;
|
|
112
|
+
focusable?.focus();
|
|
113
|
+
}
|
|
114
|
+
trackByIdx = (_, item) => item?.value ?? _;
|
|
115
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RadioComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RadioComponent, isStandalone: true, selector: "sdc-radio", inputs: { options: "options", name: "name", label: "label", hint: "hint", error: "error", orientation: "orientation", size: "size", labelPlacement: "labelPlacement", required: "required", disabled: "disabled" }, outputs: { change: "change", valueChange: "valueChange", focus: "focus", blur: "blur" }, providers: [
|
|
117
|
+
{
|
|
118
|
+
provide: NG_VALUE_ACCESSOR,
|
|
119
|
+
useExisting: forwardRef(() => RadioComponent),
|
|
120
|
+
multi: true,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
provide: NG_VALIDATORS,
|
|
124
|
+
useExisting: forwardRef(() => RadioComponent),
|
|
125
|
+
multi: true,
|
|
126
|
+
},
|
|
127
|
+
], viewQueries: [{ propertyName: "radios", predicate: ["radioInput"], descendants: true }], ngImport: i0, template: "<div\n class=\"sdc-radio\"\n [class.inline]=\"orientation === 'inline'\"\n [class.stacked]=\"orientation === 'stacked'\"\n [class.disabled]=\"disabled\"\n [class.invalid]=\"!!error\"\n [attr.role]=\"'radiogroup'\"\n [attr.aria-required]=\"required\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-invalid]=\"!!error\"\n [attr.aria-describedby]=\"hint ? groupId + '-hint' : null\"\n (keydown)=\"onKeydown($event)\"\n tabindex=\"-1\"\n>\n <div class=\"sdc-radio__header\" *ngIf=\"label || hint\">\n <label class=\"sdc-radio__group-label\" [attr.for]=\"groupId\" *ngIf=\"label\">{{ label }}</label>\n <div class=\"sdc-radio__hint\" *ngIf=\"hint\" [id]=\"groupId + '-hint'\">{{ hint }}</div>\n </div>\n\n <div\n class=\"sdc-radio__options\"\n [class.size-sm]=\"size === 'sm'\"\n [class.size-md]=\"size === 'md'\"\n [class.size-lg]=\"size === 'lg'\"\n >\n <label\n class=\"sdc-radio__option\"\n *ngFor=\"let opt of options; let i = index; trackBy: trackByIdx\"\n [class.checked]=\"isChecked(opt.value)\"\n [class.opt-disabled]=\"isOptionDisabled(opt)\"\n [class.label-left]=\"labelPlacement === 'left'\"\n [attr.for]=\"optionId(i)\"\n ><input\n #radioInput\n class=\"sdc-radio__input\"\n type=\"radio\"\n [id]=\"optionId(i)\"\n [name]=\"groupName\"\n [disabled]=\"isOptionDisabled(opt)\"\n [required]=\"required\"\n [checked]=\"isChecked(opt.value)\"\n [value]=\"opt.value\"\n (change)=\"select(opt.value)\"\n (focus)=\"focus.emit()\"\n (blur)=\"onBlur()\"\n />\n <span class=\"sdc-radio__control\" aria-hidden=\"true\"></span>\n <span class=\"sdc-radio__text\">\n <span class=\"sdc-radio__label\">{{ opt.label }}</span>\n <span class=\"sdc-radio__sublabel\" *ngIf=\"opt.hint\">{{ opt.hint }}</span>\n </span>\n </label>\n </div>\n\n <div class=\"sdc-radio__error\" *ngIf=\"error\">{{ error }}</div>\n</div>\n", styles: [":host{display:block;--sdc-radio-size-sm: 16px;--sdc-radio-size-md: 18px;--sdc-radio-size-lg: 20px;--sdc-radio-gap: .5rem;--sdc-radio-color: var(--sdc-primary-600, #2563eb);--sdc-radio-border: var(--sdc-border, #d1d5db);--sdc-radio-text: var(--sdc-text, #111827);--sdc-radio-muted: var(--sdc-muted, #6b7280);--sdc-radio-error: var(--sdc-danger-600, #dc2626);--sdc-radio-bg: #fff;--sdc-focus: var(--sdc-focus, #93c5fd);--sdc-disabled: var(--sdc-disabled, #9ca3af)}.sdc-radio{outline:0}.sdc-radio.disabled{opacity:.7;pointer-events:none}.sdc-radio.invalid .sdc-radio__control{border-color:var(--sdc-radio-error)}.sdc-radio__header{margin-bottom:.25rem;margin-top:.25rem}.sdc-radio__group-label{display:block;color:var(--sdc-radio-text)}.sdc-radio__hint{font-size:.875rem;color:var(--sdc-radio-muted)}.sdc-radio__options{display:flex;flex-wrap:wrap;gap:var(--sdc-radio-gap)}.sdc-radio__options.size-sm .sdc-radio__control{width:var(--sdc-radio-size-sm);height:var(--sdc-radio-size-sm)}.sdc-radio__options.size-md .sdc-radio__control{width:var(--sdc-radio-size-md);height:var(--sdc-radio-size-md)}.sdc-radio__options.size-lg .sdc-radio__control{width:var(--sdc-radio-size-lg);height:var(--sdc-radio-size-lg)}.sdc-radio.inline .sdc-radio__options{flex-direction:row}.sdc-radio.stacked .sdc-radio__options{flex-direction:column}.sdc-radio__option{display:inline-flex;align-items:center;gap:.5rem;-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:9999px;padding:.25rem}.sdc-radio__option.label-left{flex-direction:row-reverse}.sdc-radio__option.opt-disabled{cursor:not-allowed;opacity:.6}.sdc-radio__input{position:absolute;opacity:0;width:0;height:0}.sdc-radio__input:focus-visible+.sdc-radio__control{box-shadow:0 0 0 3px var(--sdc-focus)}.sdc-radio__control{box-sizing:border-box;flex:0 0 auto;border:2px solid var(--sdc-radio-border);border-radius:9999px;background:var(--sdc-radio-bg);display:grid;place-items:center;transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.sdc-radio__option.checked .sdc-radio__control{border-color:var(--sdc-radio-color)}.sdc-radio__option.checked .sdc-radio__control:after{content:\"\";display:block;width:55%;height:55%;border-radius:9999px;background:var(--sdc-radio-color)}.sdc-radio__text{display:inline-flex;flex-direction:column;min-width:0}.sdc-radio__label{color:var(--sdc-radio-text);font-size:.95rem;line-height:1.1}.sdc-radio__sublabel{font-size:.8rem;color:var(--sdc-radio-muted);line-height:1.1}.sdc-radio__error{margin-top:.375rem;font-size:.875rem;color:var(--sdc-radio-error)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
128
|
+
}
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RadioComponent, decorators: [{
|
|
130
|
+
type: Component,
|
|
131
|
+
args: [{ standalone: true, selector: 'sdc-radio', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, providers: [
|
|
132
|
+
{
|
|
133
|
+
provide: NG_VALUE_ACCESSOR,
|
|
134
|
+
useExisting: forwardRef(() => RadioComponent),
|
|
135
|
+
multi: true,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
provide: NG_VALIDATORS,
|
|
139
|
+
useExisting: forwardRef(() => RadioComponent),
|
|
140
|
+
multi: true,
|
|
141
|
+
},
|
|
142
|
+
], template: "<div\n class=\"sdc-radio\"\n [class.inline]=\"orientation === 'inline'\"\n [class.stacked]=\"orientation === 'stacked'\"\n [class.disabled]=\"disabled\"\n [class.invalid]=\"!!error\"\n [attr.role]=\"'radiogroup'\"\n [attr.aria-required]=\"required\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-invalid]=\"!!error\"\n [attr.aria-describedby]=\"hint ? groupId + '-hint' : null\"\n (keydown)=\"onKeydown($event)\"\n tabindex=\"-1\"\n>\n <div class=\"sdc-radio__header\" *ngIf=\"label || hint\">\n <label class=\"sdc-radio__group-label\" [attr.for]=\"groupId\" *ngIf=\"label\">{{ label }}</label>\n <div class=\"sdc-radio__hint\" *ngIf=\"hint\" [id]=\"groupId + '-hint'\">{{ hint }}</div>\n </div>\n\n <div\n class=\"sdc-radio__options\"\n [class.size-sm]=\"size === 'sm'\"\n [class.size-md]=\"size === 'md'\"\n [class.size-lg]=\"size === 'lg'\"\n >\n <label\n class=\"sdc-radio__option\"\n *ngFor=\"let opt of options; let i = index; trackBy: trackByIdx\"\n [class.checked]=\"isChecked(opt.value)\"\n [class.opt-disabled]=\"isOptionDisabled(opt)\"\n [class.label-left]=\"labelPlacement === 'left'\"\n [attr.for]=\"optionId(i)\"\n ><input\n #radioInput\n class=\"sdc-radio__input\"\n type=\"radio\"\n [id]=\"optionId(i)\"\n [name]=\"groupName\"\n [disabled]=\"isOptionDisabled(opt)\"\n [required]=\"required\"\n [checked]=\"isChecked(opt.value)\"\n [value]=\"opt.value\"\n (change)=\"select(opt.value)\"\n (focus)=\"focus.emit()\"\n (blur)=\"onBlur()\"\n />\n <span class=\"sdc-radio__control\" aria-hidden=\"true\"></span>\n <span class=\"sdc-radio__text\">\n <span class=\"sdc-radio__label\">{{ opt.label }}</span>\n <span class=\"sdc-radio__sublabel\" *ngIf=\"opt.hint\">{{ opt.hint }}</span>\n </span>\n </label>\n </div>\n\n <div class=\"sdc-radio__error\" *ngIf=\"error\">{{ error }}</div>\n</div>\n", styles: [":host{display:block;--sdc-radio-size-sm: 16px;--sdc-radio-size-md: 18px;--sdc-radio-size-lg: 20px;--sdc-radio-gap: .5rem;--sdc-radio-color: var(--sdc-primary-600, #2563eb);--sdc-radio-border: var(--sdc-border, #d1d5db);--sdc-radio-text: var(--sdc-text, #111827);--sdc-radio-muted: var(--sdc-muted, #6b7280);--sdc-radio-error: var(--sdc-danger-600, #dc2626);--sdc-radio-bg: #fff;--sdc-focus: var(--sdc-focus, #93c5fd);--sdc-disabled: var(--sdc-disabled, #9ca3af)}.sdc-radio{outline:0}.sdc-radio.disabled{opacity:.7;pointer-events:none}.sdc-radio.invalid .sdc-radio__control{border-color:var(--sdc-radio-error)}.sdc-radio__header{margin-bottom:.25rem;margin-top:.25rem}.sdc-radio__group-label{display:block;color:var(--sdc-radio-text)}.sdc-radio__hint{font-size:.875rem;color:var(--sdc-radio-muted)}.sdc-radio__options{display:flex;flex-wrap:wrap;gap:var(--sdc-radio-gap)}.sdc-radio__options.size-sm .sdc-radio__control{width:var(--sdc-radio-size-sm);height:var(--sdc-radio-size-sm)}.sdc-radio__options.size-md .sdc-radio__control{width:var(--sdc-radio-size-md);height:var(--sdc-radio-size-md)}.sdc-radio__options.size-lg .sdc-radio__control{width:var(--sdc-radio-size-lg);height:var(--sdc-radio-size-lg)}.sdc-radio.inline .sdc-radio__options{flex-direction:row}.sdc-radio.stacked .sdc-radio__options{flex-direction:column}.sdc-radio__option{display:inline-flex;align-items:center;gap:.5rem;-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:9999px;padding:.25rem}.sdc-radio__option.label-left{flex-direction:row-reverse}.sdc-radio__option.opt-disabled{cursor:not-allowed;opacity:.6}.sdc-radio__input{position:absolute;opacity:0;width:0;height:0}.sdc-radio__input:focus-visible+.sdc-radio__control{box-shadow:0 0 0 3px var(--sdc-focus)}.sdc-radio__control{box-sizing:border-box;flex:0 0 auto;border:2px solid var(--sdc-radio-border);border-radius:9999px;background:var(--sdc-radio-bg);display:grid;place-items:center;transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease}.sdc-radio__option.checked .sdc-radio__control{border-color:var(--sdc-radio-color)}.sdc-radio__option.checked .sdc-radio__control:after{content:\"\";display:block;width:55%;height:55%;border-radius:9999px;background:var(--sdc-radio-color)}.sdc-radio__text{display:inline-flex;flex-direction:column;min-width:0}.sdc-radio__label{color:var(--sdc-radio-text);font-size:.95rem;line-height:1.1}.sdc-radio__sublabel{font-size:.8rem;color:var(--sdc-radio-muted);line-height:1.1}.sdc-radio__error{margin-top:.375rem;font-size:.875rem;color:var(--sdc-radio-error)}\n"] }]
|
|
143
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { options: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], name: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], label: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}], hint: [{
|
|
150
|
+
type: Input
|
|
151
|
+
}], error: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], orientation: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}], size: [{
|
|
156
|
+
type: Input
|
|
157
|
+
}], labelPlacement: [{
|
|
158
|
+
type: Input
|
|
159
|
+
}], required: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}], disabled: [{
|
|
162
|
+
type: Input
|
|
163
|
+
}], change: [{
|
|
164
|
+
type: Output
|
|
165
|
+
}], valueChange: [{
|
|
166
|
+
type: Output
|
|
167
|
+
}], focus: [{
|
|
168
|
+
type: Output
|
|
169
|
+
}], blur: [{
|
|
170
|
+
type: Output
|
|
171
|
+
}], radios: [{
|
|
172
|
+
type: ViewChildren,
|
|
173
|
+
args: ['radioInput']
|
|
174
|
+
}] } });
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9yYWRpby9yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3JhZGlvL3JhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFCQUFxQjtBQUNyQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixZQUFZLEdBSWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixhQUFhLEdBSWQsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBU3hCLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQXVCckIsTUFBTSxPQUFPLGNBQWM7SUE0Qkk7SUEzQnBCLE9BQU8sR0FBK0IsRUFBRSxDQUFDO0lBQ3pDLElBQUksQ0FBVTtJQUNkLEtBQUssQ0FBVTtJQUNmLElBQUksQ0FBVTtJQUNkLEtBQUssQ0FBVTtJQUNmLFdBQVcsR0FBeUIsUUFBUSxDQUFDO0lBQzdDLElBQUksR0FBdUIsSUFBSSxDQUFDO0lBQ2hDLGNBQWMsR0FBcUIsT0FBTyxDQUFDO0lBQzNDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVoQixNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQW9DLENBQUM7SUFDOUQsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFvQyxDQUFDO0lBQ25FLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBQ2pDLElBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRU4sTUFBTSxDQUEyQztJQUU3RSxNQUFNLEdBQXFD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SyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQzs0QkFDN0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7c0ZBR1EsT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUU2QixNQUFNO3NCQUF6QyxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyByYWRpby5jb21wb25lbnQudHNcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbiAgRWxlbWVudFJlZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBOR19WQUxJREFUT1JTLFxuICBWYWxpZGF0b3IsXG4gIEFic3RyYWN0Q29udHJvbCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJhZGlvT3B0aW9uIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGhpbnQ/OiBzdHJpbmc7XG59XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdzZGMtcmFkaW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yYWRpby5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IFJlYWRvbmx5QXJyYXk8UmFkaW9PcHRpb24+ID0gW107XG4gIEBJbnB1dCgpIG5hbWU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBoaW50Pzogc3RyaW5nO1xuICBASW5wdXQoKSBlcnJvcj86IHN0cmluZztcbiAgQElucHV0KCkgb3JpZW50YXRpb246ICdpbmxpbmUnIHwgJ3N0YWNrZWQnID0gJ2lubGluZSc7XG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbWQnIHwgJ2xnJyA9ICdtZCc7XG4gIEBJbnB1dCgpIGxhYmVsUGxhY2VtZW50OiAnbGVmdCcgfCAncmlnaHQnID0gJ3JpZ2h0JztcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbD4oKTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbD4oKTtcbiAgQE91dHB1dCgpIGZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkcmVuKCdyYWRpb0lucHV0JykgcHJpdmF0ZSByYWRpb3MhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj47XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBvbkNoYW5nZUZuOiAodjogYW55KSA9PiB2b2lkID0gKCkgPT4geyB9O1xuICBwcml2YXRlIG9uVG91Y2hlZEZuOiAoKSA9PiB2b2lkID0gKCkgPT4geyB9O1xuXG4gIHJlYWRvbmx5IGdyb3VwSWQgPSBgc2RjLXJhZGlvLSR7KytuZXh0VW5pcXVlSWR9YDtcbiAgZ2V0IGdyb3VwTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWUgPz8gdGhpcy5ncm91cElkO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cblxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHNldCB2YWx1ZSh2OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLl92YWx1ZSA9PT0gdikgcmV0dXJuO1xuICAgIHRoaXMuX3ZhbHVlID0gdjtcbiAgICB0aGlzLm9uQ2hhbmdlRm4odik7XG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh2KTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHY6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3ZhbHVlID0gdiA/PyBudWxsO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHY6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHZhbGlkYXRlKF86IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAodGhpcy52YWx1ZSA9PT0gbnVsbCB8fCB0aGlzLnZhbHVlID09PSB1bmRlZmluZWQpKSB7XG4gICAgICByZXR1cm4geyByZXF1aXJlZDogdHJ1ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlzQ2hlY2tlZCh2OiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gdjtcbiAgfVxuXG4gIGlzT3B0aW9uRGlzYWJsZWQob3B0OiBSYWRpb09wdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8ICEhb3B0LmRpc2FibGVkO1xuICB9XG5cbiAgc2VsZWN0KHY6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgdGhpcy52YWx1ZSA9IHY7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRGbigpO1xuICAgIHRoaXMuYmx1ci5lbWl0KCk7XG4gIH1cblxuICBvcHRpb25JZChpOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmdyb3VwSWR9LW9wdC0ke2l9YDtcbiAgfVxuXG4gIG9uS2V5ZG93bihlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnM/Lmxlbmd0aCkgcmV0dXJuO1xuICAgIGNvbnN0IGsgPSBlLmtleTtcbiAgICBjb25zdCBrZXlzID0gWydBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdBcnJvd1VwJywgJ0Fycm93RG93bicsICdIb21lJywgJ0VuZCddO1xuICAgIGlmICgha2V5cy5pbmNsdWRlcyhrKSkgcmV0dXJuO1xuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IGVuYWJsZWQgPSB0aGlzLm9wdGlvbnNcbiAgICAgIC5tYXAoKG8sIGkpID0+ICh7IG8sIGkgfSkpXG4gICAgICAuZmlsdGVyKHggPT4gIXRoaXMuaXNPcHRpb25EaXNhYmxlZCh4Lm8pKTtcbiAgICBpZiAoIWVuYWJsZWQubGVuZ3RoKSByZXR1cm47XG5cbiAgICBjb25zdCBjdXJyZW50SWR4ID0gZW5hYmxlZC5maW5kSW5kZXgoeCA9PiB0aGlzLmlzQ2hlY2tlZCh4Lm8udmFsdWUpKTtcbiAgICBsZXQgdGFyZ2V0SWR4ID0gY3VycmVudElkeDtcblxuICAgIGlmIChrID09PSAnQXJyb3dSaWdodCcgfHwgayA9PT0gJ0Fycm93RG93bicpIHRhcmdldElkeCA9IChjdXJyZW50SWR4ICsgMSArIGVuYWJsZWQubGVuZ3RoKSAlIGVuYWJsZWQubGVuZ3RoO1xuICAgIGlmIChrID09PSAnQXJyb3dMZWZ0JyB8fCBrID09PSAnQXJyb3dVcCcpIHRhcmdldElkeCA9IChjdXJyZW50SWR4IC0gMSArIGVuYWJsZWQubGVuZ3RoKSAlIGVuYWJsZWQubGVuZ3RoO1xuICAgIGlmIChrID09PSAnSG9tZScpIHRhcmdldElkeCA9IDA7XG4gICAgaWYgKGsgPT09ICdFbmQnKSB0YXJnZXRJZHggPSBlbmFibGVkLmxlbmd0aCAtIDE7XG5cbiAgICBjb25zdCB0YXJnZXQgPSBlbmFibGVkW3RhcmdldElkeF0gPz8gZW5hYmxlZFswXTtcbiAgICB0aGlzLnNlbGVjdCh0YXJnZXQuby52YWx1ZSk7XG5cbiAgICBjb25zdCBpbnB1dHMgPSB0aGlzLnJhZGlvcz8udG9BcnJheSgpID8/IFtdO1xuICAgIGNvbnN0IGZvY3VzYWJsZSA9IGlucHV0c1t0YXJnZXQuaV0/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgZm9jdXNhYmxlPy5mb2N1cygpO1xuICB9XG5cbiAgdHJhY2tCeUlkeCA9IChfOiBudW1iZXIsIGl0ZW06IFJhZGlvT3B0aW9uKSA9PiBpdGVtPy52YWx1ZSA/PyBfO1xufVxuIiwiPGRpdlxuICBjbGFzcz1cInNkYy1yYWRpb1wiXG4gIFtjbGFzcy5pbmxpbmVdPVwib3JpZW50YXRpb24gPT09ICdpbmxpbmUnXCJcbiAgW2NsYXNzLnN0YWNrZWRdPVwib3JpZW50YXRpb24gPT09ICdzdGFja2VkJ1wiXG4gIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5pbnZhbGlkXT1cIiEhZXJyb3JcIlxuICBbYXR0ci5yb2xlXT1cIidyYWRpb2dyb3VwJ1wiXG4gIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIiEhZXJyb3JcIlxuICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImhpbnQgPyBncm91cElkICsgJy1oaW50JyA6IG51bGxcIlxuICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gIHRhYmluZGV4PVwiLTFcIlxuPlxuICA8ZGl2IGNsYXNzPVwic2RjLXJhZGlvX19oZWFkZXJcIiAqbmdJZj1cImxhYmVsIHx8IGhpbnRcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJzZGMtcmFkaW9fX2dyb3VwLWxhYmVsXCIgW2F0dHIuZm9yXT1cImdyb3VwSWRcIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJzZGMtcmFkaW9fX2hpbnRcIiAqbmdJZj1cImhpbnRcIiBbaWRdPVwiZ3JvdXBJZCArICctaGludCdcIj57eyBoaW50IH19PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cInNkYy1yYWRpb19fb3B0aW9uc1wiXG4gICAgW2NsYXNzLnNpemUtc21dPVwic2l6ZSA9PT0gJ3NtJ1wiXG4gICAgW2NsYXNzLnNpemUtbWRdPVwic2l6ZSA9PT0gJ21kJ1wiXG4gICAgW2NsYXNzLnNpemUtbGddPVwic2l6ZSA9PT0gJ2xnJ1wiXG4gID5cbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwic2RjLXJhZGlvX19vcHRpb25cIlxuICAgICAgKm5nRm9yPVwibGV0IG9wdCBvZiBvcHRpb25zOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SWR4XCJcbiAgICAgIFtjbGFzcy5jaGVja2VkXT1cImlzQ2hlY2tlZChvcHQudmFsdWUpXCJcbiAgICAgIFtjbGFzcy5vcHQtZGlzYWJsZWRdPVwiaXNPcHRpb25EaXNhYmxlZChvcHQpXCJcbiAgICAgIFtjbGFzcy5sYWJlbC1sZWZ0XT1cImxhYmVsUGxhY2VtZW50ID09PSAnbGVmdCdcIlxuICAgICAgW2F0dHIuZm9yXT1cIm9wdGlvbklkKGkpXCJcbiAgICAgID48aW5wdXRcbiAgICAgICAgI3JhZGlvSW5wdXRcbiAgICAgICAgY2xhc3M9XCJzZGMtcmFkaW9fX2lucHV0XCJcbiAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgW2lkXT1cIm9wdGlvbklkKGkpXCJcbiAgICAgICAgW25hbWVdPVwiZ3JvdXBOYW1lXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzT3B0aW9uRGlzYWJsZWQob3B0KVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFtjaGVja2VkXT1cImlzQ2hlY2tlZChvcHQudmFsdWUpXCJcbiAgICAgICAgW3ZhbHVlXT1cIm9wdC52YWx1ZVwiXG4gICAgICAgIChjaGFuZ2UpPVwic2VsZWN0KG9wdC52YWx1ZSlcIlxuICAgICAgICAoZm9jdXMpPVwiZm9jdXMuZW1pdCgpXCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgLz5cbiAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXJhZGlvX19jb250cm9sXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcmFkaW9fX3RleHRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcmFkaW9fX2xhYmVsXCI+e3sgb3B0LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1yYWRpb19fc3VibGFiZWxcIiAqbmdJZj1cIm9wdC5oaW50XCI+e3sgb3B0LmhpbnQgfX08L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNkYy1yYWRpb19fZXJyb3JcIiAqbmdJZj1cImVycm9yXCI+e3sgZXJyb3IgfX08L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -45,7 +45,7 @@ export class RowCardComponent {
|
|
|
45
45
|
el.style.height = this.expanded ? `${el.scrollHeight}px` : '0px';
|
|
46
46
|
}
|
|
47
47
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowCardComponent, isStandalone: true, selector: "sdc-row-card", inputs: { data: "data", options: "options", isExpanded: "isExpanded", detailTemplate: "detailTemplate" }, outputs: { cardClick: "cardClick", cardButtonClick: "cardButtonClick" }, viewQueries: [{ propertyName: "contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n (click)=\"options?.expandable ? onExpandCardClick($event) : onCardClick()\"\n [class.border-left]=\"data.hasBorder\"\n class=\"row-card p-3 transition-all cursor-pointer\"\n>\n <div class=\"flex flex-column md:flex-row gap-4 align-items-start md:align-items-center w-full\">\n @if (options?.expandable) {\n <i *ngIf=\"expanded\" class=\"fas fa-minus\"></i>\n <i *ngIf=\"!expanded\" class=\"fas fa-plus\"></i>\n }\n\n <div class=\"flex-1 min-w-0\">\n <div\n class=\"text-xl font-semibold mb-2 text-overflow-ellipsis white-space-nowrap overflow-hidden\"\n [ngClass]=\"options?.leftTitleColor\"\n >\n {{ data.left_title }}\n </div>\n <div class=\"text-sm\" [ngClass]=\"options?.leftSubtitleColor\">\n {{ data.left_subtitle }}\n </div>\n </div>\n\n <div class=\"flex md:ml-auto gap-4 w-full md:w-auto align-items-start md:align-items-center\">\n <div class=\"flex flex-column md:flex-row gap-2 w-full md:w-auto\">\n <sdc-button\n (click)=\"$event.stopPropagation()\"\n (onClick)=\"onCardButtonClick()\"\n [priority]=\"options?.buttonPriority!\"\n [icon]=\"options?.buttonIcon\"\n [label]=\"isMobile ? '' : (options!.buttonLabel! | translate)\"\n [class]=\"isMobile ? 'w-full' : 'w-9rem'\"\n >\n </sdc-button>\n </div>\n\n <div\n class=\"text-right text-sm flex flex-column gap-1 md:align-items-end w-full md:w-auto\"\n style=\"min-width: 13rem\"\n >\n <span class=\"font-bold text-2xl\" [ngClass]=\"options?.rightTitleColor\">{{ data.right_title }}</span>\n <span [ngClass]=\"options?.rightSubtitleColor\">{{ data.right_subtitle }}</span>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"options?.expandable\">\n <div #contentWrapper class=\"collapse-wrapper\" [class.show]=\"expanded\" (click)=\"$event.stopPropagation()\">\n <div class=\"collapse-inner\">\n <ng-container *ngIf=\"detailTemplate; else defaultDetail\">\n <ng-template\n [ngTemplateOutlet]=\"detailTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data, data: data }\"\n ></ng-template>\n </ng-container>\n\n <ng-template #defaultDetail>\n <div class=\"text-sm text-700\">{{ data.wrapperDetail }}</div>\n </ng-template>\n </div>\n </div>\n </ng-container>\n</div>\n", styles: [".bg-disabled{background-color:var(--p-inputtext-disabled-background)}.collapse-wrapper{border-radius:0 0 10px 10px;height:0;overflow:hidden;transition:height .35s ease}.collapse-inner{padding:2rem 1rem 1rem;opacity:0;transform:translateY(-.5rem);transition:opacity .3s ease,transform .3s ease}.collapse-wrapper.show .collapse-inner{opacity:1;transform:translateY(0)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["disabled", "width", "icon", "
|
|
48
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowCardComponent, isStandalone: true, selector: "sdc-row-card", inputs: { data: "data", options: "options", isExpanded: "isExpanded", detailTemplate: "detailTemplate" }, outputs: { cardClick: "cardClick", cardButtonClick: "cardButtonClick" }, viewQueries: [{ propertyName: "contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n (click)=\"options?.expandable ? onExpandCardClick($event) : onCardClick()\"\n [class.border-left]=\"data.hasBorder\"\n class=\"row-card p-3 transition-all cursor-pointer\"\n>\n <div class=\"flex flex-column md:flex-row gap-4 align-items-start md:align-items-center w-full\">\n @if (options?.expandable) {\n <i *ngIf=\"expanded\" class=\"fas fa-minus\"></i>\n <i *ngIf=\"!expanded\" class=\"fas fa-plus\"></i>\n }\n\n <div class=\"flex-1 min-w-0\">\n <div\n class=\"text-xl font-semibold mb-2 text-overflow-ellipsis white-space-nowrap overflow-hidden\"\n [ngClass]=\"options?.leftTitleColor\"\n >\n {{ data.left_title }}\n </div>\n <div class=\"text-sm\" [ngClass]=\"options?.leftSubtitleColor\">\n {{ data.left_subtitle }}\n </div>\n </div>\n\n <div class=\"flex md:ml-auto gap-4 w-full md:w-auto align-items-start md:align-items-center\">\n <div class=\"flex flex-column md:flex-row gap-2 w-full md:w-auto\">\n <sdc-button\n (click)=\"$event.stopPropagation()\"\n (onClick)=\"onCardButtonClick()\"\n [priority]=\"options?.buttonPriority!\"\n [icon]=\"options?.buttonIcon\"\n [label]=\"isMobile ? '' : (options!.buttonLabel! | translate)\"\n [class]=\"isMobile ? 'w-full' : 'w-9rem'\"\n >\n </sdc-button>\n </div>\n\n <div\n class=\"text-right text-sm flex flex-column gap-1 md:align-items-end w-full md:w-auto\"\n style=\"min-width: 13rem\"\n >\n <span class=\"font-bold text-2xl\" [ngClass]=\"options?.rightTitleColor\">{{ data.right_title }}</span>\n <span [ngClass]=\"options?.rightSubtitleColor\">{{ data.right_subtitle }}</span>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"options?.expandable\">\n <div #contentWrapper class=\"collapse-wrapper\" [class.show]=\"expanded\" (click)=\"$event.stopPropagation()\">\n <div class=\"collapse-inner\">\n <ng-container *ngIf=\"detailTemplate; else defaultDetail\">\n <ng-template\n [ngTemplateOutlet]=\"detailTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: data, data: data }\"\n ></ng-template>\n </ng-container>\n\n <ng-template #defaultDetail>\n <div class=\"text-sm text-700\">{{ data.wrapperDetail }}</div>\n </ng-template>\n </div>\n </div>\n </ng-container>\n</div>\n", styles: [".bg-disabled{background-color:var(--p-inputtext-disabled-background)}.collapse-wrapper{border-radius:0 0 10px 10px;height:0;overflow:hidden;transition:height .35s ease}.collapse-inner{padding:2rem 1rem 1rem;opacity:0;transform:translateY(-.5rem);transition:opacity .3s ease,transform .3s ease}.collapse-wrapper.show .collapse-inner{opacity:1;transform:translateY(0)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "model"], outputs: ["onClick"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
49
49
|
}
|
|
50
50
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowCardComponent, decorators: [{
|
|
51
51
|
type: Component,
|
|
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66
66
|
type: ViewChild,
|
|
67
67
|
args: ['contentWrapper']
|
|
68
68
|
}] } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9yb3ctY2FyZC1saXN0L3Jvdy1jYXJkL3Jvdy1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvcm93LWNhcmQtbGlzdC9yb3ctY2FyZC9yb3ctY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUlOLFNBQVMsRUFFVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQVd0RCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ2xCLElBQUksQ0FBVztJQUNmLE9BQU8sQ0FBa0I7SUFDekIsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUM1QixjQUFjLENBQW9CO0lBRWpDLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBQ3hDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRTNCLGNBQWMsQ0FBOEI7SUFFdEQsUUFBUSxHQUFHLFFBQVEsRUFBRSxDQUFDO0lBRXpDLElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDaEQsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFpQjtRQUNqQyxJQUFLLEtBQUssQ0FBQyxNQUFzQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFBRSxPQUFPO1FBQ2hFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDO1FBQzlDLElBQUksQ0FBQyxFQUFFO1lBQUUsT0FBTztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUM5QixFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDeEIsT0FBTztRQUNULENBQUM7UUFDRCxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ25FLENBQUM7d0dBN0NVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLGtZQzVCN0IsaTVFQStEQSwwYUR6Q1ksZUFBZSxpUkFBRSxlQUFlLDRGQUFFLE9BQU8sb0ZBQUUsSUFBSSw2RkFBRSxnQkFBZ0I7OzRGQU1oRSxnQkFBZ0I7a0JBVDVCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGNBQWMsV0FDZixDQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxtQkFHM0QsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFHaEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUVzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGlzTW9iaWxlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscy9sYXlvdXQudXRpbCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IE9wdGlvbnNSb3dDYXJkLCBSb3dDYXJkIH0gZnJvbSAnLi4vLi4vLi4vY29yZS90eXBlcy9yb3ctY2FyZC50eXBlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdzZGMtcm93LWNhcmQnLFxuICBpbXBvcnRzOiBbQnV0dG9uQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGUsIE5nQ2xhc3MsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICB0ZW1wbGF0ZVVybDogJy4vcm93LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcm93LWNhcmQuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG59KVxuZXhwb3J0IGNsYXNzIFJvd0NhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkYXRhITogUm93Q2FyZDtcbiAgQElucHV0KCkgb3B0aW9ucz86IE9wdGlvbnNSb3dDYXJkO1xuICBASW5wdXQoKSBpc0V4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRldGFpbFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAT3V0cHV0KCkgY2FyZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dDYXJkPigpO1xuICBAT3V0cHV0KCkgY2FyZEJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dDYXJkPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRXcmFwcGVyJykgY29udGVudFdyYXBwZXI/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNNb2JpbGUgPSBpc01vYmlsZSgpO1xuXG4gIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm9wdGlvbnM/LmV4cGFuZGFibGUgJiYgISF0aGlzLmlzRXhwYW5kZWQ7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2lzRXhwYW5kZWQnXSB8fCBjaGFuZ2VzWydvcHRpb25zJ10pIHtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMudXBkYXRlQ29sbGFwc2VIZWlnaHQoKSk7XG4gICAgfVxuICB9XG5cbiAgb25DYXJkQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5jYXJkQ2xpY2suZW1pdCh0aGlzLmRhdGEpO1xuICB9XG5cbiAgb25FeHBhbmRDYXJkQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdCgnc2RjLWJ1dHRvbicpKSByZXR1cm47XG4gICAgdGhpcy5jYXJkQ2xpY2suZW1pdCh0aGlzLmRhdGEpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgb25DYXJkQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5jYXJkQnV0dG9uQ2xpY2suZW1pdCh0aGlzLmRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb2xsYXBzZUhlaWdodCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuY29udGVudFdyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5vcHRpb25zPy5leHBhbmRhYmxlKSB7XG4gICAgICBlbC5zdHlsZS5oZWlnaHQgPSAnMHB4JztcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZWwuc3R5bGUuaGVpZ2h0ID0gdGhpcy5leHBhbmRlZCA/IGAke2VsLnNjcm9sbEhlaWdodH1weGAgOiAnMHB4JztcbiAgfVxufVxuIiwiPGRpdlxuICAoY2xpY2spPVwib3B0aW9ucz8uZXhwYW5kYWJsZSA/IG9uRXhwYW5kQ2FyZENsaWNrKCRldmVudCkgOiBvbkNhcmRDbGljaygpXCJcbiAgW2NsYXNzLmJvcmRlci1sZWZ0XT1cImRhdGEuaGFzQm9yZGVyXCJcbiAgY2xhc3M9XCJyb3ctY2FyZCBwLTMgdHJhbnNpdGlvbi1hbGwgY3Vyc29yLXBvaW50ZXJcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBtZDpmbGV4LXJvdyBnYXAtNCBhbGlnbi1pdGVtcy1zdGFydCBtZDphbGlnbi1pdGVtcy1jZW50ZXIgdy1mdWxsXCI+XG4gICAgQGlmIChvcHRpb25zPy5leHBhbmRhYmxlKSB7XG4gICAgPGkgKm5nSWY9XCJleHBhbmRlZFwiIGNsYXNzPVwiZmFzIGZhLW1pbnVzXCI+PC9pPlxuICAgIDxpICpuZ0lmPVwiIWV4cGFuZGVkXCIgY2xhc3M9XCJmYXMgZmEtcGx1c1wiPjwvaT5cbiAgICB9XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIG1pbi13LTBcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGQgbWItMiB0ZXh0LW92ZXJmbG93LWVsbGlwc2lzIHdoaXRlLXNwYWNlLW5vd3JhcCBvdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICBbbmdDbGFzc109XCJvcHRpb25zPy5sZWZ0VGl0bGVDb2xvclwiXG4gICAgICA+XG4gICAgICAgIHt7IGRhdGEubGVmdF90aXRsZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbVwiIFtuZ0NsYXNzXT1cIm9wdGlvbnM/LmxlZnRTdWJ0aXRsZUNvbG9yXCI+XG4gICAgICAgIHt7IGRhdGEubGVmdF9zdWJ0aXRsZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBtZDptbC1hdXRvIGdhcC00IHctZnVsbCBtZDp3LWF1dG8gYWxpZ24taXRlbXMtc3RhcnQgbWQ6YWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBtZDpmbGV4LXJvdyBnYXAtMiB3LWZ1bGwgbWQ6dy1hdXRvXCI+XG4gICAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwib25DYXJkQnV0dG9uQ2xpY2soKVwiXG4gICAgICAgICAgW3ByaW9yaXR5XT1cIm9wdGlvbnM/LmJ1dHRvblByaW9yaXR5IVwiXG4gICAgICAgICAgW2ljb25dPVwib3B0aW9ucz8uYnV0dG9uSWNvblwiXG4gICAgICAgICAgW2xhYmVsXT1cImlzTW9iaWxlID8gJycgOiAob3B0aW9ucyEuYnV0dG9uTGFiZWwhIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgW2NsYXNzXT1cImlzTW9iaWxlID8gJ3ctZnVsbCcgOiAndy05cmVtJ1wiXG4gICAgICAgID5cbiAgICAgICAgPC9zZGMtYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXJpZ2h0IHRleHQtc20gZmxleCBmbGV4LWNvbHVtbiBnYXAtMSBtZDphbGlnbi1pdGVtcy1lbmQgdy1mdWxsIG1kOnctYXV0b1wiXG4gICAgICAgIHN0eWxlPVwibWluLXdpZHRoOiAxM3JlbVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtMnhsXCIgW25nQ2xhc3NdPVwib3B0aW9ucz8ucmlnaHRUaXRsZUNvbG9yXCI+e3sgZGF0YS5yaWdodF90aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwib3B0aW9ucz8ucmlnaHRTdWJ0aXRsZUNvbG9yXCI+e3sgZGF0YS5yaWdodF9zdWJ0aXRsZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9ucz8uZXhwYW5kYWJsZVwiPlxuICAgIDxkaXYgI2NvbnRlbnRXcmFwcGVyIGNsYXNzPVwiY29sbGFwc2Utd3JhcHBlclwiIFtjbGFzcy5zaG93XT1cImV4cGFuZGVkXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlLWlubmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXRhaWxUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0RGV0YWlsXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXRhaWxUZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGRhdGEsIGRhdGE6IGRhdGEgfVwiXG4gICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdERldGFpbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSB0ZXh0LTcwMFwiPnt7IGRhdGEud3JhcHBlckRldGFpbCB9fTwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,42 +1,58 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import {
|
|
3
|
-
import { ButtonModule } from '@seniorsistemas/angular-components/button';
|
|
4
|
-
import { StructureModule } from '@seniorsistemas/angular-components/structure';
|
|
5
|
-
import { Component, EventEmitter, Input, Output, ContentChild, TemplateRef, ChangeDetectionStrategy, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { Component, EventEmitter, Input, Output, ContentChild, TemplateRef, ChangeDetectionStrategy, ViewEncapsulation, HostListener } from '@angular/core';
|
|
6
3
|
import * as i0 from "@angular/core";
|
|
7
4
|
import * as i1 from "@angular/common";
|
|
8
|
-
import * as i2 from "@seniorsistemas/angular-components/sidebar";
|
|
9
5
|
export class SidebarComponent {
|
|
10
6
|
visible = false;
|
|
11
7
|
header = 'Título do Sidebar';
|
|
12
8
|
largeSized = true;
|
|
13
9
|
closeOnBackdrop = true;
|
|
14
10
|
width = '70%';
|
|
11
|
+
showClose = true;
|
|
15
12
|
visibleChange = new EventEmitter();
|
|
16
13
|
contentTpl;
|
|
17
14
|
footerTpl;
|
|
18
15
|
ngOnChanges(changes) {
|
|
19
|
-
if (changes['visible']
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
if (changes['visible'])
|
|
17
|
+
this.lockBody(this.visible);
|
|
18
|
+
}
|
|
19
|
+
ngOnDestroy() {
|
|
20
|
+
this.lockBody(false);
|
|
21
|
+
}
|
|
22
|
+
onBackdropClick() {
|
|
23
|
+
if (this.closeOnBackdrop)
|
|
24
|
+
this.close();
|
|
22
25
|
}
|
|
23
26
|
onVisibleChange(next) {
|
|
24
27
|
this.visible = next;
|
|
28
|
+
this.lockBody(next);
|
|
25
29
|
this.visibleChange.emit(next);
|
|
26
30
|
}
|
|
27
31
|
close() {
|
|
28
32
|
this.visible = false;
|
|
33
|
+
this.lockBody(false);
|
|
29
34
|
this.visibleChange.emit(false);
|
|
30
35
|
}
|
|
31
36
|
get sidebarWidth() {
|
|
32
|
-
|
|
37
|
+
if (typeof this.width === 'number')
|
|
38
|
+
return `${this.width}%`;
|
|
39
|
+
if (this.width)
|
|
40
|
+
return this.width;
|
|
41
|
+
return this.largeSized ? '70%' : '40%';
|
|
42
|
+
}
|
|
43
|
+
onEsc() {
|
|
44
|
+
if (this.visible)
|
|
45
|
+
this.close();
|
|
46
|
+
}
|
|
47
|
+
lockBody(lock) {
|
|
48
|
+
document.body.classList.toggle('sdc-body-locked', !!lock);
|
|
33
49
|
}
|
|
34
50
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SidebarComponent, isStandalone: true, selector: "sdc-sidebar", inputs: { visible: "visible", header: "header", largeSized: "largeSized", closeOnBackdrop: "closeOnBackdrop", width: "width" }, outputs: { visibleChange: "visibleChange" }, queries: [{ propertyName: "contentTpl", first: true, predicate: ["content"], descendants: true, read: TemplateRef }, { propertyName: "footerTpl", first: true, predicate: ["footer"], descendants: true, read: TemplateRef }], usesOnChanges: true, ngImport: i0, template: "<
|
|
51
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SidebarComponent, isStandalone: true, selector: "sdc-sidebar", inputs: { visible: "visible", header: "header", largeSized: "largeSized", closeOnBackdrop: "closeOnBackdrop", width: "width", showClose: "showClose" }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "document:keydown.escape": "onEsc($event)" } }, queries: [{ propertyName: "contentTpl", first: true, predicate: ["content"], descendants: true, read: TemplateRef }, { propertyName: "footerTpl", first: true, predicate: ["footer"], descendants: true, read: TemplateRef }], usesOnChanges: true, ngImport: i0, template: "<div class=\"sdc-overlay\" *ngIf=\"visible\">\n <div class=\"sdc-backdrop\" (click)=\"onBackdropClick()\"></div>\n\n <aside\n class=\"sdc-sidebar-panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"header\"\n [style.width]=\"sidebarWidth\"\n >\n <div class=\"sdc-sidebar-header\">\n <div class=\"sdc-sidebar-title\">{{ header }}</div>\n <button type=\"button\" class=\"sdc-sidebar-close\" *ngIf=\"showClose\" (click)=\"close()\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n\n <div class=\"sdc-sidebar-content\">\n <ng-container *ngIf=\"contentTpl; else projected\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </ng-container>\n <ng-template #projected>\n <ng-content></ng-content>\n </ng-template>\n </div>\n\n <div class=\"sdc-sidebar-footer\">\n <hr class=\"sdc-footer-divider\" />\n <div class=\"sdc-footer-actions\">\n <ng-container *ngIf=\"footerTpl\">\n <ng-container *ngTemplateOutlet=\"footerTpl\"></ng-container>\n </ng-container>\n </div>\n </div>\n </aside>\n</div>\n", styles: [":host{display:block}.sdc-overlay{position:fixed;inset:0;z-index:1100}.sdc-backdrop{position:absolute;inset:0;background:#333c}.sdc-sidebar-panel{position:absolute;right:0;top:0;height:100vh;background:#fff;display:flex;flex-direction:column;max-width:100%;box-shadow:0 0 0 1px #0000000a,0 10px 30px #0003;width:var(--sdc-sidebar-width, 70%)}.sdc-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid #e5e7eb;font-weight:600;font-size:.9rem;text-transform:uppercase}.sdc-sidebar-close{background:transparent;border:0;cursor:pointer;padding:.25rem;line-height:1}.sdc-sidebar-content{flex:1 1 auto;overflow:auto;padding:0 1rem}.sdc-sidebar-footer{background:#fff;position:sticky;bottom:0;padding:0 1rem 1rem}.sdc-footer-divider{margin:.75rem 0 1rem;border:0;border-top:1px solid #dcdcdc}.sdc-footer-actions{display:flex;align-items:center;justify-content:flex-start;gap:1rem}.sdc-body-locked{overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
36
52
|
}
|
|
37
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarComponent, decorators: [{
|
|
38
54
|
type: Component,
|
|
39
|
-
args: [{ selector: 'sdc-sidebar', standalone: true, imports: [CommonModule
|
|
55
|
+
args: [{ selector: 'sdc-sidebar', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-overlay\" *ngIf=\"visible\">\n <div class=\"sdc-backdrop\" (click)=\"onBackdropClick()\"></div>\n\n <aside\n class=\"sdc-sidebar-panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"header\"\n [style.width]=\"sidebarWidth\"\n >\n <div class=\"sdc-sidebar-header\">\n <div class=\"sdc-sidebar-title\">{{ header }}</div>\n <button type=\"button\" class=\"sdc-sidebar-close\" *ngIf=\"showClose\" (click)=\"close()\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n\n <div class=\"sdc-sidebar-content\">\n <ng-container *ngIf=\"contentTpl; else projected\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n </ng-container>\n <ng-template #projected>\n <ng-content></ng-content>\n </ng-template>\n </div>\n\n <div class=\"sdc-sidebar-footer\">\n <hr class=\"sdc-footer-divider\" />\n <div class=\"sdc-footer-actions\">\n <ng-container *ngIf=\"footerTpl\">\n <ng-container *ngTemplateOutlet=\"footerTpl\"></ng-container>\n </ng-container>\n </div>\n </div>\n </aside>\n</div>\n", styles: [":host{display:block}.sdc-overlay{position:fixed;inset:0;z-index:1100}.sdc-backdrop{position:absolute;inset:0;background:#333c}.sdc-sidebar-panel{position:absolute;right:0;top:0;height:100vh;background:#fff;display:flex;flex-direction:column;max-width:100%;box-shadow:0 0 0 1px #0000000a,0 10px 30px #0003;width:var(--sdc-sidebar-width, 70%)}.sdc-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid #e5e7eb;font-weight:600;font-size:.9rem;text-transform:uppercase}.sdc-sidebar-close{background:transparent;border:0;cursor:pointer;padding:.25rem;line-height:1}.sdc-sidebar-content{flex:1 1 auto;overflow:auto;padding:0 1rem}.sdc-sidebar-footer{background:#fff;position:sticky;bottom:0;padding:0 1rem 1rem}.sdc-footer-divider{margin:.75rem 0 1rem;border:0;border-top:1px solid #dcdcdc}.sdc-footer-actions{display:flex;align-items:center;justify-content:flex-start;gap:1rem}.sdc-body-locked{overflow:hidden}\n"] }]
|
|
40
56
|
}], propDecorators: { visible: [{
|
|
41
57
|
type: Input,
|
|
42
58
|
args: [{ required: true }]
|
|
@@ -49,6 +65,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
49
65
|
type: Input
|
|
50
66
|
}], width: [{
|
|
51
67
|
type: Input
|
|
68
|
+
}], showClose: [{
|
|
69
|
+
type: Input
|
|
52
70
|
}], visibleChange: [{
|
|
53
71
|
type: Output
|
|
54
72
|
}], contentTpl: [{
|
|
@@ -57,5 +75,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
57
75
|
}], footerTpl: [{
|
|
58
76
|
type: ContentChild,
|
|
59
77
|
args: ['footer', { read: TemplateRef }]
|
|
78
|
+
}], onEsc: [{
|
|
79
|
+
type: HostListener,
|
|
80
|
+
args: ['document:keydown.escape', ['$event']]
|
|
60
81
|
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osV0FBVyxFQUdYLHVCQUF1QixFQUN2QixpQkFBaUIsRUFFakIsWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDOzs7QUFXdkIsTUFBTSxPQUFPLGdCQUFnQjtJQUNBLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsTUFBTSxHQUFHLG1CQUFtQixDQUFDO0lBQy9DLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDbEIsZUFBZSxHQUFHLElBQUksQ0FBQztJQUN2QixLQUFLLEdBQW9CLEtBQUssQ0FBQztJQUMvQixTQUFTLEdBQUcsSUFBSSxDQUFDO0lBRWhCLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRU4sVUFBVSxDQUFvQjtJQUMvQixTQUFTLENBQW9CO0lBRTVFLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxlQUFlO1lBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBYTtRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUTtZQUFFLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7UUFDNUQsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3pDLENBQUM7SUFHRCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsT0FBTztZQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU8sUUFBUSxDQUFDLElBQWE7UUFDNUIsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO3dHQWxEVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiwrWkFVTSxXQUFXLDhGQUNaLFdBQVcsa0RDcEM3Qyw0b0NBb0NBLHVnQ0RqQlksWUFBWTs7NEZBTVgsZ0JBQWdCO2tCQVQ1QixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBR04sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFHZCxPQUFPO3NCQUFqQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxNQUFNO3NCQUFoQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBRXlDLFVBQVU7c0JBQXpELFlBQVk7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDQyxTQUFTO3NCQUF2RCxZQUFZO3VCQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBaUM3QyxLQUFLO3NCQURKLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIENvbnRlbnRDaGlsZCxcbiAgVGVtcGxhdGVSZWYsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBPbkRlc3Ryb3ksXG4gIEhvc3RMaXN0ZW5lclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLXNpZGViYXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc2lkZWJhci5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSB2aXNpYmxlID0gZmFsc2U7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGhlYWRlciA9ICdUw610dWxvIGRvIFNpZGViYXInO1xuICBASW5wdXQoKSBsYXJnZVNpemVkID0gdHJ1ZTtcbiAgQElucHV0KCkgY2xvc2VPbkJhY2tkcm9wID0gdHJ1ZTtcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyB8IG51bWJlciA9ICc3MCUnO1xuICBASW5wdXQoKSBzaG93Q2xvc2UgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoJ2NvbnRlbnQnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGNvbnRlbnRUcGw/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKCdmb290ZXInLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGZvb3RlclRwbD86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWyd2aXNpYmxlJ10pIHRoaXMubG9ja0JvZHkodGhpcy52aXNpYmxlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubG9ja0JvZHkoZmFsc2UpO1xuICB9XG5cbiAgb25CYWNrZHJvcENsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNsb3NlT25CYWNrZHJvcCkgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgb25WaXNpYmxlQ2hhbmdlKG5leHQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSBuZXh0O1xuICAgIHRoaXMubG9ja0JvZHkobmV4dCk7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQobmV4dCk7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLmxvY2tCb2R5KGZhbHNlKTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gIH1cblxuICBnZXQgc2lkZWJhcldpZHRoKCk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLndpZHRoID09PSAnbnVtYmVyJykgcmV0dXJuIGAke3RoaXMud2lkdGh9JWA7XG4gICAgaWYgKHRoaXMud2lkdGgpIHJldHVybiB0aGlzLndpZHRoO1xuICAgIHJldHVybiB0aGlzLmxhcmdlU2l6ZWQgPyAnNzAlJyA6ICc0MCUnO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKVxuICBvbkVzYygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52aXNpYmxlKSB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIGxvY2tCb2R5KGxvY2s6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ3NkYy1ib2R5LWxvY2tlZCcsICEhbG9jayk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtb3ZlcmxheVwiICpuZ0lmPVwidmlzaWJsZVwiPlxuICA8ZGl2IGNsYXNzPVwic2RjLWJhY2tkcm9wXCIgKGNsaWNrKT1cIm9uQmFja2Ryb3BDbGljaygpXCI+PC9kaXY+XG5cbiAgPGFzaWRlXG4gICAgY2xhc3M9XCJzZGMtc2lkZWJhci1wYW5lbFwiXG4gICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaGVhZGVyXCJcbiAgICBbc3R5bGUud2lkdGhdPVwic2lkZWJhcldpZHRoXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJzZGMtc2lkZWJhci1oZWFkZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtc2lkZWJhci10aXRsZVwiPnt7IGhlYWRlciB9fTwvZGl2PlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzZGMtc2lkZWJhci1jbG9zZVwiICpuZ0lmPVwic2hvd0Nsb3NlXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJzZGMtc2lkZWJhci1jb250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudFRwbDsgZWxzZSBwcm9qZWN0ZWRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNwcm9qZWN0ZWQ+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLXNpZGViYXItZm9vdGVyXCI+XG4gICAgICA8aHIgY2xhc3M9XCJzZGMtZm9vdGVyLWRpdmlkZXJcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1mb290ZXItYWN0aW9uc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9vdGVyVHBsXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlclRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2FzaWRlPlxuPC9kaXY+XG4iXX0=
|